/* Final package palette and art, with live HTML controls over the table. */
:root{--forest:#123f31;--forest2:#0b2f25;--cream:#f4ead5;--gold:#e9b85b;--brown:#6d4728;--red:#b4473c;font-family:Arial,system-ui,sans-serif;color:var(--cream);background:var(--forest2)}
body{background:linear-gradient(#09251ce8,#09251ce8),var(--table-image);background-size:cover;background-attachment:fixed;font-size:16px}
main{max-width:680px;padding:12px 14px 24px}header{min-height:62px;flex-wrap:nowrap}header h1{margin:0;line-height:1}header>div{display:flex;gap:7px}header button{width:44px;padding:7px;background:#0b2f25d9;border-color:#947044}.compact-logo{width:76px;height:62px;object-fit:contain}.ui-icon{width:27px;height:27px;object-fit:contain;vertical-align:middle}
button,select{border-color:#b89257;background:#143e31;color:var(--cream);border-radius:10px;min-height:44px;font-size:14px}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button[aria-pressed=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}button.primary,.primary{background:#2e8b57;color:white;border:1px solid var(--gold)}button.danger,.danger{background:#853e32;border-color:#dba565;color:white}
#menuScreen{min-height:calc(100dvh - 115px);display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:440px;margin:auto;padding:8px 20px 20px}.main-logo{width:min(290px,76vw);height:auto;margin:0 0 16px;filter:drop-shadow(0 8px 16px #0008)}.menu-buttons{width:100%;max-width:340px;gap:12px}.menu-buttons button{border:1px solid var(--gold);background:linear-gradient(#795332,#422b1d);box-shadow:0 4px 8px #0004;font-size:17px;letter-spacing:.06em;min-height:52px}.menu-buttons .primary{background:linear-gradient(#2e8b57,#164c34)}.profile-summary{width:100%;max-width:340px;border-top:1px solid #ac884a;padding-top:16px;font-size:14px;line-height:1.6;text-align:center;margin:24px 0 2px}.local-label{font-size:13px;color:#c9c4af;margin:8px 0}.muted{color:#d0d9c8;font-size:14px;line-height:1.5}
.arena{background-image:linear-gradient(#1c221c12,#152e221c),var(--table-image);background-size:cover;background-position:center;border:2px solid #b68a4d;box-shadow:0 8px 32px #0005,inset 0 0 35px #0005;border-radius:30px;height:560px;margin:12px 0 16px}.seat{background:#103628f5;border-color:#997b50;border-radius:12px;width:82px;min-height:70px;padding:4px 2px;box-shadow:0 3px 7px #0005}.seat .name{font-size:14px;line-height:1.2;overflow-wrap:anywhere}.seat small{font-size:12px;color:#e5dbc5}.seat .team-mark{display:block;width:24px;height:25px;object-fit:cover;object-position:center;margin:0 auto 2px;border-radius:6px}.seat .backs{display:none}.seat.partner{border-color:var(--gold);box-shadow:0 0 0 2px #e9b85b44}.seat.active{background:#43683a;box-shadow:0 0 0 3px #e9b85b70}.seat.suspected{box-shadow:0 0 0 2px var(--gold);border-style:dashed}.seat.spectator{opacity:.6}.suspicion{font-size:12px!important;color:var(--gold)!important}.reaction.phrase{background:var(--cream);color:#172b22;border:1px solid #c2a66e}.reaction.emoji{font-size:34px}.center{width:188px;top:50%;background:#113829bd;border-radius:16px;padding:10px;backdrop-filter:blur(3px)}.center p{font-size:14px;line-height:1.25}.center .cards{gap:6px}.center .card{min-height:89px}.center small{font-size:12px;margin-top:8px;color:var(--cream)}.center #refresh{font-size:14px;min-height:44px;padding:5px;margin-top:8px}
.card{background:var(--cream);color:#1b1b18;border:1px solid #d9c69e;font-size:30px;border-radius:9px;box-shadow:0 4px 6px #0004}.card.red{color:#b4473c}.card span{font-size:29px}.card.selected{outline-color:var(--gold)}.hand{gap:10px}.hand .card{min-height:112px;font-size:32px}.hand-title{font-size:14px}.back{background:url('assets/02_cards/card_back.png') center/cover}.actions{background:#0b2f25f5;position:static;grid-template-columns:1fr 1fr 1fr;padding:8px 0 0;gap:8px}.actions button{min-height:52px;font-size:14px;padding:8px 3px}.team-mark{height:32px;width:30px;object-fit:contain;vertical-align:middle;border-radius:5px}.score-team .team-mark{float:left;margin-right:4px}.score{border:1px solid #8d784e;border-top:2px solid #b68a4d;background:#10392af0;padding:7px}.score.mine{background:#23533b;color:var(--cream);border-color:var(--gold)}.scores{gap:6px;margin:8px 0;grid-template-columns:repeat(3,minmax(0,1fr))}.score-team{font-size:12px;line-height:1.4}.score-names{font-size:13px;color:#e8e1cf}.score b{font-size:22px;color:var(--gold)}
.signal-panel{background:#f4ead5;color:#21362a;border:1px solid #b99358;padding:10px;max-height:260px}.signal-panel h3{font-size:16px}.signal-panel button{background:#163e30}.signal-panel .field{font-size:14px}.signal-panel .muted{color:#435846}.signal-tabs{grid-template-columns:1.2fr 1fr 1fr;gap:5px}.signal-tabs button{font-size:14px;padding:6px 3px}.signal-panel .emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.signal-panel .emoji-option{grid-template-rows:44px 44px;gap:2px}.signal-panel .favorite-star{min-height:44px}.quick-favorites{padding:7px 0;max-width:100%}.quick-favorites .muted{font-size:13px}.quick-phrase{font-size:14px}.favorite-star{color:var(--gold)!important}
dialog{background:var(--forest2) url('assets/05_ui/panels/panel_dark.png') center/100% 100%;border:1px solid var(--gold);color:var(--cream);padding:22px;max-width:540px;border-radius:18px;box-shadow:0 18px 70px #0007}dialog::backdrop{background:#051b15c7}dialog h2{font-size:24px;line-height:1.3;margin:4px 0 14px}dialog p{font-size:16px;line-height:1.5}dialog h3{font-size:17px}.field{font-size:14px}.field input[type=range]{width:100%;accent-color:var(--gold)}form input{background:#f4ead5;color:#1b3024;border-color:#b79558}.chat-messages{background:#163e2e}.chat-messages p{font-size:14px}.inline-actions,.rating-tabs{display:flex;gap:8px}.inline-actions button,.rating-tabs button{flex:1}.gathering-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #61714d;padding:9px 0;font-size:14px;line-height:1.5}.gathering-row .team-mark{flex:0 0 36px;width:36px;height:42px}#partnerProposal{background:#214d37;border:1px solid var(--gold);border-radius:10px;padding:10px;margin:12px 0}#partnerProposal p{margin:0;font-size:15px}#pairs button{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px;border-left-width:1px}#pairs .team-mark{flex-shrink:0;width:40px;height:44px}
#result{background:var(--cream) url('assets/05_ui/panels/panel_cream.png') center/100% 100%;color:#183b2a}#result summary{color:#183b2a}#result .score-change{background:#194e34;color:var(--cream);font-size:16px;line-height:1.45}#result[data-outcome=success]{animation:success-glow .75s ease-out}#result[data-outcome=error] .score-change{background:#8a4235}.round-table{font-size:14px}.round-table th{color:inherit;font-size:12px}.round-table th,.round-table td{border-color:#cfbd95;padding:6px 4px}.round-table .own-row{background:#dfdfbe}.round-table td small{color:#4f624b}.round-table strong .team-mark{margin-right:5px}.round-table td:last-child{font-size:21px}#roundDetails{color:inherit}#roundDetails summary{font-size:14px}.reveal-player{border-color:#c0a878}.reveal-explanation{font-size:14px!important}#transitionTimer{font-weight:bold;font-size:14px}#result .chat-messages{color:var(--cream)}.standing{background:#18432f;border-left-color:var(--gold)}.standing strong{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px}.standing p{font-size:14px}.standing .team-mark{flex-shrink:0}
.rule-card{background:#184431;border:1px solid #82905f;border-radius:12px;padding:14px;margin:10px 0;color:var(--cream)}.rule-card summary{font-size:16px;font-weight:bold;line-height:1.4;min-height:24px}.rule-card p{font-size:16px}.profile-badge{background:#204c36;border:1px solid var(--gold);border-radius:14px;padding:18px;text-align:center;margin:14px 0;line-height:1.6}.profile-badge h3{margin:8px 0}.profile-badge p{margin:6px 0}.avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:2px solid var(--gold);margin:auto;background:#123f31;color:var(--gold);font-weight:bold;font-size:24px}.history-card{padding:14px;border-bottom:1px solid #6f8058;font-size:14px}.history-card p{font-size:14px;margin:8px 0 0}.empty-deck{display:block;height:110px;width:74px;object-fit:cover;margin:20px auto;border-radius:10px}.rating-tabs button{margin:0;font-size:14px}#status{color:#e7d1a2;font-size:14px}#dealOverlay{background:#103a2bea}#dealOverlay strong{font-size:22px}.deal-stack{display:flex;letter-spacing:0}.deal-stack img{width:56px;height:80px;object-fit:cover;border-radius:7px;margin-left:-20px;box-shadow:0 3px 7px #0004}#voteInfo{font-size:14px}#voteActions button{min-height:44px;font-size:14px}#voteCancel{min-height:44px;font-size:13px}.vote-state{font-size:12px}#connection{background:#6d4728;color:var(--cream)}
@keyframes success-glow{0%{box-shadow:0 0 40px 8px #e9b85b99}100%{box-shadow:0 18px 70px #0007}}
@media(min-width:700px){.scores{grid-template-columns:repeat(5,minmax(0,1fr))}.arena{height:580px}.seat{width:88px}.center{width:200px}.center .card{min-height:96px}}
@media(max-width:420px){main{padding:8px}.arena{height:500px;border-radius:22px}.seat{width:62px;min-height:66px;padding:3px 1px}.seat .name{font-size:12px}.seat .team-mark{height:22px;width:22px}.seat small{font-size:12px;letter-spacing:0}.center{width:142px;padding:7px}.center .card{min-height:76px;font-size:26px}.center .card span{font-size:25px}.center #refresh{font-size:14px}.center p{font-size:14px}.center small{font-size:12px}.hand .card{min-height:94px;font-size:30px}.actions{gap:5px}.actions button{font-size:12px;min-height:48px}.score-team .team-mark{height:22px;width:20px}.score{padding:5px}.score-names{font-size:12px}.score b{font-size:20px}.reaction.phrase{font-size:14px;max-width:105px}.signal-tabs button{font-size:12px}.signal-panel{max-height:250px}dialog{padding:16px}#menuScreen{padding:8px 20px 20px}.main-logo{width:230px}}
@media(max-width:350px){.arena{height:520px}.center{width:132px}.seat{width:56px}.scores{grid-template-columns:repeat(2,minmax(0,1fr))}.actions button{font-size:12px}.hand{gap:6px}.signal-panel .emoji-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){#result[data-outcome=success],.deal-stack{animation:none}}
/* Centered asset revision and touch-friendly signal selection. */
body{background-image:linear-gradient(#09251ce8,#09251ce8),var(--ambient-image)}
.team-mark,.seat .team-mark{object-fit:contain;object-position:center;border-radius:0}
.seat{background-image:url('assets/05_ui/panels/panel_player.png');background-size:100% 100%;background-position:center}
form input{background:#f4ead5 url('assets/05_ui/panels/input_field.png') center/100% 100%}
.emoji-glyph,.emoji-send,.quick-emoji,.reaction.emoji,.emoji-grid button[data-send]{font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-style:normal;font-weight:400;font-variant:normal;line-height:1.2;font-synthesis:none;text-shadow:none;font-size:36px}
.chosen-signal{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;margin:0;text-align:left;padding:10px 14px;touch-action:manipulation}.signal-change-hint{font-size:14px;color:#e9cf9c;flex-shrink:0}.phrase-glyph{font-size:16px;line-height:1.4}.setup-picker{background:#f4ead5;color:#17362b;border:1px solid #c19b54;border-radius:12px;padding:12px;margin-top:12px}.setup-picker h3{margin:0 0 10px}.setup-picker .signal-tabs{grid-template-columns:1fr 1fr 1.2fr}.setup-picker .signal-tabs button{margin:0;font-size:13px}.setup-emoji-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;max-height:245px;overflow:auto;overscroll-behavior:contain;padding:4px}.setup-phrase-grid{display:grid;gap:6px;max-height:245px;overflow:auto;overscroll-behavior:contain;padding:4px}.setup-reaction{min-height:58px;margin:0;padding:6px;touch-action:manipulation}.setup-phrase-grid button{text-align:left;padding:10px}.setup-reaction[aria-pressed=true]{outline:2px solid #987023;outline-offset:1px;background:#315e40}.signal-panel button,.signal-tabs button,#signalButton{touch-action:manipulation}.signal-panel{scroll-margin:8px}.setup-picker{scroll-margin:8px}.signal-panel .emoji-grid button[data-send]{font-size:32px}
@media(max-width:380px){.setup-emoji-grid{gap:5px}.setup-reaction{min-height:54px}.setup-picker{padding:9px}.setup-picker .signal-tabs button{font-size:12px}.setup-reaction .emoji-glyph{font-size:32px}}

/* Network Gathering V2 */
.network-header{display:flex;justify-content:center;padding:10px 0 4px}.network-card{max-width:620px;margin:14px auto;background:#173e2f;border:1px solid #8c7a4b;border-radius:20px;padding:18px;box-shadow:0 16px 50px #0004}.network-card h2,.network-card h3{margin:6px 0 12px}.network-card h3{margin-top:20px}.network-card input,.network-card select{width:100%;min-height:46px;border:1px solid #7b8e73;border-radius:10px;background:#f4ead5;color:#17362b;padding:10px;font:inherit}.network-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.network-separator{height:1px;background:#6c7959;margin:22px 0}.network-status{max-width:620px;margin:8px auto;padding:10px 12px;border-radius:12px;background:#6d4728;color:#fff1d2}.gathering-title{display:flex;justify-content:space-between;gap:12px;align-items:start}.gathering-title h2{margin-bottom:2px}.room-code{font-size:24px;font-weight:800;letter-spacing:3px;margin:4px 0;color:#f0c866}.gathering-meta{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.gathering-meta span{background:#214d39;border:1px solid #68775a;border-radius:999px;padding:6px 9px;font-size:12px}.gathering-list{display:grid;gap:7px}.gathering-player{display:flex;align-items:center;gap:8px;min-height:58px;padding:8px 10px;background:#1d4936;border-radius:12px;border:1px solid #5c7058}.gathering-player__main{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.gathering-player__main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gathering-player__main small{color:#c7d3c5}.ready-pill{font-size:10px;padding:4px 6px;border-radius:999px;background:#5b4036;color:#f3ded4}.ready-pill.ready{background:#315f37;color:#ebffd7}.mini{min-height:36px;padding:5px 8px;font-size:12px}.proposal-box,.readonly-banner{margin:12px 0;padding:12px;border:1px solid #d0a954;border-radius:12px;background:#204b36}.proposal-box p{margin:0 0 8px}.readonly-banner button{margin-top:8px}.squad-list{display:grid;gap:7px}.gathering-controls{display:grid;gap:7px;margin:14px 0}.room-settings{margin:16px 0;padding:12px;border:1px solid #66765c;border-radius:12px}.room-settings summary{font-weight:700;cursor:pointer}.gathering-chat{max-height:180px}.gathering-chat p{margin:5px 0;overflow-wrap:anywhere}.auth-card{max-width:460px}.inline-actions{display:flex;gap:8px}.inline-actions>*{flex:1}.quiet{background:transparent}.network-card .primary{background:#d7b768;color:#173023}.network-card button{width:100%;margin-top:8px}.network-card .inline-actions button,.gathering-player button{margin-top:0}@media(max-width:520px){.network-card{margin:8px auto;padding:14px;border-radius:16px}.network-grid{grid-template-columns:1fr}.gathering-title{align-items:center}.gathering-title .quiet{width:auto}.room-code{font-size:22px}.inline-actions{flex-direction:column}.gathering-player{align-items:flex-start;flex-wrap:wrap}.gathering-player .mini{width:100%}}

.tournament-stage-banner{margin:10px 0;padding:10px 12px;border:1px solid rgba(244,194,93,.55);border-radius:12px;background:rgba(26,75,58,.72);font-weight:700}
.tournament-spectators{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;padding:10px 12px;border:1px solid rgba(244,194,93,.28);border-radius:12px;background:rgba(7,42,32,.72)}
.tournament-spectators strong{width:100%}.tournament-spectators span{padding:4px 8px;border:1px solid rgba(244,194,93,.25);border-radius:999px;font-size:.85rem}.score.eliminated{opacity:.58;filter:saturate(.7)}.score.safe-observer{opacity:.78}.score-status{display:inline-block;margin-left:6px;font-size:.65rem;letter-spacing:.04em}
