:root{color-scheme:dark;--bg: #1e1e20;--bar: #252528;--pane: #2a2a2e;--pane-2: #303035;--line: #3a3a40;--text: #f2f2f4;--text-2: #9a9aa2;--text-3: #6e6e78;--accent: #3b82f6;--ok: #34c273;--warn: #e0a33b;--bad: #ef5350;--flag-issue: #ff8b8b;--flag-sensitive: #ffb765;--sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--t-micro: 10px;--t-label: 11px;--t-body: 13px;--t-lead: 15px;--t-title: 18px;--t-fig: 22px;--t-mono: 12px;--t-roll: 15.5px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--r-sm: 6px;--r-md: 10px;--wclips: 62px;--wgb: 82px;--wdur: 86px;--wmag: 92px;--wshut: 132px;--wnote: 58px;--tickcol: 50px;--rowpad: 38px;--gridcols: calc(var(--wclips) + var(--wgb) + var(--wdur) + var(--wmag) + var(--wshut));--tickw: max(96px, calc(var(--tickn, 1) * var(--tickcol)));--col1: 148px;--cardw: calc(var(--col1) + var(--gridcols) + var(--wnote) + var(--tickw) + var(--rowpad))}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 var(--t-body)/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.app{display:flex;height:100%;overflow:hidden}.sidebar{flex:0 0 216px;background:var(--bar);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:var(--s-4) 0;overflow-y:auto}.brand{font-size:var(--t-title);font-weight:600;letter-spacing:-.02em;padding:0 var(--s-4) var(--s-4)}.snav{display:flex;flex-direction:column;gap:2px;padding:0 var(--s-2)}.snav button{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-3);background:none;border:0;border-radius:var(--r-sm);color:var(--text-2);text-align:left;cursor:pointer}.snav button:hover{background:var(--pane);color:var(--text)}.snav button.on{background:var(--pane);color:var(--text);font-weight:600}.useg{display:flex;gap:var(--s-1);padding:var(--s-4) var(--s-3) var(--s-2)}.useg button{flex:1;padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:none;color:var(--text-2);cursor:pointer;font-size:var(--t-label)}.useg button.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.sfoot{margin-top:auto;padding:var(--s-4) var(--s-4) 0;color:var(--text-3);font-size:var(--t-label)}.sfoot .sacts{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);margin-top:var(--s-1)}.sfoot button{background:none;border:0;color:var(--text-2);cursor:pointer;padding:0;text-decoration:underline;text-align:left}.pane{flex:1;display:flex;flex-direction:column;overflow:hidden}.phead{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px)}.phead h1{font-size:var(--t-roll);font-weight:600;margin:0;letter-spacing:-.01em}.phead .spacer{flex:1}.pbody{flex:1;overflow-y:auto;padding:var(--s-4) var(--s-5) 64px;max-width:calc(var(--cardw) + 40px)}.btn{padding:6px var(--s-3);background:var(--pane);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);cursor:pointer}.btn:hover{background:var(--pane-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:disabled{opacity:.45;cursor:default}.btn.quiet{background:none}.btn.danger{border-color:var(--bad);color:var(--bad)}.day{background:var(--pane);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-md);overflow:hidden;margin-bottom:var(--s-3);width:var(--cardw);min-width:var(--cardw);max-width:100%}.day.editing{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--pane))}.dayhead{display:flex;align-items:baseline;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}.dayhead .code{font:600 var(--t-lead)/1.3 var(--sans)}.dayhead .date{color:var(--text-2);font-size:var(--t-label)}.dayhead .spacer{flex:1}.dayhead .sum{color:var(--text-2);font-size:var(--t-label);font-variant-numeric:tabular-nums}.sechead{display:flex;align-items:center;padding:var(--s-2) var(--s-4);background:var(--pane-2);color:var(--text-3);font-size:var(--t-micro);letter-spacing:.08em;text-transform:uppercase}.roll{display:flex;align-items:center;min-height:44px;padding:0 var(--s-4);gap:0}.roll+.roll{border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.rname{width:var(--col1);flex:none;font:600 var(--t-roll)/1.25 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rname.flag-issue{color:var(--flag-issue)}.rname.flag-sensitive{color:var(--flag-sensitive)}.rbody{flex:1;min-width:0;display:flex}.rmeta{display:flex;flex:1;min-width:0}.cell{flex:none;text-align:center;font-variant-numeric:tabular-nums;font-size:var(--t-body);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell.muted{color:var(--text-2)}.c-clips{width:var(--wclips)}.c-gb{width:var(--wgb)}.c-dur{width:var(--wdur)}.c-mag{width:var(--wmag)}.c-shut{width:var(--wshut);font-size:var(--t-label);color:var(--text-2)}.c-note{width:var(--wnote);flex:none;text-align:center}.tickgroup{width:var(--tickw);flex:none;display:flex;justify-content:center;gap:0}.ring{width:23px;height:23px;border-radius:50%;border:1.5px solid var(--line);background:none;cursor:pointer;display:grid;place-items:center;padding:0}.ring[aria-pressed=true]{background:var(--ok);border-color:var(--ok)}.ring[aria-pressed=true]:after{content:"";width:9px;height:5px;border:2px solid #10241a;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}.tickcell{width:var(--tickcol);display:grid;place-items:center}.totals{display:flex;align-items:center;min-height:40px;padding:0 var(--s-4);background:var(--pane-2);border-top:1px solid var(--line);font-weight:600}.totals .rname{font-family:var(--sans);font-size:var(--t-label);color:var(--text-2);text-transform:uppercase;letter-spacing:.06em}.editfield{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:2px 4px;text-align:center;font-variant-numeric:tabular-nums}.editfield.saving{border-color:var(--accent)}.editfield.bad{border-color:var(--bad)}.edot{width:6px;height:6px;border-radius:50%;background:var(--accent);border:0;padding:0;cursor:pointer;margin-left:4px;vertical-align:middle}.gapbar{background:color-mix(in srgb,var(--warn) 14%,var(--pane));border:1px solid var(--warn);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-3);font-size:var(--t-body)}.gapbar h3{margin:0 0 var(--s-1);font-size:var(--t-body);font-weight:600}.gapctx{color:var(--text-2)}.gapfolder{font-family:var(--mono);font-size:var(--t-mono);color:var(--text)}.gapwhy{margin:var(--s-3) 0 0;color:var(--text-2)}.pathrow{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-top:var(--s-2)}.pathrow>span{min-width:0;max-width:100%}.pathsep{color:var(--text-3);padding:0 2px}.pathend{padding:2px var(--s-2);font-family:var(--mono);font-size:var(--t-mono);color:var(--text-3)}.pathseg{display:inline-block;padding:2px var(--s-2);margin:2px 0;background:var(--pane-2);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--mono);font-size:var(--t-mono);cursor:pointer;color:inherit;max-width:100%;overflow-wrap:anywhere;text-align:left}.pathseg.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--pane-2))}.pathseg:disabled{cursor:default;opacity:.55}.pathrow.choose .pathseg{border-style:dashed}.pathrow.choose .pathseg:hover:not(:disabled){border-color:var(--accent);border-style:solid}.empty{color:var(--text-2);padding:var(--s-6) 0;text-align:center}.err{color:var(--bad)}.ovback{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:40;overflow-y:auto}.ovpanel{width:min(620px,100% - 32px);margin:5vh auto 0;max-height:88vh;background:var(--pane);border:1px solid var(--line);border-radius:var(--r-md);display:flex;flex-direction:column;overflow:hidden;animation:rise .16s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(10px) scale(.985)}}.flowtop{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--s-3) var(--s-4);background:var(--bar);border-bottom:1px solid var(--line)}.flowtop h2{grid-column:2;margin:0;font-size:var(--t-body);font-weight:600}.flowtop .l{justify-self:start}.flowtop .r{justify-self:end}.ovbody{padding:var(--s-4);overflow-y:auto}.ovfoot{padding:var(--s-3) var(--s-4);border-top:1px solid var(--line);display:flex;gap:var(--s-2);justify-content:flex-end}.drop{border:1.5px dashed var(--line);border-radius:var(--r-md);padding:var(--s-6);text-align:center;color:var(--text-2);cursor:pointer}.drop.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text)}.planrow{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}.planrow .n{flex:1;min-width:0;font-family:var(--mono);font-size:var(--t-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planrow .d{font-weight:600}.tag{font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.07em;color:var(--text-3)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:center;font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:500;padding:var(--s-2) var(--s-1)}.tbl th:first-child,.tbl td:first-child{text-align:left}.tbl td{padding:var(--s-2) var(--s-1);border-top:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums}.tbl td.name{font-family:var(--mono);font-size:var(--t-mono)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--pane-2);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-2) var(--s-4);z-index:60;box-shadow:0 8px 30px #0006}.toast.bad{border-color:var(--bad)}.signin{display:grid;place-items:center;height:100%;padding:var(--s-4)}.signin form{width:min(340px,100%);display:flex;flex-direction:column;gap:var(--s-3)}.signin h1{font-size:28px;margin:0 0 var(--s-2);letter-spacing:-.02em}.signin p{color:var(--text-2);margin:0 0 var(--s-4)}.signin input{padding:var(--s-3);background:var(--pane);border:1px solid var(--line);border-radius:var(--r-sm)}@media (max-width: 1054px){.day{width:auto;min-width:0}.roll{flex-wrap:wrap;padding-top:var(--s-2);padding-bottom:var(--s-2)}.rname{width:100%}.rbody{flex:1 0 100%;min-width:0}.rbody,.rmeta{flex-wrap:wrap}.cell{width:auto!important;min-width:64px;text-align:left;padding-right:var(--s-3)}.sechead .rmeta{display:none}.cell .u{display:inline;color:var(--text-3)}.tickgroup{width:auto}}@media (min-width: 1055px){.cell .u{display:none}}@media (max-width: 767px){.sidebar{display:none}.dayhead{flex-wrap:wrap}.dayhead .spacer{display:none}.dayhead .sum{order:10;width:100%}:root{--tickcol: 76px}.roll{min-height:62px}.rname{font-size:18px}.ring{width:29px;height:29px}.pbody{padding:var(--s-3) var(--s-3) 88px}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--bar);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;padding:var(--s-3) 0;background:none;border:0;color:var(--text-2);font-size:var(--t-label);cursor:pointer}.tabbar button.on{color:var(--text);font-weight:600}}@media (min-width: 768px){.tabbar{display:none}}.pswitch{position:relative;padding:0 var(--s-3) var(--s-2)}.pswitch-now{display:flex;align-items:center;gap:var(--s-2);width:100%;background:none;border:0;padding:var(--s-2);border-radius:var(--r-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer}.pswitch-now:hover{background:var(--pane)}.pswitch-now .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pswitch-now .chev{color:var(--text-3);font-size:var(--t-micro)}.pswitch-away{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.pswitch-list{position:absolute;z-index:31;left:var(--s-3);right:var(--s-3);top:100%;background:var(--pane);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-1);max-height:60vh;overflow-y:auto}.pswitch-list button{display:flex;align-items:center;gap:var(--s-2);width:100%;background:none;border:0;padding:var(--s-2);border-radius:var(--r-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer}.pswitch-list button:hover,.pswitch-list button.on{background:var(--pane-2)}.pswitch-list button .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pswitch-list button.wrapped .n{color:var(--text-2)}.histcell{cursor:pointer}.tbl.hist td{vertical-align:top;padding:var(--s-1) var(--s-2)}.tbl.hist .hf{color:var(--text-2);white-space:nowrap}.tbl.hist .hv{font-family:var(--mono);font-size:var(--t-mono)}.tbl.hist .hv .was,.tbl.hist .hv .arrow{color:var(--text-3)}.tbl.hist .hw{color:var(--text-2);white-space:nowrap}.tbl.hist .ht{color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}.planrow.clipout .n{color:var(--text-3);text-decoration:line-through}.planrow.clipout .tag{color:var(--text-3)}.btn.quiet.on{border-color:var(--warn);color:var(--warn)}.clipoutn,.cell.corrected{color:var(--warn)}.ovpanel.report{width:min(760px,100% - 32px)}.rmeta-line{display:flex;gap:var(--s-3);align-items:baseline;padding:2px 0}.rmeta-line .v{flex:1;min-width:0;overflow-wrap:anywhere}.rmessage{display:block;width:100%;margin:var(--s-4) 0;background:none;border:1px solid transparent;border-radius:var(--r-sm);padding:var(--s-3);color:var(--text);font:400 var(--t-mono)/1.6 var(--mono);resize:none;overflow:hidden}.rmessage:hover{background:color-mix(in srgb,var(--pane-2) 60%,transparent)}.rmessage:focus{background:var(--bg);border-color:var(--line);outline:none}.ratts{border-top:1px solid var(--line);padding-top:var(--s-3)}.ratts-head{display:flex;align-items:center;gap:var(--s-3)}.ratts-head .spacer{flex:1}.ratts.over{outline:1px dashed var(--accent);outline-offset:var(--s-2);border-radius:var(--r-sm)}.signin-legal{margin:var(--s-5) 0 0;text-align:center;font-size:var(--t-micro);color:var(--text-3)}.signin-legal a{color:inherit;text-decoration:none}.signin-legal a:hover{color:var(--text-2);text-decoration:underline}
