:root{--blue:#0a4ea3;--blue-dark:#07367a;--blue-ink:#0a2540;--blue-soft:#e8f0fa;--blue-line:#bcd0ea;--white:#fff;--paper:#f4f7fb;--ink:#142033;--muted:#5a6b82;--danger:#a11b1b;--radius:4px;--font-display:"IBM Plex Sans Condensed", "Arial Narrow", sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-body);background:var(--paper);margin:0}button,input{font:inherit}.page{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--blue);height:52px;color:var(--white);border-bottom:3px solid var(--blue-dark);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.topbar-desk{z-index:20;position:sticky;top:0}.brand{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:1.15rem;font-weight:600}.topbar-actions{gap:8px;display:flex}.topbar-reset{color:#fff;cursor:pointer;border-radius:var(--radius);background:0 0;border:1px solid #ffffff59;padding:6px 12px;font-size:.85rem;font-weight:600}.topbar-reset:hover{background:#ffffff1f}.login-shell{flex:1;place-items:center;padding:24px 16px;display:grid}.login-card{background:var(--white);border:2px solid var(--blue);gap:8px;width:min(100%,400px);padding:22px;display:grid}.login-card h1{font-family:var(--font-display);color:var(--blue-ink);margin:0 0 4px;font-size:1.6rem}.login-lead{color:var(--muted);margin:0 0 10px;font-size:.92rem;line-height:1.45}.login-card label{color:var(--blue-ink);margin-top:4px;font-size:.9rem;font-weight:600}.login-card input{border-radius:var(--radius);border:1px solid #9eb6d4;outline:none;width:100%;padding:12px 14px}.login-card input:focus{border-color:var(--blue);outline:2px solid #0a4ea32e}.login-card .btn{margin-top:10px}.call-alert-backdrop{background:#0a25409e}.call-alert{background:var(--white);border:3px solid var(--blue);text-align:center;justify-items:center;gap:8px;width:min(100%,460px);padding:28px 24px;animation:.25s call-pop;display:grid}.call-alert-kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--blue);font-size:.78rem;font-weight:700}.call-alert-table{font-family:var(--font-display);color:var(--white);background:var(--blue);margin-top:4px;padding:6px 16px;font-size:1.4rem;font-weight:700}.call-alert-name{font-family:var(--font-display);color:var(--blue-ink);margin:8px 0 0;font-size:clamp(1.8rem,5vw,2.4rem);line-height:1.15}.call-alert-meta{font-family:var(--font-mono);color:var(--muted);margin:0}.call-alert-hint{color:var(--blue-ink);margin:4px 0 12px;font-weight:600}@keyframes call-pop{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.topbar-meta{opacity:.92;font-size:.92rem}.topbar-meta strong{font-family:var(--font-mono)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono)}.btn{border-radius:var(--radius);cursor:pointer;border:2px solid #0000;padding:10px 14px;font-weight:600;transition:background .12s,border-color .12s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--blue);color:var(--white);border-color:var(--blue-dark)}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-ghost{background:var(--white);color:var(--blue-ink);border-color:var(--blue-line)}.btn-ghost:hover:not(:disabled){background:var(--blue-soft);border-color:var(--blue)}.btn-sm{padding:6px 10px;font-size:.85rem}.btn-lg{padding:14px 22px;font-size:1.05rem}.banner-error,.banner-ok{border-radius:var(--radius);margin:0;padding:10px 12px;font-size:.92rem;font-weight:600}.banner-error{color:var(--danger);background:#fff2f2;border:1px solid #e8b4b4}.banner-ok{background:var(--blue-soft);color:var(--blue-dark);border:1px solid var(--blue-line)}.form-error{color:var(--danger);margin:0;font-size:.92rem;font-weight:600}.desk-shell{gap:12px;width:min(1100px,100%);margin:0 auto;padding:16px 16px 40px;display:grid}.desk-toolbar{z-index:15;background:linear-gradient(180deg, var(--paper) 70%, transparent);gap:10px;padding:12px 0 8px;display:grid;position:sticky;top:52px}.search-wrap{position:relative}.search-input{border:2px solid var(--blue);border-radius:var(--radius);background:var(--white);outline:none;width:100%;padding:14px 42px 14px 14px;font-size:1.05rem}.search-input:focus{outline-offset:1px;outline:3px solid #0a4ea32e}.search-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.4rem;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.filter-row{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--blue-line);background:var(--white);color:var(--muted);cursor:pointer;border-radius:2px;align-items:center;gap:6px;padding:7px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.filter-chip span{font-family:var(--font-mono);background:var(--paper);color:var(--blue-ink);border-radius:2px;padding:1px 6px;font-size:.78rem}.filter-chip.active{background:var(--blue);border-color:var(--blue-dark);color:#fff}.filter-chip.active span{color:#fff;background:#fff3}.roster-panel{background:var(--white);border:1px solid var(--blue-line);overflow:hidden}.roster-panel-head{border-bottom:1px solid var(--blue-line);background:var(--blue-soft);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 14px;display:flex}.roster-panel-head h1{font-family:var(--font-display);color:var(--blue-ink);margin:0;font-size:1.2rem;font-weight:600}.roster-count{font-family:var(--font-mono);color:var(--muted);font-size:.85rem}.roster-table-wrap{max-height:calc(100vh - 230px);overflow:auto}.roster-table{border-collapse:collapse;width:100%;font-size:.95rem}.roster-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--blue-line);z-index:1;background:#fafcfe;padding:8px 12px;font-size:.75rem;font-weight:700;position:sticky;top:0}.roster-table td{vertical-align:middle;border-bottom:1px solid #e8eef6;padding:10px 12px}.roster-table tbody tr:hover{background:#f7fbff}.roster-table .col-stt{width:48px;font-family:var(--font-mono);color:var(--blue);font-weight:600}.roster-table .col-action{text-align:right;width:100px}.cell-name{color:var(--blue-ink);font-weight:600}.cell-sub{color:var(--muted);font-size:.78rem;font-family:var(--font-mono);margin-top:2px}.col-show-sm{display:none}.row-waiting{background:#f3f8ff}.row-interviewing{background:#eef5ff}.row-done{opacity:.62}.status-tag{font-family:var(--font-mono);white-space:nowrap;border-radius:2px;padding:3px 6px;font-size:.72rem;display:inline-block}.status-pending{color:#8a5a00;background:#fff4df}.status-waiting{background:var(--blue-soft);color:var(--blue-dark)}.status-interviewing{color:#1e3a8a;background:#dbeafe}.status-done{color:#6a778a;background:#eef1f5}.empty-waiting{color:var(--muted);text-align:center;margin:0;padding:28px 16px}.board-shell{gap:12px;width:min(860px,100%);margin:0 auto;padding:16px 16px 40px;display:grid}.now-panel{background:var(--white);border:1px solid var(--blue-line);border-top:5px solid #9eb6d4;align-content:start;gap:8px;min-height:220px;padding:22px 20px 20px;display:grid}.now-panel.has-person{border-top-color:var(--blue)}.now-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--blue);font-size:.78rem;font-weight:600}.now-name{font-family:var(--font-display);color:var(--blue-ink);margin:0;font-size:clamp(1.9rem,5vw,2.8rem);font-weight:600;line-height:1.1}.muted-name{color:var(--muted);font-weight:500}.now-meta{color:var(--muted);font-family:var(--font-mono);margin:0;font-size:.95rem}.now-actions{margin-top:12px}.next-strip{background:var(--white);border:1px solid var(--blue-line);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.next-strip-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px;font-size:.72rem;font-weight:700;display:block}.next-strip-info strong{color:var(--blue-ink);font-size:1rem}.next-strip-info .mono{color:var(--muted);font-size:.88rem;font-weight:500}.queue-panel{background:var(--white);border:1px solid var(--blue-line)}.queue-panel-head{background:var(--blue-soft);border-bottom:1px solid var(--blue-line);align-items:center;gap:10px;padding:12px 14px;display:flex}.queue-panel-head h2{font-family:var(--font-display);color:var(--blue-ink);margin:0;font-size:1.15rem;font-weight:600}.count-badge{font-family:var(--font-mono);background:var(--blue);color:#fff;border-radius:2px;place-items:center;min-width:26px;height:22px;padding:0 7px;font-size:.82rem;font-weight:600;display:inline-grid}.queue-list{margin:0;padding:0;list-style:none}.queue-list li{border-bottom:1px solid #e8eef6;align-items:center;gap:12px;padding:12px 14px;display:flex}.queue-list li:last-child{border-bottom:none}.queue-list li.is-next{box-shadow:inset 4px 0 0 var(--blue);background:#f3f8ff}.queue-pos{font-family:var(--font-mono);color:var(--blue);text-align:right;width:1.6rem;font-weight:700}.queue-body{flex:1;gap:2px;min-width:0;display:grid}.queue-name{color:var(--blue-ink);font-weight:600}.queue-sub{color:var(--muted);font-size:.8rem}.queue-flag{font-family:var(--font-mono);color:var(--blue-dark);background:var(--blue-soft);border:1px solid var(--blue-line);flex-shrink:0;padding:4px 8px;font-size:.75rem;font-weight:600}.modal-backdrop{z-index:50;background:#0a254073;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--white);border:2px solid var(--blue);width:min(100%,400px)}.modal h3{font-family:var(--font-display);color:var(--white);background:var(--blue);margin:0;padding:14px 18px;font-size:1.2rem;font-weight:600}.modal>p,.modal .form-error{color:var(--muted);margin:0;padding:16px 18px 0;line-height:1.5}.modal .form-error{color:var(--danger)}.modal-actions{justify-content:flex-end;gap:8px;padding:18px;display:flex}@media (width<=720px){.col-hide-sm,.col-hide-md{display:none}.col-show-sm{display:block}.roster-table .col-action{width:84px}.next-strip{flex-direction:column;align-items:stretch}.now-actions .btn,.next-strip .btn{width:100%}}@media (width<=520px){.col-hide-md{display:none}.filter-chip{flex:auto;justify-content:space-between}}
