:root{--ink:#172033;--muted:#687086;--blue:#2457e6;--yellow:#ffd84a;--paper:#fff;--line:#dfe4ee;--bg:#eef3f8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,sans-serif}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 30px #17203312}.card{width:min(100%,420px);padding:32px}.mark{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900;font-size:21px}.eyebrow,.label{margin:16px 0 7px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:10px}.intro,.muted{color:var(--muted);line-height:1.5}form{display:grid;gap:9px;margin-top:24px}label{margin-top:8px;font-weight:700}input,select{padding:13px 14px;border:1px solid #bfc8d8;border-radius:10px;font:inherit;background:#fff}input:focus,select:focus{outline:3px solid #2457e62e;border-color:var(--blue)}button{min-height:46px;border:0;border-radius:11px;padding:0 18px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}button:disabled{opacity:.55;cursor:wait}form button{margin-top:14px}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.error,.success,.notice{border-radius:9px;padding:10px 12px;margin:0 0 16px}.error{color:#a22121;background:#fff0f0;border:1px solid #f2c3c3}.success{color:#17663a;background:#e7f8ed;border:1px solid #b9e7ca}.notice{color:#2144aa;background:#eef2ff;border:1px solid #cbd6ff}.shell{width:min(100% - 28px,960px);margin:auto;padding:28px 0 52px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.topbar .eyebrow{margin-top:0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{padding:22px}.racer{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}.avatar{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:var(--yellow);font-size:26px;font-weight:900}.coin{min-width:90px;padding:12px;text-align:center;background:#fff7cf;border-radius:13px}.coin span{display:block;font-size:11px;font-weight:800;text-transform:uppercase}.coin strong{font-size:28px}.checkpoint{border-top:6px solid var(--blue)}.equipped{border-top:6px solid var(--yellow)}.pill{display:inline-block;padding:6px 10px;border-radius:99px;background:#e7edff;color:#2144aa;font-size:12px;font-weight:900;text-transform:uppercase}.pill.arrived{background:#dcf8e7;color:#17663a}.inventory{grid-column:1/-1}.inventory ul{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--line)}.inventory li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px;border-bottom:1px solid var(--line)}.inventory small{display:block;color:var(--muted);margin-top:3px}.item-actions{display:flex;align-items:center;gap:12px}.use-item{min-height:38px;padding:0 13px}.activity-panel{grid-column:1/-1;margin-top:16px}.activity-list{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--line)}.activity-list li{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.activity-list small{display:block;color:var(--muted);margin-top:4px}.activity-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:#e7edff;color:#2144aa;font-size:10px;font-weight:900}.control-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;border-top:6px solid var(--blue)}.summary-stat{min-width:120px;padding:12px 16px;background:#fff7cf;border-radius:13px;text-align:center}.summary-stat span{display:block;font-size:11px;font-weight:800;text-transform:uppercase}.summary-stat strong{font-size:28px}.racer-roster{padding-bottom:8px}.roster-list{margin-top:14px;border-top:1px solid var(--line)}.roster-card{border-bottom:1px solid var(--line)}.roster-row{display:grid;grid-template-columns:auto minmax(150px,1.3fr) repeat(4,minmax(85px,1fr));align-items:center;gap:15px;padding:16px 2px}.roster-row small{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.roster-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--yellow);font-weight:900}.roster-name small{margin-top:4px}.control-actions{display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(220px,1.3fr) auto auto;gap:10px;align-items:end;padding:12px 2px 18px;background:#f7f9fc;border-radius:12px;margin-bottom:14px}.control-actions label{display:grid;gap:5px;margin:0;padding-left:10px;font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase}.control-actions select{min-width:0;padding:10px}.control-actions button{min-height:40px;padding:0 13px}@media(max-width:800px){.control-actions{grid-template-columns:1fr 1fr}.control-actions label{grid-column:1/-1;padding-right:10px}.roster-row{grid-template-columns:auto 1fr 1fr}.roster-row>div:nth-child(n+4){grid-column:span 1}.control-summary{align-items:flex-start}}@media(max-width:640px){.grid{grid-template-columns:1fr}.racer,.inventory{grid-column:auto}.racer{grid-template-columns:auto 1fr}.coin{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.shell{padding-top:18px}}@media(max-width:480px){.roster-row{grid-template-columns:auto 1fr}.roster-row>div:nth-child(n+3){padding-left:57px;grid-column:1/-1}.control-summary{display:block}.summary-stat{margin-top:14px;text-align:left}.control-actions{grid-template-columns:1fr}.control-actions>*{grid-column:1!important;margin:0 10px}.inventory li{align-items:flex-start}.item-actions{flex-direction:column;align-items:flex-end}}
/* Race Control command center */
.race-control-shell{width:min(100% - 32px,1400px)}
.race-control-shell .topbar{margin-bottom:12px}
.control-tabs{display:flex;gap:8px;margin:0 0 16px;padding:5px;width:max-content;border:1px solid #d7deea;border-radius:14px;background:#e8edf5}
.control-tabs button{min-height:40px;background:transparent;color:#536078}
.control-tabs button.active{background:#fff;color:#172033;box-shadow:0 3px 10px #17203316}
.race-command-center{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(270px,.9fr);gap:16px;margin-bottom:16px}
.race-command-map{padding:0;overflow:hidden}
.command-map-heading{height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 18px}
.command-map-heading .label{margin:0 0 4px}.command-map-heading h2{margin:0;font-size:18px}
.map-data-note{max-width:240px;color:#687086;font-size:11px;line-height:1.35;text-align:right}
#race-control-map{height:390px;background:#7492B9;position:relative}
.race-map-empty{height:100%;display:grid;place-content:center;gap:6px;text-align:center;color:#23334a;background:#dbe6f1}
.race-map-empty span{font-size:13px}.race-map-error{position:absolute;left:12px;bottom:12px;z-index:4;padding:7px 10px;border-radius:8px;background:#fff;color:#9a5225;font-size:12px;font-weight:800}
.race-checkpoint-marker{position:relative;width:40px;height:48px;min-height:0;padding:0;border:3px solid #fff;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#F79142;color:#fff;box-shadow:0 3px 9px #17203342}
.race-checkpoint-marker strong{display:grid;place-items:center;width:100%;height:100%;transform:rotate(45deg);font-size:16px}
.race-checkpoint-marker span{position:absolute;right:-9px;top:-8px;display:grid;place-items:center;width:22px;height:22px;border:2px solid #fff;border-radius:50%;transform:rotate(45deg);background:#2457e6;color:#fff;font-size:11px;font-weight:900}
.command-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.command-stat{min-height:112px;padding:16px;border-left:5px solid #8390a5;box-shadow:none}.command-stat:first-child{grid-column:1/-1}.command-stat span,.command-stat small{display:block}.command-stat span{color:#687086;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.command-stat strong{display:block;margin:5px 0 3px;font-size:31px}.command-stat small{color:#687086;font-size:11px}.command-stat.ready{border-color:#3a9d62}.command-stat.arrived{border-color:#f79142}.command-stat.review{border-color:#c43a76}.command-stat.finished{border-color:#2457e6}
.roster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 2px}.roster-filters,.roster-expand-controls{display:flex;gap:7px;flex-wrap:wrap}.roster-filters button,.roster-expand-controls button{min-height:36px;padding:0 12px;font-size:12px}.roster-filters button{background:#edf1f7;color:#536078}.roster-filters button.active{background:#2457e6;color:#fff}.roster-card[hidden]{display:none!important}
.checkpoints-view .race-command-center,.checkpoints-view .control-summary,.checkpoints-view .racer-roster,.checkpoints-view .invite-manager,.checkpoints-view .announcement-manager,.checkpoints-view .activity-panel{display:none!important}
.dashboard-view .checkpoint-manager{display:none!important}
@media(max-width:900px){.race-command-center{grid-template-columns:1fr}.command-status-grid{grid-template-columns:repeat(5,1fr)}.command-stat,.command-stat:first-child{grid-column:auto;min-height:92px}.command-stat strong{font-size:25px}}
@media(max-width:680px){.race-control-shell{width:min(100% - 20px,1400px)}.command-map-heading{height:auto;align-items:flex-start}.map-data-note{max-width:155px}.command-status-grid{grid-template-columns:repeat(2,1fr)}.command-stat:first-child{grid-column:1/-1}#race-control-map{height:330px}.roster-toolbar{align-items:flex-start;flex-direction:column}}
.audio-setup{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px}
.audio-setup label{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--muted)}
.audio-setup input{width:auto;margin:0}
