:root{color:#f6efe3;background:#151617;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.entry-layout,.game-layout{min-height:100vh;padding:24px}.entry-layout{background:linear-gradient(90deg,#151617eb,#151617c2),url(https://images.unsplash.com/photo-1600565193348-f74bd3c7ccdf?auto=format&fit=crop&w=1600&q=80) 50%/cover;grid-template-columns:minmax(280px,520px) minmax(260px,360px);justify-content:center;align-items:center;gap:24px;display:grid}.entry-panel,.table-rules,.run-inspector,.control-panel{background:#191713f0;border:1px solid #4a3d2d;border-radius:8px;box-shadow:0 18px 50px #00000052}.entry-panel,.table-rules,.run-inspector{padding:24px}.brand-lockup h1,.top-bar h1{letter-spacing:0;margin:0;font-size:42px;line-height:1}.brand-lockup p,.panel-note,.table-rules li{color:#d7c6ad;line-height:1.55}.eyebrow{color:#e5b766;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800;display:inline-block}.room-form{gap:10px;margin-top:22px;display:grid}.room-form label{color:#f6efe3;font-size:13px;font-weight:800}.room-form input{color:#f6efe3;background:#211e19;border:1px solid #5a4a38;border-radius:6px;width:100%;min-height:44px;padding:0 12px}.room-form input:read-only{color:#e5b766;font-weight:900}.inline-fields{grid-template-columns:1fr auto;gap:10px;display:grid}.primary-action,.secondary-action,.subtle-action,.icon-text{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-weight:800;display:inline-flex}.primary-action{color:#191713;background:#e5b766}.secondary-action{color:#f6efe3;background:#2f281f;border-color:#68533a}.subtle-action{color:#d7c6ad;background:#211e19;border-color:#463a2c}.full-width{width:100%}.table-rules h2,.panel-heading h2{margin:0}.table-rules h2,.section-title{align-items:center;gap:8px;display:flex}.table-rules ul{margin:16px 0 0;padding-left:20px}.entry-side{gap:16px;display:grid}.compact-form{margin-top:0}.error-note{color:#f3a68d;line-height:1.45}.run-summary-card{gap:12px;margin-top:16px;display:grid}.run-summary-card p{color:#d7c6ad;margin:0;line-height:1.45}.run-summary-topline,.run-player-list li{justify-content:space-between;align-items:center;gap:10px;display:flex}.run-summary-topline span,.run-player-list li span:last-child{color:#cbbba5;font-size:12px}.run-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.run-summary-grid div{background:#211e19;border:1px solid #3d3328;border-radius:6px;padding:10px}.run-summary-grid dt{color:#cbbba5;font-size:12px}.run-summary-grid dd{margin:4px 0 0;font-weight:900}.run-player-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.run-player-list li{border-bottom:1px solid #3d3328;padding-bottom:6px}.log-preview{color:#d7c6ad;white-space:pre-wrap;word-break:break-word;background:#151617;border:1px solid #3d3328;border-radius:6px;max-height:180px;margin:0;padding:10px;font-size:12px;line-height:1.45;overflow:auto}.game-layout{background:linear-gradient(#151617f5,#201b16f5),#151617}.top-bar,.status-strip,.play-grid{width:min(1380px,100%);margin:0 auto}.top-bar{justify-content:space-between;align-items:center;gap:16px;display:flex}.top-bar h1{font-size:30px}.room-heading-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.room-heading-row .subtle-action{min-height:30px;padding:0 10px;font-size:12px}.connection-pill{display:inline-flex}.status-strip{display:flex}.connection-pill,.status-strip{color:#d7c6ad;background:#211e19;border:1px solid #4a3d2d;border-radius:999px;align-items:center;gap:8px}.connection-pill{text-transform:capitalize;min-height:34px;padding:0 12px}.connection-pill.is-live{color:#c9f0c7;border-color:#6fa071}.status-strip{min-height:42px;margin-top:16px;padding:0 14px}.play-grid{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:18px;margin-top:18px;display:grid}.tabletop-shell{background:#171512;border:1px solid #4a3d2d;border-radius:8px;min-height:440px;overflow:hidden}.tabletop-shell canvas{width:100%;height:auto;display:block}.tabletop-paused{color:#cbbba5;place-items:center;min-height:440px;font-weight:900;display:grid}.control-panel{padding:16px}.panel-heading{justify-content:space-between;align-items:start;gap:12px;margin-bottom:16px;display:flex}.panel-heading-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.subtle-action.danger{color:#f0b8a0;background:#2a1c18;border-color:#6b3a2c}.board-column{flex-direction:column;gap:14px;min-width:0;display:flex}.phase-countdown{background:#1b1813;border:1px solid #463a2c;border-radius:6px;height:16px;position:relative;overflow:hidden}.phase-countdown-fill{height:100%;transition:width .2s linear,background-color .5s linear;position:absolute;inset:0 0 0 auto}.phase-countdown-fill.is-ok{background:#5a9e5a}.phase-countdown-fill.is-warn{background:#d8b24a}.phase-countdown-fill.is-danger{background:#c4533f}.phase-countdown-text{text-align:center;letter-spacing:.06em;color:#f6efe3;text-shadow:0 1px 2px #0009;font-size:11px;font-weight:800;line-height:16px;display:block;position:relative}.role-grid,.html-card-grid,.vote-options,.shop-offers,.control-stack{gap:10px;display:grid}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-button,.html-card,.vote-button,.shop-offer{color:#f6efe3;text-align:left;background:#211e19;border:1px solid #4a3d2d;border-radius:7px;min-height:92px;padding:12px}.role-button.is-selected,.html-card.is-selected,.vote-button.is-selected{background:#2f281f;border-color:#e5b766}.role-swatch{border-radius:999px;flex:none;width:12px;height:12px;display:inline-block}.role-name,.card-name,.vote-label{font-weight:900;display:block}.role-hook,.card-rule,.vote-hint{color:#d7c6ad;margin-top:6px;font-size:13px;line-height:1.35;display:block}.action-row,.card-topline,.card-statline{align-items:center;gap:10px;display:flex}.action-row{justify-content:space-between;margin-top:16px}.card-topline,.card-statline{color:#cbbba5;justify-content:space-between;font-size:12px}.play-controls{position:sticky;top:16px}.section-title{color:#e5b766;margin-bottom:8px;font-weight:900}.vote-prompt,.shop-gold{color:#f6efe3;line-height:1.45}.vote-button{grid-template-columns:1fr auto;gap:8px;display:grid}.vote-hint{grid-column:1/-1}.vote-count{color:#e5b766;background:#3a3024;border-radius:999px;justify-content:center;align-items:center;min-width:28px;min-height:28px;font-weight:900;display:inline-flex}.ending-panel,.combat-log{border-top:1px solid #3d3328;margin-top:14px;padding-top:14px}.ending-panel h3{margin:4px 0 8px}.combat-log ol{color:#d7c6ad;margin:0;padding-left:20px;font-size:13px;line-height:1.45}.perf-overlay{z-index:20;background:#151617f5;border:1px solid #4a3d2d;border-radius:8px;width:min(340px,100vw - 28px);padding:12px;position:fixed;bottom:14px;right:14px;box-shadow:0 14px 38px #00000059}.perf-overlay ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.perf-overlay li{color:#d7c6ad;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;font-size:12px;display:grid}.perf-overlay strong{color:#e5b766}.perf-overlay em{color:#9fb9d8;font-style:normal}@media (width<=980px){.entry-layout,.play-grid{grid-template-columns:1fr}.play-controls{position:static}}@media (width<=620px){.entry-layout,.game-layout{padding:14px}.inline-fields,.role-grid,.action-row{grid-template-columns:1fr;display:grid}.panel-heading{display:grid}.panel-heading-actions{justify-content:stretch}.top-bar{align-items:flex-start}.brand-lockup h1{font-size:34px}}
