[data-app=journal]{--app-accent:#D06A82;--app-accent-lt:#B24E66;--phase-menstrual:#C05870;--phase-follicular:#C88838;--phase-ovulation:#5A8060;--phase-luteal:#8860A0;--flow-spotting:#5a2840;--flow-light:#8c4060;--flow-medium:#c05870;--flow-heavy:#e07090;--wedge-menstrual:#220e14;--wedge-follicular:#281e08;--wedge-ovulation:#101e14;--wedge-luteal:#1a1028;--wedge-period:#2a0e18;--wedge-future:#0d1009;--wedge-divider:#10140E;--app-weak: color-mix(in srgb, var(--app-accent) 14%, var(--bg-paper));--app-soft: color-mix(in srgb, var(--app-accent) 28%, var(--bg-paper))}@media (prefers-color-scheme: light){:root:not(.theme-dark) [data-app=journal]{--app-accent:#B24E66;--app-accent-lt:#8C3650;--phase-menstrual:#B24E66;--phase-follicular:#A07830;--phase-ovulation:#3A6848;--phase-luteal:#684898;--flow-spotting:#e8c4cc;--flow-light:#d09098;--flow-medium:#b05068;--flow-heavy:#843050;--wedge-menstrual:#fceaf0;--wedge-follicular:#f8f0dc;--wedge-ovulation:#e8f0e4;--wedge-luteal:#ede4f4;--wedge-period:#fce0e8;--wedge-future:#eeeee8;--wedge-divider:#F3F5EE;--app-weak: color-mix(in srgb, var(--app-accent) 16%, var(--bg-paper));--app-soft: color-mix(in srgb, var(--app-accent) 30%, var(--bg-paper))}}:root.theme-light [data-app=journal]{--app-accent:#B24E66;--app-accent-lt:#8C3650;--phase-menstrual:#B24E66;--phase-follicular:#A07830;--phase-ovulation:#3A6848;--phase-luteal:#684898;--flow-spotting:#e8c4cc;--flow-light:#d09098;--flow-medium:#b05068;--flow-heavy:#843050;--wedge-menstrual:#fceaf0;--wedge-follicular:#f8f0dc;--wedge-ovulation:#e8f0e4;--wedge-luteal:#ede4f4;--wedge-period:#fce0e8;--wedge-future:#eeeee8;--wedge-divider:#F3F5EE;--app-weak: color-mix(in srgb, var(--app-accent) 16%, var(--bg-paper));--app-soft: color-mix(in srgb, var(--app-accent) 30%, var(--bg-paper))}:root.theme-dark [data-app=journal]{--app-accent:#D06A82;--app-accent-lt:#B24E66;--phase-menstrual:#C05870;--phase-follicular:#C88838;--phase-ovulation:#5A8060;--phase-luteal:#8860A0;--flow-spotting:#5a2840;--flow-light:#8c4060;--flow-medium:#c05870;--flow-heavy:#e07090;--wedge-menstrual:#220e14;--wedge-follicular:#281e08;--wedge-ovulation:#101e14;--wedge-luteal:#1a1028;--wedge-period:#2a0e18;--wedge-future:#0d1009;--wedge-divider:#10140E;--app-weak: color-mix(in srgb, var(--app-accent) 14%, var(--bg-paper));--app-soft: color-mix(in srgb, var(--app-accent) 28%, var(--bg-paper))}[data-app=journal] .tab-pad{padding:var(--sp-4) var(--sp-4) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=journal] .card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}[data-app=journal] .card+.card{margin-top:var(--sp-3)}[data-app=journal] .card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}[data-app=journal] .card-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-title);color:var(--text)}[data-app=journal] .card-sub{font-size:var(--fs-xs);color:var(--text-soft)}[data-app=journal] .section-h{font-family:var(--font-display);font-size:var(--fs-xl);margin-top:var(--sp-1)}[data-app=journal] .muted{color:var(--text-soft)}[data-app=journal] .sm{font-size:var(--fs-sm)}[data-app=journal] .grow{flex:1;min-width:0}[data-app=journal] .sub{display:block;font-size:var(--fs-sm);color:var(--text-soft)}[data-app=journal] .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-radius:var(--r-md);font-weight:var(--fw-med);font-size:var(--fs-base);background:var(--bg-sunken);color:var(--text);transition:.16s cubic-bezier(.2,.8,.2,1);border:1px solid var(--border)}[data-app=journal] .btn:active{transform:scale(.98)}[data-app=journal] .btn:disabled{opacity:.45;cursor:default;transform:none}[data-app=journal] .btn.primary{background:var(--app-accent);color:#fff;border-color:var(--app-accent);font-weight:var(--fw-title)}[data-app=journal] .btn.primary:active{background:var(--app-accent-lt);border-color:var(--app-accent-lt)}[data-app=journal] .btn.ghost{background:transparent}[data-app=journal] .btn.ghost.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 38%,transparent)}[data-app=journal] .btn.sm{padding:7px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm)}[data-app=journal] .btn.block{width:100%}[data-app=journal] .btn.amber-btn{background:var(--warn);color:#fff;border-color:var(--warn);font-weight:var(--fw-title)}[data-app=journal] .btn.amber-btn:active{filter:brightness(.9)}[data-app=journal] .chip{padding:7px 13px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-weight:var(--fw-med);font-size:var(--fs-sm);border:1px solid transparent;transition:.16s;white-space:nowrap}[data-app=journal] .chip:active{transform:scale(.96)}[data-app=journal] .chip.on{background:var(--app-weak);color:var(--app-accent);border-color:var(--app-accent)}[data-app=journal] .chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}[data-app=journal] .field{display:flex;flex-direction:column;gap:4px}[data-app=journal] .field-label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}[data-app=journal] .input,[data-app=journal] .select,[data-app=journal] .textarea{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text);width:100%;font-size:var(--fs-base)}[data-app=journal] .input:focus,[data-app=journal] .select:focus,[data-app=journal] .textarea:focus{outline:2px solid var(--app-accent);outline-offset:-1px}[data-app=journal] .textarea{min-height:80px;resize:vertical;font-family:var(--font-body);line-height:1.6}[data-app=journal] .row{display:flex;align-items:center;gap:var(--sp-3)}[data-app=journal] .row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}[data-app=journal] .stack{display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=journal] .stack-sm{display:flex;flex-direction:column;gap:var(--sp-2)}[data-app=journal] .divider{height:1px;background:var(--border);margin:var(--sp-4) 0}[data-app=journal] .empty{text-align:center;padding:40px 20px;color:var(--text-soft);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--font-display);font-size:var(--fs-lg);font-style:italic}[data-app=journal] .event-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:11px 0;border-bottom:1px solid var(--border)}[data-app=journal] .event-item:last-child{border-bottom:none}[data-app=journal] .event-time{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-soft);min-width:60px;padding-top:3px;font-variant-numeric:tabular-nums}[data-app=journal] .event-body{flex:1;min-width:0}[data-app=journal] .event-label{font-size:var(--fs-base);color:var(--text)}[data-app=journal] .event-meta{font-size:var(--fs-xs);color:var(--text-soft);margin-top:3px}[data-app=journal] .event-actions{display:flex;gap:2px;padding-top:1px}[data-app=journal] .event-edit,[data-app=journal] .event-delete{color:var(--text-soft);padding:4px 7px;border-radius:var(--r-sm);transition:.12s}[data-app=journal] .event-edit:hover,[data-app=journal] .event-edit:active{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}[data-app=journal] .event-delete:hover,[data-app=journal] .event-delete:active{background:var(--app-weak);color:var(--app-accent)}[data-app=journal] .severity-dots{display:inline-flex;gap:3px}[data-app=journal] .severity-dot{width:7px;height:7px;border-radius:50%;background:var(--border)}[data-app=journal] .severity-dot-on{background:var(--app-accent)}[data-app=journal] .sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}[data-app=journal] .sheet{width:100%;max-width:640px;background:var(--bg-elevated);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px var(--sp-5) calc(env(safe-area-inset-bottom) + 20px);animation:rise .26s cubic-bezier(.2,.8,.2,1);max-height:88vh;overflow-y:auto}[data-app=journal] .sheet-grip{width:40px;height:4px;border-radius:var(--r-full);background:var(--border);margin:6px auto 16px}[data-app=journal] .sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}[data-app=journal] .sheet-head h3{font-family:var(--font-display);font-size:var(--fs-xl)}[data-app=journal] .chip.sm,[data-app=journal] .chip-sm{padding:5px 10px;font-size:var(--fs-xs)}[data-app=journal] .flow-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-size:var(--fs-sm);border:1px solid transparent;transition:.16s}[data-app=journal] .flow-chip:active{transform:scale(.96)}[data-app=journal] .flow-on{background:var(--app-weak);color:var(--app-accent);border-color:color-mix(in srgb,var(--app-accent) 55%,transparent)}[data-app=journal] .flow-dot{width:11px;height:11px;border-radius:50%;border:1px solid rgba(255,255,255,.1)}[data-app=journal] .sev-btn{width:40px;height:40px;border-radius:50%;background:var(--bg-sunken);color:var(--text-soft);font-size:var(--fs-base);border:1px solid transparent;transition:.12s}[data-app=journal] .sev-btn.on{background:var(--app-accent);color:#fff;border-color:var(--app-accent-lt)}[data-app=journal] .add-panel{border-top:2px solid var(--app-accent)}[data-app=journal] .edit-panel{margin-bottom:var(--sp-1);padding:var(--sp-3) var(--sp-4) var(--sp-4);background:color-mix(in srgb,var(--warn) 8%,var(--bg-paper));border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:var(--r-md)}[data-app=journal] .edit-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}[data-app=journal] .edit-panel-title{font-size:var(--fs-xs);font-weight:var(--fw-title);letter-spacing:.06em;text-transform:uppercase;color:var(--warn)}[data-app=journal] .selected-count{font-size:var(--fs-xs);font-weight:var(--fw-title);color:var(--app-accent);background:var(--app-weak);padding:3px 10px;border-radius:var(--r-full)}[data-app=journal] .basket{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;background:var(--app-weak);border-radius:var(--r-md);margin-bottom:var(--sp-1)}[data-app=journal] .basket-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--bg-elevated);border:1px solid color-mix(in srgb,var(--app-accent) 45%,transparent);border-radius:var(--r-full);font-size:var(--fs-xs);color:var(--app-accent);font-weight:var(--fw-med)}[data-app=journal] .basket-remove{color:color-mix(in srgb,var(--app-accent) 65%,transparent);transition:.12s}[data-app=journal] .basket-remove:hover{color:var(--app-accent)}[data-app=journal] .time-picker-preview{margin:8px 0 0;font-size:var(--fs-xs);color:var(--text-soft)}[data-app=journal] .bar-list{display:flex;flex-direction:column;gap:10px}[data-app=journal] .bar-row{display:grid;grid-template-columns:110px 1fr 80px;gap:10px;align-items:center}[data-app=journal] .bar-label{font-size:var(--fs-sm);color:var(--text)}[data-app=journal] .bar-track{height:8px;background:var(--bg-sunken);border-radius:var(--r-full);overflow:hidden}[data-app=journal] .bar-fill{height:100%;background:var(--app-accent);border-radius:var(--r-full)}[data-app=journal] .bar-value{font-size:var(--fs-xs);color:var(--text-soft);text-align:right;font-family:var(--font-mono)}[data-app=journal] .phase-bars{display:flex;flex-direction:column;gap:10px}[data-app=journal] .phase-row{display:grid;grid-template-columns:90px 1fr 36px;gap:10px;align-items:center}[data-app=journal] .phase-track{height:10px;background:var(--bg-sunken);border-radius:var(--r-full);overflow:hidden}[data-app=journal] .phase-fill{height:100%;border-radius:var(--r-full)}[data-app=journal] .corr-list{display:flex;flex-direction:column;gap:8px}[data-app=journal] .corr-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}[data-app=journal] .corr-row:last-child{border-bottom:none}[data-app=journal] .corr-main{flex:1;min-width:0}[data-app=journal] .corr-pair{font-size:var(--fs-base);color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}[data-app=journal] .corr-food{font-weight:var(--fw-med)}[data-app=journal] .corr-arrow{color:var(--text-soft)}[data-app=journal] .corr-symptom{color:var(--app-accent);font-weight:var(--fw-med)}[data-app=journal] .corr-meta{font-size:var(--fs-xs);color:var(--text-soft);margin-top:3px}[data-app=journal] .corr-footnote{margin:12px 0 0;font-size:var(--fs-xs);color:var(--text-soft);font-style:italic;line-height:1.5}[data-app=journal] .lift-badge{font-size:var(--fs-xs);font-weight:var(--fw-title);letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:var(--r-full);white-space:nowrap}[data-app=journal] .lift-low{background:var(--bg-sunken);color:var(--text-soft)}[data-app=journal] .lift-mild{background:color-mix(in srgb,var(--warn) 18%,var(--bg-paper));color:var(--warn)}[data-app=journal] .lift-strong{background:var(--app-weak);color:var(--app-accent)}[data-app=journal] .cycle-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}[data-app=journal] .cycle-stat{padding:14px 8px;background:var(--bg-sunken);border-radius:var(--r-md);text-align:center}[data-app=journal] .cycle-stat-value{font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--app-accent);line-height:1}[data-app=journal] .cycle-stat-text{font-size:var(--fs-sm)}[data-app=journal] .cycle-stat-label{font-size:var(--fs-xs);color:var(--text-soft);margin-top:6px;letter-spacing:.04em;text-transform:uppercase}[data-app=journal] .summary-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}[data-app=journal] .summary-stat{padding:14px 10px;background:var(--bg-sunken);border-radius:var(--r-md);text-align:center}[data-app=journal] .stat-value{font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--text);line-height:1}[data-app=journal] .stat-unit{font-size:var(--fs-sm);color:var(--text-soft);margin-left:3px}[data-app=journal] .stat-input{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text);background:transparent;border:none;width:100%;text-align:center;padding:2px 0}[data-app=journal] .stat-input:focus{outline:none}[data-app=journal] .stat-label{font-size:var(--fs-xs);color:var(--text-soft);margin-top:4px;letter-spacing:.05em;text-transform:uppercase}[data-app=journal] .ring-wrap{display:grid;place-items:center;padding:8px 0 4px}[data-app=journal] .cycle-ring{width:100%;max-width:380px;height:auto;display:block}[data-app=journal] .cycle-ring path{transition:opacity .15s}[data-app=journal] .cycle-ring g:active path{opacity:.7}[data-app=journal] .cycle-legend{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}[data-app=journal] .legend-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:var(--fs-xs);color:var(--text-soft)}[data-app=journal] .legend-cap{font-size:10px;color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;font-weight:var(--fw-med);min-width:50px}[data-app=journal] .legend-item{display:inline-flex;align-items:center;gap:5px}[data-app=journal] .legend-swatch{width:10px;height:10px;border-radius:3px}[data-app=journal] .legend-bar{width:12px;height:4px;border-radius:var(--r-full)}[data-app=journal] .legend-dot{width:7px;height:7px;border-radius:50%}[data-app=journal] .phase-pill-sm,[data-app=journal] .csh-phase-pill{display:inline-block;padding:2px 8px;border-radius:var(--r-full);font-size:var(--fs-xs);color:#fff;font-weight:var(--fw-med);letter-spacing:.04em;text-transform:uppercase}[data-app=journal] .day-detail-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:14px}[data-app=journal] .dd-stat{padding:12px 6px;background:var(--bg-sunken);border-radius:var(--r-md);text-align:center}[data-app=journal] .dd-stat-value{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text)}[data-app=journal] .dd-stat-label{font-size:10px;color:var(--text-soft);margin-top:2px;letter-spacing:.05em;text-transform:uppercase}[data-app=journal] .setup-screen{min-height:100vh;display:grid;place-items:center;padding:var(--sp-5)}[data-app=journal] .setup-card{max-width:440px;width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);padding:36px 28px}[data-app=journal] .setup-title{font-family:var(--font-display);font-size:var(--fs-2xl);margin:0 0 12px}[data-app=journal] .setup-lede{color:var(--text-soft);font-size:var(--fs-base);line-height:1.6;margin:0 0 4px}[data-app=journal] .setup-prompt{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text);margin:0 0 18px;line-height:1.4}[data-app=journal] .setup-error{color:var(--danger);font-size:var(--fs-sm);margin:12px 0 0}[data-app=journal] .setup-footer{font-size:var(--fs-xs);color:var(--text-soft);text-align:center;margin:18px 0 0;font-style:italic}[data-app=journal] .log-body{display:flex;flex-direction:column;gap:var(--sp-3)}[data-app=journal] .log-aside{display:contents}@media (min-width: 1080px){[data-app=journal] .log-body{display:grid;grid-template-columns:1fr 320px;align-items:start;gap:var(--sp-4)}[data-app=journal] .log-aside{display:flex;flex-direction:column;gap:var(--sp-3);position:sticky;top:calc(56px + var(--sp-3))}}[data-app=ledger]{--ink: var(--text);--ink-soft: var(--text-soft);--ink-muted: var(--text-soft);--ink-faint: var(--text-soft);--paper: var(--bg-paper);--paper-warm: var(--bg-elevated);--surface: var(--bg-paper);--surface-elevated: var(--bg-elevated);--line: var(--border);--line-soft: var(--border);--line-strong: var(--border);--accent: var(--app-accent);--accent-deep: var(--app-accent);--accent-soft: var(--app-soft);--accent-soft-legacy: var(--app-soft);--accent-weak: var(--app-weak);--rose: var(--app-accent);--rose-soft: var(--app-soft);--rose-deep: var(--app-accent);--gold: var(--warn);--plum: var(--secondary);--slate: var(--text-soft);--positive: var(--ok);--positive-soft: color-mix(in srgb, var(--ok) 18%, var(--bg-paper));--negative: var(--danger);--negative-soft: color-mix(in srgb, var(--danger) 18%, var(--bg-paper));--ok-soft: color-mix(in srgb, var(--ok) 18%, var(--bg-paper));--danger-soft: color-mix(in srgb, var(--danger) 18%, var(--bg-paper));--mono: var(--font-mono);--sans: var(--font-body);--serif: var(--font-display);--radius: var(--r-md);--radius-lg: var(--r-lg);--radius-sm: var(--r-sm);--radius-xs: var(--r-sm);--radius-pill: var(--r-full);--shadow: 0 1px 3px rgba(0,0,0,.22);--shadow-sm: 0 1px 2px rgba(0,0,0,.18);--shadow-lg: 0 8px 24px rgba(0,0,0,.28)}[data-app=ledger] button{font:inherit;cursor:pointer;background:none;border:0;color:inherit;padding:0}[data-app=ledger] input,[data-app=ledger] select,[data-app=ledger] textarea{font:inherit;color:inherit}[data-app=ledger] a{color:inherit;text-decoration:none}[data-app=ledger] ::selection{background:var(--app-soft);color:var(--text)}[data-app=ledger] .page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}[data-app=ledger] .page-header h1{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-2xl);letter-spacing:-.015em;margin:0;color:var(--text);line-height:1.15}[data-app=ledger] .page-header p{margin:4px 0 0;font-size:var(--fs-sm);color:var(--text-soft);max-width:var(--measure)}[data-app=ledger] .eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px}[data-app=ledger] .card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4)}[data-app=ledger] .card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}[data-app=ledger] .card-head h3{margin:0;font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-lg);letter-spacing:-.01em}[data-app=ledger] .stat-card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);position:relative;overflow:hidden}[data-app=ledger] .stat-label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--sp-2)}[data-app=ledger] .stat-value{font-family:var(--font-mono);font-size:var(--fs-3xl);font-weight:var(--fw-med);letter-spacing:-.02em;color:var(--text);line-height:1.05}[data-app=ledger] .stat-sub{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--text-soft)}[data-app=ledger] .stat-card.accent{border-color:color-mix(in srgb,var(--app-accent) 42%,var(--border))}[data-app=ledger] .stat-card.accent .stat-value{color:var(--app-accent)}[data-app=ledger] .stat-card.warm{border-color:color-mix(in srgb,var(--warn) 38%,var(--border))}[data-app=ledger] .stat-card.warm .stat-value{color:var(--warn)}[data-app=ledger] .stat-card.rose{border-color:color-mix(in srgb,var(--secondary) 42%,var(--border))}[data-app=ledger] .stat-card.rose .stat-value{color:var(--secondary)}[data-app=ledger] .stat-card.gold{border-color:color-mix(in srgb,var(--warn) 38%,var(--border))}[data-app=ledger] .stat-card.gold .stat-value{color:var(--warn);font-family:var(--font-mono)}[data-app=ledger] .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}[data-app=ledger] .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}[data-app=ledger] .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}@media (max-width: 720px){[data-app=ledger] .grid-2,[data-app=ledger] .grid-3,[data-app=ledger] .grid-4{grid-template-columns:1fr 1fr}}@media (max-width: 460px){[data-app=ledger] .grid-2,[data-app=ledger] .grid-3,[data-app=ledger] .grid-4{grid-template-columns:1fr}}[data-app=ledger] table.ledger{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}[data-app=ledger] table.ledger th{text-align:left;font-weight:var(--fw-med);color:var(--text-soft);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border)}[data-app=ledger] table.ledger td{padding:var(--sp-3) var(--sp-2);border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);vertical-align:middle}[data-app=ledger] table.ledger tr:last-child td{border-bottom:0}[data-app=ledger] table.ledger tr:hover td{background:color-mix(in srgb,var(--bg-elevated) 60%,transparent)}[data-app=ledger] table.ledger td.num,[data-app=ledger] table.ledger th[style*=right],[data-app=ledger] .num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}[data-app=ledger] table.ledger td.mono,[data-app=ledger] .mono{font-family:var(--font-mono)}[data-app=ledger] .amount-pos,[data-app=ledger] .amount.amount-pos{color:var(--ok)}[data-app=ledger] .amount-neg,[data-app=ledger] .amount.amount-neg{color:var(--danger)}[data-app=ledger] .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px 16px;border-radius:var(--r-md);background:var(--accent);color:#fff;font-weight:var(--fw-title);font-size:var(--fs-sm);border:1px solid var(--accent);transition:.16s cubic-bezier(.2,.8,.2,1);min-height:38px}[data-app=ledger] .btn:hover:not(:disabled){filter:brightness(1.06)}[data-app=ledger] .btn:active:not(:disabled){transform:scale(.98)}[data-app=ledger] .btn:disabled{opacity:.45;cursor:default}[data-app=ledger] .btn-ghost{background:transparent;color:var(--text);border-color:var(--border);font-weight:var(--fw-med)}[data-app=ledger] .btn-ghost:hover:not(:disabled){background:var(--bg-paper);border-color:color-mix(in srgb,var(--border) 160%,transparent)}[data-app=ledger] .btn-sm{padding:6px 12px;font-size:var(--fs-xs);min-height:32px;border-radius:var(--r-sm)}[data-app=ledger] .icon-btn{width:32px;height:32px;border-radius:var(--r-sm);background:transparent;color:var(--text-soft);font-size:16px;display:inline-flex;align-items:center;justify-content:center;margin-left:2px;transition:.16s}[data-app=ledger] .icon-btn:hover{background:var(--bg-elevated);color:var(--text)}[data-app=ledger] .field{display:flex;flex-direction:column;gap:4px;margin-bottom:0}[data-app=ledger] .field label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);letter-spacing:.04em}[data-app=ledger] .input,[data-app=ledger] .select{width:100%;padding:10px 12px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);transition:border-color .16s;min-height:38px}[data-app=ledger] .input:focus,[data-app=ledger] .select:focus{outline:none;border-color:var(--app-accent)}[data-app=ledger] .input.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}[data-app=ledger] .input[type=color]{padding:4px;cursor:pointer}[data-app=ledger] input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}[data-app=ledger] .pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft)}[data-app=ledger] .pill-auto{color:var(--info);border-color:color-mix(in srgb,var(--info) 40%,var(--border));background:color-mix(in srgb,var(--info) 14%,var(--bg-sunken))}[data-app=ledger] .pill-paid{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:var(--ok-soft)}[data-app=ledger] .pill-late{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border));background:var(--danger-soft)}[data-app=ledger] .pill-due{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--border));background:var(--warn-soft)}[data-app=ledger] .dot{display:inline-block;width:9px;height:9px;border-radius:var(--r-full);background:var(--text-soft);vertical-align:middle;flex-shrink:0}[data-app=ledger] .progress{width:100%;height:6px;background:var(--bg-sunken);border-radius:var(--r-full);overflow:hidden}[data-app=ledger] .progress-fill{height:100%;background:var(--app-accent);border-radius:var(--r-full);transition:width .22s cubic-bezier(.2,.8,.2,1)}[data-app=ledger] .progress-fill.gold{background:var(--warn)}[data-app=ledger] .progress-fill.over{background:var(--danger)}[data-app=ledger] .empty{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-soft)}[data-app=ledger] .empty h3{margin:0 0 var(--sp-2);font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-lg);color:var(--text)}[data-app=ledger] .empty p{margin:0;font-size:var(--fs-sm)}[data-app=ledger] .empty .big{font-size:36px;margin-bottom:var(--sp-3);opacity:.6}[data-app=ledger] .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);animation:fade .18s ease}[data-app=ledger] .modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-5);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;animation:rise .22s cubic-bezier(.2,.8,.2,1)}[data-app=ledger] .modal h2{margin:0 0 var(--sp-4);font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-xl);letter-spacing:-.01em}[data-app=ledger] .modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}@keyframes rise{0%{transform:translateY(12px);opacity:0}}[data-app=ledger] .import-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);margin-bottom:var(--sp-4)}[data-app=ledger] .import-stat{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}[data-app=ledger] .import-stat.green{border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}[data-app=ledger] .import-stat.warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--border))}[data-app=ledger] .import-stat.danger{border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}@media (max-width: 720px){[data-app=ledger] .import-stats{grid-template-columns:1fr 1fr}}@media (max-width: 720px){[data-app=ledger] .page-header h1{font-size:var(--fs-xl)}[data-app=ledger] .stat-value{font-size:var(--fs-2xl)}}[data-app=ledger] .subtabs{display:flex;gap:4px;padding:4px;margin-bottom:var(--sp-5);background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto;scrollbar-width:none}[data-app=ledger] .subtabs::-webkit-scrollbar{display:none}[data-app=ledger] .subtab{flex:1 0 auto;white-space:nowrap;padding:8px 16px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--text-soft);transition:.16s cubic-bezier(.2,.8,.2,1);display:inline-flex;align-items:center;gap:6px;justify-content:center}[data-app=ledger] .subtab:hover{color:var(--text)}[data-app=ledger] .subtab.active{background:var(--accent);color:#fff;font-weight:var(--fw-title)}[data-app=ledger] .seg{display:inline-flex;align-items:stretch;gap:2px;padding:3px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md)}[data-app=ledger] .seg-btn{padding:6px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--text-soft);white-space:nowrap;transition:.14s cubic-bezier(.2,.8,.2,1)}[data-app=ledger] .seg-btn:hover{color:var(--text)}[data-app=ledger] .seg-btn.active{background:var(--accent);color:#fff;font-weight:var(--fw-title)}[data-app=ledger] .seg-static{display:inline-flex;align-items:center;padding:6px 10px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text)}[data-app=ledger] .insights-controls,[data-app=ledger] .compare-pickers{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-4)}[data-app=ledger] .ic-group{display:flex;flex-direction:column;gap:6px}[data-app=ledger] .ic-label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase}[data-app=ledger] .compare-vs{font-family:var(--font-display);font-style:italic;color:var(--text-soft);padding-bottom:8px}[data-app=ledger] .tx-filters{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:.6rem}@media (max-width: 720px){[data-app=ledger] .tx-filters{grid-template-columns:1fr 1fr}}[data-app=ledger] .tx-daterange{display:flex;align-items:flex-end;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}[data-app=ledger] .tx-date-field{flex:0 1 200px}[data-app=ledger] .tx-date-field label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);letter-spacing:.04em}[data-app=ledger] .tx-date-clear{flex-shrink:0}[data-app=ledger] .tx-range-warn{font-size:var(--fs-xs);color:var(--danger);align-self:center}@media (max-width: 720px){[data-app=ledger] .tx-date-field{flex:1 1 140px}}[data-app=ledger] .tx-filters-row2{display:flex;align-items:center;gap:var(--sp-4);margin-top:.6rem;flex-wrap:wrap}[data-app=ledger] .check-inline{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-soft);cursor:pointer}[data-app=ledger] .tx-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);margin-left:auto}[data-app=ledger] table.ledger-tight th{padding:8px var(--sp-2)}[data-app=ledger] table.ledger-tight td{padding:6px var(--sp-2);line-height:1.3}[data-app=ledger] .tx-desc{display:block;font-weight:500}[data-app=ledger] .tx-note{display:block;font-size:var(--fs-xs);color:var(--ink-muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}[data-app=ledger] .cat-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px}[data-app=ledger] .tx-group-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);margin-left:6px}[data-app=ledger] .col-date{width:92px}[data-app=ledger] .col-acct{width:120px;font-size:13px}[data-app=ledger] .col-amt{width:110px}[data-app=ledger] .col-act{width:72px;white-space:nowrap}[data-app=ledger] .col-cat{width:150px}[data-app=ledger] table.ledger-tight td.mono.col-date{font-size:12px;color:var(--ink-muted)}[data-app=ledger] .tx-group-head td{background:var(--bg-sunken);border-bottom:1px solid var(--border)!important;padding-top:8px;padding-bottom:8px}[data-app=ledger] .tx-group-head td strong{font-weight:var(--fw-title)}[data-app=ledger] .tx-group+.tx-group .tx-group-head td{border-top:1px solid var(--border)}@media (max-width: 560px){[data-app=ledger] .col-acct{display:none}[data-app=ledger] .tx-note{max-width:180px}}[data-app=ledger] .ledger-page{padding:var(--sp-4);padding-bottom:calc(var(--sp-8) + 64px);max-width:var(--content-wide);margin:0 auto}@media (min-width: 720px){[data-app=ledger] .ledger-page{padding-left:var(--sp-6);padding-right:var(--sp-6);padding-bottom:var(--sp-8)}[data-app=ledger] .subtabs{top:56px}}@media (max-width: 719px){[data-app=ledger] table.ledger thead{display:none}[data-app=ledger] table.ledger tbody tr:not(.tx-group-head){display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border)}[data-app=ledger] table.ledger tbody tr:not(.tx-group-head) td{padding:0;border:0}[data-app=ledger] table.ledger .col-date{grid-column:1;grid-row:1;font-size:var(--fs-xs);color:var(--text-soft)}[data-app=ledger] table.ledger .col-desc{grid-column:1;grid-row:2}[data-app=ledger] table.ledger .col-amt{grid-column:2;grid-row:1 / 3;align-self:center;text-align:right}[data-app=ledger] table.ledger .col-cat,[data-app=ledger] table.ledger .col-acct,[data-app=ledger] table.ledger .col-act{display:none}[data-app=ledger] .tx-group-head{display:block}[data-app=ledger] .tx-group-head td{display:block;width:100%;padding:var(--sp-2) var(--sp-3);border:0}[data-app=ledger] table.ledger tr:hover td{background:transparent}}[data-app=ledger] .page-header h1{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-title);line-height:1.1}[data-app=ledger] .subtabs{position:sticky;top:0;z-index:5;background:var(--bg);padding:var(--sp-3) var(--sp-4) 0}[data-app=pets] .icon-btn{width:38px;height:38px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);font-size:16px;color:var(--text-soft);display:grid;place-items:center;transition:.16s cubic-bezier(.2,.8,.2,1)}[data-app=pets] .icon-btn:active{transform:scale(.94);color:var(--text)}[data-app=pets] .tab-pad{padding:var(--sp-4) var(--sp-4) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=pets] .tab-label{font-size:var(--fs-xs);font-weight:var(--fw-med);letter-spacing:.01em}[data-app=pets] .card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}[data-app=pets] .card.flush-list{padding:var(--sp-1) var(--sp-4)}[data-app=pets] .muted{color:var(--text-soft)}[data-app=pets] .faint{color:var(--text-faint)}[data-app=pets] .sm{font-size:var(--fs-sm)}[data-app=pets] .center{text-align:center}[data-app=pets] .grow{flex:1;min-width:0}[data-app=pets] .col{display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=pets] .col-2{display:flex;flex-direction:column;gap:var(--sp-2)}[data-app=pets] .section-h{font-family:var(--font-display);font-size:var(--fs-xl);margin-top:var(--sp-1)}[data-app=pets] .section-h.flush{margin:0}[data-app=pets] .section-h-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-2)}[data-app=pets] .section-sub{font-size:var(--fs-xs);color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--fw-med)}[data-app=pets] .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-radius:var(--r-md);font-weight:var(--fw-med);font-size:var(--fs-base);background:var(--bg-sunken);color:var(--text);transition:.16s cubic-bezier(.2,.8,.2,1);border:1px solid var(--border);min-height:44px}[data-app=pets] .btn:active{transform:scale(.98)}[data-app=pets] .btn:disabled{opacity:.45;cursor:default;transform:none}[data-app=pets] .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:var(--fw-title)}[data-app=pets] .btn.ghost{background:transparent}[data-app=pets] .btn.ghost.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 38%,transparent)}[data-app=pets] .btn.danger{background:var(--danger-weak);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 38%,transparent)}[data-app=pets] .btn.sm{padding:7px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm);min-height:36px}[data-app=pets] .btn.block{width:100%}[data-app=pets] .btn.cta-big{padding:14px 16px}[data-app=pets] .action-row{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:var(--sp-2)}[data-app=pets] .chip{padding:7px 13px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-weight:var(--fw-med);font-size:var(--fs-sm);border:1px solid transparent;transition:.16s;min-height:34px;display:inline-flex;align-items:center;gap:5px}[data-app=pets] .chip.on{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}[data-app=pets] .chip.app-on{background:var(--app-weak);color:var(--app-accent);border-color:var(--app-accent)}[data-app=pets] .chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}[data-app=pets] .field{display:flex;flex-direction:column;gap:5px}[data-app=pets] .field>label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}[data-app=pets] .input,[data-app=pets] .select,[data-app=pets] .textarea{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:11px 12px;color:var(--text);width:100%}[data-app=pets] .input:focus,[data-app=pets] .select:focus,[data-app=pets] .textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}[data-app=pets] .field-help{font-size:var(--fs-xs);color:var(--text-faint);margin-top:2px}[data-app=pets] .field-row{display:flex;gap:var(--sp-3)}[data-app=pets] .field-row>.field{flex:1}[data-app=pets] .field-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-soft)}[data-app=pets] .field-check input{width:18px;height:18px;accent-color:var(--accent)}[data-app=pets] .row{display:flex;align-items:center;gap:var(--sp-3);padding:14px 0;border-bottom:1px solid var(--border)}[data-app=pets] .row:last-child{border-bottom:none}[data-app=pets] .row .title{font-weight:var(--fw-med);font-size:var(--fs-base)}[data-app=pets] .row .sub{font-size:var(--fs-sm);color:var(--text-soft);margin-top:2px}[data-app=pets] .row-end{display:flex;flex-direction:column;align-items:flex-end;gap:6px}[data-app=pets] .row-x{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--text-faint);font-size:14px}[data-app=pets] .row-x:active{background:var(--bg-sunken);color:var(--danger)}[data-app=pets] .avatar{width:46px;height:46px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);display:grid;place-items:center;font-size:22px;flex-shrink:0;overflow:hidden}[data-app=pets] .avatar img{width:100%;height:100%;object-fit:cover;display:block}[data-app=pets] .avatar.lg{width:88px;height:88px;font-size:38px;border-radius:var(--r-xl)}[data-app=pets] .avatar.app-tint{background:var(--app-weak);color:var(--app-accent)}[data-app=pets] .badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:var(--fw-title);padding:3px 9px;border-radius:var(--r-full);font-family:var(--font-mono);letter-spacing:.02em}[data-app=pets] .badge .b-ic{font-size:11px}[data-app=pets] .badge.overdue{background:var(--danger-weak);color:var(--danger)}[data-app=pets] .badge.soon{background:var(--warn-weak);color:var(--warn)}[data-app=pets] .badge.upcoming{background:var(--accent-weak);color:var(--accent)}[data-app=pets] .badge.later{background:var(--bg-sunken);color:var(--text-soft)}[data-app=pets] .badge.app{background:var(--app-weak);color:var(--app-accent)}[data-app=pets] .badge.ok{background:var(--ok-weak);color:var(--ok)}[data-app=pets] .badge.danger{background:var(--danger-weak);color:var(--danger)}[data-app=pets] .badge.muted{background:var(--bg-sunken);color:var(--text-soft)}[data-app=pets] .pet-card{display:flex;align-items:center;gap:var(--sp-3);background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);transition:.16s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden;width:100%;text-align:left}[data-app=pets] .pet-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 0% 50%,var(--app-weak),transparent 60%);opacity:.55;pointer-events:none}[data-app=pets] .pet-card:active{transform:scale(.985);border-color:var(--app-accent)}[data-app=pets] .pet-card>*{position:relative;z-index:1}[data-app=pets] .pet-name{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text)}[data-app=pets] .pet-sub{font-size:var(--fs-sm);color:var(--text-soft);margin-top:2px}[data-app=pets] .pet-caret{font-family:var(--font-mono);color:var(--text-soft);font-size:18px}[data-app=pets] .kv{display:flex;justify-content:space-between;gap:var(--sp-3);padding:7px 0;font-size:var(--fs-sm)}[data-app=pets] .kv .k{color:var(--text-soft)}[data-app=pets] .kv .v{color:var(--text);text-align:right}[data-app=pets] .spark-wrap{display:flex;flex-direction:column;gap:6px;padding:var(--sp-2) 0}[data-app=pets] .spark{width:100%;height:60px;display:block}[data-app=pets] .spark-meta{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-soft);font-family:var(--font-mono)}[data-app=pets] .filter-row{display:flex;gap:var(--sp-2);overflow-x:auto;padding:2px 0 var(--sp-1);margin:0 -2px;scrollbar-width:none}[data-app=pets] .filter-row::-webkit-scrollbar{display:none}[data-app=pets] .filter-row .chip{flex-shrink:0}[data-app=pets] .empty{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-soft)}[data-app=pets] .empty.full{min-height:60vh;justify-content:center}[data-app=pets] .empty .big{font-size:44px;opacity:.85}[data-app=pets] .empty h3{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text)}[data-app=pets] .empty p{font-size:var(--fs-sm);max-width:34ch}[data-app=pets] .empty .btn{margin-top:var(--sp-1)}[data-app=pets] .sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000080;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}[data-app=pets] .sheet{width:100%;max-width:640px;background:var(--bg-elevated);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px var(--sp-5) calc(env(safe-area-inset-bottom) + 22px);animation:rise .26s cubic-bezier(.2,.8,.2,1);max-height:90vh;overflow-y:auto}[data-app=pets] .sheet-grip{width:40px;height:4px;border-radius:var(--r-full);background:var(--border);margin:6px auto 14px}[data-app=pets] .sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}[data-app=pets] .sheet-head h3{font-family:var(--font-display);font-size:var(--fs-xl)}[data-app=pets] .sheet-x{color:var(--text-soft);font-size:16px;padding:8px;width:36px;height:36px}[data-app=pets] .sheet-body{display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=pets] .sheet-foot{margin-top:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2)}[data-app=pets] .sheet-foot.row-btns{flex-direction:row;gap:var(--sp-2)}[data-app=pets] .sheet-foot.row-btns .btn{flex:1}[data-app=pets] .sheet-foot.row-btns .btn.ghost{flex:0 0 auto}[data-app=pets] .confirm-body{color:var(--text-soft);font-size:var(--fs-sm);line-height:1.5}[data-app=pets] .confirm-body strong{color:var(--text)}[data-app=pets] .toast-stack{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 76px);z-index:60;display:flex;flex-direction:column;gap:8px;pointer-events:none}[data-app=pets] .toast{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px;display:flex;align-items:center;gap:var(--sp-3);box-shadow:0 8px 24px #00000059;pointer-events:auto;animation:risesm .22s cubic-bezier(.2,.8,.2,1);font-size:var(--fs-sm)}[data-app=pets] .toast-undo{color:var(--accent);font-weight:var(--fw-title);font-size:var(--fs-sm);padding:4px 8px;border-radius:var(--r-sm)}[data-app=pets] .toast-undo:active{background:var(--accent-weak)}[data-app=pets] .photo-pick{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px dashed var(--border);border-radius:var(--r-md);background:var(--bg-sunken);cursor:pointer}[data-app=pets] .photo-pick:active{border-color:var(--accent)}[data-app=pets] .photo-pick input{display:none}[data-app=pets] .photo-pick .label{font-size:var(--fs-sm)}[data-app=pets] .divider{height:1px;background:var(--border);margin:var(--sp-3) 0}[data-app=pets] .spacer{height:var(--sp-2)}[data-app=pets] .totals-strip{display:flex;align-items:baseline;justify-content:space-between;padding:var(--sp-3) var(--sp-1)}[data-app=pets] .totals-strip .label{font-size:var(--fs-xs);color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--fw-med)}[data-app=pets] .totals-strip .value{font-family:var(--font-mono);font-size:var(--fs-xl);color:var(--app-accent);font-weight:var(--fw-title)}[data-app=pets] a.subtle{color:var(--accent);text-decoration:none;font-weight:var(--fw-med)}[data-app=pets] a.subtle:active{opacity:.6}@keyframes risesm{0%{transform:translateY(20px);opacity:0}}[data-app=settings] .settings-page{max-width:640px;margin:0 auto;padding:var(--sp-4);padding-bottom:calc(var(--sp-8) + 64px)}@media (min-width: 720px){[data-app=settings] .settings-page{padding-left:var(--sp-6);padding-right:var(--sp-6);padding-bottom:var(--sp-8)}}[data-app=settings] .set-head{margin-bottom:var(--sp-5)}[data-app=settings] .set-head h1{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-title);line-height:1.1}[data-app=settings] .set-head p{color:var(--text-soft);font-size:var(--fs-sm);margin-top:2px}[data-app=settings] .set-section{margin-bottom:var(--sp-6)}[data-app=settings] .set-section-head{margin-bottom:var(--sp-3)}[data-app=settings] .set-section-head h2{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-title)}[data-app=settings] .set-section-head p{color:var(--text-soft);font-size:var(--fs-sm);margin-top:2px}[data-app=settings] .set-card{padding:var(--sp-3) var(--sp-4)}[data-app=settings] .set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0}[data-app=settings] .set-row+.set-row{border-top:1px solid var(--border)}[data-app=settings] .seg{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:4px}[data-app=settings] .seg-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:var(--r-sm);color:var(--text-soft);font-weight:var(--fw-med);font-size:var(--fs-sm);background:transparent;border:0;cursor:pointer;transition:background .15s,color .15s}[data-app=settings] .seg-btn.on{background:var(--app-accent);color:#fff}[data-app=settings] .seg-hint{font-size:var(--fs-xs);opacity:.8;font-weight:var(--fw-body)}[data-app=settings] .who{display:flex;align-items:center;gap:var(--sp-3)}[data-app=settings] .who-dot{width:26px;height:26px;border-radius:var(--r-full);flex:none}[data-app=settings] .who-name{font-weight:var(--fw-med)}[data-app=settings] .who-sub{color:var(--text-soft);font-size:var(--fs-sm)}[data-app=settings] .member-row{justify-content:flex-start;gap:var(--sp-3)}[data-app=settings] .tag{margin-left:auto;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft);border:1px solid var(--border);border-radius:var(--r-full);padding:1px 8px}[data-app=settings] .data-table{width:100%;border-collapse:collapse}[data-app=settings] .data-table td{padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}[data-app=settings] .data-table tr:last-child td{border-bottom:0}[data-app=settings] .dt-name{font-weight:var(--fw-med)}[data-app=settings] .dt-count{text-align:right;font-family:var(--font-mono);color:var(--text-soft);width:4ch;padding-right:var(--sp-4)}[data-app=settings] .dt-action{text-align:right;width:64px}[data-app=settings] .danger-text{color:var(--danger)}[data-app=settings] .danger-text:disabled{color:var(--text-soft);opacity:.5}[data-app=settings] .btn.block{width:100%;margin-top:var(--sp-3)}[data-app=settings] .fine{color:var(--text-soft);font-size:var(--fs-xs);line-height:1.5;margin-top:var(--sp-2);max-width:var(--measure)}[data-app=settings] .about .set-row span:first-child{color:var(--text-soft)}[data-app=settings] .about-note{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border)}[data-app=settings] .set-foot{text-align:center;color:var(--text-soft);font-size:var(--fs-xs);font-style:italic;margin-top:var(--sp-6)}[data-app=quest] .icon-btn{width:38px;height:38px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);font-size:16px;display:grid;place-items:center;transition:.16s}[data-app=quest] .icon-btn:active{transform:scale(.95)}[data-app=quest] .card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}[data-app=quest] .card-title{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-lg);margin-bottom:var(--sp-3);display:flex;align-items:center;justify-content:space-between;letter-spacing:-.01em}[data-app=quest] .card-title .meta{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-soft);font-weight:var(--fw-body)}[data-app=quest] .muted{color:var(--text-soft)}[data-app=quest] .empty{text-align:center;color:var(--text-soft);font-size:var(--fs-sm);padding:var(--sp-5) 0;font-style:italic}[data-app=quest] .row{display:flex;align-items:center;gap:10px}[data-app=quest] .spread{display:flex;align-items:center;justify-content:space-between}[data-app=quest] .grow{flex:1;min-width:0}[data-app=quest] .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}[data-app=quest] .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-radius:var(--r-md);font-family:var(--font-body);font-weight:var(--fw-med);font-size:var(--fs-base);background:var(--bg-sunken);color:var(--text);border:1px solid var(--border);transition:.16s cubic-bezier(.2,.8,.2,1)}[data-app=quest] .btn:active{transform:scale(.98)}[data-app=quest] .btn:disabled{opacity:.45;cursor:default;transform:none}[data-app=quest] .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:var(--fw-title)}[data-app=quest] .btn.primary:active{background:color-mix(in srgb,var(--accent) 85%,#000)}[data-app=quest] .btn.ghost{background:transparent}[data-app=quest] .btn.sm{padding:7px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm)}[data-app=quest] .btn.block{width:100%}[data-app=quest] .chip,[data-app=quest] .pill{padding:7px 13px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-family:var(--font-body);font-weight:var(--fw-med);font-size:var(--fs-sm);border:1px solid transparent;transition:.16s}[data-app=quest] .chip.on,[data-app=quest] .chip.sel,[data-app=quest] .pill.sel{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}[data-app=quest] .pill.app-sel{background:var(--app-weak);color:var(--app-accent);border-color:var(--app-accent)}[data-app=quest] .pill-wrap,[data-app=quest] .chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}[data-app=quest] .field{display:flex;flex-direction:column;gap:4px}[data-app=quest] .field span.label{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}[data-app=quest] .field input,[data-app=quest] .field select,[data-app=quest] input.field-input{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text);width:100%;font-family:var(--font-body);font-size:var(--fs-base)}[data-app=quest] .field input:focus,[data-app=quest] input.field-input:focus{outline:none;border-color:var(--accent)}[data-app=quest] .hud{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-4) var(--sp-5);position:relative;overflow:hidden}[data-app=quest] .hud:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 0% 0%,color-mix(in srgb,var(--app-accent) 12%,transparent),transparent 60%);pointer-events:none}[data-app=quest] .hud-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);position:relative}[data-app=quest] .hud-title{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-2xl);line-height:1.05;letter-spacing:-.02em;color:var(--text)}[data-app=quest] .hud-title b{color:var(--app-accent);font-weight:var(--fw-title);font-style:italic}[data-app=quest] .hud-rank{font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--text-soft);margin-top:2px;letter-spacing:.04em}[data-app=quest] .lvl-badge{display:grid;place-items:center;grid-template-rows:auto auto;width:64px;height:64px;border-radius:var(--r-full);flex-shrink:0;background:var(--app-accent);color:#fff;border:1px solid var(--app-accent-deep);box-shadow:0 2px 8px color-mix(in srgb,var(--app-accent) 30%,transparent)}[data-app=quest] .lvl-badge .n{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-2xl);line-height:1}[data-app=quest] .lvl-badge .l{font-family:var(--font-body);font-weight:var(--fw-med);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;opacity:.85;margin-top:2px}[data-app=quest] .xpbar-wrap{margin-top:var(--sp-4);position:relative}[data-app=quest] .xpbar-meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-sm);color:var(--text-soft);margin-bottom:6px}[data-app=quest] .xpbar-meta .xp{font-family:var(--font-mono);color:var(--text-soft);font-size:var(--fs-sm)}[data-app=quest] .xpbar{height:8px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);overflow:hidden;position:relative}[data-app=quest] .xpbar-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--app-accent-deep),var(--app-accent));transition:width .6s cubic-bezier(.2,.8,.2,1)}[data-app=quest] .streak-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--fire)}[data-app=quest] .habit-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);margin-bottom:var(--sp-2);transition:.16s cubic-bezier(.2,.8,.2,1)}[data-app=quest] .habit-row:not([disabled]):active{transform:scale(.99)}[data-app=quest] .habit-row.done{border-color:color-mix(in srgb,var(--ok) 60%,transparent);background:color-mix(in srgb,var(--ok) 8%,var(--bg-paper))}[data-app=quest] .habit-check{width:30px;height:30px;flex-shrink:0;border-radius:var(--r-sm);border:2px solid var(--border);background:var(--bg-sunken);display:grid;place-items:center;color:transparent;font-size:15px;font-weight:700;transition:all .16s cubic-bezier(.2,.8,.2,1)}[data-app=quest] .habit-row.done .habit-check{background:var(--ok);border-color:var(--ok);color:#fff}[data-app=quest] .habit-icon{font-size:22px;width:28px;text-align:center;flex-shrink:0}[data-app=quest] .habit-text{flex:1;min-width:0}[data-app=quest] .habit-label{font-family:var(--font-display);font-size:var(--fs-base);font-weight:var(--fw-title);color:var(--text)}[data-app=quest] .habit-row.done .habit-label{color:var(--text)}[data-app=quest] .habit-hint{font-size:var(--fs-sm);color:var(--text-soft);margin-top:2px}[data-app=quest] .habit-xp{font-family:var(--font-mono);color:var(--app-accent);font-size:var(--fs-xs);font-weight:var(--fw-med)}[data-app=quest] .habit-streak{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fire);font-weight:var(--fw-med);white-space:nowrap}[data-app=quest] .quick-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2)}[data-app=quest] .quick-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--sp-3) 4px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-soft);font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-med);letter-spacing:.02em;transition:.16s cubic-bezier(.2,.8,.2,1);min-height:64px}[data-app=quest] .quick-btn:active{transform:scale(.96);border-color:var(--app-accent);color:var(--app-accent)}[data-app=quest] .quick-btn .qi{font-size:22px;line-height:1}[data-app=quest] .scale{display:flex;gap:var(--sp-2)}[data-app=quest] .scale-dot{width:42px;height:42px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-sunken);color:var(--text-soft);font-family:var(--font-body);font-size:var(--fs-base);font-weight:var(--fw-med);display:grid;place-items:center;transition:.16s}[data-app=quest] .scale-dot.sel{border-color:var(--app-accent);background:var(--app-weak);color:var(--app-accent);font-weight:var(--fw-title)}[data-app=quest] .tl-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);font-size:var(--fs-base)}[data-app=quest] .tl-item:last-child{border-bottom:none}[data-app=quest] .tl-time{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-soft);width:56px;flex-shrink:0}[data-app=quest] .tl-tag{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-med);text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:var(--r-full);flex-shrink:0}[data-app=quest] .tl-tag.food{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}[data-app=quest] .tl-tag.symptom{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}[data-app=quest] .tl-tag.mood{background:color-mix(in srgb,var(--app-accent) 18%,transparent);color:var(--app-accent)}[data-app=quest] .tl-tag.water{background:color-mix(in srgb,var(--info) 18%,transparent);color:var(--info)}[data-app=quest] .tl-tag.exercise{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}[data-app=quest] .tl-tag.workout{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}[data-app=quest] .tl-tag.sleep{background:color-mix(in srgb,var(--secondary) 18%,transparent);color:var(--secondary)}[data-app=quest] .tl-body{flex:1;color:var(--text);min-width:0}[data-app=quest] .tl-del{color:var(--text-soft);font-size:18px;padding:4px 8px;border-radius:var(--r-sm)}[data-app=quest] .tl-del:active{background:var(--bg-sunken)}[data-app=quest] .tl-src{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);padding:2px 7px;border:1px solid var(--border);border-radius:var(--r-full);white-space:nowrap}[data-app=quest] .badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}[data-app=quest] .badge{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:var(--sp-4) var(--sp-2);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated)}[data-app=quest] .badge.earned{border-color:color-mix(in srgb,var(--app-accent) 50%,transparent);background:var(--app-weak)}[data-app=quest] .badge .b-ico{font-size:30px;filter:grayscale(1) opacity(.4);line-height:1}[data-app=quest] .badge.earned .b-ico{filter:none}[data-app=quest] .badge .b-name{font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-title);color:var(--text-soft);line-height:1.15}[data-app=quest] .badge.earned .b-name{color:var(--app-accent)}[data-app=quest] .badge .b-desc{font-size:var(--fs-xs);color:var(--text-soft);line-height:1.3}[data-app=quest] .chal{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);margin-bottom:var(--sp-2)}[data-app=quest] .chal.done{border-color:color-mix(in srgb,var(--ok) 50%,transparent);background:color-mix(in srgb,var(--ok) 8%,var(--bg-paper))}[data-app=quest] .chal-info{flex:1;min-width:0}[data-app=quest] .chal-name{font-family:var(--font-display);font-size:var(--fs-base);font-weight:var(--fw-title);color:var(--text);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}[data-app=quest] .chal-name .scope{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-med);text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);border:1px solid var(--border);border-radius:var(--r-sm);padding:1px 6px}[data-app=quest] .chal-desc{font-size:var(--fs-sm);color:var(--text-soft);margin-top:2px}[data-app=quest] .chal-bonus{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--app-accent);white-space:nowrap}[data-app=quest] .chal.done .chal-bonus{color:var(--ok)}[data-app=quest] .chal-prog{height:4px;background:var(--bg-sunken);border-radius:var(--r-full);margin-top:8px;overflow:hidden}[data-app=quest] .chal-prog-fill{height:100%;background:var(--app-accent);border-radius:var(--r-full);transition:width .4s}[data-app=quest] .date-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0}[data-app=quest] .date-nav button{font-family:var(--font-body);font-size:18px;color:var(--text-soft);padding:8px 14px;border-radius:var(--r-sm);transition:.16s}[data-app=quest] .date-nav button:active{background:var(--bg-sunken)}[data-app=quest] .date-nav button:disabled{opacity:.3}[data-app=quest] .date-label{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-title);color:var(--text)}[data-app=quest] .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}[data-app=quest] .stat{text-align:center;padding:var(--sp-3) var(--sp-2);border-radius:var(--r-md);background:var(--bg-elevated);border:1px solid var(--border)}[data-app=quest] .stat .v{font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:var(--fw-med);color:var(--text);letter-spacing:-.02em}[data-app=quest] .stat .k{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-med);text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);margin-top:4px}[data-app=quest] .bar-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}[data-app=quest] .bar-label{width:130px;font-size:var(--fs-sm);color:var(--text-soft);text-align:right;font-weight:var(--fw-med);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-app=quest] .bar-track{flex:1;height:14px;background:var(--bg-sunken);border-radius:var(--r-full);overflow:hidden;border:1px solid var(--border)}[data-app=quest] .bar-fill{height:100%;background:var(--app-accent);border-radius:var(--r-full);transition:width .4s cubic-bezier(.2,.8,.2,1)}[data-app=quest] .bar-val{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-soft);width:36px;text-align:right;flex-shrink:0}[data-app=quest] .sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000080;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}[data-app=quest] .sheet-inner{width:100%;max-width:640px;background:var(--bg-elevated);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px 18px calc(env(safe-area-inset-bottom) + 20px);animation:rise .26s cubic-bezier(.2,.8,.2,1);max-height:88vh;overflow-y:auto}[data-app=quest] .sheet-inner:before{content:"";display:block;width:40px;height:4px;border-radius:var(--r-full);background:var(--border);margin:6px auto 14px}[data-app=quest] .sheet-title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-title);margin-bottom:var(--sp-4);color:var(--text)}@media (min-width:640px){[data-app=quest] .sheet{align-items:center;padding:var(--sp-5)}[data-app=quest] .sheet-inner{border-radius:var(--r-xl);max-height:86vh;padding-bottom:20px}}[data-app=quest] .time-confirm{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-soft);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--accent-weak);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);display:flex;align-items:center;gap:8px}[data-app=quest] .time-confirm strong{color:var(--text);font-weight:var(--fw-med)}[data-app=quest] .time-confirm-dot{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:var(--r-full);background:var(--accent);color:#fff;font-size:11px;flex-shrink:0}@keyframes xpfloat{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%,-36px);opacity:0}}[data-app=quest] .xp-toast,.xp-toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);background:var(--app-accent);color:#fff;font-weight:600;font-size:var(--fs-sm);padding:10px 18px;border-radius:var(--r-full);box-shadow:0 6px 20px #00000059;z-index:50;animation:questToastIn .18s ease-out}@keyframes questToastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}[data-app=almanac]{--kind-bill:#c0894a;--kind-payday:#5fb47e;--kind-goal:#6f86c2;--kind-flow:#d06a82;--kind-meal:#cb7a4f;--kind-pet:#d8a24f;--kind-gcal:#4ca39b;--kind-family:#9b82be}[data-app=almanac] .icon-btn{width:38px;height:38px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);font-size:16px;color:var(--text);display:grid;place-items:center}[data-app=almanac] .icon-btn:active{transform:scale(.96)}[data-app=almanac] .tab-pad{padding:var(--sp-4) var(--sp-4) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=almanac] .tab-label{font-size:var(--fs-xs);font-weight:var(--fw-med)}[data-app=almanac] .card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}[data-app=almanac] .muted{color:var(--text-soft)}[data-app=almanac] .sm{font-size:var(--fs-sm)}[data-app=almanac] .center{text-align:center}[data-app=almanac] .section-h{font-family:var(--font-display);font-size:var(--fs-xl);margin:var(--sp-1) 0 var(--sp-3)}[data-app=almanac] .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-radius:var(--r-md);font-weight:var(--fw-med);font-size:var(--fs-base);background:var(--bg-sunken);color:var(--text);transition:.16s cubic-bezier(.2,.8,.2,1);border:1px solid var(--border);font-family:inherit}[data-app=almanac] .btn:active{transform:scale(.98)}[data-app=almanac] .btn:disabled{opacity:.45;cursor:default;transform:none}[data-app=almanac] .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:var(--fw-title)}[data-app=almanac] .btn.ghost{background:transparent}[data-app=almanac] .btn.sm{padding:7px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm)}[data-app=almanac] .btn.block{width:100%}[data-app=almanac] .btn.icon-only{padding:8px;min-width:36px}[data-app=almanac] .chip{padding:7px 13px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-weight:var(--fw-med);font-size:var(--fs-sm);border:1px solid transparent;transition:.16s;font-family:inherit}[data-app=almanac] .chip.on{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}[data-app=almanac] .chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}[data-app=almanac] .field{display:flex;flex-direction:column;gap:4px}[data-app=almanac] .field>span{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}[data-app=almanac] .field input,[data-app=almanac] .select{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text);width:100%;font-family:inherit;font-size:var(--fs-base)}[data-app=almanac] .field input:focus,[data-app=almanac] .select:focus{outline:2px solid var(--accent);outline-offset:-1px}[data-app=almanac] .field-row{display:flex;gap:var(--sp-3)}[data-app=almanac] .field-row .field{flex:1}[data-app=almanac] .empty{text-align:center;padding:40px 20px;color:var(--text-soft);display:flex;flex-direction:column;align-items:center;gap:10px}[data-app=almanac] .empty .big{font-size:44px;opacity:.9}[data-app=almanac] .error{color:var(--danger);font-size:var(--fs-sm);padding:8px 0}[data-app=almanac] .pad{padding:24px 0;text-align:center}[data-app=almanac] .tab-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}[data-app=almanac] .tab-head h2{font-family:var(--font-display);font-size:var(--fs-2xl);margin:0;color:var(--text);letter-spacing:-.01em}[data-app=almanac] .tab-head .muted{font-size:var(--fs-sm);margin-top:2px}[data-app=almanac] .week-nav{display:flex;align-items:center;gap:var(--sp-2)}[data-app=almanac] .week-nav h2{margin:0}[data-app=almanac] .evrow{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-paper);border:1px solid var(--border);border-left:3px solid var(--dot, var(--accent));border-radius:var(--r-md)}[data-app=almanac] .evrow+.evrow{margin-top:var(--sp-2)}[data-app=almanac] .evdot{font-size:17px;flex-shrink:0}[data-app=almanac] .evbody{flex:1;min-width:0}[data-app=almanac] .evtitle{font-weight:var(--fw-title);color:var(--text);font-size:var(--fs-base);display:flex;align-items:center;gap:6px;flex-wrap:wrap}[data-app=almanac] .evtag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;background:var(--bg-sunken);color:var(--text-soft);padding:2px 7px;border-radius:var(--r-sm);font-weight:var(--fw-med)}[data-app=almanac] .evtag.paid{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}[data-app=almanac] .evsub{font-size:var(--fs-sm);color:var(--text-soft);margin-top:2px;font-family:var(--font-body)}[data-app=almanac] .evsub .mono{font-family:var(--font-mono)}[data-app=almanac] .evamt{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-soft);font-weight:var(--fw-med)}[data-app=almanac] .evamt.pos{color:var(--ok)}[data-app=almanac] .evlink{color:var(--text-soft);padding:6px;display:grid;place-items:center}[data-app=almanac] .evlink:hover{color:var(--accent)}[data-app=almanac] .nudges{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4)}[data-app=almanac] .nudge{display:flex;align-items:flex-start;gap:10px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--bg-paper);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text)}[data-app=almanac] .nudge.warn{border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 6%,var(--bg-paper))}[data-app=almanac] .nudge.info{border-left:3px solid var(--app-accent)}[data-app=almanac] .nudge-icon{font-size:16px;line-height:1.4;flex-shrink:0}[data-app=almanac] .nudge-text{line-height:1.45}[data-app=almanac] .highlights{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}[data-app=almanac] .highlights h3{font-family:var(--font-display);font-size:var(--fs-xl);margin:0 0 var(--sp-3)}[data-app=almanac] .highlight{display:flex;gap:9px;padding:6px 0;font-size:var(--fs-sm);color:var(--text)}[data-app=almanac] .agenda{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}[data-app=almanac] .agenda-day{border-bottom:1px solid var(--border);padding:var(--sp-3) var(--sp-4) var(--sp-4)}[data-app=almanac] .agenda-day:last-child{border-bottom:none}[data-app=almanac] .agenda-day.is-today{background:var(--bg-elevated)}[data-app=almanac] .agenda-day.is-past .agenda-dow,[data-app=almanac] .agenda-day.is-past .agenda-mday{color:var(--text-soft)}[data-app=almanac] .agenda-day-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-2)}[data-app=almanac] .agenda-day-label{display:flex;align-items:baseline;gap:var(--sp-2)}[data-app=almanac] .agenda-dow{font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);font-weight:var(--fw-title)}[data-app=almanac] .agenda-mday{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text);line-height:1}[data-app=almanac] .agenda-day.is-today .agenda-dow,[data-app=almanac] .agenda-day.is-today .agenda-mday{color:var(--app-accent)}[data-app=almanac] .agenda-rel{font-size:var(--fs-xs);color:var(--text-soft)}[data-app=almanac] .agenda-empty{color:var(--text-soft);font-size:var(--fs-sm);padding:2px 0 0}[data-app=almanac] .agenda-events{display:flex;flex-direction:column;gap:var(--sp-2)}[data-app=almanac] .tgrid{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}[data-app=almanac] .tgrid-head,[data-app=almanac] .tgrid-allday,[data-app=almanac] .tgrid-body{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr))}[data-app=almanac] .tgrid-head{border-bottom:1px solid var(--border);background:var(--bg-elevated)}[data-app=almanac] .tgrid-gutter{border-right:1px solid var(--border)}[data-app=almanac] .tgrid-daylabel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;gap:2px;background:transparent;border:none;border-right:1px solid var(--border);color:var(--text);cursor:pointer;font-family:inherit;transition:background .16s}[data-app=almanac] .tgrid-daylabel:last-child{border-right:none}[data-app=almanac] .tgrid-daylabel:hover{background:var(--bg-sunken)}[data-app=almanac] .tgrid-dow{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);font-weight:var(--fw-title)}[data-app=almanac] .tgrid-daynum{font-family:var(--font-display);font-size:var(--fs-xl);line-height:1}[data-app=almanac] .tgrid-daylabel.is-today .tgrid-dow{color:var(--app-accent)}[data-app=almanac] .tgrid-daylabel.is-today .tgrid-daynum{background:var(--app-accent);color:#fff;width:30px;height:30px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:var(--fs-base)}[data-app=almanac] .tgrid-allday{border-bottom:1px solid var(--border);background:var(--bg-paper)}[data-app=almanac] .tgrid-allday-label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);font-weight:var(--fw-med);display:flex;align-items:center;justify-content:center;padding:4px}[data-app=almanac] .tgrid-allday-col{border-right:1px solid var(--border);padding:4px;display:flex;flex-direction:column;gap:3px;overflow:hidden;min-width:0}[data-app=almanac] .tgrid-allday-col:last-child{border-right:none}[data-app=almanac] .tgrid-allday-col.is-today-col{background:var(--app-weak)}[data-app=almanac] .tgrid-allday-chip{display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--bg-elevated);border-left:2px solid var(--dot, var(--accent));border-radius:var(--r-sm);font-size:var(--fs-xs);line-height:1.25;min-width:0;max-width:100%;overflow:hidden}[data-app=almanac] .tgrid-allday-mark{font-size:10px;flex-shrink:0}[data-app=almanac] .tgrid-allday-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);flex:1 1 auto;min-width:0}[data-app=almanac] .tgrid-body{position:relative}[data-app=almanac] .tgrid-hours{display:flex;flex-direction:column;background:var(--bg-paper)}[data-app=almanac] .tgrid-hour-row{border-bottom:1px solid var(--border);position:relative}[data-app=almanac] .tgrid-hour-row:last-child{border-bottom:none}[data-app=almanac] .tgrid-hour-label{position:absolute;top:-7px;right:6px;font-size:var(--fs-xs);color:var(--text-soft);background:var(--bg-paper);padding:0 4px;font-family:var(--font-mono)}[data-app=almanac] .tgrid-col{position:relative;border-right:1px solid var(--border);min-width:0}[data-app=almanac] .tgrid-col:last-child{border-right:none}[data-app=almanac] .tgrid-col.is-today-col{background:var(--app-weak)}[data-app=almanac] .tgrid-hour-line{border-bottom:1px solid var(--border);pointer-events:none}[data-app=almanac] .tgrid-hour-line:last-child{border-bottom:none}[data-app=almanac] .tgrid-event{position:absolute;left:3px;right:3px;padding:4px 6px;background:var(--bg-elevated);border-left:3px solid var(--dot, var(--accent));border-radius:var(--r-sm);display:flex;gap:4px;font-size:var(--fs-xs);line-height:1.25;overflow:hidden;cursor:pointer;z-index:1}[data-app=almanac] .tgrid-event:hover{background:var(--bg-sunken)}[data-app=almanac] .tgrid-event-mark{font-size:10px;flex-shrink:0}[data-app=almanac] .tgrid-event-body{display:flex;flex-direction:column;min-width:0;flex:1}[data-app=almanac] .tgrid-event-title{font-weight:var(--fw-title);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-app=almanac] .tgrid-event-time{font-size:10px;color:var(--text-soft);font-family:var(--font-mono)}[data-app=almanac] .tgrid-now{position:absolute;left:0;right:0;pointer-events:none;z-index:2}[data-app=almanac] .tgrid-now-dot{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:var(--r-full);background:var(--danger)}[data-app=almanac] .tgrid-now-line{height:2px;background:var(--danger)}[data-app=almanac] .dow-row,[data-app=almanac] .month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}[data-app=almanac] .dow{text-align:center;font-size:var(--fs-xs);color:var(--text-soft);font-weight:var(--fw-title);text-transform:uppercase;letter-spacing:.06em;padding-bottom:4px}[data-app=almanac] .mcell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:6px 0;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;color:var(--text);font-family:inherit;transition:.16s}[data-app=almanac] .mcell:active{transform:scale(.97)}[data-app=almanac] .mcell.out{opacity:.35}[data-app=almanac] .mcell.is-today{border-color:var(--app-accent);border-width:2px;padding:5px 0}[data-app=almanac] .mnum{font-family:var(--font-display);font-size:var(--fs-base);font-weight:var(--fw-title)}[data-app=almanac] .mcell.is-today .mnum{color:var(--app-accent)}[data-app=almanac] .mdots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}[data-app=almanac] .mdot{width:5px;height:5px;border-radius:var(--r-full)}@media (min-width:720px){[data-app=almanac] .mcell{aspect-ratio:unset;min-height:80px;max-height:120px}}[data-app=almanac] .sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000080;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}[data-app=almanac] .sheet{width:100%;max-width:640px;background:var(--bg-elevated);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px var(--sp-4) calc(env(safe-area-inset-bottom) + 20px);animation:rise .26s cubic-bezier(.2,.8,.2,1);max-height:88vh;overflow-y:auto}[data-app=almanac] .sheet-grip{width:40px;height:4px;border-radius:var(--r-full);background:var(--border);margin:6px auto 14px}[data-app=almanac] .sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}[data-app=almanac] .sheet-head h3{font-family:var(--font-display);font-size:var(--fs-xl);margin:0}[data-app=almanac] .sheet-x{color:var(--text-soft);font-size:16px;padding:6px;background:transparent;border:none;font-family:inherit}@media (min-height: 720px) and (min-width: 720px){[data-app=almanac] .sheet-backdrop{align-items:center;animation:fade .15s ease}[data-app=almanac] .sheet{border-radius:var(--r-xl);max-width:520px;margin:0 var(--sp-4);animation:pop .18s cubic-bezier(.2,.8,.2,1)}[data-app=almanac] .sheet-grip{display:none}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}[data-app=fitness] .tab-pad{padding:var(--sp-4) var(--sp-4) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}[data-app=fitness] .tab-label{font-size:var(--fs-xs);font-weight:var(--fw-med)}[data-app=fitness] .card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}[data-app=fitness] .muted{color:var(--text-soft)}[data-app=fitness] .sm{font-size:var(--fs-sm)}[data-app=fitness] .center{text-align:center}[data-app=fitness] .grow{flex:1;min-width:0}[data-app=fitness] .sub{display:block;font-size:var(--fs-sm);color:var(--text-soft)}[data-app=fitness] .section-h{font-family:var(--font-display);font-size:var(--fs-xl);margin-top:var(--sp-1)}[data-app=fitness] .section-h.flush{margin:0}[data-app=fitness] .card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}[data-app=fitness] .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-radius:var(--r-md);font-weight:var(--fw-med);font-size:var(--fs-base);background:var(--bg-sunken);color:var(--text);transition:.16s cubic-bezier(.2,.8,.2,1);border:1px solid var(--border)}[data-app=fitness] .btn:active{transform:scale(.98)}[data-app=fitness] .btn:disabled{opacity:.45;cursor:default;transform:none}[data-app=fitness] .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:var(--fw-title)}[data-app=fitness] .btn.ghost{background:transparent}[data-app=fitness] .btn.ghost.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 38%,transparent)}[data-app=fitness] .btn.sm{padding:7px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm)}[data-app=fitness] .btn.block{width:100%}[data-app=fitness] .big-cta{padding:16px;font-size:var(--fs-base);margin-top:var(--sp-1)}[data-app=fitness] .chip{padding:7px 13px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-weight:var(--fw-med);font-size:var(--fs-sm);border:1px solid transparent;transition:.16s}[data-app=fitness] .chip.on{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}[data-app=fitness] .chip-row,[data-app=fitness] .row-btns{display:flex;gap:var(--sp-2);flex-wrap:wrap}[data-app=fitness] .row-btns{justify-content:flex-end}[data-app=fitness] .row-btns .btn.ghost.danger{margin-right:auto}[data-app=fitness] .field{display:flex;flex-direction:column;gap:4px}[data-app=fitness] .field span{font-size:var(--fs-xs);font-weight:var(--fw-med);color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}[data-app=fitness] .field input,[data-app=fitness] .select{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text);width:100%}[data-app=fitness] .field.block{margin-bottom:var(--sp-4)}[data-app=fitness] .field input:focus,[data-app=fitness] .select:focus{outline:2px solid var(--accent);outline-offset:-1px}[data-app=fitness] .stepper{display:flex;align-items:center;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}[data-app=fitness] .step-btn{width:38px;height:42px;font-size:20px;color:var(--text-soft);font-family:var(--font-mono);transition:.12s}[data-app=fitness] .step-btn:active{background:var(--accent-weak);color:var(--accent)}[data-app=fitness] .step-val{flex:1;text-align:center;font-family:var(--font-mono);font-size:var(--fs-base);min-width:34px}[data-app=fitness] .step-val input{width:100%;text-align:center;background:transparent;border:none;padding:10px 0;color:var(--text)}[data-app=fitness] .step-val input:focus{outline:none}[data-app=fitness] .empty{text-align:center;padding:40px 20px;color:var(--text-soft);display:flex;flex-direction:column;align-items:center;gap:10px}[data-app=fitness] .empty.full{min-height:70vh;justify-content:center}[data-app=fitness] .empty .big{font-size:44px;opacity:.9}[data-app=fitness] .level-strip{display:flex;align-items:center;justify-content:space-between}[data-app=fitness] .lvl-title{font-family:var(--font-display);font-size:var(--fs-lg)}[data-app=fitness] .streak-pill{background:color-mix(in srgb,var(--fire) 18%,transparent);color:var(--fire);font-weight:var(--fw-title);padding:6px 12px;border-radius:var(--r-full);font-size:var(--fs-sm);font-family:var(--font-mono)}[data-app=fitness] .streak-pill.big{font-size:var(--fs-base);padding:8px 16px}[data-app=fitness] .stat-card{display:flex;flex-direction:column;gap:10px}[data-app=fitness] .stat-row{display:flex;align-items:center;justify-content:space-between}[data-app=fitness] .xp-bar{height:10px;background:var(--bg-sunken);border-radius:var(--r-full);overflow:hidden}[data-app=fitness] .xp-fill{height:100%;background:var(--accent);border-radius:var(--r-full);transition:width .5s ease}[data-app=fitness] .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}[data-app=fitness] .mini{text-align:center;padding:14px 8px}[data-app=fitness] .mini-num{font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:var(--fw-med);color:var(--text)}[data-app=fitness] .mini-lbl{font-size:var(--fs-xs);color:var(--text-soft);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}[data-app=fitness] .cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}[data-app=fitness] .cat-card{position:relative;display:flex;flex-direction:column;gap:4px;align-items:flex-start;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-4) var(--sp-3);text-align:left;transition:.16s cubic-bezier(.2,.8,.2,1);overflow:hidden}[data-app=fitness] .cat-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--app-accent) 12%,transparent),transparent 70%);opacity:0;transition:opacity .16s;pointer-events:none}[data-app=fitness] .cat-card:not(.locked):active{transform:scale(.97);border-color:var(--accent)}[data-app=fitness] .cat-card:not(.locked):active:before{opacity:1}[data-app=fitness] .cat-emoji{font-size:28px;position:relative;z-index:1}[data-app=fitness] .cat-label{font-weight:var(--fw-title);font-size:var(--fs-base);position:relative;z-index:1}[data-app=fitness] .cat-blurb{font-size:var(--fs-xs);color:var(--text-soft);position:relative;z-index:1}[data-app=fitness] .cat-card.locked{opacity:.55}[data-app=fitness] .cat-card.locked .cat-blurb{color:var(--accent);opacity:.8}[data-app=fitness] .cat-card .lock{position:absolute;top:12px;right:12px;font-size:13px}[data-app=fitness] .rest-cta{margin-top:var(--sp-1)}[data-app=fitness] .session-head{display:flex;align-items:center;justify-content:space-between;gap:10px}[data-app=fitness] .session-title{font-family:var(--font-display);font-size:var(--fs-xl)}[data-app=fitness] .rest-timer{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px}[data-app=fitness] .rest-row{display:flex;align-items:center;gap:10px}[data-app=fitness] .rest-label{font-size:var(--fs-sm);font-weight:var(--fw-med);color:var(--text-soft)}[data-app=fitness] .rest-clock{font-family:var(--font-mono);font-size:var(--fs-lg);margin-left:auto;color:var(--text-soft)}[data-app=fitness] .rest-clock.on{color:var(--accent)}[data-app=fitness] .rest-presets{display:flex;gap:6px;margin-left:auto}[data-app=fitness] .ex-list{display:flex;flex-direction:column;gap:var(--sp-3)}[data-app=fitness] .ex-card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);transition:.16s}[data-app=fitness] .ex-card.skipped{opacity:.5}[data-app=fitness] .ex-top{display:flex;align-items:center;gap:10px}[data-app=fitness] .check{width:26px;height:26px;border-radius:var(--r-sm);border:2px solid var(--border);background:var(--bg-sunken);color:#fff;font-size:15px;font-weight:700;flex-shrink:0;display:grid;place-items:center}[data-app=fitness] .check.on{background:var(--ok);border-color:var(--ok)}[data-app=fitness] .ex-name{font-weight:var(--fw-title)}[data-app=fitness] .ex-remove{color:var(--text-soft);font-size:13px;padding:6px;min-width:32px;min-height:32px}[data-app=fitness] .ex-fields{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);align-items:flex-end}[data-app=fitness] .ex-fields .field{flex:1}[data-app=fitness] .ex-note{margin-top:10px;font-size:var(--fs-xs);color:var(--text-soft);font-style:italic;max-width:var(--measure)}[data-app=fitness] .hist-list{display:flex;flex-direction:column;gap:var(--sp-2)}[data-app=fitness] .hist{padding:0;overflow:hidden}[data-app=fitness] .hist-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:14px var(--sp-4);text-align:left}[data-app=fitness] .hist-row.static{cursor:default}[data-app=fitness] .hist-emoji{font-size:20px}[data-app=fitness] .hist-title{font-weight:var(--fw-med)}[data-app=fitness] .caret{color:var(--text-soft);font-family:var(--font-mono)}[data-app=fitness] .hist-detail{padding:0 var(--sp-4) 14px;display:flex;flex-direction:column;gap:var(--sp-2);border-top:1px solid var(--border);padding-top:var(--sp-3)}[data-app=fitness] .hist-ex{display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-sm)}[data-app=fitness] .hist-ex .mono{color:var(--text-soft)}[data-app=fitness] .spark-wrap{margin-top:var(--sp-3)}[data-app=fitness] .spark{width:100%;height:90px}[data-app=fitness] .spark-meta{display:flex;justify-content:space-between;margin-top:6px;font-size:var(--fs-sm)}[data-app=fitness] .delta.up{color:var(--accent)}[data-app=fitness] .delta.down{color:var(--text-soft)}[data-app=fitness] .wallet{display:flex;flex-direction:column;gap:10px}[data-app=fitness] .wallet-top{display:flex;align-items:center;justify-content:space-between}[data-app=fitness] .token-balance{font-family:var(--font-mono);font-size:var(--fs-3xl);font-weight:var(--fw-med);color:var(--gold)}[data-app=fitness] .token-balance span{font-family:var(--font-body)}[data-app=fitness] .reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}[data-app=fitness] .reward-card{position:relative;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-3);text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}[data-app=fitness] .reward-card.cant{opacity:.6}[data-app=fitness] .reward-edit{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:var(--r-full);background:var(--bg-sunken);color:var(--text-soft);font-size:12px}[data-app=fitness] .reward-emoji{font-size:32px}[data-app=fitness] .reward-name{font-weight:var(--fw-title);font-size:var(--fs-sm)}[data-app=fitness] .reward-cost{color:var(--gold);font-size:var(--fs-sm);margin-bottom:4px;font-family:var(--font-mono)}[data-app=fitness] .reward-card .btn{margin-top:auto}[data-app=fitness] .emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}[data-app=fitness] .emoji-opt{font-size:22px;padding:6px;border-radius:var(--r-sm);background:var(--bg-sunken)}[data-app=fitness] .emoji-opt.on{background:var(--accent-weak);outline:2px solid var(--accent)}[data-app=fitness] .sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000080;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}[data-app=fitness] .sheet{width:100%;max-width:640px;background:var(--bg-elevated);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px 18px calc(env(safe-area-inset-bottom) + 20px);animation:rise .26s cubic-bezier(.2,.8,.2,1);max-height:88vh;overflow-y:auto}[data-app=fitness] .sheet-grip{width:40px;height:4px;border-radius:var(--r-full);background:var(--border);margin:6px auto 14px}[data-app=fitness] .sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}[data-app=fitness] .sheet-head h3{font-family:var(--font-display);font-size:var(--fs-xl)}[data-app=fitness] .sheet-x{color:var(--text-soft);font-size:16px;padding:6px}[data-app=fitness] .sheet-foot{margin-top:var(--sp-4)}[data-app=fitness] .summary-card{width:100%;max-width:420px;margin:0 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);padding:28px 24px;text-align:center;animation:pop .3s cubic-bezier(.2,.85,.3,1.1);align-self:center}[data-app=fitness] .summary-emoji{font-size:52px}[data-app=fitness] .summary-card h3{font-family:var(--font-display);font-size:var(--fs-2xl);margin:8px 0 14px}[data-app=fitness] .summary-gains{display:flex;justify-content:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}[data-app=fitness] .gain{font-weight:var(--fw-title);padding:8px 14px;border-radius:var(--r-full);font-size:var(--fs-sm);font-family:var(--font-mono)}[data-app=fitness] .gain.xp{background:var(--accent-weak);color:var(--accent)}[data-app=fitness] .gain.tok{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold)}[data-app=fitness] .gain.streak{background:color-mix(in srgb,var(--fire) 18%,transparent);color:var(--fire)}[data-app=fitness] .unlock-line{color:var(--accent);font-weight:var(--fw-med);margin-bottom:16px}[data-app=fitness] .gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);max-width:640px;margin:0 auto}[data-app=fitness] .gate-inner{width:100%;text-align:center}[data-app=fitness] .gate-brand{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}[data-app=fitness] .gate-brand h1{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.02em}[data-app=fitness] .gate-prompt{font-family:var(--font-display);font-size:var(--fs-xl);margin:var(--sp-5) 0 var(--sp-5);color:var(--text)}[data-app=fitness] .gate-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}[data-app=fitness] .gate-card{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-xl);padding:28px 16px;transition:.16s cubic-bezier(.2,.8,.2,1)}[data-app=fitness] .gate-card:active{transform:scale(.96);border-color:var(--accent)}[data-app=fitness] .gate-avatar{width:64px;height:64px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--app-accent);color:#fff;font-family:var(--font-display);font-size:28px;margin-bottom:6px}[data-app=fitness] .gate-name{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-lg)}[data-app=fitness] .gate-meta{font-size:var(--fs-xs);color:var(--text-soft)}[data-app=fitness] .gate-streak{font-size:var(--fs-sm);color:var(--fire);font-weight:var(--fw-med);font-family:var(--font-mono)}[data-app=fitness] .gate-foot{margin-top:var(--sp-5)}[data-app=fitness] .icon-btn{width:38px;height:38px;border-radius:var(--r-full);background:var(--bg-sunken);border:1px solid var(--border);font-size:16px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@keyframes pop{0%{transform:scale(.92);opacity:0}}[data-app=fitness] .who-bar{display:flex;justify-content:flex-end;margin-bottom:var(--sp-3)}[data-app=fitness] .who-pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px 10px 6px 6px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-paper);color:var(--text);cursor:pointer}[data-app=fitness] .who-avatar{width:26px;height:26px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--app-accent);color:#fff;font-weight:600;font-size:13px}[data-app=fitness] .who-name{font-weight:500;font-size:var(--fs-sm)}[data-app=fitness] .who-switch{font-size:var(--fs-xs);color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAQAABAAAAAACEwAAAOmAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEgAZBEICoMkgmcLFgABNgIkAyYEIAWFNAdiDAcb3wYgngU5GW9qFpxcIlPzNPVjx7JSP3iet+s9971Zzn7Q8yEHG1C91aUi2aFP6j1c07wqko0ssGwl8RDyRPehgRL1M2Z+akJOifHwcbX3d1ZvWowiysMskA0v3NL0wohiuX//l5EDn7gc/6xs+9oikSbyg6LCvegvncOw87lpLFr4wF0a4AIKCLJtSQTXJ0FUc+nW+HePCPAAAEUITQhwS1VELdq2lyi7mSBClGUAfAiQcQoLURwIEAbFSTgpoQyQKZ5QAIQmFC1RkEIyQbp0pOgGEpLm3PgkW7FBndVwEN1qI7KmHk2wjgMoN/MuNwf0QzU7Z/j7kmFrZXIicgFQg/oLEmlS/KkQSoFU6jDNFoqGGVviKyYilIFgeICEGqgfEltBPQFQQINQmoBQhgEQgQJp4CdRoy9ui0o85+N8br7clI0pPwej4FsISZ8AAG4AocADpkJsAmKJAgaVDFMxCCmFTiMiwqAEjpMAFgtkLp3maM5wD/V4R2VGmtOOnpVldz6417+z3Hs/fjQ3vH/P8VTm8PUfPsiyszHmoVMsvf3e3PCx2Nz17t3UTWLjVinvrCiLufT6svGmhrWE6j1tzjbHRH9FSDV/huK83vrzvQ3fI6ndj0Zy4vGOxfHp5Y1xeSVeq2vI33SA3qppmjKsHF6ZEGh7/N5KGlGRkPj/ZcXKUFbp4I6/swFaqzO4Ma0xdWffCXO6Pk1bcMKYilvTUptzO3JeZGW9yGnPTWl2rULNEeDgdJnXYLs0jrQATKiT/q1eKoDq8x6fmt/6kqv5H9f6D+D76dxIgF8Hd4wmlf/C2bAnARD8c2b1CGD+x+Y/y3RXsZSaYiOmkDkC4A/SVw6msSjArYwhliYAAAAUAab1aFK6gHsy1ZSJ5GiRKf5RJtNa/MsMRW7JbKqsltnlGy71VyZZRzQe4YCJuAlcAgYBASK0IhA+h+aGwWGxiY5BNcKNFPyXRTSMIyJwXYs4fF3zMJaefnNbRz6JWyM8BCMQF4gQ1zGIwSL5COaageEcIIQVyWcpV6jaNCYBAB/3oC9fpXzFLGNS1cPDhIcenLt9c3odbByMS851lFpG5gSIfGIfNo4VsYQ1kdcJGCW/zusPwACXQSNgjSTBBhgOyzwy+zRO0LeRVF2TgEDPYsADhE8RQ4/8DQob9KVubTdI9VgUOrQYYhO7OOyNE6/83y22ZK7Ttxot1TzIenBoNZW4JkySwrgAB+bE17sUW2WXxLfqlLEJAA==) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-vietnamese-400-normal-Cg2kxhWu.woff2) format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-400-normal-B8TCSmUq.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-ext-400-normal-D127hM_v.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-400-normal-2ppkqaOR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAQwABAAAAAACHQAAAPWAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMkgmULFgABNgIkAyYEIAWFXgdiDAcbAwdRlE3OAiA/C2NnWmqDevE1lV86rytbx0YiXN7GJix16cheg+c///7dZ+Z+SEzSUhXoEkLHLqv//fu/tfY3nUm+g2lnlqwhYmnWZ232zf5BQiV0qzxKoR5UjVQLFR7+uVfv+5lDN4WzaUwPWEASTFvwak+Pl2rLqgUqWr/l7mqeJpR5FlJkbclrawv4WyBZaRDdxDX5/xelhdVKE4m2zbooInWEO19jURQVPvBuOvDkAcHeliEDXwoiZxo1/tstIsAWAChCaEKAtVDJ1GlxfR+yN4oBZBkAkwkC5GqIAOJAgDAoloQlxZUBIvkTCoDQhKLN8VKYRQwXjizagXkAs434JyuYQT2rCECN1YtcoBrzICIWQLla63ltC57YDcVwpmCYNY1OyAtAdew3EEiTvR8LrhQIpZ4sGxUNU3fqKTYIVwZ6wxb4twhACrICgAIauNIEuDI0Ahw50sBOoCL3fkMFiomxx/Jz8zHHWET500Ih1xCSmuAAwBqAK7AF44Bd4MsRYFApIMBjEJKlWhoePhvhmMSB1Ro5D2fWZibFkofp/bPMacp6vCkbxnNyp3atz66P1K75BuuPeXZe/3xXNlQfm0uF9U+mqV1rYHNKX80eoYGO1L5bZLBZ37LabkggZnym3HIxRqivANhY/1+NlKncG/kn6rGEPYd8ufSeriuFFF+iE7bqaWxa2cwaeQv2IOd05Pu/v386CWdDv/T35UJC4mam3WgqVPQregeerWBu3ebN2oUbvNYNa6rhi42eyuXw8IeI7mbYQmSZbagRBFiwdM8fzreS7vMYYAP1qq91voMA1Q4fa+5fH3DIfZZa/wf49R3rCfj7vreXVLqyajqYUwAEL5tOveUx/znVL7LYKlnPKrmnolmug3QdfFMwL6AAa+kMvjQBAACgCLB3Q4ZkrYDnMeuxRGJMWIp9xLO0Yn/tRhXLTLY7LHOxtrLspWtkOQoWz3RiK1gvGpDu7RYZwAZpLaN/Ac04HxVYgSgPozliYCw2tMGgYyTfNo8UIapRLkpAFNGCCkRsCIUiIwkSrKIRmBCKtK3CeNoWCJaOBovWO1eiGjtbu6AdMojvZ7gAkSxeogxJckwwIY7zRM50xcsSL0Wivtr+a7VlzZbxdGA3ZJE8avQ8Osn60jlc6Io43TCRLFEbA7XGAKPhvtpGjuUcBq3PuCISsnGiorvImzBPYPxsJFXbCM7XsRrn4tCVkKHD7hpFxJrGULWyNQj1JhQ6tBhiJuZiYV6k/hXAuNiagHXH+8Rkbte5sz8+pJaoJtH4Rg5JTJoeMxsvf4RbbhkZAA==) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-vietnamese-500-normal-DiU8zqi-.woff2) format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-500-normal-CvE5C8T-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-ext-500-normal-9VZagAe1.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-500-normal-CqEEAICU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-color:#10140e}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-title);line-height:1.15;margin:0}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.mono,time,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}::selection{background:var(--app-soft)}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}:root{--bg:#10140E;--bg-paper:#171C13;--bg-elevated:#1E241A;--bg-sunken:#0B0F09;--border:#2A3122;--text:#ECEFE6;--text-soft:#9BA690;--accent:#4FA06F;--secondary:#9B82BE;--app-accent:#4FA06F;--ok:#5FB47E;--warn:#D8A24F;--danger:#D2685F;--info:#6F86C2;--accent-weak: color-mix(in srgb, var(--accent) 14%, var(--bg-paper));--accent-soft: color-mix(in srgb, var(--accent) 28%, var(--bg-paper));--app-weak: color-mix(in srgb, var(--app-accent) 16%, var(--bg-paper));--app-soft: color-mix(in srgb, var(--app-accent) 30%, var(--bg-paper));--font-display:"Fraunces Variable","Fraunces", serif;--font-body:"Plus Jakarta Sans", sans-serif;--font-mono:"JetBrains Mono", monospace;--fs-xs:.64rem;--fs-sm:.8rem;--fs-base:1rem;--fs-lg:1.25rem;--fs-xl:1.563rem;--fs-2xl:1.953rem;--fs-3xl:2.441rem;--fw-title:600;--fw-body:400;--fw-med:500;--r-sm:6px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-full:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-8:48px;--measure:66ch;--content-narrow: 640px;--content-wide: 1080px}@media (prefers-color-scheme: light){:root:not(.theme-dark){--bg:#F3F5EE;--bg-paper:#FAFBF5;--bg-elevated:#FFFFFF;--bg-sunken:#E8ECE0;--border:#D8DECF;--text:#1A1F15;--text-soft:#5C6651;--accent:#2F6B47;--secondary:#6E5891;--app-accent:#2F6B47;--ok:#2E7D4F;--warn:#B07F2E;--danger:#B03A30;--info:#4E66A6}}:root.theme-light{--bg:#F3F5EE;--bg-paper:#FAFBF5;--bg-elevated:#FFFFFF;--bg-sunken:#E8ECE0;--border:#D8DECF;--text:#1A1F15;--text-soft:#5C6651;--accent:#2F6B47;--secondary:#6E5891;--app-accent:#2F6B47;--ok:#2E7D4F;--warn:#B07F2E;--danger:#B03A30;--info:#4E66A6}[data-app=journal]{--app-accent:#D06A82}[data-app=pantry]{--app-accent:#CB7A4F}[data-app=ledger]{--app-accent:#6F86C2}[data-app=pets]{--app-accent:#D8A24F}[data-app=settings]{--app-accent:#8593A6}[data-app=quest]{--app-accent:#A877B8}[data-app=almanac]{--app-accent:#79B45F}[data-app=fitness]{--app-accent:#D9694E}@media (prefers-color-scheme: light){:root:not(.theme-dark) [data-app=journal]{--app-accent:#B24E66}:root:not(.theme-dark) [data-app=pantry]{--app-accent:#A85F36}:root:not(.theme-dark) [data-app=ledger]{--app-accent:#4E66A6}:root:not(.theme-dark) [data-app=pets]{--app-accent:#B07F2E}:root:not(.theme-dark) [data-app=settings]{--app-accent:#5E6E84}:root:not(.theme-dark) [data-app=quest]{--app-accent:#84569A}:root:not(.theme-dark) [data-app=almanac]{--app-accent:#4F7E34}:root:not(.theme-dark) [data-app=fitness]{--app-accent:#B0492F}}:root.theme-light [data-app=journal]{--app-accent:#B24E66}:root.theme-light [data-app=pantry]{--app-accent:#A85F36}:root.theme-light [data-app=ledger]{--app-accent:#4E66A6}:root.theme-light [data-app=pets]{--app-accent:#B07F2E}:root.theme-light [data-app=settings]{--app-accent:#5E6E84}:root.theme-light [data-app=quest]{--app-accent:#84569A}:root.theme-light [data-app=almanac]{--app-accent:#4F7E34}:root.theme-light [data-app=fitness]{--app-accent:#B0492F}[data-app=almanac] .btn.primary{background:var(--accent);border-color:var(--accent)}.app-root{min-height:100%;display:flex;flex-direction:column}@media (min-width: 720px){.app-root[data-app]{padding-left:88px}}.page{width:100%;max-width:var(--content-narrow);margin:0 auto;padding:var(--sp-4) var(--sp-4) calc(var(--sp-8) + 64px)}.page.wide{max-width:var(--content-wide)}@media (min-width: 720px){.page{padding-left:var(--sp-6);padding-right:var(--sp-6);padding-bottom:var(--sp-8)}}.stack{display:flex;flex-direction:column;gap:var(--sp-3)}.row{display:flex;align-items:center;gap:var(--sp-3)}.grow{flex:1;min-width:0}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.screen{flex:1;padding:var(--sp-4) var(--sp-4) calc(var(--sp-8) + 64px);width:100%}@media (min-width: 720px){.screen{padding-bottom:var(--sp-8)}}.page-head{margin-bottom:var(--sp-5)}.page-head h1{font-size:var(--fs-2xl)}.page-head .sub{font-size:var(--fs-lg);color:var(--text-soft);font-family:var(--font-body);font-weight:var(--fw-body);margin-top:var(--sp-1)}.card{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5)}.card .title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-title)}.card .sub{font-size:var(--fs-sm);color:var(--text-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px 16px;min-height:44px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elevated);color:var(--text);font-weight:var(--fw-med);transition:background .16s cubic-bezier(.2,.8,.2,1),border-color .16s}.btn:hover{border-color:var(--app-soft)}.btn.primary{background:var(--app-accent);border-color:var(--app-accent);color:#0b0f09}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-soft)}.btn.ghost:hover{color:var(--text);background:var(--bg-elevated)}.btn.danger{color:var(--danger);border-color:transparent;background:transparent}.btn.danger:hover{background:color-mix(in srgb,var(--danger) 14%,var(--bg-paper))}.btn.sm{min-height:36px;padding:6px 12px;font-size:var(--fs-sm)}.btn.block{width:100%}.btn:disabled{opacity:.5;pointer-events:none}.btn-row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--sp-2)}.chip{padding:6px 12px;min-height:36px;border:1px solid var(--border);border-radius:var(--r-full);background:transparent;color:var(--text-soft);font-size:var(--fs-sm)}.chip.on{background:var(--app-weak);border-color:var(--app-soft);color:var(--text)}.input,select.input,textarea.input{width:100%;padding:12px 14px;min-height:44px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text)}.input::placeholder{color:color-mix(in srgb,var(--text-soft) 70%,transparent)}.input:focus-visible{outline:2px solid var(--app-accent);outline-offset:1px}.field-label{font-size:var(--fs-sm);color:var(--text-soft);margin-bottom:var(--sp-1);display:block}.stepper{display:flex;align-items:center;gap:var(--sp-2)}.stepper button{width:40px;height:40px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);font-size:var(--fs-lg)}.stepper .val{min-width:56px;text-align:center;font-family:var(--font-mono)}.empty{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-soft)}.empty .big{font-size:2.5rem;display:block;margin-bottom:var(--sp-3)}.empty .line{margin-bottom:var(--sp-4)}:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.top-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.top-title{flex:1;font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-lg)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-md);background:transparent;border:none;color:var(--text-soft)}.icon-btn:hover{color:var(--text);background:var(--bg-elevated)}@media (min-width: 720px){.top-bar{padding:var(--sp-3) var(--sp-5);min-height:56px}.top-title{font-size:var(--fs-xl)}}.bottom-nav{position:fixed;left:0;bottom:0;width:100%;z-index:20;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:color-mix(in srgb,var(--bg-paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;min-height:56px;background:none;border:none;color:var(--text-soft);font-size:var(--fs-xs);font-weight:var(--fw-med);position:relative}.nav-item.on{color:var(--app-accent)}.nav-item.on:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:2px;border-radius:var(--r-full);background:var(--app-accent)}.rail-brand{display:none}@media (min-width: 720px){.bottom-nav{top:0;width:88px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;border-top:none;border-right:1px solid var(--border);border-bottom:none;transform:none;overflow-y:auto;overflow-x:hidden;background:color-mix(in srgb,var(--bg-paper) 96%,transparent)}.bottom-nav .nav-item{width:100%;min-height:52px;padding:var(--sp-2) var(--sp-1);font-size:10px}.bottom-nav .nav-item.on:before{top:10px;bottom:10px;left:0;right:auto;width:2px;height:auto;transform:none;border-radius:var(--r-full)}.rail-brand{display:flex;align-items:center;justify-content:center;width:88px;min-height:56px;flex-shrink:0;border-bottom:1px solid var(--border);margin-bottom:var(--sp-1)}}.launcher{padding:var(--sp-6) var(--sp-4) var(--sp-8);max-width:var(--content-wide);margin:0 auto}.launcher-head{margin-bottom:var(--sp-6);max-width:640px}.launcher-head .wordmark{font-size:var(--fs-2xl);letter-spacing:.2px}.launcher-head .sub{color:var(--text-soft);margin-top:var(--sp-2)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-3)}@media (min-width: 720px){.launcher{padding:var(--sp-8) var(--sp-6) var(--sp-8)}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4)}}.tile{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);text-align:left;padding:var(--sp-5) var(--sp-4);background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text);transition:border-color .16s cubic-bezier(.2,.8,.2,1),transform .16s}.tile:hover{border-color:var(--app-soft)}.tile:active{transform:scale(.985)}.tile-mark{margin-bottom:var(--sp-2)}.tile-name{font-family:var(--font-display);font-weight:var(--fw-title);font-size:var(--fs-lg)}.tile-sub{font-size:var(--fs-sm);color:var(--text-soft)}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:color-mix(in srgb,#000 55%,transparent);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;background:var(--bg-elevated);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);border:1px solid var(--border);border-bottom:none;padding:var(--sp-3) var(--sp-5) calc(var(--sp-6) + env(safe-area-inset-bottom,0));max-height:86vh;overflow-y:auto;animation:sheet-up .28s cubic-bezier(.2,.8,.2,1)}@keyframes sheet-up{0%{transform:translateY(12%);opacity:.6}to{transform:none;opacity:1}}@keyframes dialog-in{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.sheet-grip{width:36px;height:4px;border-radius:var(--r-full);background:var(--border);margin:0 auto var(--sp-3)}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.sheet-title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-title);margin:0}.sheet-x{color:var(--text-soft);font-size:16px;padding:6px 8px;background:none;border:none;cursor:pointer;border-radius:var(--r-sm)}.sheet-x:hover{color:var(--text);background:var(--bg-sunken)}.sheet-body{display:flex;flex-direction:column;gap:var(--sp-4)}.sheet-foot,.sheet-footer{margin-top:var(--sp-5);display:flex;gap:var(--sp-2)}@media (min-width: 720px){.sheet-scrim{align-items:center}.sheet{max-width:520px;border-radius:var(--r-xl);border:1px solid var(--border);padding-bottom:var(--sp-6);max-height:80vh;animation:dialog-in .2s cubic-bezier(.2,.8,.2,1)}.sheet-grip{display:none}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:76px;z-index:50;width:calc(100% - var(--sp-6));max-width:520px;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);animation:sheet-up .2s cubic-bezier(.2,.8,.2,1)}.toast-action{background:none;border:none;color:var(--app-accent);font-weight:var(--fw-med);padding:4px 8px}@media (min-width: 720px){.toast{bottom:var(--sp-5);left:calc(50% + 44px);max-width:500px}}.setup{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-3);padding-top:var(--sp-8)}.setup-mark{margin-bottom:var(--sp-2)}.setup .sub{color:var(--text-soft)}.setup-body{width:100%;margin:var(--sp-4) 0}.event-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-md)}.event-dot{width:10px;height:10px;border-radius:var(--r-full);flex:none}.event-time{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-soft)}.scaffold-note{border:1px dashed var(--border);border-radius:var(--r-md);padding:var(--sp-4);color:var(--text-soft);font-size:var(--fs-sm);background:var(--bg-sunken)}.scaffold-note code{font-family:var(--font-mono);color:var(--text)}.flip{transform:scaleX(-1)}.bar-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.bar-label{width:38%;font-size:var(--fs-sm)}.bar-track{flex:1;height:14px;background:var(--bg-sunken);border-radius:var(--r-full);overflow:hidden}.bar-fill{height:100%;background:var(--app-accent);border-radius:var(--r-full)}.bar-count{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-soft);min-width:28px;text-align:right}.splash{display:flex;align-items:center;justify-content:center;min-height:70vh;opacity:.9}.login{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-5);max-width:420px;margin:0 auto}.login .wordmark{font-size:var(--fs-2xl);margin-top:var(--sp-2)}.login .sub{color:var(--text-soft);margin-bottom:var(--sp-5)}.login-form{width:100%;display:flex;flex-direction:column;gap:var(--sp-4);text-align:left}.login-form .field-label{margin-bottom:var(--sp-1)}.login-error{color:var(--danger);font-size:var(--fs-sm);margin:0}.login-foot{margin-top:var(--sp-5);font-size:var(--fs-sm)}[data-app=pantry] .p-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-med);text-transform:uppercase;letter-spacing:.12em;color:var(--app-accent)}[data-app=pantry] .p-h2{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-title);line-height:1.1}[data-app=pantry] .p-sub{font-size:var(--fs-sm);color:var(--text-soft);margin-top:2px}[data-app=pantry] .p-seclabel{font-size:var(--fs-xs);font-weight:var(--fw-title);text-transform:uppercase;letter-spacing:.14em;color:var(--app-accent);padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:8px;display:flex;align-items:center;gap:var(--sp-2)}[data-app=pantry] .p-seclabel .count{margin-left:auto;color:var(--text-soft);font-weight:var(--fw-med)}[data-app=pantry] .cal{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}[data-app=pantry] .cal-dayhead{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border)}[data-app=pantry] .cal-dayhead div{text-align:center;padding:6px 0;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft)}[data-app=pantry] .cal-weeklabel{display:flex;justify-content:space-between;padding:4px 10px;background:var(--bg-sunken);border-bottom:1px solid var(--border);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft)}[data-app=pantry] .cal-row{display:grid;grid-template-columns:repeat(7,1fr)}[data-app=pantry] .cal-cell{min-height:68px;padding:5px;text-align:left;background:var(--bg-paper);border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:3px;cursor:pointer}[data-app=pantry] .cal-cell:nth-child(7n){border-right:none}[data-app=pantry] .cal-cell.has-meal{background:var(--bg-elevated)}[data-app=pantry] .cal-cell.past{background:var(--bg-sunken);opacity:.6}[data-app=pantry] .cal-cell.picking{background:var(--app-weak);outline:2px solid var(--app-accent);outline-offset:-2px}[data-app=pantry] .cal-cell.drag-target{outline:2px solid var(--accent);outline-offset:-2px}[data-app=pantry] .cal-cell.dragging{opacity:.35}@media (min-width:720px){[data-app=pantry] .cal-cell{min-height:96px;padding:6px}}[data-app=pantry] .cal-date{width:20px;height:20px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-soft)}[data-app=pantry] .cal-date.today{background:var(--accent);color:#fff}[data-app=pantry] .cal-meal{font-size:9px;line-height:1.2;font-weight:500;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}[data-app=pantry] .pcheck{width:20px;height:20px;border-radius:var(--r-sm);border:2px solid var(--border);background:var(--bg-sunken);display:flex;align-items:center;justify-content:center;flex:none;color:#fff;font-size:12px}[data-app=pantry] .pcheck.on{background:var(--accent);border-color:var(--accent)}[data-app=pantry] .pcheck.ok{background:var(--ok);border-color:var(--ok)}[data-app=pantry] .pcheck.warn{background:var(--warn);border-color:var(--warn)}[data-app=pantry] .item{display:flex;align-items:center;gap:var(--sp-3);padding:10px 14px;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-md);text-align:left;width:100%}[data-app=pantry] .item.on{border-color:var(--app-accent);background:var(--app-weak)}[data-app=pantry] .item.have{border-color:var(--ok)}[data-app=pantry] .item.partial{border-color:var(--app-accent);background:var(--app-weak)}[data-app=pantry] .grid2{display:grid;grid-template-columns:1fr;gap:var(--sp-2)}@media (min-width:480px){[data-app=pantry] .grid2{grid-template-columns:1fr 1fr}}@media (min-width:720px){[data-app=pantry] .grid2{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-3)}}[data-app=pantry] .rcard{text-align:left;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);width:100%}[data-app=pantry] .rcard.on{border-color:var(--app-accent);background:var(--app-weak)}[data-app=pantry] .rcard:hover{border-color:var(--app-soft)}[data-app=pantry] .tag{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:var(--r-full);background:var(--bg-elevated);color:var(--text-soft)}[data-app=pantry] .tag.on{background:var(--accent);color:#fff}[data-app=pantry] .ingchip{font-size:10px;background:var(--bg-elevated);color:var(--text-soft);border-radius:var(--r-full);padding:2px 8px}[data-app=pantry] .strike{text-decoration:line-through;text-decoration-color:var(--text-soft)}[data-app=pantry] .listcard{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}[data-app=pantry] .listrow{display:flex;align-items:center;gap:var(--sp-3);padding:12px 14px;border-top:1px solid var(--border)}[data-app=pantry] .listrow:first-child{border-top:none}[data-app=pantry] .listrow.checked{background:var(--bg-sunken)}[data-app=pantry] .qstep{display:flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:var(--r-full);padding:2px 4px;background:var(--bg-elevated)}[data-app=pantry] .qstep button{width:24px;height:24px;border:none;background:none;color:var(--text-soft);font-weight:700;border-radius:var(--r-full)}[data-app=pantry] .qstep .v{min-width:26px;text-align:center;font-size:12px;font-weight:700;color:var(--app-accent);font-family:var(--font-mono)}
