﻿:root{color-scheme:dark;--bg:#101420;--panel:#1a2030;--panel-soft:#202738;--line:#30394b;--text:#edece9;--muted:#9ca7b8;--gold:#dcc294;--gold-dark:#bba071;--green:#98c9ac;--red:#dd9493;--radius:18px;font-family:Inter,"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;font-size:14px;line-height:1.6}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{transition:background .15s,border-color .15s,transform .12s}button:active:not(:disabled){transform:translateY(1px)}h1,h2,h3,p{margin:0}button:disabled{opacity:.42}::selection{background:#736446;color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 78% 2%,#35435f42,transparent 52%),radial-gradient(ellipse at 15% 75%,#27233d30,transparent 50%)}.sky:after{content:"";position:absolute;inset:0;opacity:.18;background-image:radial-gradient(#d4d3c8 1px,transparent 1px);background-size:81px 79px;mask-image:linear-gradient(#000,transparent 80%)}.sky-moon{width:360px;height:360px;border:1px solid #b4bbc209;border-radius:50%;position:absolute;right:-130px;top:140px;box-shadow:0 0 0 60px #b4bbc203,0 0 0 120px #b4bbc203}.ridge{position:absolute;bottom:0;width:100%;height:240px;clip-path:polygon(0 65%,10% 30%,20% 65%,36% 15%,53% 68%,70% 32%,85% 69%,100% 10%,100% 100%,0 100%)}.ridge-back{background:#151b29}.ridge-front{background:#121623;transform:translateY(70px) scaleX(-1)}
.topbar{height:90px;max-width:1600px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff09}.brand{display:flex;gap:12px;align-items:center}.brand>span{font-size:23px;font-weight:600;letter-spacing:5px;line-height:1.1}.brand small{font-size:8px;letter-spacing:2.3px;display:block;color:var(--muted);margin-top:8px}.header-right{display:flex;gap:30px;align-items:center}.text-button{background:transparent;border:0;padding:6px 0;color:var(--gold);font-size:12px;letter-spacing:.3px}.text-button:hover{color:#f7dfb9}.header-right .text-button{color:#b6bdc8;font-size:13px}.header-right .text-button span{margin-left:10px}.connection{font-size:11px;display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:6px 13px;min-width:80px;justify-content:center;font-variant-numeric:tabular-nums;color:var(--muted)}.connection i,.status-dot{display:inline-block;width:6px;height:6px;background:var(--muted);border-radius:50%;flex-shrink:0}.connection.online i,.status-dot{background:var(--green);box-shadow:0 0 10px #a6d5bb30}.connection.online{color:#b9d3c3}.footer{max-width:1600px;padding:24px 48px;margin:20px auto 0;display:flex;justify-content:space-between;color:#758197;font-size:10px;letter-spacing:1px}.footer b{margin:0 10px;font-weight:400}
.panel{background:linear-gradient(130deg,#202737d9,#1a2030eb);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 50px #00000008}.muted{color:var(--muted)}.small{font-size:11px}.eyebrow{font-size:10px;letter-spacing:2.8px;color:var(--gold);font-weight:500;line-height:1.5}.tiny-star{margin-right:10px}.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:42px;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:.3px;padding:10px 18px;border:1px solid transparent;white-space:nowrap}.button.primary{color:#29251e;background:var(--gold);border-color:var(--gold)}.button.primary:hover:not(:disabled){background:#ecd5af;border-color:#ecd5af;box-shadow:0 3px 16px #dcc29418}.button.secondary{color:#d4d8df;background:#ffffff04;border-color:#404b60}.button.secondary:hover:not(:disabled){border-color:#718096;background:#ffffff08}.button-row{display:flex;gap:10px;align-items:center}.full{width:100%}.icon-button{background:none;border:0;color:#b3becd;font-size:23px;line-height:1;width:30px;height:30px;border-radius:7px}.icon-button:hover{background:#ffffff08}.icon-button.enabled{color:var(--gold)}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:22px;font-size:12px;color:#d7d9de}.field input,.field select{width:100%;min-width:0;background:#11172480;border:1px solid #3b4559;border-radius:9px;padding:13px 15px;color:var(--text);font-size:13px;outline-offset:2px}.field input::placeholder{color:#7f8b9d}.field input:hover,.field select:hover{border-color:#556078}.field input:focus,.field select:focus{border-color:var(--gold)}.field select{padding:10px}.form-error{color:var(--red);font-size:12px;margin-top:10px;min-height:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.section-heading h2{font-size:13px;letter-spacing:.7px;font-weight:600}.section-heading>.muted{font-size:10px}.label-badge{font-size:8px;letter-spacing:1.4px;color:#7e8ba1}.note{padding:15px 18px;border-radius:9px;background:#dcc2940a;border:1px solid #dcc29425;color:#c8b997;font-size:12px}
.entry-layout{max-width:1220px;margin:0 auto;min-height:calc(100vh - 180px);display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:90px;padding:65px 45px 45px}.hero{position:relative;padding:8px 0}.hero h1{font-family:"Noto Serif TC","PMingLiU",serif;font-weight:500;font-size:clamp(48px,5.1vw,72px);line-height:1.4;letter-spacing:3px;margin:24px 0}.hero h1>span{color:var(--gold)}.hero-copy{font-size:14px;color:#a6afbe;line-height:2;letter-spacing:.7px}.hero-features{display:flex;gap:36px;margin-top:29px;font-size:10px;color:var(--muted)}.hero-features>span{display:flex;align-items:baseline;gap:8px}.hero-features b{font-family:Georgia,serif;font-size:28px;color:#d3cec1;font-weight:400}.hero-bottom{display:flex;align-items:center;gap:14px;color:#77869b;font-size:10px;letter-spacing:1.4px;margin-top:12px}.hero-bottom .line{width:35px;height:1px;background:#5c6678}.entry-card{padding:36px 33px 0;overflow:hidden;max-width:430px}.card-kicker{font-size:9px;letter-spacing:2px;color:#9fa9ba;margin-bottom:12px}.entry-card h2{font-size:22px;font-weight:500;letter-spacing:1px}.entry-card>p{font-size:12px;margin-top:10px}.tabs{display:flex;background:#0c111d50;border-radius:9px;padding:4px;margin:28px 0;gap:4px;border:1px solid #313a4c}.tabs button{border:1px solid transparent;background:none;flex:1;border-radius:6px;padding:10px;font-size:12px;color:#8f9bae}.tabs button[aria-selected=true]{color:var(--gold);border-color:#475066;background:#2b3446;box-shadow:0 2px 6px #0002}.entry-submit{margin-top:4px;min-height:48px;justify-content:space-between;padding-left:20px;padding-right:20px}.entry-submit span{font-size:21px;font-weight:400}.entry-note{display:flex;align-items:center;gap:15px;color:#aeb7c6;font-size:11px;border-top:1px solid #ffffff09;padding:18px 0 25px}.entry-note small{color:#7d8a9f;font-size:10px}.note-icon{color:var(--gold);font-size:28px}.entry-card-footer{margin:0 -33px;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:#151c2b80;border-top:1px solid #ffffff06;font-size:10px;color:#8e9eae;letter-spacing:.4px}
.scene{height:200px;position:relative;overflow:hidden;margin-top:24px;max-width:450px}.scene-orbit{position:absolute;left:30%;top:10px;width:180px;height:180px;border:1px solid #9fabbe16;border-radius:50%;box-shadow:0 0 0 30px #9fabbe04}.scene-moon{position:absolute;left:45%;top:30px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#ead6ae,#aa987c);box-shadow:0 0 45px #dac59f13}.scene-moon:after{content:"";position:absolute;width:48px;height:48px;background:#171e2e;border-radius:50%;left:16px;top:-7px}.scene-hill{position:absolute;width:100%;height:95px;bottom:8px;background:#1d2736;clip-path:polygon(0 50%,14% 43%,27% 48%,40% 30%,54% 48%,64% 36%,77% 42%,90% 27%,100% 50%,100% 100%,0 100%)}.scene-house{position:absolute;bottom:49px;width:44px;height:44px;background:#344052;z-index:1;border:1px solid #475065}.scene-house:before{content:"";position:absolute;width:59px;height:34px;background:#2c3749;clip-path:polygon(50% 0,100% 100%,0 100%);left:-8px;top:-33px}.scene-house:after{content:"";position:absolute;left:16px;top:16px;width:9px;height:13px;background:#c4ac79;box-shadow:0 0 16px #dcc29433}.house-one{left:22%;transform:scale(.8)}.house-two{left:54%;bottom:40px;transform:scale(1.2)}.house-three{left:76%;bottom:57px;transform:scale(.65)}.scene-caption{position:absolute;bottom:0;z-index:2;font-size:7px;letter-spacing:3px;width:100%;text-align:center;color:#647289}
.room-layout{max-width:1600px;margin:auto;padding:32px 48px 0;display:grid;grid-template-columns:222px minmax(420px,1fr) 304px;gap:22px;align-items:start}.room-heading{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;gap:20px}.room-heading h1{font-size:27px;letter-spacing:1.7px;font-weight:500;margin-top:7px}.room-heading .eyebrow{font-size:8px;letter-spacing:2px}.room-heading-actions{display:flex;gap:12px;align-items:center}.invite-code{display:flex;align-items:center;gap:12px;background:#1c243480;border:1px solid #384257;border-radius:9px;padding:8px 13px;color:var(--gold)}.invite-code small{font-size:9px;color:var(--muted)}.invite-code b{font-size:15px;letter-spacing:3px;font-weight:500}.invite-code>span{font-size:19px;color:#aeb7c6}.left-column,.main-column{display:flex;flex-direction:column;gap:18px}.identity-panel,.lineup-panel,.metrics-panel{padding:19px 17px}.secret-card{border:1px solid #4b4d5c;border-radius:11px;background:radial-gradient(ellipse at 50% 0,#56526925,transparent 80%),#171d2b;min-height:240px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 13px;position:relative}.secret-card:before,.secret-card:after{content:"✦";position:absolute;color:#716752;font-size:9px;top:10px;left:12px}.secret-card:after{top:auto;left:auto;bottom:10px;right:12px}.secret-card .seal{font-family:Georgia,"PMingLiU",serif;width:64px;height:74px;display:grid;place-items:center;font-size:48px;color:var(--gold);margin:8px 0 11px;text-shadow:0 0 30px #dcc29415}.secret-card h3{font-size:14px;font-weight:500;color:#d9cfba;letter-spacing:1px}.secret-card p{font-size:11px;color:#8f9baf;margin-top:10px;line-height:1.9}.secret-line{margin-top:auto;padding-top:25px;font-size:6px;letter-spacing:2px;color:#6c7485}.secret-card .text-button{margin-top:15px;font-size:11px}.secret-card.revealed{border-color:#8a7956}.dead-label{margin-top:8px;font-size:10px;color:var(--red)}.role-symbol{display:grid;place-items:center;width:27px;height:27px;flex-shrink:0;border:1px solid #40506b;background:#2b3b5350;border-radius:7px;color:#a6bedc;font-family:serif;font-size:12px}.role-symbol.criminal{color:#d8aaa7;background:#67424525;border-color:#61464c}.lineup-row{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:11px;color:#c0c9d7}.lineup-row b{margin-left:auto;font-weight:400;font-size:11px;color:#a2adbd}.lineup-footer{font-size:9px;border-top:1px solid #ffffff09;padding-top:14px;margin-top:9px;color:#8797a9;text-align:center;white-space:nowrap}.lineup-footer span{margin:0 3px;color:#475267}.metric-row{display:flex;justify-content:space-between;margin-top:11px;font-size:10px;color:#8595a9}.metric-row b{font-size:11px;color:#bdc9d2;font-weight:400;font-variant-numeric:tabular-nums}.metrics-panel .section-heading{margin-bottom:12px}.resource-count{display:flex;justify-content:space-between;gap:6px;font-size:10px;color:var(--gold);padding-top:13px}.intel{margin-top:16px;font-size:11px;color:#b0bed0}.intel summary{cursor:pointer;color:var(--gold)}.intel p{margin-top:12px;border-top:1px solid #ffffff0a;padding-top:8px}.intel small{font-size:9px;color:#8a99ad}
.phase-panel{padding:22px 24px;background:radial-gradient(ellipse at 90% 10%,#6155391c,transparent 55%),linear-gradient(130deg,#252c3b,#1c2332)}.phase-top{display:flex;justify-content:space-between;align-items:center}.phase-panel .eyebrow{font-size:8px;letter-spacing:2px}.phase-panel h2{font-size:25px;letter-spacing:2px;font-weight:500;margin-top:7px}.phase-clock{text-align:center;min-width:65px;border-left:1px solid #47506455;padding-left:20px}.phase-clock>span{font-family:Georgia,serif;font-size:29px;line-height:1.15;color:var(--gold);font-variant-numeric:tabular-nums;display:block}.phase-clock small{display:block;color:#8290a3;font-size:8px;margin-top:6px}.phase-panel>p{font-size:11px;color:#9eacbd;margin:14px 0 20px;line-height:1.8}.phase-steps{display:flex;justify-content:space-between;padding-top:15px;border-top:1px solid #ffffff0a;font-size:9px;color:#6e7c91;gap:8px}.phase-steps b{font-size:8px;border:1px solid #3b4557;border-radius:50%;width:20px;height:20px;display:inline-grid;place-items:center;font-weight:400;margin-right:5px}.phase-steps .current{color:var(--gold)}.phase-steps .current b{border-color:#8e7e5b;background:#a38b5220}.phase-clock>span.urgent{color:var(--red)}.action-box{border-top:1px solid #ffffff0b;margin-top:18px;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.action-selection{font-size:11px;color:#aeb8c8}.action-selection strong{color:var(--gold);font-weight:500}.action-selection small{display:block;margin-top:4px;font-size:9px;color:#8291a6}.action-box .button{font-size:10px;padding:8px 11px;min-height:36px}.team-votes{font-size:10px;color:#97a8bd;line-height:1.9;padding-top:12px}.seats-panel{padding:20px 22px}.seats-panel .section-heading{margin-bottom:18px}.seats-panel h2>.muted{font-size:11px;font-weight:400;margin-left:8px}.seats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.seat{position:relative;min-width:0;min-height:111px;padding:17px 4px 11px;background:#222b3c70;border:1px solid #354054;border-radius:10px;text-align:center;display:flex;flex-direction:column;align-items:center;color:var(--text)}.seat:disabled{opacity:1}.seat:not(:disabled):hover{background:#323d50;border-color:#7b8490}.seat.selected{background:#5d503033;border-color:var(--gold);box-shadow:inset 0 0 0 1px #dcc29422}.seat.own{border-color:#bca47666;background:#a68b5012}.seat.empty{border-style:dashed;border-color:#34405599;background:#171e2a44}.seat-number{position:absolute;left:7px;top:4px;font-size:8px;color:#62728c;font-variant-numeric:tabular-nums}.host-crown{position:absolute;right:6px;top:2px;font-size:12px;color:var(--gold)}.avatar,.empty-avatar{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;font-size:17px;font-family:"Noto Serif TC","PMingLiU",serif;margin-top:4px;margin-bottom:8px;background:#4a596a;color:#c3d0d7}.empty-avatar{font-family:system-ui;font-size:24px;background:#25304450;border:1px solid #36425677;color:#4b5b74;font-weight:200}.av-1{background:#4f495a;color:#d4c4d5}.av-2{background:#3a5559;color:#b3d0cd}.av-3{background:#625441;color:#dbc8a7}.av-4{background:#51474d;color:#d5b5ba}.av-5{background:#434c64;color:#bac4de}.seat-name{font-size:10px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;line-height:1.4}.seat-name em{font-style:normal;font-size:7px;color:var(--gold);margin-left:3px}.seat>small{font-size:8px;color:#8090a5;margin-top:5px;line-height:1.3}.seat>small.ready-text{color:var(--green)}.seat.empty .seat-name{color:#64768f;font-size:9px}.seat.empty>small{color:#4c5e77;font-size:7px}.seat.eliminated{filter:saturate(.3);background:#161b2580;opacity:.65}.seat.eliminated .avatar{position:relative}.seat.eliminated .avatar:after{content:"";position:absolute;width:43px;height:1px;background:#b08c8c;transform:rotate(-45deg)}.room-actions{margin-top:20px;padding-top:17px;border-top:1px solid #ffffff09;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:13px}.room-actions .button{font-size:11px;padding:9px 14px;min-height:39px}.settings-panel,.journal-panel{padding:18px 22px}.settings-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.settings-fields .field{font-size:10px;margin-bottom:10px;gap:6px}.settings-fields select{font-size:11px;padding:9px 11px}.settings-panel .section-heading{margin-bottom:15px}.settings-panel .text-button{font-size:10px}.journal{max-height:230px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#465268 transparent}.journal-item{display:flex;gap:14px;padding:10px 0;border-top:1px solid #ffffff08}.journal-item:first-child{border:0;padding-top:0}.journal-item>span{font-size:9px;color:#63738b;white-space:nowrap;padding-top:2px}.journal-item p{font-size:10px;color:#9aaabc;line-height:1.8}
.chat-panel{display:flex;flex-direction:column;height:660px;position:sticky;top:18px;padding:20px 0 0;overflow:hidden}.chat-panel>.section-heading{padding:0 20px;margin-bottom:16px}.channel-tabs{display:flex;gap:6px;padding:0 16px 13px;flex-wrap:wrap;border-bottom:1px solid #ffffff09}.channel-tabs button{background:none;border:1px solid transparent;border-radius:6px;color:#8190a6;font-size:10px;padding:6px 9px}.channel-tabs button[aria-selected=true]{background:#3a3a374d;border-color:#70624755;color:var(--gold)}.chat-messages{flex:1;overflow-y:auto;padding:20px 16px;scrollbar-width:thin;scrollbar-color:#465268 transparent;min-height:220px}.chat-empty{height:100%;display:flex;flex-direction:column;justify-content:center;text-align:center;align-items:center;padding-bottom:40px}.chat-empty>span{font-family:Georgia,serif;font-size:75px;line-height:1;color:#536176}.chat-empty h3{font-size:12px;font-weight:400;color:#98a7bd}.chat-empty p{font-size:10px;color:#667a94;margin-top:9px}.chat-message{margin-bottom:17px}.message-meta{display:flex;justify-content:space-between;align-items:baseline;gap:9px;margin-bottom:6px}.message-meta b{font-weight:500;font-size:10px;color:#b3c1d0;overflow-wrap:anywhere}.message-meta time{font-size:8px;color:#5f718a;white-space:nowrap}.chat-message p{font-size:11px;line-height:1.9;border-radius:0 9px 9px 9px;padding:10px 12px;color:#bdc8d5;background:#2b354765;overflow-wrap:anywhere;white-space:pre-wrap}.my-message p{background:#554c3542;border:1px solid #b09b6920;color:#d4c8ae}.my-message .message-meta b{color:var(--gold)}.chat-composer{padding:14px 14px 17px;background:#151d2c66;border-top:1px solid #ffffff09}.chat-hint{font-size:9px;line-height:1.6;color:#73859d;margin-bottom:10px;min-height:15px}.chat-composer form{display:flex;gap:8px;align-items:center;background:#10182680;border:1px solid #38465b;border-radius:9px;padding:5px 6px 5px 12px}.chat-composer input{min-width:0;flex:1;width:100%;border:0;background:none;color:var(--text);font-size:11px;outline:none;padding:8px 0}.chat-composer input::placeholder{color:#64768e}.send-button{background:#d3bb8d;border:0;border-radius:6px;width:31px;height:31px;flex-shrink:0;color:#2b2930;font-size:23px;line-height:1}.chat-composer form:focus-within{border-color:var(--gold)}
.toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translate(-50%,15px);opacity:0;pointer-events:none;max-width:min(540px,calc(100vw - 32px));padding:13px 23px;border-radius:10px;background:#303a4e;border:1px solid #69748b;color:#eee8d9;font-size:12px;box-shadow:0 12px 40px #0005;transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translate(-50%,0)}.modal{color:var(--text);background:#1b2333;border:1px solid #465066;border-radius:17px;box-shadow:0 30px 130px #0009;max-width:660px;width:calc(100vw - 36px);max-height:85vh;padding:30px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#576478 transparent}.modal::backdrop{background:#050914b0;backdrop-filter:blur(5px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.modal-heading h2{font-size:22px;font-weight:500;letter-spacing:1px;margin-top:5px}.modal>p{font-size:12px;color:#a8b7ca;line-height:1.9}.rules-list{padding-left:20px;margin:22px 0}.rules-list li{padding:0 0 14px 7px;font-size:11px;color:#a4b4c8;line-height:1.9}.rules-list strong{display:block;font-size:12px;color:#ddd3c0;margin-bottom:3px;font-weight:500}.modal .note{margin-bottom:21px;line-height:1.9}.small-modal{max-width:430px}.small-modal .button-row{justify-content:flex-end;margin-top:23px}.loading-error{padding:45px;margin:60px auto;max-width:700px}
@media(min-width:1450px){.room-layout{grid-template-columns:240px minmax(480px,1fr) 330px;gap:26px}.seat{min-height:122px}.avatar,.empty-avatar{width:40px;height:40px}.chat-panel{height:710px}.entry-layout{gap:115px}.hero h1{font-size:76px}}
@media(max-width:1190px){.topbar{padding:0 28px}.room-layout{padding:25px 24px 0;grid-template-columns:185px minmax(330px,1fr) 260px;gap:15px}.seats{grid-template-columns:repeat(3,minmax(0,1fr))}.seat{min-height:100px}.identity-panel,.lineup-panel,.metrics-panel{padding:17px 13px}.section-heading{gap:6px}.phase-panel{padding:20px}.seats-panel{padding:18px}.room-actions .button-row{flex-wrap:wrap}.phase-steps{font-size:8px}.phase-steps b{width:17px;height:17px;margin-right:2px}.action-box{align-items:stretch;flex-direction:column}.entry-layout{gap:55px;padding:45px}.entry-card{padding:30px 27px 0}.entry-card-footer{margin:0 -27px}.hero h1{font-size:59px}.footer{padding:24px 28px}}
@media(max-width:960px){.room-layout{grid-template-columns:190px minmax(0,1fr)}.right-column{grid-column:2;position:static;height:430px}.left-column{grid-column:1;grid-row:2/4}.main-column{grid-column:2;grid-row:2}.seats{grid-template-columns:repeat(6,minmax(0,1fr))}.seat{min-height:105px}.room-heading-actions>.button{display:none}.hero h1{font-size:48px}.entry-layout{gap:30px;padding:45px 28px}.hero-features{gap:20px}.entry-card{padding:28px 23px 0}.entry-card h2{font-size:20px}.entry-card-footer{margin:0 -23px}.scene{height:180px}.hero-features b{font-size:25px}.hero-copy{font-size:12px}}
@media(max-width:760px){.topbar{height:76px;padding:0 20px}.brand>span{font-size:20px}.brand img{width:32px;height:32px}.brand small{font-size:6px}.header-right{gap:15px}.header-right .text-button{font-size:11px}.connection{padding:5px 9px;font-size:10px}.entry-layout{display:flex;flex-direction:column;gap:32px;padding:35px 24px;max-width:540px}.hero{width:100%;padding:0}.hero .eyebrow{font-size:8px}.hero h1{font-size:48px;line-height:1.3;margin:18px 0}.hero-copy{font-size:12px}.hero-features{margin-top:20px;gap:24px}.scene{display:none}.hero-bottom{margin-top:20px;font-size:9px}.entry-card{width:100%;max-width:none;padding:28px 25px 0}.entry-card-footer{margin:0 -25px}.footer{gap:10px;flex-direction:column;text-align:center;align-items:center;padding:20px 16px;font-size:9px;margin-top:0}.room-layout{display:flex;flex-direction:column;padding:22px 16px 0;gap:17px}.room-heading{width:100%;align-items:flex-start;margin-bottom:7px;gap:10px}.room-heading h1{font-size:21px;overflow-wrap:anywhere}.room-heading .eyebrow{font-size:6px;letter-spacing:1.5px}.invite-code{padding:7px 9px;gap:7px}.invite-code small{display:none}.invite-code b{font-size:12px;letter-spacing:2px}.invite-code>span{font-size:15px}.left-column{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:13px}.identity-panel{grid-column:1;grid-row:1}.lineup-panel{grid-column:2;grid-row:1}.metrics-panel{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:13px 16px}.metrics-panel .section-heading{display:none}.metric-row{margin:0;flex-direction:column;gap:3px;text-align:center;border-right:1px solid #ffffff0a}.metric-row:last-child{border-right:0}.secret-card{min-height:251px;padding:18px 9px}.secret-card h3{font-size:12px}.secret-card p{font-size:10px}.secret-card .seal{font-size:42px;margin-top:17px}.secret-line{font-size:5px;letter-spacing:1.1px}.lineup-panel .section-heading{margin-bottom:10px}.lineup-row{padding:5px 0;font-size:10px;gap:8px}.lineup-footer{font-size:7px;padding-top:10px;margin-top:9px}.role-symbol{width:24px;height:24px;font-size:11px}.lineup-row b{font-size:10px}.section-heading h2{font-size:12px}.section-heading>.muted{font-size:8px}.label-badge{font-size:6px;letter-spacing:1px}.main-column{width:100%;gap:15px}.phase-panel{padding:20px}.phase-panel h2{font-size:24px}.phase-panel>p{font-size:11px}.phase-steps{font-size:9px}.phase-steps b{width:20px;height:20px;margin-right:5px}.seats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.seat{min-height:111px}.avatar,.empty-avatar{width:38px;height:38px}.seat-name{font-size:11px}.seat>small{font-size:9px}.seat-number{font-size:9px;left:9px;top:6px}.room-actions{flex-direction:column;align-items:stretch}.room-actions>.button-row{display:grid;grid-template-columns:1fr 1fr}.room-actions>.muted{text-align:center}.room-actions .button{font-size:10px;padding:10px}.chat-panel{height:480px;position:static;width:100%}.settings-fields{gap:10px}.settings-panel,.journal-panel{padding:18px}.settings-fields select{font-size:11px}.chat-message p{font-size:12px}.chat-composer input{font-size:13px}.message-meta b{font-size:11px}.chat-hint{font-size:10px}.action-box{flex-direction:column;align-items:stretch}.action-box .button-row{width:100%}.action-box .button{flex:1}.modal{padding:23px}.modal-heading h2{font-size:20px}}
.bot-panel{padding:18px 22px}.bot-panel .section-heading{margin-bottom:10px}.bot-panel p{font-size:12px;line-height:1.8;margin:0 0 12px}.bot-panel .button-row{flex-wrap:wrap;gap:10px}.bot-panel .button{font-size:11px;padding:9px 13px;min-height:38px}.bot-panel>small{display:block;font-size:10px;line-height:1.8;color:var(--muted);margin-top:12px}.bot-badge{position:absolute;right:5px;top:4px;font-size:8px;color:#aec5d5;letter-spacing:1px}
.system-message{margin:4px 0 17px;padding:11px 12px;border:1px solid #dcc29430;border-left:3px solid var(--gold);border-radius:8px;background:#a48b4e12}.system-message .message-meta b{color:var(--gold);font-size:10px}.system-message p{font-size:12px;line-height:1.85;color:#d6cbb6;overflow-wrap:anywhere;white-space:pre-wrap}
.seat-cell{min-width:0;display:flex;flex-direction:column;gap:6px}.seat-cell>.seat{width:100%;flex:1}.seat-last-words{width:100%;text-align:left;border:1px solid #dcc29445;border-radius:8px;background:#69563420;color:#d6cbb6;padding:7px 8px}.seat-last-words>span:first-child{display:block;color:var(--gold);font-size:10px;margin-bottom:3px}.last-words-full{white-space:pre-wrap;overflow-wrap:anywhere;max-height:55dvh;overflow-y:auto}.role-survivors{display:flex;flex-wrap:wrap;gap:8px;margin:-5px 0 16px}.role-survivor{font-size:11px;border:1px solid #405773;border-radius:8px;padding:5px 10px;color:#b4c8df;background:#36507722}.role-survivor.criminal{border-color:#775358;color:#dbb7b7;background:#733e4e22}.role-survivor strong{margin-left:5px;font-variant-numeric:tabular-nums}
.seat-last-words{text-align:center;min-height:36px}.seat-last-words>span:first-child{margin-bottom:0}#last-words-form{margin-top:18px}#last-words-input{width:100%;resize:vertical;min-height:140px;max-height:40dvh;border:1px solid #465066;border-radius:9px;background:#10182680;color:var(--text);padding:12px;font:inherit;font-size:16px;line-height:1.7}#last-words-input:focus{outline:1px solid var(--gold);border-color:var(--gold)}
.mobile-navigation{display:none}.chat-message p{font-size:13px}.chat-composer input{font-size:13px}.seat-name{font-size:11px}.phase-panel{scroll-margin-top:15px}
@media(max-width:760px){.room-layout{padding-bottom:75px}.room-layout[data-mobile-view="board"] .left-column,.room-layout[data-mobile-view="board"] .right-column{display:none}.room-layout[data-mobile-view="chat"] .left-column,.room-layout[data-mobile-view="chat"] .main-column{display:none}.room-layout[data-mobile-view="identity"] .main-column,.room-layout[data-mobile-view="identity"] .right-column{display:none}.room-layout[data-mobile-view="chat"] .chat-panel{height:calc(100dvh - 265px);min-height:330px}.mobile-navigation{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:#1d2638f5;border-top:1px solid #52607850;padding:7px 12px max(9px,env(safe-area-inset-bottom));backdrop-filter:blur(12px);gap:8px}.mobile-navigation button{flex:1;background:transparent;border:1px solid transparent;border-radius:8px;color:#8b9eb8;font-size:18px;padding:4px;display:flex;gap:7px;align-items:center;justify-content:center;min-height:42px}.mobile-navigation button span{font-size:11px}.mobile-navigation button[aria-current="page"]{color:var(--gold);background:#78663d20;border-color:#dcc29426}.room-layout+.footer{display:none}.chat-composer input{font-size:16px}.chat-message p{font-size:14px}.secret-card p{font-size:11px}.toast{bottom:80px}.room-heading{min-height:50px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Shared, visible ballots for daytime and private night teams. */
.room-layout{grid-template-columns:minmax(0,1fr) 320px;gap:20px 24px}.main-column{grid-column:1;grid-row:2}.right-column{grid-column:2;grid-row:2;height:calc(100dvh - 200px);min-height:540px}.left-column{grid-column:1;grid-row:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.left-column .intel-panel{grid-column:1/-1}.seats-panel{padding:22px 24px}.seats{gap:12px}.seat{min-height:143px;padding-top:23px}.seat .avatar{width:45px;height:45px;font-size:23px}.seat-name{font-size:13px}.seat-number{font-size:11px;left:10px;top:5px}.seat-name em{font-size:10px}
.game-status{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #ffffff0a;border-bottom:1px solid #ffffff0a;padding:12px 0;margin:-4px 0 14px}.game-phase{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.game-phase h2{font-size:17px;font-weight:600;letter-spacing:1px}.game-phase>span:last-child{font-size:10px;color:#9aaac1}.game-phase .phase-icon{font-size:23px;color:var(--gold)}.compact-clock{display:flex;align-items:center;gap:10px;white-space:nowrap}.compact-clock>span{font-size:10px;color:#99a8be}.compact-clock b{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--gold);line-height:1}.compact-clock b.urgent{color:var(--red)}.board-stats{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.board-stats .role-survivors{margin:0}.board-stats:has(.role-survivors[hidden]):has(#player-resources:empty){display:none}#player-resources{display:flex;gap:9px;align-items:center;font-size:11px;color:#aebbcf}#player-resources b{color:var(--gold);margin-left:4px}.night-action{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 13px;border-radius:8px;background:#28354a55;margin-bottom:16px}.night-action .action-selection{font-size:12px;line-height:1.8}.night-action .button{white-space:nowrap;font-size:11px;padding:8px 12px;min-height:38px}.bot-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #ffffff0a;margin-top:16px;padding-top:16px}.bot-controls>span{font-size:11px;color:#91a2b8}.bot-controls .button-row{gap:8px;flex-wrap:wrap}.bot-controls .button{font-size:11px;padding:8px 12px;min-height:38px}
@media(max-width:1190px){.room-layout{grid-template-columns:minmax(0,1fr) 285px}.seats{grid-template-columns:repeat(4,minmax(0,1fr))}.left-column{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){.room-layout{grid-template-columns:minmax(0,1fr)}.right-column{grid-column:1;grid-row:3;height:450px;min-height:0}.left-column{grid-row:4;grid-column:1}.seats{grid-template-columns:repeat(6,minmax(0,1fr))}.main-column{grid-column:1;grid-row:2}}
@media(max-width:760px){.seats-panel{padding:17px 14px}.seats{grid-template-columns:repeat(3,minmax(0,1fr))}.seat{min-height:143px}.seat-name{font-size:12px}.game-status{gap:8px}.game-phase{gap:6px}.game-phase h2{font-size:15px}.game-phase>span:last-child{font-size:9px}.compact-clock{gap:5px;flex-direction:column;align-items:flex-end}.compact-clock b{font-size:23px}.compact-clock>span{font-size:9px}.board-stats{gap:8px}.role-survivor{font-size:10px;padding:4px 7px}.night-action{align-items:flex-start;gap:9px;padding:10px}.night-action .action-selection{font-size:11px}.bot-controls{flex-direction:column;align-items:stretch}.bot-controls .button-row{justify-content:space-between}.left-column .metrics-panel{grid-column:1/-1}.room-layout{gap:15px}}
.voting-overview{padding:13px 16px;margin-bottom:16px;border:1px solid #75634470;border-radius:12px;background:linear-gradient(120deg,#60503022,#182132)}
.voting-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.voting-kicker{display:block;font-size:8px;letter-spacing:1.8px;color:#a59576;margin-bottom:3px}.voting-heading h3{font-size:15px;font-weight:600;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.voting-visibility{font-size:9px;font-weight:400;color:#b9c4d2;border:1px solid #53607875;border-radius:5px;padding:1px 5px}.voting-count{white-space:nowrap;color:#99a8bc;font-size:11px}.voting-count>b{font-size:29px;font-weight:500;color:var(--gold);font-variant-numeric:tabular-nums;line-height:1}
.voting-progress,.seat-vote-bar{display:block;appearance:none;-webkit-appearance:none;border:0;width:100%;height:6px;border-radius:99px;overflow:hidden;background:#364052;color:var(--gold)}.voting-progress{margin:14px 0 8px;height:7px}.voting-progress::-webkit-progress-bar,.seat-vote-bar::-webkit-progress-bar{background:#364052;border-radius:99px}.voting-progress::-webkit-progress-value,.seat-vote-bar::-webkit-progress-value{background:var(--gold);border-radius:99px;transition:width .18s}.voting-progress::-moz-progress-bar,.seat-vote-bar::-moz-progress-bar{background:var(--gold);border-radius:99px}
.voting-meta{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#a3b0c2}.voting-meta b{color:#ddd2bc}.voting-lead{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:12px;color:#9daabf;line-height:1.7}.voting-lead.has-leader{color:#e1c8a2}.voting-lead>span:first-child{font-size:18px}.voting-note{font-size:10px;color:#8293aa;margin-top:9px;line-height:1.8}.abstention-list{display:flex;gap:10px;align-items:flex-start;border-top:1px solid #ffffff10;margin-top:10px;padding-top:10px}.abstention-list>span{white-space:nowrap;font-size:10px;color:#a6b1c0;padding-top:2px}
.seats.voting-seats{gap:12px 10px;align-items:start}.seat-cell>.seat{flex:0 0 auto}.seat.vote-candidate{min-height:202px;padding:20px 8px 30px;gap:0}.seat-vote-status{font-size:9px;color:#8495ab;margin:7px 0 4px}.seat-vote-status.has-voted{color:var(--green)}.seat-tally{display:flex;justify-content:center;align-items:baseline;gap:4px;flex-wrap:wrap;width:100%;color:#a7b4c7;line-height:1.3;min-height:31px}.seat-tally>b{font-size:25px;color:#dbe2eb;font-weight:500;font-variant-numeric:tabular-nums}.seat-tally>span{font-size:10px}.seat-tally>em{font-size:8px;color:#e4b998;font-style:normal;white-space:nowrap}.seat-vote-bar{height:3px;margin-top:7px}.seat.leading{border-color:#c78c6377;background:#67482b17}.seat.leading .seat-tally>b{color:#efc597}.seat.selected,.seat.own.selected{border:2px solid var(--gold);background:#74603d33;box-shadow:0 0 0 3px #dcc29418}.seat.selected .avatar{box-shadow:0 0 0 2px #e6ce9c77}.my-vote-marker{position:absolute;bottom:6px;left:3px;right:3px;font-size:10px;font-weight:600;color:var(--gold)}
.seat-voters{border:1px solid #36425980;background:#131c2a55;border-radius:8px;padding:7px;max-height:132px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#52617b transparent}.voter-label{display:block;font-size:8px;color:#8596ab;margin-bottom:5px}.voter-list{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.voter-chip{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;border-radius:5px;background:#36425988;padding:2px 5px;color:#b7c5d7;font-size:9px;line-height:1.65}.voter-chip>b{font-weight:600;font-variant-numeric:tabular-nums;color:#d1dce9}.voter-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voter-chip.is-me{background:#a3894933;color:var(--gold)}.voter-chip.is-me>b{color:var(--gold)}.no-voters{font-size:9px;color:#6f8098}
#ballot-panel{position:sticky;bottom:16px;z-index:12;margin-top:20px}.ballot-card{border:1px solid #536179;border-radius:12px;background:#202b3c;box-shadow:0 8px 30px #0006;padding:13px 16px}.ballot-card.has-choice{border-color:var(--gold);background:#2c2d30}.ballot-card.is-locked{border-color:#67846d;background:#202f30}.ballot-status{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:10px;color:#a8b5c7}.ballot-status>span:last-child{color:var(--gold)}.is-locked .ballot-status>span:last-child{color:var(--green)}.ballot-body{display:flex;justify-content:space-between;align-items:center;gap:15px}.ballot-choice{display:flex;gap:11px;align-items:center;min-width:0}.ballot-seal{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border-radius:10px;background:#8b795b28;border:1px solid #bda57855;color:var(--gold);font-size:22px;font-variant-numeric:tabular-nums}.ballot-choice .action-selection{min-width:0}.ballot-choice strong{display:block;color:#eee2c9;font-size:16px;font-weight:600;overflow-wrap:anywhere}.ballot-choice small{font-size:10px;line-height:1.7;color:#a2b0c2;margin-top:3px}.ballot-body .button-row{flex-shrink:0;gap:8px}.ballot-body .button{font-size:12px;min-height:43px;padding:9px 14px}.ballot-body .button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.profession-panel{padding:17px 20px;border-color:#54688288;background:linear-gradient(110deg,#2b3c4f80,#1a2333)}.profession-card{display:flex;align-items:center;gap:15px}.profession-symbol{flex-shrink:0;width:59px;height:66px;display:grid;place-items:center;border:1px solid #7798bd80;border-radius:12px;font-family:serif;font-size:35px;background:#526b8633;color:#c5daef}.profession-card.criminal .profession-symbol{color:#efc7c2;border-color:#b5808080;background:#734d5a33}.profession-label{color:#9bb0c8;font-size:10px;letter-spacing:1px}.profession-card h3{font-size:24px;font-weight:600;line-height:1.5;letter-spacing:3px;color:#e2edf8}.profession-card p{font-size:11px;color:#a9b8cc;line-height:1.8;margin-top:3px}.profession-panel .resource-count{font-size:12px;border-top:1px solid #ffffff0a;margin-top:12px}.intel-panel{padding:18px}.intel-panel .intel{margin:0}.seat>small.seat-role{font-size:12px;font-weight:600;letter-spacing:1px;line-height:1.5;border:1px solid #718dad66;border-radius:5px;background:#46638735;color:#c4d9f1;padding:2px 6px;margin-top:7px}.seat>small.seat-role.criminal{border-color:#bb858866;background:#82526330;color:#efbfbe}.seat.eliminated .seat-role{color:#d5dee9}.seat.own .seat-role{box-shadow:0 0 0 1px #dcc29450}
section.seat-last-words{text-align:left;padding:9px 8px;color:#e1d3ba}section.seat-last-words h4{font-size:11px;font-weight:600;color:var(--gold);margin:0 0 5px}section.seat-last-words p{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#817456 transparent}section.seat-last-words p:focus-visible{outline:1px solid var(--gold);outline-offset:2px}
@media(max-width:1190px){.ballot-body{flex-direction:column;align-items:stretch}.ballot-body .button-row{display:flex}.ballot-body .button{flex:1}}
@media(max-width:760px){.voting-overview{padding:13px 12px}.voting-heading h3{font-size:14px;gap:6px}.voting-heading{gap:7px}.voting-count>b{font-size:25px}.voting-count>span{font-size:10px}.voting-visibility{font-size:8px}.voting-lead{font-size:11px}.voting-note{font-size:10px}.voting-seats .seat{padding-left:7px;padding-right:7px;min-height:210px}.seat-tally>em{font-size:8px}.seat-voters{padding:6px}.voter-chip{font-size:10px}#ballot-panel{bottom:calc(73px + env(safe-area-inset-bottom));margin-left:-6px;margin-right:-6px}.ballot-card{padding:10px 12px}.ballot-status{margin-bottom:6px}.ballot-seal{width:33px;height:33px;font-size:19px}.ballot-body{gap:9px}.ballot-choice strong{font-size:15px}.ballot-choice small{font-size:10px}.ballot-body .button{min-height:42px;padding:8px;font-size:12px}.profession-panel{padding:14px 16px}.profession-symbol{width:48px;height:58px;font-size:30px}.profession-card h3{font-size:23px}.profession-card p{font-size:11px}.left-column .lineup-panel,.left-column .intel-panel{grid-column:1/-1;grid-row:auto}.seat>small.seat-role{font-size:12px}}
/* A fixed board, paginated seats and paginated last words: no expanding cards. */
body:has(.room-layout){height:100dvh;overflow:hidden}body:has(.room-layout) .topbar{height:64px}body:has(.room-layout) .footer{display:none}.room-layout{height:calc(100dvh - 64px);min-height:0;padding:12px 24px;grid-template-rows:52px minmax(0,1fr);gap:12px 18px;overflow:hidden}.room-heading{height:52px;min-height:0;margin:0}.room-heading .eyebrow{display:none}.room-heading h1{font-size:21px;margin:0}.main-column{height:100%;min-height:0;overflow:hidden}.seats-panel{height:100%;min-height:0;display:flex;flex-direction:column;padding:12px 16px;gap:7px}.seats-panel>.section-heading{margin:0;min-height:23px;flex-shrink:0}.game-status{height:34px;min-height:34px;margin:0;padding:3px 0}.game-phase h2{font-size:15px}.game-phase .phase-icon{font-size:19px}.compact-clock b{font-size:22px}.board-stats{margin:0;min-height:24px;flex-shrink:0}.role-survivor{padding:2px 7px;font-size:10px}.voting-overview{height:114px;min-height:114px;margin:0;padding:7px 10px;position:relative;overflow:hidden}.voting-heading h3{font-size:13px}.voting-count>b{font-size:22px}.voting-progress{margin:5px 0;height:4px}.voting-meta{font-size:9px;line-height:14px}.voting-lead{font-size:10px;line-height:16px;margin-top:2px;height:18px}.voting-lead>span:first-child{font-size:13px}.abstention-list{position:absolute;left:10px;right:10px;bottom:4px;margin:0;padding:0;border:0;gap:5px;align-items:center;height:28px}.abstention-list>span{font-size:9px;padding:0}.voting-note{display:none}.night-action{height:39px;min-height:39px;margin:0;padding:3px 9px;overflow:hidden;align-items:center}.night-action .action-selection{font-size:10px;line-height:15px}.night-action .action-selection small{font-size:9px;line-height:12px;margin:0}.night-action .button{min-height:29px;padding:3px 9px;font-size:10px}
.seats,.seats.voting-seats{flex:1;min-height:0;height:auto;gap:7px;align-items:stretch;align-content:stretch;grid-auto-rows:auto;overflow:hidden}.seats.seat-rows-1{grid-template-rows:minmax(0,1fr)}.seats.seat-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.seats.seat-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.seat-cell{height:100%;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) 76px;gap:4px}.seat-cell>.seat,.seat-cell>.seat.vote-candidate{height:100%;min-height:0;max-height:none;padding:17px 5px 8px;display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:20px 20px 21px 3px;column-gap:5px;row-gap:0;align-content:center;align-items:center;overflow:hidden}.seat-cell .avatar{grid-column:1;grid-row:1/3;width:32px;height:32px;margin:0;font-size:24px}.seat-cell .seat-name{grid-column:2;grid-row:1;width:100%;font-size:11px;line-height:18px;text-align:left}.seat-cell .seat-name em{font-size:8px}.seat-cell .seat>small{grid-column:2;grid-row:2;justify-self:start;max-width:100%;height:19px;line-height:17px;font-size:9px;margin:0;padding:0 3px}.seat-cell .seat>small.seat-role{font-size:12px;letter-spacing:0}.seat-cell .seat-vote-status{grid-column:1/-1;grid-row:3;justify-self:start;font-size:8px;line-height:18px;margin:0}.seat-cell .seat-tally{grid-column:1/-1;grid-row:3;justify-self:end;justify-content:flex-end;align-items:center;height:21px;min-height:0;line-height:21px;gap:2px;flex-wrap:nowrap}.seat-cell .seat-tally>b{font-size:20px;line-height:21px}.seat-cell .seat-tally>span{font-size:9px}.seat-cell .seat-tally>em{display:none}.seat-cell .seat-vote-bar{grid-column:1/-1;grid-row:4;height:2px;margin:0}.seat-cell .seat-number{font-size:9px;left:6px;top:1px}.seat-cell .host-crown,.seat-cell .bot-badge{right:4px;top:0;font-size:9px}.seat-cell .my-vote-marker{top:2px;bottom:auto;left:24px;right:18px;font-size:8px;line-height:11px}.seat-cell>.seat-voters{height:76px;min-height:0;max-height:76px;overflow:hidden;padding:3px}.voter-label{font-size:8px;line-height:10px;margin-bottom:1px}.voter-list{gap:1px;align-content:start}.voter-chip{display:inline-grid;place-items:center;width:16px;height:11px;min-width:16px;line-height:11px;font-size:9px;padding:0;border-radius:2px}.voter-chip>b{font-size:9px;line-height:11px}.no-voters{font-size:9px}.seat-cell>section.seat-last-words{height:76px;min-height:0;max-height:76px;padding:3px 5px;overflow:hidden;text-align:left}.last-words-heading{display:flex;justify-content:space-between;align-items:center;height:19px;gap:2px}.seat-cell>section.seat-last-words h4{font-size:10px;line-height:16px;margin:0}.last-words-pager{display:flex;align-items:center;gap:1px;font-size:8px;line-height:16px}.last-words-pager button{padding:0;width:18px;height:19px;border:0;border-radius:3px;color:var(--gold);background:#655b3d55;font-size:18px;line-height:18px}.seat-cell>section.seat-last-words p{height:48px;max-height:48px;min-height:0;overflow:hidden;font-family:'Microsoft JhengHei',system-ui;font-size:12px;line-height:16px;white-space:pre;overflow-wrap:normal}.seat-cell>#write-last-words{height:32px;align-self:start}.seats>.seat.empty{height:100%;min-height:0;justify-content:center;padding:10px}
.seat-pagination{height:24px;min-height:24px;display:flex;align-items:center;justify-content:center;gap:6px}.seat-pagination button{font-size:10px;line-height:19px;padding:1px 9px;border:1px solid #48536a;border-radius:5px;background:transparent;color:#aebdd0}.seat-pagination button[aria-current=page]{border-color:var(--gold);background:#8b754632;color:var(--gold)}#ballot-panel{position:static;margin:0;flex-shrink:0}.ballot-card{padding:6px 9px;box-shadow:none}.ballot-status{margin-bottom:3px;font-size:9px}.ballot-body{gap:8px;flex-direction:row;align-items:center}.ballot-seal{width:29px;height:29px;font-size:17px}.ballot-choice{gap:7px}.ballot-choice strong{font-size:13px;line-height:17px}.ballot-choice small{font-size:9px;line-height:14px;margin:0}.ballot-body .button{min-height:30px;font-size:11px;padding:3px 9px}.ballot-body .button-row{gap:5px}.room-actions{height:33px;min-height:33px;margin:0;padding-top:4px;gap:8px;flex-direction:row;align-items:center}.room-actions .button{min-height:28px;padding:3px 9px;font-size:10px}.room-actions .text-button{font-size:10px}.room-actions .muted{font-size:9px}.bot-controls{min-height:32px;height:32px;margin:0;padding:3px 0;flex-direction:row;gap:5px}.bot-controls>span{font-size:9px}.bot-controls .button{min-height:26px;padding:2px 6px;font-size:10px}.bot-controls .text-button{font-size:10px}.bot-controls .button-row{gap:5px}
.right-column{height:100%;min-height:0;position:static;grid-column:2;grid-row:2}.chat-messages{min-height:0;scrollbar-width:none}.chat-messages::-webkit-scrollbar{display:none}.chat-panel{padding-top:15px}.chat-panel>.section-heading{margin-bottom:10px}.left-column{display:none;grid-column:1;grid-row:2;height:100%;min-height:0;overflow:hidden;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px}.left-column .settings-panel{grid-column:1/-1}.board-toggle{display:none!important}.room-layout[data-mobile-view=identity] .main-column{display:none}.room-layout[data-mobile-view=identity] .left-column{display:grid}.room-layout[data-mobile-view=identity] .info-toggle{display:none!important}.room-layout[data-mobile-view=identity] .board-toggle{display:block!important}.room-heading-actions>.info-toggle{display:block}.room-layout~.footer{display:none}textarea{scrollbar-width:none}textarea::-webkit-scrollbar{display:none}
@media(max-width:1190px){.room-layout{grid-template-columns:minmax(0,1fr) 270px}.seats{grid-template-columns:repeat(4,minmax(0,1fr))}.ballot-body{flex-direction:row}.ballot-body .button{flex:initial}}
@media(max-width:960px) and (min-width:761px){.room-layout{padding:10px 14px;grid-template-columns:minmax(0,1fr) 240px}.left-column{grid-column:1;grid-row:2}.main-column{grid-column:1;grid-row:2}.right-column{grid-column:2;grid-row:2}.room-heading-actions>.info-toggle{display:block}}
@media(max-width:760px){body:has(.room-layout) .topbar{height:52px;padding:0 14px}.room-layout{height:calc(100dvh - 52px);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:38px minmax(0,1fr);gap:7px;padding:6px 10px calc(60px + env(safe-area-inset-bottom))}.room-heading{height:38px;min-height:0;align-items:center;margin:0}.room-heading h1{font-size:17px}.room-heading-actions>.info-toggle,.room-heading-actions>.board-toggle{display:none!important}.main-column,.left-column,.right-column{grid-column:1;grid-row:2;width:100%;height:100%;min-height:0}.seats-panel{padding:8px;gap:5px}.seats-panel>.section-heading{min-height:20px}.seats-panel h2>.muted{font-size:9px;margin-left:4px}.section-heading>.muted{font-size:8px}.game-status{height:29px;min-height:29px}.game-phase h2{font-size:13px;letter-spacing:0}.game-phase>span:last-child{font-size:8px}.compact-clock{flex-direction:row;gap:4px}.compact-clock>span{font-size:8px}.compact-clock b{font-size:20px}.board-stats{min-height:20px}.role-survivor{font-size:9px;padding:1px 5px}.role-survivors{gap:5px}#player-resources{font-size:9px;gap:6px}.voting-overview{height:108px;min-height:108px;padding:5px 8px}.voting-heading h3{font-size:12px}.voting-count>b{font-size:20px}.voting-count>span{font-size:9px}.voting-lead{font-size:9px}.abstention-list{left:8px;right:8px}.night-action{height:35px;min-height:35px;padding:2px 6px}.night-action .action-selection{font-size:9px;line-height:13px}.night-action .button{font-size:9px;padding:2px 6px;min-height:26px}.seats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.seat-cell .seat-name{font-size:10px}.seat-cell .seat>small.seat-role{font-size:11px}.seat-cell .seat>small{font-size:8px}.seat-cell .seat-vote-status{font-size:8px}.seat-cell .seat-tally>b{font-size:18px}.seat-cell .seat-tally>span{font-size:8px}#ballot-panel{position:static;margin:0}.ballot-card{padding:5px 7px}.ballot-body{gap:5px}.ballot-choice{gap:4px}.ballot-seal{display:none}.ballot-choice strong{font-size:11px}.ballot-choice small{font-size:8px;line-height:12px}.ballot-body .button{min-height:29px;padding:3px 7px;font-size:10px}.ballot-status{font-size:8px;margin-bottom:1px}.room-actions{height:29px;min-height:29px;gap:5px;padding-top:2px}.room-actions>.button-row{display:flex}.room-actions .button{font-size:9px;padding:2px 7px;min-height:25px}.room-actions .text-button{font-size:9px}.room-actions .muted{font-size:8px}.bot-controls{height:30px;min-height:30px;flex-direction:row}.bot-controls>span{font-size:8px}.bot-controls .button-row{gap:4px}.bot-controls .button{font-size:9px;padding:2px 5px}.bot-controls .text-button{font-size:9px}.mobile-navigation{height:53px;min-height:53px;padding:4px 8px max(4px,env(safe-area-inset-bottom))}.mobile-navigation button{min-height:37px}.room-layout[data-mobile-view=chat] .chat-panel{height:100%;min-height:0}.room-layout[data-mobile-view=board] .left-column,.room-layout[data-mobile-view=board] .right-column{display:none}.room-layout[data-mobile-view=chat] .right-column{display:flex}.room-layout[data-mobile-view=chat] .left-column,.room-layout[data-mobile-view=chat] .main-column{display:none}.room-layout[data-mobile-view=identity] .left-column{display:grid;grid-template-columns:1fr 1fr;gap:8px}.left-column .lineup-panel{grid-column:1;grid-row:auto;padding:12px}.left-column .metrics-panel{grid-column:2;grid-row:auto;display:block;padding:12px}.left-column .metrics-panel .section-heading{display:flex}.left-column .metric-row{margin-top:14px;border:0}.left-column .settings-panel{grid-column:1/-1;padding:12px}.chat-messages{padding:12px}.chat-panel .section-heading{padding:0 13px}.toast{bottom:65px}}/* Keep all 18 seats on one screen at every viewport size. */
.seats,.seats.voting-seats{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.seat-cell>.seat-voters,.seat-cell>section.seat-last-words{scrollbar-width:none}.seat-cell>.seat-voters::-webkit-scrollbar,.seat-cell>section.seat-last-words p::-webkit-scrollbar{display:none}.seat-cell>.seat.selected{box-shadow:inset 0 0 0 1px var(--gold);border-width:1px}.seat-cell .seat.leading{border-color:#de9f67}.left-column .metrics-panel{grid-column:auto}.room-layout[data-mobile-view=identity] .board-toggle{display:block}
@media(max-width:1190px) and (min-width:761px){.seat-cell>.seat,.seat-cell>.seat.vote-candidate{grid-template-columns:24px minmax(0,1fr);column-gap:3px;padding-left:3px;padding-right:3px}.seat-cell .avatar{width:24px;height:28px;font-size:20px}.seat-cell .seat-name{font-size:10px}.seat-cell .seat>small.seat-role{font-size:10px}.seat-cell .seat-vote-status{font-size:7px}}
@media(max-width:760px){.room-layout{grid-template-rows:32px minmax(0,1fr);padding-top:3px;gap:4px}.room-heading{height:32px}.seats-panel{padding:6px;gap:4px}.seats-panel>.section-heading{min-height:18px}.game-status{height:24px;min-height:24px}.game-phase h2{font-size:12px}.game-phase .phase-icon{font-size:16px}.compact-clock b{font-size:18px}.board-stats{min-height:18px}.role-survivor{font-size:8px;line-height:14px}.voting-overview{height:61px;min-height:61px;padding:3px 6px}.voting-heading{height:18px}.voting-heading h3{font-size:10px;gap:4px}.voting-visibility{font-size:7px;padding:0 3px}.voting-count>b{font-size:17px}.voting-count>span{font-size:8px}.voting-progress{margin:2px 0;height:3px}.voting-meta{display:none}.voting-overview[data-day=true] .voting-lead{position:absolute;right:6px;top:25px;height:12px;font-size:8px;margin:0}.voting-overview[data-day=true] .voting-lead>span:first-child{display:none}.voting-overview[data-day=true] .abstention-list{height:23px;bottom:1px;right:6px;left:6px;align-items:flex-end}.voting-overview[data-day=false] .voting-lead{height:12px;font-size:8px;line-height:12px;margin:0}.voting-overview[data-day=false] .abstention-list{height:12px;bottom:1px;left:6px;right:6px}.abstention-list>span{font-size:8px}.abstention-list .voter-chip{width:12px;min-width:12px;font-size:8px}.night-action{height:27px;min-height:27px;padding:1px 4px}.night-action .action-selection{font-size:8px;line-height:11px}.night-action .action-selection small{font-size:8px;line-height:10px}.night-action .button{font-size:8px;min-height:22px;padding:1px 4px}.seats,.seats.voting-seats,.seats.seat-rows-6{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));gap:4px}.seat-cell{grid-template-rows:minmax(0,1fr) 36px;gap:1px}.seat-cell>.seat,.seat-cell>.seat.vote-candidate{padding:1px 3px;grid-template-columns:15px minmax(0,1fr);grid-template-rows:12px 13px;column-gap:2px;row-gap:0;align-content:center;border-radius:5px}.seat-cell .avatar{display:none}.seat-cell .seat-number{position:static;grid-column:1;grid-row:1;font-size:8px;line-height:12px;justify-self:start;align-self:center}.seat-cell .seat-name{grid-column:2;grid-row:1;font-size:10px;line-height:12px;padding:0}.seat-cell .seat-name em{font-size:7px;margin-left:2px}.seat-cell .seat>small{grid-column:1/-1;grid-row:2;height:12px;line-height:11px;padding:0 2px;margin:0;font-size:8px;border-radius:3px}.seat-cell .seat>small.seat-role{font-size:9px}.seat-cell .seat-tally{grid-column:1/-1;grid-row:2;height:13px;line-height:13px;gap:1px}.seat-cell .seat-tally>b{font-size:13px;line-height:13px}.seat-cell .seat-tally>span{font-size:7px}.seat-cell .seat-vote-status,.seat-cell .seat-vote-bar,.seat-cell .my-vote-marker,.seat-cell .host-crown,.seat-cell .bot-badge{display:none}.seat-cell .has-submitted .seat-name:before{content:'✓ ';color:var(--green);font-size:8px}.seat-cell>.seat-voters{height:36px;max-height:36px;padding:1px 2px;border-radius:4px}.seat-cell .voter-label{height:8px;font-size:7px;line-height:8px;margin:0}.seat-cell .voter-list{gap:1px}.seat-cell .voter-chip{width:12px;min-width:12px;height:8px;line-height:8px;font-size:8px;border-radius:1px}.seat-cell .voter-chip>b{font-size:8px;line-height:8px}.seat-cell .no-voters{font-size:8px;line-height:12px}.seat-cell>section.seat-last-words{height:36px;max-height:36px;padding:0 2px;border-radius:4px}.last-words-heading{height:12px}.seat-cell>section.seat-last-words h4{font-size:8px;line-height:12px}.last-words-pager{font-size:7px;line-height:12px;gap:0}.last-words-pager button{width:12px;height:12px;font-size:13px;line-height:12px}.seat-cell>section.seat-last-words p{height:22px;max-height:22px;line-height:11px;font-size:10px}.seat-cell>#write-last-words{height:24px;min-height:0;padding:1px;font-size:8px}.seat-cell>#write-last-words>span:first-child{font-size:8px}.ballot-card{padding:3px 5px}.ballot-status{font-size:7px;line-height:10px;margin:0}.ballot-choice strong{font-size:10px;line-height:12px}.ballot-choice small{font-size:7px;line-height:10px}.ballot-body .button{min-height:26px;font-size:9px;padding:2px 5px}.room-actions{height:24px;min-height:24px}.room-actions .button{min-height:22px;font-size:8px;padding:1px 5px}.room-actions .text-button{font-size:8px}.room-actions .muted{font-size:7px}.bot-controls{height:25px;min-height:25px}.bot-controls .button{min-height:22px;font-size:8px}.bot-controls>span,.bot-controls .text-button{font-size:8px}.room-layout[data-mobile-view=identity] .board-toggle{display:none!important}}@media(min-width:761px) and (max-height:900px){body:has(.room-layout) .topbar{height:52px}.room-layout{height:calc(100dvh - 52px);grid-template-rows:40px minmax(0,1fr);padding-top:8px;padding-bottom:8px;gap:8px 15px}.room-heading{height:40px}.seats-panel{padding:8px 12px;gap:4px}.seats-panel>.section-heading{min-height:20px}.game-status{height:26px;min-height:26px}.board-stats{min-height:20px}.role-survivor{font-size:9px;line-height:15px;padding:1px 6px}.voting-overview{height:70px;min-height:70px;padding:4px 8px}.voting-heading{height:20px}.voting-count>b{font-size:21px}.voting-meta{display:none}.voting-progress{margin:3px 0;height:3px}.voting-lead{height:14px;font-size:10px;line-height:14px;margin:0}.abstention-list{height:15px;left:auto;right:8px;bottom:5px;max-width:65%;align-items:center}.abstention-list .voter-chip{height:11px;line-height:11px}.night-action{height:31px;min-height:31px;padding:2px 6px}.night-action .action-selection{font-size:10px;line-height:13px}.night-action .action-selection small{font-size:9px;line-height:11px}.night-action .button{min-height:26px}.seat-cell{grid-template-rows:minmax(0,1fr) 44px;gap:3px}.seat-cell>.seat,.seat-cell>.seat.vote-candidate{padding-top:13px;padding-bottom:3px;grid-template-rows:14px 14px 17px 2px}.seat-cell .avatar{height:28px;width:28px;font-size:23px}.seat-cell .seat-name{font-size:11px;line-height:14px}.seat-cell .seat>small{height:14px;line-height:12px;font-size:9px}.seat-cell .seat>small.seat-role{font-size:11px}.seat-cell .seat-tally{height:17px;line-height:17px}.seat-cell .seat-tally>b{font-size:18px;line-height:17px}.seat-cell .seat-vote-status{font-size:8px;line-height:17px}.seat-cell>.seat-voters{height:44px;max-height:44px;padding:2px 3px}.voter-label{height:9px;font-size:8px;line-height:9px}.voter-chip{height:9px;line-height:9px;width:14px;min-width:14px}.voter-chip>b{line-height:9px}.seat-cell>section.seat-last-words{height:44px;max-height:44px;padding:1px 4px}.last-words-heading{height:14px}.seat-cell>section.seat-last-words h4{font-size:9px;line-height:14px}.last-words-pager button{height:14px;font-size:15px;line-height:14px}.seat-cell>section.seat-last-words p{font-size:11px;line-height:13px;height:26px;max-height:26px}.ballot-card{padding:4px 7px}.ballot-status{font-size:8px;line-height:10px;margin:0}.ballot-choice strong{font-size:12px;line-height:15px}.ballot-choice small{font-size:9px;line-height:12px}.ballot-body .button{min-height:28px;font-size:10px;padding:3px 8px}.room-actions{height:27px;min-height:27px}.room-actions .button{min-height:24px;padding:2px 7px}.bot-controls{height:28px;min-height:28px}.bot-controls .button{min-height:24px}.chat-panel{padding-top:10px}.chat-composer{padding:8px 10px}.chat-hint{margin-bottom:6px}}
@media(max-width:760px) and (max-height:740px){body:has(.room-layout) .topbar{height:44px}.room-layout{height:calc(100dvh - 44px);grid-template-rows:26px minmax(0,1fr);gap:3px;padding-top:2px}.room-heading{height:26px}.room-heading h1{font-size:15px}.invite-code{padding:3px 7px}.seats-panel{gap:3px;padding:4px 6px}.game-status{height:22px;min-height:22px}.voting-overview{height:54px;min-height:54px}.voting-overview[data-day=true] .voting-lead{top:23px;line-height:10px;height:10px}.voting-overview[data-day=true] .abstention-list{height:17px}.seat-cell{grid-template-rows:minmax(0,1fr) 24px;gap:1px}.seat-cell>.seat-voters{height:24px;max-height:24px;padding:0 1px}.seat-cell .voter-label{display:none}.seat-cell .voter-chip{width:11px;min-width:11px;height:7px;line-height:7px}.seat-cell .voter-chip>b{font-size:7px;line-height:7px}.seat-cell .voter-list{gap:0 1px}.seat-cell>section.seat-last-words{height:24px;max-height:24px;padding:0 2px}.last-words-heading{height:11px}.seat-cell>section.seat-last-words h4{font-size:8px;line-height:11px}.last-words-pager button{height:11px;line-height:11px}.seat-cell>section.seat-last-words p{height:11px;max-height:11px}.room-actions{height:22px;min-height:22px}.room-actions .button{min-height:20px}.ballot-card{padding:2px 5px}.ballot-body .button{min-height:23px}.night-action{height:24px;min-height:24px}.mobile-navigation{height:49px;min-height:49px}.mobile-navigation button{min-height:33px}}.seat>small.seat-role.is-intel{color:#e8faff;background:#34778188;border-color:#8cdae0;font-weight:700;box-shadow:0 0 0 1px #79d0d340}
@media(max-width:760px) and (max-height:740px){.seat-cell>.seat,.seat-cell>.seat.vote-candidate{padding-top:0;padding-bottom:0;grid-template-rows:11px 12px}.seat-cell .seat-name{line-height:11px}.seat-cell .seat>small{height:11px;line-height:10px}.seat-cell .seat-tally{height:12px;line-height:12px}.seat-cell .seat-tally>b{font-size:11px;line-height:12px}}
@media(min-width:761px){.seat-cell>.seat,.seat-cell>.seat.vote-candidate{grid-template-columns:minmax(0,1fr)}.seat-cell .seat-name,.seat-cell .seat>small{grid-column:1}}
.settings-panel .settings-fields{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr))}.role-symbol.zombie,.seat>small.seat-role.zombie{background:#4e693c55;color:#c0daa5;border-color:#89a45e}.role-symbol.revenant,.seat>small.seat-role.revenant{background:#67518355;color:#d1b8ed;border-color:#9373bb}@media(max-width:760px){.lineup-panel .lineup-row{padding-top:3px;padding-bottom:3px}}
/* One fixed card per player. These metrics also size the last-words pages. */
#seats {
  --card-padding: 10px;
  --card-gap: 6px;
  --dead-header: 54px;
  --words-heading: 24px;
  --words-inset: 6px;
  --words-font: 13px;
  --words-line: 19px;
}
#seats .seat-cell {
  display: flex;
  flex-direction: column;
  gap: var(--card-gap);
  padding: var(--card-padding);
  border: 1px solid #3b485d;
  border-radius: 10px;
  background: linear-gradient(145deg, #25304490, #1c2432);
}
#seats .seat-cell:has(.own) { border-color: #ae966a; }
#seats .seat-cell:has(.leading) { border-color: #bc8658; }
#seats .seat-cell:has(.selected) { border-color: var(--gold); background: #51452c55; box-shadow: inset 0 0 0 1px var(--gold); }
#seats .seat-cell:has(.seat:not(:disabled)):hover { border-color: #a7b4c7; background: #303c50; }
#seats .seat-cell:has(.eliminated) { border-color: #494a53; background: #1c202b; }
#seats .seat-cell > .seat {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 32px;
  grid-template-rows: 28px 24px 22px 20px;
  align-content: start;
  column-gap: 4px;
  row-gap: 0;
  flex: 1 1 0;
  width: 100%; height: auto; min-height: 0;
  padding: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none;
  text-align: left; overflow: hidden;
}
#seats .seat-cell > .seat:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
#seats .seat-cell > .eliminated { filter: none; opacity: 1; }
#seats .seat-number { position: static; grid-column: 1; grid-row: 1; font-size: 12px; line-height: 20px; color: #9babbe; }
#seats .seat-name { grid-column: 1 / -1; grid-row: 2; font-size: 18px; line-height: 24px; font-weight: 600; padding: 0; }
#seats .seat:not(.vote-candidate) .seat-name { grid-column: 1 / -1; }
#seats .seat-name em { font-size: 9px; margin-left: 3px; }
#seats .has-submitted .seat-name:before { content: none; }
#seats .seat > small { grid-column: 1 / -1; grid-row: 3; height: 22px; line-height: 20px; font-size: 12px; padding: 0 5px; margin: 0; }
#seats .seat > small.seat-role { font-size: 14px; }
#seats .seat-life { grid-column: 1 / -1; grid-row: 3; justify-self: end; color: #93a4b9; font-size: 11px; line-height: 20px; }
#seats .eliminated .seat-life { color: #c7a29e; }
#seats .seat-tally { grid-column: 3; grid-row: 1; display: flex; width: auto; height: 28px; line-height: 28px; gap: 1px; justify-content: flex-end; }
#seats .seat-tally > b { font-size: 25px; line-height: 28px; font-weight: 600; }
#seats .seat-tally > span { font-size: 9px; }
#seats .seat-vote-status { grid-column: 1 / -1; grid-row: 4; display: flex; align-items: center; gap: 6px; font-size: 11px; line-height: 20px; margin: 0; }
#seats .seat-vote-status b { font-size: 13px; font-weight: 600; }
#seats .seat-vote-status.has-voted { color: #a4cfbb; }
#seats .my-vote-marker { display: none; }
#seats .seat-voters {
  flex: 0 0 auto; height: auto; min-height: 0; max-height: none;
  padding: 3px 0 0; border: 0; border-top: 1px solid #ffffff13; border-radius: 0;
  background: none; overflow: hidden;
}
#seats .voter-label { display: block; height: 12px; line-height: 12px; font-size: 9px; margin: 0 0 1px; }
#seats .voter-list { display: flex; flex-wrap: wrap; gap: 2px; }
#seats .voter-chip { width: 20px; min-width: 20px; height: 14px; line-height: 14px; font-size: 11px; border-radius: 3px; }
#seats .voter-chip > b { font-size: 11px; line-height: 14px; }
#seats .has-last-words > .seat { flex: 0 0 var(--dead-header); grid-template-rows: 30px 24px; align-content: start; }
#seats .has-last-words .seat-name { grid-column: 2 / -1; grid-row: 1; font-size: 16px; }
#seats .has-last-words > .seat:not(.vote-candidate) .seat-name { grid-column: 2 / -1; }
#seats .has-last-words .seat > small, #seats .has-last-words .seat-life { grid-row: 2; }
#seats .seat-cell > section.seat-last-words {
  display: flex; flex-direction: column;
  flex: 1 1 0; height: auto; max-height: none; min-height: 0;
  padding: var(--words-inset) 0 0; border: 0; border-top: 1px solid #ffffff19; border-radius: 0;
  background: none; overflow: hidden;
}
#seats .last-words-heading { flex: 0 0 var(--words-heading); height: var(--words-heading); min-height: 0; gap: 2px; }
#seats section.seat-last-words h4 { font-size: 11px; line-height: 18px; }
#seats .last-words-pager { font-size: 9px; line-height: 18px; }
#seats .last-words-pager button { width: 20px; height: 20px; font-size: 18px; line-height: 20px; }
#seats .seat-cell > section.seat-last-words p {
  flex: 1 1 0; height: auto; min-height: 0; max-height: none;
  font-size: var(--words-font); line-height: var(--words-line); margin: 0;
}
#seats .seat-cell > #write-last-words { flex-shrink: 0; width: 100%; height: 28px; min-height: 0; padding: 3px; }

@media (min-width: 761px) and (max-height: 900px), (min-width: 761px) and (max-width: 1190px) {
  #seats { --card-padding: 6px; --card-gap: 3px; --dead-header: 38px; --words-heading: 17px; --words-inset: 3px; --words-font: 12px; --words-line: 16px; }
  #seats .seat-cell > .seat { grid-template-columns: 16px minmax(0, 1fr) 25px; grid-template-rows: 21px 19px 18px; column-gap: 2px; }
  #seats .seat-number { font-size: 10px; line-height: 18px; }
  #seats .seat-name { grid-column: 2; grid-row: 1; font-size: 13px; line-height: 20px; }
  #seats .seat:not(.vote-candidate) .seat-name { grid-column: 2 / -1; }
  #seats .has-last-words .seat-name { font-size: 13px; }
  #seats .seat > small { grid-row: 2; height: 18px; line-height: 16px; font-size: 10px; padding: 0 3px; }
  #seats .seat > small.seat-role { font-size: 12px; }
  #seats .seat-life { grid-row: 2; font-size: 9px; line-height: 17px; }
  #seats .seat-tally { height: 21px; line-height: 21px; }
  #seats .seat-tally > b { font-size: 20px; line-height: 21px; }
  #seats .seat-vote-status { grid-row: 3; font-size: 10px; line-height: 18px; gap: 4px; }
  #seats .seat-vote-status b { font-size: 11px; }
  #seats .seat-voters { padding-top: 3px; }
  #seats .voter-label { display: none; }
  #seats .voter-list { gap: 1px 2px; }
  #seats .voter-chip { width: 14px; min-width: 14px; height: 10px; line-height: 10px; }
  #seats .voter-chip > b { font-size: 9px; line-height: 10px; }
  #seats .has-last-words > .seat { grid-template-rows: 20px 18px; }
  #seats .last-words-pager button { width: 18px; height: 16px; line-height: 16px; font-size: 16px; }
}

@media (max-width: 760px) {
  #seats { --card-padding: 4px; --card-gap: 2px; --dead-header: 28px; --words-heading: 14px; --words-inset: 0px; --words-font: 11px; --words-line: 13px; }
  #seats .seat-cell { border-radius: 6px; }
  #seats .seat-cell > .seat { grid-template-columns: 13px minmax(0, 1fr) 23px; grid-template-rows: 16px 14px; column-gap: 2px; }
  #seats .seat-number { font-size: 9px; line-height: 14px; }
  #seats .seat-name { grid-column: 2; grid-row: 1; font-size: 11px; line-height: 15px; }
  #seats .seat:not(.vote-candidate) .seat-name { grid-column: 2 / -1; }
  #seats .has-last-words .seat-name { font-size: 11px; }
  #seats .seat-name em { font-size: 7px; margin-left: 1px; }
  #seats .seat > small { grid-row: 2; height: 13px; line-height: 11px; font-size: 9px; padding: 0 2px; }
  #seats .seat > small.seat-role { font-size: 10px; }
  #seats .seat-life { grid-row: 2; font-size: 8px; line-height: 12px; }
  #seats .seat-tally { height: 16px; line-height: 16px; }
  #seats .seat-tally > b { font-size: 15px; line-height: 16px; }
  #seats .seat-tally > span { font-size: 7px; }
  #seats .seat-vote-status { grid-row: 2; justify-self: end; font-size: 9px; line-height: 14px; gap: 3px; }
  #seats .seat-vote-status.has-voted > span { display: none; }
  #seats .seat:has(.seat-vote-status) .seat-life { display: none; }
  #seats .seat-vote-status b { font-size: 10px; }
  #seats .seat-voters { padding-top: 2px; }
  #seats .voter-label { display: none; }
  #seats .voter-list { gap: 1px 2px; }
  #seats .voter-chip { width: 12px; min-width: 12px; height: 9px; line-height: 9px; border-radius: 2px; }
  #seats .voter-chip > b { font-size: 8px; line-height: 9px; }
  #seats .has-last-words > .seat { grid-template-rows: 15px 13px; }
  #seats section.seat-last-words h4 { font-size: 9px; line-height: 14px; }
  #seats .last-words-pager { font-size: 8px; line-height: 14px; }
  #seats .last-words-pager button { width: 15px; height: 14px; line-height: 14px; font-size: 15px; }
  #seats .seat-cell > #write-last-words { height: 20px; padding: 0; font-size: 9px; }
}

@media (max-width: 760px) and (max-height: 740px) {
  #seats { --card-padding: 2px; --card-gap: 1px; --dead-header: 24px; --words-heading: 11px; --words-font: 10px; --words-line: 11px; }
  #seats .seat-cell > .seat { grid-template-rows: 13px 12px; }
  #seats .seat-number { line-height: 12px; font-size: 8px; }
  #seats .seat-name { font-size: 10px; line-height: 12px; }
  #seats .has-last-words .seat-name { font-size: 10px; }
  #seats .seat > small { height: 11px; line-height: 9px; font-size: 8px; }
  #seats .seat > small.seat-role { font-size: 9px; }
  #seats .seat-tally { height: 13px; line-height: 13px; }
  #seats .seat-tally > b { font-size: 12px; line-height: 13px; }
  #seats .seat-vote-status { grid-row: 2; justify-self: end; font-size: 8px; line-height: 12px; }
  #seats .seat-vote-status.has-voted > span { display: none; }
  #seats .seat-vote-status b { font-size: 9px; }
  #seats .seat:has(.seat-vote-status) .seat-life { display: none; }
  #seats .seat-voters { padding-top: 1px; }
  #seats .voter-list { gap: 0 1px; }
  #seats .voter-chip { width: 10px; min-width: 10px; height: 8px; line-height: 8px; }
  #seats .voter-chip > b { font-size: 7px; line-height: 8px; }
  #seats .has-last-words > .seat { grid-template-rows: 13px 11px; }
  #seats section.seat-last-words h4 { font-size: 8px; line-height: 11px; }
  #seats .last-words-pager { font-size: 7px; line-height: 11px; }
  #seats .last-words-pager button { width: 12px; height: 11px; line-height: 11px; font-size: 13px; }
}


