/* Expanded collection and a common, legible combat vocabulary. */
:root { --stat-power:#b8d7ed; --stat-attack:#ffe0a1; --stat-damage:#ffad95; --stat-life:#a7dec7; }
select { font:inherit; color:#e9eef4; background:#162231; border:1px solid #63758d; border-radius:5px; padding:10px 12px; min-height:44px; max-width:100%; }
select:focus-visible { outline:2px solid #eed6a5; outline-offset:3px; }
.portrait.individual-art { width:100%; height:100%; object-fit:cover; object-position:center 27%; background:none; }
.lobby-display-card .portrait.individual-art { filter:none; }
.card-body { position:relative; }
.game-shell .card-body h3 { font-family:Georgia,serif; font-size:20px; line-height:1.2; min-height:48px; text-wrap:balance; }
.game-shell .card-body p { font-size:12px; line-height:1.5; min-height:63px; }
.card-effect>small { display:block; color:#c9bfa8; font-size:8px; letter-spacing:1.3px; margin-bottom:5px; }
.card-id { position:absolute; right:9px; bottom:6px; color:#abb9cb; font-size:8px; letter-spacing:.7px; }
.card-reference { display:block; font-size:9px; margin-top:6px; color:#a5b6cb; }
.game-shell .card-stats { padding:11px 0; gap:20px; }
.game-shell .card-stats small { font-size:9px; letter-spacing:.6px; }
.game-shell .card-stats b { font-size:24px; }
.game-shell .card-stats>span:first-child { color:var(--stat-power); }
.game-shell .card-stats>span:last-child { color:var(--stat-damage); }
.tool-symbol.has-art { background:none; width:76px; height:90px; padding:0; overflow:hidden; border-radius:5px; }
.tool-symbol.has-art img { width:100%; height:100%; object-fit:contain; background:#101924; }
.game-shell .tool-card h3 { font-family:Georgia,serif; font-size:19px; line-height:1.25; }
.game-shell .tool-card p { font-size:12px; line-height:1.5; }
.field-card .field-art { background-size:cover; background-position:center; }
.star-filter { display:flex; align-items:center; gap:10px; color:#becbdc; font-size:12px; }
.collection-toolbar { flex-wrap:wrap; gap:15px; }
.deck-presets { flex-wrap:wrap; }
.preset-button { white-space:normal; line-height:1.4; max-width:190px; }
.editor-filters { position:sticky; top:0; z-index:3; background:#111a26f5; padding:14px; border:1px solid #39485b; border-radius:5px; margin-bottom:24px; backdrop-filter:blur(10px); }
.editor-filters .search-box { width:100%; }
.editor-filters .search-box input { width:100%; }
.editor-filters .filter-row { margin:10px 0 0; }
.lobby-training { margin-top:20px; display:grid; grid-template-columns:22px 1fr; gap:7px 10px; background:transparent; text-align:left; font-size:12px; padding:10px 0; color:#e3d8bd; }
.lobby-training>small { grid-column:2; font-size:10px; font-weight:400; color:#b4c3d5; line-height:1.5; }
.training-form { display:grid; gap:19px; margin:24px 0; }
.training-form label { display:grid; gap:8px; font-size:12px; color:#c5d5e8; }
.training-form select { width:100%; }
.training-note { font-size:11px!important; color:#a8bbd2!important; }
.stat-lexicon { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; border:1px solid #5b6b7e; background:#516175; border-radius:6px; overflow:hidden; margin-bottom:26px; }
.stat-lexicon>div { background:#172331; padding:18px; display:grid; grid-template-columns:25px 1fr; gap:8px; align-content:start; }
.stat-lexicon strong { font-size:15px; align-self:center; }
.stat-lexicon span { grid-column:1/-1; font-size:12px; color:#c4d1e0; line-height:1.5; }
.stat-power { color:var(--stat-power); }
.stat-attack { color:var(--stat-attack); }
.stat-damage { color:var(--stat-damage); }
.stat-life { color:var(--stat-life); }
.dialog .stat-lexicon { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.dialog .inspect-art { height:300px; max-width:250px; margin:0 auto 15px; overflow:hidden; }
.dialog .inspect-art .individual-art { object-position:center 20%; }
.inspect-item-art { display:block; width:100%; max-width:260px; max-height:260px; object-fit:contain; border:1px solid #64748a; border-radius:6px; margin:0 auto 20px; }
.inspection-reference { color:#9eafc4; font-size:10px; letter-spacing:1px; margin:10px 0 18px; text-align:center; }
.inspection-effect { padding:16px 0; border-bottom:1px solid #3b4c60; }
.inspection-effect>small { color:#b9d2ed; font-size:9px; letter-spacing:1.1px; }
.inspection-effect h3 { color:#f2e1be!important; font-size:18px; margin:8px 0; line-height:1.4; }
.inspection-effect p { color:#c0cddd; font-size:13px; line-height:1.6; }
.inspect-stats .icon { height:15px; width:15px; margin-right:5px; }
.setting-row input[type=range] { width:115px; height:35px; }
.hand-art.individual-tool-art { background-size:100% auto; background-position:center top; background-repeat:no-repeat; background-color:#101924; }
.equipped-art { width:100%; height:100%; object-fit:contain; border-radius:2px; }
.phase-reveal .equipped-art { width:20px; height:20px; flex-shrink:0; }
.duel-card-inspect { position:absolute; z-index:3; right:6px; top:30px; border:1px solid #94abc268; border-radius:4px; width:28px; height:28px; display:grid; place-items:center; background:#101c2cd9; color:#d9e8f7; }
.duel-card-inspect>.icon { width:15px; height:15px; }
.duel-card-stats small { display:flex; align-items:center; justify-content:center; gap:3px; }
.duel-card-stats small>.icon { width:10px; height:10px; }
.duel-card-stats .stat-damage b { color:var(--stat-damage); }
.duel-card-stats .stat-power b { color:var(--stat-power); }
.duel-card-stats .attack-number b { color:var(--stat-attack); }
.life-value>small { display:flex; flex-direction:column; gap:3px; }
.life-value em { font-size:7px; letter-spacing:1px; font-style:normal; }
.stats-help { display:inline-flex; align-items:center; gap:5px; background:#172232ca; border:1px solid #6b7d955e; padding:5px 10px; min-height:28px; border-radius:20px; font-size:9px; color:#d2dfef; margin-top:7px; }
.stats-help>.icon { width:12px; height:12px; }
.arena-phase-announcement { position:relative; }
.hand-info { color:#c3d7ec; background:#172737; border:1px solid #657993; border-radius:3px; width:28px; height:25px; display:grid; place-items:center; }
.hand-info>.icon { width:14px; height:14px; }
.hand-zone>.zone-title { align-items:center; }
.field-controls { width:100%; }
.field-target-choice { display:flex; align-items:center; gap:12px; justify-content:center; margin:-5px auto 15px; font-size:12px; flex-wrap:wrap; }
.field-target-choice>button,.teleport-choice button { min-height:38px; padding:9px 13px; background:#182535; border:1px solid #657891; color:#d8e3ef; border-radius:4px; }
.field-target-choice>button.selected,.teleport-choice button.selected { background:#425466; border-color:#ecd09c; color:#ffdfab; }
.teleport-choice { margin-top:9px; padding:10px 12px; border:1px solid #9cb3c977; border-radius:5px; background:#142333ef; }
.teleport-choice>span { font-size:11px; display:block; color:#e9d7b1; margin-bottom:7px; }
.teleport-choice>div { display:flex; gap:8px; flex-wrap:wrap; }
.teleport-choice button { font-size:10px; flex:1; min-height:38px; }
.teleport-choice>small { display:block; font-size:9px; line-height:1.5; margin-top:6px; color:#bcd0e5; }
.commander { flex-wrap:wrap; }
.virus-status { display:flex; align-items:center; color:#e3beff; font-size:9px; gap:4px; background:#30213bd9; border:1px solid #be8adc7d; padding:4px 7px; border-radius:3px; }
.virus-status>.icon { width:12px; height:12px; }
.round-events { text-align:center; padding:7px 12px; border:1px solid #b895d166; color:#eed9ff; background:#241b32d9; font-size:11px; border-radius:4px; margin-bottom:8px; }
.hand-rules-list { display:grid; gap:16px; }
.hand-rules-list article { display:grid; grid-template-columns:66px 1fr; gap:12px; padding-bottom:16px; border-bottom:1px solid #46566a; }
.hand-rules-list img { width:66px; height:82px; object-fit:cover; border-radius:3px; }
.hand-rules-list h3 { font-family:Georgia,serif; font-size:18px; margin:0 0 6px; }
.hand-rules-list p { font-size:12px; line-height:1.5; color:#c8d5e6; }
.hand-rules-list small { display:block; font-size:11px; margin-top:6px; color:#aebdd0; line-height:1.5; }
.status-result { display:block; font-size:11px; color:#e1c3ff; line-height:1.5; padding:10px 0 0; }
.heal-float { position:absolute; z-index:4; top:24%; left:0; right:0; text-align:center; font-size:27px; font-weight:700; color:#b8f4d7; text-shadow:0 2px 10px #073722,0 2px 3px #000; animation:damage-readout 1s ease-out both; }
.phase-reveal .damage-float { animation:damage-readout 1s ease-out both; }
@keyframes damage-readout { from{opacity:0;transform:translateY(10px) scale(.9)} 20%{opacity:1;transform:translateY(0) scale(1.1)} to{opacity:1;transform:translateY(-8px) scale(1)} }
@media(min-width:901px) {
  .stats-help { position:absolute; right:0; top:0; margin:0; }
  .game-arena:has(.teleport-choice) .player-dock { padding-bottom:12px; }
}
@media(min-width:901px) and (max-height:850px) {
  .phase-plan .battlefield,.phase-plan .duel-stage { height:230px; }
  .phase-plan .duel-card { max-width:165px; height:190px; }
  .phase-plan .duel-card-caption h2 { font-size:16px; line-height:1.12; }
  .duel-card-stats small,.phase-reveal .duel-card-stats small { font-size:8px; letter-spacing:0; }
  .combat-mode button { min-height:49px; }
  .combat-mode small { font-size:9px; line-height:1.35; }
  .hand-description p { font-size:10px; line-height:1.3; }
  .hand-description h3 { font-size:14px; min-height:30px; }
  .hand-card { height:166px; width:136px; }
  .card-hand { min-height:176px; }
  .phase-plan .arena-play-space { justify-content:flex-start; }
}
@media(max-width:900px) {
  .stat-lexicon { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .deck-presets .preset-button { flex:1 1 130px; max-width:none; }
  .game-shell .deck-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(min-width:901px) and (max-height:760px) {
  .phase-plan .arena-play-space { padding-top:4px; padding-bottom:2px; }
  .phase-plan .enemy-zone { min-height:60px; }
  .phase-plan .arena-phase-announcement { margin:4px 0; }
  .phase-plan .battlefield,.phase-plan .duel-stage { height:220px; }
  .phase-plan .duel-card { height:180px; }
  .phase-plan .own-commander-row { padding-top:2px; }
  .phase-plan .player-dock { margin-top:4px; }
  .phase-plan .hand-zone>.zone-title { margin-bottom:4px; }
}
@media(max-width:620px) {
  .lobby-training { margin-top:12px; font-size:11px; }
  .lobby-training small { font-size:9px; }
  .game-shell .deck-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .game-shell .card-body h3,.game-shell .deck-card-grid .card-body h3 { font-size:17px; line-height:1.2; min-height:42px; }
  .game-shell .card-body p,.game-shell .deck-card-grid .card-body p { font-size:11px; line-height:1.5; }
  .game-shell .card-stats small { display:block; font-size:8px; }
  .game-shell .card-stats b,.game-shell .deck-card-grid .card-stats b { font-size:21px; }
  .game-shell .card-stats { gap:14px; }
  .game-shell .card-stats .icon { width:15px; height:15px; }
  .tool-symbol.has-art { width:64px; height:83px; }
  .game-shell .tool-card h3 { font-size:18px; }
  .editor-filters { position:static; }
  .star-filter { margin-bottom:6px; }
  .star-filter select { min-height:38px; }
  .stat-lexicon>div { padding:14px; grid-template-columns:21px 1fr; }
  .stat-lexicon strong { font-size:13px; }
  .stat-lexicon span { font-size:11px; }
  .stat-lexicon .icon { width:18px; height:18px; }
  .arena-utilities { gap:2px; }
  .arena-icon-button { min-width:29px; width:29px; }
  .stats-help { margin-top:6px; padding:5px 10px; font-size:8px; min-height:25px; }
  .phase-plan .duel-card { width:126px; height:177px; }
  .phase-plan .duel-card-caption h2 { font-size:15px; min-height:34px; }
  .phase-plan .duel-card-stats b { font-size:19px; }
  .phase-plan .duel-card-stats .attack-number b { font-size:24px; }
  .duel-card-stats small,.phase-reveal .duel-card-stats small { font-size:8px; letter-spacing:0; }
  .duel-card-stats small>.icon { display:none; }
  .phase-plan .duel-card-stats small { font-size:8px; gap:2px; letter-spacing:0; }
  .phase-plan .duel-card-stats small>.icon { width:8px; height:8px; }
  .phase-plan .duel-mode { font-size:6px; }
  .duel-card-inspect { top:24px; width:26px; height:26px; }
  .phase-plan .shared-effect { font-size:10px; }
  .phase-plan .field-inspect small { font-size:6px; }
  .phase-plan .field-inspect strong { font-size:15px; }
  .phase-plan .field-owner>small { font-size:8px; }
  .phase-plan .field-owner>b { font-size:9px; }
  .phase-plan .own-roster .bench-card { height:59px; }
  .phase-plan .own-roster .bench-name { font-size:8px; bottom:20px; }
  .phase-plan .own-roster .bench-state { font-size:8px; }
  .phase-plan .combat-mode small { font-size:9px; line-height:1.35; }
  .phase-plan .combat-mode button { min-height:48px; }
  .phase-plan .hand-card { height:172px; width:109px; }
  .phase-plan .card-hand { min-height:184px; }
  .phase-plan .hand-description h3 { font-size:14px; min-height:32px; }
  .phase-plan .hand-description p { font-size:10px; min-height:38px; }
  .phase-plan .hand-selection { font-size:8px; }
  .phase-plan .compact-preview-note { font-size:8px; }
  .phase-plan .arena-play-space { justify-content:flex-start; }
  .phase-plan .arena-action-bar { position:sticky; }
  .field-target-choice { gap:8px; font-size:10px; margin-top:4px; }
  .field-target-choice>span { flex-basis:100%; text-align:center; }
  .field-target-choice>button { min-height:44px; }
  .virus-status { font-size:8px; }
  .life-value em { font-size:6px; }
  .round-events { font-size:10px; }
  .phase-field .duel-stage { display:none; }
  .phase-field .battlefield { min-height:0; margin-bottom:0; }
  .phase-field .field-choice-dock { margin:18px 0; }
  .phase-field .arena-play-space { justify-content:center; }
}
@media(prefers-reduced-motion:reduce) { .phase-reveal .damage-float,.heal-float { animation:none; } }
.reduced-motion .phase-reveal .damage-float,.reduced-motion .heal-float { animation:none; }

.keyword-list{display:flex;flex-wrap:wrap;gap:4px;line-height:1.4}.keyword{display:inline-block;padding:3px 6px;border:1px solid #9bbdd450;border-radius:4px;background:#15283bdd;color:#e3d4ad;font-size:10px;font-weight:600;line-height:1.3;letter-spacing:.1px}.card-effect .keyword-list{margin-top:5px}.inspection-effect .keyword-list{margin:8px 0}.dialog-body>.keyword-list{margin:12px 0}.deploy-card .keyword{font-size:8px;padding:3px 5px}.hand-description .keyword{font-size:9px;padding:3px 5px}.duel-effect-keywords{margin:5px 0}.duel-effect-keywords .keyword{font-size:8px}.room-format-note{font-size:11px;color:#bac9dc}.keyword:focus-visible{outline:2px solid #eed09a}
.deck-migration-note{padding:14px 18px;border:1px solid #d2b87c66;border-radius:6px;color:#ecdbb5;background:#332d1d66;line-height:1.6;margin:0 0 20px;font-size:13px}

/* Collection and deck editing: mobile controls without changing the desktop grid. */
.deck-monsters-section, .deck-tools-section, .deck-budget { display:contents; }
.deck-search-controls { display:flex; align-items:center; gap:10px; }
.deck-search-controls .deck-selected-filter { flex-shrink:0; margin-top:0; }
.deck-type-tabs, .deck-mobile-heading, .deck-mobile-bar, .deck-mobile-only { display:none; }
.deck-selected-filter { display:inline-flex; align-items:center; gap:7px; min-height:44px; margin-top:8px; padding:8px 11px; border:1px solid #62768d66; border-radius:5px; background:#152233; color:#c5d2df; font-size:12px; }
.deck-selected-filter>.icon { width:16px; height:16px; }
.deck-selected-filter.active { color:#f5e1b9; border-color:#d7bd7c; background:#3c3423; }
.preset-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.preset-picker .preset-button { max-width:none; min-height:54px; padding:12px; font-size:12px; text-align:left; }
@media(max-width:700px) {
  .game-shell .game-main:has(.deck-editor) { padding-bottom:calc(var(--mobile-nav-height,64px) + 104px); }
  .game-shell.is-codex .page-heading { margin-bottom:18px; gap:10px; }
  .game-shell.is-codex .page-heading .eyebrow { font-size:9px; letter-spacing:1.2px; }
  .game-shell.is-codex .page-heading h1 { font-size:28px; line-height:1.14; text-wrap:balance; }
  .game-shell.is-codex .page-heading p { font-size:12px; line-height:1.55; margin-top:8px; }
  .game-shell :is(.collection-toolbar,.editor-filters) .search-box { width:100%; height:48px; min-width:0; padding:0 12px; }
  .game-shell :is(.collection-toolbar,.editor-filters) .search-box input { min-width:0; width:100%; font-size:16px; }
  .game-shell .collection-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; border:0; }
  .game-shell .collection-toolbar .tabs { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:3px; }
  .game-shell .collection-toolbar .tab { height:48px; min-width:0; padding:0 3px; font-size:12px; white-space:nowrap; }
  .game-shell .collection-toolbar .tab>span { font-size:10px; margin-left:4px; }
  .game-shell .collection-toolbar:not(:has(.star-filter)) .search-box { grid-column:1/-1; }
  .game-shell .star-filter { display:block; position:relative; margin:0; font-size:0; }
  .game-shell .star-filter select { height:48px; min-height:48px; width:104px; font-size:16px; padding:8px; }
  .game-shell [data-filter-scroll] { display:flex; flex-wrap:nowrap; gap:7px; overflow-x:auto; overscroll-behavior-x:contain; min-width:0; max-width:100%; margin:10px 0 12px; padding:2px 1px 5px; scrollbar-width:thin; }
  .game-shell [data-filter-scroll] .filter { flex:0 0 auto; min-height:44px; padding:10px 12px; font-size:12px; white-space:nowrap; }
  .game-shell .visual-guide { margin-bottom:14px; }
  .game-shell .visual-guide>summary { min-height:44px; font-size:12px; padding:12px 2px; }
  .game-shell :is(.collection-grid,.deck-card-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .monster-card { display:flex; flex-direction:column; min-width:0; height:100%; text-align:left; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-art { width:100%; height:148px; flex:none; }
  .game-shell :is(.collection-grid,.deck-card-grid) .monster-card .card-body { width:100%; flex:1; padding:10px 10px 19px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-body h3 { font-size:17px; line-height:1.17; min-height:40px; margin:0; text-wrap:balance; overflow-wrap:break-word; }
  .game-shell :is(.collection-grid,.deck-card-grid) .monster-card .card-effect { min-height:44px; margin:0; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-stats { display:flex; justify-content:space-between; gap:8px; padding:9px 0; margin:8px 0; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-stats>span { display:flex; flex-wrap:wrap; align-items:center; column-gap:4px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-stats b { font-size:23px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-stats small { font-size:8px; letter-spacing:.3px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .monster-card .card-race { top:7px; left:6px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .monster-card .card-race .race-badge { padding:3px 4px; font-size:9px; gap:3px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .monster-card .card-stars { top:7px; right:6px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .star-pips { padding:4px; gap:1px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .star-pips .symbol-star { width:9px; height:9px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .selected-check { top:34px; right:7px; width:24px; height:24px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .keyword { font-size:11px; padding:4px 5px; }
  .game-shell .tools-grid { grid-template-columns:1fr; gap:10px; }
  .game-shell .tool-card { display:grid; grid-template-columns:60px minmax(0,1fr) 20px; padding:12px; gap:12px; min-width:0; }
  .game-shell .tool-card>div { min-width:0; }
  .game-shell .tool-card .tool-symbol { width:60px; height:80px; }
  .game-shell .tool-card h3 { font-size:18px; line-height:1.2; margin-bottom:7px; overflow-wrap:break-word; }
  .game-shell .tool-card .tool-pick { width:20px; height:20px; }
  .game-shell .tool-traits { gap:5px; }
  .game-shell .field-card h3 { font-size:23px; line-height:1.2; text-wrap:balance; }
  .game-shell .field-card p { font-size:13px; line-height:1.6; }
  .game-shell .field-card .field-art { height:160px; }
  .game-shell .field-card>div:last-child { padding:16px; }
  .game-shell .deck-editor>.deck-presets { display:none; }
  .game-shell .deck-summary { padding:14px; margin-bottom:4px; border-radius:8px; }
  .game-shell .deck-summary>.eyebrow { display:none; }
  .deck-mobile-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:-6px; }
  .deck-mobile-heading>span { font-size:9px; letter-spacing:1.3px; color:#d6c08f; }
  .deck-mobile-heading>button { display:flex; align-items:center; gap:6px; padding:8px 0 8px 10px; min-height:44px; font-size:12px; color:#dfd3b6; background:none; border:0; }
  .deck-mobile-heading .icon { width:16px; height:16px; }
  .game-shell .deck-summary .field-label { font-size:11px; margin:2px 0 6px; }
  .game-shell .deck-summary #deck-name { min-height:46px; font-size:16px; }
  .game-shell .deck-budget, .game-shell .deck-summary .validation.valid { display:none; }
  .game-shell .deck-budget .budget-row { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:0; padding:0; font-size:11px; }
  .game-shell .deck-budget .budget-row b { font-size:16px; font-variant-numeric:tabular-nums; }
  .deck-budget .budget-meter { display:none; }
  .game-shell .deck-summary .validation { padding:10px 0 0; margin-top:10px; font-size:11px; line-height:1.5; border-top:1px solid #70819840; }
  .game-shell .deck-summary .fine-print { font-size:10px; line-height:1.5; margin:8px 0 0; }
  .game-shell .deck-summary .deck-desktop-save { display:none; }
  .game-shell .editor-layout { gap:14px; }
  .game-shell .editor-filters { position:static; padding:0; margin:0 0 13px; border:0; background:none; backdrop-filter:none; }
  .deck-type-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:12px; }
  .deck-type-tabs>button { display:flex; justify-content:center; align-items:center; gap:5px; min-height:48px; padding:8px; border:1px solid #687d9155; background:#142130; color:#b5c5d8; font-size:12px; border-radius:6px; }
  .deck-type-tabs>button[aria-pressed="true"] { color:#f6e4c0; background:#343127; border-color:#d1b984; }
  .deck-type-tabs .icon { width:15px; height:15px; }
  .deck-type-tabs b { font-size:11px; font-variant-numeric:tabular-nums; }
  .game-shell .editor-filters [data-filter-scroll] { margin-bottom:0; }
  .game-shell .editor-filters .deck-selected-filter { margin:0; min-height:48px; padding:8px; background:transparent; font-size:11px; }
  .game-shell .deck-search-controls { gap:8px; }
  .game-shell .editor-filters .deck-selected-filter.active { background:#3c3423; }
  .deck-monsters-section, .deck-tools-section { display:block; }
  .deck-editor[data-editor-type="monsters"] .deck-tools-section, .deck-editor[data-editor-type="tools"] .deck-monsters-section { display:none; }
  .game-shell .editor-cards .section-title { margin:0 0 12px; align-items:center; }
  .game-shell .editor-cards .section-title h2 { font-size:20px; }
  .game-shell .editor-cards .section-title>.muted { font-size:10px; max-width:125px; line-height:1.4; }
  .deck-mobile-only { display:block; }
  .deck-mobile-bar { position:fixed; bottom:var(--mobile-nav-height,64px); left:0; right:0; z-index:19; display:flex; align-items:center; gap:12px; min-height:72px; padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px)); background:#111c2bf5; border-top:1px solid #657c9355; box-shadow:0 -8px 24px #0003; backdrop-filter:blur(12px); }
  .deck-mobile-counters { display:grid; grid-template-columns:repeat(3,1fr); flex:1; min-width:0; gap:12px; }
  .deck-mobile-counters>span { display:grid; grid-template-columns:auto auto; justify-content:center; align-items:center; gap:4px; color:#d2deeb; font-size:13px; }
  .deck-mobile-counters>.danger-text { color:#ffac99; }
  .deck-mobile-counters>.warning { color:#eed29c; }
  .deck-mobile-counters b { font-variant-numeric:tabular-nums; }
  .deck-mobile-counters .icon { width:15px; height:15px; }
  .deck-mobile-counters .star-pips { border:0; padding:0; background:none; }
  .deck-mobile-counters small { grid-column:1/-1; font-size:8px; text-align:center; }
  .deck-mobile-bar>.button { min-width:104px; min-height:48px; padding:10px 14px; font-size:12px; }
  .deck-mobile-bar>.button:disabled { opacity:.45; }
  body:has(.deck-editor) #toast { bottom:calc(150px + env(safe-area-inset-bottom,0px)); left:50%; }
  .game-shell .empty-state { grid-column:1/-1; font-size:13px; line-height:1.5; padding:25px 15px; }
}
@media(max-width:370px) {
  .game-shell :is(.collection-grid,.deck-card-grid) { gap:9px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-art { height:130px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-body h3 { font-size:16px; }
  .game-shell :is(.collection-grid,.deck-card-grid) .card-race .race-badge>span { display:none; }
  .deck-type-tabs>button { font-size:11px; gap:4px; }
  .deck-type-tabs .icon { display:none; }
  .deck-mobile-counters { gap:6px; }
}
@media(hover:none), (pointer:coarse) {
  .game-shell :is(.monster-card,.tool-card,.field-card):hover { transform:none; }
}

.collection-ownership { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; }
.collection-ownership button { min-height:44px; padding:10px 16px; border:1px solid #65768b70; border-radius:8px; color:#b7c4d7; background:#1b2938; }
.collection-ownership button[aria-pressed="true"] { color:#f1d5a7; border-color:#d5b47c; background:#d5b47c15; }
.collection-locked .card-art, .collection-locked .tool-symbol { filter:grayscale(.85); opacity:.6; }
.collection-locked .card-id, .collection-locked .card-reference { color:#b5bfcf; }
@media(max-width:700px) {
  .collection-ownership button { flex:1; min-width:0; }
  .collection-locked .card-id { font-size:8px; }
}
.ranked-result-reward { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; color:#ecd1a1; }
