:root{--color-bg: #faf6f6;--color-surface: #ffffff;--color-surface-alt: #f5eaec;--color-border: #e6d3d7;--color-text: #2e2225;--color-text-muted: #7a6367;--color-primary: #b3566a;--color-primary-hover: #8f4354;--color-primary-contrast: #ffffff;--color-accent: #c97b52;--color-danger: #b3402c;--color-danger-bg: #fbeae6;--color-focus: #b5651d;--radius-md: 12px;--radius-lg: 18px;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--font-size-base: 18px;--font-size-lg: 22px;--font-size-xl: 28px;--shadow-card: 0 2px 10px rgba(43, 42, 38, .08)}[data-theme=dark]{--color-bg: #201619;--color-surface: #2b1e22;--color-surface-alt: #34252a;--color-border: #4a373d;--color-text: #f3e9eb;--color-text-muted: #c2a8ae;--color-primary: #e08fa0;--color-primary-hover: #ea9fb0;--color-primary-contrast: #341018;--color-accent: #e2a179;--color-danger: #e6836c;--color-danger-bg: #3a2521;--color-focus: #f0a860;--shadow-card: 0 2px 10px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html{font-size:var(--font-size-base)}body{margin:0;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}button,input,select{font:inherit;color:inherit}a{color:var(--color-primary)}.app-shell{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:var(--space-4) var(--space-3) var(--space-5)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.page-title{font-size:var(--font-size-xl);font-weight:700;margin:0 0 var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label{font-weight:600;font-size:.95rem}.field input,.field select{padding:14px var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);min-height:48px}.field input:focus,.field select:focus,button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.password-field{position:relative}.password-field input{width:100%;padding-right:48px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:8px;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:12px var(--space-4);border-radius:var(--radius-md);border:none;font-weight:600;font-size:1rem;cursor:pointer}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-link{display:inline-flex;background:none;border:none;color:var(--color-primary);text-decoration:underline;min-height:auto;width:auto;padding:var(--space-1);cursor:pointer;font-weight:600}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.error-banner{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-3);font-weight:600}.top-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.theme-toggle{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:999px;min-height:44px;padding:8px 16px;cursor:pointer;font-weight:600}.nav-tabs{display:flex;gap:var(--space-2);margin-top:auto;padding-top:var(--space-4)}.nav-tabs a{flex:1;text-align:center;padding:8px 4px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-text-muted);font-weight:600;font-size:.8rem;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.nav-tabs a.active{background:var(--color-surface-alt);color:var(--color-primary)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.stat-tile{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.stat-tile .value{display:block;font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary)}.stat-tile .label{font-size:.85rem;color:var(--color-text-muted)}.period-switch{display:flex;gap:var(--space-2);flex-wrap:wrap}.period-switch button{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:999px;padding:8px 16px;min-height:44px;cursor:pointer}.period-switch button.active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.month-nav{display:flex;align-items:center;justify-content:space-between}.month-nav button{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:999px;min-height:40px;min-width:40px;cursor:pointer;font-size:1rem}.month-nav button:disabled{opacity:.4;cursor:not-allowed}.month-nav-label{font-weight:700}.month-calendar{display:flex;flex-direction:column;gap:4px}.month-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-calendar-header{text-align:center;font-size:.75rem;font-weight:700;color:var(--color-text-muted);padding-bottom:2px}.month-calendar-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;aspect-ratio:1;border-radius:var(--radius-md);background:var(--color-surface-alt);font-size:.7rem}.month-calendar-cell.empty{background:transparent}.month-calendar-cell.today{outline:2px solid var(--color-focus);outline-offset:-2px}.month-calendar-cell.has-entry{background:var(--color-primary);color:var(--color-primary-contrast)}.month-calendar-cell .day-number{font-weight:700}.month-calendar-cell .day-steps.muted{opacity:.5}.stat-grid-day{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.stat-grid-day .stat-tile{padding:var(--space-3) var(--space-2)}.stat-grid-day .stat-tile .value{font-size:1.15rem;overflow-wrap:anywhere}.day-stats-empty{margin:0;text-align:center;color:var(--color-text-muted)}.day-nav{gap:var(--space-2)}.day-nav .day-nav-label{flex:1;font-weight:700;padding:0 var(--space-3);min-height:44px;color:inherit}.day-nav-today{background:var(--color-surface-alt);border:1px solid var(--color-border);color:inherit}.month-calendar-cell.selectable{border:none;color:inherit;font:inherit;font-size:.7rem;cursor:pointer;padding:0}.month-calendar-cell.selectable.has-entry{color:var(--color-primary-contrast)}.month-calendar-cell.selectable:disabled{opacity:.35;cursor:not-allowed}.month-calendar-cell.selected{outline:3px solid var(--color-primary);outline-offset:1px}.info-disclosure{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.info-disclosure summary{cursor:pointer;font-weight:600;color:var(--color-primary);list-style:none}.info-disclosure summary::-webkit-details-marker{display:none}.info-disclosure summary:before{content:"▸";display:inline-block;margin-right:8px;transition:transform .15s ease}.info-disclosure[open] summary:before{transform:rotate(90deg)}.info-disclosure dl{margin:var(--space-3) 0 0;display:flex;flex-direction:column;gap:var(--space-2)}.info-disclosure dt{font-weight:700}.info-disclosure dd{margin:0;color:var(--color-text-muted);font-size:.9rem}.entry-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-md)}
