
:root{color-scheme:dark;--ink:#18382e;--paper:#fff4d4;--gold:#e9d493;--line:#c8dbba40;--panel:#173b2eed}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--ink);font-family:Arial,sans-serif;color:var(--paper)}[hidden]{display:none!important}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:var(--paper);background:#214a38;border:1px solid var(--line);border-radius:9px;padding:11px 14px;cursor:pointer}button:hover{background:#345d43}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}a{color:var(--gold)}.primary,button[aria-pressed=true]{color:var(--ink);background:var(--gold);font-weight:bold}input,select{border:1px solid var(--line);background:#143126;color:var(--paper);border-radius:8px;padding:12px;min-width:0}#world{display:block;width:100%;height:100%;outline:none;touch-action:none}.brand{font-size:22px;font-weight:900;letter-spacing:4px;text-decoration:none;color:var(--paper);text-shadow:0 2px 6px #102f28}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--gold)}.account{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:25px;background:linear-gradient(110deg,#143427ed,#143427a8),url('assets/gold/NEW_BARK_TOWN.png') center/cover;image-rendering:pixelated}.account-card{image-rendering:auto;background:#16392fee;border:1px solid var(--line);border-radius:18px;padding:35px;width:min(430px,100%);box-shadow:0 20px 80px #082c2570}h1{font:36px Georgia;margin:15px 0}h2{font:28px Georgia}.account-card>p{font-size:12px;color:#bfd0b7;line-height:1.6}.tabs{display:flex;gap:5px;margin:24px 0}.tabs button{flex:1;font-size:12px}form label{display:flex;flex-direction:column;gap:8px;font-size:11px;margin:14px 0}form .primary{width:100%;margin-top:10px}#account-error{color:#ffc6ac;font-size:12px;line-height:1.4;min-height:14px}.small,.home-link{font-size:11px}.connection-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,90%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center;z-index:8}.connection-card p{font-size:13px;line-height:1.5}header{position:absolute;top:max(20px,env(safe-area-inset-top));left:25px;right:25px;display:flex;gap:12px;align-items:center;pointer-events:none}header>*{pointer-events:auto}header .zone{margin-left:auto;background:var(--panel);padding:10px 14px;border:1px solid var(--line);border-radius:9px;display:grid;gap:5px}.zone strong{font-size:12px}.zone small{font-size:9px;color:#c2d99d}header button{font-size:12px;min-height:42px}#interact{position:absolute;bottom:28px;right:26px;background:var(--gold);color:var(--ink);font-size:12px;min-height:46px}kbd{font:10px Arial;border:1px solid #829b7380;padding:3px 5px;margin-left:5px;border-radius:3px}#world-hint{position:absolute;bottom:32px;left:25px;font-size:10px;background:var(--panel);padding:10px 14px;border-radius:8px}#touch-pad{display:none;position:absolute;left:max(26px,env(safe-area-inset-left));bottom:max(28px,env(safe-area-inset-bottom));width:94px;height:94px;touch-action:none;user-select:none;-webkit-user-select:none}#joystick{position:relative;width:100%;height:100%;border-radius:50%;border:1px solid #d6e0c540;background:#163c3050;touch-action:none;cursor:grab}#joystick[data-active="true"]{cursor:grabbing;border-color:#f4e8be90}#stick{position:absolute;width:37px;height:37px;left:28px;top:28px;border-radius:50%;background:#ecdfa47a;border:1px solid #f4e8be;pointer-events:none;transform:translate(var(--stick-x,0px),var(--stick-y,0px))}
#battle-actions{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);width:min(660px,calc(100% - 32px));z-index:3}.battle-heading{display:flex;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:8px;font-size:12px}#battle-title{color:var(--gold);white-space:nowrap}#battle-message{font-size:11px;text-align:right}#battle-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:220px;overflow:auto}#battle-choices button{background:#173b2ef5;border-top:3px solid var(--type,#d8d9b4);text-align:left;min-height:62px;padding:12px;font-size:12px}#battle-choices button small{display:block;font-size:9px;color:var(--type,#c8d6b7);margin-top:7px}#battle-choices button:disabled{cursor:default}.in-battle #touch-pad,.in-battle #interact,.in-battle #world-hint{display:none!important}#dialogue{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:min(600px,calc(100% - 32px));background:#173b2ef7;border:1px solid var(--line);border-radius:12px;padding:22px;z-index:5}#dialogue-text{white-space:pre-line;font-size:14px;line-height:1.65;margin:0 0 15px}#dialogue-choices{display:flex;gap:8px;flex-wrap:wrap}#dialogue-choices button{flex:1;min-width:100px}dialog{background:#193c30;color:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px;width:min(610px,calc(100% - 28px));max-height:85dvh;box-shadow:0 20px 100px #08261be0}dialog::backdrop{background:#0f292b90;backdrop-filter:blur(4px)}#panel-close{position:absolute;right:12px;top:12px;padding:5px 10px;font-size:20px}#panel-content{display:grid;gap:9px}.row{display:flex;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:9px;flex-wrap:wrap}.row img{width:42px;height:42px;object-fit:contain;image-rendering:pixelated}.row .description{flex:1;min-width:100px;font-size:13px}.row small{display:block;color:#c1d0b4;font-size:10px;line-height:1.5;margin-top:5px}.row button{font-size:10px;padding:9px}.row select,.row input{font-size:11px;padding:8px;max-width:140px}.row .quantity{width:65px}#panel-message{font-size:12px;color:var(--gold);line-height:1.5}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}#toast{position:absolute;top:155px;left:50%;transform:translateX(-50%);max-width:90%;background:#18392af2;border:1px solid var(--line);border-radius:9px;padding:12px 17px;font-size:12px;text-align:center;z-index:12}
@media(max-width:600px){header{left:14px;right:14px;top:14px;gap:6px}.brand{font-size:16px;letter-spacing:2px}header .zone{padding:8px 10px;max-width:43%}.zone strong{font-size:10px}header button{padding:9px;font-size:10px}#touch-pad{display:block}#world-hint{display:none}#interact{right:18px;bottom:38px;min-height:50px}#interact kbd{display:none}#battle-choices{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}.battle-heading{font-size:11px}.battle-heading #battle-message{font-size:10px}#battle-actions{bottom:max(16px,env(safe-area-inset-bottom))}.account{padding:18px;gap:16px}.account-card{padding:25px}h1{font-size:31px}#dialogue{padding:17px}#dialogue-text{font-size:13px}}
@media(max-height:620px){.account{gap:10px;overflow:auto;justify-content:flex-start;padding:15px}.account-card{padding:18px 26px}h1{font-size:29px;margin:10px 0}.account-card .tabs{margin:12px 0}form label{margin:9px 0;gap:5px}form input{padding:9px}}

#dialogue-text{max-height:45dvh;overflow-y:auto;overscroll-behavior:contain}.gamepad-focus{outline:2px solid var(--gold);outline-offset:2px}
@media(pointer:coarse){#touch-pad{display:block}#world-hint{display:none}}

.chat-log{height:30dvh;overflow-y:auto;background:#102a22;border-radius:8px;padding:12px;font-size:12px;line-height:1.5;word-break:break-word}.chat-log p{margin:0 0 8px}.chat-log strong{color:var(--gold)}#panel-content form{display:grid;grid-template-columns:1fr auto;gap:8px}#panel-content form input:first-child{grid-column:1/-1}

.battle-tools{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#battle-choices .battle-tools button{min-height:42px;text-align:center;border-top:1px solid var(--line);font-weight:bold}.battle-tools button:only-child{grid-column:1/-1}.in-battle #menu-button{display:none}.bag-tabs{display:flex;flex-wrap:wrap;gap:6px}.bag-tabs button{font-size:11px;padding:9px}.row select{max-width:100%}#panel-content>.small{line-height:1.6;margin:4px 0}
/* Classic Pokémon party and summary screens. */
#panel.pokemon-panel{width:min(820px,calc(100% - 24px));padding:0;border:3px solid #233d50;border-radius:12px;background:#eef2ed;color:#273c4b;box-shadow:0 0 0 3px #d6e0d4,0 20px 100px #08261be0;max-height:90dvh}
.pokemon-panel #panel-title{margin:0;padding:18px 50px 18px 24px;background:#be4949;color:#fff8e8;font:800 17px 'Trebuchet MS',Arial,sans-serif;letter-spacing:1px;border-bottom:4px solid #933a41}
.pokemon-panel #panel-close{top:12px;right:12px;background:#993c43;color:#fff9ea;border:1px solid #ed9b8d;z-index:1;min-width:34px}
.pokemon-panel #panel-content{padding:18px;gap:12px}.pokemon-panel #panel-message{margin:0;padding:0 18px;color:#794c24}.pokemon-panel #panel-message:empty{display:none}
.pokemon-panel button{color:#273c4b;background:#e4eae6;border:1px solid #b4c4bf;border-radius:6px;font-weight:700;min-height:40px}.pokemon-panel button:hover{background:#d3dfd9}.pokemon-panel button:focus-visible{outline:3px solid #c84343;outline-offset:2px}.pokemon-panel button:disabled{cursor:default}
.team-hint{margin:0 0 3px;font-size:12px;color:#566e79}.team-card{border:2px solid #aac0bf;border-radius:9px;background:#f9fbf5;overflow:hidden}.team-card:first-of-type{border-color:#638c91}
.pokemon-panel .team-card-open{display:flex;align-items:center;gap:15px;width:100%;text-align:left;background:transparent;border:0;padding:12px;min-height:90px;border-radius:0}
.team-portrait{width:72px;height:72px;display:grid;place-items:center;background:#d9e8dd;border:1px solid #becfc5;border-radius:50%;flex-shrink:0}.team-portrait img{width:64px;height:64px;image-rendering:pixelated;object-fit:contain}
.team-card-detail{flex:1;min-width:0}.team-card-heading,.team-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.team-card-heading strong{font-size:16px;overflow-wrap:anywhere}.team-card-heading>span{font-size:12px;white-space:nowrap;color:#566e79}.team-card-footer{font-size:10px;color:#516a75;margin-top:7px}.team-card-arrow{font-size:25px;color:#648387}
.team-card-actions{display:flex;gap:7px;padding:0 12px 10px 99px}.team-card-actions button{font-size:11px;padding:7px 12px;min-height:34px}.mon-hp{width:100%;margin-top:9px}.mon-hp-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px}.mon-hp-label b{color:#5d6b37;font-size:10px;letter-spacing:1px}
.mon-hp progress,.summary-dv progress{display:block;appearance:none;width:100%;height:9px;border:1px solid #9cafa7;border-radius:4px;overflow:hidden;background:#d6dfd9}.mon-hp progress::-webkit-progress-bar,.summary-dv progress::-webkit-progress-bar{background:#d6dfd9}.mon-hp progress::-webkit-progress-value{background:#55ab80}.mon-hp progress::-moz-progress-bar{background:#55ab80}.mon-hp progress[data-tone=mid]::-webkit-progress-value{background:#d7ad3f}.mon-hp progress[data-tone=mid]::-moz-progress-bar{background:#d7ad3f}.mon-hp progress[data-tone=low]::-webkit-progress-value{background:#c55252}.mon-hp progress[data-tone=low]::-moz-progress-bar{background:#c55252}
.summary-nav{display:flex;align-items:center;gap:8px;margin-bottom:15px}.summary-nav>span{margin-left:auto;font-size:12px;color:#617581}.summary-nav .summary-back{background:transparent;padding-left:9px;font-size:12px}.summary-nav .summary-step{min-width:42px;font-size:20px;padding:5px 13px}
.summary-layout{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr);gap:18px}.summary-portrait{border:2px solid #a9bec0;border-radius:9px;background:repeating-linear-gradient(0deg,#dfebdf 0px,#dfebdf 3px,#e3eee2 3px,#e3eee2 6px);padding:15px;text-align:center;align-self:start}.summary-portrait[data-shiny=true]{border-color:#c6a64d;background:repeating-linear-gradient(0deg,#f2ebce 0px,#f2ebce 3px,#f6efd5 3px,#f6efd5 6px)}
.summary-number{font-size:10px;text-align:left;color:#637b78;letter-spacing:1px;font-weight:bold}.summary-sprite{height:163px;display:grid;place-items:center;position:relative}.summary-sprite:before{content:'';position:absolute;width:125px;height:125px;border:3px solid #718f8425;border-radius:50%;background:linear-gradient(transparent 47%,#718f8425 47%,#718f8425 52%,transparent 52%)}.summary-sprite img{position:relative;width:144px;height:144px;object-fit:contain;image-rendering:pixelated;z-index:1}.summary-portrait h3{font-size:21px;margin:0 0 5px;overflow-wrap:anywhere}.summary-species{font-size:12px;margin:0 0 12px;color:#506e75}.mon-types{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:8px 0}.mon-badge{display:inline-block;font-size:10px;padding:4px 7px;border-radius:4px;background:#edf1e8;border:1px solid #bdcbbb;color:#46605e;font-weight:700;white-space:nowrap}.shiny-badge{background:#fff2b4;border-color:#c7aa45;color:#79540e}.type-badge{color:#fff;background:#7e8997;border-color:#0001;text-shadow:0 1px #0002;letter-spacing:.5px;text-transform:uppercase;font-size:9px;min-width:52px;text-align:center}
.type-badge[data-type=grass]{background:#628f49}.type-badge[data-type=fire]{background:#c86d39}.type-badge[data-type=water]{background:#527fbd}.type-badge[data-type=electric]{background:#bc982e}.type-badge[data-type=ice]{background:#559c9d}.type-badge[data-type=fighting]{background:#ad5549}.type-badge[data-type=poison]{background:#96619e}.type-badge[data-type=ground]{background:#ad8d5f}.type-badge[data-type=flying]{background:#8b88b7}.type-badge[data-type=psychic]{background:#c76483}.type-badge[data-type=bug]{background:#8a983a}.type-badge[data-type=rock]{background:#9c8a50}.type-badge[data-type=ghost]{background:#79668e}.type-badge[data-type=dragon]{background:#716ab8}.type-badge[data-type=dark]{background:#736457}.type-badge[data-type=steel]{background:#7e929b}
.summary-details{min-width:0}.summary-tabs{display:grid;grid-template-columns:.8fr 1.3fr .8fr;gap:5px;margin-bottom:14px}.summary-tabs button{font-size:11px;padding:10px 5px}.summary-tabs button[aria-pressed=true]{background:#496c7c;color:#fff8e8;border-color:#355669}.summary-page h4{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px;color:#566e79}.summary-facts{display:grid;grid-template-columns:1fr 1fr;margin:0;font-size:12px;border:1px solid #c4d1c8;border-radius:7px;overflow:hidden}.summary-facts dt,.summary-facts dd{margin:0;padding:13px 10px;border-bottom:1px solid #d3ddd4;overflow-wrap:anywhere}.summary-facts dt{background:#dde6df;color:#526a73}.summary-facts dd{background:#f9fbf4;font-weight:700}.summary-facts dt:last-of-type,.summary-facts dd:last-child{border-bottom:0}.summary-note{font-size:11px;line-height:1.7;color:#5c737a;margin:14px 0 0}
.summary-stats{border-collapse:collapse;width:100%;font-size:12px;background:#f9fbf4}.summary-stats th,.summary-stats td{text-align:left;padding:10px 9px;border-bottom:1px solid #d1ded4}.summary-stats thead th{background:#dce6df;font-size:10px;color:#5c7077}.summary-stats tbody th{font-weight:normal}.summary-stats td:nth-child(2){font-weight:bold;text-align:center}.summary-stats thead th:nth-child(2){text-align:center}.summary-dv{width:38%;font-size:11px}.summary-dv strong{display:block;margin-bottom:4px;font-weight:normal}.summary-dv progress{height:5px;border:0}.summary-dv progress::-webkit-progress-value{background:#759ea3}.summary-dv progress::-moz-progress-bar{background:#759ea3}.perfect-dv strong{color:#568747;font-weight:bold}.perfect-dv progress::-webkit-progress-value{background:#74a65b}.perfect-dv progress::-moz-progress-bar{background:#74a65b}
.summary-move{background:#f9fbf4;border:1px solid #c4d1c8;border-left:4px solid #94aaac;padding:10px;border-radius:6px;margin-bottom:8px}.move-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.move-heading strong{font-size:12px}.summary-move small{display:block;font-size:10px;color:#63767c;margin-top:6px}.summary-move p{margin:7px 0 0;font-size:11px;line-height:1.5;color:#60747a}.empty-move{font-size:12px;color:#91a09c}
@media(max-width:600px){#panel.pokemon-panel{max-height:92dvh;width:calc(100% - 18px)}.pokemon-panel #panel-content{padding:12px;gap:9px}.pokemon-panel #panel-title{padding:16px 45px 16px 15px;font-size:15px}.summary-layout{grid-template-columns:1fr;gap:14px}.summary-portrait{display:grid;grid-template-columns:95px 1fr;padding:12px;column-gap:10px;align-items:center}.summary-number{grid-column:1/-1;margin-bottom:5px}.summary-sprite{grid-column:1;grid-row:2/6;height:112px}.summary-sprite img{width:100px;height:100px}.summary-sprite:before{width:86px;height:86px}.summary-portrait h3{grid-column:2;font-size:19px;margin:2px 0}.summary-species{grid-column:2;font-size:11px;margin:2px 0}.summary-portrait .mon-types{grid-column:2;margin:4px 0}.summary-portrait .mon-hp{grid-column:1/-1;margin-top:9px}.summary-nav{margin-bottom:11px}.summary-stats th,.summary-stats td{padding:8px}.summary-facts dt,.summary-facts dd{padding:11px 9px}.team-portrait{width:54px;height:54px}.team-portrait img{width:52px;height:52px}.pokemon-panel .team-card-open{gap:10px;padding:10px}.team-card-heading strong{font-size:14px}.team-card-actions{padding:0 10px 9px 74px;flex-wrap:wrap}.team-card-actions button{font-size:10px;padding:7px 9px}.team-card-arrow{display:none}}
/* Trainer card, uncluttered HUD and touch camera controls. */
#zoom-controls{display:none;position:absolute;right:max(18px,env(safe-area-inset-right));top:134px;gap:4px;z-index:2}#zoom-controls button{width:42px;height:42px;padding:0;font-size:23px;background:var(--panel);touch-action:manipulation}.in-battle #zoom-controls{display:none!important}
#chat-toggle{position:absolute;right:max(18px,env(safe-area-inset-right));top:80px;min-width:64px;min-height:42px;background:var(--panel);font-size:12px}#chat-toggle[aria-expanded=true]{background:var(--gold)}
.trainer-back{font-size:12px;padding:8px 12px;margin-bottom:12px}.trainer-hero{display:flex;gap:18px;align-items:center;padding:16px;border:2px solid #afc2bf;background:repeating-linear-gradient(0deg,#e0ebe0 0px,#e0ebe0 3px,#e5eee4 3px,#e5eee4 6px);border-radius:9px}.trainer-portrait{background:#f7f9eb;border:2px solid #adbfab;display:grid;place-items:center;border-radius:50%;width:92px;height:92px;flex-shrink:0}.trainer-avatar{display:block;width:64px;height:64px;background:url('assets/gold/SPRITE_CHRIS_0.png') 0 0/64px 384px;image-rendering:pixelated}.trainer-hero small{font-size:9px;letter-spacing:1px;color:#668076}.trainer-hero h3{font-size:25px;margin:7px 0;overflow-wrap:anywhere}.trainer-hero p{font-size:12px;margin:0;color:#567378}.trainer-facts{display:grid;grid-template-columns:1fr 1.5fr;margin:14px 0;border:1px solid #b9ccc2;border-radius:7px;overflow:hidden;font-size:13px}.trainer-facts dt,.trainer-facts dd{margin:0;padding:11px 14px;border-bottom:1px solid #ccd9d0}.trainer-facts dt{background:#dde7de;color:#516d71}.trainer-facts dd{background:#f9fbf3;font-weight:bold}.trainer-facts dt:last-of-type,.trainer-facts dd:last-child{border:0}.trainer-region h3{text-transform:uppercase;font-size:11px;letter-spacing:1px;color:#58757b;margin:18px 0 10px}.trainer-badges{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}.trainer-badge{display:flex;flex-direction:column;align-items:center;padding:9px 3px;border:1px solid #c6d3cc;border-radius:6px;background:#e3eae5;min-width:0}.trainer-badge[data-earned=true]{background:#f8f2d8;border-color:#cdbd78}.badge-symbol{display:block;width:48px;height:48px;image-rendering:pixelated;opacity:.22}.badge-symbol.johto{background-image:url('assets/gold/trainer-badges-johto.png');background-size:48px 528px}.badge-symbol.kanto{background-image:url('assets/gold/trainer-badges-kanto.png');background-size:48px 768px}.trainer-badge[data-earned=true] .badge-symbol{opacity:1}.trainer-badge strong{font-size:10px;margin-top:7px;overflow-wrap:anywhere}.trainer-badge small{font-size:8px;margin-top:4px;color:#687d7e}.trainer-badge[data-earned=true] small{color:#74612a}
#chat-dock{position:absolute;right:max(18px,env(safe-area-inset-right));top:130px;width:min(340px,calc(100% - 28px));max-height:min(380px,46dvh);display:flex;flex-direction:column;background:#15372df2;border:1px solid #bed6b861;border-radius:10px;box-shadow:0 6px 24px #09291c66;z-index:6;overflow:hidden}.chat-dock-heading{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-bottom:1px solid var(--line);font-size:12px;flex-shrink:0}.chat-dock-heading button{border:0;background:transparent;font-size:20px;padding:3px 9px;min-width:36px;min-height:34px}#chat-dock .chat-log{height:170px;min-height:45px;flex:1;overflow:auto;padding:9px 11px;background:transparent;font-size:11px;border-radius:0;overscroll-behavior:contain}#chat-status{margin:0;padding:4px 11px;font-size:9px;color:#bfd0b7;line-height:1.4;flex-shrink:0}#chat-form{padding:7px 9px 10px;display:grid;gap:6px;flex-shrink:0}#chat-form input{width:100%;padding:9px;font-size:12px;min-width:0}.chat-compose{display:flex;gap:6px}.chat-compose button{font-size:11px;padding:8px 12px}#chat-recipient{font-size:10px!important;padding:7px 9px!important}#chat-dock:focus-within{border-color:var(--gold);box-shadow:0 0 0 1px #e9d49344,0 6px 24px #09291c66}
@media(max-width:600px){#zoom-controls{display:grid}.trainer-badges{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.trainer-hero{padding:12px;gap:12px}.trainer-portrait{width:76px;height:76px}.trainer-hero h3{font-size:20px}.trainer-hero small{font-size:8px;letter-spacing:.5px}.trainer-facts{font-size:12px}.trainer-facts dt,.trainer-facts dd{padding:10px}.trainer-region h3{margin-top:15px}.trainer-badge{padding:7px 3px}.trainer-badge strong{font-size:10px}.trainer-badge small{font-size:8px}#chat-dock{top:127px;right:14px}#chat-form input{font-size:16px}#chat-recipient{font-size:16px!important}#chat-toggle{right:14px}}
@media(pointer:coarse){#zoom-controls{display:grid}#chat-form input,#chat-recipient{font-size:16px!important}}
@media(max-height:500px){#chat-dock{top:68px;max-height:calc(100dvh - 80px);width:min(320px,calc(100% - 85px));right:72px}#chat-dock .chat-log{height:90px}#chat-toggle{top:68px}#zoom-controls{top:120px}}
#view-toggle{min-width:44px;font-weight:bold;letter-spacing:.5px}.view-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}.view-choice strong{grid-column:1/-1;font-size:12px;color:var(--gold);letter-spacing:1px;text-transform:uppercase}.view-choice small{grid-column:1/-1;font-size:10px;color:#c1d0b4;line-height:1.5}
@media(max-width:600px){#view-toggle{min-width:36px;padding:9px 7px}}
@media(max-width:360px){#view-toggle{display:none}}

.keyboard-focus{outline:2px solid var(--gold);outline-offset:2px}

/* A filled selection remains obvious while navigating with keys or a controller. */
#app :is(button,input,select):is(.keyboard-focus,.gamepad-focus):not(:disabled){background:#f1d074;color:#143126;border-color:#fff0b4;outline:2px solid #fff0b4;outline-offset:2px}
#app :is(button,input,select):is(.keyboard-focus,.gamepad-focus):not(:disabled) small{color:#284637}
