/* Die Lage auf einen Blick, Freunde, Warteraum und das Pult, das ohne Scrollen auskommt.
   Grundsatz: Die Seite scrollt nie. Was nicht passt, öffnet sich als Fenster. Antworten und Knöpfe stehen immer im Bild,
   und nur ein zu langer Text scrollt für sich in seinem Feld (.desk-scroll). */

:root { --bar-h: 54px; }

/* ───── Die Leiste über Karte und Stadt ───── */
.lage-bar { display: flex; gap: .35rem; min-height: var(--bar-h); }
.lage-btn {
  position: relative; flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: .5rem; padding: .2rem .6rem; text-align: start;
  color: var(--paper-100); background: linear-gradient(180deg, rgba(33, 57, 90, .72), rgba(17, 31, 51, .9));
  border: 1px solid var(--line); border-inline-start: 3px solid var(--gold-500); border-radius: 7px; transition: border-color .15s, background .15s;
}
.lage-btn:hover, .lage-btn:focus-visible { border-color: var(--gold-300); background: rgba(33, 57, 90, .95); }
.lage-btn > .ic { flex: none; width: 21px; height: 21px; color: var(--gold-300); }
.lage-btn > span { display: flex; flex-direction: column; min-width: 0; line-height: 1.12; }
.lage-btn small { font-family: var(--label); font-weight: 500; font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; color: var(--paper-300); }
.lage-btn b { font-family: var(--label); font-weight: 700; font-size: .92rem; color: var(--paper-50); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lage-btn em { font-family: var(--label); font-style: normal; font-weight: 500; font-size: .74rem; color: var(--gold-100); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lage-btn.ally { border-inline-start-color: #3fa6c8; }
.lage-btn.ally > .ic { color: #7fcbe3; }
.lage-btn.foe { border-inline-start-color: var(--ember); }
.lage-btn.foe > .ic { color: var(--ember-soft); }
.lage-btn .mark { position: absolute; top: .35rem; inset-inline-end: .35rem; }

/* ───── Uhr der Runde ───── */
.turn-clock { display: flex; align-items: center; gap: .4rem; padding: .1rem .3rem .1rem .55rem; color: var(--gold-100); background: rgba(232, 200, 119, .1); border: 1px solid var(--gold-700); border-radius: 8px; flex: none; }
.turn-clock > .ic { width: 20px; height: 20px; color: var(--gold-300); }
.turn-clock > span { display: flex; flex-direction: column; line-height: 1.05; }
.turn-clock b { font-family: var(--label); font-weight: 700; font-size: 1.22rem; font-variant-numeric: tabular-nums; color: var(--paper-50); }
.turn-clock b.low { color: var(--ember-soft); animation: crit 1s ease-in-out infinite; }
.turn-clock small { font-family: var(--label); font-weight: 500; font-size: .68rem; color: var(--gold-100); white-space: nowrap; }
.turn-clock .tool { min-width: 32px; min-height: 32px; padding: 0; }

/* ───── Fähnchen auf der Karte ───── */
.rm-flag rect { fill: var(--flag); stroke: #0b1524; stroke-width: 1.3; }
.rm-flag text { font-family: var(--label); font-weight: 700; font-size: 11.5px; fill: #fff; paint-order: stroke; stroke: rgba(7, 13, 24, .75); stroke-width: 2.4px; }
.rm-flag-stem { stroke: #0b1524; stroke-width: 2; fill: none; }
.rm-flag.self rect { stroke: #fff6d8; stroke-width: 1.8; }
.rm-flag.self text { fill: #1c1205; stroke: none; font-size: 12.5px; }
.rm-flag.me rect { fill: #f4e9d3; }
.rm-flag.me text { fill: #1c1205; stroke: none; }
.pin.rm-flag-pin { pointer-events: none; }

/* ───── Karten im Pult ───── */
.card-wrap { display: flex; gap: .25rem; min-width: 0; }
.card-wrap .card { flex: 1; min-width: 0; }
.card-info {
  display: none; flex: none; width: 26px; place-items: center; padding: 0; font-family: var(--display); font-style: italic; font-weight: 700; font-size: 1rem;
  color: var(--lapis-700); background: var(--paper-50); border: 1px solid var(--paper-300); border-radius: 5px;
}
.card-info:hover { border-color: var(--gold-700); }
.council-open { display: none; margin-bottom: .3rem; }
.end-actions { flex: none; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; padding-top: .6rem; border-top: 1px solid var(--paper-300); }
.end-actions .small { color: var(--ink); background: var(--paper-50); border-color: var(--paper-300); }
.end-actions .primary { flex: 1 1 14rem; }

.desk .amanah-note { color: var(--ink-soft); }
.desk-top { flex: none; }
.desk-scroll { min-height: 0; }
.desk.acting h2 { font-size: 1.32rem; margin: 0 0 .2rem; line-height: 1.15; }
.desk.acting .ap { margin: 0 0 .35rem; font-size: .88rem; }
.desk.acting .tabs { margin-bottom: .5rem; }
.desk.acting .tab { min-height: 34px; padding: .1rem .45rem; font-size: .9rem; }
.desk.acting .foot { margin-top: .5rem; padding-top: .45rem; font-size: .84rem; gap: .35rem .7rem; }
.desk.acting .foot span { line-height: 1.2; }
.desk.acting .foot .primary { min-height: 40px; }

/* Stufe 1: kürzere Texte, eine Zeile je Karte. Stufe 2: nur noch Name und Preis, der Rat im Fenster. */
.fit-1 .card { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .55rem; align-items: center; min-height: 42px; padding: .22rem .55rem; }
.fit-1 .card.has-art { padding-top: .22rem; }
.fit-1 .card-art { display: none; }
.fit-1 .card strong { grid-column: 1; font-size: .97rem; line-height: 1.15; }
.fit-1 .card > .card-text { grid-column: 1; font-size: .82rem; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fit-1 .card .tag { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; font-size: .74rem; line-height: 1.12; text-align: end; max-width: 7.2rem; justify-content: flex-end; }
.fit-1 .card-info { display: grid; }
.fit-1 .cards { gap: .28rem; }
.fit-1 .policy { margin-bottom: .45rem; }
.fit-1 .policy h4 { margin-bottom: .2rem; font-size: .9rem; }
.fit-1 .desk-scroll > p, .fit-1 .realm-desk p { font-size: .88rem; line-height: 1.22; margin-bottom: .35rem; }
.fit-1 .lede { font-size: .99rem; line-height: 1.3; }
.fit-1 .ref { margin: .4rem 0; padding: .3rem .7rem; font-size: .92rem; line-height: 1.25; }
.fit-1 .council { gap: .25rem; margin: .4rem 0; }
.fit-1 .voice { font-size: .9rem; line-height: 1.2; gap: .4rem; }
.fit-1 .seal { width: 1.7rem; height: 1.7rem; font-size: 1.05rem; }
.fit-1 .choice { min-height: 38px; padding: .22rem .55rem; font-size: .95rem; line-height: 1.16; }
.fit-1 .choices { gap: .22rem; }
.fit-2 .card > .card-text { display: none; }
.fit-2 .card { min-height: 34px; }
.fit-2 .council { display: none; }
.fit-2 .council-open { display: inline-flex; }
.fit-2 .desk-scroll > p { font-size: .84rem; }
.fit-2 .impact-hint { display: none; }
.fit-3 .desk-top h2, .fit-3 .foot > span { display: none; }
.fit-3 .cards { gap: .16rem; }
.fit-3 .card { min-height: 30px; padding-block: .1rem; }
.fit-3 .card strong { font-size: .92rem; }
.fit-3 .card-info { width: 24px; }
.trip-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .35rem; }
.trip-head h4 { margin: 0; font-family: var(--label); font-weight: 700; font-size: .98rem; color: var(--lapis-800); }
.trip-head .small { color: var(--ink); background: var(--paper-50); border-color: var(--paper-300); min-height: 32px; padding: .1rem .5rem; font-size: .84rem; }
.realm-desk .realm-pick .small { color: var(--ink); background: var(--paper-50); border-color: var(--paper-300); }

.impact-bar { display: block; width: 100%; margin-bottom: .45rem; padding: .35rem .55rem; text-align: start; font-size: .84rem; line-height: 1.2; color: var(--lapis-800); background: rgba(201, 162, 75, .18); border: 1px solid var(--gold-700); border-radius: 5px; }
.impact-bar:hover { background: rgba(201, 162, 75, .3); }
.impact-hint { font-size: .84rem; color: var(--ink-soft); }
.impact-hint:empty { display: none; }
.bund-digest { margin: .5rem 0; padding: .45rem .65rem; background: rgba(63, 111, 163, .1); border: 1px solid rgba(63, 111, 163, .4); border-radius: 5px; font-size: .9rem; line-height: 1.22; }
.bund-digest h3 { margin: 0 0 .2rem; font-family: var(--label); font-weight: 700; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--lapis-700); }
.bund-digest ul { list-style: none; margin: 0; padding: 0; }
.bund-digest li { padding: .08rem 0; }

/* ───── Fenster der Lage ───── */
.lage-lead { font-size: 1.04rem; line-height: 1.3; }
.lage-tabs { margin-bottom: .6rem; }
.sheet .lage-list, .sheet .enemy-list, .sheet .friend-list, .sheet .room-list, .sheet .lage-chat { list-style: none; margin: 0 0 .5rem; padding: 0; }
.lage-row { display: flex; align-items: center; gap: .55rem; padding: .32rem 0; border-bottom: 1px solid var(--paper-300); }
.lage-row:last-child { border-bottom: 0; }
.lage-row > span { flex: 1; min-width: 0; line-height: 1.2; }
.lage-row small { display: block; font-size: .84rem; color: var(--ink-soft); }
.lage-row.self b { color: var(--rubric); }
.lage-row.alert small { color: var(--rubric); }
.lage-list.wide .lage-row > .power { flex: 1; color: var(--ink); }
.sheet .power em { color: var(--ink-soft); }
.sheet .bar { background: rgba(60, 40, 15, .14); }
.sheet .bund-dot { border-color: var(--ink-soft); flex: none; margin-inline-end: 0; }
.sheet h4 { margin: 0 0 .15rem; font-family: var(--label); font-weight: 700; font-size: .92rem; color: var(--lapis-800); }
.sheet .quiet { color: var(--ink-soft); font-size: .88rem; }
.sheet .small.quiet { min-width: 32px; padding-inline: .35rem; }
.sheet .small.quiet .ic { width: 16px; height: 16px; }
.sheet .bund-pick .small[aria-pressed="true"] { color: var(--gold-100); background: var(--lapis-700); border-color: var(--gold-700); font-weight: 700; }
.sheet .bund-hint { color: var(--ink-soft); }
.sheet .lage-bar { flex-direction: column; margin-top: .5rem; }
/* Der Knopf zum Schließen bleibt auch in einem langen Fenster im Bild. */
.sheet > .primary { position: sticky; bottom: 0; z-index: 1; }
.sheet .lage-btn { flex: none; padding-block: .45rem; }

.round { margin-bottom: .7rem; }
.round > h3 { margin-bottom: .25rem; }
.round-seats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .4rem; }
.round-seat { padding: .35rem .55rem; background: var(--paper-50); border: 1px solid var(--paper-300); border-radius: 5px; font-size: .9rem; line-height: 1.22; }
.round-seat h4 { display: flex; align-items: center; gap: .35rem; }
.round-seat ul { list-style: none; margin: 0; padding: 0; }
.round-seat li { padding: .06rem 0; }
.round-seat p { margin: 0; }
.round-seat .good { color: #17573f; font-weight: 700; }
.round-seat .bad { color: var(--rubric); font-weight: 700; }

.enemy { padding: .55rem .7rem; margin-bottom: .45rem; background: var(--paper-50); border: 1px solid var(--paper-300); border-radius: 6px; }
.enemy p { margin: .15rem 0; font-size: .92rem; line-height: 1.24; }
.enemy-head { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; }
.enemy-head b { font-size: 1.08rem; color: var(--lapis-800); }
.enemy-head em { margin-inline-start: auto; font-family: var(--label); font-style: normal; font-weight: 700; font-size: .84rem; color: var(--ink-soft); }
.enemy-head em.bad { color: var(--rubric); }
.enemy-head em.good { color: #17573f; }
.enemy-foot { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.enemy-foot small { color: var(--ink-soft); }
.enemy-foot .small { flex: none; }

.impact { margin-bottom: .7rem; }
.impact-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: .35rem; margin: .25rem 0; }
.impact-tile { padding: .3rem .5rem; background: var(--paper-50); border: 1px solid var(--paper-300); border-radius: 5px; font-family: var(--label); }
.impact-tile small { display: block; font-weight: 500; font-size: .74rem; color: var(--ink-soft); }
.impact-tile b { font-weight: 700; font-size: 1.22rem; color: var(--lapis-800); }
.impact-tile.good b { color: #17573f; }
.impact-tile.bad b { color: var(--rubric); }
.impact-note { font-size: .9rem; line-height: 1.26; }

/* ───── Freunde ───── */
.online-dot { display: inline-block; width: .55rem; height: .55rem; margin-inline-end: .35rem; border-radius: 50%; background: #9a927f; vertical-align: .05em; }
.online-dot.on, .friend.on .online-dot { background: #36b37e; box-shadow: 0 0 0 2px rgba(54, 179, 126, .28); }
.friends-count { font-family: var(--label); font-weight: 500; font-size: .92rem; color: var(--ink-soft); }
.friend-me { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .45rem .65rem; background: var(--paper-50); border: 1px solid var(--gold-700); border-radius: 6px; }
.friend-me small { display: block; font-size: .8rem; color: var(--ink-soft); }
.friend-code { font-family: var(--label); font-weight: 700; font-size: 1.22rem; letter-spacing: .12em; color: var(--lapis-800); }
.bund-options .friend-code { color: var(--gold-300); }
/* Der Wiederherstellungscode ist doppelt so lang und bricht am Handy in Fünfergruppen um. */
.rescue-code { display: block; font-size: 1.12rem; letter-spacing: .06em; overflow-wrap: anywhere; user-select: all; }
.friend-add { display: flex; gap: .35rem; margin: .5rem 0; }
.friend-add input, .profile-name input {
  flex: 1 1 8rem; min-width: 0; min-height: 40px; padding: .3rem .55rem; font-family: var(--label); font-weight: 600; font-size: 1rem;
  color: var(--ink); background: #fffdf6; border: 1px solid var(--paper-300); border-radius: 5px;
}
.friend-add input { text-transform: uppercase; letter-spacing: .08em; }
.bund-page .profile-name input { color: var(--paper-50); background: rgba(8, 15, 27, .6); border-color: var(--line-strong); }
.friend { display: flex; align-items: center; gap: .5rem; padding: .3rem 0; border-bottom: 1px solid var(--paper-300); list-style: none; }
.friend:last-child { border-bottom: 0; }
.friend > span { flex: 1; min-width: 0; line-height: 1.18; }
.friend b { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.friend small { font-size: .82rem; color: var(--ink-soft); }
.report-reasons { display: flex; flex-direction: column; gap: .35rem; margin-bottom: .6rem; }
.report-reasons .small { width: 100%; text-align: left; }
.friend-list.dark { list-style: none; margin: 0 0 .4rem; padding: 0; }
.friend-list.dark .friend { border-color: var(--line); }
.friend-list.dark small { color: var(--paper-200); }
.friend-list.dark .small.quiet { display: none; }
.room-row { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .4rem 0; border-bottom: 1px solid var(--paper-300); font-size: .95rem; line-height: 1.22; }
.room-row small { display: block; color: var(--ink-soft); font-size: .84rem; }
.room-row .bund-dot { width: .6rem; height: .6rem; margin-inline-end: .25rem; }
.lage-chat li { padding: .12rem 0; font-size: .92rem; }

#invite { position: fixed; z-index: 60; top: calc(.6rem + var(--safe-t)); left: 50%; transform: translateX(-50%); width: min(94vw, 480px); }
#invite[hidden] { display: none; }
.invite-box { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; padding: .55rem .75rem; color: var(--paper-50); background: var(--lapis-800); border: 1px solid var(--gold-300); border-radius: 8px; box-shadow: 0 10px 28px rgba(0, 0, 0, .55); }
.invite-box span { flex: 1 1 12rem; }

/* ───── Gemeinsam spielen und Warteraum: alles auf einer Seite ───── */
.fit-page { display: flex; flex-direction: column; justify-content: center; max-width: 1060px; padding-block: clamp(.5rem, 2vh, 1.4rem); gap: 0; }
.fit-page h1 { margin-top: 0; }
.fit-page .lead { font-size: 1.15rem; margin-bottom: .45rem; }
.fit-page .continue { margin-bottom: .45rem; }
.fit-page .fine { margin: .2rem auto 0; max-width: 720px; font-size: .84rem; line-height: 1.25; }
.fit-page .panel { padding: .7rem .85rem; }
.fit-page .bund-options { width: min(100%, 640px); }
.bund-me { font-size: 1.02rem; margin: 0 0 .55rem; color: var(--paper-100); }
.bund-me .bund-dot { margin-inline: .3rem .35rem; }
.bund-ways { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin-bottom: .55rem; }
.bund-ways .panel { display: flex; flex-direction: column; gap: .35rem; }
.bund-ways .panel h3 { margin-bottom: .15rem; }
.bund-ways .primary { width: 100%; }
.wide-btn { width: 100%; margin-top: auto; }
.online-line { margin: 0; font-family: var(--label); font-weight: 500; font-size: .92rem; color: var(--paper-100); }
.bund-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; }
.bund-join { margin-top: 0; }
.bund-join .small { flex: none; }
.bund-settings-line { margin: 0 0 .35rem; font-family: var(--label); font-size: .92rem; color: var(--gold-100); }
.lobby-code { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .4rem .6rem; margin: .1rem 0 .6rem; }
.lobby-code > span { font-family: var(--label); font-size: .84rem; color: var(--paper-200); }
.lobby-code .bund-code { margin: 0; font-size: clamp(1.5rem, 4vh, 2.2rem); letter-spacing: .22em; text-indent: .22em; }
.bund-tag { padding: .1rem .5rem; font-family: var(--label); font-size: .84rem; color: var(--gold-100); border: 1px solid var(--gold-700); border-radius: 5px; }
.seat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; list-style: none; margin: 0 0 .65rem; padding: 0; text-align: start; }
.seat-card {
  display: flex; flex-direction: column; gap: .12rem; min-width: 0; padding: .55rem .75rem;
  background: linear-gradient(180deg, rgba(33, 57, 90, .78), rgba(17, 31, 51, .92)); border: 1px solid var(--line); border-inline-start: 4px solid var(--seat, var(--line)); border-radius: 7px;
}
.seat-card.me { border-color: var(--gold-500); border-inline-start-color: var(--seat); box-shadow: 0 0 14px rgba(232, 200, 119, .14); }
.seat-card.free { background: rgba(17, 31, 51, .55); border-style: dashed; }
.seat-name { display: flex; align-items: baseline; gap: .15rem; min-width: 0; }
.seat-name b { font-family: var(--display); font-weight: 700; font-size: 1.42rem; line-height: 1.12; color: var(--paper-50); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.seat-card.free .seat-name b { color: var(--paper-300); font-size: 1.15rem; }
.seat-name small { flex: none; margin-inline-start: .35rem; font-family: var(--label); font-size: .78rem; color: var(--gold-300); }
.seat-info { font-size: .9rem; line-height: 1.2; color: var(--paper-200); }
.seat-tools { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .3rem; }
.seat-tools .small { min-height: 32px; padding: .1rem .55rem; font-size: .86rem; }
.seat-tools .small.quiet { color: var(--paper-200); }

/* Neues Spiel: vier Zeilen, jede öffnet ihr Fenster. So bleibt Starten ohne Scrollen im Bild. */
.setup-steps { display: none; }
.setup-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-block: .6rem .8rem; }
.setup { display: flex; flex-direction: column; justify-content: center; padding-block: clamp(.5rem, 3vh, 2rem); }
.setup-inner { width: 100%; }
.start-bar { position: static; margin-top: 0; }

/* Ende: Der Text scrollt für sich, die Knöpfe bleiben stehen. */
.end-screen { display: flex; flex-direction: column; height: 100vh; height: 100dvh; min-height: 0; padding-block: clamp(.5rem, 2vh, 1.4rem); }
.end-screen .kicker { flex: none; margin-bottom: .4rem; }
.end-screen .desk { flex: 1; min-height: 0; width: min(100%, 780px); margin-inline: auto; display: flex; flex-direction: column; }
.end-screen .desk-scroll { flex: 1; overflow-y: auto; padding-inline-end: .4rem; }
.sheet .chronicle { max-height: none; overflow: visible; }

/* ───── Breit: Bühne und Pult füllen die Höhe und scrollen nicht ───── */
@media (min-width: 980px) {
  .board[data-pane] { --room: calc(100vh - var(--top) - var(--stats-h) - var(--bar-h) - 3.5rem); --room: calc(100dvh - var(--top) - var(--stats-h) - var(--bar-h) - 3.5rem); }
  .board-stage, .board-desk { overflow: hidden; }
  .board-desk { display: flex; flex-direction: column; }
  .board-desk > .desk { flex: 1; min-height: 0; display: flex; flex-direction: column; padding-bottom: .8rem; }
  .desk-scroll { flex: 1; overflow-y: auto; scrollbar-width: thin; padding-inline-end: .2rem; }
  .desk > .choices { flex: none; max-height: 62%; overflow-y: auto; scrollbar-width: thin; padding-top: .35rem; margin-top: .1rem; border-top: 1px solid var(--paper-300); }
  .desk > .primary.wide { flex: none; margin-top: .5rem; }
  .desk > .foot { flex: none; }
  .scene { aspect-ratio: 8 / 5; }
  .map-me span { display: none; }
  .map-tools .map-me span { display: inline; }
  .stage { gap: .45rem; }
  .board-stage { gap: .45rem; }
}
@media (min-width: 980px) and (max-height: 800px) {
  :root { --bar-h: 48px; }
  .lage-btn { padding-block: .08rem; }
  .lage-btn em { font-size: .7rem; }
  .desk.acting { padding-top: 1.05rem; }
  .desk.acting h2 { font-size: 1.2rem; }
  .turn-clock b { font-size: 1.1rem; }
}
@media (min-width: 980px) and (max-width: 1240px) {
  .lage-btn { padding-inline: .4rem; gap: .3rem; }
  .lage-btn > .ic { display: none; }
  .resources { gap: .6rem; }
}

/* ───── Schmal: Auch am Handy bleibt die Seite stehen, das Pult füllt den Platz über der unteren Leiste ───── */
@media (max-width: 979px) {
  #app:has(> .board) { display: flex; flex-direction: column; height: 100vh; height: 100dvh; overflow: hidden; }
  .topbar { flex: none; position: relative; }
  .board { flex: 1; min-height: 0; overflow-y: auto; }
  .board[data-pane="pult"] { display: flex; flex-direction: column; overflow: hidden; padding-bottom: calc(var(--dock) + var(--safe-b) + .3rem); }
  .board[data-pane="pult"] .board-stage { flex: none; }
  .board[data-pane="pult"] .lage-bar { display: none; }
  .board[data-pane="pult"] .board-desk { flex: 1; min-height: 0; display: flex; flex-direction: column; }
  .board[data-pane="pult"] .desk { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 1.05rem .8rem .6rem; margin-top: 0; }
  .board[data-pane="pult"] .desk-scroll { flex: 1; overflow-y: auto; }
  .board[data-pane="pult"] .desk > .choices { flex: none; max-height: 58%; overflow-y: auto; padding-top: .3rem; border-top: 1px solid var(--paper-300); }
  .board[data-pane="pult"] .desk > .primary.wide { flex: none; margin-top: .4rem; }
  .board[data-pane="pult"] .desk > .foot { flex: none; }
  .desk h2 { font-size: 1.4rem; }
  .dock { grid-template-columns: repeat(5, 1fr); }
  .lage-bar { flex-wrap: wrap; min-height: 0; }
  .lage-btn { flex: 1 1 30%; min-height: 44px; padding-inline: .4rem; gap: .3rem; }
  .lage-btn > .ic { display: none; }
  .lage-btn small { display: none; }
  .lage-btn b { font-size: .84rem; }
  .sheet .lage-btn { min-height: 56px; }
  .sheet .lage-btn > .ic { display: block; }
  .sheet .lage-btn small { display: block; }
  .turn-clock { padding-inline-start: .35rem; gap: .25rem; }
  .turn-clock small { display: none; }
  .turn-clock .tool { display: none; }
  .turn-clock b { font-size: 1.05rem; }
  .bund-ways { grid-template-columns: 1fr; }
  .seat-name b { font-size: 1.2rem; }
  .fit-page { justify-content: flex-start; }
  .res.minor { display: none; }
  .board[data-pane="pult"] .scene { height: clamp(44px, 7vh, 80px); }
}
@media (max-width: 620px) {
  .seat-grid { grid-template-columns: 1fr; gap: .3rem; }
  .seat-card { padding: .35rem .6rem; }
  .setup-rows { grid-template-columns: 1fr; }
  .bund-ways .panel { padding: .5rem .65rem; }
  .fit-page .fine { display: none; }
}
