
*{box-sizing:border-box}
:root{--bg:#0b0e11;--panel:#171b20;--panel2:#20262c;--line:#39414a;--text:#f5f7f9;--muted:#9da7b1;--blue:#3d94e8;--red:#92141a;--gold:#c49a20}
html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}
button,input,select{font:inherit}
.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 25%,#24282c 0,#0b0e11 55%)}
.login-card{width:min(94vw,420px);background:#15191d;border:1px solid #353d45;border-radius:18px;padding:22px;box-shadow:0 24px 80px #000a}
.login-logo{display:block;width:min(78vw,305px);height:auto;margin:0 auto 10px;filter:drop-shadow(0 8px 16px #0009)}
.login-card h1{text-align:center;margin:2px 0 4px;font-size:24px}.sub{text-align:center;color:var(--muted);margin:0 0 18px}
.login-card label{display:block;font-size:14px;font-weight:800;margin:12px 0 6px}
.login-card input{width:100%;background:#0d1013;color:#fff;border:1px solid #454e58;border-radius:9px;padding:13px;font-size:16px}
.primary{width:100%;margin-top:18px;border:0;border-radius:9px;padding:13px;background:#a31319;color:#fff;font-weight:900;font-size:16px}
.login-error{min-height:20px;text-align:center;color:#ff7676;margin-top:12px}
header{position:sticky;top:0;z-index:30;background:#0b0e11ee;backdrop-filter:blur(8px);border-bottom:1px solid #272d33;padding:10px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand{font-weight:900;letter-spacing:.03em}.status{font-size:11px;color:var(--muted)}
.logout{border:1px solid var(--line);background:var(--panel);color:#fff;border-radius:8px;padding:8px 11px}
main{width:min(1500px,100%);margin:auto;padding:10px max(10px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.hero{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.hero-card{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}
.hero-card.current{border-color:#2d7fd3;background:#14283b}
.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.big-name{font-size:clamp(18px,5.6vw,34px);font-weight:900;margin-top:5px;line-height:1.05;overflow-wrap:anywhere}
.rotation{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden}
.rotation-title{padding:9px 11px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.rotation-list{display:flex;gap:6px;overflow-x:auto;padding:8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.person{flex:0 0 auto;min-width:150px;padding:9px 10px;border:1px solid #303840;border-radius:8px;color:#c7cdd4;scroll-snap-align:center;font-size:12px}
.person.done{opacity:.28;text-decoration:line-through}.person.current{background:#17395b;border-color:var(--blue);color:#fff;font-weight:800}.person.deck{border-color:#76808b}
.shift-tabs{position:sticky;top:57px;z-index:20;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--bg);padding:4px 0 7px}
.shift-tab{padding:11px 4px;border:1px solid var(--line);background:var(--panel);color:#fff;border-radius:9px;font-weight:900}
.shift-tab.active[data-shift=black]{background:#050505}.shift-tab.active[data-shift=red]{background:var(--red)}.shift-tab.active[data-shift=gold]{background:var(--gold);color:#111}
.cards{display:grid;gap:8px}.station-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.station-card h2{font-size:15px;margin:0;padding:10px 12px;background:var(--panel2)}
.assignment-row{display:grid;grid-template-columns:minmax(78px,96px) 1fr;min-height:44px;border-top:1px solid #303840}
.role{padding:11px 9px;font-weight:700;color:#c9d0d7}.assigned-name{padding:11px 9px;border-left:1px solid #303840;font-weight:800;min-width:0;overflow-wrap:anywhere}
.admin-section{margin-top:18px}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0}.danger{background:#4b1719;border:1px solid #792428;color:#fff;border-radius:8px;padding:9px 12px}
.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;min-width:900px}th,td{border:1px solid #404850;padding:7px}th{background:#242a30;position:sticky;top:0;z-index:2}
.black-head{background:#050505}.red-head{background:#7f1116}.gold-head{background:#ae881b;color:#111}.station-row td{background:#30363d;font-weight:900}
select{width:100%;min-width:180px;background:#101418;color:#fff;border:1px solid #414952;border-radius:6px;padding:8px}
@media(max-width:620px){.hero{grid-template-columns:1fr 1fr}.hero-card{padding:10px}.big-name{font-size:clamp(17px,5.2vw,25px)}.person{min-width:142px}.assignment-row{grid-template-columns:85px 1fr}}
@media(max-width:410px){.big-name{font-size:18px}.person{min-width:132px;font-size:11px}}
@media(min-width:900px){main{padding:16px}.hero{max-width:760px}.rotation{max-width:100%}.admin .cards,.admin .shift-tabs{display:none}.viewer .admin-section{display:none}}


/* Selected shift visually colors the station listing */
.cards[data-shift="black"] .station-card { border-color:#565b61; }
.cards[data-shift="black"] .station-card h2 { background:#050505; color:#fff; }
.cards[data-shift="black"] .assignment-row { background:#111417; }

.cards[data-shift="red"] .station-card { border-color:#8d3034; }
.cards[data-shift="red"] .station-card h2 { background:#7f1116; color:#fff; }
.cards[data-shift="red"] .assignment-row { background:#261315; }

.cards[data-shift="gold"] .station-card { border-color:#9e7d24; }
.cards[data-shift="gold"] .station-card h2 { background:#ae881b; color:#111; }
.cards[data-shift="gold"] .assignment-row { background:#282314; }

/* Battalion Chief is a standalone bidding position; no separate Command heading. */
.command-single .assignment-row:first-child { border-top:0; }
.command-single .role { font-weight:900; }
