/* Padrão visual compartilhado por todos os jogos. Manter novos jogos em .game-surface. */
:is(.arcade-game,.practice-lab,.lab-result-dialog,.game-surface){--shared-game-frame:url('rpg-art/castle-frame.svg?v=2');font-family:Consolas,'Courier New',monospace;background:var(--bg,#09090b);color:var(--text,#eee);border:12px solid transparent;border-image:var(--shared-game-frame) 32 stretch;border-radius:0;box-shadow:0 14px 45px #0009;box-sizing:border-box}
:is(.arcade-game,.practice-lab,.lab-result-dialog,.game-surface)::backdrop{background:#000d;backdrop-filter:none}
.practice-lab[data-mode=management][open]{border-width:12px}
:is(.arcade-game>.game-top,.practice-lab>header,.lab-result-dialog>header){border-bottom:1px solid var(--line,#464650);padding-bottom:12px;margin-bottom:4px;gap:10px}
:is(.arcade-game .game-top h2,.practice-lab h2,.lab-result-dialog h2){font-family:Consolas,'Courier New',monospace;font-size:21px;font-weight:700;letter-spacing:1px;color:var(--text,#eee);text-shadow:2px 2px 0 var(--line,#24242a)}
:is(.arcade-game .game-top small,.practice-lab>header small){color:var(--accent,#d9bd78);font-size:9px;letter-spacing:1.5px}
:is(.practice-lab,.lab-result-dialog,.game-surface) button{font-family:inherit;border:1px solid var(--line,#54545f);background:var(--panel,#16161b);color:var(--buttons,var(--text,#eee));border-radius:2px;box-shadow:2px 2px 0 #0006;font-size:11px}
:is(.practice-lab,.lab-result-dialog,.game-surface) button:hover{border-color:var(--buttons,var(--accent,#d9bd78));filter:brightness(1.08)}
.practice-lab>.lab-score,.practice-lab .lab-bank{background:var(--panel,#16161b);border:1px solid var(--line,#464650);color:var(--text,#eee);padding:7px 10px}
.practice-lab>.lab-chart{background:var(--bg,#09090b);border:1px solid var(--line,#484852);outline:1px solid var(--line,#484852);outline-offset:3px}
.practice-lab .lab-instruction,.practice-lab .lab-note{color:var(--text,#c9c9cf)}
.practice-lab .lab-sl-menu,.lab-result-dialog .lab-management-review{background:var(--panel,#16161b);color:var(--text,#eee)}
@media(max-width:640px){:is(.practice-lab,.lab-result-dialog,.game-surface),.practice-lab[data-mode=management][open]{border-width:7px}:is(.practice-lab h2,.lab-result-dialog h2){font-size:17px}.practice-lab>header{flex-wrap:wrap}.practice-lab>header button{min-height:36px}}

/* A cor principal colore somente os ornamentos e destaques dos jogos. */
:is(.arcade-game,.practice-lab,.lab-result-dialog,.game-colors){border-image-source:var(--shared-game-frame)!important}
.arcade-game :is(.knight-hud,.rpg-home,.rpg-menu-tile,.arsenal-slot,.equipped-sword,.rpg-home-weapon){border-image-source:var(--shared-game-frame)!important}
.arcade-game .arcade-start,.practice-lab .lab-check,.practice-lab .lab-next{border-image:none!important;border-color:var(--menu-primary,#b51630)!important;background:color-mix(in srgb,var(--menu-primary,#b51630) 42%,#09090b)!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--menu-primary,#b51630) 75%,white),0 2px 0 #000;color:var(--text,#fff)!important}
.arcade-game .arcade-hud>div:after{background:var(--menu-primary,#b51630)}
.arcade-game .game-top,.practice-lab>header{background:linear-gradient(90deg,color-mix(in srgb,var(--menu-primary,#b51630) 7%,transparent),transparent)}

/* Molduras seguem a aparência geral do aplicativo, sem seletor próprio. */
:is(.arcade-game,.practice-lab,.lab-result-dialog,.game-colors,.game-surface){--shared-game-frame:var(--gothic-frame);border-image-source:var(--gothic-frame)!important}
.arcade-game :is(.knight-hud,.rpg-home,.rpg-menu-tile,.arsenal-slot,.equipped-sword,.rpg-home-weapon){border-image-source:var(--gothic-frame)!important}
.arcade-game .arcade-start,.practice-lab .lab-check,.practice-lab .lab-next{border-image:none!important;border-color:var(--detail-light,#bfc1cc)!important;background:var(--interface-button,#282a32)!important;color:var(--interface-button-text,#fff)!important;box-shadow:inset 0 0 0 1px #ffffff22!important}
.arcade-game .arcade-hud>div:after{background:var(--detail-light,#bfc1cc)}
.arcade-game .game-top,.practice-lab>header{background:transparent}

/* Todo popup de jogo herda a moldura da página inicial. */
:is(.arcade-settings,.game-colors,.colors-confirm,.knight-evolution,.sword-arsenal,.lab-result-dialog,.game-surface){border:12px solid transparent;border-image:var(--gothic-frame) 32 stretch!important;border-radius:0;box-sizing:border-box;box-shadow:0 14px 45px #0009}
:is(.arcade-settings,.game-colors,.colors-confirm,.knight-evolution,.sword-arsenal,.lab-result-dialog) button:not(.colors-theme):not(.theme-dot){border-image:none;border-color:var(--detail-gray,#62646d);box-shadow:none}
:is(.arcade-settings,.game-colors,.knight-evolution) :is(.arcade-start,.evo-return,[type=submit]){border:1px solid var(--detail-light,#bfc1cc);border-image:none!important;background:var(--interface-button,#282a32)!important;color:var(--interface-button-text,#fff)!important;box-shadow:inset 0 0 0 1px #ffffff22}
:is(.knight-evolution,.sword-arsenal) :is(.evo-progress-card,.evo-rewards,.evo-last,.evo-portrait,.arsenal-slot){border-image-source:var(--gothic-frame)!important}
@media(max-width:640px){:is(.arcade-settings,.game-colors,.colors-confirm,.knight-evolution,.sword-arsenal,.lab-result-dialog){border-width:8px}}

/* Ajuda concentra as orientações, mantendo o gráfico limpo. */
.practice-lab[data-mode=management]>.lab-instruction,.practice-lab[data-mode=management]>.lab-score{display:none!important}
.practice-lab[data-mode=management][open]{grid-template-rows:auto 0 0 minmax(250px,1fr) auto auto auto}
.practice-lab[data-mode=management] h2{text-shadow:none!important;filter:none!important;letter-spacing:.3px;font-weight:600;-webkit-font-smoothing:auto}
.lab-help-button{display:grid;place-items:center;min-width:34px;min-height:36px;padding:7px!important}.lab-help-dialog{width:min(540px,94vw);max-height:88dvh;overflow:auto;padding:20px;line-height:1.65;color:var(--text,#eee);background:var(--panel,#141418)}.lab-help-dialog h2{font-size:19px}.lab-help-dialog p,.lab-help-dialog li{font-size:12px}.lab-help-dialog li{margin-bottom:9px}.lab-help-dialog video{display:block;width:100%;margin-top:12px}.lab-help-dialog small{font-size:10px;display:block;margin-top:8px}.lab-help-dialog summary{cursor:pointer;padding:9px;border:1px solid var(--detail-gray,#555)}

.lab-bank>button{display:inline-flex;gap:5px;align-items:center;justify-content:center;min-width:35px;min-height:30px}.lab-bank>button:disabled{opacity:.4}.lab-bank-confirm{width:min(400px,92vw);padding:20px;background:var(--panel,#141418);color:var(--text,#eee)}.lab-bank-confirm p{font-size:12px;line-height:1.7;margin:16px 0}.lab-bank-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.lab-bank-confirm-actions button{padding:10px 12px}
