:root{--ink:#14211e;--ink-soft:#40534e;--ink-faint:#7b8b86;--panel:#eaeeea;--panel-deep:#dde3dd;--field:#fff;--line:#c4cec8;--go:#1f6f5c;--go-wash:#dceae4;--limit:#b8791a;--limit-wash:#f5e8d2;--stop:#9e3b2a;--stop-wash:#f3ddd8;--radius:4px;--rail:15rem;--gap:1.5rem;--sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--panel);color:var(--ink);font-family:var(--sans);font-feature-settings:"ss01";margin:0;font-size:15px;line-height:1.55}h1,h2,h3{letter-spacing:-.012em;margin:0;font-weight:600}h1{font-size:1.5rem}h2{font-size:1.0625rem}h3{font-size:.9375rem}p{margin:0}a{color:var(--go);text-underline-offset:2px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--go);outline-offset:2px;border-radius:2px}.shell{grid-template-columns:var(--rail) 1fr;min-height:100vh;display:grid}.rail{background:var(--ink);color:#d7e0dc;flex-direction:column;gap:1.75rem;height:100vh;padding:1.5rem 0 1.5rem 1.25rem;display:flex;position:sticky;top:0;overflow-y:auto}.rail-mark{align-items:baseline;gap:.5rem;padding-right:1.25rem;display:flex}.rail-mark strong{color:#fff;letter-spacing:.02em;font-size:1.0625rem}.rail-mark span{color:var(--ink-faint);font-size:.8125rem}.rail-group{flex-direction:column;gap:.125rem;display:flex}.rail-group>h3{color:#8ea39c;padding:0 1.25rem .5rem 0;font-size:.75rem;font-weight:500}.rail a{color:#cfdad5;border-radius:0 var(--radius) var(--radius) 0;border-left:2px solid #0000;margin-left:-.125rem;padding:.4rem .75rem;text-decoration:none}.rail a:hover{color:#fff;background:#ffffff0f}.rail a.router-link-active{border-left-color:var(--go);color:#fff;background:#ffffff17;font-weight:500}.rail-foot{margin-top:auto;padding-right:1.25rem}.content{max-width:74rem;padding:2.25rem 2.5rem 4rem}.page-head{max-width:60ch;margin-bottom:2rem}.page-head p{color:var(--ink-soft);margin-top:.375rem}.block{margin-bottom:2.5rem}.block>header{margin-bottom:1rem}.block>header h2{align-items:center;gap:.625rem;display:flex}.block>header h2:before{content:"";background:var(--go);border-radius:1px;width:3px;height:1rem}.block>header p{color:var(--ink-soft);max-width:62ch;margin-top:.25rem;font-size:.875rem}.setting{gap:.75rem var(--gap);border-top:1px solid var(--line);grid-template-columns:minmax(12rem,18rem) minmax(0,1fr);align-items:start;padding:.875rem 0;display:grid}.setting:last-child{border-bottom:1px solid var(--line)}.setting>.setting-label,.setting>label{padding-top:.35rem;font-weight:500}.setting-note{color:var(--ink-soft);max-width:60ch;margin-top:.375rem;font-size:.8125rem}.setting-field{min-width:0}input[type=number],input[type=password],input[type=text],input[type=time],input[type=url],select,textarea{font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:28rem;padding:.4rem .6rem}input[type=number]{font-size:.9375rem}input[type=number],input[type=time]{max-width:8rem;font-family:var(--mono)}textarea{resize:vertical;max-width:48rem;min-height:5rem;line-height:1.5}textarea.code{font-family:var(--mono);font-size:.8125rem}input:disabled,select:disabled,textarea:disabled{background:var(--panel-deep);color:var(--ink-soft)}.check{align-items:center;gap:.5rem;padding-top:.35rem;display:flex}.check input{width:1rem;height:1rem;accent-color:var(--go)}.chips{flex-wrap:wrap;gap:.375rem;display:flex}.chip{border:1px solid var(--line);background:var(--field);border-radius:var(--radius);cursor:pointer;align-items:center;gap:.375rem;padding:.25rem .5rem;font-size:.8125rem;display:inline-flex}.chip input{accent-color:var(--go)}.chip:has(input:checked){border-color:var(--go);background:var(--go-wash)}button{font:inherit;border-radius:var(--radius);cursor:pointer;background:var(--ink);color:#fff;border:1px solid #0000;padding:.45rem .9rem;font-weight:500}button:hover:not(:disabled){background:#1d302c}button:disabled{opacity:.55;cursor:not-allowed}button.quiet{color:var(--ink);border-color:var(--line);background:0 0}button.quiet:hover:not(:disabled){background:var(--panel-deep)}button.danger{color:var(--stop);border-color:var(--stop);background:0 0}button.danger:hover:not(:disabled){background:var(--stop-wash)}button.link{color:var(--go);background:0 0;border:none;padding:0;text-decoration:underline}.actions{align-items:center;gap:.75rem;margin-top:1.75rem;display:flex}.actions .spacer{flex:1}.notice{border-left:3px solid var(--limit);background:var(--limit-wash);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.875rem}.notice.bad{border-left-color:var(--stop);background:var(--stop-wash)}.notice.good{border-left-color:var(--go);background:var(--go-wash)}.notice ul{margin:.5rem 0 0;padding-left:1.125rem}.field-error{color:var(--stop);margin-top:.375rem;font-size:.8125rem}.empty{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-soft);background:#fff6;padding:2rem}.empty p+p{margin-top:.75rem}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--ink-soft);padding:0 .75rem .5rem 0;font-size:.8125rem;font-weight:500}td,th{border-bottom:1px solid var(--line)}td{vertical-align:top;padding:.7rem .75rem .7rem 0}td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.875rem}tr:last-child td{border-bottom:none}.pill,td .sub{color:var(--ink-soft);font-size:.8125rem}.pill{background:var(--panel-deep);white-space:nowrap;border-radius:999px;align-items:center;gap:.375rem;padding:.1rem .5rem .1rem .375rem;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill.go{background:var(--go-wash);color:var(--go)}.pill.limit{background:var(--limit-wash);color:#8a5a12}.pill.stop{background:var(--stop-wash);color:var(--stop)}.rhythm{background:var(--ink);color:#e6ece9;border-radius:6px;margin-bottom:2.5rem;padding:1.5rem 1.75rem}.rhythm-head{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:1.25rem;display:flex}.rhythm-head h2{color:#fff}.rhythm-head .who{color:#8ea39c;font-size:.875rem}.slots{gap:6px;margin-bottom:.75rem;display:flex}.slot{background:#ffffff1a;border-radius:3px;width:2.25rem;height:1.75rem}.slot.full{background:var(--go)}.slot.debt{background:var(--stop);opacity:.8}.rhythm-readout{flex-wrap:wrap;gap:2rem;display:flex}.readout{flex-direction:column;gap:.125rem;display:flex}.readout b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:#fff;font-size:1.375rem;font-weight:500;line-height:1.2}.readout span{color:#8ea39c;font-size:.8125rem}.readout.warn b{color:#eab765}.day-bar{background:#ffffff1f;border-radius:2px;height:4px;margin-top:.25rem;overflow:hidden}.day-bar div{background:var(--limit);height:100%}.list-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.tiles{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);gap:1px;display:grid;overflow:hidden}.tile{background:var(--field);grid-template-columns:1fr auto;align-items:center;gap:.5rem 1rem;padding:1rem 1.25rem;display:grid}.tile:hover{background:#fbfcfb}.tile h3 a{color:var(--ink);text-decoration:none}.tile h3 a:hover{text-decoration:underline}.tile .meta{color:var(--ink-soft);margin-top:.125rem;font-size:.8125rem}.numbers{background:var(--field);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1px;display:grid;overflow:hidden}.number{box-shadow:0 0 0 1px var(--line);padding:1rem 1.25rem}.number b{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.75rem;font-weight:500;display:block}.number span{color:var(--ink-soft);font-size:.8125rem}.number.alarm b{color:var(--stop)}.split{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;display:flex}.seg{border:1px solid var(--line);border-radius:var(--radius);background:var(--field);display:inline-flex;overflow:hidden}.seg button{color:var(--ink-soft);background:0 0;border:none;border-radius:0;padding:.4rem .85rem;font-size:.8125rem}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--ink);color:#fff}.seg button:hover:not(.on){background:var(--panel-deep);color:var(--ink)}.transcript{flex-direction:column;gap:.75rem;display:flex}.bubble{background:var(--field);border:1px solid var(--line);border-radius:6px;max-width:40rem;padding:.7rem .9rem}.bubble.out{background:var(--go-wash);border-color:#c2dbd0;align-self:flex-end}.bubble.failed{border-color:var(--stop);background:var(--stop-wash)}.bubble p{white-space:pre-wrap;overflow-wrap:anywhere}.bubble .stamp{color:var(--ink-soft);font-size:.75rem;font-family:var(--mono);margin-top:.375rem;display:block}.rows{flex-direction:column}.rows,.rows .line{gap:.5rem;display:flex}.rows .line{flex-wrap:wrap;align-items:center}.rows .line input[type=text]{flex:10rem;min-width:0}.rows .line button{padding:.4rem .7rem;font-size:.8125rem}.gate{background:var(--ink);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.gate-card{background:var(--panel);border-radius:6px;width:min(24rem,100%);padding:2rem}.gate-card h1{font-size:1.25rem}.gate-card>p{color:var(--ink-soft);margin:.375rem 0 1.5rem;font-size:.875rem}.gate-card label{margin-bottom:.25rem;font-weight:500;display:block}.gate-card .row{margin-bottom:1rem}.gate-card input{max-width:none}.gate-card button{width:100%}@media (width<=900px){.shell{grid-template-columns:1fr}.rail{align-items:center;gap:1rem;height:auto;padding:.75rem 1rem;position:static;overflow-x:auto}.rail,.rail-group{flex-direction:row}.rail-group{gap:.25rem}.rail-group>h3{display:none}.rail a{white-space:nowrap;border-radius:var(--radius);border-bottom:2px solid #0000;border-left:none}.rail a.router-link-active{border-left:none;border-bottom-color:var(--go)}.rail-foot{margin-top:0}.content{padding:1.5rem 1rem 3rem}.setting{grid-template-columns:1fr}.setting>.setting-label,.setting>label{padding-top:0}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}
