*,:before,:after{box-sizing:border-box}:root{--canvas:#f3f5f9;--surface:#fff;--surface-raised:#fafbfe;--ink:#1a2332;--ink-soft:#5c6b7f;--ink-faint:#94a3b8;--line:#e2e8f0;--action:#0d9488;--action-hover:#0f766e;--action-soft:#ccfbf1;--action-shadow:0 2px 8px color-mix(in srgb, var(--action) 25%, transparent);--action-shadow-strong:0 2px 8px color-mix(in srgb, var(--action) 30%, transparent);--accent:#f97316;--accent-soft:#ffedd5;--done:#16a34a;--done-soft:#dcfce7;--warn:#eab308;--gold-xp:#fbbf24;--radius-card:16px;--radius-pill:9999px;--font-ui:"Plus Jakarta Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--font-display:"Outfit", var(--font-ui);--shadow-card:0 1px 3px #1a23320f, 0 8px 24px #1a23320a;--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}html,body,#root{height:100%}body{font-family:var(--font-ui);color:var(--ink);background:radial-gradient(ellipse at top, #fff 0%, var(--canvas) 55%);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit}.app-shell{max-width:520px;min-height:100dvh;padding:env(safe-area-inset-top) 1rem calc(5rem + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.top-bar{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 0 1rem;display:flex}.top-bar-brand{gap:.35rem;min-width:0;display:grid}.dimension-subtitle{color:var(--ink-soft);margin:0;font-size:.75rem;line-height:1.35}.brand{font-family:var(--font-display);color:var(--ink);font-size:1.35rem;font-weight:700;text-decoration:none}.brand span{color:var(--action)}.nav-tabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);gap:.35rem;margin-bottom:1rem;padding:.2rem;display:flex}.nav-tab{color:var(--ink-soft);border-radius:var(--radius-pill);cursor:pointer;touch-action:manipulation;background:0 0;border:none;flex:1;min-height:44px;padding:.5rem .75rem;font-size:.875rem;font-weight:600}.nav-tab[aria-current=page]{background:var(--action);color:#fff}.nav-tab:focus-visible{outline:2px solid var(--action);outline-offset:2px}.game-header{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:.85rem}.game-header.collapsed{padding:0}.game-header.expanded{gap:.65rem;padding:.85rem 1rem;display:grid}.game-header-toggle{cursor:pointer;text-align:left;border-radius:var(--radius-card);background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.65rem .85rem;display:flex}.game-header.expanded .game-header-toggle{min-height:auto;padding:0 0 .15rem}.game-header-toggle:focus-visible{outline:2px solid var(--action);outline-offset:2px}.game-header-summary{color:var(--ink-soft);font-size:.75rem;font-weight:500;line-height:1.4}.game-header-summary strong,.game-header.expanded .game-header-summary{color:var(--ink)}.game-header-chevron{color:var(--ink-faint);flex-shrink:0;font-size:1.125rem;line-height:1}.game-header-details{gap:.65rem;display:grid}.game-header-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.level-badge{color:var(--gold-xp);font-size:.8125rem;font-weight:700}.level-block{flex:1;gap:.15rem;min-width:0;display:grid}.level-desc,.level-xp-hint{color:var(--ink-soft);margin:0;font-size:.75rem;line-height:1.35}.level-xp-hint{font-family:var(--font-mono);font-size:.6875rem}.level-how{color:var(--ink-soft);margin:.1rem 0 0;font-size:.6875rem;line-height:1.4}.level-how strong{color:var(--action);font-weight:600}.level-guide{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);margin:1.25rem 0 0;padding:1rem}.level-guide h3{margin:0 0 .5rem;font-size:.9375rem}.level-guide-lead{color:var(--ink-soft);margin:0 0 .75rem;font-size:.8125rem;line-height:1.45}.level-guide-lead strong{color:var(--gold-xp)}.level-guide-steps{color:var(--ink);gap:.45rem;margin:0;padding-left:1.15rem;font-size:.8125rem;line-height:1.45;display:grid}.streak-pill{color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.8125rem;font-weight:600;display:inline-flex}.xp-bar-wrap{background:var(--line);border-radius:var(--radius-pill);height:8px;overflow:hidden}.xp-bar-fill{background:linear-gradient(90deg, var(--gold-xp), #f59e0b);border-radius:var(--radius-pill);height:100%;transition:width .35s var(--ease-out-expo)}.quest-ring-wrap{align-items:center;gap:.65rem;display:flex}.quest-ring{width:42px;height:42px;transform:rotate(-90deg)}.quest-ring-bg{fill:none;stroke:var(--line);stroke-width:4px}.quest-ring-fill{fill:none;stroke:var(--action);stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .4s var(--ease-out-expo)}.daily-total{font-family:var(--font-mono);color:var(--ink-soft);font-size:.875rem;font-weight:600}.daily-total strong{color:var(--ink)}.today-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.list-sort{position:relative}.list-sort-menu{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);min-width:10.5rem;box-shadow:var(--shadow-card);flex-direction:column;gap:.15rem;padding:.25rem;display:flex;position:absolute;top:calc(100% + .25rem);right:0}.list-sort-option{border-radius:calc(var(--radius-card) - 2px);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:none;margin:0;padding:.55rem .7rem;font-size:.875rem;display:block}.list-sort-option:hover{background:color-mix(in srgb, var(--action) 10%, transparent);color:var(--action)}.list-sort-option:focus-visible{outline:2px solid var(--action);outline-offset:-2px}.list-ambient{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:.75rem .85rem;display:flex}.list-ambient-main{gap:.2rem;min-width:0;display:grid}.list-ambient-nudge{color:var(--ink);margin:0;font-size:.8125rem;font-weight:500;line-height:1.35}.list-ambient-xp{font-family:var(--font-mono);color:var(--ink-soft);margin:0;font-size:.6875rem}.list-ambient-stats{flex-shrink:0;padding:.25rem 0;font-size:.8125rem}.stats-progress-hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);gap:.55rem;padding:.85rem 1rem;display:grid}.stats-progress-row{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.date-streak-pill{width:fit-content;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);align-items:center;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.btn{border-radius:var(--radius-pill);cursor:pointer;transition:transform .15s var(--ease-bounce), background .15s;border:none;padding:.55rem 1rem;font-size:.875rem;font-weight:600}.btn:active{transform:scale(.95)}.btn-primary{background:var(--action);color:#fff;box-shadow:var(--action-shadow)}.btn-primary:hover{background:var(--action-hover)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn-ghost{color:var(--action);background:0 0;padding:.55rem .65rem}.btn-danger{color:#fff;background:#dc2626;box-shadow:0 2px 8px #dc262647}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.65;cursor:not-allowed}.btn-danger:focus-visible{outline-offset:2px;outline:2px solid #dc2626}.btn-sm{padding:.4rem .75rem;font-size:.8125rem}.btn:focus-visible{outline:2px solid var(--action);outline-offset:2px}.btn-icon{border-radius:50%;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;display:inline-flex}.chore-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.chore-sections{gap:1rem;display:grid}.chore-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .45rem;font-size:.6875rem;font-weight:700}.chore-section .chore-list{gap:.55rem}.chore-row-wrap{border-radius:var(--radius-card);list-style:none;position:relative;overflow:hidden}.chore-row-wrap[data-reordering=true]{z-index:2;overflow:visible}.chore-row-wrap:has(.chore-drag:active){z-index:2;overflow:visible}.chore-swipe-underlay{background:var(--action);color:#fff;pointer-events:none;align-items:center;padding-left:1rem;font-size:.875rem;font-weight:600;display:flex;position:absolute;inset:0}.chore-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);touch-action:pan-y;grid-template-columns:1fr auto;align-items:center;gap:.5rem;padding:.65rem .75rem;display:grid;position:relative}.chore-row.reorderable{grid-template-columns:auto 1fr auto;padding-left:.35rem}.chore-drag{border-radius:var(--radius-sm,6px);width:2rem;min-height:2.5rem;color:var(--ink-soft);letter-spacing:-.12em;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:.875rem;line-height:1;display:inline-flex}.chore-drag:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}.chore-drag:focus-visible{outline:2px solid var(--action);outline-offset:2px}.chore-drag:active{cursor:grabbing;color:var(--ink)}.chore-row.active{background:var(--action-soft);border-color:var(--action)}.chore-row.paused{opacity:1;background:color-mix(in srgb, var(--accent-soft) 45%, var(--surface));border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.chore-row.paused .chore-hint{color:var(--accent);font-weight:600}.chore-row.done{background:var(--done-soft);border-color:#bbf7d0}.chore-row.done .chore-title{opacity:.65;text-decoration:line-through}.chore-row.done .chore-completion{color:var(--ink-soft);font-family:var(--font-body);flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.chore-completion-stat{color:var(--action);font-family:var(--font-mono);letter-spacing:.01em;font-size:.6875rem}.chore-completion-sep{color:var(--line);font-family:var(--font-body)}.chore-progress-edge{background:var(--accent);opacity:.65;transform-origin:bottom;width:3px;position:absolute;top:0;bottom:0;left:0}.chore-row.collapsed{padding:.5rem .75rem}.chore-row.collapsed .chore-title{font-size:1rem}.chore-hint{font-family:var(--font-mono);color:var(--ink-soft);letter-spacing:.01em;margin:.12rem 0 0;font-size:.6875rem}.chore-repeat{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.chore-meta .chore-repeat{color:var(--ink-soft)}.repeat-stepper-value{min-width:1.75rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:inline-flex}.chore-row.active .chore-hint{color:var(--action);font-weight:600}.chore-row.done .chore-hint{color:var(--done)}.chore-row.readonly .chore-drag{display:none}.chore-row.readonly{grid-template-columns:1fr auto}.chore-edit-link{color:var(--ink-soft);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:.35rem;padding:0;font-size:.75rem;font-weight:500;text-decoration:underline;display:inline-block}.chore-edit-link:hover{color:var(--action)}.chore-trailing{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.chore-row.collapsed .chore-trailing{flex-direction:row;align-items:center;gap:.35rem}.chore-collapsed-action{flex-shrink:0;min-width:4.25rem}.chore-chevron{min-width:44px;min-height:44px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;display:flex}.chore-chevron:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.chore-timer-meta{font-family:var(--font-mono)}.chore-body{min-width:0}.chore-toggle{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:0;display:block}.chore-title{margin:0;font-size:1.0625rem;font-weight:600}.chore-title-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;display:flex}.chore-daily-badge{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft);background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.1rem .45rem;font-size:.6875rem;font-weight:600}.chore-status-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-pill);padding:.12rem .4rem;font-size:.625rem;font-weight:700;line-height:1.2}.chore-status-badge.running{color:var(--action);background:var(--action-soft)}.chore-status-badge.paused{color:var(--accent);background:var(--accent-soft)}.chore-status-badge.done{color:var(--done);background:var(--done-soft)}.chore-daily-missed{color:var(--ink-faint)}.chore-meta{color:var(--ink-soft);margin-top:.15rem;font-size:.75rem}.chore-actions{align-items:center;gap:.35rem;display:flex}.timer-bar{z-index:10;background:var(--surface);border:1px solid var(--action);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:.75rem;padding:.75rem 1rem;position:sticky;top:0}.timer-bar-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.timer-label{color:var(--ink-soft);font-size:.8125rem;font-weight:600}.timer-digits{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:600}.timer-progress{background:var(--line);border-radius:var(--radius-pill);height:6px;overflow:hidden}.timer-progress-fill{background:linear-gradient(90deg, var(--accent), #fb923c);border-radius:var(--radius-pill);height:100%;transition:width .2s linear}.timer-bar.overtime{border-color:var(--accent)}.timer-bar.overtime .timer-digits{color:var(--accent)}.timer-overtime-hint{color:var(--ink-soft);margin:.45rem 0 0;font-size:.75rem}.timer-bar-actions{gap:.5rem;margin-top:.65rem;display:flex}.timer-reset,.chore-reset{color:var(--ink-soft)}.sheet-backdrop{z-index:40;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#1a233259;border:none;margin:0;padding:0;position:fixed;inset:0}.sheet{z-index:50;background:var(--surface);padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));overscroll-behavior:contain;border-radius:20px 20px 0 0;max-width:520px;margin:0 auto;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 32px #1a23321f}.sheet-title{font-family:var(--font-display);color:var(--ink);margin:0 0 1rem;font-size:1.125rem;font-weight:700}.sheet-actions{gap:.5rem;margin-top:1rem;display:flex}.sheet-actions-primary{flex:1}.sheet-handle{background:var(--line);border-radius:var(--radius-pill);width:40px;height:4px;margin:0 auto 1rem}.sheet-handle-btn{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:72px;height:28px;margin:0 auto .75rem;padding:0;display:block;position:relative}.sheet-handle-btn:before{content:"";background:var(--line);border-radius:var(--radius-pill);width:40px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sheet-handle-btn:focus-visible:before{outline:2px solid var(--action);outline-offset:4px}.field{gap:.35rem;margin-bottom:1rem;display:grid}.field label{color:var(--ink-soft);font-size:.8125rem;font-weight:600}.field input{border:1px solid var(--line);border-radius:12px;padding:.65rem .75rem;font-size:1rem}.field input:focus-visible{outline:2px solid var(--action);outline-offset:0;border-color:var(--action)}.field input[aria-invalid=true]{border-color:#dc2626}.field-error{color:#dc2626;margin:0;font-size:.75rem;line-height:1.35}.sheet-readonly{background:var(--canvas);color:var(--ink-soft);border-radius:12px;margin:0;padding:.65rem .75rem;font-size:.9375rem}.sheet-hint{color:var(--ink-faint);margin:.35rem 0 0;font-size:.75rem;line-height:1.35}.sheet-toggle{cursor:pointer;align-items:center;gap:.5rem;font-weight:600;display:flex}.sheet-toggle input{width:1rem;height:1rem;accent-color:var(--action)}.sheet-delete-confirm{border-radius:var(--radius-card);background:var(--canvas);border:1px solid var(--line);margin:.75rem 0 0;padding:.75rem}.sheet-delete-title{margin:0;font-size:.9375rem;font-weight:600}.sheet-delete-actions{justify-content:flex-end;gap:.5rem;margin-top:.65rem;display:flex}.segmented{background:var(--canvas);border-radius:var(--radius-pill);gap:.35rem;padding:.25rem;display:flex}.segmented button{border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;flex:1;padding:.45rem .5rem;font-size:.8125rem;font-weight:600}.segmented button:focus-visible{outline:2px solid var(--action);outline-offset:2px}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.segmented-triple button{padding:.4rem .3rem;font-size:.75rem}.duration-chips{flex-wrap:wrap;gap:.35rem;display:flex}.duration-chips button{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);cursor:pointer;padding:.35rem .65rem;font-size:.8125rem}.duration-chips button:focus-visible{outline:2px solid var(--action);outline-offset:2px}.duration-chips button[aria-pressed=true]{border-color:var(--action);background:var(--action-soft);color:var(--action-hover)}.empty-state{text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-card);padding:2.5rem 1rem}.empty-icon{margin-bottom:.75rem;font-size:2.5rem}.empty-state h2{margin:0 0 .5rem;font-size:1.125rem}.empty-state p{color:var(--ink-soft);margin:0 0 1rem;font-size:.9375rem}.empty-state .empty-tip{color:var(--ink-faint);margin:-.5rem 0 1.25rem;font-size:.8125rem}.stats-hero{text-align:center;background:var(--surface);border-radius:var(--radius-card);border:1px solid var(--line);margin-bottom:1rem;padding:1.25rem}.stats-hero-value{font-family:var(--font-mono);font-size:2rem;font-weight:600}.stats-meta-row{color:var(--ink-soft);justify-content:center;gap:1rem;margin-top:.5rem;font-size:.8125rem;display:flex}.bar-chart{gap:.65rem;display:grid}.bar-row{grid-template-columns:5rem 1fr 3rem;align-items:center;gap:.5rem;font-size:.8125rem;display:grid}.bar-track{background:var(--line);border-radius:var(--radius-pill);height:10px;overflow:hidden}.bar-fill{background:var(--action);border-radius:var(--radius-pill);height:100%}.achievements-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:1rem;display:grid}.levels-grid{gap:.5rem;display:grid}.level-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem}.level-card p{color:var(--ink-soft);margin:.35rem 0 0;font-size:.8125rem;line-height:1.4}.level-card-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.level-card-head strong{color:var(--ink);font-size:.8125rem}.level-card-xp{font-family:var(--font-mono);color:var(--gold-xp);white-space:nowrap;font-size:.6875rem}.level-card.current{border-color:var(--gold-xp);box-shadow:0 0 0 1px color-mix(in srgb, var(--gold-xp) 35%, transparent)}.level-card.locked{opacity:.55}.level-card.locked .level-card-head strong{color:var(--ink-soft)}.achievement{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:12px;padding:.65rem;font-size:.8125rem}.achievement.locked{opacity:.45;filter:grayscale()}.modal-backdrop{z-index:60;background:#1a233280;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-card);text-align:center;width:100%;max-width:360px;box-shadow:var(--shadow-card);overscroll-behavior:contain;padding:1.5rem}.modal h2{margin:0 0 .5rem;font-size:1.35rem}.xp-float{pointer-events:none;z-index:70;color:var(--gold-xp);text-shadow:0 1px 2px #00000026;font-size:1.125rem;font-weight:700;position:fixed}.toast-stack{bottom:calc(5rem + env(safe-area-inset-bottom));z-index:55;flex-direction:column;gap:.35rem;width:min(420px,100% - 2rem);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:#fff;border-radius:var(--radius-pill);text-align:center;padding:.65rem 1rem;font-size:.875rem;font-weight:500}.toast.gold{background:linear-gradient(90deg, #b45309, var(--gold-xp))}.sign-in-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem 1rem;display:flex}.sign-in-hero h1{font-family:var(--font-display);margin:0 0 .5rem;font-size:2rem}.sign-in-hero p{color:var(--ink-soft);max-width:24rem;margin:0 auto 1.5rem}.sign-in-clerk{width:100%;max-width:400px}.settings-list{gap:.75rem;display:grid}.setting-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.setting-row label{font-weight:500}.settings-page{gap:1rem;display:grid}.settings-header{margin:0 0 .15rem}.settings-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;margin:0;font-size:1.5rem;font-weight:700}.settings-lead{color:var(--ink-soft);text-wrap:pretty;margin:.35rem 0 0;font-size:.875rem;line-height:1.4}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:.85rem .85rem .35rem}.settings-panel-account{padding-bottom:.85rem}.settings-account-identity{border-bottom:1px solid var(--line);min-width:0;margin:0 0 .75rem;padding:.1rem .35rem .75rem}.settings-account-label{color:var(--ink-soft);margin:0 0 .25rem;font-size:.75rem;line-height:1.3}.settings-account-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.9375rem;font-weight:600;line-height:1.35;overflow:hidden}.settings-account-email{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin:.15rem 0 0;font-size:.8125rem;line-height:1.35;overflow:hidden}.settings-account-status{color:var(--ink-soft);margin:0;font-size:.875rem;line-height:1.4}.settings-section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .55rem;padding:0 .35rem;font-size:.6875rem;font-weight:700}.settings-rows{display:grid}.settings-page .setting-row{border:none;border-top:1px solid var(--line);min-height:3.25rem;box-shadow:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:0;gap:.75rem;margin:0;padding:.7rem .5rem}.settings-page .setting-row:first-child{border-top:none}.settings-page .setting-row-select{cursor:default}.setting-row-copy{flex:1;gap:.15rem;min-width:0;display:grid}.setting-row-title{color:var(--ink);font-size:.9375rem;font-weight:600}.setting-row-hint{color:var(--ink-soft);font-size:.75rem;line-height:1.3}.setting-switch{appearance:none;border-radius:var(--radius-pill);background:var(--line);cursor:pointer;width:2.75rem;height:1.625rem;transition:background-color .2s var(--ease-out-expo);border:none;flex-shrink:0;margin:0;position:relative}.setting-switch:after{content:"";background:var(--surface);width:1.225rem;height:1.225rem;transition:transform .2s var(--ease-out-expo);border-radius:50%;position:absolute;top:.2rem;left:.2rem;box-shadow:0 1px 3px #1a23322e}.setting-switch:checked{background:var(--action)}.setting-switch:checked:after{transform:translate(1.125rem)}.setting-switch:focus-visible{outline:2px solid var(--action);outline-offset:3px}.setting-select{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);min-width:0;max-width:9rem;color:var(--ink);cursor:pointer;touch-action:manipulation;flex-shrink:0;padding:.4rem .65rem;font-size:.8125rem;font-weight:600}.setting-select:hover{border-color:color-mix(in srgb, var(--action) 35%, var(--line))}.setting-select:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-color:var(--action)}.setting-sign-out{border:1px solid color-mix(in srgb, var(--action) 28%, var(--line));background:color-mix(in srgb, var(--action-soft) 55%, var(--surface));width:100%;min-height:2.75rem;color:var(--action-hover);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .15s var(--ease-out-expo), border-color .15s var(--ease-out-expo), color .15s var(--ease-out-expo);border-radius:12px;justify-content:center;align-items:center;margin:0;padding:.65rem 1rem;font-weight:700;display:flex}.setting-sign-out:hover{background:var(--action-soft);border-color:var(--action);color:var(--action-hover)}.setting-sign-out:focus-visible{outline:2px solid var(--action);outline-offset:2px}.setting-delete-account{color:#b91c1c;width:100%;min-height:2.5rem;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;margin:.45rem 0 0;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:flex}.setting-delete-account:hover{background:color-mix(in srgb, #dc2626 8%, var(--surface));color:#991b1b}.setting-delete-account:focus-visible{outline-offset:2px;outline:2px solid #dc2626}.settings-legal{flex-wrap:wrap;align-items:center;gap:.35rem;padding:.25rem .15rem 0;font-size:.8125rem;display:flex}.settings-legal a,.settings-legal-btn{color:var(--ink-soft);font-weight:500;font:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.settings-legal a:hover,.settings-legal-btn:hover{color:var(--action)}.settings-legal a:focus-visible,.settings-legal-btn:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:4px}.settings-legal-sep{color:var(--ink-faint)}.site-footer{width:100%;max-width:22rem;margin-top:1rem}.site-footer-inner{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem 1rem;font-size:.8125rem;display:flex}.site-footer .linkish{color:var(--ink-soft);font-weight:500;font:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.site-footer .linkish:hover{color:var(--action)}.site-footer .linkish:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:4px}.feedback-panel{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);width:100%;max-width:22rem;box-shadow:var(--shadow-card);margin-top:.85rem;padding:.85rem}.settings-page .feedback-panel{max-width:none}.feedback-panel-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.feedback-panel-title{color:var(--ink);margin:0;font-size:.9375rem;font-weight:700}.feedback-panel-lead{color:var(--ink-soft);text-wrap:pretty;margin:.35rem 0 .75rem;font-size:.8125rem;line-height:1.4}.feedback-panel-success{color:var(--done);margin:0;font-size:.875rem;font-weight:600;line-height:1.4}.feedback-label{color:var(--ink-soft);margin:0 0 .35rem;font-size:.75rem;font-weight:600;display:block}.feedback-textarea{border:1px solid var(--line);background:var(--surface-raised);width:100%;min-height:5.5rem;color:var(--ink);font:inherit;resize:vertical;field-sizing:content;border-radius:12px;margin:0;padding:.65rem .75rem;font-size:.875rem;line-height:1.4;display:block}.feedback-textarea:focus-visible{outline:2px solid var(--action);outline-offset:0;border-color:var(--action)}.feedback-textarea:disabled{opacity:.7}.feedback-honeypot{clip:rect(0, 0, 0, 0);white-space:nowrap;opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.feedback-form{gap:.5rem;display:grid;position:relative}.feedback-actions{justify-content:flex-end;margin-top:.25rem;display:flex}.sign-in-feedback{margin-top:.75rem}.date-picker-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem .75rem;margin:0 0 .75rem;display:flex}.date-picker-main{flex-direction:column;gap:.2rem;min-width:0;display:flex}.date-picker-context{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:.6875rem;font-weight:600}.date-picker-trigger{cursor:pointer;color:var(--ink);font:inherit;text-align:left;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;padding:0;display:inline-flex}.date-picker-trigger:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:4px}.date-picker-label{font-size:1.0625rem;font-weight:600}.date-picker-badge{letter-spacing:.02em;text-transform:uppercase;color:var(--action);background:var(--action-soft);border-radius:var(--radius-pill);padding:.15rem .45rem;font-size:.6875rem;font-weight:600}.date-picker-icon{width:1rem;height:1rem;color:var(--ink-soft);flex-shrink:0}.date-picker-trigger:hover .date-picker-icon,.date-picker-trigger:focus-visible .date-picker-icon{color:var(--action)}.date-back-today{flex-shrink:0;align-self:center}.past-day-empty{text-align:center;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-card);margin:.5rem 0 0;padding:1.25rem 1rem;font-size:.9375rem;line-height:1.45}.date-line{color:var(--ink-soft);margin:0 0 .75rem;font-size:.8125rem}.linkish{color:var(--action);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.calendar-sheet{max-height:min(88dvh,640px);padding-bottom:calc(1.25rem + env(safe-area-inset-bottom));overflow-y:auto}.calendar-sheet-actions{background:linear-gradient(to top, var(--surface) 75%, transparent);margin-top:.75rem;padding-top:.75rem;position:sticky;bottom:0}.calendar-nav{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.calendar-nav-btn{border:1px solid var(--line);background:var(--surface);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;transition:background .15s, border-color .15s, transform .15s var(--ease-bounce);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.calendar-nav-btn:hover:not(:disabled){background:var(--canvas);border-color:color-mix(in srgb, var(--action) 25%, var(--line))}.calendar-nav-btn:active:not(:disabled){transform:scale(.94)}.calendar-nav-btn:disabled{opacity:.35;cursor:not-allowed}.calendar-nav-btn:focus-visible{outline:2px solid var(--action);outline-offset:2px}.calendar-month-label{text-align:center;color:var(--ink);flex:1;font-size:1.0625rem;font-weight:600}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:.15rem;margin-bottom:.35rem;display:grid}.calendar-weekday{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);padding:.2rem 0;font-size:.6875rem;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.15rem;display:grid}.calendar-day{aspect-ratio:1;border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;min-height:44px;color:var(--ink);cursor:pointer;transition:background .15s, color .15s, box-shadow .15s, transform .12s var(--ease-bounce);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:.9375rem;font-weight:500;display:flex;position:relative}.calendar-day:hover:not(:disabled):not(.selected){background:var(--canvas)}.calendar-day:active:not(:disabled){transform:scale(.92)}.calendar-day.outside{color:var(--ink-faint)}.calendar-day.today:not(.selected){box-shadow:inset 0 0 0 2px var(--action);background:var(--action-soft);color:var(--action-hover);font-weight:600}.calendar-day.selected{background:var(--action);color:#fff;box-shadow:var(--action-shadow-strong);font-weight:600}.calendar-day.disabled{opacity:.32;cursor:not-allowed}.calendar-day.has-done:after{content:"";background:var(--done);border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.calendar-day.selected.has-done:after{background:#fff}.calendar-day.today.has-done:not(.selected):after{background:var(--done)}.calendar-day:focus-visible{outline:2px solid var(--action);outline-offset:2px}@media (width>=640px){.sheet,.calendar-sheet{border-radius:var(--radius-card);width:400px;bottom:1rem;left:auto;right:1rem}}.dimension-switch{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-pill);touch-action:manipulation;gap:.15rem;max-width:min(240px,100%);padding:.15rem;display:inline-flex}.dimension-segment{color:var(--ink-soft);border-radius:var(--radius-pill);min-height:44px;font-family:var(--font-display);cursor:pointer;white-space:nowrap;touch-action:manipulation;background:0 0;border:none;flex:1;padding:.5rem .75rem;font-size:.8125rem;font-weight:600}.dimension-segment[aria-checked=true]{background:var(--action-soft);color:var(--action-hover)}.dimension-segment:focus-visible{outline:2px solid var(--action);outline-offset:2px}.dimension-segment:disabled{opacity:.6;cursor:not-allowed}.app-shell[data-dimension=improvement]{--action:#6366f1;--action-hover:#4f46e5;--action-soft:#e0e7ff;background:radial-gradient(ellipse at top, #f5f3ff 0%, var(--canvas) 55%)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
