:root{--ink:#151a1d;--paper:#e8e2cf;--paper2:#f4f0e3;--red:#c14338;--blue:#315f73;--amber:#d59c3b;--line:#8f8a79;--shadow:0 18px 50px #0c101355}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:"Segoe UI","Microsoft YaHei",sans-serif;background:#171d20;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:24px 24px}.shell{width:min(1180px,calc(100% - 28px));margin:auto;padding:28px 0 60px}.masthead{display:flex;justify-content:space-between;align-items:flex-end;color:#f6f0dd;margin-bottom:20px}.masthead h1{font-size:clamp(44px,8vw,78px);line-height:.88;margin:4px 0;letter-spacing:.08em}.eyebrow{margin:0;color:var(--amber);font-weight:800;font-size:12px;letter-spacing:.18em}.subtitle{margin:12px 0 0;color:#aeb8b8}.status-box{display:grid;text-align:right;gap:5px}.status-box strong{font:800 28px/1 monospace;letter-spacing:.18em}.panel{background:var(--paper);border:1px solid #f8f3e2;box-shadow:var(--shadow);position:relative}.panel:after{content:"";position:absolute;inset:6px;pointer-events:none;border:1px solid #00000016}.setup-panel{padding:24px}.mode-tabs{display:flex;gap:8px;margin-bottom:22px}.mode-tabs button{flex:1;background:#d1cbb9}.mode-tabs .active{color:white;background:var(--blue)}button,input,select{font:inherit}button{border:0;padding:11px 16px;font-weight:750;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--red);color:white}.danger{background:#2e3335;color:white}.setup-form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}.setup-form label,.composer label{display:grid;gap:7px;font-weight:700}.setup-form input,.setup-form select,.composer input,.code-inputs select{border:1px solid var(--line);padding:11px;background:var(--paper2)}.brief{border-top:1px dashed var(--line);margin-top:24px;padding-top:18px}.brief p{margin-bottom:0;color:#4c504d}.hidden{display:none!important}.command-bar{padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px}.command-bar>div:first-child{display:flex;align-items:center;gap:12px}.badge,.team-badge{padding:5px 9px;color:white;background:var(--blue);font-size:12px;font-weight:800;letter-spacing:.08em}.timer{display:flex;align-items:center;gap:10px}.timer span{font:800 20px monospace}.timer i{display:block;width:150px;height:7px;background:#bcb6a5}.timer em{display:block;height:100%;background:var(--red)}.actions{display:flex;gap:8px}.notice{padding:13px 18px;margin:12px 0;color:#eee;background:#273034;border-left:4px solid var(--amber)}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.team-column{padding:18px}.team-column.white{background:#e9e7df}.team-column.black{background:#263238;color:#f5f0df;border-color:#536269}.team-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.team-head h2{margin:0}.seat{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:9px 0;border-top:1px dashed #8888}.seat .online{width:8px;height:8px;border-radius:50%;background:#56a765}.seat .offline{background:#777}.seat-actions{display:flex;gap:4px}.seat-actions button{padding:5px 8px}.bench{grid-column:1/-1;padding:15px}.bench-list{display:flex;gap:8px;flex-wrap:wrap}.player-chip{background:#d1cbb9;padding:8px 10px}.game-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:15px}.intel-panel,.operation-panel,.history-panel{padding:20px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-title h2{margin:3px 0}.keyword-rack{display:grid;gap:9px}.keyword{display:grid;grid-template-columns:42px 1fr;align-items:center;background:#182126;color:#f5f0df;border-left:5px solid var(--amber)}.keyword b{display:grid;place-items:center;padding:13px;background:#0e1417;color:var(--amber)}.keyword span{padding:0 14px;font:700 18px monospace}.secret-code{margin-top:18px;padding:15px;text-align:center;background:var(--red);color:white;font:800 28px monospace;letter-spacing:.35em}.composer{display:grid;gap:10px}.clue-display{display:grid;gap:9px}.clue-card{display:grid;grid-template-columns:38px 1fr;align-items:center;padding:12px;background:var(--paper2);border-left:4px solid var(--blue)}.clue-card b{color:var(--red)}.guess-composer{margin-top:18px;padding-top:15px;border-top:1px dashed var(--line)}.code-inputs{display:flex;gap:8px;margin-bottom:10px}.code-inputs select{flex:1;font-size:20px;font-weight:800}.waiting{color:#60645f;margin-top:14px}.scoreboard{grid-column:1/-1;padding:14px 22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center}.score-team h3{margin:0}.score-tokens{font-size:14px;margin-top:6px}.versus{font:900 24px monospace;color:var(--red)}.history-panel{grid-column:1/-1}.history-list{display:grid;gap:10px;max-height:440px;overflow:auto}.record{padding:12px;background:var(--paper2);border-left:4px solid var(--blue)}.record.black{border-color:#20282b}.record-head{display:flex;justify-content:space-between;font-weight:800}.record-clues{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.record-clues span{padding:5px 8px;background:#ddd6c3}.record-result{font-size:13px;color:#5d615d}.result-panel{padding:28px;text-align:center}.final-keywords{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.final-keywords>div{padding:14px;background:var(--paper2)}@media(max-width:760px){.masthead{align-items:flex-start}.status-box{font-size:12px}.setup-form,.team-grid,.game-layout{grid-template-columns:1fr}.command-bar{align-items:stretch;flex-direction:column}.command-bar>div{justify-content:space-between}.team-grid .bench,.scoreboard,.history-panel{grid-column:1}.final-keywords{grid-template-columns:1fr}.timer i{flex:1}.timer{width:100%}}
