*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif;color:#eef1f3;background:#1e252b}canvas{display:block}header{position:absolute;left:25px;right:25px;top:22px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;text-shadow:0 2px 8px #000}h1{font-size:18px;margin:6px 0;font-weight:600}h1 em{font-style:normal;font-weight:300}.badge{font-size:10px;letter-spacing:.17em;color:#dac79a;font-weight:700}#count{font-size:12px;background:#1d272ac9;border:1px solid #ffffff35;padding:10px 14px;border-radius:20px}#intro{position:absolute;inset:0;background:#111a1baa;display:grid;place-items:center;backdrop-filter:blur(3px)}.introcard{width:min(440px,90vw);background:#f6f4ef;color:#272d2a;padding:42px;border-radius:8px;box-shadow:0 20px 80px #0008}.introcard .badge{color:#827044}.introcard h2{font-size:30px;line-height:1.3;margin:20px 0 10px}.introcard p,.introcard small{color:#707773}.introcard label{font-size:12px;display:block;font-weight:700;margin:30px 0 14px}input{font:inherit;outline:none}#nickname{display:block;width:100%;padding:15px;border:1px solid #cdd2cb;background:white;margin-top:9px;border-radius:4px}.introcard button{width:100%;background:#263f3b;color:white;padding:15px;border:0;border-radius:4px;cursor:pointer}.introcard small{display:block;margin-top:18px;font-size:11px}#chat{position:absolute;bottom:25px;left:25px;width:min(310px,30vw);background:#182325dd;border:1px solid #ffffff25;border-radius:8px;padding:15px;font-size:12px}.panelhead{font-weight:700}.panelhead span{float:right;color:#aeb6b4;font-weight:400}#messages{height:145px;overflow:auto;margin:12px 0;color:#e0e6e2;line-height:1.7;overflow-wrap:anywhere}.msg b{color:#dfc78c;margin-right:7px}#chatForm{display:flex}#chatForm input{width:100%;min-width:0;padding:10px;color:white;border:1px solid #ffffff25;background:#ffffff0d;border-radius:4px}button{cursor:pointer}#chatForm button{background:none;border:0;color:#e5d4a6}#controls{position:absolute;bottom:25px;right:25px;background:#182325dd;border:1px solid #ffffff25;padding:15px 18px;border-radius:8px;font-size:11px;line-height:1.8;color:#c7cfcb}#controls strong,#controls span{display:block}#controls strong{font-size:12px;color:white;margin-bottom:4px}#voting{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);background:#f3f1eb;color:#26312d;padding:15px 20px;border-radius:8px;width:300px;box-shadow:0 5px 30px #0006}#voting b{font-size:12px}#agendaText{font-size:13px;margin:8px 0}.votes{display:flex;gap:5px}.votes button{flex:1;border:0;background:#dce9df;padding:9px;border-radius:4px;color:#294635}.votes button:nth-child(2){background:#f2dfdf;color:#993f49}.votes button:nth-child(3){background:#eee6ce;color:#826528}#myVote{display:block;margin-top:7px;color:#68736c}#agendaButton{position:absolute;right:25px;top:82px;background:#263b38dd;color:white;border:1px solid #ffffff44;border-radius:5px;padding:8px 12px}#toast{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#172422e8;padding:10px 16px;border-radius:5px;display:none;font-size:13px}@media(max-width:700px){#chat{width:32vw;left:8px;bottom:8px;padding:8px}#messages{height:85px}#controls{right:8px;bottom:8px;font-size:9px;padding:8px}#voting{bottom:150px;width:250px}header{left:12px;right:12px}h1{font-size:14px}}

/* Fixed architectural comparison: no gameplay HUD may cover the frame. */
body.comparison header,body.comparison #intro,body.comparison #chat,body.comparison #controls,body.comparison #voting,body.comparison #agendaButton,body.comparison #toast{display:none!important}

[hidden]{display:none!important}#helpToggle{position:absolute;right:25px;bottom:190px;border:1px solid #ffffff44;border-radius:5px;background:#263b38dd;color:#fff;padding:7px 12px;font:inherit;font-size:11px}body.comparison #helpToggle{display:none!important}@media(max-width:700px){#helpToggle{right:8px;bottom:125px}#controls{max-width:55vw}}

#standButton{float:right;border:0;background:#dedfd6;color:#37433c;border-radius:4px;padding:4px 7px;font-size:11px}

