:root,[data-theme=ledger]{--bg: #f8f4ed;--surface: #fdfaf3;--surface-2: #f5f0e6;--input-bg: #ffffff;--surface-raised: #ffffff;--text: #3c3832;--text-soft: #665f55;--text-faint: #6f6659;--border: #ddd0ba;--border-strong: #a2917a;--accent: #b0512f;--accent-deep: #8f3f24;--accent-warm: #d4a373;--accent-sage: #55735a;--sage-deep: #49674e;--accent-soft: #f0e2d2;--on-accent: #ffffff;--on-accent-warm: #3c3832;--indigo: #4a5878;--danger: #a3401f;--tint-accent: rgba(176, 81, 47, .1);--tint-sage: rgba(85, 115, 90, .14);--tint-indigo: rgba(74, 88, 120, .12);--tint-danger: rgba(163, 64, 31, .1);--focus-ring: var(--accent);--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 12px rgba(60, 50, 30, .06);--shadow-lift: 0 4px 14px rgba(60, 50, 30, .09);--font-sans: "Inter", "Inter Fallback", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-caption: .75rem;--text-label: .8125rem;--text-ui: .875rem;--text-body: 1rem;--text-subhead: 1.125rem;--text-title: 1.375rem;--text-display: 1.75rem;--icon-sm: 1rem;--icon-md: 1.125rem;--icon-lg: 1.375rem;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.6;--z-base: 1;--z-sticky: 10;--z-toast: 40;--space-2xs: .25rem;--space-xs: .375rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 2.5rem}[data-theme=night]{--bg: #1f1c18;--surface: #282420;--surface-2: #302b26;--input-bg: #17140f;--surface-raised: #35302a;--text: #e6dcc8;--text-soft: #b5a98a;--text-faint: #9f927a;--border: #4a4034;--border-strong: #6f624f;--accent: #e08163;--accent-deep: #f0997c;--accent-warm: #d9a56d;--accent-sage: #7a9e7f;--sage-deep: #86aa8b;--accent-soft: #4a3227;--on-accent: #241009;--on-accent-warm: #2b1c0c;--indigo: #9db0d8;--danger: #f08a6a;--tint-accent: rgba(224, 129, 99, .14);--tint-sage: rgba(122, 158, 127, .16);--tint-indigo: rgba(157, 176, 216, .16);--tint-danger: rgba(240, 138, 106, .14);--focus-ring: var(--accent);--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .4);--shadow-lift: 0 4px 14px rgba(0, 0, 0, .5)}[data-theme=blueprint]{--bg: #e8f0f7;--surface: #f3f7fb;--surface-2: #e6eef6;--input-bg: #ffffff;--surface-raised: #ffffff;--text: #1f2a3a;--text-soft: #475d78;--text-faint: #576d89;--border: #b4c6da;--border-strong: #8096ae;--accent: #35608f;--accent-deep: #26496e;--accent-warm: #5178a1;--accent-sage: #4a7561;--sage-deep: #3e6955;--accent-soft: #d3e2f1;--on-accent: #ffffff;--on-accent-warm: #ffffff;--indigo: #3f5580;--danger: #a3341f;--tint-accent: rgba(53, 96, 143, .1);--tint-sage: rgba(74, 117, 97, .14);--tint-indigo: rgba(63, 85, 128, .12);--tint-danger: rgba(163, 52, 31, .1);--focus-ring: var(--accent);--shadow-card: 0 1px 2px rgba(30, 50, 90, .06), 0 3px 10px rgba(30, 50, 90, .07);--shadow-lift: 0 4px 14px rgba(30, 50, 90, .12)}@font-face{font-family:Inter Fallback;src:local("Arial");size-adjust:107.12%;ascent-override:90.44%;descent-override:22.52%;line-gap-override:0%}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-normal);font-weight:var(--weight-normal);color:var(--text);background:var(--bg);min-height:100vh;font-kerning:normal;font-variant-numeric:tabular-nums}main{position:relative;z-index:var(--z-base);max-width:1280px;margin:var(--space-2xl) auto;padding:0 max(var(--space-xl),env(safe-area-inset-right,0px)) 0 max(var(--space-xl),env(safe-area-inset-left,0px))}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}h1,h2,h3{font-family:var(--font-sans);font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--text);letter-spacing:0}.topbar h1{font-size:var(--text-display);line-height:var(--leading-tight);margin:0;letter-spacing:-.02em}h2{font-size:var(--text-subhead);color:var(--text);margin:0 0 var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border)}.cal-header h3,.mood-picker h3,.completed-panel h3{font-size:var(--text-body)}.layout{display:grid;grid-template-columns:minmax(420px,1.32fr) minmax(320px,.95fr);gap:var(--space-3xl);align-items:start}.panel{background:transparent;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.layout .panel:nth-child(1){animation-delay:.03s}.layout .panel:nth-child(2){animation-delay:.1s}.calendar-row{display:flex;flex-direction:column;gap:var(--space-xl);width:100%}@media (max-width: 860px){.layout{grid-template-columns:1fr;gap:var(--space-xl)}}.flash{position:relative;z-index:var(--z-base);display:flex;align-items:flex-start;gap:.75rem;padding:.6rem .9rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:var(--text-ui);border:1px solid currentColor;background:var(--surface)}.flash-error{color:var(--danger)}.flash-message{flex:1;min-width:0}.flash-dismiss{flex:none;background:none;border:none;cursor:pointer;color:inherit;font-size:var(--icon-sm);line-height:1;padding:.15rem .3rem;border-radius:var(--radius-xs)}.flash-dismiss:hover{background:var(--tint-accent)}.add-form{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-sm);margin-bottom:var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-card)}.add-form input,.add-form textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-body);background:var(--input-bg);color:var(--text);transition:border-color .1s ease,box-shadow .1s ease}.add-form input::placeholder{color:var(--text-faint)}.field-error{margin:0;font-size:var(--text-label);color:var(--danger)}.add-form textarea{resize:vertical;min-height:2.4em;font-size:var(--text-ui)}.add-form input:focus,.add-form textarea:focus,.add-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--tint-accent)}.add-form select,.task.editing select{padding:.55rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-ui);background:var(--input-bg);color:var(--text);cursor:pointer}.add-form button{padding:.6rem 1.25rem;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-ui);font-weight:var(--weight-semibold);cursor:pointer;transition:all .12s ease}.add-form button:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.add-form button:disabled{opacity:.5;cursor:not-allowed}.add-form-row{display:flex;gap:.5rem;align-items:center}.add-form-row select{flex:0 0 auto}.add-form-row button{flex:1 0 auto}.sort{display:flex;align-items:center;gap:.35rem;margin-bottom:var(--space-md);flex-wrap:wrap}.sort-label{font-size:var(--text-caption);color:var(--text-faint);margin-right:.15rem}.sort-btn{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-pill);padding:.3rem .75rem;min-height:1.5rem;font-family:var(--font-sans);font-size:var(--text-label);font-weight:var(--weight-medium);cursor:pointer;color:var(--text-soft);transition:background-color .12s ease,border-color .12s ease,color .12s ease}.sort-btn:hover{border-color:var(--accent);color:var(--text)}.sort-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.show-completed{display:flex;align-items:center;gap:.4rem;font-size:var(--text-label);color:var(--text-soft);margin-bottom:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none}.show-completed input{cursor:pointer;accent-color:var(--accent)}.completed-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.35rem;padding-top:.75rem;border-top:1px solid var(--border);flex-wrap:wrap}.completed-pagination-range{font-size:var(--text-caption);color:var(--text-soft)}.completed-pagination-controls{display:flex;align-items:center;gap:.4rem}.completed-pagination-page{font-size:var(--text-caption);color:var(--text-faint);min-width:3.2rem;text-align:center}.completed-pagination .sort-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.task-list{list-style:none;padding:0;margin:0}.task{display:flex;align-items:flex-start;gap:var(--space-md);background:var(--surface);padding:var(--space-md) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-sm);box-shadow:var(--shadow-card);transition:box-shadow .12s ease,border-color .12s ease,opacity .12s ease}.task:hover{border-color:var(--border-strong)}.task.done{background:var(--surface-2)}.task.done .title{text-decoration:line-through;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;color:var(--text-faint)}.task-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.22rem}.task-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.3rem .5rem}.task-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.task-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .55rem}.task .title{min-width:0;font-size:var(--text-body);color:var(--text);font-weight:var(--weight-medium);line-height:var(--leading-snug);word-break:break-word}.task button{background:none;border:none;cursor:pointer;font-size:var(--icon-sm);min-width:2rem;min-height:2rem;padding:.15rem;line-height:1;border-radius:var(--radius-xs);color:var(--text-soft);transition:color .12s ease,background-color .12s ease;display:inline-flex;align-items:center;justify-content:center}.task button.toggle{flex:none;margin-top:.08rem;color:var(--text-faint)}.task button.toggle:hover:not(:disabled){color:var(--accent)}.task.done button.toggle{color:var(--accent)}.task button.edit:hover{color:var(--accent);background:var(--tint-accent)}.task button.delete:hover{color:var(--danger);background:var(--tint-danger)}.task button:disabled{cursor:default}.task.pending{opacity:.7}.spinner{animation:spin .7s linear infinite}.task button.toggle[aria-busy=true]{color:var(--accent)}.task.toggling{opacity:.7}.task.toggling .title{color:var(--text-faint)}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:1.6s}}.task button.undo{font-family:var(--font-sans);font-size:var(--text-label);font-weight:var(--weight-medium);padding:.2rem .55rem;border:1px solid var(--accent);border-radius:var(--radius-pill);color:var(--accent)}.task button.undo:hover{background:var(--accent);color:var(--on-accent)}.task.editing{border-color:var(--accent);box-shadow:var(--shadow-lift)}.task-edit-main{flex:1 1 100%;min-width:0;display:flex;flex-direction:column;gap:.3rem}.task-edit-main input,.task-edit-main textarea{width:100%;padding:.45rem .6rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-ui);background:var(--input-bg);color:var(--text)}.task-edit-main textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint-accent)}.task-edit-controls{flex:1 1 100%;display:flex;gap:.4rem;align-items:center;justify-content:flex-end;margin-top:.1rem}.task-edit-controls .save{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:.35rem .75rem;font-size:var(--text-ui);font-weight:var(--weight-semibold);cursor:pointer}.task-edit-controls .save:hover{background:var(--accent-deep)}.task-edit-controls .cancel{color:var(--text-soft);font-size:var(--text-ui);font-weight:var(--weight-medium);padding:.35rem .5rem}.task-desc{font-size:var(--text-ui);color:var(--text-soft);white-space:pre-wrap;word-break:break-word;line-height:var(--leading-relaxed);max-width:70ch}.task-desc.clamped{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.task-desc-more{align-self:flex-start;background:none;border:none;padding:.15rem 0;font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--accent);cursor:pointer}.task-desc-more:hover{text-decoration:underline}.task-desc a{color:var(--accent);text-decoration:underline;text-underline-offset:1.5px}.task-desc a:hover{color:var(--accent-deep)}.badge{font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);padding:.15rem .6rem;border-radius:var(--radius-pill);white-space:nowrap;border:none}.priority-high{background:var(--accent);color:var(--on-accent)}.priority-medium{background:var(--accent-warm);color:var(--on-accent-warm)}.priority-low{background:var(--accent-sage);color:var(--on-accent)}.completed-on,.created-ago{font-size:var(--text-caption);color:var(--text-faint);white-space:nowrap}.empty{color:var(--text-faint);font-size:var(--text-ui);padding:.6rem 0}.calendar-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-card)}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem}.cal-header h3{margin:0}.cal-nav{background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);font-size:var(--icon-sm);line-height:1;cursor:pointer;width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .1s ease}.cal-nav:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.calendar{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed}.calendar th{font-size:var(--text-caption);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;padding-bottom:.35rem;font-weight:var(--weight-medium)}.calendar td{padding:0}.calendar .day-btn{width:100%;height:2.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.22rem .26rem;cursor:pointer;position:relative;display:block;text-align:left;background:var(--surface-2);font-family:var(--font-sans);font-size:var(--text-label);transition:background-color .12s ease,border-color .12s ease}.calendar .day-btn:hover{background:var(--surface-raised);border-color:var(--accent)}.calendar .daynum{font-size:var(--text-label);color:var(--text-soft)}.calendar .day-btn.other-month{background:transparent;border-color:transparent}.calendar .day-btn.other-month .daynum{color:var(--text-faint)}.calendar .day-btn.today{border-color:var(--accent);background:var(--accent-soft)}.calendar .day-btn.today .daynum{font-weight:var(--weight-semibold);color:var(--accent-deep)}.calendar .day-btn.selected{background:var(--surface-raised);border-color:var(--accent);box-shadow:0 0 0 2px var(--tint-accent);font-weight:var(--weight-semibold)}.calendar .count{position:absolute;bottom:2px;right:3px;background:var(--accent);color:var(--on-accent);font-size:var(--text-caption);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);min-width:15px;text-align:center;padding:0 3px;line-height:1.15}.mood-marks{position:absolute;bottom:2px;left:3px;display:flex;gap:1px;font-size:var(--text-caption);line-height:1}.completed-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-card)}.completed-panel h3{margin:0 0 .25rem}.completed-date{margin:0 0 .65rem;font-size:var(--text-label);color:var(--text)}.completed-panel .task{box-shadow:none;border:1px solid var(--border);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-2xl);padding-bottom:var(--space-md);border-bottom:1px solid var(--border);animation:rise .4s cubic-bezier(.2,.7,.2,1) both}.user-box{display:flex;align-items:center;gap:.9rem}.user-meta{display:flex;align-items:center;gap:.65rem;min-width:0}.user-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.user-email{color:var(--text-soft);font-size:var(--text-label);min-width:0}.theme-picker{display:flex;gap:4px;align-items:center}.theme-swatch{width:16px;height:16px;border-radius:50%;border:1px solid var(--border-strong);cursor:pointer;padding:0;flex:none;transition:transform .12s ease,box-shadow .12s ease}.theme-swatch:hover{transform:scale(1.15)}.theme-swatch.active{box-shadow:0 0 0 2px var(--accent-soft);border-color:var(--accent)}.btn-primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:.55rem 1.15rem;font-family:var(--font-sans);font-size:var(--text-ui);font-weight:var(--weight-semibold);cursor:pointer;transition:all .12s ease;box-shadow:var(--shadow-card)}.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);box-shadow:var(--shadow-lift)}.btn-lg{padding:.8rem 1.6rem;font-size:var(--text-body)}.btn-primary:disabled,.btn-ghost:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-ghost{background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.4rem .85rem;font-family:var(--font-sans);font-size:var(--text-ui);font-weight:var(--weight-medium);cursor:pointer;color:var(--text);transition:all .12s ease}.btn-ghost:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.auth-screen{position:relative;z-index:1;max-width:480px;margin:6rem auto;text-align:center;display:flex;flex-direction:column;gap:1rem;align-items:center;font-family:var(--font-sans);font-size:var(--text-title);color:var(--text)}.landing{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:0 1.25rem 4rem}.landing-nav,.landing-foot{display:flex;align-items:center;justify-content:space-between;padding:1.4rem 0}.landing-foot{margin-top:3.5rem;border-top:3px double var(--border-strong);color:var(--text-soft);font-size:var(--text-ui)}.brand{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-title);letter-spacing:-.02em}.hero{text-align:center;padding:4rem 1rem 2.5rem;animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.hero h1{font-family:var(--font-sans);font-size:clamp(2.35rem,5.8vw,3.6rem);line-height:1.05;margin:0 auto 1rem;max-width:17ch;font-weight:var(--weight-semibold);letter-spacing:-.025em}.hero h1:after{content:"";display:block;width:68px;height:3px;margin:.9rem auto 0;background:var(--accent);border-radius:var(--radius-pill);opacity:.85}.hero-sub{color:var(--text-soft);font-size:var(--text-subhead);line-height:var(--leading-relaxed);max-width:52ch;margin:0 auto 2rem}.hero-note{color:var(--text-faint);font-size:var(--text-label);letter-spacing:.04em;margin-top:1rem}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:2.5rem 0}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-card);transition:transform .12s ease,box-shadow .12s ease}.feature-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lift)}.feature-icon{font-size:var(--icon-lg);display:inline-flex;width:2.6rem;height:2.6rem;align-items:center;justify-content:center;background:var(--accent-soft);border:1px solid var(--accent);border-radius:50%}.feature-card h3{margin:.75rem 0 .4rem;font-family:var(--font-sans);font-size:var(--text-title);font-weight:var(--weight-semibold)}.feature-card p{margin:0;color:var(--text-soft);font-size:var(--text-ui);line-height:var(--leading-relaxed)}@media (max-width: 760px){.features{grid-template-columns:1fr}}.demo{margin-top:3rem}.demo-title{text-align:center;font-family:var(--font-sans);font-size:var(--text-display);font-weight:var(--weight-semibold);letter-spacing:-.02em;margin-bottom:1.25rem}.demo-frame{position:relative;border:2px solid var(--text);border-radius:var(--radius);background:var(--surface);padding:1.75rem;overflow:hidden;box-shadow:8px 8px 0 var(--tint-accent)}.demo-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:1.75rem;pointer-events:none;-webkit-user-select:none;user-select:none}.demo-panel h4{margin:0 0 .85rem;font-family:var(--font-sans);font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--text-soft)}.demo-frame .task-list{list-style:none;padding:0;margin:0}.demo-frame .task{display:flex;align-items:center;gap:.6rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.55rem;box-shadow:none;background:var(--surface-2)}.demo-frame .task.done .task-title{text-decoration:line-through;text-decoration-color:var(--accent);color:var(--text-faint)}.demo-frame .task-title{flex:1;font-size:var(--text-ui)}.pill{font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);padding:.12rem .55rem;border-radius:var(--radius-pill)}.pill-high{background:var(--accent);color:var(--on-accent)}.pill-medium{background:var(--accent-warm);color:var(--on-accent-warm)}.pill-low{background:var(--accent-sage);color:var(--on-accent)}.demo-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.demo-day{position:relative;aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--text-caption);color:var(--text-soft);display:flex;align-items:flex-start;justify-content:flex-start;padding:3px 5px;background:var(--surface-2)}.demo-day.has{background:var(--accent-soft);border-color:var(--accent)}.demo-day em{position:absolute;right:3px;bottom:2px;font-style:normal;font-weight:var(--weight-semibold);color:var(--accent)}.demo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 15%,transparent),color-mix(in srgb,var(--surface) 90%,transparent))}@media (max-width: 760px){.demo-inner{grid-template-columns:1fr}}.flash-ok{background:var(--tint-sage);color:var(--sage-deep)}.admin-create{margin-bottom:1.75rem}.admin-form{display:flex;gap:.6rem;flex-wrap:wrap}.admin-form input{flex:1;min-width:200px;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-body);background:var(--input-bg);color:var(--text);transition:border-color .1s ease,box-shadow .1s ease}.admin-form input::placeholder{color:var(--text-faint)}.admin-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--tint-accent)}.admin-hint{color:var(--text-faint);font-size:var(--text-label);margin:.6rem 0 0}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-ui)}.admin-table th,.admin-table td{text-align:left;padding:.7rem .55rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table th{color:var(--text-faint);font-weight:var(--weight-semibold);font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.1em}.row-disabled td{color:var(--text-faint)}.admin-actions{display:flex;gap:.4rem;flex-wrap:wrap}.badge-on{color:var(--sage-deep);background:var(--tint-sage)}.badge-off{color:var(--accent-deep);background:var(--tint-accent)}.badge-admin{color:var(--indigo);background:var(--tint-indigo)}.status-sub{display:block;color:var(--text-faint);font-size:var(--text-caption);margin-top:2px}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger);color:var(--on-accent);border-color:var(--danger)}.mood-picker{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-card)}.mood-picker h3{margin:0 0 .55rem}.mood-period{margin-bottom:.6rem;display:flex;align-items:center;gap:.6rem}.mood-period:last-child{margin-bottom:0}.mood-period-label{font-size:var(--text-label);color:var(--text-soft);min-width:78px;display:flex;align-items:center;gap:.35rem;font-weight:var(--weight-medium)}.mood-period-icon{font-size:var(--icon-sm)}.mood-options{display:flex;gap:.35rem;flex:1}.mood-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.35rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-ui);transition:all .1s ease;color:var(--text)}.mood-btn:hover{border-color:var(--border-strong);background:var(--surface-raised)}.mood-btn.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 2px var(--tint-accent);font-weight:var(--weight-semibold)}.mood-emoji{font-size:var(--icon-md);line-height:1}.mood-label{font-size:var(--text-caption);color:var(--text-soft);font-weight:var(--weight-normal)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-pulse{50%{opacity:.45}}.skeleton-row{display:flex;align-items:flex-start;gap:.75rem;background:var(--surface);padding:.85rem .95rem;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.6rem}.skeleton-box,.skeleton-line{background:var(--surface-2);border-radius:var(--radius-xs);animation:skeleton-pulse 1.6s ease-in-out infinite}.skeleton-box{flex:none;width:18px;height:18px;border-radius:var(--radius-xs);margin-top:.08rem}.skeleton-lines{flex:1;display:flex;flex-direction:column;gap:.45rem}.skeleton-line{height:.7rem}.skeleton-line.short{width:38%;height:.55rem}.skeleton-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);animation:skeleton-pulse 1.6s ease-in-out infinite}.skeleton-panel.calendar-shape{height:20.5rem}.skeleton-panel.mood-shape{height:9.5rem}.skeleton-panel.completed-shape{height:8rem}@media (prefers-reduced-motion: reduce){.skeleton-box,.skeleton-line,.skeleton-panel{animation:none}}.task-divider{display:flex;align-items:center;gap:.65rem;margin:1.1rem 0 .6rem;font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.task-divider:after{content:"";flex:1;height:1px;background:var(--border)}.toast{position:fixed;z-index:var(--z-toast);left:50%;bottom:max(1.25rem,env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;align-items:center;gap:1rem;padding:.7rem .8rem .7rem 1rem;border-radius:var(--radius-pill);background:var(--text);color:var(--bg);box-shadow:var(--shadow-lift);font-size:var(--text-ui);max-width:min(30rem,calc(100vw - 2rem));animation:toast-in .18s cubic-bezier(.2,.7,.2,1) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,.75rem)}to{opacity:1;transform:translate(-50%)}}.toast-message{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-undo{flex:none;background:none;border:1px solid currentColor;border-radius:var(--radius-pill);color:inherit;font-family:var(--font-sans);font-size:var(--text-label);font-weight:var(--weight-semibold);padding:.3rem .8rem;min-height:1.75rem;cursor:pointer}.toast-undo:hover{background:var(--bg);color:var(--text)}.toast :focus-visible{outline-color:var(--bg)}@media (max-width: 600px){.toast{left:.75rem;right:.75rem;transform:none;max-width:none}@keyframes toast-in{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.toast-undo{min-height:2.25rem;padding:.4rem .9rem}}@media (max-width: 600px){main{margin:.85rem auto 1.5rem;padding:0 max(.85rem,env(safe-area-inset-right,0px)) 0 max(.85rem,env(safe-area-inset-left,0px));overflow-x:hidden}.topbar{flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:1.25rem;padding-bottom:.85rem}.topbar h1{margin-bottom:0}.user-box{flex-direction:column;align-items:stretch;gap:.55rem;padding-top:0;width:100%}.user-meta{gap:.5rem}.user-email{flex:1;font-size:var(--text-caption);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.user-actions .btn-ghost{width:100%;min-height:2.75rem;padding:.55rem .65rem;font-size:var(--text-caption);text-align:center}.user-actions .btn-ghost:only-child{grid-column:1 / -1}.layout{gap:var(--space-xl)}.panel h2{margin-bottom:var(--space-md)}.add-form{margin-bottom:.85rem;gap:.45rem}.add-form select{font-size:var(--text-body)}.add-form input{padding:.65rem .75rem}.add-form textarea{padding:.6rem .75rem;min-height:3.2em}.add-form-row{flex-direction:column;align-items:stretch;gap:.45rem}.add-form-row select{width:100%;padding:.65rem .75rem}.add-form-row button{width:100%;min-height:2.85rem;padding:.7rem 1rem;font-size:var(--text-ui)}.sort{flex-wrap:nowrap;gap:.35rem;margin-bottom:.55rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.15rem}.sort::-webkit-scrollbar{display:none}.sort-label{display:none}.sort-btn{flex-shrink:0;padding:.38rem .8rem;font-size:var(--text-caption);min-height:2.25rem}.show-completed{margin-bottom:.9rem;min-height:2.25rem;font-size:var(--text-label)}.show-completed input{width:1.1rem;height:1.1rem}.task{gap:.55rem;padding:.8rem .75rem;align-items:flex-start}.task button.toggle{font-size:var(--icon-lg);min-width:2rem;min-height:2rem;display:inline-flex;align-items:center;justify-content:center;margin-top:0}.task button.edit,.task button.delete{min-width:2.35rem;min-height:2.35rem;display:inline-flex;align-items:center;justify-content:center;font-size:var(--icon-md);border-radius:var(--radius)}.task .title{padding-right:.15rem}.task-desc{font-size:var(--text-label);margin-top:.1rem}.task-footer{margin-top:.1rem}.created-ago,.completed-on{font-size:var(--text-caption);white-space:normal}.badge{font-size:var(--text-caption);padding:.14rem .38rem}.task.editing{padding:.75rem}.task-edit-controls{flex-wrap:wrap;justify-content:stretch}.task-edit-controls button{flex:1;min-height:2.5rem}.calendar-row{max-width:none}.calendar-wrap{padding:.65rem}.calendar .day-btn{height:2.75rem;padding:.2rem .22rem}.calendar .daynum{font-size:var(--text-caption)}.cal-nav{width:2.15rem;height:2.15rem}.mood-options{gap:.3rem}.mood-btn{padding:.4rem .2rem;min-height:2.25rem}.mood-period .mood-emoji{font-size:var(--icon-sm)}.mood-period .mood-label{font-size:var(--text-caption)}.completed-panel{padding:.8rem}.completed-panel .task{padding:.55rem .65rem}.completed-panel .task button.undo{min-height:2.1rem;padding:.35rem .65rem}}@media (max-width: 380px){.sort-btn{padding:.35rem .65rem;font-size:var(--text-caption)}.mood-period .mood-label{display:none}.mood-period-label{min-width:0}}@media (prefers-reduced-motion: reduce){.panel,.topbar,.hero,.toast{animation:none}*,*:before,*:after{transition-property:color,background-color,border-color,opacity,box-shadow;transition-duration:.1s;scroll-behavior:auto}.spinner{animation:spin 1.6s linear infinite}}
