:root{--bg:#fff;--fg:#14181d;--muted:#5b6672;--line:#dfe4ea;--accent:#0b5fff;--danger:#b3261e;--stat:#b3261e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14181d;--fg:#e8ecf1;--muted:#9aa5b1;--line:#2a3038;--accent:#6b9bff;--danger:#ff6b61;--stat:#ff6b61}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.auth{max-width:22rem;margin:12vh auto;padding:0 1rem}.auth form{gap:.35rem;display:grid}.auth label{margin-top:.6rem;font-weight:600}input{border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;border-radius:6px;padding:.55rem .6rem}button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:6px;margin-top:1rem;padding:.6rem .9rem;font-weight:600}button:disabled{opacity:.6;cursor:default}.app{max-width:60rem;margin:0 auto;padding:1rem}.app header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.75rem;display:flex}.app header button{color:var(--accent);background:0 0;margin:0;padding:.35rem .5rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.5rem .6rem}.stat{color:var(--stat);text-transform:uppercase;font-weight:700}.muted{color:var(--muted)}.error{color:var(--danger)}.hint{color:var(--muted);margin-top:1.5rem;font-size:.85rem}.board{max-width:none;padding:1rem 1.25rem 3rem}.board-top{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;padding-bottom:.75rem;display:flex}.board-top .date{color:var(--muted);align-items:center;gap:.4rem;font-size:.9rem;display:flex}.board-top .freshness{margin-left:auto;font-size:.85rem}.warn{background:color-mix(in srgb, var(--danger) 12%, transparent);border-left:3px solid var(--danger);margin:.75rem 0;padding:.6rem .85rem}.unassigned{border:1px solid var(--line);border-radius:8px;margin:1rem 0;padding:.85rem 1rem}.unassigned.has-stat{border-color:var(--stat);background:color-mix(in srgb, var(--stat) 8%, transparent);border-width:2px}.unassigned h2{align-items:center;gap:.6rem;margin:0 0 .6rem;font-size:1rem;display:flex}.unassigned .count{color:var(--muted);font-weight:400}.stat-alarm{color:var(--stat);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.queue{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.queue li{border:1px solid var(--line);border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.9rem;display:flex}.queue li.stat{border-color:var(--stat)}.badge{background:var(--stat);color:#fff;letter-spacing:.04em;border-radius:3px;padding:.05rem .35rem;font-size:.7rem;font-weight:700}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 1rem;display:flex}.filters select{font:inherit;padding:.3rem .4rem;font-size:.9rem}.hidden-notice{color:var(--muted);border-left:2px solid var(--accent);padding-left:.5rem;font-size:.85rem}.columns{grid-auto-columns:minmax(17rem,1fr);grid-auto-flow:column;align-items:start;gap:.85rem;padding-bottom:1rem;display:grid;overflow-x:auto}.route{border:1px solid var(--line);border-top-width:4px;border-radius:8px;padding:.75rem .85rem}.route.on_time{border-top-color:var(--line)}.route.at_risk{border-top-color:#b26a00}.route.late,.route.exception{border-top-color:var(--danger)}.route>header{flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}.pill{text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:3px;margin-left:auto;padding:.1rem .4rem;font-size:.72rem}.pill.at_risk{color:#b26a00}.pill.late,.pill.exception{color:var(--danger)}.pill.on_time{color:var(--muted)}.summary{margin:.5rem 0 .15rem;font-size:.9rem}.progress{margin:0 0 .5rem;font-size:.8rem}.stops{margin:0;padding:0;font-size:.88rem;list-style:none}.stops li{border-top:1px solid var(--line);align-items:center;gap:.4rem;padding:.3rem 0;display:flex}.stops li .seq{border:1px solid var(--line);width:1.2rem;height:1.2rem;color:var(--muted);border-radius:3px;flex:none;place-items:center;font-size:.7rem;display:grid}.stops li .site{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stops li .when{flex:none;margin-left:auto;font-size:.8rem}.stops li.completed,.stops li.skipped{opacity:.55}.stops li.completed .site{text-decoration:line-through}.stops li.pointer{outline:2px solid var(--accent);outline-offset:-2px;border-radius:3px}.stops li.exception{color:var(--danger);font-weight:600}.stops li.movable{cursor:grab}.stops li.dragging{opacity:.4}.stops li.fixed{cursor:default}.drop-end{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:6px;margin-top:.5rem;padding:.5rem;font-size:.8rem}.move-error{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.tabs{border-bottom:1px solid var(--line);background:var(--bg);z-index:6;align-items:center;gap:.25rem;padding:0 1.25rem;display:flex;position:sticky;top:0}.tab{color:var(--muted);border-bottom:2px solid #0000;align-items:center;gap:.4rem;padding:.75rem .9rem;font-size:.95rem;text-decoration:none;display:flex}.tab.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.tab-badge{background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .35rem;font-size:.75rem;font-weight:700;display:grid}.tab-signout{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:.5rem}.page{max-width:52rem;margin:0 auto;padding:1.25rem}.page-head{flex-wrap:wrap;align-items:baseline;gap:1rem;display:flex}.page h1{margin:.5rem 0 1rem;font-size:1.5rem}.page h2{margin:1.75rem 0 .5rem;font-size:1.1rem}.page h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1.25rem 0 .4rem;font-size:.95rem}.subtabs{gap:.4rem;margin:.5rem 0 1rem;display:flex}.subtab{font:inherit;text-transform:capitalize;border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer;border-radius:999px;padding:.4rem .8rem}.subtab.active{color:var(--fg);border-color:var(--accent);font-weight:600}.form-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;margin:.5rem 0;display:grid}.form-grid label,.notes-field{color:var(--muted);gap:.25rem;font-size:.9rem;display:grid}.form-grid input,.form-grid select,.notes-field textarea,.specimen-row input,.specimen-row select,.resolve textarea{font:inherit;border:1px solid var(--line);background:var(--bg);min-height:42px;color:var(--fg);border-radius:7px;padding:.5rem;font-size:1rem}.notes-field{margin:1rem 0 .25rem}.phi-warning{border-left:3px solid var(--danger);margin:0 0 1rem;padding:.5rem .75rem;font-size:.9rem}.specimen-row{grid-template-columns:2fr 1fr .7fr .7fr;gap:.5rem;margin-bottom:.5rem;display:grid}.setup-list{margin:.5rem 0;padding:0;list-style:none}.setup-list li{border-top:1px solid var(--line);padding:.5rem 0}.warn-inline{color:var(--danger);border:1px solid var(--danger);border-radius:3px;margin-left:.5rem;padding:0 .3rem;font-size:.8rem}.credentials{border:1px solid var(--line);border-radius:8px;margin:.75rem 0;padding:.6rem .85rem}.credentials legend{color:var(--muted);padding:0 .3rem;font-size:.85rem}.checkbox{align-items:center;gap:.5rem;min-height:36px;display:flex}.exception-list{margin:0;padding:0;list-style:none}.exception{border:1px solid var(--line);border-left:4px solid var(--danger);border-radius:8px;margin-bottom:.75rem;padding:.85rem 1rem}.exception.done{border-left-color:var(--line);opacity:.75}.exception-head{flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}.waiting{color:var(--danger);margin-left:auto;font-size:.85rem;font-weight:700}.exception .note{background:color-mix(in srgb, var(--muted) 10%, transparent);border-radius:6px;margin:.5rem 0;padding:.5rem .7rem}.resolve{gap:.5rem;margin-top:.75rem;display:grid}.resolve label{color:var(--muted);gap:.25rem;font-size:.9rem;display:grid}.resolution{margin:.5rem 0 0}.toggle{color:var(--muted);align-items:center;gap:.4rem;margin-left:auto;font-size:.9rem;display:flex}.report-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.report-actions{flex-wrap:wrap;align-items:center;gap:.4rem;margin-left:auto;display:flex}.report-actions .button{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:7px;padding:.35rem .7rem;font-size:.9rem;text-decoration:none}.verdict{color:var(--muted);font-size:.85rem}.verdict.failed{color:#fff;background:var(--danger);border-radius:4px;padding:.15rem .45rem;font-weight:700}.button.inline{border:1px solid var(--accent);min-height:0;color:var(--accent);cursor:pointer;background:0 0;border-radius:5px;margin-left:.4rem;padding:.15rem .5rem;font-size:.8rem}.alert-list{margin:1rem 0;padding:0;list-style:none}.alert{border:1px solid var(--line);border-radius:8px;align-items:flex-start;gap:.75rem;margin-bottom:.6rem;padding:.75rem .9rem;display:flex}.alert.now{border-left:4px solid var(--danger)}.alert.today{border-left:4px solid #b26a00}.alert.soon{border-left:4px solid var(--line)}.urgency{letter-spacing:.05em;white-space:nowrap;border-radius:3px;padding:.15rem .4rem;font-size:.7rem;font-weight:700}.urgency.now{background:var(--danger);color:#fff}.urgency.today{color:#b26a00;border:1px solid #b26a00}.urgency.soon{color:var(--muted);border:1px solid var(--line)}.alert p{margin:.2rem 0 0}
