/* DarkoWiki 10.15.0 — Mobile & Responsive Complete
   Capa final responsive. No sustituye estilos históricos: los normaliza en móvil/tablet. */

html{max-width:100%;overflow-x:clip;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body,.wrap,main,.tab-panel{min-width:0;max-width:100%}
img,svg,video,canvas{max-width:100%}
.app-tab{transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
:where(.tab-panel,.scanner,.pokemon-search,.move-search,.ability-search,.item-guide-card,.locations-search-shell,.progress-guide,.builder-shell,.duel-shell,.team-shell,.locke-run-view,.portability-card,.rom-card){min-width:0}

/* Tables that should remain matrices get an explicit, discoverable scroll affordance. */
.team-analysis-box:has(.team-matrix){overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.team-matrix{max-width:none}

@media(max-width:900px){
  .wrap{padding-inline:14px}
  .panel-intro{align-items:flex-start}
  .panel-badge{white-space:normal;text-align:center}
  .hero .subtitle{max-width:46rem}
  .pwa-toolbar{align-items:stretch}
  .pwa-tool-btn,.pwa-network-status{min-height:44px}
  .dw-global-game{align-items:stretch}
  .dw-global-game-select{min-height:44px}
  .dw-universal-input-row input,.dw-universal-input-row button,.dw-universal-filters select,.dw-universal-clear{min-height:44px}
}

@media(max-width:760px){
  .wrap{padding:24px 10px 48px}
  header.hero{margin-bottom:20px}
  .dw-logo{max-width:82px}
  h1{font-size:clamp(1.8rem,9vw,2.35rem)}
  .subtitle{font-size:.94rem;line-height:1.62}

  /* Navegación táctil: carril horizontal, sin provocar overflow del documento. */
  .app-nav-wrap{margin-inline:-10px;padding-inline:10px;overflow:hidden}
  .app-nav{width:100%;max-width:100%;min-width:0!important;overflow-x:auto!important;overflow-y:hidden;scroll-padding-inline:10px;scroll-snap-type:x proximity;padding:7px 10px!important;-webkit-overflow-scrolling:touch}
  .app-tab{min-height:46px!important;padding:9px 12px!important;touch-action:manipulation;scroll-snap-align:center}
  .app-tab[aria-selected="true"]{scroll-margin-inline:16px}

  /* Controles: evitar objetivos táctiles diminutos y zoom de iOS. */
  :where(.tab-panel,.dw-context-nav,.dw-universal-search,.site-info-dialog,.pokemon-variant-dialog,.progress-visual-dialog) button:not(.progress-map-stop),
  :where(.tab-panel,.dw-context-nav,.dw-universal-search) select,
  :where(.tab-panel,.dw-context-nav,.dw-universal-search) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]){min-height:44px}
  :where(.tab-panel,.dw-context-nav,.dw-universal-search) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  :where(.tab-panel,.dw-context-nav,.dw-universal-search) select,
  :where(.tab-panel,.dw-context-nav,.dw-universal-search) textarea{font-size:16px}
  :where(.tab-panel,.dw-context-nav) input[type="checkbox"],:where(.tab-panel,.dw-context-nav) input[type="radio"]{width:22px;height:22px;min-width:22px;min-height:22px;accent-color:var(--accent)}
  .locke-switch,.progress-toggle,.rom-toggle{min-height:44px;padding-block:7px}
  .team-mini-btn,.progress-data-card button,.progress-team button,.progress-card-actions button,.save-view-btn,.save-selection-toolbar button,.save-pagination button{min-height:42px;padding-block:9px}

  /* Cabeceras/toolbars apilables. */
  .save-reader-head,.save-result-head,.save-import-bar,.locke-run-toolbar,.locke-run-head,.rom-card-head,.portability-hero,.progress-region-map-head{align-items:stretch;flex-direction:column}
  .save-import-bar>button,.locke-run-actions>button,.rom-card-head>button{width:100%}
  .save-view-toolbar>div{grid-template-columns:1fr 1fr}
  .save-selection-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .save-selection-toolbar input,.save-selection-toolbar span{grid-column:1/-1}
  .save-selection-toolbar button{width:100%}
  .locke-run-actions,.rom-form-actions,.rom-toolbar-actions,.portability-actions,.portability-share-controls{width:100%}
  .locke-run-actions .locke-run-btn,.rom-form-actions .rom-btn,.rom-toolbar-actions .rom-btn,.portability-actions .portability-btn,.portability-share-controls .portability-btn{flex:1 1 150px;min-height:44px}

  /* Mi Partida: las tablas de compatibilidad pasan a tarjetas legibles. */
  .save-compatibility .team-table-wrap{max-height:none;overflow:visible;border:0;background:transparent}
  .save-compatibility .team-table,.save-compatibility .team-table tbody,.save-compatibility .team-table tr,.save-compatibility .team-table td{display:block;width:100%}
  .save-compatibility .team-table thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .save-compatibility .team-table tr{margin:9px 0;border:1px solid var(--border);border-radius:12px;padding:6px 10px;background:rgba(255,255,255,.025)}
  .save-compatibility .team-table td{display:grid;grid-template-columns:minmax(92px,.42fr) minmax(0,1fr);gap:9px;padding:8px 2px;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid rgba(167,159,201,.09)}
  .save-compatibility .team-table td:last-child{border-bottom:0}
  .save-compatibility .team-table td::before{content:attr(data-dw-label);color:var(--text-muted);font:800 .62rem var(--font-mono);text-transform:uppercase;letter-spacing:.045em}

  /* Modales ocupan el viewport útil y nunca quedan cortados bajo barras móviles. */
  .site-info-dialog,.progress-visual-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0}
  .site-info-shell{max-height:100dvh;padding:14px;overscroll-behavior:contain}
  .site-info-head{position:sticky;top:0;z-index:3;margin:-14px -14px 0;padding:14px;background:#131022}
  .site-info-tabs{position:sticky;top:72px;z-index:2;margin-inline:-4px;background:#19152d}
  .site-change{grid-template-columns:1fr;gap:5px}
  .progress-visual-dialog-head{position:sticky;top:0;z-index:2;background:#0d0b1d}
  .progress-visual-dialog-head button{min-width:44px;min-height:44px}
  .progress-visual-modal-body{max-height:calc(100dvh - 68px);overflow:auto}

  /* Progress y mapas: pins algo mayores para dedo; contenido sin recortes. */
  .progress-map-stop{width:32px;height:32px;font-size:11px}
  .progress-map-stop.is-current{width:36px;height:36px}
  .progress-region-map-stage{min-height:190px}
  .progress-index-shell,.progress-region-panel{overflow:visible!important}
  .progress-prev-next{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)!important}
  .progress-prev-next button{min-width:0;overflow:hidden}

  /* ROM: 6 stats caben sin campos diminutos; el resto va a una columna. */
  .rom-input,.rom-select{min-height:44px}
  .rom-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .rom-stat-grid input{width:100%;min-width:0}

  /* Footer: enlaces con área táctil real sin convertirlos en botones visuales. */
  .site-footer a{display:inline-flex;align-items:center;min-height:40px;padding:4px 6px;margin:0 1px}

  /* Universal Search: resultados aprovechan altura, no bloquean la página. */
  .dw-universal-results{max-height:min(52dvh,520px)}
  .dw-universal-result{min-height:52px}
}

@media(max-width:560px){
  .wrap{padding-inline:9px}
  .scanner,.pokemon-search,.move-search,.ability-search,.save-reader-shell,.intelligence-panel{padding:14px}
  .pwa-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .pwa-network-status{grid-column:1/-1;justify-content:center}
  .dw-context-actions{grid-template-columns:1fr 1fr!important}
  .dw-active-game-badge{grid-column:1/-1!important}
  .dw-context-btn:last-child:nth-child(odd){grid-column:1/-1}
  .save-route-tabs{display:grid;grid-template-columns:1fr 1fr}
  .save-route-tabs button{min-width:0}
  .save-mon-card{grid-template-columns:58px minmax(0,1fr)}
  .save-mon-art{min-height:58px}
  .save-import-bar{display:grid;grid-template-columns:1fr}
  .save-import-bar>div,.save-import-bar>button{width:100%}
  .locke-run-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .locke-run-nav button{min-height:48px}
  .rom-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dw-universal-search{width:100%;margin-inline:0}
  .dw-universal-result-copy b,.dw-universal-result-copy small,.dw-universal-result-copy em{white-space:normal;overflow:visible;text-overflow:clip}
  .regional-atlas-tab,.kanto-player-btn,.progress-region-map-expand{min-height:46px}
}

@media(max-width:390px){
  .pwa-toolbar{grid-template-columns:1fr}
  .pwa-network-status{grid-column:auto}
  .dw-context-actions{grid-template-columns:1fr!important}
  .dw-active-game-badge{grid-column:auto!important}
  .save-selection-toolbar{grid-template-columns:1fr}
  .save-selection-toolbar input,.save-selection-toolbar span{grid-column:auto}
  .locke-run-nav{grid-template-columns:1fr}
  .progress-prev-next{grid-template-columns:1fr 42px 1fr!important;gap:5px}
  .progress-prev-next button{padding-inline:6px}
}

@media(orientation:landscape) and (max-height:560px) and (max-width:1000px){
  .app-nav-wrap{position:static}
  .site-info-dialog,.pokemon-variant-dialog,.progress-visual-dialog{height:100dvh;max-height:100dvh}
  .dw-universal-results{max-height:42dvh}
}

@media(hover:none) and (pointer:coarse){
  .type-chip:hover,.item-reference-link:hover,.progress-map-stop:hover{transform:none}
  button,a,[role="button"]{touch-action:manipulation}
}
