@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin-600-normal.woff2)format("woff2");font-weight:500 600;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin-700-normal.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-700-normal.woff2)format("woff2");font-weight:500 700;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0f1f;--panel:#0e1116;--field:#141920;--line:#333b47;--deep:#070b16;--scrim:#040814c7;--ink:#d7dee8;--dim:#a6b1bf;--faint:#8a96a3;--act:#f8b9a8;--on-act:#0a0f1f;--done:#35aca0;--wait:#f5b041;--sl:#f2937c;--tint-done:#0f2a2e;--tint-wait:#2a2418;--selected:#d7dee8;--on-selected:#0a0f1f;--photo-bg:#1b2230;--paper:#f3eee1;--paper-ink:#211c13;--paper-dim:#5e5646;--serif:"Fraunces", Georgia, "Times New Roman", serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-body:16px;--fs-small:14px;--fs-label:12px;--fs-h1:28px;--fs-h2:20px;--fs-kpi:32px;--s1:4px;--s2:8px;--s3:16px;--s4:24px;--s5:32px;--rule:2px;--tap:44px;--tap-primary:48px;--tabbar-h:64px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:var(--fs-body);overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit}a.panel,a.btn,a.staff{text-decoration:none}[hidden]{display:none!important}svg.i{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}svg.i.sm{width:20px;height:20px}svg.i.xs{width:16px;height:16px}svg.i.xxs{stroke-width:2.4px;width:12px;height:12px}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#app{flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.top{align-items:center;gap:var(--s2);padding:var(--s4) var(--s3) var(--s2);padding-top:calc(var(--s4) + env(safe-area-inset-top));flex:none;display:flex}.top h1{min-width:0;font-size:var(--fs-h1);letter-spacing:-.01em;flex:1;font-weight:700;line-height:1.15}.top h1 .dot{color:var(--act)}.ttl{gap:var(--s1);flex-direction:column;flex:1;min-width:0;display:flex}.ttl h1{flex:none}.role-tag{align-items:center;gap:var(--s1);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-weight:700;display:flex}.rule{height:var(--rule);background:var(--ink);flex:none}.hbtn{width:var(--tap);height:var(--tap);border:var(--rule) solid var(--line);flex:none;place-items:center;display:grid}.hbtn.back{margin-left:calc(-1 * var(--s2));border-color:#0000}.hbtn.lbl{gap:var(--s2);width:auto;padding:0 var(--s2);font-family:var(--mono);font-size:var(--fs-small);white-space:nowrap;align-items:center;font-weight:700;display:inline-flex}.status-line{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.06em;color:var(--dim);padding:0 var(--s3) var(--s2);gap:var(--s2);align-items:center;min-height:0;display:flex}.status-line:empty{display:none}main{padding:var(--s3);gap:var(--s4);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow:hidden auto}main>*{flex:none}.foot{padding:var(--s3);border-top:var(--rule) solid var(--line);gap:var(--s2);background:var(--bg);flex-direction:column;flex:none;display:flex}.foot:empty{display:none}.tabs{height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:var(--rule) solid var(--ink);background:var(--bg);flex:none;display:flex}.tabs a{justify-content:center;align-items:center;gap:var(--s1);min-width:0;color:var(--dim);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.02em;flex-direction:column;flex:1;text-decoration:none;display:flex}.tabs a[aria-current=page]{color:var(--ink);box-shadow:inset 0 3px 0 var(--act);font-weight:700}.h2{font-size:var(--fs-h2);font-weight:700;line-height:1.25}.sub{color:var(--dim);font-size:var(--fs-small)}.label{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-weight:700}.mono{font-family:var(--mono)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.note{color:var(--dim);font-size:var(--fs-small)}.muted{color:var(--dim)}p+p{margin-top:var(--s2)}.row{align-items:center;gap:var(--s2);display:flex}.row.between{justify-content:space-between}.row.top-align{align-items:flex-start}.grow{flex:1;min-width:0}.stack{gap:var(--s2);flex-direction:column;display:flex}.stack.lg{gap:var(--s3)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.panel{background:var(--panel);border:var(--rule) solid var(--line);padding:var(--s3);gap:var(--s2);flex-direction:column;display:flex}.panel.done{background:var(--tint-done);border-color:var(--done)}.panel.wait{background:var(--tint-wait);border-color:var(--wait)}.panel.tap{text-align:left;width:100%;color:inherit}.panel.current{border-color:var(--ink)}.card-title{font-size:var(--fs-h2);font-weight:700;line-height:1.25}.btn{min-height:var(--tap);justify-content:center;align-items:center;gap:var(--s2);padding:0 var(--s3);border:var(--rule) solid var(--line);background:var(--field);color:var(--ink);font-family:var(--mono);font-size:var(--fs-body);font-weight:700;text-decoration:none;display:inline-flex}.btn.full{width:100%}.btn.primary{min-height:var(--tap-primary);background:var(--act);border-color:var(--act);color:var(--on-act)}.btn.ghost{background:0 0}.btn[disabled]{opacity:.55;cursor:default}.btn.neutral-del{background:0 0}.btn-row{gap:var(--s2);display:flex}.btn-row>.btn{flex:1;min-width:0}.btn-row>.btn.fit{flex:none}.linkbtn{min-height:var(--tap);align-items:center;gap:var(--s2);font-family:var(--mono);font-size:var(--fs-small);color:var(--ink);text-underline-offset:4px;font-weight:700;text-decoration:underline;display:inline-flex}.seg{border:var(--rule) solid var(--line);display:flex}.seg button{min-width:0;min-height:var(--tap);padding:0 var(--s2);font-family:var(--mono);font-size:var(--fs-small);background:var(--panel);border-left:var(--rule) solid var(--line);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;overflow:hidden}.seg button:first-child{border-left:0}.seg.vert{flex-direction:column}.seg.vert button{border-left:0;border-top:var(--rule) solid var(--line);text-align:left;padding:0 var(--s3)}.seg.vert button:first-child{border-top:0}.seg button[aria-pressed=true]{background:var(--selected);color:var(--on-selected)}.chip{align-items:center;gap:var(--s1);padding:0 var(--s2);border:var(--rule) solid currentColor;min-height:24px;font-family:var(--mono);font-size:var(--fs-label);white-space:nowrap;flex:none;font-weight:700;display:inline-flex}.chip.done{color:var(--done)}.chip.wait{color:var(--wait)}.chip.sl{color:var(--sl)}.chip.plain{color:var(--dim)}.c-done{color:var(--done)}.c-wait{color:var(--wait)}.c-sl{color:var(--sl)}.c-dim{color:var(--dim)}.bar{background:var(--deep);flex:1;height:8px;position:relative;overflow:hidden}.bar>b{background:var(--done);transition:width .2s linear;position:absolute;top:0;bottom:0;left:0}.bar.wait>b{background:var(--wait)}.up{gap:var(--s2) var(--s3);grid-template-columns:44px 1fr 24px;align-items:center;display:grid}.up .thumb{object-fit:cover;background:var(--photo-bg);width:44px;height:44px}.up .name{font-size:var(--fs-small)}.up .pct{font-family:var(--mono);font-size:var(--fs-label);color:var(--dim);text-align:right}.field{gap:var(--s2);flex-direction:column;display:flex}.field>span{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-weight:700}.input,textarea.input{width:100%;min-height:var(--tap);background:var(--field);border:var(--rule) solid var(--line);padding:var(--s2) var(--s3);font-family:var(--serif);font-size:var(--fs-body);-webkit-appearance:none;appearance:none;border-radius:0;line-height:1.5}textarea.input{resize:vertical;min-height:160px}.input:focus{outline:var(--rule) solid var(--ink);outline-offset:2px}.btn:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}.seg button:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}.tabs a:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}.hbtn:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}.ph:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}.check{align-items:center;gap:var(--s3);min-height:var(--tap);display:flex}.check input{-webkit-appearance:none;appearance:none;border:var(--rule) solid var(--dim);background:var(--field);cursor:pointer;border-radius:0;flex:none;place-items:center;width:24px;height:24px;margin:0;display:grid}.check input:checked{background:var(--selected);border-color:var(--selected)}.check input:checked:after{content:"";border:solid var(--on-selected);border-width:0 3px 3px 0;width:6px;height:12px;transform:translateY(-2px)rotate(45deg)}.check input:focus-visible{outline:var(--rule) solid var(--ink);outline-offset:2px}.err{color:var(--wait);font-size:var(--fs-small);gap:var(--s2);align-items:flex-start;display:flex}.reading{background:var(--field);border:var(--rule) solid var(--line);padding:var(--s3);font-size:var(--fs-body);white-space:pre-wrap;overflow-wrap:anywhere;min-height:160px;line-height:1.55}.cursor{background:var(--act);vertical-align:-3px;width:2px;height:18px;margin-left:4px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.chk{gap:var(--s2);font-size:var(--fs-small);grid-template-columns:24px 1fr auto;align-items:start;display:grid}.chk .v{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.chk svg{margin-top:2px}.jrows{gap:var(--s1);flex-direction:column;display:flex}.jrow{gap:var(--s1);display:flex}.ph{background:var(--photo-bg);flex:none;padding:0;display:block;position:relative;overflow:hidden}.ph img{object-fit:cover;width:100%;height:100%;display:block}.ph .n{background:var(--deep);color:var(--ink);font-family:var(--mono);font-size:var(--fs-label);min-width:24px;height:24px;padding:0 var(--s1);place-items:center;font-weight:700;display:grid;position:absolute;top:0;left:0}.ph.out{outline:var(--rule) dashed var(--dim);outline-offset:-2px}.ph.out img{opacity:.35}.ph .tag{right:var(--s1);bottom:var(--s1);background:var(--deep);font-family:var(--mono);font-size:var(--fs-label);padding:0 var(--s1);gap:var(--s1);align-items:center;font-weight:700;display:flex;position:absolute}.ph .tag.up{color:var(--wait)}.ph .tag.ok{color:var(--done)}.kpis{gap:var(--s2);grid-template-columns:1fr 1fr;display:grid}.kpi .v{font-family:var(--mono);font-size:var(--fs-kpi);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.kpi .chg{font-family:var(--mono);font-size:var(--fs-small)}.hb{gap:var(--s2);font-size:var(--fs-small);grid-template-columns:minmax(0,7fr) minmax(0,6fr) 32px;align-items:center;display:grid}.hb .bar{background:var(--field);height:16px}.hb .bar>b{background:var(--dim)}.hb .num{text-align:right}.scrim{background:var(--scrim);z-index:20;position:absolute;top:0;bottom:0;left:0;right:0}.sheet{background:var(--panel);border-top:var(--rule) solid var(--ink);max-height:88%;padding:var(--s2) var(--s3) calc(var(--s4) + env(safe-area-inset-bottom));gap:var(--s3);z-index:21;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.grab{background:var(--faint);flex:none;width:40px;height:4px;margin:0 auto}.sheet-x{display:none}.lightbox{background:var(--bg);z-index:30;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.lightbox .stage{min-height:0;padding:var(--s2);flex:1;place-items:center;display:grid}.lightbox .stage img{object-fit:contain;max-width:100%;max-height:100%}.toast{left:var(--s3);right:var(--s3);bottom:calc(var(--tabbar-h) + var(--s3) + env(safe-area-inset-bottom) + var(--above,0) * 1px);z-index:40;background:var(--field);border:var(--rule) solid var(--ink);padding:var(--s2) var(--s3);align-items:center;gap:var(--s3);font-size:var(--fs-small);display:flex;position:absolute}.toast.is-err{border-color:var(--wait)}.toast .grow{padding:var(--s2) 0}.empty{color:var(--dim);text-align:center;padding:var(--s4) var(--s3);border:var(--rule) dashed var(--line)}.hint{background:var(--field);border-left:4px solid var(--ink);padding:var(--s3);gap:var(--s3);font-size:var(--fs-small);align-items:flex-start;display:flex}.staff{align-items:center;gap:var(--s3);padding:var(--s3);background:var(--panel);border:var(--rule) solid var(--line);text-align:left;border-top-width:0;width:100%;min-height:64px;display:flex}.staff:first-child{border-top-width:var(--rule)}.list-gap{gap:var(--s2);flex-direction:column;display:flex}.composite-img{background:var(--ink);width:100%;height:auto;display:block}.canvas-wrap{border:var(--rule) solid var(--line);background:var(--panel);place-items:center;min-height:120px;display:grid}summary.sum{min-height:var(--tap);cursor:pointer;align-items:center;list-style:none;display:flex}summary.sum::-webkit-details-marker{display:none}.up .icon-thumb{place-items:center;display:grid}.stack>.bar{flex:none;width:100%}.seg.four button{font-size:var(--fs-label);padding:0 var(--s1)}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.cal .dow{font-family:var(--mono);font-size:var(--fs-label);color:var(--dim);text-align:center;padding-bottom:var(--s1)}.cal .cell{min-width:0;box-shadow:inset 0 0 0 1px var(--line);background:var(--panel);flex-direction:column;display:flex}.cal .cell.other{background:0 0}.cal .cell>button{box-shadow:none;background:0 0}.cal .cell .dnum{padding:0 var(--s2);flex-direction:row;justify-content:space-between;align-items:flex-start}.cal .cell .dnum[aria-pressed=true]{background:var(--selected);color:var(--on-selected)}.cal .cell.today{box-shadow:inset 0 0 0 var(--rule) var(--ink)}.cal .cell .ev{min-height:var(--tap);justify-content:flex-start;gap:var(--s1);padding:0 var(--s2);font-family:var(--serif);font-size:var(--fs-label);text-align:left;border-top:1px solid var(--line);flex-direction:row}.cal.big{gap:0}.cal button{background:var(--panel);min-width:0;min-height:48px;box-shadow:inset 0 0 0 1px var(--line);font-family:var(--mono);font-size:var(--fs-small);font-variant-numeric:tabular-nums;border:0;flex-direction:column;justify-content:center;align-items:center;gap:0;display:flex}.cal button.other{color:var(--dim);background:0 0}.cal button.today{box-shadow:inset 0 0 0 var(--rule) var(--ink)}.cal button[aria-pressed=true]{background:var(--selected);color:var(--on-selected)}.cal .cnt{font-size:var(--fs-label);line-height:1}.tool-row{align-items:center;gap:var(--s3);min-height:var(--tap);text-align:left;width:100%;padding:var(--s2) 0;border-bottom:var(--rule) solid var(--line);display:flex}.tool-row:last-child{border-bottom:0}.tool-row .grow .note{display:block}.st-row{gap:var(--s2);padding:var(--s3);background:var(--field);border:var(--rule) solid var(--line);grid-template-columns:1fr;display:grid}.danger-gap{margin-top:var(--s4);padding-top:var(--s4);border-top:var(--rule) solid var(--line);justify-content:flex-end;display:flex}.center{text-align:center}.lightbox~.scrim{z-index:31}.lightbox~.sheet{z-index:32}.lightbox .danger-gap{margin-top:var(--s2);padding-top:var(--s2)}.brand{display:none}.cols,.cols>.col{gap:var(--s4);flex-direction:column;min-width:0;display:flex}@media (min-width:900px){#app{grid-template:"rail top""rail status""rail rule""rail main"minmax(0,1fr)"rail foot"/240px minmax(0,1fr);max-width:none;display:grid}.top{padding:var(--s4) var(--s5) var(--s3);grid-area:top}.status-line{padding:0 var(--s5) var(--s2);grid-area:status}#app>.rule{grid-area:rule}main{padding:var(--s5);grid-area:main}.foot{padding:var(--s3) var(--s5);flex-direction:row-reverse;grid-area:foot;justify-content:flex-start}.foot .btn.full{width:auto;min-width:240px}.tabs{height:auto;padding:var(--s4) 0;border-top:0;border-right:var(--rule) solid var(--ink);gap:var(--s1);flex-direction:column;grid-area:rail}.tabs a{justify-content:flex-start;gap:var(--s3);min-height:var(--tap-primary);padding:0 var(--s4);font-size:var(--fs-small);flex-direction:row;flex:none}.tabs a[aria-current=page]{box-shadow:inset 4px 0 0 var(--act);background:var(--panel)}.brand{padding:0 var(--s4) var(--s4);font-size:var(--fs-h2);font-weight:700;line-height:1.25;display:block}.brand .dot{color:var(--act)}main>.btn.full,main>a.btn.full{align-self:flex-start;width:auto}main>.seg{width:100%;max-width:640px}.narrow{width:100%;max-width:720px}.cards{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:stretch;display:grid}.cols{gap:var(--s5);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.cols.rev{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.cols.rev>.col:first-child{order:2}.cols.cal-cols{grid-template-columns:minmax(0,3fr) minmax(360px,2fr)}.sheet{border:var(--rule) solid var(--ink);width:min(560px,100vw - 64px);max-height:85dvh;padding:var(--s4);top:50%;bottom:auto;left:50%;right:auto;transform:translate(-50%,-50%)}.grab{display:none}.sheet-x{background:var(--panel);z-index:1;align-self:flex-end;display:grid;position:sticky;top:0}.toast{left:auto;right:var(--s5);bottom:calc(var(--s5) + var(--above,0) * 1px);width:440px}.lightbox .foot{flex-direction:column;align-items:center}.lightbox .foot>*{width:100%;max-width:560px}.composite-img{max-width:100%}.cal .cell .dnum{min-height:var(--tap)}}.cal .nm{-webkit-line-clamp:2;overflow-wrap:anywhere;width:100%;font-family:var(--serif);font-size:var(--fs-label);text-align:left;color:var(--ink);-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.cal .nm svg{vertical-align:-1px;margin-right:var(--s1);display:inline-block}.cal .nm.done svg{color:var(--done)}.cal .nm.wait svg{color:var(--wait)}.cal .nm.sl svg{color:var(--sl)}.cal .nm.plain svg{color:var(--dim)}.cal button.day{justify-content:flex-start;align-items:stretch;gap:var(--s1);padding:var(--s1);min-height:56px}.cal button.day .dn{text-align:center}.cal button.day .more{font-family:var(--mono);font-size:var(--fs-label);color:var(--dim);text-align:left;line-height:1}.cal button.day.other .nm{color:var(--dim)}.cal button[aria-pressed=true] .nm,.cal button[aria-pressed=true] .nm svg,.cal button[aria-pressed=true] .more{color:var(--on-selected)}.cal .cell .ev{padding:var(--s1) var(--s2);align-items:center}.cal .cell .ev .nm{font-size:var(--fs-label)}@media (min-width:900px){.cols.cal-cols{grid-template-columns:minmax(0,1fr) 320px}.cal .cell .ev{min-height:48px}}.cal button.day .nm{word-break:break-all}.wk{border-top:var(--rule) solid var(--line);flex-direction:column;display:flex}.wk-row{gap:var(--s2);padding:var(--s2) 0;border-bottom:var(--rule) solid var(--line);flex-direction:column;display:flex}.wk-row.today{box-shadow:inset 4px 0 0 var(--ink);padding-left:var(--s2)}.wk-day{align-items:center;gap:var(--s2);width:100%;min-height:var(--tap);padding:0 var(--s2);text-align:left;display:flex}.wk-day[aria-pressed=true]{background:var(--selected);color:var(--on-selected)}.wk-day[aria-pressed=true] .label,.wk-day[aria-pressed=true] .note,.wk-day[aria-pressed=true] .chip{color:var(--on-selected)}.wk-day .chip{min-height:24px}.wk-date{font-size:var(--fs-h2);font-weight:700;line-height:1}.wk-list{gap:var(--s2);flex-direction:column;min-width:0;display:flex}.wk-p{justify-content:space-between;align-items:flex-start;gap:var(--s2);min-height:var(--tap);text-align:left;width:100%;padding:var(--s2) var(--s3);background:var(--panel);border:var(--rule) solid var(--line);display:flex}.wk-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:700;line-height:1.3}.wk-new{font-size:var(--fs-small)}.week-wrap{gap:var(--s4);flex-direction:column;width:100%;max-width:880px;display:flex}.input.pick{align-items:center;gap:var(--s2);text-align:left;cursor:pointer;display:flex}.input.pick .muted{color:var(--dim)}
