/* Shared visitor, museum, lobby and match presentation. */
:root{--arena-paper:#f1ede3;--arena-muted:#a8b7b8;--arena-gold:#d5ba80;--arena-panel:#142129;--arena-line:#ffffff20}
[hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--arena-gold);outline-offset:4px}
button,input{touch-action:manipulation}
dialog{color:var(--arena-paper);border:1px solid var(--arena-line);border-radius:12px;background:linear-gradient(150deg,#202c32,#121e27 70%);box-shadow:0 24px 100px #0007;scrollbar-width:thin;scrollbar-color:#687579 #18252c}
dialog::backdrop{background:#07101699;backdrop-filter:blur(5px)}
dialog .close-dialog{border:1px solid var(--arena-line);border-radius:50%;width:36px;height:36px;background:#142129e8;z-index:5}
#info-dialog{max-width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 36px);overflow:hidden;padding:32px}
#info-dialog #dialog-content{max-height:calc(100dvh - 120px);overflow:auto;padding-right:12px;overscroll-behavior:contain}
#info-dialog h2{font-size:clamp(23px,3vw,32px);line-height:1.35;max-width:calc(100% - 32px)}
#info-dialog p{font-size:13px;line-height:1.95;color:#c4ceca}
.explore{width:min(352px,calc(100vw - 28px));border-radius:12px;padding:20px 18px;display:flex;flex-direction:column;gap:12px;background:#122029f5;border-color:var(--arena-line);box-shadow:0 16px 50px #0003}
.explore .section-heading{margin:0;padding-bottom:7px;border-bottom:1px solid var(--arena-line)}
.explore-entrypoints{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.explore-entrypoints button{padding:9px 4px;min-height:38px;font-size:10px;border:1px solid var(--arena-line);border-radius:6px;color:#dfd8c7;background:#ffffff04}
.destination-search{margin:0;border-radius:6px}.destination-tabs{margin:0;gap:3px}.destination-tabs button{min-height:34px;padding:7px 8px;border-radius:5px}
#locations{flex:1;min-height:80px;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
#locations .location{min-height:64px;padding:10px 9px;border-radius:7px;margin:0 0 3px;border:1px solid transparent}
#locations .location[aria-current=true]{border-color:#d5ba8045;background:#d5ba8012}
#locations .location b{font-size:13px;font-weight:550}#locations .location small{font-size:10px;line-height:1.6;margin-top:4px;color:#9aacb3}
.location-floor{font-size:10px;white-space:nowrap;color:#b9b09a}.explore .tour-button,.explore .reference-button{min-height:36px;padding:7px 9px;margin:0;font-size:11px}
.museum-card-grid{gap:14px}.museum-card{border-radius:9px;border-color:#c3b28e35;min-height:150px;background:linear-gradient(140deg,#2e3331,#1a2930)}
.museum-card b{font-size:16px;line-height:1.5}.museum-card>span{font-size:12px;line-height:1.6}.museum-filters{position:sticky;top:0;z-index:2;padding:8px 0;background:#1a2831}
.museum-detail-hero{border-radius:9px}.museum-records{font-variant-numeric:tabular-nums}
#match-dialog{width:min(760px,calc(100vw - 36px));max-height:calc(100dvh - 36px);padding:30px 34px;border-radius:13px;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 95% 0,#44352a55,transparent 55%),#17252e}
#match-dialog .match-intro-art{opacity:.32}#match-dialog h2{font-size:clamp(25px,4vw,34px);line-height:1.3;margin-bottom:9px;max-width:calc(100% - 40px)}
#match-intro-copy{font-size:12px;line-height:1.8;margin-bottom:17px;color:#b8c5c4}
.match-page-tabs{display:flex;gap:5px;padding:5px;background:#0c19228c;border:1px solid var(--arena-line);border-radius:9px;position:sticky;top:-12px;z-index:3;backdrop-filter:blur(12px);margin-bottom:22px}
.match-page-tabs button{flex:1;min-height:39px;padding:8px 10px;border-radius:5px;font-size:12px;color:#aebdbf}
.match-page-tabs button[aria-selected=true]{color:#f2e6ca;background:#d5ba801c;box-shadow:inset 0 -2px #d5ba80}.match-page-tabs button:disabled{opacity:.4}
#match-dialog[data-panel=play] #online-lobby,#match-dialog[data-panel=play] #match-manual,#match-dialog[data-panel=play] #match-start,#match-dialog[data-panel=play] .match-intro-note,#match-dialog[data-panel=play] .match-credits{display:none}
#match-dialog[data-panel=online] .match-setup,#match-dialog[data-panel=online] .match-rules-section,#match-dialog[data-panel=online] #match-online,#match-dialog[data-panel=online] #match-play,#match-dialog[data-panel=online] .match-play-note,#match-dialog[data-panel=online] #match-manual,#match-dialog[data-panel=online] #match-start,#match-dialog[data-panel=online] .match-intro-note,#match-dialog[data-panel=online] .match-credits{display:none}
#match-dialog[data-panel=tour] .match-setup,#match-dialog[data-panel=tour] .match-rules-section,#match-dialog[data-panel=tour] #match-online,#match-dialog[data-panel=tour] #match-play,#match-dialog[data-panel=tour] .match-play-note,#match-dialog[data-panel=tour] #online-lobby{display:none}
#match-dialog.online-room-open .match-rules-section{display:none}
.match-rules-section{margin:22px 0}.match-rules-section>h3{font-size:13px;letter-spacing:.5px;margin:0 0 12px}.match-rules-section>p{font-size:10px;line-height:1.8;color:#91a7ad;margin-top:12px}
.rules-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rules-modes button{display:flex;flex-direction:column;gap:5px;text-align:left;min-height:67px;padding:13px 14px;border:1px solid var(--arena-line);border-radius:7px;background:#ffffff03}
.rules-modes button b{font-size:12px;font-weight:550}.rules-modes button small,.rules-durations button small{font-size:10px;color:#91a6ad;font-weight:400;line-height:1.6}
.rules-modes button[aria-pressed=true],.rules-durations button[aria-pressed=true]{border-color:#d5ba8080;background:#d5ba8012;color:#e4d2a6}
.rules-durations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px}.rules-durations button{padding:10px 7px;min-height:53px;border:1px solid var(--arena-line);border-radius:6px;font-size:12px}.rules-durations small{display:block;margin-top:4px}
.team-edit-entry{width:100%;display:flex;align-items:center;gap:10px;padding:14px;margin-top:15px;border:1px solid #d5ba8045;border-radius:7px;background:#d5ba8009;text-align:left}.team-edit-entry>span{font-size:11px;color:#adbdc1}.team-edit-entry b{font-size:12px;font-weight:500;flex:1}.team-edit-entry i{color:#d5ba80;font-style:normal}
.online-lobby{margin:0;padding:20px;border-radius:9px;background:#101f28;border-color:#d5ba8038}.online-lobby h3{font-size:21px}.online-setup{border-top:1px solid var(--arena-line);padding-top:16px;margin-top:12px}.online-setup>small{font-size:12px;color:#d9c392;display:block;margin:0 0 13px}.online-code{font-size:34px;letter-spacing:5px}
.online-seats>div{background:#ffffff03;border-radius:6px;padding:15px}.online-room-actions{margin-top:14px}.online-game-info{font-size:11px}
.squad-dialog{padding:0;width:min(920px,calc(100vw - 30px));height:min(750px,calc(100dvh - 36px));max-height:calc(100dvh - 36px);overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto}
.squad-dialog[open]{display:grid}.squad-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 25px 15px;border-bottom:1px solid var(--arena-line)}
.squad-heading small{font-size:9px;letter-spacing:2px;color:var(--arena-gold)}.squad-heading h2{font-size:23px;line-height:1.4;margin:7px 0 0}.squad-heading button{border:1px solid var(--arena-line);border-radius:50%;width:35px;height:35px;font-size:22px}
.squad-content{overflow:auto;overscroll-behavior:contain;padding:16px 25px;scrollbar-width:thin}.squad-content>p{font-size:11px;line-height:1.85;color:#a6b8b9;margin:0 0 13px}
.squad-formations{display:flex;gap:7px;margin-bottom:16px}.squad-formations button{flex:1;min-height:37px;border:1px solid var(--arena-line);border-radius:5px;font-size:12px;font-variant-numeric:tabular-nums}.squad-formations button[aria-pressed=true]{color:#f0d597;background:#d5ba8018;border-color:#d5ba8075}
.squad-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:20px}.squad-columns h3{font-size:12px;font-weight:500;margin:0 0 10px}.squad-columns h3 small{font-size:10px;font-weight:400;color:#9aaeb6;margin-left:8px}
.squad-pitch{position:relative;height:390px;background:repeating-linear-gradient(#ffffff03 0 39px,#00000003 39px 78px),#213c38;border:1px solid #d2dac34d;border-radius:7px;overflow:hidden}
.squad-pitch:before{content:'';position:absolute;inset:12px;border:1px solid #d9e6d833;background:linear-gradient(transparent 49.8%,#d9e6d833 50%,transparent 50.2%)}
.squad-pitch:after{content:'';position:absolute;width:70px;height:70px;border:1px solid #d9e6d833;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.squad-pitch button{position:absolute;transform:translate(-50%,-50%);z-index:1;display:grid;justify-items:center;gap:1px;width:73px;min-height:52px;padding:4px 2px;background:#14252cdd;border:1px solid #ffffff2e;border-radius:6px;box-shadow:0 4px 12px #0002}
.squad-pitch button small{font-size:8px;color:#b5c3c4}.squad-pitch button b{font-size:16px;line-height:1.1}.squad-pitch button span{font-size:7px;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.squad-pitch button[aria-pressed=true]{background:#d5ba80;color:#13232d;border-color:#e2ce9d}.squad-pitch button[aria-pressed=true] small{color:#495044}.squad-pitch button:disabled{opacity:.35}
.squad-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:390px;overflow:auto;scrollbar-width:thin}.squad-candidates button{display:flex;gap:9px;align-items:center;min-height:57px;padding:9px 8px;border:1px solid var(--arena-line);border-radius:5px;background:#ffffff03;text-align:left;min-width:0}.squad-candidates strong{font-size:18px;min-width:24px;color:#e3c98d}.squad-candidates b{font-size:9px;font-weight:500;display:block;overflow-wrap:anywhere}.squad-candidates small{font-size:8px;color:#9eb1b8;display:block;margin-top:5px}.squad-candidates button:disabled{opacity:.3}.squad-candidates button[aria-pressed=true]{border-color:#d5ba80;background:#d5ba8015}
.squad-footer{border-top:1px solid var(--arena-line);display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 25px;background:#14232c}.squad-footer p{font-size:11px;line-height:1.6;color:#cbb986;margin:0}.squad-footer button{flex-shrink:0;padding:12px 19px;border-radius:6px;background:#b93049;color:#fff2ec;font-size:12px;min-height:43px}.squad-footer button:disabled{opacity:.5}
.game-period{display:block;color:#d9c18e;font-size:8px;line-height:1.2;letter-spacing:.4px}.game-score .game-clock{min-width:66px}.game-score .game-clock time{line-height:1.25}.game-tools #game-team{color:#e9c98b;border-right:1px solid var(--arena-line)}
.game-referee-note,.game-penalty-hint{position:absolute;left:50%;transform:translateX(-50%);top:88px;z-index:18;padding:9px 15px;border:1px solid #d5ba8055;border-radius:6px;background:#14232ce8;color:#efd7a6;font-size:12px;max-width:calc(100vw - 30px);text-align:center;pointer-events:none}
.game-penalty-hint{top:auto;bottom:135px;max-width:360px;font-size:11px;line-height:1.8}.game-overlay{border-radius:11px!important;background:#14232cf5!important}.game-overlay h2{line-height:1.35}.game-overlay #game-resume{min-height:44px}.game-overlay #game-resume:disabled{opacity:.65}
@media(max-width:760px){
 #match-dialog{width:calc(100vw - 22px);padding:25px 18px;max-height:calc(100dvh - 24px)}.match-page-tabs{top:-15px;margin-bottom:18px}.match-page-tabs button{font-size:11px;padding:8px 5px}
 .rules-modes{gap:7px}.rules-modes button{padding:11px;min-height:67px}.rules-modes button b{font-size:11px}.rules-modes button small{font-size:9px}.rules-durations button{font-size:11px}.rules-durations button small{font-size:8px}
 .team-edit-entry{padding:13px 10px;gap:8px}.team-edit-entry>span{font-size:10px}.team-edit-entry b{font-size:10px;line-height:1.7}.online-lobby{padding:15px}.online-code{font-size:30px;letter-spacing:3px}
 .squad-dialog{width:calc(100vw - 18px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}.squad-heading{padding:15px 16px 12px}.squad-heading h2{font-size:19px}.squad-content{padding:13px 14px}.squad-columns{grid-template-columns:1fr;gap:17px}.squad-pitch{height:330px}.squad-candidates{max-height:260px;grid-template-columns:repeat(3,minmax(0,1fr))}.squad-candidates button{gap:6px;padding:7px 5px}.squad-candidates strong{font-size:16px;min-width:20px}.squad-candidates b{font-size:8px}.squad-candidates small{font-size:7px}.squad-footer{padding:11px 14px;gap:10px}.squad-footer p{font-size:10px}.squad-footer button{padding:10px 14px;font-size:11px}
 .museum-card-grid{grid-template-columns:1fr}.museum-card{min-height:130px;padding:17px}.museum-card b{font-size:16px}.museum-card>span{font-size:12px}.museum-card-top{margin-bottom:0}.museum-card>small{font-size:9px}
 .explore{left:10px;top:112px;bottom:12px;padding:15px;gap:9px}.explore-entrypoints button{font-size:9px;min-height:36px}.explore .tour-button,.explore .reference-button{min-height:32px;font-size:10px}
 .game-tools{max-width:calc(100vw - 185px);overflow:auto;scrollbar-width:none}.game-tools #game-cheer,.game-tools #game-replay-launch{display:none}.game-tools button{font-size:9px;padding:5px;min-width:29px}.game-tools #game-team{min-width:39px}
 .game-score{gap:7px}.game-score .game-clock{min-width:62px}.game-score .game-clock small{font-size:7px}.game-period{font-size:7px}.game-score .game-clock time{font-size:12px}
 .game-referee-note{top:155px;font-size:10px}.game-penalty-hint{bottom:150px;width:calc(100vw - 44px);max-width:310px;font-size:10px}
 body.game-active[data-control-context=attack] .game-actions [data-game-action=switch],body.game-active[data-control-context=attack] .game-actions [data-game-action=tackle]{display:none}
 body.game-active[data-control-context=defend] .game-actions [data-game-action=pass],body.game-active[data-control-context=defend] .game-actions [data-game-action=through],body.game-active[data-control-context=defend] .game-actions #game-shoot{display:none}
 body.game-active[data-control-context=attack] .game-actions{grid-template-columns:repeat(2,53px)}
 body.game-active[data-control-context^=penalty] .game-actions>*{display:none}
 body.game-active[data-control-context=penalty-shooter] .game-actions #game-shoot,body.game-active[data-control-context=penalty-keeper] .game-actions [data-game-action=tackle]{display:block;width:66px;height:66px}
}
@media(max-height:500px) and (min-width:600px){
 #match-dialog{max-height:calc(100dvh - 18px);padding:22px 27px}.match-page-tabs{top:-12px}.squad-dialog{height:calc(100dvh - 14px);max-height:calc(100dvh - 14px)}.squad-heading{padding:10px 20px}.squad-heading h2{font-size:18px;margin-top:3px}.squad-content{padding:10px 20px}.squad-content>p{margin-bottom:7px;font-size:10px}.squad-formations{margin-bottom:10px}.squad-columns{grid-template-columns:1fr 1fr}.squad-pitch{height:310px}.squad-candidates{max-height:310px}.squad-footer{padding:9px 20px}.squad-footer button{min-height:36px;padding:8px 15px}
 .game-tools{top:8px;max-width:calc(50vw - 170px)}.game-tools #game-cheer,.game-tools #game-replay-launch{display:none}.game-player{bottom:112px}.game-referee-note{top:61px}.game-penalty-hint{bottom:110px;font-size:10px}.museum-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.museum-card{min-height:135px}
 .explore{top:74px;bottom:9px;gap:7px;width:340px}.explore-entrypoints,.explore .reference-button,#tour{display:none}
}
@media(prefers-reduced-motion:reduce){dialog::backdrop{backdrop-filter:none}button{transition:none!important}}
.online-fixture-preview{padding:12px;margin:12px 0;background:#ffffff05;border-radius:6px;border:1px solid var(--arena-line)}.online-fixture-preview p{font-size:12px!important;color:#e2d7bb!important;margin:0 0 10px!important}.online-fixture-preview button{font-size:11px;color:#d7bf87;text-decoration:underline;text-underline-offset:4px}
body[data-control-context^=penalty] .game-actions>*{display:none}body[data-control-context=penalty-shooter] .game-actions #game-shoot,body[data-control-context=penalty-keeper] .game-actions [data-game-action=tackle]{display:block}body[data-control-context^=penalty] .game-actions{grid-template-columns:64px!important}body[data-control-context^=penalty] .game-radar,body[data-control-context^=penalty] #game-control-mode,body[data-control-context^=penalty] #game-control-description{display:none}
.squad-columns h3{color:#d8e0db}.squad-pitch button{min-height:48px;width:70px}.squad-pitch button span{font-size:9px;max-width:66px}.squad-candidates b{font-size:11px}.squad-candidates small{font-size:10px}.squad-candidates button{min-height:60px}
#match-dialog[data-panel=play] #match-play{position:sticky;bottom:-15px;z-index:4;box-shadow:0 -8px 25px #17252ed9}
@media(max-width:760px){.squad-candidates{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}.squad-candidates b{font-size:11px}.squad-candidates small{font-size:9px}.squad-candidates strong{font-size:18px}.squad-candidates button{padding:9px;min-height:60px}.squad-content>p{font-size:12px}.squad-pitch{height:360px}.squad-footer p{font-size:11px}#match-dialog[data-panel=play] #match-play{bottom:-14px}.match-rules-section>p{font-size:11px}.rules-modes button b{font-size:12px}.rules-modes button small{font-size:10px}.rules-durations button small{font-size:9px}}
