/* GEMAY · open-route edition. Loaded after upgrade.css. */
:root{--map-line:#e3dce8;--map-ink:#49315b;--map-muted:#95819f;--map-lavender:#f2ebf8}
.site-shell{max-width:1480px;padding:0 30px}
.topbar{height:78px}
.intro{padding:18px 1px 20px;min-height:108px}
.intro .eyebrow{font-size:8px;letter-spacing:2px}
h1{font-size:29px;margin:5px 0 5px}
.intro-copy{font-size:11px}
.intro-aside{opacity:.8}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr)280px;gap:20px;align-items:start}
.board-card{padding:15px 16px 13px;border-radius:22px;background:linear-gradient(145deg,#fffefa,#fcf9f4);box-shadow:0 3px 7px #4c3a5a03,0 14px 36px #4c3a5a06;min-width:0}
.board-header{height:auto;min-height:44px;margin:0 2px 10px;gap:12px;flex-wrap:wrap}
.board-header>div:first-child{gap:9px;flex:1;min-width:0}
.board-header h2{font-size:18px;letter-spacing:.5px;white-space:nowrap}
.board-header .section-index{font-size:9px;color:#b4a8bc}
.board-serial{display:none}
#boardPill{font-size:9px;border-radius:5px;padding:5px 7px;white-space:nowrap}
.map-tools{display:flex;align-items:center;gap:9px;margin-left:auto;flex:none}
.map-tools button{min-height:38px;border-radius:8px;background:#fffefa;border:1px solid #ded2e7;color:#77528e;box-shadow:0 2px 0 #e7dceb66;font-size:11px;line-height:1;transition:background .16s,border-color .16s,box-shadow .16s}
.map-tools button:hover:not(:disabled){background:#f7f0fc;border-color:#b899ce;box-shadow:0 2px 0 #dbc6e9}
.map-tools button:active:not(:disabled){transform:translateY(1px);box-shadow:none}
.map-tools button:disabled{color:#c5b9ce;background:#fbf8fc;cursor:default}
.map-tools button:focus-visible{outline:3px solid #bed246;outline-offset:3px}
#expandMapButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;font-weight:600;white-space:nowrap}
#expandMapButton svg{width:14px;height:14px}
.map-zoom{display:inline-flex;align-items:center;gap:0;border:1px solid #ded2e7;border-radius:9px;overflow:hidden;background:#fffefa;box-shadow:0 2px 0 #e7dceb66}
.map-zoom button{border:0;border-radius:0;box-shadow:none;min-height:36px;min-width:35px;padding:0 8px;font-size:18px;background:transparent}
.map-zoom button:hover:not(:disabled){box-shadow:none}
.map-zoom #zoomReset{font-size:10px;min-width:48px;font-weight:500;letter-spacing:.2px;border-left:1px solid #eee6f3;border-right:1px solid #eee6f3}
.map-viewport{position:relative;width:100%;max-width:840px;aspect-ratio:1;margin:0 auto;overflow:hidden;border-radius:17px;isolation:isolate;overscroll-behavior:contain;background:#fbfaf5;scrollbar-width:thin;scrollbar-color:#c7b3d6 #eee8f2;touch-action:pan-x pan-y}
.map-viewport.is-zoomed{overflow:auto;cursor:grab;box-shadow:inset 0 0 0 1px #e8deef}
.map-viewport.is-zoomed:active{cursor:grabbing}
.map-viewport::-webkit-scrollbar{width:7px;height:7px}
.map-viewport::-webkit-scrollbar-track{background:#eee8f2;border-radius:8px}
.map-viewport::-webkit-scrollbar-thumb{background:#c7b3d6;border-radius:8px;border:1px solid #eee8f2}
.map-viewport .board-wrap{width:var(--map-zoom,100%);max-width:none;aspect-ratio:1;height:auto;margin:0 auto;border-radius:0;position:relative;flex:none}
.map-viewport .flight-board{border-radius:0}
.map-legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px 17px;margin:10px 2px 0;padding:9px 5px;border-top:1px solid #eae3ed;font-size:10px;line-height:1.3;color:#8e779c}
.legend-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.legend-item[hidden]{display:none!important}
.adventure-only[hidden]{display:none!important}
.legend-item i{display:inline-flex;position:relative;width:13px;height:13px;border-radius:4px;flex:none;font-style:normal;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1}
.legend-track{background:linear-gradient(135deg,#e3c9f4 0 50%,#d6e69a 50%);border:1px solid #cfb6dd}
.legend-runway{background:#e3d0f3;border:1px solid #a17cbe}
.legend-runway:after{content:'›';font-size:15px;color:#8452a8;transform:rotate(-90deg)}
.legend-flight{background:#f7f0ff;border:1px dashed #9a71b7}
.legend-flight:after{content:'↗';color:#8252a2;font-size:12px}
.legend-shield{background:#e4f4f7;border:1px solid #7bbac7}
.legend-shield:after{content:'◆';color:#448f9e;font-size:8px}
.legend-boost{background:#fff0d5;border:1px solid #dcb36a}
.legend-boost:after{content:'ϟ';font-size:14px;color:#c89132}
#mapModeHint,.mode-note{margin:0 2px 10px;padding:9px 11px;border:1px solid #e6ddec;border-radius:9px;background:#f7f1fb;color:#8c6c9f;font-size:11px;line-height:1.65;letter-spacing:.1px}
#mapModeHint:empty,.mode-note:empty{display:none}
.map-help{font-size:10px;line-height:1.6;color:#ad98b7;text-align:center;margin:7px 0 0}
.selection-summary{margin:0 2px 0;font-size:11px;min-height:35px;border-color:#e7d9ef;background:#f6effa}
.selection-summary .selection-icon{width:22px;height:22px}
.board-footer{margin:9px 3px 0;padding-top:10px;min-height:29px;font-size:10px}
.board-footer .round-label{font-size:9px}
.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 15px;max-width:none}
.mode-tab{position:relative;display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:65px;border:1px solid #e0d9e5;border-radius:13px;background:linear-gradient(135deg,#fffefa,#faf7fc);box-shadow:0 2px 0 #e6dce944;text-align:left;color:#7a6388;transition:border-color .16s,background .16s,box-shadow .16s}
.mode-tab .mode-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border:1px solid #e1d4ec;border-radius:10px;background:#f1e9f7;font-size:18px;line-height:1;color:#9062ad;font-style:normal}
.mode-tab strong{font-size:13px;font-weight:700;line-height:1.3;color:inherit;display:block}
.mode-tab small{font-size:10px;font-weight:400;color:#ac96b8;display:block;margin-top:5px;line-height:1.4;letter-spacing:.1px}
.mode-tab:hover{border-color:#bda2ce;background:#fffdff}
.mode-tab.active{border-color:#a882c2;background:linear-gradient(115deg,#eee1f8,#fbf6ff);box-shadow:inset 3px 0 #8650af,0 2px 0 #dfc9ed55;color:#724297}
.mode-tab.active .mode-icon{background:linear-gradient(#9966bf,#7b46a2);border-color:#9869b5;color:white;box-shadow:0 2px 0 #71408f,inset 0 1px #c7a8dd77}
.mode-tab.active small{color:#9c7caf}
.mode-tab[data-mode="sprint"] .mode-icon{color:#aa822f;background:#f7edcf;border-color:#e7d6a3}
.mode-tab[data-mode="sprint"].active{background:linear-gradient(115deg,#f6edcf,#fffdf3);border-color:#c7ac64;box-shadow:inset 3px 0 #b3923e,0 2px 0 #e9d9a655;color:#91702b}
.mode-tab[data-mode="sprint"].active .mode-icon{color:#fff;background:linear-gradient(#c7a65b,#a98732);border-color:#b59a51;box-shadow:0 2px 0 #97742e,inset 0 1px #e9d79b77}
.mode-tab[data-mode="sprint"].active small{color:#ab945b}
.mode-tab[data-mode="adventure"] .mode-icon{color:#518f87;background:#e5f2e6;border-color:#c7dfcb}
.mode-tab[data-mode="adventure"].active{background:linear-gradient(115deg,#e6f0d3,#fbfff4);border-color:#adc273;box-shadow:inset 3px 0 #98b43e,0 2px 0 #d6e2b455;color:#738b2e}
.mode-tab[data-mode="adventure"].active .mode-icon{color:#fff;background:linear-gradient(#afc560,#8da541);border-color:#9cb14c;box-shadow:0 2px 0 #7d9633,inset 0 1px #d3e29c77}
.mode-tab[data-mode="adventure"].active small{color:#95a56b}
.mode-tab:focus-visible{outline:3px solid #bfd348;outline-offset:3px}
.control-column{gap:14px}
.flight-console{padding:18px 17px 15px}
.console-top .eyebrow{font-size:8px;letter-spacing:1.3px}
.live-pill{padding:5px 6px;font-size:9px}
.turn-heading{gap:9px;margin:16px 0 6px}
.turn-avatar{width:35px;height:35px;border-radius:11px}
.turn-avatar svg{width:22px;height:22px}
.turn-heading p{font-size:10px}
.turn-heading h2{font-size:19px;letter-spacing:.2px}
.turn-number{font-size:27px}
.dice-area{height:112px;min-height:112px;max-height:112px;margin:2px 0 13px;padding-bottom:20px}
.dice{width:66px;height:66px;border-radius:17px}
.dice>div{width:43px;height:43px;gap:4px}
.pip{width:9px;height:9px}
.dice-orbit{width:145px;height:69px;opacity:.5}
.orbit-two{width:161px;height:48px}
.dice-caption{font-size:9px}
.turn-message{font-size:11px;line-height:1.8;min-height:20px;margin-bottom:12px}
.roll-button{min-height:46px;font-size:13px;border-radius:10px}
.move-options{gap:7px}
.move-options button{width:43px;height:43px;font-size:11px}
.console-footnote{font-size:9px;line-height:1.7;margin-top:11px}
.fleet-card{padding:16px 13px 0}
.card-title{gap:4px;margin-bottom:10px}
.card-title h2{font-size:13px}
.card-title>span{font-size:9px}
.player-row{gap:7px;padding:8px 5px}
.player-avatar{width:28px;height:28px;border-radius:9px}
.player-name{font-size:10px}
.player-role{font-size:8px}
.player-progress{gap:2px}
.progress-plane{width:5px;height:5px}
.progress-count{font-size:10px;width:25px}
.goal-note{display:inline-flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #e7dced;border-radius:5px;background:#f7f0fb;color:#9879ab;font-size:9px;line-height:1.3;white-space:nowrap}
.shield-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 4px;border-radius:5px;border:1px solid #afd7df;color:#5294a0;background:#e7f4f7;font-size:8px;line-height:1;white-space:nowrap}
.fleet-bottom{font-size:9px;gap:6px;margin-top:9px;padding:10px 0;flex-wrap:wrap}
.fleet-bottom button{font-size:9px}
.bottom-row{grid-template-columns:1fr 280px;gap:20px;margin-top:17px}
.mode-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.mode-choices label{position:relative;cursor:pointer}
.mode-choices input{position:absolute;opacity:0;pointer-events:none}
.mode-choices label>span{display:block;text-align:center;padding:12px 5px;border:1px solid #e3d6ed;border-radius:10px;background:#fffefa;color:#91749f;font-size:11px;line-height:1.5;min-height:67px}
.mode-choices small{display:block;margin-top:5px;font-size:8px;line-height:1.5;color:#af97ba}
.mode-choices input:checked+span{border-color:#ae84c8;background:#f1e6f9;color:#7c4999;box-shadow:inset 0 1px #fff,0 2px 0 #dcc7e9}
.mode-choices input:focus-visible+span{outline:3px solid #bfd348;outline-offset:3px}
body.map-open{overflow:hidden}
.board-card.expanded{position:fixed;z-index:40;inset:12px 12px 110px;width:auto;height:calc(100dvh - 122px);max-width:none;padding:12px 18px 10px;margin:0;border-radius:20px;display:flex;flex-direction:column;align-self:stretch;overflow:hidden;background:radial-gradient(ellipse at 20% 40%,#f3edf966,transparent 57%),#fffdf7;box-shadow:0 0 0 30px #e9e1eedf,0 20px 80px #38234638}
.board-card.expanded .board-header{flex:none;width:100%;margin:0 0 8px;min-height:42px}
.board-card.expanded .map-viewport{width:100%;max-width:none;flex:1 1 auto;min-height:0;margin:0;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;overflow:hidden}
.board-card.expanded #board{width:calc(min(100vw - 62px,100dvh - 270px) * var(--map-factor,1));max-width:none;margin:0 auto;flex:none}
.board-card.expanded .map-viewport.is-zoomed{display:block;overflow:auto}
.board-card.expanded .map-legend{flex:none;width:100%;padding:8px 0 3px;margin-top:7px;font-size:10px;border-top:0;gap:9px 19px}
.board-card.expanded .selection-summary,.board-card.expanded .board-footer,.board-card.expanded #mapModeHint,.board-card.expanded .map-help{display:none}
.board-card.expanded #expandMapButton{background:#f0e5f9;color:#6c3e8c;border-color:#bfa1d4}
body.map-open .mobile-dock{display:flex;position:fixed;z-index:70;left:50%;right:auto;bottom:12px;transform:translateX(-50%);width:min(560px,calc(100vw - 28px));padding:11px 14px;gap:11px;min-height:76px;border-radius:17px;border:1px solid #d3bce4;background:linear-gradient(150deg,#fffefcf7,#f3eafaf7);box-shadow:inset 0 1px #fff,0 3px 0 #e0d4e9bb,0 8px 28px #4a2b6b24;backdrop-filter:blur(15px);align-items:center}
body.map-open .dock-dice{display:grid;place-items:center;width:44px;height:45px;flex:none;border-radius:12px;background:linear-gradient(145deg,#fff,#f5edf9);border:1px solid #e0cdeb;box-shadow:inset 0 1px #fff,0 3px 0 #d6c2e5,0 5px 8px #6737940d;font-size:33px;line-height:1;color:var(--turn-color,#7943a3)}
body.map-open .dock-caption{flex:1;min-width:0}
body.map-open .dock-caption strong{font-size:13px;font-weight:700;color:#62427d;line-height:1.4;display:block;white-space:nowrap}
body.map-open .dock-caption small{font-size:10px;font-weight:400;color:#a282b3;display:block;line-height:1.5;white-space:nowrap;margin-top:4px}
body.map-open .dock-actions{display:flex;gap:7px;margin-left:auto;flex:none}
body.map-open .dock-roll{min-width:128px;height:46px;padding:0 18px;border-radius:11px;font-size:13px;white-space:nowrap}
body.map-open .dock-plane{min-width:44px;width:44px;height:44px;flex:none;border:1px solid #dcc6ea;border-radius:10px;background:linear-gradient(#fff,#f0e6f8);color:#9468b0;font-size:13px;font-weight:600;box-shadow:0 2px 0 #e5d3ed}
body.map-open .dock-plane.selected{background:linear-gradient(#8853b7,#69349c);color:white;border-color:#7844a6;box-shadow:inset 0 1px #b18bcd9c,0 3px 0 #51257f}
body.map-open .dock-confirm{height:44px;min-width:110px;padding:0 14px;border-radius:10px;font-size:12px;white-space:nowrap;flex:1}
body.map-open .mobile-dock.choosing{flex-wrap:wrap;gap:8px;padding:10px 14px 11px;min-height:108px}
body.map-open .mobile-dock.choosing .dock-dice{display:none}
body.map-open .mobile-dock.choosing .dock-caption{flex:0 0 100%;display:flex;align-items:center;gap:10px;justify-content:space-between}
body.map-open .mobile-dock.choosing .dock-caption strong{font-size:12px;line-height:1.5}
body.map-open .mobile-dock.choosing .dock-caption small{font-size:10px;margin-top:0;line-height:1.5;text-align:right;white-space:normal}
body.map-open .mobile-dock.choosing .dock-actions{flex:0 0 100%;width:100%;justify-content:flex-start;gap:7px;margin:0}
body.map-open:has(.mobile-dock.choosing) .board-card.expanded{bottom:140px;height:calc(100dvh - 152px)}
body.map-open:has(.mobile-dock.choosing) .board-card.expanded #board{width:calc(min(100vw - 62px,100dvh - 300px) * var(--map-factor,1))}
@media(min-width:1600px){.site-shell{max-width:1540px}.game-layout{grid-template-columns:minmax(0,1fr)295px;gap:22px}.map-viewport{max-width:900px}.intro{padding:19px 1px 21px}.board-card{padding:17px 18px 15px}.bottom-row{grid-template-columns:1fr 295px;gap:22px}}
@media(max-width:1100px) and (min-width:801px){.site-shell{padding:0 22px}.game-layout{grid-template-columns:minmax(0,1fr)258px;gap:16px}.board-card{padding:13px 12px 12px}.board-header{gap:7px}.board-header h2{font-size:16px}.board-header>div:first-child{gap:7px}.board-header .section-index{display:none}.map-tools{gap:6px}.map-tools button{font-size:10px}.map-zoom button{min-width:30px;font-size:17px;padding:0 6px}.map-zoom #zoomReset{min-width:42px;font-size:9px}#expandMapButton{padding:0 9px}.mode-tab{gap:9px;padding:11px 12px;min-height:62px}.mode-tab .mode-icon{width:31px;height:31px;font-size:17px}.mode-tab strong{font-size:12px}.mode-tab small{font-size:9px}.mode-switch{gap:8px;margin-bottom:13px}.flight-console{padding:16px 13px 14px}.turn-heading h2{font-size:18px}.turn-number{display:none}.turn-avatar{width:32px;height:32px}.fleet-card{padding:15px 10px 0}.player-row{gap:6px;padding:8px 4px}.player-avatar{width:25px;height:25px}.player-avatar svg{width:17px;height:17px}.player-name{font-size:9px}.player-role{font-size:7px}.player-progress{gap:2px}.progress-plane{width:4px;height:4px}.progress-count{font-size:9px;width:23px}.shield-count{font-size:7px;padding:0 3px;min-width:16px;height:15px}.bottom-row{grid-template-columns:1fr 258px;gap:16px}.map-legend{font-size:9px;gap:8px 12px}.map-legend .legend-item{gap:5px}}
@media(max-width:800px){
  .site-shell{padding:0 10px;max-width:760px}
  .topbar{height:60px}
  .intro{padding:10px 2px 12px;min-height:63px}
  h1{font-size:23px;margin:0 0 2px}
  .intro-copy{font-size:9px}
  .mode-switch{gap:6px;margin-bottom:10px}
  .mode-tab{padding:9px 8px;min-height:58px;gap:7px;border-radius:10px}
  .mode-tab .mode-icon{width:28px;height:28px;border-radius:8px;font-size:15px}
  .mode-tab strong{font-size:11px;line-height:1.3;white-space:nowrap}
  .mode-tab small{font-size:8px;margin-top:4px;line-height:1.35;letter-spacing:0}
  .mode-tab.active{box-shadow:inset 2px 0 #8650af,0 2px 0 #dfc9ed44}
  .game-layout{display:flex;flex-direction:column;gap:10px}
  .board-card{padding:9px 7px 10px;border-radius:17px;width:100%}
  .board-header{gap:8px;min-height:0;margin:0 4px 8px;flex-wrap:wrap;align-items:center}
  .board-header>div:first-child{flex:1 0 auto;gap:8px;min-height:29px}
  .board-header h2{font-size:15px}
  #boardPill{font-size:8px;padding:4px 6px}
  .map-tools{flex:0 0 100%;width:100%;margin:0;justify-content:space-between;gap:9px}
  .map-tools button{min-height:40px;border-radius:8px;font-size:11px}
  #expandMapButton{min-height:42px;padding:0 12px;min-width:106px;font-size:11px}
  .map-zoom{border-radius:9px}
  .map-zoom button{min-height:40px;min-width:40px;font-size:20px;border-radius:0}
  .map-zoom #zoomReset{min-width:50px;font-size:10px}
  .map-viewport{max-width:none;width:100%;border-radius:13px}
  .map-viewport .board-wrap{width:var(--map-zoom,100%);max-width:none;margin:0 auto;border-radius:0}
  .map-legend{gap:7px 12px;margin:8px 3px 0;padding:8px 0;font-size:9px;justify-content:flex-start}
  .legend-item{gap:5px}
  .legend-item i{width:12px;height:12px;border-radius:3px}
  #mapModeHint,.mode-note{margin:0 3px 8px;padding:8px 9px;font-size:10px;line-height:1.65;border-radius:8px}
  .selection-summary{margin:0 3px;font-size:10px;min-height:34px;padding:7px 8px;gap:6px}
  .selection-icon{width:21px;height:21px;font-size:14px}
  .selection-key{font-size:9px;padding:3px 5px}
  .board-footer{font-size:9px;margin:8px 4px 0;padding-top:9px;min-height:28px}
  .board-footer .round-label{font-size:8px}
  .control-column{display:block;width:100%}
  .control-column .flight-console{display:none}
  .fleet-card{padding:11px 10px 0;border-radius:14px}
  .player-row{gap:6px;min-height:45px;padding:7px 6px}
  .player-avatar{width:25px;height:25px}
  .player-name{font-size:10px}
  .player-role{font-size:8px}
  .progress-count{font-size:9px;width:23px}
  .shield-count{font-size:7px;padding:0 3px;min-width:16px;height:15px}
  .fleet-bottom{margin-top:7px;padding:5px 0;font-size:8px;min-height:34px}
  .goal-note{font-size:8px;padding:3px 5px}
  .bottom-row{display:flex;gap:10px;margin-top:11px}
  .board-card.expanded{inset:7px 7px calc(100px + env(safe-area-inset-bottom));height:calc(100dvh - 107px - env(safe-area-inset-bottom));padding:10px 9px 8px;border-radius:15px;z-index:40}
  .board-card.expanded .board-header{margin:0 2px 6px;gap:5px;min-height:0}
  .board-card.expanded .board-header>div:first-child{min-height:28px}
  .board-card.expanded .map-tools button{min-height:38px}
  .board-card.expanded #expandMapButton{min-height:40px}
  .board-card.expanded .map-zoom button{min-height:38px}
  .board-card.expanded .map-viewport{width:100%;margin:0;max-width:none;flex:1 1 auto;min-height:0;aspect-ratio:auto}
  .board-card.expanded #board{width:calc(min(100vw - 34px,100dvh - 270px) * var(--map-factor,1))}
  .board-card.expanded .map-legend{font-size:8px;gap:6px 10px;padding:6px 0 0;margin-top:5px;justify-content:center}
  body.map-open .mobile-dock{z-index:70;width:calc(100vw - 18px);padding:10px;gap:9px;bottom:calc(9px + env(safe-area-inset-bottom));min-height:72px}
  body.map-open .dock-dice{width:39px;height:42px;font-size:30px}
  body.map-open .dock-caption strong{font-size:12px}
  body.map-open .dock-caption small{font-size:9px}
  body.map-open .dock-roll{min-width:105px;height:44px;font-size:12px;padding:0 12px}
  body.map-open .dock-confirm{min-width:90px;padding:0 9px;font-size:11px}
  body.map-open .mobile-dock.choosing{padding:9px 10px 11px;min-height:104px}
  body.map-open .mobile-dock.choosing .dock-caption strong{font-size:11px}
  body.map-open .mobile-dock.choosing .dock-caption small{font-size:9px}
  body.map-open .mobile-dock.choosing .dock-actions{gap:6px}
  body.map-open:has(.mobile-dock.choosing) .board-card.expanded{bottom:calc(132px + env(safe-area-inset-bottom));height:calc(100dvh - 139px - env(safe-area-inset-bottom))}
  body.map-open:has(.mobile-dock.choosing) .board-card.expanded #board{width:calc(min(100vw - 34px,100dvh - 300px) * var(--map-factor,1))}
  body.map-open .toast{z-index:75}
}
@media(max-width:440px){
  .topbar{height:59px}
  .intro{padding:10px 2px 11px;min-height:61px}
  h1{font-size:22px}
  .mode-switch{gap:5px;margin-bottom:9px}
  .mode-tab{padding:8px 7px;gap:5px;min-height:55px;border-radius:9px}
  .mode-tab .mode-icon{width:24px;height:25px;border-radius:7px;font-size:14px}
  .mode-tab strong{font-size:10px}
  .mode-tab small{font-size:7px;line-height:1.4;max-width:77px}
  .board-card{padding:8px 5px 9px;border-radius:15px}
  .board-header{margin:0 5px 7px;gap:6px}
  .board-header h2{font-size:14px}
  .board-header>div:first-child{gap:7px;min-height:27px}
  .map-tools{gap:7px}
  #expandMapButton{min-width:101px;padding:0 10px;font-size:10px}
  .map-zoom button{min-width:38px}
  .map-zoom #zoomReset{min-width:47px;font-size:10px}
  .map-legend{font-size:8px;gap:7px 10px;margin-top:7px;padding:7px 0}
  .legend-item{gap:4px}
  .legend-item i{width:11px;height:11px}
  #mapModeHint,.mode-note{font-size:9px;padding:7px 8px;margin-bottom:7px}
  .selection-summary{font-size:9px;min-height:32px;padding:6px 7px}
  .selection-key{font-size:8px;padding:3px 4px}
  .selection-icon{width:20px;height:20px;font-size:13px}
  .board-footer{font-size:8px;gap:5px}
  .player-name{font-size:9px}
  .player-role{font-size:7px}
  .goal-note{font-size:7px}
  .mode-choices{gap:6px}
  .mode-choices label>span{font-size:10px;padding:11px 3px;min-height:64px}
  .mode-choices small{font-size:7px}
}
@media(max-width:360px){.mode-tab .mode-icon{display:none}.mode-tab{justify-content:center;text-align:center;padding:8px 5px}.mode-tab small{max-width:none}.map-legend{column-gap:9px}.map-zoom button{min-width:36px}.map-zoom #zoomReset{min-width:45px}.board-header h2{font-size:13px}.shield-count{font-size:6px;padding:0 2px;min-width:14px;height:14px}body.map-open .dock-confirm{min-width:76px;padding:0 6px}body.map-open .mobile-dock.choosing .dock-actions{gap:5px}body.map-open .dock-caption strong{font-size:11px}body.map-open .dock-caption small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.mode-tab,.map-tools button{transition:none}.map-tools button:active:not(:disabled){transform:none}}
