.game-room-page{background:#0d1728;color:#f5eddf;min-height:100vh;overflow:hidden}
.game-room-page .play-header{background:#101b30}
.room-preview-banner{min-height:35px;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 24px;text-align:center;background:#dec69f;color:#2d3440;font-size:11px;letter-spacing:.02em}
.game-room-mast{min-height:76px;padding:13px clamp(20px,3vw,48px);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid rgba(225,199,154,.22);background:#111e34}
.game-room-kicker{margin:0;color:#d7aa62;text-transform:uppercase;font-size:9px;font-weight:900;letter-spacing:.16em}
.game-room-kicker span{display:inline-block;margin-left:8px;padding:3px 7px;border:1px solid rgba(215,170,98,.45);border-radius:20px;color:#c8cbd1;letter-spacing:.08em}
.game-room-mast h1{margin:3px 0 0;font:400 clamp(25px,2.4vw,37px)/1.1 var(--font-display);letter-spacing:-.025em}
.game-room-state{display:flex;align-items:center;gap:0;color:#cad0da;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.game-room-state span{padding:5px 12px;border-left:1px solid rgba(225,199,154,.28)}
.game-room-state span:first-child{border-left:0}
.game-room-shell{width:100%;height:calc(100dvh - 193px);min-height:620px;padding:16px 18px 18px;background:radial-gradient(circle at 60% 0,rgba(69,86,116,.18),transparent 43%),#0d1728}
.game-room-grid{height:100%;display:grid;grid-template-columns:minmax(205px,238px) minmax(430px,1fr) minmax(320px,405px);gap:14px;max-width:1760px;margin:auto}
.command-rail,.conversation-stage,.aid-deck{min-width:0;border:1px solid rgba(214,182,132,.26);background:#132039;box-shadow:0 15px 30px rgba(0,0,0,.19)}
.command-rail,.aid-deck{overflow-y:auto;scrollbar-color:#9d7849 #172640;scrollbar-width:thin}
.rail-heading{padding:21px 20px 17px;border-bottom:1px solid rgba(219,189,143,.2)}
.rail-heading .eyebrow{font-size:8px}
.rail-heading h2{margin:5px 0 0;font:400 27px/1.1 var(--font-display)}
.rail-group{padding:20px 16px}
.rail-group+.rail-group{border-top:1px solid rgba(219,189,143,.2)}
.rail-group h3{margin:0;color:#f6e8d2;font:400 17px/1.25 var(--font-display)}
.rail-group>p{margin:7px 0 14px;color:#aeb7c5;font-size:10px;line-height:1.5}
.rail-buttons{display:grid;gap:7px}
.rail-buttons button{width:100%;display:flex;align-items:center;gap:10px;padding:11px 10px;border:1px solid rgba(218,190,147,.24);background:#1a2b49;color:#f4ead9;text-align:left;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}
.rail-buttons button span{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#d5aa6c;color:#14223a;font:700 12px var(--font-display);flex:none}
.rail-buttons button:hover,.rail-buttons button:focus-visible,.rail-buttons button[aria-pressed="true"]{background:#263b5c;border-color:#d5aa6c}
.rail-buttons-local button span{border-radius:2px;background:#6f809e;color:#fff}
.conversation-stage{display:flex;flex-direction:column;overflow:hidden;background:#f7f0e5;color:#1c2a43}
.conversation-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 23px 17px;border-bottom:1px solid #d9cab3;background:#fffaf1}
.conversation-heading .eyebrow{font-size:8px}
.conversation-heading h2{margin:4px 0 0;font:400 27px/1.12 var(--font-display)}
.conversation-presence{display:flex;align-items:center;gap:7px;color:#6b6359;font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.conversation-presence i{width:7px;height:7px;border-radius:50%;background:#5c876e;box-shadow:0 0 0 3px rgba(92,135,110,.13)}
.conversation-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:22px clamp(18px,3vw,34px);scrollbar-color:#ab8c63 #eee3d4;scrollbar-width:thin}
.conversation-entry{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;max-width:690px;margin-bottom:21px}
.conversation-entry.player-entry{margin-left:auto;grid-template-columns:minmax(0,1fr) 34px}
.conversation-entry.player-entry .speaker-mark{grid-column:2;grid-row:1}
.conversation-entry.player-entry>div:last-child{grid-column:1;grid-row:1}
.speaker-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#b6864d;color:#fffaf0;font:700 14px var(--font-display)}
.player-entry .speaker-mark{background:#536989}
.conversation-entry>div:last-child{padding:14px 16px;border:1px solid #d8c9b1;background:#fffaf2}
.player-entry>div:last-child{background:#e6e9ee;border-color:#c8ced7}
.conversation-entry p{margin:0}
.conversation-entry>div:last-child>p:last-of-type{font:400 16px/1.55 var(--font-display);color:#27384e}
.speaker-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px!important}
.speaker-line strong{font-size:10px;text-transform:uppercase;letter-spacing:.11em}
.speaker-line span{color:#85735b;font-size:8px;text-transform:uppercase;letter-spacing:.1em}
.visual-reference{display:flex;align-items:center;gap:7px;margin-top:11px;padding-top:9px;border-top:1px solid #e1d7c7;color:#785329;font-size:10px}
.visual-reference button{border:0;background:none;padding:0;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:800}
.conversation-composer{border-top:1px solid #cdbb9d;background:#fffaf1;padding:13px 17px 15px}
.composer-modes{display:flex;gap:6px;margin-bottom:9px}
.composer-modes button{border:1px solid #bba889;background:transparent;color:#625747;padding:6px 10px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
.composer-modes button.is-active{background:#1a2b48;border-color:#1a2b48;color:#f8ead3}
.conversation-composer label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.conversation-composer textarea{display:block;width:100%;min-height:70px;max-height:170px;resize:vertical;border:1px solid #bca98a;background:#fdfbf7;color:#1d2c44;padding:11px 13px;font:14px/1.45 var(--font-body)}
.conversation-composer textarea:focus{outline:2px solid #b38349;outline-offset:1px}
.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:9px}
.composer-footer p{margin:0;color:#756c60;font-size:9px;line-height:1.4}
.send-action{display:flex;align-items:center;gap:14px;border:0;background:#b68449;color:#fffaf0;padding:9px 11px 9px 15px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.send-action span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fffaf0;color:#7c5529}
.send-action:hover{background:#956735}
.aid-deck{display:flex;flex-direction:column;background:#111e34}
.aid-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 19px 16px}
.aid-heading .eyebrow{font-size:8px}
.aid-heading h2{margin:5px 0 0;font:400 27px/1.1 var(--font-display)}
.aid-live{padding:5px 8px;border:1px solid rgba(215,170,98,.42);color:#ddb878;font-size:8px;text-transform:uppercase;letter-spacing:.12em}
.aid-tabs{display:grid;grid-template-columns:repeat(3,1fr);padding:0 12px;border-bottom:1px solid rgba(219,189,143,.22)}
.aid-tabs button{border:0;border-bottom:2px solid transparent;background:none;color:#aeb8c8;padding:10px 5px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.aid-tabs button[aria-selected="true"]{border-bottom-color:#d8aa67;color:#f6e8d2}
.aid-panels{flex:1;min-height:0}
.aid-panel{padding:16px}
.scene-aid{margin:0;background:#f7ecdc;color:#1d2c44}
.scene-aid img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 53%}
.scene-aid figcaption{padding:17px}
.scene-aid figcaption>span,.aid-copy>span,.record-panel-heading>span{color:#8a6335;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.13em}
.scene-aid figcaption strong{display:block;margin:5px 0 7px;font:400 21px/1.2 var(--font-display)}
.scene-aid figcaption p{margin:0;color:#58616a;font-size:10px;line-height:1.55}
.map-aid{position:relative;aspect-ratio:4/3;overflow:hidden;border:6px solid #9e794c;background:radial-gradient(circle at 55% 32%,#f1dec0,#cfb486);box-shadow:inset 0 0 35px rgba(84,56,27,.28);color:#5b3e26}
.map-aid::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(8deg,transparent 0 17px,rgba(92,62,32,.045) 18px 19px);pointer-events:none}
.map-north{position:absolute;z-index:2;right:14px;top:12px;font:italic 13px var(--font-display)}
.map-river{position:absolute;left:49%;top:-10%;width:24%;height:120%;background:rgba(74,113,136,.58);transform:rotate(8deg);border-inline:2px solid rgba(49,78,96,.43)}
.map-road{position:absolute;left:-10%;top:64%;width:83%;height:10px;background:#98764e;transform:rotate(-18deg);border-block:1px solid #70563a}
.map-crossing{position:absolute;z-index:1;left:45%;top:56%;width:34%;height:5px;background:#543d29;transform:rotate(6deg);box-shadow:0 3px 0 rgba(255,255,255,.22)}
.map-tower{position:absolute;z-index:2;right:16%;top:27%;font-size:35px}
.map-label{position:absolute;z-index:2;padding:2px 5px;background:rgba(242,221,186,.74);font:italic 11px var(--font-display)}
.map-label-road{left:5%;bottom:18%}
.map-label-ferry{left:39%;top:47%}
.map-label-tower{right:5%;top:18%}
.aid-copy{padding:18px 3px 4px}
.aid-copy h3{margin:5px 0 8px;color:#f3e7d3;font:400 22px/1.2 var(--font-display)}
.aid-copy p{margin:0;color:#b5bdc8;font-size:10px;line-height:1.55}
.empty-aid{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed rgba(220,190,143,.38);padding:28px;color:#b5bdc8}
.empty-aid>span{display:grid;place-items:center;width:53px;height:53px;border:1px solid #a88253;border-radius:50%;color:#d4aa70;font-size:24px}
.empty-aid h3{margin:16px 0 7px;color:#f5e8d4;font:400 23px var(--font-display)}
.empty-aid p{max-width:280px;margin:0;font-size:11px;line-height:1.6}
.empty-aid.compact{min-height:190px}
.record-panel{color:#172640}
.record-panel-heading{padding:20px;background:#f2e2c8;border-top:3px solid #b4844a}
.record-panel-heading h3{margin:5px 0 2px;font:400 29px/1.12 var(--font-display)}
.record-panel-heading p{margin:0;color:#6b6257;font-size:10px}
.sheet-list{margin:0;background:#fffaf1;padding:10px 20px}
.sheet-list div{display:flex;align-items:start;justify-content:space-between;gap:13px;padding:11px 0;border-bottom:1px solid #e0d4c2}
.sheet-list div:last-child{border-bottom:0}
.sheet-list dt{color:#88643a;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.sheet-list dd{margin:0;text-align:right;font:400 14px var(--font-display)}
.panel-boundary{margin:0;padding:15px 20px;background:#e4e6e9;color:#5c6470;font-size:9px;line-height:1.55}
.quick-fact{padding:14px 17px;background:#fffaf1;border-bottom:1px solid #e1d5c2}
.quick-fact strong{color:#865f34;font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.quick-fact p{margin:5px 0 0;color:#334359;font:400 14px/1.45 var(--font-display)}
.journal-list{margin:0;padding:17px 20px 17px 41px;background:#fffaf1;color:#34445a}
.journal-list li{padding:4px 0;font:400 14px/1.5 var(--font-display)}
@media(max-width:1180px){.game-room-page{overflow:auto}.game-room-shell{height:auto;min-height:0}.game-room-grid{grid-template-columns:220px minmax(0,1fr)}.conversation-stage{height:720px}.aid-deck{grid-column:1/-1;display:block}.aid-tabs{max-width:420px}.aid-panels{min-height:420px}.scene-aid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(260px,.65fr)}.scene-aid img{height:100%;aspect-ratio:auto}.map-aid{max-width:620px}.record-panel{max-width:720px}}
@media(max-width:760px){.room-preview-banner{align-items:flex-start;text-align:left;padding-inline:20px}.game-room-mast{align-items:flex-start;flex-direction:column;gap:9px}.game-room-state{flex-wrap:wrap}.game-room-state span:first-child{padding-left:0}.game-room-shell{padding:10px}.game-room-grid{display:flex;flex-direction:column}.command-rail,.aid-deck{overflow:visible}.command-rail{order:1}.conversation-stage{order:2;height:auto;min-height:650px}.aid-deck{order:3}.rail-heading{padding-bottom:13px}.rail-group{padding-block:15px}.rail-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-log{min-height:390px;max-height:58vh}.scene-aid{display:block}.scene-aid img{height:auto;aspect-ratio:4/3}.aid-panels{min-height:0}.game-room-page .play-header-status{display:none}}
@media(max-width:440px){.game-room-mast{padding-inline:16px}.game-room-shell{padding-inline:0}.command-rail,.conversation-stage,.aid-deck{border-inline:0}.rail-buttons{grid-template-columns:1fr}.game-room-state span{padding-inline:8px}.conversation-heading{padding-inline:17px}.conversation-entry{grid-template-columns:28px minmax(0,1fr)}.conversation-entry.player-entry{grid-template-columns:minmax(0,1fr) 28px}.speaker-mark{width:27px;height:27px;font-size:12px}.conversation-entry>div:last-child>p:last-of-type{font-size:15px}.composer-footer{align-items:flex-end}.aid-panel{padding:11px}}
@media(prefers-reduced-motion:reduce){.rail-buttons button{transition:none}}
