:root{--bg:#f3f3f0;--surface:#fff;--ink:#111;--muted:#5c5c5c;--line:#d8d8d4;--mia:#ffd400;--running:#1f2937;--picked:#0e9f6e;--area:#333;--radius:14px;font-size:18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select{font:inherit;color:inherit}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:10;background:var(--surface);border-bottom:5px solid var(--area);padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0px));align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar .area-chip{background:var(--area);color:#fff;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:900}.topbar .role{flex:1;font-size:1rem;font-weight:800;line-height:1.15}.devbar{align-items:center;gap:6px;margin-left:auto;display:flex}@media (max-width:560px){.topbar{flex-wrap:wrap}.devbar{width:100%}.devbar select{flex:1;max-width:none}}.devbar select{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:44vw;min-height:44px;padding:0 6px;font-size:.85rem}.devbar .dev-label{letter-spacing:.1em;color:var(--muted);font-size:.65rem;font-weight:900}.main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:16px 16px 64px}.h1{letter-spacing:-.01em;margin:0 0 12px;font-size:2rem;font-weight:900;line-height:1.05}.h2{margin:20px 0 8px;font-size:1.25rem;font-weight:900}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.8rem;font-weight:900}.eyebrow.on-dark{color:#ddd}.meta{color:var(--muted);font-size:.85rem;font-weight:600}.num{letter-spacing:-.02em;font-size:2.8rem;font-weight:900;line-height:1}.num-md{font-size:1.6rem;font-weight:900;line-height:1}.empty{text-align:center;color:var(--muted);padding:32px 16px;font-size:1.1rem;font-weight:700}.btn{border-radius:var(--radius);border:3px solid var(--ink);min-height:64px;color:var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;background:#fff;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 18px;font-size:1.1rem;font-weight:900;display:flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.btn-area{background:var(--area);border-color:var(--area);color:#fff}.btn-dark{background:var(--ink);color:#fff}.btn-mia{background:var(--mia);border-color:var(--ink);color:var(--ink)}.btn-picked{background:var(--picked);border-color:var(--picked);color:#fff}.btn-ghost{border-color:var(--line);font-weight:800}.btn-sm{border-width:2px;border-radius:10px;width:auto;min-height:48px;padding:6px 14px;font-size:.9rem}.btn-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.btn-row>.btn{width:100%}.btn-stack{gap:10px;margin-top:12px;display:grid}.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:16px}.card-next{border-color:var(--ink);border-width:4px}.card-mia{border-color:var(--ink);box-shadow:inset 0 0 0 3px var(--mia);background:#fff6bf}.card-dim{opacity:.75}.card-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.card-head .grow{flex:1}.qpos{background:var(--ink);color:#fff;border-radius:10px;flex:none;place-items:center;width:44px;height:44px;font-size:1.2rem;font-weight:900;display:grid}.area-tag{color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:8px;padding:5px 12px;font-size:.9rem;font-weight:900;display:inline-block}.arrow-area{align-items:center;gap:8px;font-size:1.3rem;font-weight:900;display:inline-flex}.pill{letter-spacing:.08em;white-space:nowrap;border:2px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.8rem;font-weight:900;display:inline-flex}.pill-QUEUED{color:#333;background:#e6e6e2}.pill-RUNNING{color:var(--running);border-color:var(--running);background:0 0;border-style:dashed}.pill-HERE{color:var(--picked);border-color:var(--picked);background:0 0}.pill-MIA{background:var(--mia);color:var(--ink);border-color:var(--ink)}.pill-PICKED_UP{background:var(--picked);color:#fff}.mia-banner{background:var(--mia);color:var(--ink);letter-spacing:.04em;border:3px solid var(--ink);text-transform:uppercase;border-radius:10px;align-items:center;gap:10px;margin:10px 0;padding:12px 14px;font-size:1rem;font-weight:900;display:flex}.student-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:12px 0;font-size:1.15rem;font-weight:700;display:flex}.student-row:first-child{border-top:0}.student-row .name{flex:1;min-width:0}.student-row .actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.student-row.is-mia{background:var(--mia);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:0 -16px;padding:12px 16px}.student-row.is-done{opacity:.45;text-decoration:line-through}.search{border-radius:var(--radius);border:3px solid var(--ink);background:#fff;outline:none;width:100%;min-height:68px;padding:0 16px;font-size:1.5rem;font-weight:800}.search:focus{box-shadow:0 0 0 4px #0000001f}.results{gap:8px;margin-top:10px;display:grid}.result{border:2px solid var(--line);border-radius:var(--radius);text-align:left;cursor:pointer;background:#fff;align-items:center;gap:14px;width:100%;min-height:68px;padding:10px 16px;display:flex}.result .names{flex:1;font-weight:700;line-height:1.2}.check{border:2px solid var(--line);border-radius:var(--radius);text-align:left;cursor:pointer;background:#fff;align-items:center;gap:14px;width:100%;min-height:68px;margin-bottom:8px;padding:8px 14px;font-size:1.15rem;font-weight:800;display:flex}.check .label{flex:1;min-width:0}.check.on{border-color:var(--ink);background:var(--ink);color:#fff}.check.on .meta{color:#cfcfcf}.check:disabled{opacity:.5;cursor:not-allowed}.box{border:3px solid;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;font-size:1.1rem;font-weight:900;display:grid}.check.radio .box{border-radius:50%}.plate{letter-spacing:.1em;background:var(--ink);color:#fff;border-radius:6px;padding:4px 10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.25rem;font-weight:800;display:inline-block}.plate-lg{padding:8px 16px;font-size:1.9rem}.check.on .plate{color:var(--ink);background:#fff}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.field input,.field select{border:2px solid var(--line);background:#fff;border-radius:10px;width:100%;min-height:54px;padding:0 12px}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}@media (max-width:480px){.grid3{grid-template-columns:1fr 1fr}}.toast{background:var(--ink);color:#fff;z-index:50;text-align:center;border-radius:12px;align-items:center;gap:12px;max-width:92vw;padding:14px 20px;font-weight:900;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0000004d}.toast-action{color:var(--ink);background:#fff;border-color:#fff;flex:none}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat{border-radius:var(--radius);color:#fff;cursor:pointer;text-align:left;background:var(--area);border:0;flex-direction:column;justify-content:space-between;min-height:110px;padding:16px;display:flex}.stat .big{font-size:2.6rem;font-weight:900;line-height:1}.stat .name{text-transform:uppercase;letter-spacing:.06em;font-weight:900}.stat .sub{opacity:.9;font-size:.85rem;font-weight:700}.stat-neutral{color:var(--ink);border:2px solid var(--line);cursor:default;background:#fff}.stat-mia{background:var(--mia);color:var(--ink);border:3px solid var(--ink)}.tabs{gap:6px;margin-bottom:14px;display:flex}.tab{border:2px solid var(--line);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:#fff;border-radius:10px;flex:1;min-height:52px;font-size:.85rem;font-weight:900}.tab.on{background:var(--ink);border-color:var(--ink);color:#fff}.row{align-items:center;gap:10px;display:flex}.row .grow{flex:1}.divider{background:var(--line);height:1px;margin:12px 0}.batch-row{border-top:1px solid var(--line);align-items:center;gap:14px;padding:12px 0;font-size:1.2rem;font-weight:800;display:flex}.batch-row:first-child{border-top:0}.batch-row .n{min-width:4.2ch;font-weight:900}.blocked-tag{letter-spacing:.1em;background:var(--ink);color:var(--mia);text-transform:uppercase;border-radius:6px;padding:4px 8px;font-size:.75rem;font-weight:900}.setup-list{gap:8px;display:grid}.setup-row{border:2px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:1fr;gap:8px;padding:12px;display:grid}.setup-row input,.setup-row select{border:2px solid var(--line);border-radius:8px;width:100%;min-height:48px;padding:0 10px}.setup-row input.swatch{border:2px solid var(--line);background:0 0;border-radius:8px;flex:none;width:52px;min-width:52px;height:48px;padding:2px}.setup-row .row>input.grow{flex:1;width:auto;min-width:0}.loading{text-align:center;color:var(--muted);padding:40px;font-weight:800}.roster-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.roster-row:first-child{border-top:0}.roster-main{flex:1;min-width:0}.roster-name{font-size:1.05rem;font-weight:800}.roster-side{flex:none;align-items:center;gap:8px;display:flex}.roster-group{border:2px solid var(--line);background:#fff;border-radius:10px;max-width:40vw;min-height:48px;padding:0 8px;font-weight:700}.notice{border-radius:var(--radius);background:var(--ink);color:#fff;align-items:center;gap:12px;margin-top:10px;padding:12px 14px;font-weight:800;line-height:1.25;display:flex}.notice .grow{flex:1}.notice-undo{color:var(--ink);background:#fff;border-color:#fff;flex:none}.hint{text-align:center;margin:0}.line-toggle{border:2px solid var(--line);min-height:48px;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:8px 16px;font-size:.95rem;font-weight:800}.line-item{margin-bottom:0}.line-item .names{font-weight:700;line-height:1.2}.devbar .reset-btn{margin-left:10px}.confirm-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.confirm-row .meta{flex-basis:100%}.student-row{flex-wrap:wrap}.student-row .name{overflow-wrap:anywhere;flex:9rem}.student-row .actions{margin-left:auto}.banner-link{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.main{padding-bottom:120px}.driver-note{background:var(--mia);color:var(--ink);border:2px solid var(--ink);border-radius:8px;padding:6px 10px;font-weight:800;display:inline-block}
