@import "/theme.css";
.dispatch-shell{display:grid;grid-template-columns:210px minmax(0,1fr);border:1px solid var(--border);min-height:650px;margin-top:20px;background:var(--bg)}.dispatch-sidebar{padding:18px 12px;background:var(--surface);border-right:1px solid var(--border)}.dispatch-sidebar strong{font-size:1.3rem}.dispatch-sidebar nav{display:grid;gap:4px;margin:20px 0}.dispatch-sidebar button{padding:10px 12px;text-align:left;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;cursor:pointer}.dispatch-sidebar button[aria-current=page]{background:var(--accent);color:var(--accent-contrast)}.dispatch-sidebar button:hover{outline:1px solid var(--border)}.dispatch-content{padding:22px;min-width:0}.dispatch-content>h1{font-size:2rem}.dispatch-content>.row{margin:12px 0 20px}.schedule-scroll{overflow:auto;max-height:650px;border:1px solid var(--border)}.schedule-grid{display:grid;min-width:100%}.schedule-heading{height:40px;padding:10px;margin:0!important;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:2;font-size:.9rem!important;white-space:nowrap}.schedule-column{border-left:1px solid var(--border)}.schedule-times,.schedule-day{position:relative;height:1152px}.schedule-times span{position:absolute;font:11px var(--font-mono);padding-left:5px;color:var(--muted)}.schedule-day{background:repeating-linear-gradient(var(--surface) 0 47px,var(--border) 47px 48px)}.schedule-job{position:absolute;left:4px;right:4px;padding:4px 7px;background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--text);border:1px solid var(--accent);border-left-width:4px;text-align:left;cursor:pointer;overflow:auto;font:12px var(--font-ui)}.schedule-job span{display:block}.schedule-job.status-done{border-color:var(--success);background:var(--surface)}.schedule-job.status-cancelled{border-color:var(--muted);opacity:.7}.report-bar{margin:14px 0}.dispatch-content .stat .val{font-size:1.8rem}.dispatch-content .tablewrap{max-width:100%}@media(max-width:820px){.dispatch-shell{grid-template-columns:1fr}.dispatch-sidebar{border-right:0;border-bottom:1px solid var(--border)}.dispatch-sidebar nav{display:flex;flex-wrap:wrap;margin:10px 0}.dispatch-sidebar nav button{padding:8px}.dispatch-content{padding:14px}}
*{box-sizing:border-box}html{color-scheme:light dark}
body{margin:0;background:var(--bg);color:var(--text);font:calc(15px*var(--density)) /1.5 var(--font-ui)}
h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0 0 .5em}h1{font-size:clamp(1.8rem,5vw,3.2rem)}h2{font-size:1.5rem}h3{font-size:1.05rem}
a{color:var(--accent)}p{margin:.4em 0}code,.mono{font-family:var(--font-mono)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-contrast);padding:8px;z-index:100}.skip:focus{left:0}
.btn{font:inherit;padding:calc(8px*var(--density)) 14px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);cursor:pointer;min-height:36px;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--text)}.btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.ghost{border-color:transparent;background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;width:100%;min-height:36px}
.field{margin:0 0 14px}.field label{display:block;font-weight:600;margin-bottom:4px;font-size:.9em}.hint{color:var(--muted);font-size:.85em}.err{color:var(--danger);font-size:.88em}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1}.stack>*+*{margin-top:12px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px}.card>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}.card>header h3{margin:0}
.stat{margin-bottom:0}.stat .lbl{color:var(--muted);font-size:.8em;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}.stat .val{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.stat .sub{color:var(--muted);font-size:.85em}
.chip{display:inline-flex;gap:4px;align-items:center;font-size:.8em;padding:2px 8px;border:1px solid var(--border);border-radius:99px;white-space:nowrap}
.chip.ok{color:var(--success);border-color:var(--success)}.chip.warn{color:var(--warning);border-color:var(--warning)}.chip.bad{color:var(--danger);border-color:var(--danger)}.chip.info{color:var(--accent);border-color:var(--accent)}
.empty{text-align:center;padding:36px 16px;color:var(--muted)}.empty h3{color:var(--text)}
.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:.78em;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-family:var(--font-mono)}tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.num{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
@media(max-width:640px){thead{position:absolute;left:-9999px}tr{display:block;border:1px solid var(--border);margin-bottom:8px;border-radius:var(--radius)}td{display:flex;justify-content:space-between;gap:12px;border:0;min-width:0;overflow-wrap:anywhere}td::before{content:attr(data-label);color:var(--muted);font-family:var(--font-mono);font-size:.8em;flex-shrink:0}}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:60;padding:12px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;max-width:560px;width:100%;max-height:90vh;overflow:auto}.modal>header{display:flex;justify-content:space-between;align-items:center}
.toasts{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:80}.toast{background:var(--text);color:var(--bg);padding:10px 14px;border-radius:var(--radius);display:flex;gap:10px;align-items:center}.toast .btn{color:var(--bg)}
.mk-nav{display:flex;gap:14px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.mk-nav .logo{font-weight:800;text-decoration:none;color:var(--text);margin-right:auto}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}.hero{padding:56px 0 36px}.hero p{font-size:1.15rem;color:var(--muted);max-width:60ch}
.lab{font-family:var(--font-mono);color:var(--muted);font-size:.8em;letter-spacing:.08em;text-transform:uppercase}
.price.pop{border-color:var(--accent);border-width:2px}.price .amt{font-size:2rem;font-weight:700}.price ul{padding-left:18px;color:var(--muted)}
footer.site{border-top:1px solid var(--border);margin-top:56px;padding:24px 0;color:var(--muted)}
.credit{border:1px solid var(--border);padding:10px 12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:.85em}
.authbox{max-width:420px;margin:48px auto}
.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.side{border-right:1px solid var(--border);background:var(--surface);padding:14px;position:sticky;top:0;height:100vh;overflow:auto}
.side nav a{display:block;padding:7px 10px;border-radius:var(--radius);color:var(--text);text-decoration:none}.side nav a[aria-current=page]{background:var(--accent);color:var(--accent-contrast)}.side nav a:hover:not([aria-current]){background:color-mix(in srgb,var(--accent) 10%,transparent)}
.side .sec{margin:14px 0 4px;font-family:var(--font-mono);font-size:.72em;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.top{display:flex;gap:10px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20;flex-wrap:wrap}
.ribbon{background:var(--warning);color:var(--bg);padding:6px 20px;font-size:.85em;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ribbon .btn{min-height:26px;padding:2px 8px;color:var(--bg);border-color:var(--bg);background:transparent}
.main{padding:20px;max-width:1200px}
.badge{position:fixed;right:12px;bottom:12px;z-index:50}.badge .btn{font-family:var(--font-mono);font-size:.8em}
.menu-btn{display:none}
@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.side{position:fixed;left:0;top:0;bottom:0;width:250px;z-index:40;transform:translateX(-100%);transition:transform var(--motion);visibility:hidden}.side.open{transform:none;visibility:visible}.menu-btn{display:inline-flex}.main{padding:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.pal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:90;display:flex;justify-content:center;padding-top:12vh}.pal>div{background:var(--surface);border:1px solid var(--border);width:min(560px,94vw);max-height:60vh;overflow:auto;align-self:flex-start;border-radius:var(--radius)}.pal li{list-style:none}.pal ul{margin:0;padding:6px}.pal button{width:100%;text-align:left;background:none;border:0;color:var(--text);padding:8px 10px;font:inherit;cursor:pointer;border-radius:var(--radius)}.pal button[aria-selected=true]{background:var(--accent);color:var(--accent-contrast)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:14px;flex-wrap:wrap}.tabs a{padding:8px 12px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}.tabs a[aria-current=page]{color:var(--text);border-color:var(--accent)}
.bar{height:8px;background:var(--border);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}
.mail{border-bottom:1px solid var(--border);padding:8px 0}.pre{white-space:pre-wrap;font-family:var(--font-mono);font-size:.85em;overflow-wrap:anywhere}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}.col{background:color-mix(in srgb,var(--border) 25%,var(--surface));border:1px solid var(--border);border-radius:var(--radius);padding:8px;min-height:120px}.col h3{font-family:var(--font-mono);font-size:.8em;text-transform:uppercase;letter-spacing:.06em}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px;margin-bottom:8px}
.main,.stack,.card{min-width:0}.board{max-width:100%}.stack>.board{overflow-x:auto}
.stack{grid-template-columns:minmax(0,1fr)}.board{width:100%;box-sizing:border-box}
html,body{overflow-x:clip}.main{position:relative}
.dboard{display:grid;grid-template-columns:48px repeat(var(--tc),minmax(150px,1fr));overflow-x:auto;border:1px solid var(--border);max-width:100%;box-sizing:border-box}
.dtimes{position:relative;font-size:11px;color:var(--muted)}.dtimes div{position:absolute;left:4px}
.dcol{border-left:1px solid var(--border);min-width:0}.dcol h3{margin:0;padding:4px 6px;height:20px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dgrid{position:relative;background:repeating-linear-gradient(var(--surface) 0 55px,var(--border) 55px 56px)}
.djob{position:absolute;left:3px;right:3px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));border:1px solid var(--accent);border-left-width:4px;padding:2px 5px;font-size:12px;overflow:hidden;color:var(--text);text-decoration:none;box-sizing:border-box;display:block}
.djob.s-done{background:var(--surface);border-color:var(--success)}.djob .hint{display:block}
.btn.big,.big{min-height:52px;font-size:17px;width:100%}.bigrow{min-height:48px;font-size:17px}.bigrow input{width:28px;height:28px;min-height:0}
.bigcard{display:block;border:1px solid var(--border);background:var(--surface);padding:14px;margin-bottom:10px;min-height:48px;color:var(--text);text-decoration:none}
.steps{list-style:none;padding:0}.steps li{padding:10px 0;border-bottom:1px solid var(--border);font-size:18px}.steps li.on{font-weight:700}
