  :root {
    --bg: #121022;
    --bg-radial: radial-gradient(ellipse 1200px 800px at 50% -10%, #241f42 0%, #121022 55%, #0c0a19 100%);
    --surface: #1c1933;
    --border: #322c54;
    --text: #f4f2fb;
    --text-muted: #a79fc9;
    --accent: #8b7ff0;
    --accent-soft: rgba(139,127,240,.16);
    --mult-4: #ff4d5e;       --mult-4-bg: rgba(255,77,94,.16);
    --mult-2: #ffa33d;       --mult-2-bg: rgba(255,163,61,.16);
    --mult-half: #4ade80;    --mult-half-bg: rgba(74,222,128,.14);
    --mult-quarter: #0f9d78; --mult-quarter-bg: rgba(15,157,120,.22);
    --mult-0: #9096b8;       --mult-0-bg: rgba(144,150,184,.18);
    --radius-lg: 22px;
    --radius-md: 14px;
    --radius-sm: 999px;
    --font-display: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
    --font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  }

  * { box-sizing: border-box; }
  html, body { margin:0; padding:0; }
  body {
    background: var(--bg-radial), var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    line-height: 1.5;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
  }
  button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }

  .wrap { max-width: 1180px; margin: 0 auto; padding: 48px 20px 70px; }

  header.hero { text-align:center; margin-bottom: 34px; animation: rise .6s ease both; }
  .eyebrow {
    font-family: var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
    color: var(--accent); margin:0 0 12px;
  }
  h1 {
    font-family: var(--font-display); font-size: clamp(1.9rem, 4.5vw, 2.7rem); font-weight:700;
    margin:0 0 12px; letter-spacing:-.01em;
  }
  .subtitle { color: var(--text-muted); font-size:1.02rem; max-width: 580px; margin: 0 auto; }

  @keyframes rise { from { opacity:0; transform:translateY(10px);} to {opacity:1; transform:translateY(0);} }
  @keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:.35;} }

  main { display:block; }

  /* ---------- Scanner panel ---------- */
  .scanner {
    position: relative;
    background: linear-gradient(120deg, var(--accent-soft), transparent 45%), var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 30px 26px 28px;
    margin-bottom: 34px;
    box-shadow: 0 20px 50px -25px rgba(0,0,0,.6);
  }
  .scanner-label {
    font-family: var(--font-mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
    color: var(--text-muted); display:flex; align-items:center; gap:8px; margin-bottom:10px;
  }
  .scanner-label .dot {
    width:7px; height:7px; border-radius:50%; background: var(--mult-2);
    box-shadow: 0 0 0 3px var(--accent-soft); animation: pulse 2.4s ease-in-out infinite;
  }
  .scanner h2 { font-family: var(--font-display); font-size:1.35rem; margin: 0 0 6px; }
  .scanner p.hint { color: var(--text-muted); font-size:.94rem; margin:0 0 20px; }

  .type-picker { display:flex; flex-wrap:wrap; gap:8px; margin-bottom: 8px; }
  .type-chip {
    --tc: #888; --txc: #fff;
    display:inline-flex; align-items:center; gap:6px;
    padding:8px 14px 8px 11px;
    border-radius: var(--radius-sm);
    border: 2px solid rgba(0,0,0,.18);
    background: var(--tc);
    color: var(--txc);
    font-weight:600; font-size:.86rem;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  }
  .type-chip .emj { font-size:1.02rem; }
  .type-chip:hover { transform: translateY(-2px); }
  .type-chip:focus-visible { outline: 3px solid var(--accent); outline-offset:2px; }
  .type-chip[aria-pressed="true"] {
    border-color: #fff;
    box-shadow: 0 0 0 3px var(--accent), 0 10px 20px -8px rgba(0,0,0,.55);
    transform: translateY(-2px) scale(1.05);
  }

  .picker-foot {
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
    margin: 16px 0 22px;
  }
  .legend-strip { display:flex; flex-wrap:wrap; gap:6px 16px; font-family: var(--font-mono); font-size:.72rem; color: var(--text-muted); }
  .legend-strip b { color: var(--text); }

  .clear-btn {
    background:none; border:1px solid var(--border); color:var(--text-muted);
    font-size:.8rem; padding:7px 14px; border-radius: var(--radius-sm);
  }
  .clear-btn:hover { color:var(--text); border-color: var(--accent); }
  .clear-btn[hidden] { display:none; }

  .results { border-top:1px dashed var(--border); margin-top:4px; padding-top:22px; }
  .results[aria-live] { scroll-margin-top: 20px; }
  .result-empty { text-align:center; color: var(--text-muted); padding: 14px 10px 4px; font-size:.96rem; }
  .result-hint { text-align:center; color: var(--text-muted); font-size:.84rem; margin-top:16px; }

  .bucket { margin-bottom:18px; animation: rise .35s ease both; }
  .bucket:last-child { margin-bottom:0; }
  .bucket-head { display:flex; align-items:center; gap:10px; margin-bottom:9px; flex-wrap:wrap; }
  .bucket-head .mult { font-family: var(--font-mono); font-weight:700; font-size:1rem; padding:4px 11px; border-radius:8px; }
  .bucket-head .label { font-weight:600; font-size:.92rem; color: var(--text-muted); }
  .bucket-badges { display:flex; flex-wrap:wrap; gap:6px; }

  .bucket.m4 .mult       { background: var(--mult-4-bg);       color: var(--mult-4); }
  .bucket.m2 .mult       { background: var(--mult-2-bg);       color: var(--mult-2); }
  .bucket.mhalf .mult    { background: var(--mult-half-bg);    color: var(--mult-half); }
  .bucket.mquarter .mult { background: var(--mult-quarter-bg); color: var(--mult-quarter); }
  .bucket.m0 .mult       { background: var(--mult-0-bg);       color: var(--mult-0); }

  .mini-badge {
    --tc:#888; --txc:#fff;
    display:inline-flex; align-items:center; gap:5px;
    background: var(--tc); color: var(--txc);
    border: 1px solid rgba(0,0,0,.16);
    font-size:.79rem; font-weight:600;
    padding:4px 11px; border-radius: var(--radius-sm);
  }

  /* ---------- Reference grid ---------- */
  .ref-section h2 { font-family: var(--font-display); font-size:1.35rem; margin:0 0 6px; }
  .ref-section > p { color:var(--text-muted); font-size:.94rem; margin:0 0 22px; }
  .ref-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(272px, 1fr)); gap:14px; }
  .ref-card {
    background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md);
    padding:17px; transition: border-color .2s ease, transform .2s ease;
  }
  .ref-card:hover { border-color: var(--accent); transform: translateY(-2px); }
  .ref-card-head {
    display:flex; align-items:center; gap:9px; margin-bottom:13px; padding-bottom:12px;
    border-bottom:1px solid var(--border);
  }
  .ref-card-head .emj { font-size:1.35rem; }
  .ref-card-head .name { font-family: var(--font-display); font-weight:700; font-size:1.08rem; }
  .ref-row { margin-bottom:11px; }
  .ref-row:last-child { margin-bottom:0; }
  .ref-row-label {
    display:flex; align-items:center; gap:6px; font-size:.7rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px;
  }
  .ref-row-label.good   { color: var(--mult-2); }
  .ref-row-label.bad    { color: var(--mult-half); }
  .ref-row-label.weak   { color: var(--mult-4); }
  .ref-row-label.immune { color: var(--mult-0); }
  .ref-row-badges { display:flex; flex-wrap:wrap; gap:5px; }
  .ref-row-none { color: var(--text-muted); font-size:.8rem; font-style:italic; }

  footer {
    text-align:center; color: var(--text-muted); font-size:.82rem;
    margin-top:42px; padding-top:24px; border-top:1px solid var(--border);
  }

  @media (max-width:600px) {
    .wrap { padding: 34px 14px 56px; }
    .scanner { padding: 22px 16px 22px; }
    .ref-grid { grid-template-columns: 1fr; }
    .picker-foot { flex-direction:column; align-items:flex-start; }
  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: .001ms !important; animation-iteration-count: 1 !important;
      transition-duration: .001ms !important;
    }
  }

  /* ---------- Buscador de Pokémon ---------- */
  .pokemon-search {
    background: linear-gradient(120deg, rgba(255,163,61,.10), transparent 45%), var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 26px;
    margin-bottom: 24px;
    box-shadow: 0 20px 50px -25px rgba(0,0,0,.55);
  }
  .pokemon-search h2 { font-family: var(--font-display); font-size:1.35rem; margin:0 0 6px; }
  .pokemon-search p { color:var(--text-muted); font-size:.94rem; margin:0 0 16px; }
  .pokemon-search-row { display:flex; gap:10px; flex-wrap:wrap; }
  .pokemon-input {
    flex:1 1 260px; min-width:0;
    background:#131126; color:var(--text); border:1px solid var(--border);
    border-radius:12px; padding:12px 14px; font:inherit;
    outline:none; transition:border-color .15s ease, box-shadow .15s ease;
  }
  .pokemon-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .pokemon-search-btn {
    border:0; border-radius:12px; padding:12px 18px;
    background:var(--accent); color:white; font-weight:700;
  }
  .pokemon-search-btn:hover { filter:brightness(1.08); }
  .pokemon-status { margin-top:14px; color:var(--text-muted); font-size:.9rem; }
  .pokemon-result { margin-top:18px; }
  .pokemon-card {
    display:grid; grid-template-columns:120px 1fr; gap:18px; align-items:center;
    background:#151229; border:1px solid var(--border); border-radius:16px; padding:18px;
  }
  .pokemon-art { width:120px; height:120px; object-fit:contain; image-rendering:auto; }
  .pokemon-meta h3 { margin:0 0 4px; font-family:var(--font-display); font-size:1.45rem; }
  .pokemon-number { color:var(--text-muted); font-family:var(--font-mono); font-size:.82rem; margin-bottom:10px; }
  .pokemon-types { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }
  .pokemon-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .pokemon-summary .bucket { margin:0; background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:12px; padding:12px; }
  .pokemon-summary .bucket-head { margin-bottom:7px; }
  .pokemon-summary .result-hint { margin:0; text-align:left; }
  @media (max-width:700px) {
    .pokemon-card { grid-template-columns:1fr; text-align:center; }
    .pokemon-art { margin:0 auto; }
    .pokemon-types, .pokemon-summary .bucket-badges { justify-content:center; }
    .pokemon-summary { grid-template-columns:1fr; }
  }


  /* ---------- Fase 9.3: selector y comparación de formas ---------- */
  .pokemon-form-picker,
  .pokemon-form-switch {
    border:1px solid rgba(139,127,240,.28);
    background:linear-gradient(135deg,rgba(139,127,240,.10),rgba(99,144,240,.035));
    border-radius:16px;
    padding:15px;
    margin:0 0 14px;
  }
  .pokemon-form-picker h3 { margin:0 0 5px; font-family:var(--font-display); font-size:1.08rem; }
  .pokemon-form-picker > p { margin:0 0 13px; color:var(--text-muted); font-size:.82rem; }
  .pokemon-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:9px; }
  .pokemon-form-option {
    width:100%; min-width:0; text-align:left; color:var(--text); cursor:pointer;
    border:1px solid var(--border); border-radius:13px; padding:10px;
    background:rgba(10,8,23,.56); transition:transform .15s ease,border-color .15s ease,background .15s ease;
  }
  .pokemon-form-option:hover { transform:translateY(-2px); border-color:var(--accent); background:rgba(139,127,240,.08); }
  .pokemon-form-option:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
  .pokemon-form-option.is-current { border-color:#8ce8b2; background:rgba(74,222,128,.055); }
  .pokemon-form-option-head { display:grid; grid-template-columns:66px 1fr; gap:9px; align-items:center; }
  .pokemon-form-option img { width:64px; height:64px; object-fit:contain; filter:drop-shadow(0 8px 10px rgba(0,0,0,.30)); }
  .pokemon-form-option-name { font-family:var(--font-display); font-size:.91rem; font-weight:800; line-height:1.2; }
  .pokemon-form-kind { margin-top:3px; color:var(--text-muted); font:700 .64rem var(--font-mono); text-transform:uppercase; letter-spacing:.045em; }
  .pokemon-form-option .pokemon-types { margin:8px 0 0; gap:5px; }
  .pokemon-form-quick { margin-top:8px; color:var(--text-muted); font:700 .66rem var(--font-mono); line-height:1.45; }
  .pokemon-form-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:11px; }
  .pokemon-form-unknown,
  .pokemon-form-pill {
    border:1px solid var(--border); border-radius:999px; padding:7px 10px;
    color:var(--text-muted); background:#111020; font-size:.72rem; font-weight:800;
  }
  .pokemon-form-unknown { color:#ffd09a; border-color:rgba(255,180,94,.28); background:rgba(255,180,94,.06); }
  .pokemon-form-pill:hover,.pokemon-form-unknown:hover { color:#fff; border-color:var(--accent); }
  .pokemon-form-pill[aria-pressed="true"] { color:#9aebbd; border-color:rgba(74,222,128,.35); background:rgba(74,222,128,.07); }
  .pokemon-form-switch-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
  .pokemon-form-switch-title { font-weight:800; font-size:.8rem; }
  .pokemon-form-switch-note { color:var(--text-muted); font-size:.72rem; margin-top:2px; }
  .pokemon-form-compare { margin-top:12px; overflow:auto; border:1px solid var(--border); border-radius:12px; background:rgba(7,6,17,.38); }
  .pokemon-form-compare[hidden] { display:none; }
  .pokemon-form-risk { padding:11px 12px; border-bottom:1px solid var(--border); color:#ffd09a; font-size:.77rem; line-height:1.5; background:rgba(255,180,94,.045); }
  .pokemon-form-risk-pills { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
  .pokemon-form-risk-pill { border:1px solid rgba(255,180,94,.22); border-radius:999px; padding:4px 8px; font:700 .65rem var(--font-mono); }
  .pokemon-form-table { width:100%; min-width:760px; border-collapse:collapse; font-size:.75rem; }
  .pokemon-form-table th { text-align:left; color:var(--text-muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.045em; padding:8px 7px; border-bottom:1px solid var(--border); background:#17142a; }
  .pokemon-form-table td { padding:8px 7px; border-bottom:1px dashed rgba(167,159,201,.13); vertical-align:middle; }
  .pokemon-form-table tr:last-child td { border-bottom:0; }
  .pokemon-form-table .form-best-stat { color:#ffd36d; font-weight:900; background:rgba(255,211,109,.045); }
  .pokemon-form-table .form-name-cell { min-width:180px; }
  .pokemon-form-table .form-name-cell b { display:block; }
  .pokemon-form-table .form-name-cell small { display:block; margin-top:2px; color:var(--text-muted); }
  .pokemon-form-select-mini { border:1px solid var(--border); background:#111020; color:#dcd7ff; border-radius:8px; padding:5px 8px; font-size:.67rem; font-weight:800; }
  .pokemon-form-select-mini:hover { border-color:var(--accent); color:#fff; }
  @media (max-width:600px) {
    .pokemon-form-grid { grid-template-columns:1fr; }
    .pokemon-form-picker,.pokemon-form-switch { padding:12px; }
  }


  /* ---------- Fase 2: estadísticas competitivas ---------- */
  .level-control {
    display:flex; align-items:center; gap:8px;
    background:#131126; border:1px solid var(--border); border-radius:12px;
    padding:7px 10px 7px 12px; color:var(--text-muted); font-size:.82rem; font-weight:600;
  }
  .level-control input {
    width:70px; background:#0f0d20; color:var(--text); border:1px solid var(--border);
    border-radius:9px; padding:6px 8px; font:inherit; font-family:var(--font-mono); text-align:center; outline:none;
  }
  .level-control input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }

  .stats-shell { margin-top:16px; border-top:1px dashed var(--border); padding-top:17px; }
  .stats-heading {
    display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-bottom:12px;
  }
  .stats-heading h4 { margin:0; font-family:var(--font-display); font-size:1.08rem; }
  .stats-note { color:var(--text-muted); font-size:.78rem; }
  .stats-total {
    font-family:var(--font-mono); font-size:.78rem; color:var(--text-muted);
    border:1px solid var(--border); border-radius:999px; padding:5px 10px; background:rgba(255,255,255,.025);
  }

  .build-controls {
    display:grid; grid-template-columns:minmax(250px,1.25fr) minmax(220px,.75fr); gap:12px;
    margin:12px 0 14px;
  }
  .nature-card, .ev-card {
    background:linear-gradient(135deg,rgba(139,127,240,.08),rgba(255,255,255,.02));
    border:1px solid var(--border); border-radius:13px; padding:12px;
  }
  .control-kicker { color:var(--text-muted); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; margin-bottom:6px; }
  .nature-select {
    width:100%; background:#100e20; color:var(--text); border:1px solid var(--border); border-radius:10px;
    padding:10px 11px; outline:none; font:inherit; font-size:.86rem;
  }
  .nature-select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .nature-explain { margin-top:7px; color:var(--text-muted); font-size:.76rem; }
  .nature-up { color:#63e6a6; font-weight:700; }
  .nature-down { color:#ff7a87; font-weight:700; }
  .nature-neutral { color:var(--text-muted); font-weight:700; }

  .ev-meter-row { display:flex; justify-content:space-between; align-items:center; gap:10px; }
  .ev-meter-row strong { font-family:var(--font-mono); font-size:.96rem; }
  .ev-meter { height:8px; background:#0c0a18; border:1px solid rgba(255,255,255,.05); border-radius:999px; overflow:hidden; margin-top:8px; }
  .ev-meter > span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--accent),#c5bdff); border-radius:999px; transition:width .15s ease; }
  .ev-meter.over > span { background:linear-gradient(90deg,#ff596a,#ff9f43); }
  .ev-help { color:var(--text-muted); font-size:.74rem; margin-top:7px; }

  .preset-row { display:flex; gap:7px; flex-wrap:wrap; margin:0 0 12px; }
  .preset-btn {
    background:#131126; border:1px solid var(--border); color:var(--text-muted); border-radius:999px;
    padding:7px 10px; font-size:.74rem; font-weight:700;
  }
  .preset-btn:hover { color:var(--text); border-color:var(--accent); }

  .stats-table { display:grid; gap:7px; }
  .stat-head, .stat-edit-row {
    display:grid; grid-template-columns:80px 56px 70px 76px 86px minmax(130px,1fr); gap:8px; align-items:center;
  }
  .stat-head { color:var(--text-muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; padding:0 10px; }
  .stat-edit-row {
    background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:11px; padding:8px 10px;
  }
  .stat-name { font-size:.8rem; font-weight:800; color:var(--text-muted); }
  .stat-base { font-family:var(--font-mono); font-weight:700; text-align:center; }
  .stat-input {
    width:100%; min-width:0; background:#0f0d20; color:var(--text); border:1px solid var(--border); border-radius:8px;
    padding:6px 6px; font-family:var(--font-mono); font-size:.78rem; text-align:center; outline:none;
  }
  .stat-input:focus { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
  .nature-mark { font-family:var(--font-mono); font-size:.74rem; font-weight:800; text-align:center; }
  .nature-mark.up { color:#63e6a6; }
  .nature-mark.down { color:#ff7a87; }
  .nature-mark.neutral { color:var(--text-muted); }
  .stat-final-wrap { display:flex; align-items:center; gap:8px; min-width:0; }
  .stat-final { width:54px; flex:0 0 54px; font-family:var(--font-mono); font-size:.86rem; font-weight:800; text-align:right; }
  .stat-bar { flex:1; min-width:44px; height:7px; background:#0e0c1c; border-radius:999px; overflow:hidden; border:1px solid rgba(255,255,255,.05); }
  .stat-bar > span { display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--accent),#b1a8ff); transition:width .15s ease; }

  .stat-legend {
    margin-top:11px; color:var(--text-muted); font-size:.75rem; line-height:1.5;
    background:rgba(139,127,240,.07); border:1px solid rgba(139,127,240,.18); border-radius:10px; padding:10px 11px;
  }
  .stat-legend b { color:var(--text); }
  .calc-status { margin-top:9px; font-family:var(--font-mono); font-size:.72rem; color:var(--text-muted); }
  .calc-status.good { color:#63e6a6; }
  .calc-status.warn { color:#ffb45e; }

  @media (max-width:900px) {
    .build-controls { grid-template-columns:1fr; }
    .stat-head { display:none; }
    .stat-edit-row { grid-template-columns:72px 46px 1fr 1fr; }
    .stat-edit-row .nature-mark { display:none; }
    .stat-final-wrap { grid-column:1 / -1; }
    .stat-edit-row::before { content:''; display:none; }
  }
  @media (max-width:520px) {
    .level-control { width:100%; justify-content:space-between; }
    .stat-edit-row { grid-template-columns:64px 42px 1fr 1fr; gap:6px; }
    .stat-input { padding:7px 4px; }
  }


  /* ---------- Navegación por apartados ---------- */
  .app-nav-wrap {
    position:sticky; top:0; z-index:30; margin:0 0 26px; padding:10px 0;
    background:linear-gradient(180deg,rgba(18,16,34,.96) 0%,rgba(18,16,34,.90) 72%,rgba(18,16,34,0) 100%);
    backdrop-filter:blur(12px);
  }
  .app-nav {
    display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:8px;
    background:rgba(18,15,37,.82); border:1px solid var(--border); border-radius:16px; padding:7px;
    box-shadow:0 16px 34px -25px rgba(0,0,0,.75);
  }
  .app-tab {
    display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px;
    border:1px solid transparent; border-radius:11px; background:transparent; color:var(--text-muted);
    font-weight:800; font-size:.88rem; transition:.16s ease;
  }
  .app-tab:hover { color:var(--text); background:rgba(255,255,255,.035); }
  .app-tab[aria-selected="true"] {
    color:#fff; border-color:rgba(139,127,240,.48);
    background:linear-gradient(135deg,rgba(139,127,240,.30),rgba(139,127,240,.13));
    box-shadow:0 8px 24px -18px rgba(139,127,240,.95);
  }
  .app-tab .tab-num { font-family:var(--font-mono); font-size:.65rem; opacity:.72; }
  .tab-panel { display:none; animation:rise .28s ease both; }
  .tab-panel.is-active { display:block; }
  .panel-intro {
    display:flex; justify-content:space-between; gap:20px; align-items:flex-end; flex-wrap:wrap;
    margin:0 0 18px; padding:0 2px;
  }
  .panel-intro h2 { margin:0 0 4px; font-family:var(--font-display); font-size:1.5rem; }
  .panel-intro p { margin:0; color:var(--text-muted); font-size:.9rem; max-width:720px; }
  .panel-badge {
    font-family:var(--font-mono); font-size:.68rem; color:var(--accent); border:1px solid rgba(139,127,240,.30);
    background:var(--accent-soft); border-radius:999px; padding:6px 10px; white-space:nowrap;
  }

  /* ---------- Fase 3: buscador de movimientos ---------- */
  .move-search {
    background:linear-gradient(120deg,rgba(99,144,240,.11),transparent 46%),var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px;
    box-shadow:0 20px 50px -25px rgba(0,0,0,.55);
  }
  .move-search h2 { font-family:var(--font-display); font-size:1.35rem; margin:0 0 6px; }
  .move-search > p { color:var(--text-muted); font-size:.94rem; margin:0 0 16px; }
  .move-search-row { display:flex; gap:10px; flex-wrap:wrap; }
  .move-input {
    flex:1 1 300px; min-width:0; background:#131126; color:var(--text); border:1px solid var(--border);
    border-radius:12px; padding:12px 14px; font:inherit; outline:none;
  }
  .move-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .move-search-btn {
    border:0; border-radius:12px; padding:12px 18px; background:var(--accent); color:white; font-weight:800;
  }
  .move-status { margin-top:12px; color:var(--text-muted); font-size:.86rem; }
  .move-result { margin-top:18px; }
  .move-card {
    background:#151229; border:1px solid var(--border); border-radius:17px; padding:18px;
  }
  .move-top {
    display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-wrap:wrap;
    padding-bottom:15px; border-bottom:1px solid var(--border);
  }
  .move-title-wrap { min-width:220px; }
  .move-title-wrap h3 { margin:0 0 5px; font-family:var(--font-display); font-size:1.6rem; }
  .move-id { color:var(--text-muted); font:700 .76rem var(--font-mono); }
  .move-tags { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
  .move-chip {
    display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 10px;
    font-size:.76rem; font-weight:800; border:1px solid var(--border); background:rgba(255,255,255,.03);
  }
  .move-chip.physical { color:#ff9a83; border-color:rgba(255,126,103,.25); background:rgba(255,126,103,.08); }
  .move-chip.special { color:#75c7ff; border-color:rgba(117,199,255,.25); background:rgba(117,199,255,.08); }
  .move-chip.status { color:#c6bfdc; }
  .move-core-grid {
    display:grid; grid-template-columns:repeat(4,minmax(105px,1fr)); gap:9px; min-width:min(100%,460px); flex:1;
  }
  .move-core {
    background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:11px; padding:10px 11px;
  }
  .move-core span { display:block; color:var(--text-muted); font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
  .move-core strong { display:block; margin-top:3px; font:800 1.02rem var(--font-mono); }
  .move-desc {
    margin:15px 0 0; padding:13px 14px; border-radius:12px; border:1px solid rgba(139,127,240,.20);
    background:rgba(139,127,240,.07); color:#ddd9ef; font-size:.9rem;
  }
  .move-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:13px; }
  .move-box {
    background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:13px; padding:13px;
  }
  .move-box h4 { margin:0 0 8px; font-family:var(--font-display); font-size:.92rem; }
  .move-box p { margin:0; color:var(--text-muted); font-size:.82rem; }
  .move-box .bucket-badges { margin-top:7px; }
  .move-mechanics { display:grid; gap:7px; margin-top:8px; }
  .mechanic-row {
    display:flex; justify-content:space-between; gap:14px; padding:7px 0; border-bottom:1px dashed rgba(167,159,201,.14);
    font-size:.8rem;
  }
  .mechanic-row:last-child { border-bottom:0; }
  .mechanic-row span:first-child { color:var(--text-muted); }
  .mechanic-row strong { text-align:right; }
  .stab-note {
    margin-top:12px; border-radius:11px; padding:10px 12px; border:1px solid var(--border); font-size:.8rem;
    color:var(--text-muted); background:rgba(255,255,255,.025);
  }
  .stab-note.good { color:#7de4ad; border-color:rgba(74,222,128,.26); background:rgba(74,222,128,.07); }
  .quick-read { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
  .quick-pill { border-radius:999px; padding:5px 9px; font-size:.72rem; font-weight:800; background:#111020; border:1px solid var(--border); color:var(--text-muted); }
  .quick-pill.good { color:#71e1a5; border-color:rgba(74,222,128,.24); }
  .quick-pill.warn { color:#ffb45e; border-color:rgba(255,180,94,.24); }
  .quick-pill.info { color:#91c9ff; border-color:rgba(145,201,255,.24); }
  .search-help { margin-top:10px; color:var(--text-muted); font-size:.76rem; line-height:1.5; }

  /* ---------- Fase 4: buscador de habilidades ---------- */
  .ability-search {
    background:linear-gradient(120deg,rgba(214,133,173,.11),transparent 46%),var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px;
    box-shadow:0 20px 50px -25px rgba(0,0,0,.55);
  }
  .ability-search h2 { font-family:var(--font-display); font-size:1.35rem; margin:0 0 6px; }
  .ability-search > p { color:var(--text-muted); font-size:.94rem; margin:0 0 16px; }
  .ability-search-row { display:flex; gap:10px; flex-wrap:wrap; }
  .ability-input {
    flex:1 1 300px; min-width:0; background:#131126; color:var(--text); border:1px solid var(--border);
    border-radius:12px; padding:12px 14px; font:inherit; outline:none;
  }
  .ability-input:focus { border-color:#d685ad; box-shadow:0 0 0 3px rgba(214,133,173,.14); }
  .ability-search-btn {
    border:0; border-radius:12px; padding:12px 18px; background:linear-gradient(135deg,#b16fa0,#8b7ff0); color:white; font-weight:800;
  }
  .ability-status { margin-top:12px; color:var(--text-muted); font-size:.86rem; }
  .ability-result { margin-top:18px; }
  .ability-card { background:#151229; border:1px solid var(--border); border-radius:17px; padding:18px; }
  .ability-top {
    display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-wrap:wrap;
    padding-bottom:15px; border-bottom:1px solid var(--border);
  }
  .ability-title-wrap h3 { margin:0 0 5px; font-family:var(--font-display); font-size:1.65rem; }
  .ability-id { color:var(--text-muted); font:700 .76rem var(--font-mono); }
  .ability-tags { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
  .ability-chip {
    display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 10px;
    font-size:.76rem; font-weight:800; border:1px solid var(--border); background:rgba(255,255,255,.03); color:#ddd9ef;
  }
  .ability-chip.main { color:#7de4ad; border-color:rgba(74,222,128,.25); background:rgba(74,222,128,.07); }
  .ability-chip.side { color:#ffb45e; border-color:rgba(255,180,94,.25); background:rgba(255,180,94,.07); }
  .ability-chip.role { color:#d9c4ff; border-color:rgba(139,127,240,.28); background:rgba(139,127,240,.09); }
  .ability-core { min-width:230px; display:grid; grid-template-columns:repeat(2,minmax(105px,1fr)); gap:9px; }
  .ability-core-item { background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:11px; padding:10px 11px; }
  .ability-core-item span { display:block; color:var(--text-muted); font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
  .ability-core-item strong { display:block; margin-top:3px; font:800 .94rem var(--font-mono); }
  .ability-desc {
    margin:15px 0 0; padding:13px 14px; border-radius:12px; border:1px solid rgba(214,133,173,.22);
    background:rgba(214,133,173,.07); color:#e3dbea; font-size:.9rem;
  }
  .ability-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:13px; }
  .ability-box { background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:13px; padding:13px; min-width:0; }
  .ability-box h4 { margin:0 0 8px; font-family:var(--font-display); font-size:.94rem; }
  .ability-box p { margin:0; color:var(--text-muted); font-size:.82rem; }
  .ability-box p + p { margin-top:8px; }
  .ability-procon { display:grid; gap:8px; }
  .ability-procon-row { border-radius:10px; padding:10px 11px; font-size:.81rem; border:1px solid var(--border); }
  .ability-procon-row.good { color:#9aebbd; background:rgba(74,222,128,.06); border-color:rgba(74,222,128,.18); }
  .ability-procon-row.warn { color:#ffc477; background:rgba(255,163,61,.06); border-color:rgba(255,163,61,.18); }
  .ability-procon-row.info { color:#cfc8e8; background:rgba(139,127,240,.06); border-color:rgba(139,127,240,.18); }
  .pokemon-ability-list { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0 2px; }
  .pokemon-ability-btn, .ability-pokemon-btn {
    border:1px solid var(--border); background:#111020; color:var(--text-muted); border-radius:999px; padding:6px 10px;
    font-size:.74rem; font-weight:800; transition:.15s ease;
  }
  .pokemon-ability-btn:hover, .ability-pokemon-btn:hover { color:#fff; border-color:var(--accent); transform:translateY(-1px); }
  .pokemon-ability-btn.hidden-ability { border-style:dashed; color:#d9c4ff; }
  .ability-pokemon-grid { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; max-height:205px; overflow:auto; padding-right:4px; }
  .ability-pokemon-btn small { opacity:.68; font-family:var(--font-mono); margin-left:3px; }
  .synergy-card {
    margin-top:8px; border:1px solid var(--border); border-radius:11px; padding:11px 12px; background:rgba(255,255,255,.025);
  }
  .synergy-card.good { border-color:rgba(74,222,128,.25); background:rgba(74,222,128,.06); }
  .synergy-card.warn { border-color:rgba(255,163,61,.25); background:rgba(255,163,61,.06); }
  .synergy-title { font-weight:800; font-size:.82rem; margin-bottom:5px; }
  .synergy-text { color:var(--text-muted); font-size:.79rem; }
  .ability-source-note { margin-top:10px; color:var(--text-muted); font-size:.72rem; line-height:1.45; }


  /* ---------- Fase 5: buscador de objetos ---------- */
  .item-search {
    background:linear-gradient(120deg,rgba(255,180,94,.11),transparent 46%),var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px;
    box-shadow:0 20px 50px -25px rgba(0,0,0,.55);
  }
  .item-search h2 { font-family:var(--font-display); font-size:1.35rem; margin:0 0 6px; }
  .item-search > p { color:var(--text-muted); font-size:.94rem; margin:0 0 16px; }
  .item-search-row { display:flex; gap:10px; flex-wrap:wrap; }
  .item-input {
    flex:1 1 300px; min-width:0; background:#131126; color:var(--text); border:1px solid var(--border);
    border-radius:12px; padding:12px 14px; font:inherit; outline:none;
  }
  .item-input:focus { border-color:#ffb45e; box-shadow:0 0 0 3px rgba(255,180,94,.13); }
  .item-search-btn {
    border:0; border-radius:12px; padding:12px 18px; background:linear-gradient(135deg,#e48c41,#8b7ff0); color:white; font-weight:800;
  }
  .item-status { margin-top:12px; color:var(--text-muted); font-size:.86rem; }
  .item-result { margin-top:18px; }
  .item-card { background:#151229; border:1px solid var(--border); border-radius:17px; padding:18px; }
  .item-top { display:grid; grid-template-columns:92px minmax(220px,1fr) minmax(300px,1.1fr); gap:16px; align-items:center; padding-bottom:15px; border-bottom:1px solid var(--border); }
  .item-art-wrap { width:112px; min-height:122px; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:10px 8px 9px; background:rgba(255,255,255,.035); border:1px solid var(--border); text-align:center; }
  .item-art { width:72px; height:72px; object-fit:contain; image-rendering:auto; flex:0 0 auto; }
  .item-title-wrap h3 { margin:0 0 5px; font-family:var(--font-display); font-size:1.65rem; }
  .item-id { color:var(--text-muted); font:700 .76rem var(--font-mono); }
  .item-tags { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
  .item-chip { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 10px; font-size:.76rem; font-weight:800; border:1px solid var(--border); background:rgba(255,255,255,.03); color:#ddd9ef; }
  .item-chip.held { color:#82e8ae; border-color:rgba(74,222,128,.25); background:rgba(74,222,128,.07); }
  .item-chip.consumable { color:#ffbe70; border-color:rgba(255,180,94,.25); background:rgba(255,180,94,.07); }
  .item-chip.special { color:#d7c7ff; border-color:rgba(139,127,240,.28); background:rgba(139,127,240,.08); }
  .item-core { display:grid; grid-template-columns:repeat(2,minmax(120px,1fr)); gap:9px; }
  .item-core-item { background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:11px; padding:10px 11px; }
  .item-core-item span { display:block; color:var(--text-muted); font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
  .item-core-item strong { display:block; margin-top:3px; font:800 .92rem var(--font-mono); overflow-wrap:anywhere; }
  .item-desc { margin:15px 0 0; padding:13px 14px; border-radius:12px; border:1px solid rgba(255,180,94,.22); background:rgba(255,180,94,.07); color:#e9e0d5; font-size:.9rem; }
  .item-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:13px; }
  .item-box { background:rgba(255,255,255,.025); border:1px solid var(--border); border-radius:13px; padding:13px; min-width:0; }
  .item-box h4 { margin:0 0 8px; font-family:var(--font-display); font-size:.94rem; }
  .item-box p { margin:0; color:var(--text-muted); font-size:.82rem; }
  .item-box p + p { margin-top:8px; }
  .item-procon { display:grid; gap:8px; }
  .item-procon-row { border-radius:10px; padding:10px 11px; font-size:.81rem; border:1px solid var(--border); }
  .item-procon-row.good { color:#9aebbd; background:rgba(74,222,128,.06); border-color:rgba(74,222,128,.18); }
  .item-procon-row.warn { color:#ffc477; background:rgba(255,163,61,.06); border-color:rgba(255,163,61,.18); }
  .item-procon-row.info { color:#cfc8e8; background:rgba(139,127,240,.06); border-color:rgba(139,127,240,.18); }
  .item-attrs { display:flex; gap:7px; flex-wrap:wrap; margin-top:8px; }
  .item-attr { font-size:.72rem; font-weight:800; color:var(--text-muted); background:#111020; border:1px solid var(--border); border-radius:999px; padding:5px 9px; }
  .item-source-note { margin-top:10px; color:var(--text-muted); font-size:.72rem; line-height:1.45; }
  .item-context-bar {
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
    margin:0 0 14px; padding:11px 12px; border:1px solid rgba(255,180,94,.18);
    background:rgba(255,180,94,.045); border-radius:12px;
  }
  .item-context-control { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .item-context-control label { color:var(--text-muted); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
  .item-game-select {
    background:#100e20; color:var(--text); border:1px solid var(--border); border-radius:9px;
    padding:8px 10px; font:700 .78rem var(--font-body); outline:none;
  }
  .item-game-select:focus { border-color:#ffb45e; box-shadow:0 0 0 3px rgba(255,180,94,.13); }
  .item-context-hint { color:var(--text-muted); font-size:.74rem; }
  .item-provenance { display:flex; flex-wrap:wrap; gap:7px; margin:12px 0 0; }
  .item-source-chip {
    display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:5px 9px;
    font:800 .69rem var(--font-mono); border:1px solid var(--border); background:#111020; color:var(--text-muted);
  }
  .item-source-chip.api { color:#9fc8ff; border-color:rgba(99,144,240,.28); background:rgba(99,144,240,.07); }
  .item-source-chip.curated { color:#d9c4ff; border-color:rgba(139,127,240,.34); background:rgba(139,127,240,.09); }
  .item-source-chip.game { color:#ffd08f; border-color:rgba(255,180,94,.28); background:rgba(255,180,94,.07); }
  .item-game-note { margin:13px 0 0; border:1px solid var(--border); border-radius:11px; padding:11px 12px; font-size:.81rem; line-height:1.5; }
  .item-game-note.good { color:#a1e9bf; border-color:rgba(74,222,128,.24); background:rgba(74,222,128,.055); }
  .item-game-note.warn { color:#ffd09a; border-color:rgba(255,180,94,.24); background:rgba(255,180,94,.055); }
  .item-game-note.info { color:#d4cff0; border-color:rgba(139,127,240,.23); background:rgba(139,127,240,.06); }
  .item-darko-detail { margin-top:11px; color:var(--text-muted); font-size:.8rem; line-height:1.55; }
  .item-art-wrap { overflow:hidden; }
  .item-art-wrap .item-art-badge {
    position:static; display:block; width:100%; max-width:100%; padding:4px 6px; border-radius:10px;
    background:rgba(8,7,18,.82); border:1px solid rgba(255,255,255,.08); color:#d9d4ed;
    font:800 .58rem/1.25 var(--font-mono); text-align:center; backdrop-filter:blur(4px); white-space:normal;
  }
  @media (max-width:880px) { .item-top { grid-template-columns:112px 1fr; } .item-core { grid-column:1/-1; } }
  @media (max-width:760px) { .item-analysis-grid { grid-template-columns:1fr; } }
  @media (max-width:520px) { .item-top { grid-template-columns:1fr; text-align:center; } .item-art-wrap { margin:0 auto; } .item-tags { justify-content:center; } .item-core { grid-template-columns:1fr 1fr; } }

  @media (max-width:900px) { .app-nav { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:760px) {
    .app-nav { grid-template-columns:1fr; }
    .app-nav-wrap { position:static; }
    .move-core-grid { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
    .move-analysis-grid, .ability-analysis-grid { grid-template-columns:1fr; }
    .ability-core { width:100%; }
    .app-nav { grid-template-columns:1fr; }
  }



  /* ---------- Fase 6: constructor competitivo ---------- */
  .builder-shell {
    background:linear-gradient(135deg,rgba(139,127,240,.11),rgba(74,222,128,.035) 45%,rgba(255,163,61,.045)),var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px;
    box-shadow:0 22px 54px -28px rgba(0,0,0,.72);
  }
  .builder-shell h2 { margin:0 0 6px; font-family:var(--font-display); font-size:1.45rem; }
  .builder-shell p { color:var(--text-muted); }
  .builder-heading-row { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; flex-wrap:wrap; margin-bottom:18px; }
  .builder-heading-row p { margin:0; max-width:760px; font-size:.9rem; }
  .builder-actions,.builder-analysis-actions { display:flex; gap:8px; flex-wrap:wrap; }
  .builder-btn,.builder-mini-btn {
    border:0; border-radius:11px; background:linear-gradient(135deg,#8b7ff0,#665bd8); color:white; font-weight:800;
    padding:11px 15px; transition:.15s ease; white-space:nowrap;
  }
  .builder-btn:hover,.builder-mini-btn:hover { transform:translateY(-1px); filter:brightness(1.07); }
  .builder-btn.ghost,.builder-mini-btn.ghost { background:#121022; border:1px solid var(--border); color:var(--text-muted); }
  .builder-btn.ghost:hover,.builder-mini-btn.ghost:hover { color:#fff; border-color:var(--accent); }
  .builder-btn.analyze { background:linear-gradient(135deg,#36b77a,#7a72ef); }
  .builder-mini-btn { padding:9px 12px; border-radius:10px; font-size:.78rem; }
  .builder-step {
    background:rgba(12,10,25,.46); border:1px solid var(--border); border-radius:16px; padding:17px; margin-top:13px;
  }
  .builder-step-head { display:flex; align-items:flex-start; gap:11px; margin-bottom:13px; }
  .builder-step-head h3 { margin:0 0 3px; font-family:var(--font-display); font-size:1.02rem; }
  .builder-step-head p { margin:0; font-size:.78rem; }
  .builder-step-num {
    width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:9px;
    font:800 .72rem var(--font-mono); color:#dcd7ff; border:1px solid rgba(139,127,240,.35); background:rgba(139,127,240,.13);
  }
  .builder-search-row,.builder-inline { display:flex; gap:8px; align-items:stretch; flex-wrap:wrap; }
  .builder-input,.builder-select {
    flex:1 1 210px; min-width:0; background:#100e20; color:var(--text); border:1px solid var(--border);
    border-radius:10px; padding:10px 11px; font:inherit; font-size:.84rem; outline:none;
  }
  .builder-select { width:100%; }
  .builder-input:focus,.builder-select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .builder-config-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
  .builder-config-grid .builder-step { margin-top:13px; }
  .builder-status { color:var(--text-muted); font-size:.76rem; margin-top:9px; line-height:1.5; }
  .builder-pokemon-summary { margin-top:12px; }
  .builder-pokemon-card { display:grid; grid-template-columns:94px 1fr; gap:13px; align-items:center; }
  .builder-pokemon-art { width:90px; height:90px; object-fit:contain; }
  .builder-pokemon-name { font-family:var(--font-display); font-size:1.2rem; font-weight:800; margin-bottom:3px; }
  .builder-pokemon-meta { color:var(--text-muted); font:700 .72rem var(--font-mono); margin-bottom:8px; }
  .builder-stat-pills { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
  .builder-stat-pill { border:1px solid var(--border); border-radius:999px; padding:5px 8px; font:700 .69rem var(--font-mono); background:rgba(255,255,255,.025); }
  .builder-compact-result { margin-top:10px; min-height:30px; }
  .builder-compact-card { border:1px solid var(--border); background:rgba(255,255,255,.025); border-radius:11px; padding:10px 11px; }
  .builder-compact-title { font-weight:800; font-size:.84rem; display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .builder-compact-meta { color:var(--text-muted); font-size:.72rem; margin-top:4px; line-height:1.45; }
  .builder-move-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .builder-move-slot { border:1px solid var(--border); border-radius:13px; padding:12px; background:rgba(255,255,255,.02); min-width:0; }
  .slot-title { font:800 .72rem var(--font-mono); color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
  .builder-move-result { margin-top:9px; min-height:26px; }
  .builder-loaded-move { border-top:1px dashed rgba(167,159,201,.16); padding-top:9px; }
  .builder-loaded-move-head { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
  .builder-loaded-move strong { font-size:.9rem; }
  .builder-move-meta { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
  .builder-move-pill { border:1px solid var(--border); border-radius:999px; padding:4px 7px; font-size:.67rem; font-weight:800; color:var(--text-muted); background:#111020; }
  .builder-remove { border:1px solid rgba(255,100,115,.24); background:rgba(255,100,115,.07); color:#ff9ba5; border-radius:8px; padding:4px 7px; font-size:.67rem; font-weight:800; }
  .builder-analysis-step { border-color:rgba(74,222,128,.20); }
  .builder-analysis { margin-top:14px; }
  .analysis-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
  .analysis-kpi { border:1px solid var(--border); background:rgba(255,255,255,.025); border-radius:12px; padding:10px; }
  .analysis-kpi span { display:block; color:var(--text-muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-weight:800; }
  .analysis-kpi strong { display:block; margin-top:4px; font-size:.9rem; }
  .analysis-sections { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .analysis-section { border:1px solid var(--border); border-radius:13px; padding:12px; background:rgba(255,255,255,.02); min-width:0; }
  .analysis-section.wide { grid-column:1/-1; }
  .analysis-section h4 { margin:0 0 9px; font-family:var(--font-display); font-size:.94rem; }
  .analysis-finding { border-radius:10px; border:1px solid var(--border); padding:9px 10px; margin-top:7px; font-size:.78rem; line-height:1.48; }
  .analysis-finding:first-of-type { margin-top:0; }
  .analysis-finding.good { border-color:rgba(74,222,128,.22); background:rgba(74,222,128,.055); color:#a1e9bf; }
  .analysis-finding.warn { border-color:rgba(255,180,94,.22); background:rgba(255,180,94,.055); color:#ffd09a; }
  .analysis-finding.bad { border-color:rgba(255,77,94,.28); background:rgba(255,77,94,.065); color:#ffadb5; }
  .analysis-finding.info { border-color:rgba(139,127,240,.23); background:rgba(139,127,240,.06); color:#d4cff0; }
  .analysis-finding b { color:inherit; }
  .analysis-type-list { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
  .analysis-counts { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
  .analysis-count { border-radius:999px; border:1px solid var(--border); padding:4px 8px; font:700 .68rem var(--font-mono); color:var(--text-muted); }
  .analysis-count.good { color:#8ce8b2; border-color:rgba(74,222,128,.22); }
  .analysis-count.warn { color:#ffc57c; border-color:rgba(255,180,94,.22); }
  .analysis-count.bad { color:#ff98a3; border-color:rgba(255,77,94,.24); }
  .builder-export-row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:stretch; }
  .builder-export { min-height:190px; resize:vertical; width:100%; background:#0d0b19; color:#e9e6f5; border:1px solid var(--border); border-radius:11px; padding:12px; font:600 .78rem/1.55 var(--font-mono); outline:none; }
  .builder-export:focus { border-color:var(--accent); }
  .analysis-note { margin-top:10px; color:var(--text-muted); font-size:.71rem; line-height:1.5; }
  @media (max-width:1000px) { .app-nav { grid-template-columns:repeat(3,minmax(0,1fr)); } .analysis-overview { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:800px) { .builder-config-grid,.builder-move-grid,.analysis-sections { grid-template-columns:1fr; } .analysis-section.wide { grid-column:auto; } }
  @media (max-width:560px) { .app-nav { grid-template-columns:1fr 1fr; } .builder-pokemon-card { grid-template-columns:1fr; text-align:center; } .builder-pokemon-art { margin:0 auto; } .builder-stat-pills,.pokemon-types { justify-content:center; } .analysis-overview { grid-template-columns:1fr; } .builder-export-row { grid-template-columns:1fr; } }


  /* ---------- Fase 7: Tu Pokémon vs Pokémon rival ---------- */
  .duel-shell {
    background:linear-gradient(135deg,rgba(99,144,240,.10),rgba(255,77,94,.055) 55%,rgba(139,127,240,.07)),var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px;
    box-shadow:0 24px 60px -30px rgba(0,0,0,.78);
  }
  .duel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap; margin-bottom:14px; }
  .duel-head h2 { margin:0 0 6px; font-family:var(--font-display); font-size:1.45rem; }
  .duel-head p { margin:0; max-width:820px; color:var(--text-muted); font-size:.88rem; }
  .duel-context {
    display:grid; grid-template-columns:1.25fr .75fr .8fr .8fr; gap:9px; padding:13px; margin:13px 0;
    border:1px solid var(--border); border-radius:14px; background:rgba(11,9,24,.48);
  }
  .duel-field label,.duel-field .duel-field-label { display:block; color:var(--text-muted); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.055em; margin-bottom:5px; }
  .duel-select,.duel-input {
    width:100%; min-width:0; background:#100e20; color:var(--text); border:1px solid var(--border); border-radius:10px;
    padding:9px 10px; font:inherit; font-size:.8rem; outline:none;
  }
  .duel-select:focus,.duel-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .duel-mode-note { border:1px solid rgba(139,127,240,.2); background:rgba(139,127,240,.055); border-radius:11px; padding:10px 11px; color:var(--text-muted); font-size:.75rem; line-height:1.5; margin-bottom:13px; }
  .duel-vs-grid { display:grid; grid-template-columns:1fr 52px 1fr; gap:12px; align-items:start; }
  .duel-vs-mark { width:48px; height:48px; border-radius:16px; display:grid; place-items:center; align-self:120px; border:1px solid var(--border); background:#100e20; color:#ddd8ff; font:900 .84rem var(--font-mono); box-shadow:0 10px 24px -18px #000; }
  .duel-side { min-width:0; border:1px solid var(--border); border-radius:17px; padding:15px; background:rgba(255,255,255,.021); }
  .duel-side.player { border-color:rgba(99,144,240,.28); background:linear-gradient(135deg,rgba(99,144,240,.055),rgba(255,255,255,.018)); }
  .duel-side.rival { border-color:rgba(255,77,94,.25); background:linear-gradient(135deg,rgba(255,77,94,.045),rgba(255,255,255,.018)); }
  .duel-side-title { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:11px; }
  .duel-side-title h3 { margin:0; font-family:var(--font-display); font-size:1.05rem; }
  .duel-side-title p { margin:3px 0 0; color:var(--text-muted); font-size:.72rem; }
  .duel-tag { border:1px solid var(--border); border-radius:999px; padding:4px 8px; font:800 .64rem var(--font-mono); color:var(--text-muted); white-space:nowrap; }
  .duel-actions { display:flex; flex-wrap:wrap; gap:7px; margin:8px 0; }
  .duel-btn {
    border:0; border-radius:10px; padding:9px 11px; font-size:.76rem; font-weight:800; color:white; background:linear-gradient(135deg,#6775e8,#8b7ff0); transition:.15s ease;
  }
  .duel-btn:hover { transform:translateY(-1px); filter:brightness(1.07); }
  .duel-btn.ghost { border:1px solid var(--border); background:#111020; color:var(--text-muted); }
  .duel-btn.danger { background:linear-gradient(135deg,#d84f60,#8d4057); }
  .duel-summary { margin-top:10px; min-height:46px; }
  .duel-poke-card { display:grid; grid-template-columns:82px 1fr; gap:11px; align-items:center; border:1px solid var(--border); border-radius:13px; padding:11px; background:rgba(8,7,20,.42); }
  .duel-poke-art { width:78px; height:78px; object-fit:contain; }
  .duel-poke-name { font-family:var(--font-display); font-size:1.08rem; font-weight:800; }
  .duel-poke-meta { color:var(--text-muted); font:700 .68rem var(--font-mono); margin:2px 0 7px; }
  .duel-stat-row { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
  .duel-stat { border:1px solid var(--border); border-radius:999px; padding:4px 7px; background:#111020; font:700 .64rem var(--font-mono); color:#d5d0e9; }
  .rival-build-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:10px; }
  .rival-build-box { border:1px solid var(--border); border-radius:12px; padding:10px; background:rgba(255,255,255,.018); min-width:0; }
  .rival-build-box.wide { grid-column:1/-1; }
  .rival-build-box h4 { margin:0 0 8px; font-size:.78rem; font-family:var(--font-display); }
  .rival-stat-grid { display:grid; grid-template-columns:70px 50px 1fr 1fr; gap:6px; align-items:center; }
  .rival-stat-head { color:var(--text-muted); font-size:.61rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; margin-bottom:5px; }
  .rival-stat-line { display:contents; }
  .rival-stat-name { color:var(--text-muted); font-size:.7rem; font-weight:800; }
  .rival-stat-base { font:800 .72rem var(--font-mono); text-align:center; }
  .rival-stat-input { width:100%; min-width:0; background:#0d0b1a; color:var(--text); border:1px solid var(--border); border-radius:8px; padding:6px 5px; text-align:center; font:700 .7rem var(--font-mono); outline:none; }
  .rival-stat-input:focus { border-color:var(--accent); }
  .rival-presets { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
  .rival-moves { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .rival-move-slot { border:1px solid var(--border); border-radius:10px; padding:8px; background:rgba(0,0,0,.1); }
  .rival-move-loaded { margin-top:6px; color:var(--text-muted); font-size:.69rem; line-height:1.4; }
  .duel-advanced { margin:13px 0; border:1px solid var(--border); border-radius:14px; background:rgba(10,8,22,.40); overflow:hidden; }
  .duel-advanced summary { cursor:pointer; list-style:none; padding:12px 14px; font-weight:800; font-size:.82rem; color:#ddd8ef; }
  .duel-advanced summary::-webkit-details-marker { display:none; }
  .duel-advanced-body { padding:0 14px 14px; }
  .battle-state-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .battle-state-card { border:1px solid var(--border); border-radius:12px; padding:11px; background:rgba(255,255,255,.018); }
  .battle-state-card h4 { margin:0 0 8px; font-size:.8rem; font-family:var(--font-display); }
  .battle-state-row { display:grid; grid-template-columns:1fr 100px; gap:7px; align-items:center; margin-top:6px; }
  .battle-state-row span { color:var(--text-muted); font-size:.71rem; }
  .battle-stage-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; margin-top:8px; }
  .battle-stage-grid label { color:var(--text-muted); font-size:.61rem; text-align:center; }
  .battle-stage-grid select { margin-top:3px; width:100%; background:#0e0c1b; color:var(--text); border:1px solid var(--border); border-radius:7px; padding:5px 2px; text-align:center; font:700 .66rem var(--font-mono); }
  .screen-checks { display:flex; gap:10px; flex-wrap:wrap; margin-top:8px; color:var(--text-muted); font-size:.7rem; }
  .screen-checks label { display:flex; align-items:center; gap:5px; }
  .duel-analyze-bar { display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap; margin-top:13px; padding:13px; border:1px solid rgba(74,222,128,.18); border-radius:14px; background:rgba(74,222,128,.035); }
  .duel-analyze-bar p { margin:0; color:var(--text-muted); font-size:.76rem; }
  .duel-analysis { margin-top:13px; }
  .duel-overview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
  .duel-kpi { border:1px solid var(--border); background:rgba(255,255,255,.022); border-radius:11px; padding:9px; }
  .duel-kpi span { display:block; color:var(--text-muted); font-size:.61rem; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }
  .duel-kpi strong { display:block; margin-top:4px; font-size:.82rem; overflow-wrap:anywhere; }
  .duel-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .duel-analysis-box { border:1px solid var(--border); border-radius:13px; padding:12px; background:rgba(255,255,255,.018); min-width:0; }
  .duel-analysis-box.wide { grid-column:1/-1; }
  .duel-analysis-box h4 { margin:0 0 9px; font-family:var(--font-display); font-size:.9rem; }
  .damage-table { width:100%; border-collapse:collapse; font-size:.72rem; }
  .damage-table th { text-align:left; color:var(--text-muted); font-size:.61rem; text-transform:uppercase; letter-spacing:.04em; padding:6px 5px; border-bottom:1px solid var(--border); }
  .damage-table td { padding:8px 5px; border-bottom:1px dashed rgba(167,159,201,.12); vertical-align:top; }
  .damage-table tr:last-child td { border-bottom:0; }
  .damage-main { font-weight:800; }
  .damage-sub { color:var(--text-muted); font-size:.64rem; margin-top:2px; line-height:1.35; }
  .damage-good { color:#82e4ad; }
  .damage-warn { color:#ffc174; }
  .damage-bad { color:#ff9ca7; }
  .duel-finding { border:1px solid var(--border); border-radius:9px; padding:8px 9px; margin-top:6px; font-size:.73rem; line-height:1.45; }
  .duel-finding.good { border-color:rgba(74,222,128,.2); background:rgba(74,222,128,.05); color:#a4eac0; }
  .duel-finding.warn { border-color:rgba(255,180,94,.22); background:rgba(255,180,94,.05); color:#ffd09a; }
  .duel-finding.bad { border-color:rgba(255,77,94,.25); background:rgba(255,77,94,.06); color:#ffabb4; }
  .duel-finding.info { border-color:rgba(139,127,240,.22); background:rgba(139,127,240,.055); color:#d8d2f1; }
  .duel-note { margin-top:10px; color:var(--text-muted); font-size:.7rem; line-height:1.5; }
  @media (max-width:1050px) { .duel-context { grid-template-columns:1fr 1fr; } .duel-overview { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  @media (max-width:900px) { .duel-vs-grid { grid-template-columns:1fr; } .duel-vs-mark { margin:auto; align-self:auto; } .duel-analysis-grid,.battle-state-grid { grid-template-columns:1fr; } .duel-analysis-box.wide { grid-column:auto; } }
  @media (max-width:620px) { .duel-context,.rival-build-grid,.rival-moves { grid-template-columns:1fr; } .rival-build-box.wide { grid-column:auto; } .duel-overview { grid-template-columns:1fr 1fr; } .battle-stage-grid { grid-template-columns:repeat(3,1fr); } .duel-poke-card { grid-template-columns:1fr; text-align:center; } .duel-poke-art { margin:auto; } }


  /* ---------- Fase 8: analista completo de equipos ---------- */
  .team-shell {
    background:linear-gradient(120deg,rgba(74,222,128,.075),transparent 38%),linear-gradient(300deg,rgba(255,77,94,.055),transparent 42%),var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px;
    box-shadow:0 20px 50px -25px rgba(0,0,0,.58);
  }
  .team-shell > h2 { margin:0 0 6px; font-family:var(--font-display); font-size:1.38rem; }
  .team-shell > p { margin:0 0 17px; color:var(--text-muted); font-size:.9rem; }
  .team-context { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
  .team-field { background:#121024; border:1px solid var(--border); border-radius:12px; padding:10px 11px; }
  .team-field label { display:block; color:var(--text-muted); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; margin-bottom:5px; }
  .team-select,.team-input { width:100%; background:#0e0c1b; color:var(--text); border:1px solid var(--border); border-radius:9px; padding:9px 10px; font:inherit; outline:none; }
  .team-input:focus,.team-select:focus { border-color:#62d79b; box-shadow:0 0 0 3px rgba(74,222,128,.10); }
  .team-mode-note { margin:8px 0 16px; padding:10px 12px; border-radius:10px; border:1px solid rgba(139,127,240,.18); background:rgba(139,127,240,.055); color:var(--text-muted); font-size:.76rem; line-height:1.5; }
  .team-columns { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
  .team-side { border:1px solid var(--border); border-radius:16px; padding:14px; background:rgba(255,255,255,.018); min-width:0; }
  .team-side.player { box-shadow:inset 0 3px 0 rgba(74,222,128,.38); }
  .team-side.rival { box-shadow:inset 0 3px 0 rgba(255,77,94,.35); }
  .team-side-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:10px; }
  .team-side-head h3 { margin:0; font-family:var(--font-display); font-size:1.05rem; }
  .team-side-head p { margin:3px 0 0; color:var(--text-muted); font-size:.72rem; }
  .team-count { font:800 .72rem var(--font-mono); color:var(--text-muted); border:1px solid var(--border); border-radius:999px; padding:5px 8px; white-space:nowrap; }
  .team-actions { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:9px; }
  .team-btn { border:1px solid rgba(74,222,128,.25); background:rgba(74,222,128,.09); color:#a9efc8; border-radius:9px; padding:8px 10px; font-size:.72rem; font-weight:800; }
  .team-btn:hover { filter:brightness(1.12); transform:translateY(-1px); }
  .team-btn.rival { border-color:rgba(255,77,94,.23); background:rgba(255,77,94,.075); color:#ffadb5; }
  .team-btn.ghost { border-color:var(--border); background:#111020; color:var(--text-muted); }
  .team-btn:disabled { opacity:.38; cursor:not-allowed; transform:none; }
  .team-add-row { display:grid; grid-template-columns:1fr auto; gap:7px; margin-bottom:7px; }
  .team-status { min-height:18px; color:var(--text-muted); font-size:.7rem; margin-bottom:8px; }
  .team-list { display:grid; gap:8px; }
  .team-empty { border:1px dashed var(--border); border-radius:12px; padding:18px 12px; text-align:center; color:var(--text-muted); font-size:.76rem; }
  .team-member { display:grid; grid-template-columns:68px minmax(0,1fr); gap:10px; border:1px solid var(--border); border-radius:13px; padding:10px; background:#121024; }
  .team-member-art { width:64px; height:64px; object-fit:contain; border-radius:10px; background:rgba(255,255,255,.025); }
  .team-member-top { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
  .team-member-name { font-family:var(--font-display); font-weight:800; font-size:.92rem; }
  .team-member-meta { color:var(--text-muted); font-size:.66rem; margin-top:2px; }
  .team-member-tags { display:flex; gap:5px; flex-wrap:wrap; margin-top:5px; }
  .team-tag-mini { border:1px solid var(--border); border-radius:999px; padding:3px 6px; font-size:.61rem; color:var(--text-muted); background:rgba(255,255,255,.02); }
  .team-tag-mini.good { color:#82e6ad; border-color:rgba(74,222,128,.2); }
  .team-tag-mini.warn { color:#ffc477; border-color:rgba(255,180,94,.2); }
  .team-member-set { margin-top:6px; color:#d1cce4; font-size:.68rem; line-height:1.45; }
  .team-member-set b { color:var(--text); }
  .team-member-actions { display:flex; gap:5px; flex-wrap:wrap; margin-top:7px; }
  .team-mini-btn { border:1px solid var(--border); background:#0f0d1e; color:var(--text-muted); border-radius:7px; padding:5px 7px; font-size:.61rem; font-weight:800; }
  .team-mini-btn:hover { color:#fff; border-color:var(--accent); }
  .team-mini-btn.danger:hover { color:#ff9da8; border-color:rgba(255,77,94,.4); }
  .team-analyze-bar { margin-top:15px; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; border:1px solid rgba(139,127,240,.23); border-radius:14px; padding:13px; background:rgba(139,127,240,.055); }
  .team-analyze-bar b { display:block; font-family:var(--font-display); }
  .team-analyze-bar p { margin:3px 0 0; color:var(--text-muted); font-size:.72rem; }
  .team-analysis { margin-top:13px; }
  .team-overview { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
  .team-kpi { border:1px solid var(--border); border-radius:11px; padding:10px; background:rgba(255,255,255,.02); }
  .team-kpi span { display:block; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; font-size:.6rem; font-weight:800; }
  .team-kpi strong { display:block; margin-top:3px; font:800 .92rem var(--font-mono); }
  .team-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .team-analysis-box { border:1px solid var(--border); border-radius:13px; padding:13px; background:rgba(255,255,255,.018); min-width:0; }
  .team-analysis-box.wide { grid-column:1/-1; }
  .team-analysis-box h4 { margin:0 0 9px; font-family:var(--font-display); font-size:.92rem; }
  .team-finding { border-radius:9px; padding:8px 9px; margin-top:6px; border:1px solid var(--border); color:var(--text-muted); font-size:.72rem; line-height:1.45; }
  .team-finding:first-of-type { margin-top:0; }
  .team-finding.good { color:#9aebbd; border-color:rgba(74,222,128,.18); background:rgba(74,222,128,.055); }
  .team-finding.warn { color:#ffd08f; border-color:rgba(255,180,94,.19); background:rgba(255,180,94,.055); }
  .team-finding.bad { color:#ff9da8; border-color:rgba(255,77,94,.20); background:rgba(255,77,94,.055); }
  .team-finding.info { color:#cbc5e5; border-color:rgba(139,127,240,.18); background:rgba(139,127,240,.045); }
  .team-table-wrap { overflow:auto; max-height:390px; border:1px solid var(--border); border-radius:10px; }
  .team-table { width:100%; border-collapse:collapse; font-size:.69rem; }
  .team-table th,.team-table td { padding:7px 8px; border-bottom:1px solid rgba(167,159,201,.11); text-align:left; white-space:nowrap; }
  .team-table th { position:sticky; top:0; z-index:1; background:#17142a; color:var(--text-muted); text-transform:uppercase; font-size:.59rem; letter-spacing:.05em; }
  .team-table tr:last-child td { border-bottom:0; }
  .team-type-danger { color:#ff9da8; font-weight:800; }
  .team-type-warn { color:#ffc477; font-weight:800; }
  .team-type-good { color:#82e6ad; font-weight:800; }
  .team-matrix { min-width:650px; width:100%; border-collapse:collapse; font-size:.66rem; }
  .team-matrix th,.team-matrix td { border:1px solid rgba(167,159,201,.13); padding:7px; text-align:center; }
  .team-matrix th { background:#161329; color:var(--text-muted); font-size:.61rem; }
  .team-match-cell { border-radius:7px; padding:5px 3px; background:#101020; }
  .team-match-cell.good { background:rgba(74,222,128,.08); color:#9aebbd; }
  .team-match-cell.bad { background:rgba(255,77,94,.075); color:#ffadb5; }
  .team-match-cell.info { color:#cbc5e5; }
  .team-match-cell strong { display:block; font-family:var(--font-mono); font-size:.72rem; }
  .team-match-cell small { display:block; margin-top:2px; color:var(--text-muted); font-size:.56rem; }
  .team-export { margin-top:12px; border:1px solid var(--border); border-radius:13px; padding:12px; background:rgba(255,255,255,.018); }
  .team-export-head { display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
  .team-export textarea { width:100%; min-height:180px; resize:vertical; background:#0d0b19; color:#ddd8ee; border:1px solid var(--border); border-radius:10px; padding:10px; font:500 .7rem var(--font-mono); line-height:1.45; }
  .team-note { margin-top:10px; color:var(--text-muted); font-size:.68rem; line-height:1.5; }
  @media (max-width:1050px) { .team-overview { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  @media (max-width:900px) { .team-columns,.team-analysis-grid { grid-template-columns:1fr; } .team-analysis-box.wide { grid-column:auto; } }
  @media (max-width:620px) { .team-context { grid-template-columns:1fr; } .team-overview { grid-template-columns:1fr 1fr; } .team-member { grid-template-columns:54px 1fr; } .team-member-art { width:50px; height:50px; } }



  /* ==================== FASE 9 · UX, MOVIMIENTO Y PROFUNDIDAD 3D ==================== */
  :root { --phase9-cyan:#6ee7ff; --phase9-pink:#ff77c8; --phase9-gold:#ffd66e; }
  body.phase9-fx { overflow-x:hidden; }
  .phase9-particles { position:fixed; inset:0; pointer-events:none; z-index:-1; overflow:hidden; }
  .phase9-particle { position:absolute; width:var(--sz); height:var(--sz); left:var(--x); top:110%; border-radius:50%; opacity:.18; background:radial-gradient(circle at 35% 35%,#fff,rgba(139,127,240,.45) 35%,transparent 72%); filter:blur(.2px); animation:phase9Drift var(--dur) linear infinite; animation-delay:var(--delay); }
  @keyframes phase9Drift { from{ transform:translate3d(0,0,0) scale(.8); } 50%{ transform:translate3d(var(--dx),-55vh,0) scale(1.18); opacity:.32; } to{ transform:translate3d(calc(var(--dx) * -0.35),-125vh,0) scale(.7); opacity:0; } }
  @keyframes phase9Float { 0%,100%{transform:translateY(0) rotate(-.7deg)} 50%{transform:translateY(-7px) rotate(.7deg)} }
  @keyframes phase9Glow { 0%,100%{filter:drop-shadow(0 8px 14px rgba(0,0,0,.28))} 50%{filter:drop-shadow(0 12px 20px rgba(139,127,240,.35))} }
  @keyframes phase9MegaPulse { 0%,100%{box-shadow:0 0 0 0 rgba(255,214,110,.0)} 50%{box-shadow:0 0 0 7px rgba(255,214,110,.08)} }
  .pokemon-art,.builder-pokemon-art,.duel-poke-art,.team-member-art { animation:phase9Float 4.2s ease-in-out infinite,phase9Glow 4.2s ease-in-out infinite; transform-origin:50% 70%; will-change:transform; }
  .item-art { animation:phase9Float 3.5s ease-in-out infinite; filter:drop-shadow(0 10px 12px rgba(0,0,0,.35)); transform-style:preserve-3d; }
  .item-art-wrap { perspective:500px; transform-style:preserve-3d; box-shadow:inset 0 0 22px rgba(255,180,94,.05),0 12px 26px -18px #000; }
  .phase9-tilt { --rx:0deg; --ry:0deg; --tz:0px; transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateZ(var(--tz)); transform-style:preserve-3d; transition:transform .12s ease,box-shadow .18s ease; will-change:transform; }
  .phase9-tilt:hover { --tz:5px; box-shadow:0 24px 55px -30px rgba(0,0,0,.9),0 0 0 1px rgba(139,127,240,.12); }
  .phase9-tilt > * { transform-style:preserve-3d; }
  .phase9-tilt img { transform:translateZ(18px); }
  .app-tab { position:relative; overflow:hidden; }
  .app-tab::after { content:''; position:absolute; inset:auto -40% 0 -40%; height:1px; background:linear-gradient(90deg,transparent,var(--phase9-cyan),var(--phase9-pink),transparent); opacity:0; transform:translateX(-35%); transition:.2s ease; }
  .app-tab:hover::after,.app-tab[aria-selected="true"]::after { opacity:.8; transform:translateX(35%); }
  .phase9-live-tag { color:var(--phase9-cyan); border-color:rgba(110,231,255,.25); background:rgba(110,231,255,.055); }
  .phase9-direct-side { box-shadow:inset 0 0 50px rgba(99,144,240,.025); }
  .phase9-direct-editor { margin-top:11px; }
  .phase9-direct-editor > summary { color:#bcefff; }
  .phase9-quick-load { margin:8px 0 5px; }
  .phase9-mega-box { border-color:rgba(255,214,110,.22)!important; background:linear-gradient(135deg,rgba(255,214,110,.045),rgba(139,127,240,.035))!important; }
  .phase9-mega-zone { display:grid; gap:9px; }
  .phase9-mega-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(205px,1fr)); gap:9px; }
  .phase9-mega-option { position:relative; overflow:hidden; border:1px solid rgba(255,214,110,.20); border-radius:12px; padding:10px; background:rgba(255,214,110,.035); }
  .phase9-mega-option::before { content:''; position:absolute; inset:-60% auto auto -20%; width:80%; height:180%; transform:rotate(25deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent); pointer-events:none; }
  .phase9-mega-head { display:flex; align-items:center; gap:9px; }
  .phase9-mega-head img { width:58px; height:58px; object-fit:contain; animation:phase9Float 3.2s ease-in-out infinite; }
  .phase9-mega-name { font-weight:900; font-family:var(--font-display); }
  .phase9-mega-stone { color:var(--text-muted); font:700 .68rem var(--font-mono); margin-top:2px; }
  .phase9-deltas { display:flex; gap:5px; flex-wrap:wrap; margin-top:8px; }
  .phase9-delta { border:1px solid var(--border); border-radius:999px; padding:3px 6px; font:700 .61rem var(--font-mono); color:var(--text-muted); }
  .phase9-delta.up { color:#8ce9b5; border-color:rgba(74,222,128,.20); }
  .phase9-delta.down { color:#ff9eaa; border-color:rgba(255,77,94,.20); }
  .phase9-mega-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:9px; }
  .phase9-mega-btn { border:0; border-radius:9px; padding:7px 10px; font-weight:900; font-size:.72rem; color:#211b13; background:linear-gradient(135deg,#ffe59d,#ffb55e); }
  .phase9-mega-btn:disabled { opacity:.4; cursor:not-allowed; filter:grayscale(.4); }
  .phase9-mega-btn.force { color:#fff; background:linear-gradient(135deg,#8b7ff0,#d685ad); }
  .phase9-mega-active { border:1px solid rgba(255,214,110,.33); background:rgba(255,214,110,.065); border-radius:12px; padding:11px; animation:phase9MegaPulse 2.6s ease-in-out infinite; }
  .phase9-mega-active strong { color:#ffe59d; }
  .phase9-item-preview { display:inline-flex; align-items:center; gap:7px; }
  .phase9-item-preview img { width:30px; height:30px; object-fit:contain; animation:phase9Float 3.4s ease-in-out infinite; }
  .phase9-toast { position:fixed; right:18px; bottom:18px; z-index:100; max-width:min(390px,calc(100vw - 36px)); border:1px solid rgba(139,127,240,.35); background:rgba(16,14,32,.95); backdrop-filter:blur(14px); color:#eeeafc; border-radius:13px; padding:11px 13px; box-shadow:0 20px 55px -25px #000; font-size:.78rem; transform:translateY(20px); opacity:0; pointer-events:none; transition:.22s ease; }
  .phase9-toast.show { transform:translateY(0); opacity:1; }
  @media (max-width:620px){ .phase9-mega-options{grid-template-columns:1fr;} }
  @media (prefers-reduced-motion:reduce){ .pokemon-art,.builder-pokemon-art,.duel-poke-art,.team-member-art,.item-art,.phase9-mega-head img,.phase9-item-preview img,.phase9-particle{animation:none!important;} .phase9-tilt{transform:none!important;} }


  /* ---------- Fase 9.1: búsqueda inteligente + identidad DarkoWiki ---------- */
  .dw-brand { display:flex; align-items:center; justify-content:center; gap:13px; margin:0 auto 12px; width:max-content; max-width:100%; }
  .dw-logo { width:72px; height:72px; flex:0 0 72px; overflow:visible; filter:drop-shadow(0 12px 24px rgba(0,0,0,.35)); animation:dwLogoIdle 4.6s ease-in-out infinite; }
  .dw-wordmark { text-align:left; line-height:.92; letter-spacing:.02em; user-select:none; }
  .dw-wordmark span { display:block; color:#a79fc9; font:800 .67rem var(--font-mono); letter-spacing:.23em; }
  .dw-wordmark strong { display:block; margin-top:6px; font:900 1.24rem var(--font-display); letter-spacing:.035em; background:linear-gradient(90deg,#f4f2fb,#b7a9ff 56%,#ffba67); -webkit-background-clip:text; background-clip:text; color:transparent; }
  @keyframes dwLogoIdle { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-5px) rotate(1deg)} }
  .dw-logo-core { transform-origin:60px 60px; animation:dwCorePulse 3.4s ease-in-out infinite; }
  @keyframes dwCorePulse { 0%,100%{opacity:.78;transform:scale(.96)} 50%{opacity:1;transform:scale(1.05)} }

  .smart-search-host { position:relative; flex:1 1 260px; min-width:0; }
  .smart-search-host > input { width:100% !important; padding-right:46px !important; }
  .smart-search-toggle { position:absolute; z-index:6; right:7px; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:9px; border:1px solid transparent; background:rgba(139,127,240,.10); color:#c8c0ec; font-weight:900; line-height:1; padding:0; }
  .smart-search-toggle:hover,.smart-search-toggle[aria-expanded="true"] { color:#fff; border-color:rgba(139,127,240,.36); background:rgba(139,127,240,.22); }
  .smart-search-panel { position:absolute; z-index:80; left:0; right:0; top:calc(100% + 7px); background:rgba(16,14,32,.985); border:1px solid #443a70; border-radius:13px; box-shadow:0 24px 65px -25px #000; overflow:hidden; backdrop-filter:blur(18px); }
  .smart-search-panel[hidden] { display:none; }
  .smart-search-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 9px; border-bottom:1px solid rgba(167,159,201,.14); background:rgba(139,127,240,.06); }
  .smart-search-message { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#aaa2ca; font:700 .67rem var(--font-mono); }
  .smart-search-sort { display:flex; gap:5px; flex:0 0 auto; }
  .smart-search-sort button { border:1px solid #342e55; background:#151229; color:#9f97c1; border-radius:8px; padding:4px 7px; font:800 .62rem var(--font-mono); }
  .smart-search-sort button.active { color:#fff; border-color:#7164c5; background:rgba(139,127,240,.20); }
  .smart-search-list { max-height:310px; overflow:auto; padding:5px; scrollbar-width:thin; }
  .smart-search-option { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; text-align:left; border:1px solid transparent; background:transparent; color:#ece8f9; border-radius:9px; padding:8px 9px; }
  .smart-search-option:hover,.smart-search-option.active { background:rgba(139,127,240,.16); border-color:rgba(139,127,240,.28); transform:translateX(2px); }
  .smart-search-option strong { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:.8rem; }
  .smart-search-option small { display:block; margin-top:2px; color:#8f87ae; font:600 .64rem var(--font-mono); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .smart-search-id { color:#a89fd0; font:800 .64rem var(--font-mono); }
  .smart-search-empty { color:#9b93bb; padding:14px; text-align:center; font-size:.76rem; }
  .phase10-type-search { display:flex; gap:9px; align-items:center; margin:0 0 14px; }
  .phase10-type-search .smart-search-host { max-width:460px; }
  .phase10-type-input { background:#131126; color:var(--text); border:1px solid var(--border); border-radius:12px; padding:11px 14px; font:inherit; outline:none; }
  .phase10-type-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .phase10-type-hint { color:var(--text-muted); font-size:.74rem; }

  .builder-item-preview { display:grid; grid-template-columns:52px minmax(0,1fr); gap:10px; align-items:center; min-width:0; }
  .builder-item-preview-art { width:48px; height:48px; display:grid; place-items:center; border:1px solid rgba(255,180,94,.20); border-radius:11px; background:rgba(255,180,94,.055); }
  .builder-item-preview-art img { width:40px; height:40px; object-fit:contain; image-rendering:auto; animation:phase9Float 3.45s ease-in-out infinite; filter:drop-shadow(0 8px 8px rgba(0,0,0,.28)); }
  .builder-item-preview-copy { min-width:0; }

  .mini-badge,.builder-stat-pill,.duel-stat,.team-tag-mini,.item-chip,.ability-chip,.move-chip { transition:transform .16s ease,filter .16s ease,border-color .16s ease; }
  .mini-badge:hover,.builder-stat-pill:hover,.duel-stat:hover,.team-tag-mini:hover,.item-chip:hover,.ability-chip:hover,.move-chip:hover { transform:translateY(-2px) scale(1.025); filter:brightness(1.08); }
  .pokemon-art:nth-of-type(2n),.builder-pokemon-art:nth-of-type(2n),.duel-poke-art:nth-of-type(2n),.team-member-art:nth-of-type(2n) { animation-delay:-1.6s,-1.6s; }
  .smart-search-option:active,.app-tab:active,.builder-btn:active,.duel-btn:active,.team-btn:active { transform:translateY(1px) scale(.985); }

  @media (max-width:560px){ .dw-logo{width:60px;height:60px;flex-basis:60px}.dw-wordmark strong{font-size:1.05rem}.smart-search-list{max-height:260px}.phase10-type-search{align-items:flex-start;flex-direction:column}.phase10-type-search .smart-search-host{max-width:none;width:100%;} }
  @media (prefers-reduced-motion:reduce){ .dw-logo,.dw-logo-core,.builder-item-preview-art img{animation:none!important;} }


  /* ==================== FASE 9.3 · ESTABILIDAD, SPRITES ANIMADOS Y LEARNSETS ==================== */
  html { scrollbar-gutter:stable; }
  .stats-shell,.stats-table,.stat-edit-row { overflow-anchor:none; }
  .smart-search-list { scrollbar-gutter:stable; }
  .smart-search-option:hover,.smart-search-option.active { transform:none; }
  .smart-search-option:active { transform:none!important; }

  /* Cuando PokéAPI ofrece un GIF de batalla real, se usa antes que el artwork estático. */
  .dw-animated-sprite { image-rendering:pixelated; object-fit:contain; }
  .pokemon-art.dw-animated-sprite { width:132px; height:132px; }
  .builder-pokemon-art.dw-animated-sprite { image-rendering:pixelated; }
  .duel-poke-art.dw-animated-sprite,.team-member-art.dw-animated-sprite { image-rendering:pixelated; }
  .pokemon-form-option img.dw-animated-sprite,.phase9-mega-head img.dw-animated-sprite { image-rendering:pixelated; }
  .pokemon-motion-note { display:inline-flex; align-items:center; gap:5px; margin-top:6px; color:#9f97c1; font:700 .65rem var(--font-mono); }
  .pokemon-motion-note.live { color:#85e6ff; }

  .move-learn-shell { margin-top:13px; border:1px solid rgba(110,231,255,.18); border-radius:14px; padding:14px; background:linear-gradient(135deg,rgba(110,231,255,.045),rgba(139,127,240,.035)); }
  .move-learn-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
  .move-learn-head h4 { margin:0 0 4px; font-family:var(--font-display); font-size:1rem; }
  .move-learn-head p { margin:0; color:var(--text-muted); font-size:.78rem; max-width:760px; }
  .move-learn-count { border:1px solid rgba(110,231,255,.22); color:#aeefff; background:rgba(110,231,255,.055); border-radius:999px; padding:5px 9px; font:800 .66rem var(--font-mono); white-space:nowrap; }
  .move-current-compat { margin-top:10px; border:1px solid var(--border); border-radius:11px; padding:10px 11px; background:rgba(255,255,255,.022); font-size:.78rem; line-height:1.5; }
  .move-current-compat.good { border-color:rgba(74,222,128,.22); background:rgba(74,222,128,.05); color:#a1e9bf; }
  .move-current-compat.warn { border-color:rgba(255,180,94,.22); background:rgba(255,180,94,.05); color:#ffd09a; }
  .move-learn-controls { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:8px; margin-top:11px; }
  .move-learner-filter { width:100%; min-width:0; background:#100e20; color:var(--text); border:1px solid var(--border); border-radius:10px; padding:9px 10px; font:inherit; font-size:.78rem; outline:none; }
  .move-learner-filter:focus { border-color:var(--phase9-cyan); box-shadow:0 0 0 3px rgba(110,231,255,.09); }
  .move-learner-sort { display:flex; gap:5px; }
  .move-learner-sort button { border:1px solid var(--border); background:#121022; color:var(--text-muted); border-radius:9px; padding:7px 9px; font:800 .65rem var(--font-mono); }
  .move-learner-sort button.active { color:#fff; border-color:rgba(110,231,255,.35); background:rgba(110,231,255,.09); }
  .move-learner-list { max-height:270px; overflow:auto; scrollbar-gutter:stable; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:6px; margin-top:9px; padding:3px; }
  .move-learner-btn { display:flex; justify-content:space-between; gap:8px; align-items:center; min-width:0; border:1px solid var(--border); border-radius:9px; background:#111020; color:#dcd8ee; padding:8px 9px; text-align:left; font-size:.73rem; }
  .move-learner-btn:hover,.move-learner-btn.is-selected { border-color:rgba(110,231,255,.33); background:rgba(110,231,255,.07); }
  .move-learner-btn span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .move-learner-btn small { color:#8f87ae; font:700 .6rem var(--font-mono); }
  .move-method-result { margin-top:10px; border-top:1px dashed rgba(167,159,201,.16); padding-top:10px; }
  .move-method-title { font-weight:900; font-size:.82rem; margin-bottom:7px; }
  .move-method-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:7px; }
  .move-method-row { border:1px solid var(--border); background:rgba(255,255,255,.02); border-radius:9px; padding:8px 9px; min-width:0; }
  .move-method-row.oras { border-color:rgba(255,214,110,.28); background:rgba(255,214,110,.045); }
  .move-method-version { display:flex; justify-content:space-between; gap:8px; color:#ddd9ef; font-size:.7rem; font-weight:800; }
  .move-method-version small { color:#ffd66e; font:800 .58rem var(--font-mono); }
  .move-method-pills { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
  .move-method-pill { border:1px solid rgba(139,127,240,.22); color:#cfc8ef; background:rgba(139,127,240,.055); border-radius:999px; padding:4px 7px; font:700 .62rem var(--font-mono); }
  .move-method-pill.level { color:#8ce8b2; border-color:rgba(74,222,128,.22); background:rgba(74,222,128,.05); }
  .move-method-pill.machine { color:#91c9ff; border-color:rgba(145,201,255,.22); background:rgba(145,201,255,.05); }
  .move-method-pill.tutor { color:#ffd08f; border-color:rgba(255,180,94,.22); background:rgba(255,180,94,.05); }
  .move-method-pill.egg { color:#ffacd8; border-color:rgba(255,119,200,.22); background:rgba(255,119,200,.05); }
  .move-method-empty { color:var(--text-muted); font-size:.75rem; padding:5px 0; }
  .builder-learn-method { color:#aeefff; }
  @media (max-width:620px){ .move-learn-controls{grid-template-columns:1fr}.move-learner-sort{justify-content:flex-end}.move-learner-list{grid-template-columns:1fr 1fr}.pokemon-art.dw-animated-sprite{width:118px;height:118px;} }
  @media (max-width:430px){ .move-learner-list{grid-template-columns:1fr;} }




  /* ---------- Fase 9.9: analista local inteligente ---------- */
  .dw-local-brief { grid-column:1/-1; border:1px solid rgba(110,231,255,.22); background:linear-gradient(135deg,rgba(110,231,255,.055),rgba(139,127,240,.055)); border-radius:14px; padding:13px; }
  .dw-local-brief h4 { margin:0 0 10px; font-family:var(--font-display); font-size:.96rem; }
  .dw-local-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .dw-local-metric { border:1px solid var(--border); background:rgba(9,8,20,.42); border-radius:11px; padding:10px; min-width:0; }
  .dw-local-metric span { display:block; color:var(--text-muted); font:800 .65rem var(--font-mono); text-transform:uppercase; letter-spacing:.05em; }
  .dw-local-metric strong { display:block; margin-top:4px; font-size:.91rem; line-height:1.3; }
  .dw-risk-low strong { color:#8ce8b2; } .dw-risk-medium strong { color:#ffd08f; } .dw-risk-high strong,.dw-risk-critical strong { color:#ff9da8; }
  .dw-local-action { margin-top:9px; padding:10px 11px; border-radius:10px; border:1px solid rgba(139,127,240,.22); background:rgba(139,127,240,.055); color:#ddd8f2; font-size:.79rem; line-height:1.5; }
  .dw-local-action b { color:#fff; }
  .dw-answer-list { display:grid; gap:7px; }
  .dw-answer { display:grid; grid-template-columns:30px minmax(120px,.8fr) 1.5fr; gap:8px; align-items:center; padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:rgba(255,255,255,.02); font-size:.74rem; }
  .dw-answer-rank { width:28px; height:28px; border-radius:9px; display:grid; place-items:center; background:rgba(139,127,240,.12); border:1px solid rgba(139,127,240,.24); font:900 .72rem var(--font-mono); }
  .dw-answer-name { font-weight:900; color:#f1eefc; }
  .dw-answer-meta { color:var(--text-muted); line-height:1.4; }
  .dw-priority-list { display:grid; gap:7px; }
  .dw-priority-row { display:grid; grid-template-columns:34px 1fr; gap:9px; align-items:start; padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:rgba(255,255,255,.018); }
  .dw-priority-row.bad { border-color:rgba(255,77,94,.22); background:rgba(255,77,94,.045); }
  .dw-priority-row.warn { border-color:rgba(255,180,94,.22); background:rgba(255,180,94,.045); }
  .dw-priority-row.info { border-color:rgba(139,127,240,.20); background:rgba(139,127,240,.04); }
  .dw-priority-num { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; background:#111020; border:1px solid var(--border); font:900 .7rem var(--font-mono); }
  .dw-priority-title { font-weight:900; font-size:.78rem; }
  .dw-priority-text { color:var(--text-muted); font-size:.72rem; line-height:1.45; margin-top:2px; }
  @media(max-width:760px){ .dw-local-grid{grid-template-columns:1fr;} .dw-answer{grid-template-columns:30px 1fr;} .dw-answer-meta{grid-column:2;} }
  /* ---------- Fase 9.9: juego global, fuentes Wiki y análisis local inteligente ---------- */
  .dw-global-game {
    display:flex; align-items:center; justify-content:center; gap:9px; flex-wrap:wrap;
    max-width:900px; margin:18px auto 0; padding:10px 12px; border-radius:13px;
    border:1px solid rgba(139,127,240,.24); background:rgba(139,127,240,.055);
  }
  .dw-global-game label { font:800 .68rem var(--font-mono); text-transform:uppercase; letter-spacing:.06em; color:#cfc8f3; }
  .dw-global-game-select { max-width:min(100%,370px); background:#100e20; color:var(--text); border:1px solid var(--border); border-radius:9px; padding:8px 10px; font:700 .78rem var(--font-body); outline:none; }
  .dw-global-game-select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  #dwGlobalGameHint { color:var(--text-muted); font-size:.71rem; }
  .dw-history-panel { flex:1 1 100%; display:grid; gap:8px; padding-top:9px; border-top:1px solid rgba(139,127,240,.16); text-align:left; }
  .dw-history-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .dw-history-title { color:#f2efff; font-weight:900; font-size:.82rem; }
  .dw-history-rule { color:var(--text-muted); font-size:.72rem; line-height:1.45; margin-top:2px; }
  .dw-history-version { color:#a99eff; font:800 .64rem var(--font-mono); letter-spacing:.05em; }
  .dw-history-chips { display:flex; gap:6px; flex-wrap:wrap; }
  .dw-history-chip { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border); border-radius:999px; padding:5px 8px; background:#111020; color:#b9b5ca; font:750 .65rem var(--font-body); }
  .dw-history-chip.on { border-color:rgba(74,222,128,.24); color:#9ae8bc; background:rgba(74,222,128,.045); }
  .dw-history-chip.off { opacity:.62; text-decoration:line-through; }
  .dw-context-note { margin:10px 0; padding:10px 12px; border:1px solid var(--border); border-radius:11px; background:rgba(139,127,240,.045); color:var(--text-muted); font-size:.76rem; line-height:1.5; }
  .dw-context-note.good { border-color:rgba(74,222,128,.24); background:rgba(74,222,128,.045); color:#b9ebcc; }
  .dw-context-note.warn { border-color:rgba(255,180,94,.28); background:rgba(255,180,94,.055); color:#ffd0a2; }
  .dw-context-note.bad { border-color:rgba(255,77,94,.28); background:rgba(255,77,94,.055); color:#ffb1ba; }
  .dw-historical-category { display:inline-flex; align-items:center; gap:5px; margin-left:6px; padding:3px 7px; border-radius:999px; background:rgba(255,180,94,.10); border:1px solid rgba(255,180,94,.22); color:#ffd1a4; font-size:.65rem; font-weight:800; }
  .item-reference-card { margin:13px 0 0; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; border:1px solid rgba(99,144,240,.20); background:rgba(99,144,240,.045); border-radius:12px; padding:11px 12px; }
  .item-reference-copy { color:var(--text-muted); font-size:.78rem; line-height:1.45; flex:1 1 360px; }
  .item-reference-links { display:flex; gap:7px; flex-wrap:wrap; }
  .item-reference-link { display:inline-flex; align-items:center; gap:6px; text-decoration:none; border:1px solid var(--border); color:#d9d4ef; background:#111020; border-radius:999px; padding:7px 10px; font-size:.72rem; font-weight:800; }
  .item-reference-link:hover { border-color:var(--accent); color:#fff; transform:translateY(-1px); }
  .item-reference-link.wikidex { border-color:rgba(74,222,128,.22); color:#9ae8bc; }
  .item-reference-link.bulba { border-color:rgba(99,144,240,.25); color:#9fc8ff; }
  .item-art-wrap.wiki-art { border-color:rgba(99,144,240,.38); background:radial-gradient(circle at 50% 35%,rgba(99,144,240,.12),rgba(255,255,255,.025)); }
  .item-art-wrap.wiki-art .item-art { width:80px; height:80px; }
  .item-art-wrap.wiki-art .item-art-badge { background:rgba(18,24,34,.82); }
  .dw-analysis-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  @media (max-width:640px){ .dw-global-game{align-items:stretch;} .dw-global-game-select{width:100%;max-width:none;} .dw-history-panel{padding-top:10px;} .dw-analysis-actions{width:100%;} .dw-analysis-actions button{flex:1 1 180px;} }

  /* ---------- Fase 9.9: información desconocida + Modo Locke ---------- */
  .locke-toggle-field { border-color:rgba(255,77,94,.26); background:linear-gradient(135deg,rgba(255,77,94,.055),rgba(139,127,240,.045)); }
  .locke-switch { display:flex; align-items:center; gap:9px; cursor:pointer; color:#f5eef7; font-weight:900; font-size:.78rem; }
  .locke-switch input { width:18px; height:18px; accent-color:#ff4d5e; }
  .locke-speed-goal { align-self:center; color:#bcb6d3; font:800 .66rem var(--font-mono); }
  .unknown-data-note,.known-data-note { margin-top:7px; padding:7px 9px; border-radius:9px; font-size:.7rem; line-height:1.42; }
  .unknown-data-note { color:#ffd0a2; border:1px dashed rgba(255,180,94,.34); background:rgba(255,180,94,.055); }
  .known-data-note { color:#a9ebc4; border:1px solid rgba(74,222,128,.24); background:rgba(74,222,128,.045); }
  .unknown-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
  .unknown-actions .duel-btn { padding:6px 8px; font-size:.66rem; }
  .duel-stat.unknown { color:#ffd08f; border-color:rgba(255,180,94,.28); }
  .rival-intel-line { display:flex; flex-wrap:wrap; gap:5px; margin:8px 0 2px; }
  .rival-intel-line span { padding:4px 7px; border-radius:999px; font:800 .61rem var(--font-mono); }
  .rival-intel-line .known { color:#9ae8bc; border:1px solid rgba(74,222,128,.23); background:rgba(74,222,128,.05); }
  .rival-intel-line .unknown { color:#ffd0a2; border:1px dashed rgba(255,180,94,.31); background:rgba(255,180,94,.05); }
  .locke-discovery-panel { grid-column:1/-1; margin-top:11px; padding:12px; border:1px solid rgba(255,77,94,.22); border-radius:13px; background:linear-gradient(135deg,rgba(255,77,94,.045),rgba(12,10,25,.56)); }
  .locke-discovery-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; flex-wrap:wrap; }
  .locke-discovery-head h4 { margin:0; font-family:var(--font-display); }
  .locke-discovery-head p { margin:3px 0 0; color:var(--text-muted); font-size:.7rem; line-height:1.4; }
  .locke-discovery-log { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:7px; margin-top:10px; }
  .locke-discovery-entry { display:flex; gap:8px; align-items:center; border:1px solid var(--border); border-radius:10px; padding:8px 9px; background:rgba(255,255,255,.02); }
  .locke-discovery-icon { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; background:rgba(139,127,240,.10); }
  .locke-discovery-entry b,.locke-discovery-entry span { display:block; }
  .locke-discovery-entry b { color:#f1eefc; font-size:.7rem; }
  .locke-discovery-entry div span { margin-top:2px; color:var(--text-muted); font:700 .58rem var(--font-mono); }
  .locke-empty { grid-column:1/-1; color:var(--text-muted); padding:8px; font-size:.72rem; }
  .dw-local-brief.locke-active { border-color:rgba(255,77,94,.30); background:linear-gradient(135deg,rgba(255,77,94,.075),rgba(139,127,240,.06)); box-shadow:inset 3px 0 0 rgba(255,77,94,.5); }
  .locke-uncertainty-box { border-color:rgba(255,180,94,.25); background:linear-gradient(135deg,rgba(255,180,94,.035),rgba(139,127,240,.035)); }
  .locke-uncertainty-box > p { margin:0 0 10px; color:var(--text-muted); font-size:.74rem; line-height:1.5; }
  .locke-range-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:9px; }
  .locke-range-card { border:1px solid rgba(110,231,255,.20); background:rgba(110,231,255,.035); border-radius:11px; padding:10px; }
  .locke-range-card.danger { border-color:rgba(255,77,94,.24); background:rgba(255,77,94,.045); }
  .locke-range-card.unknown { border-style:dashed; border-color:rgba(255,180,94,.27); background:rgba(255,180,94,.035); }
  .locke-range-card span,.locke-range-card small { display:block; color:var(--text-muted); }
  .locke-range-card span { font:800 .63rem var(--font-mono); text-transform:uppercase; letter-spacing:.035em; }
  .locke-range-card strong { display:block; margin:5px 0 3px; color:#f8f5ff; font-size:1.08rem; }
  .locke-range-card small { font-size:.68rem; line-height:1.45; }
  @media(max-width:680px){.locke-range-grid{grid-template-columns:1fr}.locke-speed-goal{width:100%;text-align:center}.locke-discovery-log{grid-template-columns:1fr}.unknown-actions .duel-btn{flex:1 1 140px}}
