/* Hall-only composite: untouched original map on the left, generated information field on the right. */
html,body {width:100%;height:100%;margin:0;overflow:hidden;}
body {background:#111c2b;color:var(--bone);}
.screen-backdrop {position:fixed;inset:-12px;filter:blur(10px);opacity:.65;pointer-events:none;}
.screen-backdrop canvas {position:absolute;inset:0;width:100%;height:100%;}
.screen-landscape {position:absolute;inset:0;overflow:hidden;pointer-events:none;}
#screenLandscape {position:absolute;left:var(--stage-left,0px);top:var(--stage-top,0px);width:var(--stage-width,100vw);height:var(--stage-height,42.2162vw);}
.layout {position:absolute;left:var(--stage-left,0px);top:var(--stage-top,0px);width:var(--stage-width,100vw);height:var(--stage-height,42.2162vw);container-type:inline-size;}
.arena {position:absolute;left:0;top:0;width:75.01122%;height:100%;overflow:hidden;}
.arena .map-wrap {position:absolute;inset:0;padding:0;display:block;}
.arena #map {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--screen-map-width,67.5471vw) !important;height:var(--screen-map-height,42.2162vw) !important;max-height:none;border-radius:0;}
.arena .fx-layer {z-index:450;}
.phasebar,.screen-guidance,.side {position:absolute;left:85.625%;right:auto;transform:translateX(-50%);width:17.65%;min-width:0;max-width:none;box-sizing:border-box;align-items:stretch;z-index:400;color:#f4edd6;text-shadow:0 1px 2px #000b;background:none;border:none;box-shadow:none;padding:0;margin:0;overflow:clip;}
.phasebar {top:15.6%;height:11.8%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:safe center;gap:.16cqw;text-align:center;}
.phasebar #roundInfo {font-size:calc((clamp(12px,1.13cqw,26px)) * var(--info-fit,1));font-weight:700;letter-spacing:0;line-height:1.12;}
.phasebar .phase-name {font-size:calc((clamp(16px,1.62cqw,38px)) * var(--info-fit,1));font-weight:700;line-height:1.1;}
.phase-tools {display:flex;gap:.6cqw;align-items:center;justify-content:safe center;}
.phasebar .timer {font-size:calc((clamp(12px,.95cqw,22px)) * var(--info-fit,1));padding:0;border:0;line-height:1.15;}
#screenSoundBtn {border:0;padding:0;background:none;color:#c9c4ad;font:inherit;font-size:calc((clamp(9px,.65cqw,16px)) * var(--info-fit,1));cursor:pointer;white-space:nowrap;}
#demoBadge {border:0;padding:0;font-size:calc((clamp(8px,.57cqw,14px)) * var(--info-fit,1));color:var(--mist);}
.screen-guidance {top:33.5%;height:10.4%;display:flex;flex-direction:column;justify-content:safe center;gap:.3cqw;text-align:center;font-size:calc((clamp(11px,.89cqw,22px)) * var(--info-fit,1));line-height:1.24;}
#eventBadge:empty {display:none;}
#eventBadge strong {display:block;font-size:calc((clamp(13px,1.03cqw,25px)) * var(--info-fit,1));font-weight:700;line-height:1.15;margin-bottom:.2cqw;}
#eventBadge span {display:block;font-size:calc((clamp(10px,.79cqw,19px)) * var(--info-fit,1));}
body.has-round-beat #phaseHint {display:none;}
.side {top:50.5%;height:30%;width:17.15%;display:flex;flex-direction:column;justify-content:safe center;font-size:calc((clamp(11px,.75cqw,18px)) * var(--info-fit,1));}
.side .panel {flex:0 0 auto;width:100%;min-width:0;box-sizing:border-box;padding:0;margin:0 0 .55cqw;background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;}
.side .panel-head {font-family:var(--serif);font-size:calc((clamp(13px,1.02cqw,25px)) * var(--info-fit,1));letter-spacing:.04em;text-align:center;justify-content:safe center;display:block;margin:0 0 .1cqw;padding-bottom:0;line-height:1.2;color:#f4edd6;}
.side .panel-head .wall-label {font-family:var(--mono);font-size:calc((clamp(9px,.61cqw,15px)) * var(--info-fit,1));font-weight:400;letter-spacing:0;display:block;margin-top:.22cqw;line-height:1.25;}
.screen-rank-grid {display:block;width:100%;min-width:0;}
.rank-columns,.screen-rank-card {display:grid;grid-template-columns:1.2em minmax(0,1fr) 2.5em 1.5em 2em;column-gap:.12cqw;align-items:baseline;text-align:left;}
.rank-columns {font-size:calc((clamp(8px,.56cqw,14px)) * var(--info-fit,1));color:#c9c4ad;line-height:1.2;margin-bottom:.05cqw;}
.screen-rank-card {font-size:calc((clamp(10.5px,.74cqw,18px)) * var(--info-fit,1));line-height:1.12;border-bottom:1px solid #b4b68c35;padding:0;}
.screen-rank-card .place {color:#d7b673;}
.screen-rank-card .team-name {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--serif);font-size:.95em;}
.screen-rank-card .points,.screen-rank-card .hp,.screen-rank-card .gold {text-align:right;font-family:var(--mono);font-size:.8em;}
.screen-rank-card .points,.screen-rank-card .gold {color:#e3c76e;}
.screen-rank-card .hp {color:var(--hp);}
.screen-rank-note {font-size:calc((clamp(9px,.63cqw,15px)) * var(--info-fit,1));line-height:1.3;color:#cbc5ae;margin-top:.35cqw;}
.side .comparison-panel {margin-top:.6cqw;padding-top:.5cqw;border-top:1px solid #b4b68c55;}
.side table {font-size:calc((inherit) * var(--info-fit,1));width:100%;box-sizing:border-box;}
.side .comparison-panel table {font-size:calc((clamp(10px,.7cqw,17px)) * var(--info-fit,1)) !important;}
.side .comparison-panel .muted {font-size:calc((clamp(10px,.68cqw,16px)) * var(--info-fit,1)) !important;}
.side .feed {display:block;}
.side .feed > div {padding:.3cqw 0;border-bottom:1px solid #b4b68c35;font-size:calc((clamp(11px,.8cqw,20px)) * var(--info-fit,1));line-height:1.3;}
.side .feed > div:last-child {color:var(--brass);}
.feed .mark {font-family:var(--mono);font-size:.72em;letter-spacing:.04em;margin-right:.3cqw;}
.feed .ok {color:var(--good);} .feed .no {color:var(--rust);} .feed .sh {color:var(--brass);}
.side .attack-grid {display:block;}
.attack-card {padding:.25cqw 0;border-bottom:1px solid #b4b68c35;line-height:1.25;}
.attack-card small {display:block;color:#cbc5ae;font-size:.85em;}
body #roundBeat {position:static;transform:none;width:auto;max-width:none;margin:0;padding:0;text-align:center;color:var(--brass);background:none;border:0;border-radius:0;box-shadow:none;pointer-events:none;font-size:calc((clamp(9px,.89cqw,22px)) * var(--info-fit,1));line-height:1.25;}
body #toast {position:fixed;left:var(--info-left,78vw);top:var(--info-top,33vh);bottom:auto;transform:none;width:var(--info-width,17vw);max-width:none;box-sizing:border-box;text-align:center;}
.mist-tint {position:fixed;inset:0;pointer-events:none;z-index:350;box-shadow:inset 0 0 220px 60px rgba(176,151,226,.22);}

.side > .panel:last-child {margin-bottom:0;}

body.has-round-beat #eventBadge,body.has-round-beat #wallStatus {display:none;}
#wallStatus {font-family:var(--mono);font-size:calc((clamp(9px,.65cqw,16px)) * var(--info-fit,1));line-height:1.2;color:#ccc4aa;}

@container (max-width:1100px) {
  .side .panel-head {font-size:calc((10.5px) * var(--info-fit,1));line-height:1.1;margin-bottom:0;border-bottom:0;}
  .rank-columns {font-size:calc((7px) * var(--info-fit,1));line-height:1.05;margin-bottom:0;}
  .screen-rank-card {font-size:calc((9px) * var(--info-fit,1));line-height:1.04;border-bottom-width:.5px;}
  .screen-rank-card .team-name {font-size:.95em;}
  .screen-rank-card .points,.screen-rank-card .hp,.screen-rank-card .gold {font-size:.9em;}
}

/* Empty caption slots must not create a gap beside the centered explanation. */
.screen-guidance #roundCaption {display:none;}
body.has-round-beat #roundCaption {display:block;}

/* The hall is unattended: show every result without a scrollable viewport. */
.phasebar,.screen-guidance,.side {overscroll-behavior:none;}
.phasebar > * {max-width:100%;}
.side .panel,.side .comparison-panel {margin:0;}
.side .panel + .panel {margin-top:calc(.35cqw * var(--info-fit,1));}
.side .panel-head {margin-bottom:calc(.1cqw * var(--info-fit,1));}
.side .panel-head .num {display:block;font-size:calc(clamp(9px,.65cqw,16px) * var(--info-fit,1)) !important;}
.side table th,.side table td {font-size:inherit;letter-spacing:0;white-space:normal;padding:calc(.12cqw * var(--info-fit,1));line-height:1.15;}
.side .comparison-panel {padding-top:calc(.3cqw * var(--info-fit,1));}
.side .comparison-panel .muted {margin-top:calc(.25cqw * var(--info-fit,1)) !important;}
.side .feed > div,.side .attack-card {padding:calc(.15cqw * var(--info-fit,1)) 0;}
.side .screen-rank-note {margin-top:calc(.25cqw * var(--info-fit,1));}
