:root{
  color-scheme:light;
  --bg:#f5f7fb;
  --card:#fff;
  --ink:#172033;
  --muted:#647084;
  --blue:#2563eb;
  --blue-dark:#1d4ed8;
  --green:#0f8a4b;
  --red:#b42318;
  --amber:#9a5b00;
  --border:#d8e1ee;
  --soft:#f8fbff;
  --shadow:0 10px 30px rgba(31,64,120,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}
button,input,select{font:inherit}
button{min-height:42px}
button:disabled{opacity:.62;cursor:wait}
.shell{max-width:1240px;margin:0 auto;padding:24px}
.hero{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow)}
h1{margin:0;font-size:34px;line-height:1.05;letter-spacing:0}
h2{margin:0;font-size:21px;letter-spacing:0}
.hero-actions,.race-actions,.assistant-actions,.advanced-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ghost,.primary,.danger,.select-btn,.load-btn,.start-btn{border-radius:10px;padding:10px 14px;font-weight:850;cursor:pointer}
.ghost,.select-btn{border:1px solid var(--border);background:var(--soft);color:var(--ink)}
.ghost:hover,.select-btn:hover{border-color:#aebed4}
.primary,.load-btn{border:1px solid var(--blue);background:var(--blue);color:#fff}
.primary:hover,.load-btn:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
.danger{border:1px solid var(--red);background:var(--red);color:#fff}
.danger:hover{background:#8f1c14}
.start-btn{border:1px solid var(--green);background:var(--green);color:#fff}
.start-btn:hover{background:#0b6e3c}
.small-action{width:100%;margin-top:8px}
.panel,.log-panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;margin-top:18px;box-shadow:var(--shadow)}
.status-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:14px;margin-top:18px}
.status-card,.assistant-card,.race-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px;min-width:0}
.primary-status{background:#101827;color:#fff;border-color:#101827}
.status-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);font-weight:850}
.primary-status .status-label{color:#93c5fd}
.status-text,.life-value{font-size:18px;font-weight:850;margin-top:6px}
.current-set{display:inline-block;background:rgba(255,255,255,.12);padding:8px 11px;border-radius:999px;font-weight:800;margin-top:12px;max-width:100%;overflow-wrap:anywhere}
.life-meta{color:var(--muted);font-weight:700;margin-top:8px;font-size:14px;overflow-wrap:anywhere}
.ok,.ok-text{color:var(--green)}
.bad,.bad-text{color:var(--red)}
.warn{color:var(--amber)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.section-title.compact-title{margin-top:20px}
.pill{background:#dbeafe;color:#1e40af;padding:6px 11px;border-radius:999px;font-weight:850;white-space:nowrap}
.assistant-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,.75fr);gap:14px}
.assistant-value{font-size:18px;font-weight:900;margin-top:8px;overflow-wrap:anywhere}
.next-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.next-actions span{background:#eef6ff;border:1px solid #cfe0f7;border-radius:999px;color:#1e40af;font-size:12px;font-weight:850;padding:6px 9px}
.provider-row,.email-row,.mailbox-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:12px}
.email-row,.mailbox-row{grid-template-columns:minmax(0,1fr) auto}
.provider-row label{color:var(--muted);font-weight:850}
.provider-row select,.email-row input,.custom-time input,.race-form input,.race-form select{border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--ink);font-weight:750;min-width:0;padding:10px 12px}
.assistant-actions{margin-top:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}
.set-card{background:var(--soft);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:132px}
.set-card.active{outline:3px solid #93c5fd;background:#fff}
.set-title{font-size:18px;font-weight:900}
.set-meta{color:var(--muted);font-weight:750}
.set-actions,.mode-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.time-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--soft);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px}
.time-row span,.custom-time{font-weight:850;color:var(--muted)}
.time-btn{border:1px solid #bfd0ea;background:#fff;color:var(--ink);font-weight:850;border-radius:9px;padding:9px 12px;cursor:pointer;min-height:38px}
.time-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.custom-time{display:flex;align-items:center;gap:8px}
.custom-time input{width:84px}
.flow-summary{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) auto auto auto;gap:10px;align-items:stretch;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px}
.flow-summary div{display:grid;gap:3px}
.flow-summary span{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.flow-summary strong{font-size:16px;overflow-wrap:anywhere}
.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.mode-card{background:var(--soft);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.mode-card.selected{outline:3px solid #86efac;background:#fff}
.mode-card img{width:100%;height:112px;object-fit:contain;background:#edf4ff;display:block}
.mode-body{padding:12px;display:grid;gap:8px}
.mode-body strong{font-size:17px}
.mode-body span{color:var(--muted);font-weight:800}
.empty,.empty-score{background:var(--soft);border:1px dashed #b9c8dd;color:var(--muted);border-radius:12px;padding:16px;text-align:center;font-weight:800}
.race-grid{display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(360px,.9fr);gap:14px}
.scoreboard-card{background:#fbfcff}
.scoreboard-list{display:grid;gap:8px;margin-top:12px}
.score-row{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px}
.score-row.npc{background:#fff7ed;border-color:#fdba74}
.score-row strong{color:#1e40af}
.score-row span{font-weight:850;min-width:0;overflow-wrap:anywhere}
.score-row b{font-variant-numeric:tabular-nums}
.race-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.race-form label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:850}
.race-actions{margin-top:14px}
.npc-board-label{margin-top:18px}
.race-player-list{display:grid;gap:10px;margin-top:10px}
.race-player-card{background:var(--soft);border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;grid-template-columns:1fr .9fr .9fr;gap:8px;align-items:center}
.race-player-card label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:850}
.race-player-card select{border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--ink);font-weight:800;min-width:0;padding:8px 10px}
.race-enabled{display:flex!important;align-items:center;gap:8px;color:var(--ink)!important;font-size:15px!important}
.race-mini-score{font-weight:900;color:#1e40af}
.race-run-state{font-weight:900}
.race-player-active{grid-column:1/-1;color:var(--muted);font-size:12px;font-weight:750;overflow-wrap:anywhere}
.advanced-panel summary{cursor:pointer;font-size:20px;font-weight:900}
.advanced-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:14px}
.advanced-actions{margin-top:12px}
.advanced-actions button{flex:1 1 150px}
pre{white-space:pre-wrap;background:#101827;color:#dbeafe;padding:14px;border-radius:12px;margin:0;font-size:13px;min-height:86px;max-height:280px;overflow:auto}
@media(max-width:900px){
  .status-grid,.assistant-grid,.race-grid,.flow-summary{grid-template-columns:1fr}
  .hero{align-items:stretch;flex-direction:column}
  .hero-actions{justify-content:flex-start}
}
@media(max-width:680px){
  .shell{padding:14px}
  h1{font-size:30px}
  .hero-actions button,.ghost,.primary,.danger{width:100%}
  .provider-row,.email-row,.mailbox-row,.race-form,.race-player-card,.set-actions,.mode-actions{grid-template-columns:1fr}
  .custom-time{width:100%}
  .custom-time input{flex:1;width:auto}
}