#boardTools{position:absolute;right:25px;top:82px;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}#boardTools button{background:#263b38e8;color:#fff;border:1px solid #ffffff44;border-radius:5px;padding:8px 12px;font:inherit;font-size:12px}#boardTools #agendaButton{position:static}body.comparison #boardTools{display:none!important}dialog{color:#eee;background:#111a19;border:1px solid #69736a;border-radius:10px;box-shadow:0 18px 90px #000a;padding:24px;width:min(1120px,94vw);max-height:92dvh;overflow:auto}dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}.dialogHead{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialogHead h2{margin:0;font-size:21px}.closeDialog{border:1px solid #69736a;border-radius:5px;background:#26312c;color:white;padding:8px 12px;font:inherit}.boardTabs{display:flex;gap:8px;margin:18px 0}.boardTabs button{border:1px solid #687467;background:#24322b;color:#c9d0c7;padding:9px 16px;border-radius:5px;font:inherit}.boardTabs button[aria-selected=true]{color:#fff;background:#705c37;border-color:#c2a86c}#liveAgenda{font-size:17px;margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}#voteSummary{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;margin-bottom:16px}#voteSummary span{background:#1e2a25;padding:9px 14px;border:1px solid #4c5b51;border-radius:4px}.searchLabel{display:flex;align-items:center;gap:12px;font-size:13px;color:#bdcabe;margin:12px 0}.searchLabel input{background:#1c2823;color:#fff;border:1px solid #5c7061;border-radius:4px;padding:10px;min-width:0;flex:1}#peopleGrid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;max-height:43dvh;overflow:auto;align-content:start;scrollbar-gutter:stable}#peopleGrid button{font:inherit;font-size:12px;line-height:1.5;text-align:left;overflow-wrap:anywhere;background:#18241d;border:1px solid #35493a;border-radius:4px;padding:7px 6px;min-height:52px}#peopleGrid button[aria-pressed=true]{outline:2px solid #cfb777}#peopleGrid small{display:block;font-size:10px;opacity:.8}#peopleGrid .emptyGrid{grid-column:1/-1;color:#b2c1b6;padding:25px 0}#personDetail{font-size:12px;min-height:18px;color:#c8d4c9}.ballot{padding-top:14px;border-top:1px solid #45534a}.ballot .votes{max-width:420px;margin-top:10px}.ballot .votes button{font-size:15px}.ballot small{display:block;margin-top:8px;color:#c2d1c4}.votes button[aria-pressed=true]{outline:3px solid #8c7647;outline-offset:1px}.votes button:disabled{opacity:.45;cursor:default}#ballotHint{font-size:13px;color:#d2d9cc}#largeAgenda{font-size:28px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;padding:24px 0}#agendaDialog{max-width:600px}#agendaInput{display:block;resize:vertical;width:100%;font:inherit;font-size:18px;line-height:1.6;padding:14px;margin-top:12px;border:1px solid #6d7c6d;border-radius:5px;background:#24302a;color:#fff}#agendaDialog label{display:block;margin-top:25px}#agendaDialog p{font-size:13px;color:#d6c8a4}.applyAgenda{border:0;border-radius:5px;color:#fff;background:#705c37;padding:13px 20px;font:inherit}#chat{max-width:33.333vw}#messages{max-height:28dvh;overscroll-behavior:contain}
@media(max-width:700px){#boardTools{top:78px;right:8px;max-width:90vw}#boardTools button{font-size:11px;padding:7px 9px}dialog{padding:14px}.dialogHead h2{font-size:17px}.boardTabs button{font-size:12px;padding:8px 12px}#voteSummary{gap:4px;font-size:12px}#voteSummary span{padding:6px 8px}#peopleGrid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:36dvh}#liveAgenda{font-size:15px}#largeAgenda{font-size:22px}#chat{width:32vw}#messages{height:100px}#chatForm button{padding:2px}#chatInput{padding:7px 3px;font-size:11px}}
#chatForm button{white-space:nowrap;flex-shrink:0;padding:0 5px}
#avatarTag{position:fixed;transform:translate(-50%,-100%);pointer-events:none;background:#f1f1e5e8;border:1px solid #fff9;border-radius:20px;color:#344d42;padding:5px 11px;font-size:12px;white-space:nowrap;box-shadow:0 2px 8px #0003}#monitorCue{position:fixed;transform:translate(-50%,-100%);border:1px solid #e7d29e;border-radius:18px;background:#273e35ed;color:#fff1ca;padding:8px 13px;font-size:12px;min-height:40px}#voting{width:280px;padding:12px 15px}#monitorButton{margin-top:10px;width:100%;border:1px solid #789080;border-radius:6px;padding:10px;background:#263f35;color:#fff;font:inherit;font-size:13px}#seatDialog,#leavePodiumDialog,#voteConfirmDialog,#handshakeDialog,#speakerDialog{max-width:440px}#leavePodiumTitle{margin:0;font-size:20px}#leavePodiumNote{line-height:1.6;color:#d1dbd2}#keepPodium{background:#365646}#confirmLeavePodium{background:#5b4930}#seatPrompt{line-height:1.7;color:#d1dbd2;margin:22px 0}#seatError{color:#f2c789;font-size:13px}.seatActions{display:flex;gap:10px;margin-top:24px}.seatActions button{flex:1;min-height:46px;border:1px solid #738074;border-radius:6px;font:inherit;background:#26382c;color:white}.seatActions #confirmSeat{background:#8a7044}.seatActions button:disabled{opacity:.45;cursor:default}#travelStatus{position:fixed;top:133px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center;background:#283a2aeb;border:1px solid #ae9a6a;border-radius:28px;padding:9px 10px 9px 17px;font-size:13px;box-shadow:0 4px 20px #0003;max-width:92vw}#cancelTravel{border:0;border-radius:20px;background:#e8e3d3;color:#354334;min-height:37px;padding:8px 15px;white-space:nowrap;font:inherit}#touchControls{display:none}#toast{z-index:3}body:not(.entered) #avatarTag,body:not(.entered) #touchControls,body.comparison #avatarTag,body.comparison #touchControls,body.comparison #monitorCue,body.comparison #travelStatus{display:none!important}
@media(max-width:700px){#touchControls{display:flex;position:fixed;bottom:24px;left:18px;right:18px;justify-content:space-between;align-items:flex-end;pointer-events:none}#joystick{width:126px;height:126px;border-radius:50%;background:#26392d8c;border:1px solid #d6dfc663;position:relative;pointer-events:auto;touch-action:none;user-select:none;box-shadow:inset 0 1px 10px #0003}#stickThumb{position:absolute;width:49px;height:49px;left:38px;top:38px;background:#e6e7d9c9;border:2px solid #fff9;border-radius:50%;box-shadow:0 3px 9px #0004;pointer-events:none}.padArrow{position:absolute;color:#e7eddfc4;pointer-events:none;font-size:18px}.padArrow.up{top:6px;left:54px}.padArrow.down{bottom:6px;left:54px}.padArrow.left{left:8px;top:49px}.padArrow.right{right:8px;top:49px}.touchActions{display:flex;flex-direction:column;gap:12px;pointer-events:auto}.touchActions button{border:1px solid #d8e0c778;border-radius:50%;background:#273c31ce;color:#fff;font:inherit;font-size:12px;width:61px;height:61px;touch-action:none}#jumpButton{background:#8b7643dc}#chat{top:205px;bottom:auto}#chat .panelhead{font-size:10px}#chat .panelhead span{float:none;display:block;font-size:9px;margin-top:3px}#messages{height:80px;max-height:14dvh;margin:8px 0;font-size:11px}#helpToggle{top:120px;bottom:auto}#controls{top:160px;bottom:auto}#voting{top:155px;right:8px;left:auto;bottom:auto;transform:none;width:min(58vw,260px);padding:10px;font-size:11px}#voting #monitorButton{font-size:11px;padding:9px 4px}#voting #myVote{font-size:10px}#travelStatus{top:126px;font-size:12px;gap:9px;padding-left:12px}#avatarTag{font-size:11px}header .badge{display:none}header{top:18px}#count{font-size:10px;padding:8px}h1{font-size:13px}#boardTools{top:65px}#toast{top:110px;max-width:90vw;width:max-content}}
@media(max-width:700px){body.seated #helpToggle{display:none}body.seated #voting{top:122px}}
.ballot .votes button{min-height:48px}.closeDialog{min-height:44px}#monitorButton{min-height:44px}.boardTabs button{min-height:42px}

#stageDialog{max-width:520px}#stageDialog p{font-size:13px;color:#cbd4c8;line-height:1.7}#stagePlaces{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}#stagePlaces button{min-height:48px;border:1px solid #7d8065;border-radius:7px;background:#293b31;color:#eeeadd;font:inherit;font-size:13px;padding:10px}#stagePlaces button:first-child,#stagePlaces button:nth-child(2){grid-column:1/-1;background:#665637}#seatNumber{display:inline-block}body:not(.entered) #stageButton{display:none}

/* The play surface has no permanent toolbar or movement wheel. */
#chat{top:auto;left:12px;bottom:max(12px,env(safe-area-inset-bottom));width:min(310px,32vw);max-width:33.333vw;padding:10px;background:#182325b8}#messages{height:112px;max-height:20dvh}#chatForm{flex-wrap:wrap}#chatForm input{flex:1;min-width:45px}#chatForm button{min-height:34px}#voting{position:fixed;top:auto;left:auto;right:14px;bottom:73px;transform:none;width:auto;padding:0;background:none;box-shadow:none;color:white}#standButton,#paperButton{float:none;border:1px solid #ffffff65;border-radius:24px;background:#273b30df;color:#fff;padding:11px 17px;min-height:44px;font:inherit;font-size:12px;box-shadow:0 2px 10px #0002}#paperButton{position:fixed;right:14px;bottom:max(16px,env(safe-area-inset-bottom));background:#79633be8}#paperButton:disabled{opacity:.6}body:not(.entered) #paperButton,body.comparison #paperButton{display:none}#agendaPane #agendaButton{position:static;margin:10px 0;background:#665537;padding:10px 14px}#travelStatus{top:84px;font-size:12px}header{pointer-events:none}#toast{top:84px;font-size:12px}
@media(max-width:700px){#chat{top:auto;bottom:max(10px,env(safe-area-inset-bottom));left:8px;padding:7px;width:32vw}#messages{height:82px;max-height:15dvh}#voting,body.seated #voting{top:auto;bottom:73px;right:12px;width:auto;padding:0}#paperButton{right:12px}#travelStatus{top:65px}header{top:14px}#count{font-size:10px}#chat .panelhead span{display:none}#toast{top:70px}}

/* Camera recovery is always reachable without a permanent movement toolbar. */
#resetView{position:fixed;right:14px;bottom:73px;min-height:44px;padding:10px 16px;border:1px solid #ffffff65;border-radius:24px;background:#273b30df;color:white;font:inherit;font-size:12px;touch-action:manipulation}body:not(.entered) #resetView,body.comparison #resetView{display:none}#toast{pointer-events:none}canvas{user-select:none;-webkit-user-select:none}@media(max-width:700px){#resetView{right:12px}}

/* The expanded view displays the same bitmap as the in-hall board. */
#displayDialog{width:min(1400px,98vw);max-width:98vw;max-height:94dvh;padding:10px;background:#080b0b;border-color:#8a7753;overflow:hidden}.displayHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 10px}.displayHead h2{font-size:16px;margin:0;color:#d3c6a7}.displayActions{display:flex;gap:6px;align-items:center}.displayActions button{min-height:40px;padding:6px 11px;border:1px solid #58615a;border-radius:5px;background:#18221d;color:#eef0e9;font:inherit;font-size:12px;white-space:nowrap}.displayActions button:disabled{opacity:.35;cursor:default}#displayViewport{max-height:calc(94dvh - 110px);overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y;background:#080b0b}#enlargedBoard{margin:0 auto;max-width:none;cursor:default}#displaySelection{margin:8px 4px 0;font-size:12px;min-height:18px}@media(max-width:700px){.displayHead{flex-wrap:wrap;gap:7px}.displayHead h2{font-size:14px}.displayActions{margin-left:auto;gap:4px}.displayActions button{min-height:42px;padding:6px 9px;font-size:11px}#displayDialog{padding:8px}}

/* A seated voter can reach the same monitor ballot without picking through the avatar. */
#voteButton{position:fixed;right:14px;bottom:179px;min-height:44px;padding:10px 16px;border:1px solid #d9c38d;border-radius:24px;background:#79633be8;color:white;font:inherit;font-size:12px;touch-action:manipulation}body:not(.entered) #voteButton,body.comparison #voteButton{display:none}@media(max-width:700px){#voteButton{right:12px}}

#gavelButton{position:fixed;right:14px;bottom:232px;min-height:44px;padding:10px 16px;border:1px solid #d9c38d;border-radius:24px;background:#79633be8;color:white;font:inherit;font-size:12px;touch-action:manipulation}#gavelButton:disabled{opacity:.65}body:not(.entered) #gavelButton,body.comparison #gavelButton{display:none}@media(max-width:700px){#gavelButton{right:12px}}

/* Compact ambience control; the volume slider is shown only on request. */
#ambienceControl{position:fixed;top:83px;right:14px;z-index:8;color:#f1efe7;font-size:12px}.ambienceButtons{display:flex;border:1px solid #ffffff42;border-radius:22px;background:#273b30dd;overflow:hidden}.ambienceButtons button{border:0;background:transparent;color:inherit;min-height:40px;padding:8px 12px;font:inherit;cursor:pointer;touch-action:manipulation}#ambienceToggle[aria-pressed=false]{color:#ced3cd}#ambienceSettings{border-left:1px solid #ffffff22;min-width:40px}#ambiencePanel{position:absolute;right:0;top:48px;width:185px;background:#202f29f2;border:1px solid #ffffff42;border-radius:12px;padding:12px;box-shadow:0 5px 16px #0003}#ambiencePanel label{display:flex;justify-content:space-between;align-items:center}#ambienceVolume{width:100%;margin:10px 0 0;padding:0;min-height:32px;accent-color:#cbb77c;touch-action:pan-y}body:not(.entered) #ambienceControl,body.comparison #ambienceControl{display:none}@media(max-width:700px){#ambienceControl{top:56px;right:12px}.ambienceButtons button{min-height:44px}#ambienceVolume{min-height:44px}}

#roarButton,#phoneButton{position:fixed;right:132px;bottom:max(16px,env(safe-area-inset-bottom));width:114px;min-height:44px;border:1px solid #d9c38d;border-radius:24px;background:#705232ed;color:#fff;font:inherit;font-size:12px;touch-action:manipulation}#phoneButton{bottom:73px;background:#273b30ef}#phoneButton[aria-pressed=true]{background:#655638}#roarButton:disabled,#phoneButton:disabled{opacity:.6}body:not(.entered) #roarButton,body.comparison #roarButton,body:not(.entered) #phoneButton,body.comparison #phoneButton{display:none}.roarSoundOption{border-top:1px solid #ffffff25;padding-top:10px;margin-top:6px;gap:12px}.roarSoundOption input{width:20px;height:20px;accent-color:#cbb77c}

#agendaButton,#displayAgendaButton{display:none!important}.lawTools{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.lawTools button,.lawPrimary{min-height:46px;padding:11px 16px;font:inherit;border:1px solid #9a865a;border-radius:7px;background:#705c37;color:white}#lawRoundSummary{padding:12px 14px;background:#26342b;border:1px solid #51644f;border-radius:7px;line-height:1.8}#lawRoundSummary strong{color:#ff777b;font-variant-numeric:tabular-nums;font-size:21px}#lawDescription,.lawBody{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;color:#d8ded7}.lawNotice{font-size:13px;line-height:1.7;color:#c2cabd}.lawField{display:block;margin:22px 0;font-weight:600}.lawField input,.lawField textarea{display:block;width:100%;margin-top:8px;padding:12px;background:#233029;border:1px solid #6c7d6b;border-radius:6px;color:white;font:inherit;line-height:1.7;resize:vertical}#lawProposalDialog{max-width:680px}#lawFormError{color:#ffbd9c;line-height:1.6}.lawFilter{display:flex;gap:12px;align-items:center;margin:20px 0}.lawFilter select{min-height:42px;background:#26332b;color:white;border:1px solid #74816c;border-radius:5px;padding:8px;font:inherit}.lawCard{border:1px solid #52624f;border-radius:9px;background:#1b2820;padding:18px;margin:14px 0}.lawCard h3{font-size:20px;line-height:1.5;margin:0 0 9px;overflow-wrap:anywhere}.lawMeta{font-size:12px;color:#b6c7b6;line-height:1.7}.lawActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.lawActions button{min-height:42px;padding:8px 14px;border:1px solid #718369;border-radius:6px;background:#2a3a2d;color:white;font:inherit}.lawActions button[aria-pressed=true]{background:#79633d;border-color:#ceb76f}.lawActions button:disabled{opacity:.55;cursor:default}.lawReport,.chatReport{font-size:11px!important;color:#c5c8be!important;background:transparent!important}.chatReport{border:0;padding:1px 4px;min-height:24px;float:right}.msg{padding-bottom:4px}.lawResult{color:#e2c998;font-weight:600}#lawCards:empty::before,#moderationCards:empty::before{content:'표시할 내용이 없습니다.';display:block;padding:28px 0;color:#b8c4b5}#lawsStatus,#moderationStatus{font-size:13px;color:#e4c68c}#largeAgenda{font-size:23px;padding:12px 0;margin-bottom:8px}@media(max-width:700px){.lawCard{padding:13px}.lawCard h3{font-size:18px}.lawTools button{flex:1;min-width:130px}.lawField{margin:17px 0}.lawField input,.lawField textarea{font-size:16px}#lawRoundSummary{font-size:12px}.lawBody{font-size:14px}}

/* One readable monitor: current ballot above, next proposals below. */
#boardDialog:has(#agendaPane:not([hidden])){width:min(740px,94vw);padding:24px}
#agendaPane{margin-top:24px}
.currentLawHead,.nextLawHead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.currentLawHead h3,.nextLawHead h3{font-size:16px;margin:0;color:#d1dbd3;font-weight:600}
#lawRoundStatus{padding:5px 10px;border-radius:16px;font-size:12px;font-weight:600;background:#2d3b33;color:#d6e0d8}
#lawRoundStatus[data-phase=voting]{background:#6b343a;color:#ffe7e9}#lawRoundStatus[data-phase=result]{background:#4e452e;color:#efdb9e}
#currentLawPane #largeAgenda{font-size:25px;line-height:1.5;margin:16px 0 10px;padding:0}
#currentLawPane #lawRoundSummary{padding:0;background:none;border:0;font-size:14px;line-height:1.7;color:#c9d4cc}
#lawRoundSummary strong{font-size:23px;color:#ff858b}
#lawDetails{margin:14px 0 0}#lawDetails summary{min-height:44px;align-content:center;cursor:pointer;color:#b8cbbf;font-size:14px;padding:10px 0}
#lawDetails summary:focus-visible,.nextLawActions button:focus-visible{outline:2px solid #d9bc73;outline-offset:3px}
#lawDescription{font-size:16px;margin:8px 0 18px}#lawDetails[open] #lawDescription{max-height:28dvh;overflow:auto;padding-right:8px}
#currentLawPane .ballot{padding-top:12px;border:0;margin:0}#currentLawPane .votes{max-width:none;gap:10px;margin-top:10px}#currentLawPane .votes button{min-height:50px;font-size:16px;font-weight:600}
#currentLawPane #boardMyVote{min-height:18px;margin-top:10px}#lawResultCounts{font-size:18px;line-height:1.6;margin:14px 0 0;color:#e6d3a3;font-weight:600}
#nextLawsPane{margin-top:24px;padding-top:22px;border-top:1px solid #41544a}.nextLawHead>span{color:#b9c9bd;font-size:13px}.nextLawHead b{font-weight:600;color:#e1e9df}
.nextLawActions{display:flex;gap:12px;margin-top:14px}.nextLawActions button{flex:1;min-height:48px;padding:11px 14px;font:inherit;font-size:16px;cursor:pointer}
.lawSecondary{background:#24372c;color:#edf4ed;border:1px solid #6d846f;border-radius:7px}
.monitorBottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.monitorBottom p{font-size:12px;line-height:1.6;color:#aebfb3;margin:0}.monitorBottom button{min-height:44px;border:0;background:none;color:#cbb98d;font:inherit;font-size:12px;padding:8px 0;cursor:pointer}
@media(max-width:600px){#boardDialog:has(#agendaPane:not([hidden])){padding:20px 16px}#agendaPane{margin-top:22px}#currentLawPane #largeAgenda{font-size:22px}.nextLawActions{gap:10px}.nextLawActions button{font-size:15px;padding:11px 8px}#lawDescription{font-size:15px}#lawRoundSummary strong{font-size:22px}#currentLawPane .votes{gap:8px}.monitorBottom{gap:8px}.monitorBottom p{font-size:11px}#nextLawsPane{margin-top:22px;padding-top:20px}}

/* A compact action dock; SVGs stay in place when the action state changes. */
#voting{display:none!important}
#actionDock{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(2,48px);grid-template-areas:"vote phone" "roar paper" "clap cheer" "reset posture";gap:10px;z-index:2;pointer-events:auto}
#actionDock>.actionButton{position:relative;inset:auto;float:none;transform:none;display:grid;place-items:center;width:48px;height:48px;min-width:48px;min-height:48px;margin:0;padding:0;border:1px solid #e3e9dc66;border-radius:50%;background:#24392fe8;color:#f4f2e7;font:inherit;box-shadow:0 2px 7px #0002;touch-action:manipulation;cursor:pointer;transition:background-color .16s,border-color .16s,opacity .16s}
#actionDock>.actionButton svg{display:block;width:24px;height:24px;pointer-events:none}
#actionDock>.actionButton:disabled{opacity:.3;cursor:default;box-shadow:none}
#actionDock>.actionButton[aria-pressed=true]{background:#796640;border-color:#ead9a7}
#actionDock>.actionButton:focus-visible{outline:2px solid #c9e8d6;outline-offset:3px}
#actionDock>.actionButton:active:not(:disabled){background:#4a6050;border-color:#f3edda}
#actionDock #voteButton{grid-area:vote}#actionDock #phoneButton{grid-area:phone}#actionDock #roarButton{grid-area:roar}#actionDock #paperButton{grid-area:paper}#actionDock #resetView{grid-area:reset}#actionDock #jumpButton,#actionDock #standButton{grid-area:posture}#actionDock #gavelButton{grid-area:4/2}

body:not(.entered) #actionDock,body.comparison #actionDock,body:has(dialog[open]) #actionDock{display:none}
body:not(.entered) #chat{display:none}
@media(hover:hover){#actionDock>.actionButton:hover:not(:disabled){background:#405648;border-color:#e1e6d7}}
@media(max-width:700px){#actionDock{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){#actionDock>.actionButton{transition:none}}

#actionDock #sleepButton{grid-area:5/1/6/3;justify-self:center}
#actionDock #gavelButton{grid-area:6/2}

/* Expanded board stays interactive beside chat; only other dialogs are modal. */
:root{--visible-top:0px;--visible-left:0px;--visible-width:100vw;--visible-height:100dvh;--visible-bottom:0px;--board-left:330px}
#chat{position:fixed;bottom:calc(var(--visible-bottom) + max(10px,env(safe-area-inset-bottom)));left:calc(var(--visible-left) + 8px);z-index:12;max-width:calc(var(--visible-width)/3)}
body.display-open header,body.display-open #ambienceControl{visibility:hidden}
#displayDialog[open]{position:fixed;inset:auto;left:calc(var(--visible-left) + var(--board-left));top:calc(var(--visible-top) + 8px);margin:0;width:calc(var(--visible-width) - var(--board-left) - 8px);max-width:none;height:calc(var(--visible-height) - 16px);max-height:none;display:flex;flex-direction:column;z-index:11}
#displayViewport{flex:1;min-height:0;max-height:none}
#displaySelection{flex-shrink:0} .displayHead{flex-shrink:0}
body.display-open #chat{background:#182325f2}
body.keyboard-open #messages{height:44px;max-height:12dvh;margin:5px 0}
body.keyboard-open #chat .panelhead{display:none}
@media(max-width:700px){#chatInput{font-size:16px;min-height:44px}#chatForm button{min-height:40px}body.display-open #messages{height:64px;margin:6px 0}body.display-open.keyboard-open #messages{height:32px;margin:4px 0}.displayActions{gap:3px}.displayActions button{padding:5px 7px}#displayDialog[open]{max-width:none}}

/* Pointer-driven drag and resize works with mouse, pen and a single finger. */
#chat{padding-bottom:25px}#chat .panelhead{cursor:grab;touch-action:none;user-select:none;min-height:26px;display:flex;align-items:center;justify-content:space-between;gap:5px}#chat .panelhead span{font-size:9px;margin:0}#chatResize{position:absolute;right:0;bottom:0;width:30px;height:30px;padding:5px;border:0;border-radius:4px;background:transparent;color:#bccbbf;cursor:nwse-resize;touch-action:none}#chatResize svg{width:20px;height:20px;pointer-events:none}#chatResize:focus-visible{outline:2px solid #d9c38d}#chat.custom-chat{bottom:auto;max-width:none;max-height:none;display:flex;flex-direction:column}#chat.custom-chat #messages{flex:1;min-height:0;height:auto;max-height:none;margin:5px 0}#chat.custom-chat #chatForm{flex-shrink:0}#chat.chat-adjusting{user-select:none;border-color:#d9c38d}body.keyboard-open #chat .panelhead{display:flex}#chat .panelhead:active{cursor:grabbing}

#chat{background:rgb(21 35 33 / 55%)}body.display-open #chat{background:rgb(21 35 33 / 62%)}#chat .panelhead,#chat .msg{text-shadow:0 1px 3px #0009}#chatInput{background:rgb(16 26 24 / 30%)}

body.display-open #chat #messages{flex:1;min-height:0;height:auto;max-height:none}#displayDialog .displayHead{flex-wrap:wrap}#displayDialog .displayActions{flex-wrap:wrap;margin-left:auto}

#chatBlocked{border:1px solid #c9d5c044;border-radius:14px;padding:2px 7px;background:#192921ba;color:#e5d4a6;font:inherit;font-size:11px;min-height:28px;white-space:nowrap;touch-action:manipulation}#chat .panelhead:has(#chatBlocked:not([hidden]))>span{display:none}#chat .chatAuthor{background:none;border:0;padding:0;margin:0;color:#dfc78c;font:inherit;font-weight:700;text-align:left;touch-action:manipulation}#chatPersonMenu{position:absolute;left:6px;right:6px;bottom:84px;display:flex;flex-wrap:wrap;gap:5px;background:#202d28fa;border:1px solid #788b74;border-radius:9px;padding:9px;z-index:4;box-shadow:0 4px 14px #0005}#chatPersonMenu[hidden]{display:none}#chatPersonMenu strong{width:100%;font-size:12px;overflow-wrap:anywhere}#chatPersonMenu button{min-height:40px;flex:1;white-space:nowrap;border:1px solid #81907855;border-radius:5px;background:#354b3b;color:#fff;font:inherit;font-size:12px;padding:7px}#chatPersonMenu button:first-of-type{background:#86534a}#blockedChatDialog{max-width:480px}.blockedChatRow{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #4c6151}.blockedChatRow button{background:#354b3b;border:1px solid #859273;border-radius:5px;color:#fff;font:inherit;min-height:44px;padding:8px 12px}.blockedChatRow span{overflow-wrap:anywhere}

/* Mobile reading view: full-width agenda, bottom chat drawer. Desktop stays split. */
#chatCollapse,#mobileBoard{display:none}
body.mobile-display.display-open #chatCollapse{display:block;border:0;background:transparent;color:#e7d8ac;font:inherit;font-size:13px;min-height:44px;min-width:78px;padding:5px;touch-action:manipulation}
body.mobile-display.display-open #chat{padding:6px 10px;max-width:none;min-height:0;border-radius:12px;display:flex;flex-direction:column;background:rgb(21 35 33 / 82%)}
body.mobile-display.display-open #chat .panelhead{min-height:44px;flex-shrink:0;cursor:default;touch-action:manipulation}body.mobile-display.display-open #chat .panelhead>span{display:none}
body.mobile-display.display-open #chatResize{display:none}body.mobile-display.display-open:not(.mobile-chat-expanded) #chat #messages,body.mobile-display.display-open:not(.mobile-chat-expanded) #chat #chatForm,body.mobile-display.display-open:not(.mobile-chat-expanded) #chatPersonMenu{display:none}
body.mobile-display.display-open #chat #messages{font-size:14px;line-height:1.65}body.mobile-display.display-open #chat #chatForm{flex-wrap:nowrap;gap:6px}body.mobile-display.display-open #chatInput{font-size:16px;min-height:44px;padding:8px}body.mobile-display.display-open #chatForm button{min-height:44px;min-width:44px;font-size:14px}
body.mobile-display #displayDialog[open]{left:calc(var(--visible-left) + 8px);width:calc(var(--visible-width) - 16px);height:calc(var(--visible-height) - var(--mobile-chat-height,58px) - 24px);padding:12px;border-radius:12px}
body.mobile-display #displayDialog .displayHead{flex-wrap:nowrap;gap:8px;padding-bottom:8px}body.mobile-display #displayDialog .displayHead h2{font-size:16px}body.mobile-display #displayDialog .displayActions{flex-wrap:nowrap}body.mobile-display #displayDialog .closeDialog{min-height:44px;font-size:14px;padding:6px 12px}
body.mobile-display #displayZoomIn,body.mobile-display #displayZoomOut,body.mobile-display #displayFit,body.mobile-display #enlargedBoard{display:none}
body.mobile-display #mobileBoard{display:block;padding:10px 3px 18px;color:#eef1e8;font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.mobileBoardTop{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#d6c89d}#mobileBoardClock{color:#ff777e;font:600 25px ui-monospace,monospace;white-space:nowrap}#mobileAgendaTitle{font-size:22px;line-height:1.5;margin:20px 0 10px}#mobileAgendaAuthor,#mobileBoardNote{font-size:13px;color:#bac8bd;white-space:pre-wrap}#mobileAgendaBody{font-size:16px;line-height:1.8;white-space:pre-wrap;margin:20px 0}#mobileOutcome{font-size:23px;color:#e3cf95;margin:20px 0}#mobileTotals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid #3d4d42;padding-top:16px;margin-top:24px}#mobileTotals span,#mobileTotals strong{display:block}#mobileTotals span{font-size:14px}#mobileTotals strong{font-size:23px;font-weight:600}#mobileNameGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0}#mobileNameGrid button{min-height:54px;padding:8px;background:#17251d;border:1px solid #445d47;border-radius:6px;font:inherit;font-size:14px;text-align:left;overflow-wrap:anywhere}#mobileNameGrid small{display:block;color:#b9c6ba;font-size:12px}

#speechBubbles{position:fixed;inset:0;pointer-events:none;z-index:3}.speechBubble{position:absolute;transform:translate(-50%,-100%);width:max-content;max-width:calc(100vw - 24px);background:rgb(21 35 33 / 55%);color:#f4f5ef;border:1px solid #ffffff38;border-radius:12px;padding:9px 14px;font-size:clamp(18px,1.5vw,20px);font-weight:500;line-height:1.5;white-space:pre;box-shadow:0 2px 8px #0002;text-shadow:0 1px 3px #000c;text-align:center}.speechBubble::after{content:'';position:absolute;bottom:-6px;left:calc(50% - 6px);width:10px;height:10px;transform:rotate(45deg);background:rgb(21 35 33 / 55%)}.chatSpeechStar{display:inline-block;margin-right:4px;color:#d6c183;font-size:.9em}.chatSpeechStar[data-active=true]{color:#fff0ab;text-shadow:0 0 5px #e6c76c88}
#mobileAgendaDetails{margin-top:20px;border-top:1px solid #3d4d42}#mobileAgendaDetails summary{min-height:48px;padding:12px 0;color:#d5dccc;font-size:15px;cursor:pointer}

/* 지난 법안 보기 */
#archiveDialog{max-width:760px}
#archiveCards:empty::before{content:'표시할 법안이 없습니다.';display:block;padding:28px 0;color:#b8c4b5}
.archiveResults{margin:10px 0 4px}.archiveResults .lawResult{margin:4px 0}
.archiveDetails,.archiveCommentBox{margin-top:12px;border-top:1px solid #33443a;padding-top:10px}
.archiveDetails summary,.archiveCommentBox summary{cursor:pointer;color:#e6dcc0;font-weight:600}
.archiveCommentList{margin:10px 0;display:grid;gap:8px}
.archiveComment{background:#14201a;border:1px solid #33443a;border-radius:7px;padding:9px 11px}
.archiveComment.hidden p{color:#8d978c}
.archiveCommentHead{display:flex;gap:8px;align-items:center;font-size:13px;color:#cfd8cc}.archiveCommentHead small{color:#8f9a8f}.archiveCommentHead .lawReport{margin-left:auto;border:0;padding:2px 6px}
.archiveComment p{margin:6px 0 0;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;color:#e3e8e0}
.archiveEmpty{color:#9aa69a;font-size:13px}
.archiveCommentForm{display:flex;gap:8px}.archiveCommentForm input{flex:1;min-height:42px;background:#26332b;color:white;border:1px solid #74816c;border-radius:5px;padding:8px;font:inherit}

/* 악수하기 메뉴(D17) */
#handshakeMenu{position:fixed;z-index:30;transform:translate(-50%,-120%)}
#handshakeMenu button{min-height:44px;padding:10px 16px;border-radius:22px;border:1px solid #ceb76f;background:#263b33f0;color:#fff;font:inherit;font-weight:600;box-shadow:0 6px 18px #0007}

#actionDock #clapButton{grid-area:clap}#actionDock #cheerButton{grid-area:cheer}
#livePlayer{position:fixed;background:#000}#livePlayer[hidden]{display:none}#livePlayer iframe{display:block;width:100%;height:100%;border:0}
/* D32 다른 방 가기 */#count.rooms{pointer-events:auto;cursor:pointer}#count.rooms::after{content:' ▾';opacity:.7}#roomList{display:flex;flex-direction:column;gap:8px;margin-top:12px}.roomRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid #0000001f;border-radius:6px}.roomRow.current{background:#263f3b14}.roomRow b{display:block;font-size:14px}.roomRow span{font-size:12px;opacity:.75}.roomRow button{min-width:72px;padding:9px 12px;border:0;border-radius:4px;background:#263f3b;color:#fff}.roomRow button:disabled{background:#9aa5a1;cursor:default}
/* 채팅 줄마다 안보기 */#chat .chatHide{margin-left:6px;padding:0 7px;border:1px solid #ffffff30;border-radius:10px;background:none;color:#aeb6b4;font:inherit;font-size:10px;line-height:18px;vertical-align:1px;cursor:pointer;touch-action:manipulation;opacity:.75}#chat .chatHide:hover,#chat .chatHide:focus-visible{opacity:1;color:#e5d4a6;border-color:#e5d4a688}
