:root,[data-theme=light]{--paper:#f6f1e9;--card:#fdfbf7;--sunk:#f1eadf;--ink:#2e2a25;--ink-2:#6a6158;--ink-3:#9c9289;--line:#e7dfd3;--line-soft:#f0e9de;--clay:#b0521f;--blue:#00648f;--gold:#c0901c;--moss:#5c7a3a;--plum:#85506b;--good:#4f7a3d;--warn:#b0771f;--crit:#a33b27;--track:#ebe3d7;--glow:#c0901c1a;--shadow:0 1px 2px #4634220a, 0 8px 24px -12px #4634221a;--grain-opacity:.3;--grain-blend:multiply}[data-theme=dark]{--paper:#191512;--card:#241f1a;--sunk:#1e1a16;--ink:#efe6d8;--ink-2:#a99d8c;--ink-3:#7a7060;--line:#362f27;--line-soft:#2c2620;--clay:#c9743f;--blue:#3f95c4;--gold:#cfa23c;--moss:#7fa34e;--plum:#b3789a;--good:#7fa34e;--warn:#cfa23c;--crit:#d2694f;--track:#332c25;--glow:#cfa23c21;--shadow:0 1px 2px #0000003d, 0 10px 30px -14px #00000080;--grain-opacity:.1;--grain-blend:screen}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5;transition:background .5s,color .5s}body:before{content:"";pointer-events:none;z-index:0;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");position:fixed;inset:0}button{font:inherit;color:inherit}input{font:inherit}.wrap{z-index:1;max-width:1240px;padding:max(28px, env(safe-area-inset-top)) 24px calc(72px + env(safe-area-inset-bottom));margin:0 auto;position:relative}header.top{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px;padding:0 4px;display:flex}.greeting{letter-spacing:-.015em;font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:300;line-height:1.15}.greeting em{color:var(--clay);font-style:italic}.datestamp{color:var(--ink-3);margin-top:5px;font-size:12.5px}.top-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.chip{background:var(--card);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:12px;transition:border-color .2s,color .2s,transform .2s;display:inline-flex}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip:active{transform:scale(.97)}.sync-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.sync-dot.live{background:var(--good)}.sync-dot.local{background:var(--warn)}.sync-dot.off{background:var(--ink-3)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.metric{border:1px dashed var(--line);border-radius:12px;padding:13px 15px}.metric .m-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin-bottom:6px;font-size:10.5px}.metric .m-value{color:var(--ink-3);font-size:21px;font-weight:600}.metric .m-note{color:var(--ink-3);opacity:.8;margin-top:3px;font-size:10.5px}.grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch;gap:14px;display:grid}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;grid-column:span 4;min-width:0;padding:18px 19px 19px;transition:border-color .25s,transform .25s;display:flex}.card:hover{border-color:var(--ink-3);transform:translateY(-1px)}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.card-head{align-items:center;gap:8px;margin-bottom:15px;display:flex}.card-head .ico{flex-shrink:0;width:15px;height:15px}.card-head h2{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);flex:1;font-size:10.5px;font-weight:600}.card-head .aside{color:var(--ink-3);font-size:11px}.head-link{color:inherit;align-items:center;gap:5px;text-decoration:none;transition:color .2s;display:inline-flex}.head-link:hover{color:var(--clay)}.head-link svg{opacity:.45;transition:opacity .2s}.head-link:hover svg{opacity:1}.verse{background:radial-gradient(120% 180% at 12% 0%, var(--glow) 0%, transparent 62%), var(--card);padding:30px 34px 26px}.verse blockquote{letter-spacing:-.012em;max-width:60ch;font-family:Fraunces,Georgia,serif;font-size:25px;font-weight:300;line-height:1.45}.verse blockquote:first-letter{color:var(--clay)}.verse .ref{color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-top:14px;font-size:11.5px}.verse-foot{border-top:1px solid var(--line-soft);color:var(--ink-3);flex-wrap:wrap;gap:18px;margin-top:18px;padding-top:15px;font-size:11.5px;display:flex}.verse-foot span{align-items:center;gap:6px;display:inline-flex}.rows{flex-direction:column;display:flex}.row{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:9px 0;display:flex}.row:last-child{border-bottom:0;padding-bottom:0}.row:first-child{padding-top:0}.row .primary{flex:1;min-width:0;font-size:13px}.row .secondary{color:var(--ink-3);flex-shrink:0;font-size:11.5px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.tick{border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;place-items:center;width:17px;height:17px;padding:0;transition:background .15s,border-color .15s;display:grid}.tick:hover{border-color:var(--moss)}.tick.done{background:var(--moss);border-color:var(--moss)}.tick.done:after{content:"";border-left:1.5px solid var(--card);border-bottom:1.5px solid var(--card);width:6px;height:3px;margin-top:-2px;transform:rotate(-45deg)}.done-text{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1px}.row-del{opacity:0;cursor:pointer;color:var(--ink-3);background:0 0;border:0;padding:2px;line-height:0;transition:opacity .15s,color .15s}.row:hover .row-del{opacity:1}.row-del:hover{color:var(--crit)}.add-row{align-items:center;gap:10px;margin-top:12px;display:flex}.add-row input{background:var(--sunk);min-width:0;color:var(--ink);border:1px solid #0000;border-radius:9px;outline:none;flex:1;padding:8px 11px;font-size:13px;transition:border-color .2s,background .2s}.add-row input::placeholder{color:var(--ink-3)}.add-row input:focus{border-color:var(--clay);background:0 0}.weekstrip{grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:16px;display:grid}.day{text-align:center;background:var(--sunk);border:1px solid #0000;border-radius:9px;padding:8px 2px 9px}.day.today{border-color:var(--clay);background:0 0}.day .dow{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:3px;font-size:9.5px}.day .num{font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.day.today .num{color:var(--clay)}.day .pips{justify-content:center;gap:2.5px;height:4px;margin-top:5px;display:flex}.day .pips i{background:var(--ink-3);opacity:.5;border-radius:50%;width:4px;height:4px}.agenda .row{gap:13px}.agenda .time{color:var(--ink-3);font-variant-numeric:tabular-nums;flex-shrink:0;width:52px;font-size:11.5px}.agenda .bar{border-radius:2px;flex-shrink:0;align-self:stretch;width:2px;min-height:22px}.meter{margin-bottom:13px}.meter:last-child{margin-bottom:0}.meter-top{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.meter-label{color:var(--ink-2);font-size:12.5px}.meter-value{font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.track{background:var(--track);border-radius:3px;height:5px;overflow:hidden}.fill{border-radius:3px;height:100%}.stat-value{letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:1.1}.stat-sub{color:var(--ink-3);margin-top:4px;font-size:11.5px}.delta{font-size:11.5px;font-weight:500}.rings{justify-content:space-between;gap:6px;margin-bottom:15px;display:flex}.ring{text-align:center;flex:1}.ring svg{margin:0 auto 7px;display:block}.ring .r-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:2px;font-size:10px}.ring .r-value{font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.habits{flex-direction:column;gap:9px;display:flex}.habit,.habit-head{align-items:center;gap:12px;display:flex}.habit-head{margin-bottom:5px}.h-name{width:132px;color:var(--ink-2);flex-shrink:0;font-size:12.5px}.habit-head .h-name{visibility:hidden}.h-days{flex:1;gap:5px;display:flex}.h-days button{background:var(--track);cursor:pointer;border:0;border-radius:5px;flex:1;max-width:78px;height:23px;padding:0;transition:background .15s,opacity .15s}.h-days button:hover{opacity:.75}.h-days button.on{background:currentColor}.h-days span{text-align:center;max-width:78px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;flex:1;font-size:9.5px}.h-streak{color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;width:76px;font-size:11px}.split{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px 30px;margin-top:18px;display:grid}.split-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin-bottom:8px;font-size:10px}.split-rule{background:var(--line);height:1px;margin:5px 0}.mv-arrow{flex-shrink:0;font-size:9px;line-height:1}.mv-pct{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px;font-weight:500}.mv-val{text-align:right;font-variant-numeric:tabular-nums;width:66px}.kind{text-transform:uppercase;letter-spacing:.06em;background:var(--sunk);color:var(--ink-3);text-align:center;border-radius:4px;flex-shrink:0;min-width:44px;padding:2px 6px;font-size:9.5px}.kind-buy{color:var(--good)}.kind-sell{color:var(--crit)}.time-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:14px;display:grid}.time-layout>*{grid-column:auto}.time-grid-card{padding:14px}.grid-scroll{grid-template-columns:52px repeat(2,minmax(0,1fr));gap:10px;max-height:74vh;display:grid;overflow-y:auto}.hours{padding-top:26px}.hour-label{color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:right;padding-right:6px;font-size:10.5px;transform:translateY(-6px)}.lane-head{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);text-align:center;height:18px;margin-bottom:8px;font-size:10px}.lane-grid{position:relative}.slot{border:0;border-top:1px solid var(--line-soft);cursor:pointer;background:0 0;padding:0;transition:background .12s;position:absolute;left:0;right:0}.slot.hour{border-top-color:var(--line)}.slot:hover{background:color-mix(in srgb, var(--clay) 9%, transparent)}.block{text-align:left;cursor:pointer;border:0;border-left:3px solid;border-radius:6px;flex-direction:column;justify-content:flex-start;gap:1px;padding:3px 7px;transition:filter .15s,box-shadow .15s;display:flex;position:absolute;left:2px;right:2px;overflow:hidden}.block:hover{filter:brightness(1.06)}.block.selected{box-shadow:0 0 0 2px var(--ink-2)}.block-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:500;overflow:hidden}.block-meta{color:var(--ink-2);font-size:10px}.time-side{flex-direction:column;gap:14px;display:flex}.cat-picker{flex-wrap:wrap;gap:6px;display:flex}.cat-chip{border:1px solid var(--line);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:999px;padding:5px 11px;font-size:12px;transition:border-color .15s,background .15s,color .15s}.cat-chip:hover{border-color:var(--chip)}.cat-chip.on{border-color:var(--chip);background:color-mix(in srgb, var(--chip) 15%, transparent);color:var(--ink)}.dur-row{align-items:center;gap:8px;display:flex}.track.dual{height:7px;position:relative}.track.dual .fill{height:100%;position:absolute;top:0;left:0}.track.dual .fill.actual{height:100%}@media (width<=900px){.time-layout{grid-template-columns:minmax(0,1fr)}.grid-scroll{max-height:none}.time-side{order:-1}}.pill{border:1px solid var(--line);color:var(--ink-2);background:var(--sunk);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:10.5px;display:inline-flex}.pill.live{border-color:color-mix(in srgb, var(--moss) 40%, transparent);color:var(--good);background:0 0}.pill.idle{color:var(--ink-3)}.pill.soon{border-color:color-mix(in srgb, var(--clay) 40%, transparent);color:var(--clay);background:0 0}.footnote{border-top:1px solid var(--line-soft);color:var(--ink-3);align-items:flex-start;gap:7px;margin-top:auto;padding-top:13px;font-size:11.5px;line-height:1.45;display:flex}.footnote svg{flex-shrink:0;margin-top:1px}.centered{z-index:1;place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative}.panel{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;width:100%;max-width:400px;padding:32px 30px}.panel h1{letter-spacing:-.015em;margin-bottom:6px;font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:300}.panel p.lede{color:var(--ink-2);margin-bottom:22px;font-size:13px;line-height:1.55}.field{margin-bottom:12px}.field label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin-bottom:6px;font-size:10.5px;display:block}.field input{background:var(--sunk);width:100%;color:var(--ink);border:1px solid #0000;border-radius:10px;outline:none;padding:11px 13px;font-size:14px;transition:border-color .2s,background .2s}.field input:focus{border-color:var(--clay);background:0 0}.btn{background:var(--clay);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:500;transition:opacity .2s,transform .15s}[data-theme=dark] .btn{color:#1a1512}.btn:hover{opacity:.9}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{color:var(--clay);border:1px solid color-mix(in srgb, var(--clay) 45%, transparent);background:0 0;margin-top:0}.btn.ghost:hover{background:color-mix(in srgb, var(--clay) 8%, transparent);opacity:1}.divider{color:var(--ink-3);text-transform:uppercase;letter-spacing:.09em;align-items:center;gap:12px;margin:22px 0 14px;font-size:11px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.linkbtn{color:var(--ink-2);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin-top:16px;padding:0;font-size:12.5px;text-decoration:underline}.linkbtn:hover{color:var(--ink)}.notice{border-radius:10px;margin-bottom:16px;padding:11px 13px;font-size:12.5px;line-height:1.5}.notice.err{background:color-mix(in srgb, var(--crit) 10%, transparent);color:var(--crit)}.notice.ok{background:color-mix(in srgb, var(--good) 12%, transparent);color:var(--good)}.notice.info{background:var(--sunk);color:var(--ink-2)}.mono{background:var(--sunk);color:var(--ink-2);border-radius:5px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.pagefoot{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;margin-top:34px;padding:0 4px;font-size:11.5px;display:flex}@media (width<=1000px){.card,.span-4,.span-5,.span-6,.span-7{grid-column:span 6}.span-8,.span-12,.verse{grid-column:span 12}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.wrap{padding-left:16px;padding-right:16px}.card,.span-4,.span-5,.span-6,.span-7,.span-8,.span-12,.verse{grid-column:span 12}.greeting{font-size:25px}.verse{padding:24px 22px 22px}.verse blockquote{font-size:21px}header.top{flex-direction:column;align-items:flex-start;gap:14px}.h-name{width:92px}.h-streak{display:none}.row-del{opacity:1}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
