:root{--ink:var(--fg);--sub:var(--muted);--fs-title:calc(1.0286rem * var(--fsx-title,1));--fs-num:calc(1.1429rem * var(--fsx-num,1));--fs-body:calc(.8rem * var(--fsx-body,1));--fs-sub:calc(.6857rem * var(--fsx-sub,1));--r-big:14px;--r-box:12px;--r-ctl:10px;--mark:#ffe7a8;--hit:#9c4a0a;--lesson:#4b2a6b;--lesson-bg:#efe7f6;--touch:#6b3a0a;--touch-bg:#fffaf0;--touch-line:#e8d6b8;--guess:#5f6670;--hol:#b42318;--rep:#4b2a6b;--rep-bg:#f3eef8;--ev-bg:var(--soft);--fmt-red:#b42318;--fmt-blue:#27466e;--fmt-green:#1f6f3a;--fmt-gray:#5f6670;--fmt-hl-yellow:#ffe7a8;--fmt-hl-green:#cdeed3;--fmt-hl-pink:#fbd3e0;--fmt-bar-bg:var(--surface);--fmt-bar-fg:var(--fg);--fmt-bar-line:var(--line-strong);--fmt-bar-on:var(--soft)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--mark:#5c4f00;--hit:#f0a36b;--lesson:#d9c2f5;--lesson-bg:#3a2f4d;--touch:#f0c27a;--touch-bg:#3a3022;--touch-line:#6b5a3a;--guess:#a9adb8;--hol:#ff9d94;--rep:#d9c2f5;--rep-bg:#34304a;--fmt-red:#ff8a80;--fmt-blue:#8ab4f8;--fmt-green:#81c995;--fmt-gray:#b4b8c2;--fmt-hl-yellow:#5c4f00;--fmt-hl-green:#1e4d2b;--fmt-hl-pink:#5c2338}}:root[data-theme=dark]{--mark:#5c4f00;--hit:#f0a36b;--lesson:#d9c2f5;--lesson-bg:#3a2f4d;--touch:#f0c27a;--touch-bg:#3a3022;--touch-line:#6b5a3a;--guess:#a9adb8;--hol:#ff9d94;--rep:#d9c2f5;--rep-bg:#34304a;--fmt-red:#ff8a80;--fmt-blue:#8ab4f8;--fmt-green:#81c995;--fmt-gray:#b4b8c2;--fmt-hl-yellow:#5c4f00;--fmt-hl-green:#1e4d2b;--fmt-hl-pink:#5c2338}html{font-size:var(--kit-font-root,17.5px)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{font-size:var(--fs-body);font-variant-numeric:tabular-nums;font-family:Noto Sans KR,system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}mark{background:var(--mark);color:var(--ink);border-radius:3px}::placeholder{color:var(--sub);opacity:1}mark.focus{outline:2px solid var(--hit)}s.lost{color:var(--sub)}.app{flex-direction:column;min-height:100dvh;display:flex}.app.wide{flex-direction:row}.rail{background:var(--surface);border-bottom:1px solid var(--line-strong);align-items:center;gap:6px;padding:8px 12px;display:flex;overflow-x:auto}.wide .rail{border-bottom:none;border-right:1px solid var(--line-strong);flex-direction:column;flex-shrink:0;align-items:stretch;gap:8px;width:200px;height:100dvh;padding:16px 12px;position:sticky;top:0}.brand{font-weight:700;font-size:var(--fs-title);margin-right:auto}.wide .brand{margin:0 0 8px}.tab{white-space:nowrap;border:1px solid var(--line-strong);background:var(--surface);min-height:44px;font-size:var(--fs-body);border-radius:10px;padding:0 14px}.tab[aria-current=page]{border:1.5px solid var(--accent);background:var(--soft);font-weight:700}.hani{background:var(--accent);min-height:44px;color:var(--afg);font-weight:700;font-size:var(--fs-body);border:none;border-radius:999px;padding:0 16px}.wide .hani{border-radius:10px;margin-top:8px}.hani{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.keys{font-size:var(--fs-sub);color:var(--sub);margin-top:auto;line-height:1.7}.main{flex-direction:column;flex:1;min-width:0;display:flex}.page{flex-direction:column;gap:14px;padding:12px;display:flex}.wide .page{padding:18px 22px}.card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-box)}.pad{padding:14px 16px}.row{align-items:center;gap:8px;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.sub{color:var(--sub);font-size:var(--fs-sub);font-weight:400}.small{font-size:var(--fs-sub)}.h{font-size:var(--fs-title);margin:0;font-weight:700}.h2{font-size:var(--fs-body);color:var(--ink);margin:0;font-weight:700}.btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-ctl);min-height:44px;font-size:var(--fs-body);padding:0 12px}.btn.on{border:1.5px solid var(--accent);background:var(--soft)}.btn.go{background:var(--accent);color:var(--afg);border:none;font-weight:700}.btn:disabled{opacity:.45;cursor:default}.pill{font-size:var(--fs-sub);border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:2px 9px}.pill.sure{border-color:var(--ink);color:var(--ink)}.pill.guess{color:var(--sub)}.pill.unread{border-color:var(--hit);color:var(--touch)}.chip{font-size:var(--fs-sub);border:1px solid var(--line-strong);color:var(--fg-2);border-radius:999px;padding:2px 8px}.chip.lesson{border-color:var(--lesson);color:var(--lesson);background:var(--lesson-bg)}.chip.lost{color:var(--sub)}.chip.src{border-color:var(--line-strong);color:var(--sub)}.note{font-size:var(--fs-sub);color:var(--sub);line-height:1.5}.msg{font-size:var(--fs-sub);background:var(--touch-bg);border:1px solid var(--touch-line);border-radius:10px;padding:8px 10px}.empty{color:var(--sub);font-size:var(--fs-body);text-align:center;padding:18px 12px}.firm,.pill.sure,.lrow.firm .what,.cell input.firm{color:var(--ink);font-weight:700}.val-guess,.lrow.guess .what,.cell input.val-guess{color:var(--fg-2);border-bottom:1px dashed var(--guess);font-weight:400}.unk,.qcell .unk{color:var(--sub);font-weight:400}.guessy,.pill.guess,.chip.lost,.bar .maybe{border:1px dashed var(--guess)!important}.guessy.num,.plan .num.guessy{border-radius:6px;padding:0 6px;font-weight:400}.fanring{z-index:10;touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.fanring-scrim{background:#1d243359;position:absolute;inset:0}.fanring-svg{pointer-events:none;position:absolute;inset:0;overflow:visible}.fan-in{opacity:0;transition:transform .16s ease-out,opacity .16s ease-out;transform:scale(.6)}.fan-in.on{opacity:1;transform:none}.fan-seg path:first-child,.fan-seg2 path:first-child{fill:var(--surface);stroke:var(--line-strong);stroke-width:1.5px}.fan-seg.hot path:first-child,.fan-seg2.hot path:first-child{fill:var(--soft);stroke:var(--accent);stroke-width:2.5px}.fan-seg.kf path:first-child,.fan-seg2.kf path:first-child{stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:5 3}.fan-seg .ico{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.fan-seg .lbl,.fan-seg2 .lbl2{fill:var(--ink);text-anchor:middle;font-size:13px;font-weight:700}.fan-seg2 .lbl2{font-weight:600}.fanring.quarter .lbl-r{text-anchor:start;dominant-baseline:middle}.fan-seg .badge{fill:#d64545}.fan-seg .badge-n{fill:#fff;text-anchor:middle;font-size:11px;font-weight:700}.fan-hani{background:var(--accent);width:64px;height:64px;color:var(--afg);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0003}.fanring.quarter .fan-hani{width:84px;height:84px}.fan-bubble{background:var(--fg);color:var(--bg);white-space:nowrap;pointer-events:none;border-radius:999px;padding:4px 12px;font-size:.7143rem;font-weight:700;position:absolute;transform:translate(-50%,-100%)}.fanring.quarter .fan-bubble{transform:translate(-50%,-100%)}.fan-a11y{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.fan-a11y button:focus-visible{outline:none}.scrim{z-index:10;background:#1d243359;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.wide .scrim,.scrim.wide{align-items:center}.fan{background:var(--bg);border-radius:18px 18px 0 0;flex-direction:column;gap:10px;width:100%;max-width:390px;padding:14px 14px 18px;display:flex}.scrim.wide .fan{border-radius:18px;max-width:560px}.fan input,.fan select{border:1px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--ink);border-radius:10px;padding:0 10px;font-size:.8rem}.fan-field{flex-direction:column;gap:4px;display:flex}.fan-ctx .chip{align-items:center;gap:4px;display:inline-flex}.chip-x{color:inherit;cursor:pointer;background:0 0;border:none;min-width:28px;min-height:28px;font-size:.8rem}.fan-heard{align-self:flex-start}.fan-listen{flex-direction:column;align-items:center;gap:10px;padding:12px 0;display:flex}.fan-mic{background:var(--accent);width:112px;height:112px;color:var(--afg);touch-action:none;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.fan-mic svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round}.fan-mic.on{box-shadow:0 0 0 10px var(--soft)}.fan-said{text-align:center;font-size:.8571rem}.fan-band{z-index:10;flex-direction:row;align-items:center;gap:10px;max-width:calc(100% - 24px);position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.fan-band .sub{color:var(--bg)}@media (prefers-reduced-motion:reduce){.fan-in{transition:none}}.desk3{grid-template-columns:260px minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:14px;display:grid}.sug{border-top:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;gap:8px;min-height:48px;padding:8px 10px;display:grid}.sug:first-child{border-top:none}.sug button.open{text-align:left;background:0 0;border:none;min-height:44px;padding:0}.sug.guessy{border-radius:10px;margin:4px}.orig{font-size:var(--fs-body);grid-template-columns:44px 1fr;gap:4px 8px;line-height:1.55;display:grid}.orig .no{color:var(--accent);font-size:var(--fs-sub);padding-top:2px;font-weight:700}.orig .no.dim{color:var(--sub);font-weight:400}.foot{background:var(--surface);border-top:1px solid var(--line-strong);grid-template-columns:1fr 2fr;gap:8px;padding:8px 12px 12px;display:grid;position:sticky;bottom:0}.half-top{background:var(--surface);border-bottom:2px solid var(--accent);flex-direction:column;gap:8px;padding:10px 14px;display:flex}.half-top .src{background:var(--bg);border-radius:10px;padding:8px 10px}.wide .half-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:14px 22px;display:grid}.wide .half-top>.bar{grid-column:1/-1}.ground{font-size:var(--fs-body);border-top:1px solid var(--line);grid-template-columns:48px 44px 1fr;align-items:start;gap:6px;padding:5px 0;display:grid}.ground:first-child{border-top:none}.half-bot{flex-direction:column;gap:8px;padding:10px 12px;display:flex}.wide .half-bot{padding:14px 22px}.cells{flex-direction:column;display:flex}.cell{border-top:1px solid var(--line);min-height:46px;font-size:var(--fs-body);grid-template-columns:52px 1fr 70px;align-items:center;padding:0 10px;display:grid}.wide .cell{grid-template-columns:80px 1fr 110px 120px}.cell:first-child{border-top:none}.cell.locked{background:var(--touch-bg)}.cell.focus{box-shadow:inset 3px 0 0 var(--accent)}.cell label{font-size:var(--fs-sub);color:var(--sub)}.cell input{min-height:44px;font-size:var(--fs-body);background:0 0;border:none;width:100%;padding:0}.state{font-size:var(--fs-sub);color:var(--sub);text-align:right}.state.judged{color:var(--accent)}.state.touched{color:var(--touch)}.wide .state{text-align:left}.band{background:var(--fg);color:var(--bg);font-size:var(--fs-body);border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.band .btn{color:var(--bg);border-color:var(--muted);background:0 0;min-height:44px}.band.asksaid{flex-direction:row;align-items:center}.folded{font-size:var(--fs-body);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ledger{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.wide .ledger.withside{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.lrow{border-top:1px solid var(--line);font-size:var(--fs-body);text-align:left;background:0 0;border-bottom:none;border-left:none;border-right:none;grid-template-columns:74px 1fr;gap:2px 8px;width:100%;padding:8px 10px;display:grid}.wide .lrow{grid-template-columns:90px 96px minmax(0,1fr) 160px;align-items:center}.lrow[aria-expanded=true]{background:var(--soft)}.lrow .g{color:var(--accent);font-size:var(--fs-sub)}.lopen{background:var(--surface-2);border-top:1px solid var(--line);font-size:var(--fs-body);flex-direction:column;gap:6px;padding:8px 12px 12px;display:flex}.chain{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chain span+span:before{content:"→ ";color:var(--sub)}.plan{flex-direction:column;gap:8px;display:flex}.plan .num{font-size:var(--fs-num);font-weight:700}.search{border:1px solid var(--line-strong);background:var(--surface);border-radius:10px;min-height:44px;padding:0 10px}.tabs{gap:6px;display:flex}.wide .tabs{flex-direction:column}.tab kbd,.keyrow kbd{border:1px solid var(--line-strong);color:var(--sub);background:var(--bg);border-radius:4px;margin-left:6px;padding:0 4px;font:.6rem ui-monospace,monospace}.wide .tab{justify-content:space-between;align-items:center;display:flex}.btn.out{min-height:44px;font-size:var(--fs-body);white-space:nowrap}.wide .btn.out{margin-top:auto}.btn.small{min-height:44px;font-size:var(--fs-body);padding:0 10px}.wide .btn.small{min-height:34px}.keyrow{background:var(--surface);border-top:1px solid var(--line-strong);font-size:var(--fs-sub);flex-wrap:wrap;gap:4px 14px;margin-top:auto;padding:8px 22px;display:flex;position:sticky;bottom:0}.leave{flex-direction:column;gap:8px;margin:12px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.grid2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.num{font-size:var(--fs-num);border-radius:6px;padding:2px 4px;display:inline-block}.warn{color:var(--hit)}.linkrow{text-align:left;border:none;border-top:1px solid var(--line);background:0 0;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 0;display:flex}.linkrow.col{flex-direction:column;align-items:stretch}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list li{border-top:1px solid var(--line);min-height:44px;font-size:var(--fs-body);align-items:center;gap:8px;display:flex}.list li:first-child{border-top:none}.wkday .list li{border-top:none}.list li.done{color:var(--sub);text-decoration:line-through}.list li.late,.late{color:var(--sub)}.time{font-size:var(--fs-sub);color:var(--accent);min-width:40px;font-weight:700}.tag{font-size:var(--fs-sub);border:1px solid var(--lesson);color:var(--lesson);background:var(--lesson-bg);border-radius:999px;padding:0 6px}.bar{background:var(--line);border-radius:999px;height:10px;display:flex;position:relative;overflow:hidden}.bar .fill{background:var(--muted)}.bar .fill.firm{background:var(--accent)}.bar .maybe{border-radius:0 999px 999px 0;border-left:none!important}.cards{gap:8px;display:flex;overflow-x:auto}.cards.wide{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.cardcup{border:1px solid var(--line-strong);background:var(--surface);text-align:left;border-radius:12px;flex-direction:column;gap:6px;min-width:150px;min-height:84px;padding:10px;display:flex}.three{font-size:var(--fs-sub);grid-template-columns:repeat(4,1fr);gap:4px;margin-top:6px;display:grid}.pairrow{border-top:1px solid var(--line);font-size:var(--fs-body);padding:6px 0}.funnel{font-size:var(--fs-sub);color:var(--sub)}.funnel b{color:var(--ink)}.broken{border-left:3px solid var(--hit);flex-direction:column;gap:6px;display:flex}.lrow2{border-top:1px solid var(--line);min-height:44px}.weekstrip{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.wd{text-align:center;font-size:var(--fs-sub);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:6px 0}.wd.today{border:1.5px solid var(--accent);background:var(--soft);font-weight:700}.repeat-add{border-top:1px solid var(--line);padding-top:8px}.repeat-add textarea{border:1px solid var(--line-strong);background:var(--surface);resize:vertical;border-radius:10px;padding:8px}.repeat-add input,.repeat-add select{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;max-width:100%;min-height:44px;padding:0 8px}.fld{font-size:var(--fs-sub);color:var(--sub);flex-direction:column;gap:2px;display:flex}.preview{background:var(--surface);border:1.5px solid var(--accent);font-size:var(--fs-body);border-radius:10px;padding:8px 10px}.preview ol{margin:4px 0 0;padding-left:20px}.ask{overflow:hidden}.door{justify-content:center;align-items:center;min-height:100dvh;padding:16px;display:flex}.door-card{flex-direction:column;gap:10px;width:100%;max-width:390px;display:flex}.help{font-size:var(--fs-sub);background:var(--touch-bg);border:1px solid var(--touch-line);border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.help ol{margin:0;padding-left:18px}.addr{font-size:var(--fs-sub);background:var(--surface);border-radius:6px;align-self:flex-start;padding:2px 6px}.col{flex-direction:column;gap:10px;min-width:0;display:flex}.wide .bookgrid{grid-template-columns:minmax(0,1fr) 480px;align-items:start;gap:12px;display:grid}.views .btn{font-size:var(--fs-body);padding:0 10px}.wide .views .btn{min-height:36px}.views kbd,.note kbd{border:1px solid var(--line-strong);color:var(--sub);background:var(--bg);border-radius:4px;margin-left:6px;padding:0 4px;font:.6rem ui-monospace,monospace}.cover.short{color:var(--hit);font-weight:600}.sumline{font-size:var(--fs-body)}.sumline .firm{font-size:var(--fs-num)}.brow{border-top:1px solid var(--line);font-size:var(--fs-body);text-align:left;background:0 0;border-bottom:none;border-left:none;border-right:none;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:2px 8px;width:100%;min-height:44px;padding:8px 10px;display:grid}.wide .brow{grid-template-columns:56px minmax(0,1fr) 90px 90px 96px 150px}.brow .evs{flex-wrap:wrap;grid-column:2/-1;gap:4px;display:flex}.wide .brow .evs{grid-column:auto}.brow .amt{text-align:right}.brow.on{background:var(--soft)}.brow.lump{background:var(--touch-bg);grid-template-columns:minmax(0,1fr) auto}.catrow,.cardrow{grid-template-columns:minmax(0,1fr) auto!important}.catrow .bar{background:var(--line);border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}.catrow .bar i{background:var(--accent);height:100%;display:block}.catrow .sub,.cardrow .sub{grid-column:1/-1}.calgrid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;display:grid}.calday{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;min-height:46px;padding:2px;display:flex}.calday.lv1{background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.calday.lv2{background:color-mix(in srgb, var(--accent) 16%, var(--surface))}.calday.lv3{background:color-mix(in srgb, var(--accent) 26%, var(--surface))}.calday.lv4{background:color-mix(in srgb, var(--accent) 38%, var(--surface))}.linecard,.recon{flex-direction:column;gap:8px;display:flex}.fields{flex-direction:column;margin:0;display:flex}.frow{border-top:1px solid var(--line);grid-template-columns:60px minmax(0,1fr) auto;gap:6px;padding:6px 0;display:grid}.frow dd{margin:0}.two{font-size:var(--fs-body);grid-template-columns:1fr 1fr;gap:4px 10px;display:grid}.tworow{display:contents}.tworow>span{border-top:1px solid var(--line);padding:4px 0}ol.close{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}ol.close li.todo b{color:var(--touch)}.cmps{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.cmp{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;padding:8px;display:flex}.krow{border-top:1px solid var(--line);font-size:var(--fs-body);text-align:left;background:0 0;border-bottom:none;border-left:none;border-right:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;width:100%;min-height:44px;padding:8px 10px;display:grid}.wide .krow{grid-template-columns:minmax(0,1fr) 150px 110px 50px 60px}.krow.on{background:var(--soft)}.krow.dim{color:var(--sub)}input[type=checkbox]{appearance:none;box-sizing:content-box;background:var(--surface) padding-box;width:22px;height:22px;box-shadow:inset 0 0 0 1.5px var(--sub);cursor:pointer;border:11px solid #0000;border-radius:16px;flex:none;margin:-11px}input[type=checkbox]:checked{background:var(--accent) padding-box;box-shadow:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M5 11.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-origin:padding-box;background-clip:padding-box}input[type=checkbox]:disabled{cursor:default;box-shadow:inset 0 0 0 1.5px var(--line-strong)}:root[data-theme=dark] input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M5 11.5l4 4 8-9' fill='none' stroke='%2323252F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M5 11.5l4 4 8-9' fill='none' stroke='%2323252F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:-9px}.sug,.list li,.row{min-width:0}.list li>.grow,.linkrow>.grow{overflow-wrap:anywhere}.linkrow.on{background:var(--soft)}.frow2{font-size:var(--fs-body);border-top:1px solid var(--line);grid-template-columns:56px minmax(0,1fr);gap:8px;padding:4px 0;display:grid}.hol{color:var(--hol)}.pill.hol{border-color:var(--hol)}.cal .calhead{flex-direction:column;gap:6px;display:flex}.calttl{text-align:center;min-width:0}.cal [role=tablist] .btn{min-width:52px}.calgrid3{grid-template-columns:220px minmax(0,1fr) 320px;align-items:start;gap:14px;display:grid}.legend{font-size:var(--fs-body);flex-direction:column;gap:4px;display:flex}.dot{vertical-align:middle;border-radius:3px;width:10px;height:10px;display:inline-block}.dot.ev{background:var(--accent)}.dot.rep{background:var(--rep)}.box{border:1.5px solid var(--sub);vertical-align:middle;width:10px;height:10px;display:inline-block}.mini .minig{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-top:6px;display:grid}.mini-d{min-height:30px;font-size:var(--fs-sub);background:0 0;border:none;border-radius:6px}.mini-d.today{color:var(--accent);font-weight:700}.mini-d.on{background:var(--soft)}.mini-d.other{color:var(--sub)}.tgrid{overflow:hidden}.trow{grid-template-columns:44px repeat(var(--cols), minmax(0, 1fr));display:grid}.thead{border-bottom:1px solid var(--line-strong)}.dh{font-size:var(--fs-body);text-align:center;flex-direction:column;align-items:center;min-width:0;padding:6px 2px;display:flex}.dh .small{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.dh.today{background:var(--soft);font-weight:700}.dh.off>span:first-child{color:var(--hol)}.tall{border-bottom:1px solid var(--line-strong);align-items:start;padding:4px 0}.tall>.sub{padding:4px}.tbars{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:2px;display:grid}.tbar{background:var(--ev-bg);min-height:44px;color:var(--ink);font-size:var(--fs-sub);text-align:left;white-space:nowrap;text-overflow:ellipsis;border:none;border-radius:6px;padding:2px 6px;overflow:hidden}.tbar.rep{background:var(--rep-bg);color:var(--rep)}.wide .tbar{min-height:28px}.tbar.on,.blk.on{box-shadow:0 0 0 2px var(--accent)}.tday{font-size:var(--fs-sub);flex-direction:column;gap:2px;min-width:0;padding:0 2px;display:flex}.tday>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.due{font-size:var(--fs-sub)}.due.done{color:var(--sub);text-decoration:line-through}.tbody{position:relative}.hours{flex-direction:column;display:flex}.hours span{font-size:var(--fs-sub);color:var(--sub);text-align:right;border-top:1px solid var(--line);padding:2px 4px 0 0}.tcol{border-left:1px solid var(--line);min-width:0;position:relative}.tcol.today{background:var(--surface-2)}.slot{border:none;border-top:1px solid var(--line);background:0 0;padding:0;position:absolute;left:0;right:0}.slot:hover{background:var(--soft)}.blk{border:none;border-left:3px solid var(--accent);background:var(--ev-bg);color:var(--ink);font-size:var(--fs-sub);text-align:left;z-index:1;border-radius:6px;min-height:24px;padding:2px 4px;line-height:1.3;position:absolute;overflow:hidden}.blk.rep{border-left-color:var(--rep);background:var(--rep-bg)}.blk.done{color:var(--sub);text-decoration:line-through}.blk.clash{box-shadow:inset 0 0 0 1px var(--hit)}.gap{font-size:var(--fs-sub);color:var(--sub);pointer-events:none;position:absolute;left:4px;right:4px}.mgrid{overflow:hidden}.mrow{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mhead span{text-align:center;font-size:var(--fs-sub);color:var(--sub);padding:6px 0}.mhead span.off{color:var(--hol)}.mcell{border:none;border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);text-align:left;min-width:0;min-height:76px;font-size:var(--fs-sub);flex-direction:column;align-items:stretch;gap:1px;padding:3px;display:flex;overflow:hidden}.mcell:first-child{border-left:none}.mcell.other{background:var(--surface-2);color:var(--sub)}.mcell.today .mday b{background:var(--accent);color:var(--afg);border-radius:999px;padding:0 6px}.mcell.on{box-shadow:inset 0 0 0 2px var(--accent)}.mcell.off .mday b{color:var(--hol)}.mcell.today.off .mday b{color:var(--afg)}.mday{font-size:var(--fs-body);align-items:baseline;gap:3px;display:flex}.lun{font-size:var(--fs-sub);color:var(--sub);white-space:nowrap}.mcell .hol,.spc{font-size:var(--fs-sub);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.spc{color:var(--sub)}.mev,.mcell .due,.more,.mmoney{white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-sub);overflow:hidden}.mev.all{background:var(--ev-bg);border-radius:4px;padding:0 3px}.mev.rep{color:var(--rep)}.mev.rep.all{background:var(--rep-bg)}.mev.done{color:var(--sub);text-decoration:line-through}.more{color:var(--accent);font-weight:700}.lhead{margin:10px 0 2px;display:block}.calundo{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.calnew .search{min-width:0}.calsel{border-left:3px solid var(--accent)}.ogrid{grid-template-columns:220px minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.lens{text-align:left;justify-content:space-between;display:flex}.crumb .btn{text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-height:44px;overflow:hidden}.wide .crumb .btn{min-height:36px}.opane{flex-direction:column;gap:6px;display:flex}.olist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.olist.sub-list{border-left:1px solid var(--line);margin-left:10px;padding-left:22px}.oline{border-top:1px solid var(--line)}.olist>.oline:first-child{border-top:none}.oline.on>.row{background:var(--soft);border-radius:8px}.oline.done>.row .otext>span:first-child{color:var(--sub);text-decoration:line-through}.bul{text-align:center;width:22px;color:var(--sub);flex:none}.bul.event{color:var(--accent)}.otext{text-align:left;min-height:44px;font-size:var(--fs-body);background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;padding:4px 0;display:flex}.otext>span:first-child{overflow-wrap:anywhere}.chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chip.money{border-color:var(--touch);color:var(--touch)}.moneyask{border:1.5px solid var(--accent)}.sug.focus{box-shadow:inset 3px 0 0 var(--accent);background:var(--soft)}.orig .lit{background:var(--mark);border-radius:4px}.orig .no.lit{color:var(--ink)}.drop{border:1.5px dashed var(--guess);text-align:center;font-size:var(--fs-body);background:var(--surface);border-radius:10px;padding:14px 10px}.drop.over{border-color:var(--accent);background:var(--soft)}.list li.col,.lrow2.col{flex-direction:column;align-items:stretch;gap:2px;padding:6px 0;display:flex}.list li.wrap{flex-wrap:wrap}.kv{flex-direction:column;margin:0;display:flex}.kv>div{border-top:1px solid var(--line);font-size:var(--fs-body);justify-content:space-between;gap:8px;padding:6px 0;display:flex}.kv>div:first-child{border-top:none}.kv dt{color:var(--sub)}.kv dd{text-align:right;margin:0}.sheet{border:1.5px solid var(--accent)}.gaps{border:1.5px solid var(--hit)}.say{font-size:var(--fs-title);font-weight:700;line-height:1.5}.opts{border:none;gap:4px 12px;margin:0;padding:0}.opts legend{margin-bottom:2px;padding:0}.opts label{font-size:var(--fs-body);gap:2px}.bullets{font-size:var(--fs-body);flex-direction:column;gap:6px;margin:0;padding-left:18px;line-height:1.5;display:flex}.locktop{background:var(--touch-bg);border:1px solid var(--touch-line);color:var(--touch);font-size:var(--fs-body);border-radius:10px;padding:6px 10px;font-weight:700}.wide .half-top>.locktop{grid-column:1/-1}.halfpage{gap:0;padding:0}.qgrid{background:var(--surface);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.qrow{border-top:1px solid var(--line);align-items:center;gap:4px;min-height:44px;padding:2px 8px;display:grid}.qrow.head{border-top:none;min-height:28px}.qrow.dim{color:var(--sub)}.qcell input,.qcell select{width:100%;min-height:40px;font-size:var(--fs-body);background:0 0;border:1px solid #0000;border-radius:6px;padding:0 6px}.qcell input:focus,.qcell select:focus{border-color:var(--accent);background:var(--soft);outline:none}.qcell .locked{background:var(--touch-bg)}.made{border-left:3px solid var(--accent)}.fmtbar{background:var(--fmt-bar-bg);max-width:calc(100vw - 8px);color:var(--fmt-bar-fg);border:1px solid var(--fmt-bar-line);z-index:30;border-radius:10px;flex-wrap:wrap;gap:2px;padding:4px;display:flex;box-shadow:0 4px 16px #0000002e}.fmtbar[hidden]{display:none}.fmt-btn{min-width:32px;height:32px;color:inherit;font:inherit;font-size:var(--fs-body);cursor:pointer;background:0 0;border:0;border-radius:7px}.fmt-btn.on:not(.oh){background:var(--fmt-bar-on)}.fmt-btn.oc.on,.fmt-btn.oh.on{box-shadow:inset 0 0 0 2px}@media (pointer:coarse){.fmt-btn{min-width:38px;height:44px;font-size:var(--fs-body)}}.oc-red{color:var(--fmt-red)}.oc-blue{color:var(--fmt-blue)}.oc-green{color:var(--fmt-green)}.oc-gray{color:var(--fmt-gray)}.oh-yellow{background:var(--fmt-hl-yellow)}.oh-green{background:var(--fmt-hl-green)}.oh-pink{background:var(--fmt-hl-pink)}.oh{border-radius:3px;padding:0 1px}.olines{font-size:var(--fs-body);flex-direction:column;line-height:1.55;display:flex}.olines .node{display:block}.olines .row{border-radius:8px;align-items:flex-start;gap:4px;min-height:32px;padding:2px;display:flex}.olines .row.cur{background:var(--soft)}.olines .row.done .txt{color:var(--sub);text-decoration:line-through}.olines .kids{border-left:1px solid var(--line);margin-left:14px;padding-left:8px}.olines .fold,.olines .dot{width:22px;min-height:28px;color:var(--sub);font-size:var(--fs-sub);background:0 0;border:none;flex:none;padding:0}.olines .fold.none{visibility:hidden}.olines .dot:before{content:"•";font-size:var(--fs-body)}.olines .dot.folded:before{content:"◉"}.olines .ck{flex:none;width:18px;height:18px;margin:6px 4px 0 0}.olines .txt,.olines .nt{overflow-wrap:anywhere;white-space:pre-wrap;border-radius:6px;outline:none;flex:1;min-width:0;padding:3px 4px}.olines .txt:focus{background:var(--surface);box-shadow:0 0 0 1.5px var(--accent)}.olines .txt:empty:before{content:"​"}.olines .nt{color:var(--sub);font-size:var(--fs-body);background:var(--line);margin:0 0 4px 52px}.olines .nt:empty:before{content:attr(data-ph);color:var(--sub)}.olines .nt:focus{box-shadow:0 0 0 1.5px var(--accent);background:var(--surface)}.olines .nmark{color:var(--sub);background:0 0;border:none;flex:none;min-height:28px;padding:0 4px}.olines .chips{flex:none;align-items:center;gap:4px;min-height:28px;display:flex}.olines .chip{border:1px solid var(--line-strong);color:var(--sub);background:var(--surface);font-size:var(--fs-sub);min-height:0;padding:0 6px}.olines .sp{flex:1 1 0;max-width:0}.olines .meta,.olines .pin{display:none}.olines .zhead{font-weight:700;font-size:var(--fs-title);padding:4px 0 0}.olines .zmeta{font-size:var(--fs-sub);color:var(--sub);padding:0 4px 6px}.olines mark{background:var(--mark);color:inherit}.olines .tag{cursor:pointer}.olines-end{padding-top:6px}.olines-empty{padding:4px 2px}.handbar{background:var(--bg);padding:6px 0;position:sticky;bottom:0}.handbar .btn{min-width:44px;padding:0 8px}.ledger>*,.lrow>*{min-width:0}.lrow .what{overflow-wrap:anywhere;word-break:keep-all}.lrow .grounds{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wide .lrow .grounds{max-width:100%}.lopen .chain span,.lopen .cw{overflow-wrap:anywhere}.lopen .cell-row{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.lopen .cell-row .cw{min-width:72px;color:var(--accent)}.lopen .cell-row .grow{overflow-wrap:anywhere;min-width:0}.lopen .tiny{font-size:var(--fs-sub);overflow-wrap:anywhere}.sayrow textarea{border:1px solid var(--line-strong);background:var(--surface);resize:vertical;border-radius:10px;min-height:44px;padding:10px}.sayrow .btn{white-space:nowrap;align-self:stretch}.saybar{flex-direction:column;gap:6px;display:flex}.saybar-line{align-items:center}.saybar-line .sayrow{flex:1;min-width:0}.saytop{z-index:4;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px;position:sticky;top:0}.hani-mark{background:var(--accent);width:28px;height:28px;color:var(--afg);font-weight:700;font-size:var(--fs-sub);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.hani .hani-mark{background:var(--afg);width:22px;height:22px;color:var(--accent);margin-right:6px}.dock .hani .hani-mark{display:none}.sayq{border:1.5px solid var(--accent);align-items:center}.fsbox{text-align:center}.fsdots{justify-content:center;gap:6px;margin-top:4px;display:flex}.fsdots i{background:var(--line-strong);border-radius:50%;width:8px;height:8px}.fsdots i.on{background:var(--accent)}.secret{-webkit-text-security:disc;text-security:disc}.topbar{background:var(--surface);border-bottom:1px solid var(--line-strong);z-index:5;align-items:center;gap:6px;padding:6px 12px;display:flex;position:sticky;top:0}.rail.dock{z-index:5;border-bottom:none;border-top:1px solid var(--line-strong);padding:4px 6px;position:sticky;bottom:0}.dock .tabs{grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:2px;width:100%;display:grid}.dock .tab{min-height:52px;font-size:var(--fs-sub);color:var(--sub);background:0 0;border:none;border-radius:0;padding:0 2px}.dock .tab[aria-current=page]{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent);background:0 0;border:none;font-weight:700}.dock .hani{width:60px;height:60px;min-height:60px;font-size:var(--fs-body);border-radius:50%;justify-self:center;padding:0}.app:not(.wide) .main .foot{bottom:61px}.tab.corner{padding:0 12px}.corner-box{flex-direction:column;gap:8px;margin-top:auto;display:flex}.wide .corner-box .btn.out{margin-top:0}.wide .btn.small.jumpbtn{justify-content:space-between;align-items:center;display:flex}.jumpbtn kbd,.linkrow kbd{border:1px solid var(--line-strong);color:var(--sub);background:var(--bg);border-radius:4px;margin-left:6px;padding:0 4px;font:.6rem ui-monospace,monospace}.pillar:empty{display:none}.subbar{flex-direction:column;gap:6px;padding:8px 12px 0;display:flex}.wide .subbar{padding:14px 22px 0}.subbar:empty{display:none}.where{gap:6px;min-width:0}.where .here{font-size:var(--fs-body);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pagehead{gap:8px;min-width:0}.pourline{border:1px solid var(--line-strong);border-radius:10px;padding:8px 12px}.fan-resume{z-index:11;max-width:calc(100% - 24px);position:fixed;top:16px;left:50%;transform:translate(-50%)}.subs{gap:6px;display:flex;overflow-x:auto}.tab.sub-chip{font-size:var(--fs-body);border-radius:999px;padding:0 12px}.wide .tab.sub-chip{min-height:36px}.jumpbox{background:var(--bg);border-radius:18px 18px 0 0;flex-direction:column;gap:10px;width:100%;max-width:390px;max-height:80dvh;padding:14px 14px 18px;display:flex;overflow-y:auto}.scrim.wide .jumpbox{border-radius:18px;max-width:520px}.jumpbox li[aria-selected=true] .linkrow{background:var(--soft)}.jumpbox .linkrow{border-radius:8px;padding:6px 10px}.one{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.today .linkrow.first{border-top:none;padding-top:0}.today .list li.col{padding:4px 0}.rowbtn{text-align:left;min-width:0;min-height:44px;font:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:8px;padding:0;display:flex}.rowopen{flex-direction:column;gap:2px;padding:0 0 4px 30px;text-decoration:none;display:flex}.today .list li.done .rowopen{text-decoration:none}.layers{gap:4px;display:flex}.wide .layers .btn.small{min-height:32px}.layers .btn.on{font-weight:700}.cups{grid-template-columns:1fr;gap:8px;display:grid}.cups.wide{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.cup{border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:8px 10px;display:flex}.cup-name{text-align:left;min-height:32px;font:inherit;color:inherit;background:0 0;border:none;min-width:0;padding:0}.cupbar{background:var(--bg);border:1px solid var(--line-strong);border-radius:999px;height:12px;display:flex;overflow:hidden}.cupbar .w-sure{background:var(--accent)}.cupbar .w-guess{background:repeating-linear-gradient(135deg, var(--accent) 0 2px, var(--soft) 2px 6px)}.cupbar .w-unknown{border:1.5px dotted var(--guess);border-left:none;border-radius:0 999px 999px 0}.cupbar.none{border:1.5px dotted var(--guess);background:0 0}.numbtn{text-align:left;min-width:0;max-width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:0;padding:2px 0;display:flex}.numbtn[aria-expanded=true] .num{background:var(--soft)}.spent{grid-template-columns:1fr 1fr;gap:10px;display:grid}.spent-one{min-width:0}.why{border-left:2px solid var(--line-strong);font-size:var(--fs-sub);background:0 0;border-radius:0 8px 8px 0;flex-direction:column;gap:4px;min-width:0;margin-top:4px;padding:6px 8px;display:flex}.why-steps{flex-direction:column;gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.src-text{white-space:pre-wrap;overflow-wrap:anywhere;width:100%;max-height:8em;margin:0;font:.6571rem ui-monospace,monospace;overflow:auto}.today .check{gap:6px}.ask1{border-color:var(--accent);flex-direction:column;gap:6px;display:flex}.ask1 .btn kbd{border:1px solid var(--line-strong);color:var(--sub);background:var(--bg);border-radius:4px;margin-left:6px;padding:0 4px;font:.6rem ui-monospace,monospace}.ask1 .btn.go kbd{color:var(--afg);border-color:var(--afg);background:0 0}.pillar{border-left:1px solid var(--line-strong);background:var(--surface);box-sizing:border-box;flex-direction:column;flex-shrink:0;gap:14px;width:280px;height:100dvh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.pcol{flex-direction:column;gap:4px;min-width:0;display:flex}.plist{flex-direction:column;min-width:0;margin:0;padding:0;list-style:none;display:flex}.plist li{border-top:1px solid var(--line);min-width:0;font-size:var(--fs-body)}.plist li:first-child{border-top:none}.plist .rowbtn{width:100%}.wide .plist .rowbtn{min-height:34px}.wide .pillar .ask1 .btn{min-height:36px}.card .card,.card .cup,.card .cmp{box-shadow:none;border:none;border-top:1px solid var(--line);background:0 0;border-radius:0;padding:10px 0 0}.card .cups{gap:12px}.card .cups.wide{column-gap:24px}.lrow .g,.orig .no,.lopen .cell-row .cw{color:var(--fg-2)}.list li label,.list li label>.grow,.list li .grow{font-size:inherit;line-height:1.45}.wkday{flex-direction:column;gap:2px;padding:6px 0;display:flex}.wkday+.wkday{border-top:1px solid var(--line-strong);margin-top:0;padding-top:10px}.wkday>.sub{color:var(--fg-2);font-weight:700}.wkday .list li,.wkday .list li.done{border-top:none}.lopen,.lopen *,.lrow .what,.frow dd,.kv dd,.src-text,.addr{overflow-wrap:anywhere}.wide .lrow .grounds{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.row.wrap>.grow{overflow-wrap:anywhere;min-width:min(8em,100%)}.settle-paid{color:var(--ok,#2a7a3b)}.settle-diff,.settle-notyet{color:var(--hit)}.settle-amb{color:var(--sub,inherit)}
