:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#efe6d6;--bg-deep:#e6dcc8;--paper:#f7f1e6;--ink:#1d2420;--ink-soft:#4d534d;--muted:#7a7468;--line:#d8ccb6;--sage:#3e6b55;--sage-soft:#d6e6db;--clay:#c46a3a;--clay-soft:#f3dccb;--sky:#4a6fa5;--sky-soft:#d7e1ef;--gold:#b8922a;--danger:#a43b32;--shadow:0 18px 40px #3e301c14;--radius:22px;--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-ui:"Plus Jakarta Sans", "Segoe UI", sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141816;--bg-deep:#101311;--paper:#1c211e;--ink:#eee6d8;--ink-soft:#c7bfb1;--muted:#9b9488;--line:#323832;--sage:#86c4a3;--sage-soft:#223028;--clay:#e08a55;--clay-soft:#3a2a20;--sky:#8eabd4;--sky-soft:#243040;--gold:#e0c36a;--danger:#e07a72;--shadow:0 18px 40px #00000047}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%, color-mix(in srgb, var(--sage) 16%, transparent), transparent 55%), radial-gradient(900px 420px at 100% 0%, color-mix(in srgb, var(--clay) 12%, transparent), transparent 50%), var(--bg);font-family:var(--font-ui);letter-spacing:0;word-spacing:.02em;margin:0}body:before{content:"";pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");position:fixed;inset:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.app{z-index:1;max-width:1280px;padding:calc(28px + env(safe-area-inset-top)) calc(22px + env(safe-area-inset-right)) calc(64px + env(safe-area-inset-bottom)) calc(22px + env(safe-area-inset-left));margin:0 auto;position:relative}.masthead{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.brand{flex-direction:column;gap:6px;display:flex}.brand-mark{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:10px;font-size:12px;font-weight:700;display:inline-flex}.brand-dot{background:var(--sage);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--sage) 18%, transparent);border-radius:50%}.brand h1{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(42px,6vw,68px);font-weight:520;line-height:.9}.brand p{max-width:36ch;color:var(--muted);font-size:14px;line-height:1.5}.mast-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nav{border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 86%, transparent);border-radius:999px;padding:5px;display:flex}.nav button,.chip,.theme-btn,.ghost,.primary,.danger{border:0;border-radius:999px;transition:transform .16s,background .16s,color .16s}.nav button{color:var(--muted);background:0 0;padding:10px 16px;font-size:13px;font-weight:700}.nav button.active{background:var(--ink);color:var(--bg)}.theme-switch{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:4px;display:flex}.theme-btn{min-width:58px;color:var(--muted);background:0 0;padding:8px 10px;font-size:12px;font-weight:700}.theme-btn.active{background:var(--sage-soft);color:var(--ink)}.primary,.ghost,.danger{padding:11px 16px;font-size:13px;font-weight:700}.primary{background:var(--ink);color:var(--bg)}.ghost{border:1px solid var(--line);background:var(--paper);color:var(--ink)}.danger{background:color-mix(in srgb, var(--danger) 16%, var(--paper));color:var(--danger)}.primary:hover,.ghost:hover,.danger:hover,.nav button:hover,.theme-btn:hover{transform:translateY(-1px)}.layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start;gap:22px;display:grid}.card,.panel{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--paper) 92%, transparent);box-shadow:var(--shadow)}.panel{padding:22px}.section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.kicker{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:800}.section-head h2,.dialog h2,.empty h3{font-family:var(--font-display);letter-spacing:-.03em;font-size:28px;font-weight:560}.date-nav{align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--line);background:var(--paper);width:36px;height:36px;color:var(--ink);border-radius:50%}.habits{gap:12px;display:grid}.habit{border:1px solid var(--line);background:var(--paper);border-radius:20px;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;padding:14px;display:grid}.habit-check{border:2px solid var(--line);width:56px;height:56px;color:var(--ink);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.habit-check svg{width:24px;height:24px;display:block}.habit-check.done{color:#fff;border-color:#0000;transform:scale(1.02)}.habit-check:hover:not(:disabled){transform:scale(1.05)}.habit-check:disabled{cursor:not-allowed;opacity:.45}.habit-meta{min-width:0}.habit-meta h3{align-items:center;gap:8px;margin-bottom:8px;font-size:17px;font-weight:750;display:flex}.habit-edit-mobile{display:none}.week-dots{gap:5px;display:flex}.week-dot{background:var(--line);border-radius:50%;width:10px;height:10px}.week-dot.on{background:var(--habit,var(--sage))}.habit-side{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.streak{color:var(--muted);font-size:12px;font-weight:700}.tiny{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700}.tiny.on{background:var(--clay-soft);color:var(--clay);border-color:#0000}.stats-tabs{gap:6px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--line);color:var(--muted);background:0 0;padding:8px 12px;font-size:12px;font-weight:800}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;display:grid}.stat-grid.four{grid-template-columns:repeat(4,1fr)}.stat{background:color-mix(in srgb, var(--bg-deep) 70%, var(--paper));border-radius:16px;padding:14px}.stat b{font-family:var(--font-display);margin-bottom:4px;font-size:28px;font-weight:560;display:block}.stat span{color:var(--muted);font-size:12px;font-weight:700}.bars{grid-template-columns:repeat(7,1fr);align-items:end;gap:8px;min-height:120px;margin-bottom:8px;display:grid}.bar{flex-direction:column;justify-content:flex-end;gap:8px;min-height:120px;display:flex}.bar i{background:var(--sage);border-radius:999px 999px 6px 6px;min-height:6px;display:block}.bar span{color:var(--muted);text-align:center;font-size:11px;font-weight:700}.calendar{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar .dow{color:var(--muted);text-align:center;font-size:11px;font-weight:800}.day{aspect-ratio:1;background:var(--bg-deep);color:var(--ink);border:0;border-radius:12px;font-size:12px;font-weight:700}.day.empty{background:0 0}.day.selected{outline:2px solid var(--ink)}.day.today{box-shadow:inset 0 0 0 1px var(--clay)}.heat-0{background:var(--bg-deep)}.heat-1{background:color-mix(in srgb, var(--sage) 28%, var(--paper))}.heat-2{background:color-mix(in srgb, var(--sage) 52%, var(--paper))}.heat-3{background:color-mix(in srgb, var(--sage) 74%, var(--paper));color:#f7f1e6}.heat-4{background:var(--sage);color:#f7f1e6}.year-heat{grid-template-rows:repeat(7,10px);grid-auto-flow:column;gap:3px;padding-bottom:6px;display:grid;overflow-x:auto}.year-cell{border:0;border-radius:3px;width:10px;height:10px;padding:0}.empty{border:1px dashed var(--line);text-align:center;border-radius:20px;padding:36px 18px}.empty.compact{padding:22px 16px}.empty p{color:var(--muted);margin:8px 0 16px}.empty.compact p{margin-bottom:0}.plan-meter{background:var(--bg-deep);border-radius:999px;height:8px;overflow:hidden}.plan-meter>span{border-radius:inherit;background:linear-gradient(90deg, var(--sage), color-mix(in srgb, var(--gold) 70%, var(--sage)));height:100%;transition:width .2s;display:block}.plan-count{color:var(--muted);margin:8px 0 16px;font-size:12px;font-weight:700}.rollover{border:1px solid color-mix(in srgb, var(--clay) 28%, var(--line));background:var(--clay-soft);border-radius:18px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.rollover strong{margin-bottom:4px;font-size:14px;display:block}.rollover p{color:var(--ink-soft);font-size:13px;line-height:1.4}.plan-composer{grid-template-columns:1fr auto auto;gap:8px;margin-bottom:18px;display:grid}.plan-composer input[type=text],.task-field input,.task-field textarea{border:1px solid var(--line);background:var(--bg);border-radius:14px;width:100%;padding:12px 14px}.plan-list{gap:18px;display:grid}.plan-group{gap:8px;display:grid}.task{border:1px solid var(--line);background:var(--paper);border-radius:18px;grid-template-columns:16px 40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 12px 12px 10px;display:grid}.task.must{border-color:color-mix(in srgb, var(--clay) 45%, var(--line));box-shadow:inset 3px 0 0 var(--clay)}.task.done{opacity:.62}.task.editing{background:color-mix(in srgb, var(--sage-soft) 40%, var(--paper));grid-template-columns:40px minmax(0,1fr);align-items:start;padding:16px}.task.editing .task-grip{display:none}.task-grip{color:var(--line);letter-spacing:-2px;cursor:grab;-webkit-user-select:none;user-select:none;font-size:12px}.task.done .task-grip{visibility:hidden}.task-check{border:2px solid var(--line);color:#fff;background:0 0;border-radius:12px;width:40px;height:40px;font-size:16px;font-weight:800;line-height:1}.task-check.on{background:var(--sage);border-color:#0000}.task-check:hover:not(:disabled){transform:scale(1.04)}.task-check:disabled{cursor:not-allowed;opacity:.45}.task.timed .task-grip{visibility:hidden}.task-body{gap:4px;min-width:0;display:grid}.task-title{color:inherit;text-align:left;background:0 0;border:0;padding:0;font-size:15px;font-weight:750}.task.done .task-title{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.task-edit{padding:8px 10px}.task-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.task-time{font-variant-numeric:tabular-nums;color:var(--ink)}.task.done .task-time{color:var(--muted)}.task-place{color:var(--sage)}.task-carry{color:var(--clay);font-size:11px;font-weight:800}.task-notes-preview{color:var(--ink-soft);white-space:pre-wrap;margin:2px 0 0;font-size:13px;font-weight:500;line-height:1.45}.task-hint{color:var(--muted);text-align:left;background:0 0;border:0;margin-top:2px;padding:0;font-size:12px;font-weight:700}.task-hint:hover{color:var(--ink)}.task-editor{gap:14px;display:grid}.task-editor-head h3{margin:4px 0 6px;font-size:18px;font-weight:750}.task-editor-head p{color:var(--muted);font-size:13px;line-height:1.45}.task-fields{grid-template-columns:148px minmax(0,1fr);gap:12px;display:grid}.task-field{flex-direction:column;gap:6px;min-width:0;display:flex}.task-field.wide{grid-column:1/-1}.task-field span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800}.task-field input[type=time]{font-variant-numeric:tabular-nums;font-weight:750}.task-field textarea{resize:vertical;min-height:88px;line-height:1.5}.task-editor-actions{justify-content:flex-end;gap:8px;display:flex}.task-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.plan-footer{justify-content:flex-end;display:flex}.plan-hint{color:var(--muted);margin-top:14px;font-size:13px;line-height:1.5}.reading-hero{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:22px;display:grid}.now-card,.book-card{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:18px}.now-card .meta,.book-card .meta,.cell-sub{color:var(--muted);font-size:13px}.progress{background:var(--bg-deep);border-radius:999px;height:8px;margin:12px 0 8px;overflow:hidden}.progress>span{border-radius:inherit;background:linear-gradient(90deg, var(--clay), var(--gold));height:100%;display:block}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filters{flex-wrap:wrap;gap:8px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:12px 10px;font-size:13px}th{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.book-title{font-weight:750}.status,.format{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.status.reading{background:var(--sky-soft);color:var(--sky)}.status.read{background:var(--sage-soft);color:var(--sage)}.status.stopped{background:var(--clay-soft);color:var(--clay)}.stars{color:var(--gold);letter-spacing:1px;gap:2px;display:inline-flex}.cards-mobile{gap:12px;display:none}.overlay{z-index:20;background:color-mix(in srgb, var(--bg-deep) 55%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--line);background:var(--paper);width:min(560px,100%);max-height:min(86vh,820px);box-shadow:var(--shadow);border-radius:24px;padding:22px;overflow:auto}.form-grid{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.wide{grid-column:1/-1}.field label{color:var(--muted);font-size:12px;font-weight:800}.field input,.field select{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:100%;padding:11px 12px}.swatches,.icons{flex-wrap:wrap;gap:8px;display:flex}.swatch,.icon-pick{background:var(--pick,var(--paper));border:2px solid #0000;border-radius:50%}.swatch{width:32px;height:32px}.icon-pick{border-color:var(--line);background:var(--paper);justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;display:inline-flex}.icon-pick svg{width:20px;height:20px;display:block}.mark-name{color:var(--muted);margin:6px 0 0;font-size:12px;font-weight:800}.swatch.on,.icon-pick.on{outline:2px solid var(--ink);outline-offset:2px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.row-actions{gap:6px;display:flex}@media (width<=960px){.layout{grid-template-columns:1fr}.masthead{flex-direction:column;align-items:stretch}.table-desktop{display:none}.cards-mobile{display:grid}.form-grid,.stat-grid,.stat-grid.four{grid-template-columns:1fr 1fr}}@media (width<=640px){.app{padding:calc(18px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}.section-head,.toolbar{flex-direction:column;align-items:stretch}.date-nav,.filters{flex-wrap:wrap}.habit{grid-template-columns:52px 1fr}.habit-side{display:none}.habit-edit-mobile{display:inline-flex}.plan-composer{grid-template-columns:1fr auto}.plan-composer .primary{grid-column:1/-1}.task,.task.editing{grid-template-columns:40px 1fr}.task-grip{display:none}.task-actions{grid-column:2;justify-content:flex-start}.task-fields{grid-template-columns:1fr}.rollover{flex-direction:column;align-items:stretch}.form-grid,.stat-grid,.stat-grid.four{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
