:root,[data-theme="light"]{--text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);--text-base:clamp(1rem,.95rem + .25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--color-bg:#f7f6f2;--color-surface:#f9f8f5;--color-surface-2:#fbfbf9;--color-surface-offset:#f0ede7;--color-border:#d8d3c9;--color-divider:#e4dfd6;--color-text:#26231d;--color-text-muted:#74716a;--color-text-inverse:#fcfbf8;--color-primary:#01696f;--color-primary-hover:#0d5358;--color-primary-active:#0e3f42;--color-primary-highlight:#d8e7e4;--color-success:#437a22;--color-danger:#9c4545;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(40,37,29,.06);--shadow-lg:0 24px 48px rgba(40,37,29,.14);--transition:180ms cubic-bezier(.16,1,.3,1);--font-body:'Satoshi','Inter',sans-serif;--sidebar-width:22rem}
[data-theme="dark"]{--color-bg:#171614;--color-surface:#1d1b18;--color-surface-2:#23211d;--color-surface-offset:#2a2722;--color-border:#3d3933;--color-divider:#2a2724;--color-text:#e4e0d8;--color-text-muted:#b8b2a8;--color-text-inverse:#161412;--color-primary:#58a4aa;--color-primary-hover:#77bac0;--color-primary-active:#8cc9cf;--color-primary-highlight:#253538;--color-success:#79b656;--color-danger:#d77a7a;--shadow-lg:0 24px 48px rgba(0,0,0,.4)}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:var(--color-text);background:var(--color-bg)}button,input,textarea,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}a{text-decoration:none;color:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.hidden{display:none!important}.skip-link{position:absolute;left:var(--space-4);top:-3rem;z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-text-inverse)}.skip-link:focus{top:var(--space-4)}
.card{background:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-text) 10%,transparent);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card--soft{background:var(--color-surface-2)}.card--inline{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.eyebrow,.brand__eyebrow{display:block;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}
.button,.icon-button{min-height:2.75rem;min-width:2.75rem;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);transition:transform var(--transition),background var(--transition),color var(--transition)}.button{padding:0 var(--space-4);font-size:var(--text-sm);font-weight:700}.button:hover,.icon-button:hover{transform:translateY(-1px)}.button--primary{background:var(--color-primary);color:var(--color-text-inverse)}.button--primary:hover{background:var(--color-primary-hover)}.button--secondary,.button--ghost,.icon-button{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.button--ghost.active{background:var(--color-primary-highlight);border-color:transparent;color:var(--color-primary-active)}
.field{display:grid;gap:var(--space-2)}.field span{font-size:var(--text-sm);font-weight:700}.field .optional{font-weight:400;color:var(--color-text-muted)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--radius-md);padding:.875rem 1rem}.field textarea{resize:vertical}.field--full{grid-column:1/-1}.info-box{padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.info-box strong{display:block;margin-bottom:var(--space-1)}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:var(--space-4);background:radial-gradient(circle at top left,color-mix(in srgb,var(--color-primary) 14%,transparent),transparent 32%),var(--color-bg)}.login-card{width:min(100%,32rem);padding:var(--space-6);display:grid;gap:var(--space-5)}.login-card__brand,.brand-lockup{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.brand-lockup{justify-content:flex-start}.brand-lockup__logo{width:3rem;height:3rem;color:var(--color-primary)}.login-copy h2{font-size:var(--text-xl);line-height:1.1;margin-bottom:var(--space-2)}.login-copy p,.login-feedback{color:var(--color-text-muted)}.login-form{display:grid;gap:var(--space-3)}.login-feedback[data-state="error"]{color:var(--color-danger)}.login-feedback[data-state="success"]{color:var(--color-success)}
.app-shell{display:grid;min-height:100dvh;grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(var(--sidebar-width),88vw);padding:var(--space-4);background:var(--color-surface);border-right:1px solid var(--color-border);transform:translateX(-102%);transition:transform var(--transition);z-index:20;display:grid;gap:var(--space-4)}body.sidebar-open .sidebar{transform:translateX(0)}body.sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(20,18,16,.45);z-index:10}
.sidebar__brand{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.brand{display:inline-flex;align-items:center;gap:var(--space-3)}.brand__logo{width:2.75rem;height:2.75rem;color:var(--color-primary)}.brand__name{font-size:var(--text-lg);font-weight:700}
.sidebar-panel{display:grid;grid-template-rows:auto 1fr;gap:var(--space-4);min-height:0;padding:var(--space-4);height:calc(100dvh - var(--space-8) - 5rem)}.sidebar-scrollless{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:var(--space-4);min-height:0;overflow-y:auto}.panel__header{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.panel h2{font-size:var(--text-lg);line-height:1.15}
.priority-list,.task-list,.reward-list{list-style:none;display:grid;gap:var(--space-3);align-content:start}.priority-item,.task-card,.reward-item{border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--radius-lg)}.priority-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3)}.priority-item strong{font-size:var(--text-sm)}.priority-item p,.task-card p,.reward-item p{color:var(--color-text-muted);font-size:var(--text-sm)}.priority-tag,.status-pill{display:inline-flex;align-items:center;min-height:1.75rem;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-primary-highlight);color:var(--color-primary-active);font-size:var(--text-xs);font-weight:700}.status-pill--done{background:color-mix(in srgb,var(--color-success) 18%,var(--color-surface));color:var(--color-success)}
.compact-card{padding:var(--space-3)!important}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.stats-grid div{padding:var(--space-3);background:var(--color-surface-offset);border-radius:var(--radius-lg)}.stats-grid dt{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.stats-grid dd{font-size:var(--text-lg);font-weight:900;font-variant-numeric:tabular-nums}
.workspace{display:grid;grid-template-rows:auto 1fr;min-width:0}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:auto 1fr;gap:var(--space-3);align-items:center;padding:var(--space-4);background:color-mix(in srgb,var(--color-bg) 84%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-divider)}.quick-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--space-2)}.main-content{padding:var(--space-4);display:grid;gap:var(--space-4)}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.section-heading h2{font-size:var(--text-lg);line-height:1.15}.section-note{color:var(--color-text-muted);max-width:40ch}.board-panel{padding:var(--space-4)}
.board{display:grid;gap:var(--space-3);grid-template-columns:1fr}.day-column{display:grid;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-xl);min-height:14rem}.day-column__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.day-column__header h3{font-size:var(--text-base)}.day-column__count{font-size:var(--text-xs);color:var(--color-text-muted)}
.task-card{padding:var(--space-4);display:grid;gap:var(--space-3);transition:opacity var(--transition)}.task-card.is-done{opacity:.3}.task-card__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.task-card__title{font-size:var(--text-sm);font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card__actions-top{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.task-card__delete{width:1.5rem;height:1.5rem;min-width:1.5rem;background:transparent;border:none;padding:0;color:var(--color-text-muted);cursor:pointer}.task-card__delete:hover{color:var(--color-text)}.task-card__actions{display:flex;align-items:center;gap:var(--space-3)}.task-toggle{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.task-toggle input{accent-color:var(--color-primary);width:1rem;height:1rem}.task-priority-ref{font-size:var(--text-xs);color:var(--color-text-muted);display:flex;align-items:center;gap:.25rem}
.empty-state{padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);font-size:var(--text-sm)}.reward-item{padding:var(--space-4);display:grid;gap:var(--space-3)}.stack{display:grid;gap:var(--space-3)}.mobile-only{display:inline-flex}
.modal-backdrop{position:fixed;inset:0;background:rgba(20,18,16,.55);backdrop-filter:blur(4px);z-index:40;display:grid;place-items:center;padding:var(--space-4)}.modal-box{width:min(100%,34rem);padding:var(--space-6);display:grid;gap:var(--space-5);max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-box--wide{width:min(100%,48rem)}.modal-header{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-1)}.modal-header h2{font-size:var(--text-lg);line-height:1.15}.task-form{display:grid;gap:var(--space-4)}.mini-chart{display:grid;gap:var(--space-2)}.mini-chart__row{display:grid;grid-template-columns:4.5rem 1fr auto;gap:var(--space-2);align-items:center}.mini-chart__bar{height:.625rem;border-radius:var(--radius-full);background:var(--color-surface-offset);overflow:hidden}.mini-chart__bar span{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}
@media(min-width:768px){.main-content,.topbar{padding:var(--space-5)}.board{grid-template-columns:repeat(2,minmax(0,1fr))}.task-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1080px){body{overflow:hidden}.app-shell{grid-template-columns:var(--sidebar-width) 1fr}.sidebar{position:sticky;top:0;height:100dvh;transform:none;width:auto;z-index:auto}body.sidebar-open:after{display:none}.workspace{min-height:100dvh;overflow:hidden}.main-content{overflow-y:auto;overscroll-behavior:contain}.topbar{grid-template-columns:auto 1fr auto}.quick-actions{grid-column:auto;justify-content:end}.board{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-only{display:none}}
@media(min-width:1400px){.board{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}