/* Scoped Nintendo Switch catalogue; inherits the existing console design. */
.switch-store-callout { display:grid; grid-template-columns:64px minmax(0,1fr) auto; align-items:center; gap:24px; padding:26px 30px; border:1px solid #3c6650; border-radius:16px; background:#14251d; }
.switch-store-callout img { width:64px; height:64px; object-fit:contain; border-radius:12px; }
.switch-store-callout h2 { font-size:1.35rem; margin:0 0 6px; }
.switch-store-callout p { color:var(--text-secondary); max-width:66ch; }
.switch-store-callout .btn { white-space:nowrap; }
.switch-hub-banner { padding-block:30px; }
.switch-catalogue-preview { padding:24px; margin:24px 0 30px; border-left:3px solid var(--accent-light); border-radius:0 12px 12px 0; background:#14251d; }
.switch-catalogue-preview h3 { margin-bottom:8px; }
.switch-catalogue-preview p { color:var(--text-secondary); }
.switch-section-links { display:flex; gap:12px 24px; flex-wrap:wrap; margin-top:20px; }
.switch-intro { max-width:80ch; color:var(--text-secondary); margin-bottom:26px; }
.switch-filters { display:grid; grid-template-columns:minmax(180px,1fr) minmax(180px,250px); gap:18px; padding:22px; border:1px solid var(--border); border-radius:12px; background:var(--bg-secondary); }
.switch-filters label { display:block; font-size:.875rem; font-weight:600; margin-bottom:8px; }
.switch-filters input,.switch-filters select { width:100%; min-height:48px; padding:11px 14px; border:1px solid #455449; border-radius:8px; color:var(--text-primary); background:#0c1410; font:inherit; }
.switch-filters input:focus-visible,.switch-filters select:focus-visible { outline:2px solid var(--accent-light); outline-offset:3px; }
.switch-results { display:flex; justify-content:space-between; gap:16px; margin:18px 0 24px; color:var(--text-secondary); font-size:.875rem; }
.switch-app-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.switch-app { display:flex; flex-direction:column; padding:26px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:16px; scroll-margin-top:24px; min-width:0; }
.switch-app[hidden] { display:none; }
.switch-app-head { display:grid; grid-template-columns:64px minmax(0,1fr); gap:18px; align-items:center; margin-bottom:20px; }
.switch-app-head img { width:64px; height:64px; object-fit:contain; border-radius:12px; }
.switch-app-head h3 { font-size:1.35rem; margin:0 0 6px; line-height:1.25; }
.switch-app-category { font-size:.8rem; color:var(--accent-light); }
.switch-app p { color:var(--text-secondary); font-size:.94rem; margin:0 0 16px; }
.switch-app-meta { display:grid; grid-template-columns:90px minmax(0,1fr); gap:8px 12px; margin:0 0 16px; font-size:.85rem; line-height:1.55; }
.switch-app-meta dt { color:var(--text-secondary); }
.switch-app-meta dd { margin:0; overflow-wrap:anywhere; }
.switch-app .switch-app-tags { display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:0 0 20px; list-style:none; }
.switch-app-tags li { font-size:.72rem; padding:4px 9px; background:#1a2920; color:#bdd2c3; border:1px solid #344638; border-radius:5px; }
.switch-app-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; margin-top:auto; padding-top:6px; }
.switch-app-actions .btn { font-size:.85rem; padding:11px 16px; white-space:nowrap; }
.switch-app-sources { display:flex; flex-wrap:wrap; gap:10px 18px; padding-top:16px; margin-top:18px; border-top:1px solid var(--border); font-size:.8rem; }
.switch-app details { margin-top:18px; font-size:.8rem; color:var(--text-secondary); }
.switch-app summary { cursor:pointer; color:var(--text-primary); }
.switch-file { padding:12px 0; border-bottom:1px solid var(--border); }
.switch-file strong,.switch-file code { display:block; margin-bottom:5px; }
.switch-file code { font-size:.7rem; word-break:break-all; color:#b9d6c2; }
.switch-file a { overflow-wrap:anywhere; }
.switch-empty { padding:36px 0; color:var(--text-secondary); }
.switch-install-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.65fr); gap:40px; align-items:start; }
.switch-sd-map { margin:0; padding:26px; border:1px solid #344f3e; border-radius:12px; background:#101b14; }
.switch-sd-map figcaption { font-weight:600; margin-bottom:18px; }
.switch-sd-map pre { font-size:.8rem; line-height:1.85; white-space:pre-wrap; word-break:break-word; color:#c0d6c6; }
.switch-storage-table { width:100%; border-collapse:collapse; margin-top:22px; font-size:.9rem; }
.switch-storage-table th,.switch-storage-table td { padding:16px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.switch-storage-table th { color:var(--text-primary); }
.switch-storage-table td { color:var(--text-secondary); }
.switch-storage-table code { white-space:normal; overflow-wrap:anywhere; }
.switch-provenance { color:var(--text-secondary); font-size:.875rem; max-width:85ch; }
.switch-provenance p + p { margin-top:16px; }
@media(min-width:1500px) { .switch-app-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1000px) { .switch-store-callout { grid-template-columns:56px minmax(0,1fr); gap:18px; } .switch-store-callout>.btn { grid-column:2; justify-self:start; } .switch-install-grid { grid-template-columns:1fr; } }
@media(max-width:700px) { .switch-app-grid,.switch-filters { grid-template-columns:1fr; } .switch-store-callout { padding:22px; } .switch-store-callout img { width:52px; height:52px; } .switch-app { padding:22px; } .switch-results { flex-direction:column; gap:6px; } .switch-storage-table th,.switch-storage-table td { padding:12px 8px; } }

.switch-store-callout > *, .switch-filters > *, .switch-app-head > *, .switch-install-grid > * { min-width: 0; }
.switch-store-callout, .switch-app-head, .switch-app, .switch-provenance { overflow-wrap: anywhere; }
.switch-filters input, .switch-filters select { min-width: 0; max-width: 100%; }
@media (max-width: 700px) {
  .switch-filters { padding: 18px; }
  .switch-filters input, .switch-filters select { font-size: 1rem; }
  .switch-app-head { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
  .switch-app-head img { width: 52px; height: 52px; }
  .switch-store-callout > .btn { grid-column: 1 / -1; width: 100%; white-space: normal; }
  .switch-app-actions > a, .switch-app-sources > a, .switch-section-links > a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; }
  .switch-app-actions .btn { flex: 1 1 10rem; justify-content: center; white-space: normal; }
  .switch-app summary { min-height: 44px; padding-block: 10px; }
  .switch-app-actions, .switch-app-sources { gap: 8px 16px; }
  .switch-storage-table { table-layout: fixed; }
  .switch-storage-table th, .switch-storage-table td { overflow-wrap: anywhere; }
  .switch-sd-map { padding: 18px; }
}
@media (max-width: 380px) {
  .switch-app { padding: 18px; }
  .switch-app-meta { grid-template-columns: 76px minmax(0, 1fr); gap: 8px 10px; }
}
