:root{--bg: #000000;--panel: #1d2b53;--btn: #5f574f;--btn-hover: #c2c3c7;--fg: #ffffff;--fg-dim: #c2c3c7;--p1: #ff004d;--p2: #29adff;--accent: #ffec27}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:Courier New,monospace}#root{min-height:100vh;display:flex;flex-direction:column;align-items:center}button{font-family:inherit;background:var(--btn);color:var(--fg);border:1px solid var(--fg-dim);padding:8px 0;width:240px;cursor:pointer;font-size:15px}button:hover{background:var(--btn-hover);color:#000}.menu-col{display:flex;flex-direction:column;gap:8px;align-items:center;margin-top:32px}.title{margin-top:64px;text-align:center}.title h1{margin:0;letter-spacing:4px;text-shadow:2px 2px 0 var(--btn)}.title p{color:var(--fg-dim);margin:4px 0 0}.status-line{color:var(--fg-dim);margin-top:24px;min-height:1.2em}.screen-heading{color:var(--fg-dim);letter-spacing:2px;margin:32px 0 0}.battle-wrap{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px}.tutorial-hint{border:1px solid var(--accent);background:#000;padding:6px 12px;font-size:13px;text-align:center;line-height:1.4;max-width:560px}.tutorial-hint .hint-lead{color:var(--accent)}.battle-top{display:flex;gap:32px;font-size:14px;color:var(--fg-dim)}.battle-main{display:flex;gap:8px;align-items:stretch}.battle-center{display:flex;flex-direction:column;align-items:center;gap:8px}.battle-side{display:flex;flex-direction:column;gap:8px;width:220px;max-height:calc(100vh - 180px);min-height:0}.lobby-slots{display:flex;flex-direction:column;gap:6px;width:260px}.lobby-slot{display:flex;justify-content:space-between;border:1px solid var(--btn);background:#000;padding:8px;font-size:13px}.lobby-slot.filled{background:#0d0d0d}.builder-wrap{width:100%;max-width:1100px;display:flex;flex-direction:column;gap:8px;padding:12px}.builder-top,.builder-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--fg-dim)}.builder-bottom button,.builder-bottom .picker{width:auto;padding:6px 10px;font-size:13px}.builder-status{margin-left:auto;color:var(--accent)}button.chip{width:auto;padding:3px 8px;font-size:12px;margin-left:4px}button.chip.picked{background:var(--fg);color:#000}button.chip.add,button.chip.del{padding:1px 6px;margin-left:6px}.name-field,.picker{font-family:inherit;background:#000;color:var(--fg);border:1px solid var(--fg-dim);padding:5px;font-size:13px}.confirm-bar{border:1px solid var(--accent);color:var(--accent);padding:6px 10px;font-size:13px}.builder-cols{display:flex;gap:8px;align-items:stretch}.builder-col{flex:1 1 0;min-width:0;border:1px solid var(--btn);background:#000;display:flex;flex-direction:column}.builder-col.wide{flex:1.4 1 0}.builder-side{width:230px;flex:0 0 230px;display:flex;flex-direction:column;gap:8px}.col-title{padding:5px 6px;font-size:12px;letter-spacing:1px;color:var(--fg-dim);border-bottom:1px solid var(--btn)}.col-body{overflow-y:auto;height:340px;font-size:12px}.col-body .pad{padding:8px 6px;line-height:1.4}.roster-group{display:flex;align-items:center;gap:6px;padding:6px 6px 2px;font-size:11px;letter-spacing:1px;color:var(--accent)}.roster-group:after{content:"";flex:1;border-top:1px solid var(--btn)}.row{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 6px;cursor:pointer;border-bottom:1px solid #131313}.row:hover{background:#141414}.row.sel{background:#202020;color:var(--accent)}.row-right{display:flex;align-items:center;white-space:nowrap}.over{color:var(--p1)}.opt-group{padding:4px 6px 6px;border-bottom:1px solid #131313}.opt-header{color:var(--accent);font-size:11px;letter-spacing:1px;margin-bottom:3px}.opt-row{display:flex;align-items:center;gap:6px;padding:2px 0;cursor:pointer;line-height:1.3}.opt-row:hover{color:var(--fg)}.opt-cost{margin-left:auto;white-space:nowrap}.keywords-panel{border:1px solid var(--btn);background:#000;padding:6px;font-size:11px;flex:1 1 auto;min-height:140px;overflow-y:auto}.keyword-entry{margin-bottom:5px}.keyword-name{color:var(--accent)}.keyword-code{color:var(--fg-dim);display:inline-block;width:22px}.keyword-desc{color:var(--fg-dim);padding-left:22px;line-height:1.25}.game-log,.unit-card,.action-row{border:1px solid var(--btn);background:#000;padding:6px;font-size:12px}.game-log{width:200px;max-height:calc(100vh - 180px);min-height:0;overflow-y:auto}.log-line{color:var(--fg-dim);line-height:1.35}.log-side{font-weight:700}.log-headline,.log-strikeback{color:var(--fg);margin-top:4px}.log-strikeback{font-style:italic}.log-dice{color:#8a8a8a;padding-left:6px}.log-casualty{color:#ff6b6b}.log-morale{color:var(--accent)}.log-divider{color:var(--accent);margin:8px 0 2px;border-top:1px solid var(--btn);padding-top:4px}.card-title{color:var(--fg);letter-spacing:1px;margin-bottom:4px}.unit-card .stat-line{color:var(--fg)}.unit-card .rule-icons{color:var(--fg);letter-spacing:1px;cursor:help}.dim{color:var(--fg-dim)}.hero-block{margin-top:5px;padding-top:4px;border-top:1px dashed var(--btn)}.hero-name{color:var(--accent)}.weapon-list{list-style:none;margin:4px 0 0;padding:0;color:var(--fg-dim)}.weapon-list li{line-height:1.3}.status-row{margin-top:4px;display:flex;gap:4px;flex-wrap:wrap}.tag{font-size:10px;padding:1px 3px;border:1px solid currentColor}.tag.act{color:#00e436}.tag.shaken{color:var(--accent)}.tag.fatigued{color:#ffa300}.tag.cover{color:#3b6ea5;cursor:help}.action-row{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:6px;min-height:34px}.action-row button{width:96px;padding:5px 0;font-size:13px}.action-row button.picked{background:var(--fg);color:#000}.action-row button.rally{color:var(--accent);border-color:var(--accent)}.battle-actions{display:flex;gap:8px}.battle-actions button{width:140px}.result-banner{color:var(--accent);border:1px solid var(--accent);padding:6px 16px;letter-spacing:1px}.campaign-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 20px;margin-top:12px;font-size:13px;color:var(--fg-dim)}.campaign-cols{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:8px;margin-top:12px;width:min(820px,96vw)}.campaign-side{width:240px;flex:0 0 240px;display:flex;flex-direction:column;gap:8px;height:min(48vh,420px);min-height:0}.campaign-side .unit-card{flex:0 0 auto;max-height:55%;overflow-y:auto}.campaign-side .keywords-panel{flex:1 1 auto;min-height:0;overflow-y:auto}.campaign-roster{flex:1 1 320px;min-width:0;height:min(48vh,420px);overflow-y:auto;border:1px solid var(--btn)}.roster-row{padding:6px 10px;border-bottom:1px solid #131313;font-size:13px}.roster-row:last-child{border-bottom:none}.roster-name{display:flex;align-items:center;gap:6px}.roster-meta{color:var(--fg-dim);font-size:12px}.roster-traits{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.trait{font-size:11px;padding:0 4px;border:1px solid currentColor;cursor:help}.trait.good{color:#00e436}.trait.bad{color:var(--p1)}.tag.merc{color:#ffa300}.tag.outcome-good{color:#00e436}.tag.outcome-bad{color:#ffa300}.tag.outcome-dead{color:var(--p1)}.tag.outcome-plain{color:var(--fg-dim)}.ready-yes{color:#00e436;font-size:11px;letter-spacing:1px}.ready-no{color:var(--fg-dim);font-size:11px}.menu-col button.on{color:#00e436;border-color:#00e436}.seed-prompt{padding:8px 10px;border-bottom:1px solid var(--btn);font-size:12px;color:var(--fg-dim);line-height:1.5}.seed-prompt button{margin-top:6px}.seat-btn{width:100%;padding:3px 0;font-size:11px}.campaign-tabs{display:flex;gap:4px;margin-top:14px}.campaign-tabs button{width:150px;padding:5px 0;font-size:13px}.campaign-tabs button.on{color:var(--accent);border-color:var(--accent)}.roster-btn{width:18px;height:18px;padding:0;font-size:11px;line-height:1;margin-left:auto;color:var(--fg-dim)}.roster-btn:hover{background:var(--p1);color:#fff}.roster-toggle{width:auto;padding:0;background:none;border:none;color:var(--fg);font-size:13px;text-align:left}.roster-toggle:hover{background:none;color:var(--accent)}.roster-row.open{background:#0c0c0c}.loadout{margin:6px 0 2px;padding:6px 8px;border:1px solid var(--btn)}.loadout-guns{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.loadout .gun{font-size:11px;padding:0 4px;border:1px solid var(--btn);color:var(--fg-dim)}.loadout .opt-group{margin-top:6px}.loadout .opt-header{font-size:11px;letter-spacing:1px;color:var(--accent)}.loadout .opt-row{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;padding:1px 0}.loadout .opt-row:hover{color:var(--accent)}.loadout .opt-cost{margin-left:auto}.loadout .dim{color:var(--fg-dim)}.loadout-note{margin-top:8px;font-size:11px}.roster-select{font-family:inherit;font-size:12px;background:#000;color:var(--fg);border:1px solid var(--btn)}.recruit-row{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:5px 10px;font-size:13px;text-align:left;background:none;border:none;border-bottom:1px solid #131313}.recruit-row:hover{background:#202020}.recruit-row:hover:not(.unable){color:var(--accent)}.recruit-row.unable{color:#4a4a4a;cursor:not-allowed}.recruit-row .cost{color:var(--accent)}.recruit-row .cost.dear,.recruit-row.unable .cost{color:#4a4a4a}.roster-row.result-dead{background:#1a0508}.roster-row.result-dead .roster-name{color:var(--p1);text-decoration:line-through}
