*{box-sizing:border-box;margin:0}body{background:#0d0f12;color:#c8cdd6;font-family:Segoe UI,system-ui,sans-serif;height:100vh;overflow:hidden}#root,.app{height:100vh;display:flex;flex-direction:column}header{display:flex;align-items:baseline;gap:12px;padding:10px 16px 4px}header h1{font-size:20px;letter-spacing:.5px;color:#e8e2d0}header h1 span{color:#5b9cf5}.tagline{font-size:12px;color:#6b7280}.hud{display:flex;align-items:center;gap:12px;padding:8px 16px}.team-chip{border:1px solid;border-radius:8px;padding:6px 12px;min-width:190px;background:#14171c}.team-name{font-weight:700;font-size:13px}.team-stats{font-size:11px;color:#9aa1ac}.team-stance{font-size:11px;color:#e8e2d0;font-style:italic}.controls{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.controls .clock{font-size:12px;color:#9aa1ac;margin-left:10px;font-variant-numeric:tabular-nums}button{background:#1d222a;color:#c8cdd6;border:1px solid #2f3540;border-radius:6px;padding:5px 12px;font-size:13px;cursor:pointer}button:hover{background:#262c36}button.active{border-color:#5b9cf5;color:#5b9cf5}button:disabled{opacity:.4;cursor:default}.main{flex:1;display:flex;gap:12px;padding:4px 16px 16px;min-height:0}.battle-wrap{flex:1;position:relative;display:flex;min-width:0}.battle-svg{width:100%;height:100%}aside{width:300px;display:flex;flex-direction:column;background:#14171c;border:1px solid #232830;border-radius:8px;padding:10px;min-height:0}aside h2{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#6b7280;margin-bottom:6px}.event-log{flex:1;overflow-y:auto;font-size:12px;line-height:1.5}.log-line{display:flex;gap:8px}.log-time{color:#565d68;min-width:30px;text-align:right;font-variant-numeric:tabular-nums}.muted{color:#565d68}.victory-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0d0f1299}.victory-card{background:#14171c;border:2px solid;border-radius:12px;padding:28px 40px;text-align:center;display:flex;flex-direction:column;gap:16px}.victory-title{font-size:26px;font-weight:700}.setup{flex:1;display:flex;flex-direction:column;padding:8px 16px 16px;min-height:0;overflow-y:auto}.setup-columns{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.setup-panel{flex:1;min-width:340px;background:#14171c;border:1px solid #232830;border-radius:8px;padding:14px}.setup-panel h2{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:#9aa1ac;margin-bottom:10px}.setup-panel h2 .count{color:#5b9cf5}.setup-panel h3{font-size:12px;color:#e8e2d0;margin:14px 0 6px}.hint{font-size:11px;color:#565d68;font-weight:400;font-style:normal}.unit-card{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #232830;border-radius:8px;padding:8px 10px;margin-bottom:6px}.unit-card.picked{border-color:#3b5a80;background:#171c24}.unit-name{font-size:13px;font-weight:600;color:#e8e2d0}.unit-role{font-size:11px;color:#6b7280;font-weight:400;margin-left:6px}.unit-stats{font-size:11px;color:#9aa1ac}.stepper{display:flex;align-items:center;gap:8px}.stepper span{min-width:16px;text-align:center;font-variant-numeric:tabular-nums}.stepper button{width:28px;padding:3px 0}.priority-row{display:flex;align-items:center;gap:8px;padding:4px 0}.priority-rank{width:18px;height:18px;border-radius:50%;background:#1d222a;color:#5b9cf5;font-size:11px;display:flex;align-items:center;justify-content:center}.priority-label{flex:1;font-size:13px}.priority-row button{width:28px;padding:2px 0}.radio-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:13px;cursor:pointer}.radio-row .hint{margin-left:6px}.rule-order{display:inline-flex;width:15px;height:15px;border-radius:50%;background:#5b9cf5;color:#0d0f12;font-size:10px;font-weight:700;align-items:center;justify-content:center;margin-right:2px}.setup-footer{display:flex;align-items:center;gap:14px;padding-top:14px}.start-btn{font-size:15px;padding:10px 26px;border-color:#5b9cf5;color:#5b9cf5;font-weight:600}.start-btn:hover:not(:disabled){background:#1a2433}.victory-buttons{display:flex;gap:10px;justify-content:center}
