/* Shared liner palette. Layout and interaction states remain owned by each panel. */
:root{--liner-wood:#21170f;--liner-raised:#33241a;--liner-ink:#3b2a18;--liner-paper:#e6d1a5;--liner-muted:#bba786;--liner-brass:#b69359;--liner-line:#aa844c66;--liner-surface:linear-gradient(125deg,#35251b,#1b130e 80%)}
body{background:#100c09;color-scheme:dark}
dialog:not(#profile-dialog),.modal .dialog,#scoreboard{background:var(--liner-surface);border-color:var(--liner-brass);border-radius:2px;color:var(--liner-paper);outline:0;box-shadow:0 20px 70px #0009;scrollbar-color:#9c7945 #241a12}
dialog::backdrop,.modal{background:#0d0906cf;backdrop-filter:none}
dialog:not(#profile-dialog) :is(h2,h3),.modal .dialog h2{color:#f2deb5;font-family:Georgia,serif;font-weight:400}
dialog:not(#profile-dialog) :is(p,label,small),.modal .dialog>p:not(.eyebrow){color:var(--liner-muted)}
:is(.public-dialog,#help,#meeting,#pause,#results,#mouse-capture,#scoreboard,#team-panel,.waiting-room) :is(button,a),.game-lobby .lobby-footer :is(button,a){border-color:var(--liner-line);border-radius:2px;background:#3a291d;color:#ebd5ad}
:is(.public-dialog,#help,#meeting,#pause,#results,#mouse-capture,#scoreboard,#team-panel,.waiting-room) :is(button,a):hover:enabled,.game-lobby .lobby-footer :is(button,a):hover{background:#503a24;border-color:#d4af70;color:#fff0cd}
:is(.public-dialog,#help,#meeting,#results) :is(.game-primary,.primary),.capture-card #capture-play{background:linear-gradient(#e3c389,#b78d49);color:#2b1d10;border-color:#e5c58c}
:is(dialog,.modal,#meeting,#scoreboard,.waiting-room) :is(button,a,input,select,textarea):focus-visible{outline:2px solid #edcd90;outline-offset:3px}
dialog:not(#profile-dialog) :is(input:not([type=range]),select,textarea),#meeting :is(input,textarea){background:#170f0b;color:#f0ddbb;border-color:var(--liner-line);border-radius:2px}
dialog:not(#profile-dialog) select option{background:#24180f;color:#f0ddbb}
dialog:not(#profile-dialog) input::placeholder{color:#aa9472}
:is(dialog,.modal,.waiting-room,#scoreboard) kbd{background:#24180f;border-color:#ad8753;color:#efdbb4}
.public-dialog header{border-bottom:1px solid var(--liner-line);padding-bottom:16px}
.public-dialog :is(.eyebrow,#guide-step),#party-code{color:#e4c58b}
.public-dialog .game-primary:hover:enabled{background:#edcd91;color:#2b1d10}
.public-dialog .passenger-list li{background:#49331e70;border-color:#c09a5c;color:#e5d1ab}
.public-dialog .setting-switch{background:#2c2017;border-color:var(--liner-line);color:#ead6ad}
.public-dialog .setting-switch small{color:#bba786}
.public-dialog .setting-switch strong{color:#ad9876}
.public-dialog .setting-switch i{background:#170f0b;border-color:#9c7c4a}
.public-dialog .setting-switch i:after{background:#aa9470}
.public-dialog .setting-switch[aria-checked=true] i{background:#d2af6c}
.public-dialog .setting-switch[aria-checked=true] i:after{background:#352311}
.public-dialog .setting-switch[aria-checked=true] strong{color:#f0d59c}
#party-private[aria-checked=true],.team-voice-dialog [data-talk][aria-pressed=true]{background:#d5b06d;color:#2a1c0e;border-color:#efd198}
.settings-links :is(button,a){border:1px solid var(--liner-line);color:#dfc59c}
.sound-levels{margin:20px 0 24px;padding:16px 18px 12px;border:1px solid var(--liner-line);background:#160f0b66}
.sound-levels legend{padding:0 8px;color:#dabb80;font:15px Georgia,serif}
#settings-dialog .sound-levels label{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:6px 0 8px;font:13px Arial,sans-serif;color:#ead5ad}
.sound-levels output{font-variant-numeric:tabular-nums;color:#f0cf8f;min-width:48px;text-align:right}
#settings-dialog .sound-levels input{width:100%;height:28px;margin:0 0 14px;padding:0;accent-color:#d2ab69;background:transparent;border:0;cursor:pointer}
#settings-dialog .sound-levels p{margin:0;font-size:10px}
.ranking-scroll th{background:#493722;color:#ecd8b3;border-color:var(--liner-line)}
.ranking-scroll :is(th,td){border-color:#a5824c40}.ranking-scroll td{color:#dfcaa6}.ranking-scroll tr:nth-child(even){background:#ffffff04}.ranking-scroll td:nth-child(3){color:#f3d08e}
.team-voice-dialog [data-status]{background:#160f0b;border-color:#d3af70;color:#e4d0a9}
.team-voice-dialog .voice-peers li{border-color:var(--liner-line)}
.team-voice-dialog .voice-peers small{color:#bfa985}
.team-voice-dialog .voice-peers button[aria-checked=false]{background:#542c22;color:#f0c8ad;border-color:#ad7151}
/* Tutorial keeps its generated scenes and compact controls. */
.tutorial-dialog>header,.tutorial-dialog .tutorial-controls,.tutorial-dialog .tutorial-kit-strip,.tutorial-dialog .tutorial-role-strip{background:#291d14;border-color:var(--liner-line);color:var(--liner-paper)}
.tutorial-dialog .tutorial-heading{color:#d2b47d}.tutorial-dialog .tutorial-scene{background:#160f0b}
.tutorial-dialog .tutorial-copy h2{color:#f1dab0}.tutorial-dialog .tutorial-copy p,.tutorial-dialog .tutorial-role-strip span{color:#cbb694}
.tutorial-dialog .tutorial-control{color:#d9c29a}.tutorial-dialog kbd{background:#dec597;color:#382817;border-color:#a88754;box-shadow:0 3px 0 #6d4d2c}
.tutorial-dialog .tutorial-mouse{border-color:#c7a56b;background:#39271a;color:#e8c98d}
.tutorial-dialog .tutorial-footer{background:#20160f;border-color:var(--liner-line)}
.tutorial-dialog #guide-dots button{background:#695137;border-color:#a18350}.tutorial-dialog #guide-dots button[aria-current=true]{background:#e6c48b;border-color:#f6d99c}
/* Preparation: quiet backdrop, one clear portrait, one aligned action row. */
.game-lobby[data-step=character]{background:linear-gradient(90deg,#100b08ed,#1c130dcc 50%,#100b08f2),url('./illustrations/grand-hall-75.webp') center/cover;gap:18px;padding:24px clamp(20px,5vw,90px);grid-template-rows:auto minmax(320px,1fr) auto}
.game-lobby[data-step=character] .boarding-salon{width:min(1120px,100%);justify-self:center;grid-template-columns:minmax(0,1fr) 280px;gap:16px 40px;min-height:320px}
.game-lobby[data-step=character] .boarding-portrait{min-height:300px}
.game-lobby[data-step=character] .lobby-invite-panel{padding:22px;box-shadow:0 10px 25px #0004;background:#241910eb}
.game-lobby[data-step=character] .lobby-invite-panel h3{font-size:23px}
.game-lobby[data-step=character] .lobby-controls{width:min(1120px,100%);justify-self:center;grid-template-columns:minmax(0,1fr) auto;gap:12px 30px;align-items:center;border-top:1px solid var(--liner-line);padding-top:16px}
.game-lobby[data-step=character] #mode-description{font-size:12px;line-height:1.5;max-width:430px;grid-row:1}
.game-lobby[data-step=character] .lobby-mode{grid-column:1;grid-row:2}
.game-lobby[data-step=character] .embark-row{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:minmax(150px,230px) 150px;gap:12px;align-items:center}
.game-lobby[data-step=character] :is(#player-name,#play){height:46px;min-height:46px;margin:0;padding:0 16px;box-sizing:border-box;line-height:normal;align-self:center}
.game-lobby[data-step=character] #play{font:19px Georgia,serif;border-bottom-width:2px;box-shadow:0 2px 0 #614321;letter-spacing:.02em}
.game-lobby[data-step=character] #player-name{font:14px Georgia,serif;background:#160f0b;color:#e5cda3}
.game-lobby[data-step=character] .lobby-mode button{min-height:36px}
.game-lobby[data-step=character] #menu-status{margin:0;font-size:11px;min-height:0}
.game-lobby[data-step=character]:not(.online) .boarding-salon{grid-template-columns:1fr}
.game-lobby[data-step=character] .boarding-character{bottom:0;background:linear-gradient(transparent,#1a110dbb);padding:16px 0 4px}
.game-lobby[data-step=character] .boarding-character h3{font-size:27px}
.game-lobby[data-step=character] .lobby-team-slots li{min-height:68px}
/* Same palette for the unchanged home organization and pause navigation. */
.game-lobby[data-step=mode]{background:radial-gradient(ellipse at 40% 0,#443021 0,#20160f 45%,#100b08 100%)}
.game-lobby[data-step=mode] .mode-card{border-color:#a7864e}.game-lobby[data-step=mode] .mode-card:before{background:linear-gradient(0deg,#140d08,#160e08d9 15%,#160e0822 55%,transparent 80%)}
.game-lobby[data-step=mode] .mode-card-copy>span{color:#d8c6a6}.game-lobby[data-step=mode] .game-title h1 span{color:#c9b691}
.game-lobby .lobby-footer #profile-open{background:#63441e55;color:#f4d49b;border-color:#bb975c}
#pause{background:linear-gradient(90deg,#140d08f5,#1c120ce6 32%,#140d0870 65%,#140d0833)}
#pause .liner-pause{background:none;box-shadow:none;border:0}#pause .pause-actions button{background:none;color:#dec8a2;border-color:#ab865150}#pause .pause-actions button:hover{background:#7c562633;color:#ffe5b3}
#mouse-capture{background:#130d08d9;backdrop-filter:none}.capture-card{background:var(--liner-surface);border:1px solid var(--liner-brass)}.capture-card p{color:#ccb793}
.modal .result-dialog .result-stats{border-color:var(--liner-line)}.modal .result-dialog .result-stats span{color:#bfa67d}.modal .result-dialog .team-winners li{background:#3a281b;border-color:var(--liner-line)}.modal .result-dialog .team-winners small{color:#c6b18c}
/* Waiting cabin, passenger board and team panel keep their existing anchors. */
body.waiting-cabin #waiting-room{background:linear-gradient(90deg,#170f0844,transparent 35%)}
.waiting-room{background:linear-gradient(130deg,#1d130ef5,#33251af8)}
body.waiting-cabin .waiting-panel,body.waiting-cabin .waiting-hint,#team-panel{background:linear-gradient(115deg,#322218f2,#1d140eeb);color:#e5cfaa;border-color:var(--liner-line)}
.waiting-room :is(p,small),.waiting-roster summary,.waiting-hint span{color:#c6b28e}.waiting-room .passenger-list li{background:#51371c70;color:#e8d1a8}
#waiting-weapons button{background:#291c13;color:#d5bd94;border-color:var(--liner-line)}#waiting-weapons button[aria-pressed=true]{background:#6a4c25;border-color:#e4be7a}
#team-panel{border-left-color:#d1b078}#team-panel header strong{color:#e5c78b}#team-panel button{background:#4a321c;color:#edcd92}#team-panel li small{color:#baa581}#team-panel li b{color:#e6c080;border-color:#b2925b}
#scoreboard{background:var(--liner-surface);border-color:var(--liner-brass)}#scoreboard .score-heading{background:linear-gradient(110deg,#493421,#24180f);border-color:var(--liner-line);color:#eed6a9}#scoreboard .score-heading p{color:#baa681}
#scoreboard .passenger-card{background:linear-gradient(100deg,#3d2b1e,#291d14);border-color:var(--liner-line)}#scoreboard :is(.passenger-card-name,.passenger-state){color:#dfcba8}#scoreboard .passenger-mark{color:#ba9f72}
#scoreboard .passenger-card.self,#score-self .passenger-card{background:linear-gradient(100deg,#5a4021,#362619);border-color:#cfab6c;box-shadow:inset 3px 0 #e1ba76}
#scoreboard .passenger-card.eliminated{background:#1b1510;border-color:#6f59413d}#scoreboard .eliminated .passenger-card-name{color:#a1917a}#scoreboard .eliminated .passenger-state{color:#c19480}#scoreboard .passenger-kills small,#scoreboard .score-footer{color:#baa581}#scoreboard .score-footer{background:#21160e;border-color:var(--liner-line)}
#scoreboard .passenger-card.teammate{border-left-color:#d1b078}
/* Council: parchment heading, dark wood, distinct danger/vote states. */
#meeting{background:#21170f;border-color:var(--liner-brass)}#meeting .meeting-heading{background:#dfc99d;border-color:#9b7743;color:#3b2a18}#meeting :is(h2,.meeting-channel,.meeting-clock,.meeting-timer){color:#4b341e}
#meeting .meeting-status{background:#332217;color:#e8d0a7;border-color:var(--liner-line)}#meeting .voting{background:#291c13;border-color:var(--liner-line)}#meeting .vote-heading{color:#e3cda5}#meeting .vote-footnote{color:#b7a17c}
#meeting .meeting-chat{background:#1c130e}#meeting .chat-message{background:#3b291b;border-color:var(--liner-line);color:#e4cd9f}#meeting .chat-message.own{background:#584021}#meeting .vote-person{background:#3a281b;border-color:var(--liner-line);color:#e4cda5}#meeting .vote-person.chosen{background:#6d4e24;border-color:#e1ba76}
#traitor-hud :is(.report-body,.traitor-strike):disabled{background:#302319;color:#b4a187;border-color:#816749}#traitor-hud .report-body kbd{background:#382615;color:#ecd2a1}
.toast{background:#e6d0a4;color:#432e1a;border-color:#a77f45}
@media(max-width:800px){.game-lobby[data-step=character] .boarding-salon{grid-template-columns:minmax(0,1fr) 245px;gap:14px 22px}.game-lobby[data-step=character] .lobby-controls{grid-template-columns:1fr}.game-lobby[data-step=character] .embark-row{grid-column:1;grid-row:3;justify-self:center;grid-template-columns:minmax(160px,260px) 150px}.game-lobby[data-step=character] #mode-description{max-width:none;text-align:center}.game-lobby[data-step=character] .lobby-mode{justify-self:center}}
@media(max-width:580px){.game-lobby[data-step=character]{padding:16px;grid-template-rows:auto auto auto}.game-lobby[data-step=character] .boarding-salon{grid-template-columns:1fr}.game-lobby[data-step=character] .boarding-portrait{min-height:330px}.game-lobby[data-step=character] .lobby-controls{display:grid;gap:12px}.game-lobby[data-step=character] .embark-row{width:100%;grid-template-columns:minmax(0,1fr) 120px}.game-lobby[data-step=character] :is(#player-name,#play){height:44px;min-height:44px}.sound-levels{padding-inline:12px}}
@media(max-height:650px) and (min-width:581px){.game-lobby[data-step=character]{padding-block:14px;gap:10px;grid-template-rows:auto minmax(230px,1fr) auto}.game-lobby[data-step=character] .boarding-salon{min-height:230px}.game-lobby[data-step=character] .boarding-portrait{min-height:220px}.game-lobby[data-step=character] .lobby-invite-panel{padding:14px}.game-lobby[data-step=character] .lobby-controls{padding-top:10px}.game-lobby[data-step=character] .lobby-team-slots li{min-height:54px}}

#meeting .chat-message{background:none}#meeting .chat-message>div{background:#3b291b;border-color:var(--liner-line);color:#e4cd9f}#meeting .chat-message.own{background:none}#meeting .chat-message.own>div{background:#584021}#meeting .chat-message p{color:#e3cda8}#meeting .chat-message b{color:#c9a972}#meeting .chat-empty{color:#bca581}#meeting .vote-person small{color:#c0a77d}#meeting .vote-skip.chosen{background:#6d4e24;color:#f2d49b;border-color:#e1ba76}#meeting .meeting-evidence{background:#52372166;color:#e4c99b;border-color:#a17a40}#meeting .meeting-timer.ending .meeting-clock{color:#8c3425}
#meeting .chat-message>div,#meeting .chat-message.own>div{background:none}#meeting .chat-message p{background:#3b291b}#meeting .chat-message.own p{background:#584021}#meeting .chat-message>img{background:#4a3521}#meeting .discussion form{background:#180f0a;border-color:var(--liner-line);border-radius:2px}#meeting .discussion input{background:transparent;color:#e8d0a6}#meeting .discussion input::placeholder{color:#af9871}#meeting .vote-person.chosen{background:#6d4e24!important;border-color:#e1ba76;color:#f5ddb3}#meeting .vote-person:disabled:not(.chosen){background:#271c13;color:#b7a386}#meeting .vote-person:hover:enabled{background:#584024;border-color:#cca76b}#meeting .vote-count{color:#bca47d}
#help .command-keys dd,#help .setting-scale{color:#bea883}#help .command-keys dt{color:#ead0a2}#help .mouse-settings{border-color:var(--liner-line)}#help input[type=range]{accent-color:#d1aa68}#help .help-grid b{color:#d4af70}
#hud :is(button,.weapon):not(.hotbar button),#touch-controls button,#spectator-controls button{background-color:#302116;border-color:#a5834e66;color:#e5cfa7}#hud .weapon.selected{background:#624522;border-color:#dcbb7e}#hud .report-body:enabled{background:#dcc08b;color:#30200f}
.passenger-name{background:#24180fd9;border-bottom-color:#bd975a}.passenger-name.friendly{border-color:#d3b578;color:#f1d9a9}.passenger-name.friendly small{color:#e1c48a}
#performance-panel{background:#1b130ef2;border-color:#987445;color:#dac29a}#performance-panel>strong{color:#e4be7c}#performance-panel small{color:#b79e77}
