*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Black / White / Red / Gold / Grey palette */
  --bg:#0a0a0a; --bg2:#141414; --bg3:#050505; --bg-soft:#1a1a1a;
  --card:#181818; --card2:#0f0f0f; --card3:#222222;
  --line:rgba(255,255,255,.06); --line2:rgba(255,255,255,.12);
  --border:rgba(212,168,48,.24); --border2:rgba(212,168,48,.45);
  --glass:rgba(20,20,20,.55); --glass-strong:rgba(20,20,20,.85);
  --gold:#d4a830; --gold2:#f0ca50; --gold-dim:#8a6e1f; --gold-soft:rgba(212,168,48,.12);
  /* Red replaces blue as the primary UI accent */
  --accent:#d23949; --accent2:#ff5c6e; --accent-soft:rgba(210,57,73,.14);
  /* Official Tomy/Hasbro Beyblade type colors — preserved for canonical identity */
  --atk:#3094df; --atk2:#5ba6dc;
  --sta:#ec701b; --sta2:#f59c4f;
  --def:#1f9656; --def2:#3eaf6d;
  --bal:#d24349; --bal2:#e8696e;
  --text:#f5f5f5; --text-soft:#d8d8d8; --muted:#8a8a8a; --muted-2:#5e5e5e;
  --hot:#ff5630; --crim:#d92330;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 4px 16px rgba(0,0,0,.45);
  --shadow-lg:0 12px 40px rgba(0,0,0,.55);
  --radius-sm:8px; --radius-md:12px; --radius-lg:18px;
  --mono:'JetBrains Mono','Menlo','Consolas',monospace;
  --sans:'Inter','Segoe UI','SF Pro Display',system-ui,sans-serif;
  --display:'Inter','Segoe UI',system-ui,sans-serif;
}
html,body{height:100%; color-scheme:dark; overflow-x:hidden; max-width:100vw}
html,body{-webkit-text-size-adjust:100%}
*,*::before,*::after{max-width:100%}
body{
  font-family:var(--sans); background:var(--bg);
  background-image:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(210,57,73,0.05) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 100% 100%, rgba(212,168,48,0.04) 0%, transparent 65%);
  color:var(--text); min-height:100vh; line-height:1.5; font-size:14.5px;
  -webkit-font-smoothing:antialiased;
}

/* === HEADER === */
header{
  background:linear-gradient(180deg, rgba(7,13,24,0.6) 0%, var(--bg) 100%), var(--bg2);
  border-bottom:1px solid var(--line2); position:relative; overflow:hidden;
}
header::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, transparent 0%, rgba(212,168,48,.5) 30%, rgba(212,168,48,.5) 70%, transparent 100%);
}
.hero-row{display:flex; align-items:center; justify-content:space-between; max-width:1320px; margin:0 auto; padding:24px 28px; gap:32px; position:relative; z-index:2}
/* Decorative byyblade silhouettes */
.hero-deco{position:absolute; pointer-events:none; opacity:.07; filter:blur(0.5px); z-index:1}
.hero-deco.left{left:-50px; top:50%; transform:translateY(-50%) rotate(-8deg); width:200px; height:200px}
.hero-deco.right{right:-60px; top:50%; transform:translateY(-50%) rotate(15deg); width:220px; height:220px}
.hero-deco img{width:100%; height:100%; object-fit:contain; animation:slowspin 32s linear infinite}
.hero-deco.right img{animation:slowspin 40s linear infinite reverse}
@keyframes slowspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.hero-title h1{
  font-family:var(--display); font-size:2.1rem; letter-spacing:-.02em; line-height:1; font-weight:900;
  display:flex; align-items:center; gap:.18em;
}
.hero-title h1 .x{
  display:inline-grid; place-items:center;
  width:1.05em; height:1.05em;
  background:linear-gradient(135deg, var(--gold2), var(--gold-dim));
  color:#1a1000; border-radius:.18em;
  font-size:.85em; font-weight:900;
  box-shadow:0 4px 14px rgba(212,168,48,.4), inset 0 1px 0 rgba(255,255,255,.3);
  transform:rotate(-4deg);
}
.hero-title .sub{margin-top:8px; color:var(--muted); font-size:.7rem; letter-spacing:.32em; text-transform:uppercase; font-weight:600}
.hero-meta{display:flex; gap:10px; flex-wrap:wrap}
.hero-stat{
  background:var(--glass); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:10px 18px; min-width:84px; text-align:center;
  backdrop-filter:blur(8px);
  transition:transform .2s, border-color .2s;
}
.hero-stat:hover{transform:translateY(-2px); border-color:var(--border2)}
.hero-stat .n{font-family:var(--mono); font-size:1.5rem; font-weight:700; color:var(--gold2); line-height:1}
.hero-stat .l{font-size:.58rem; color:var(--muted); letter-spacing:.2em; text-transform:uppercase; margin-top:5px; font-weight:600}

/* === TAB NAV === */
.tabs{
  display:flex; justify-content:center; gap:4px;
  background:var(--bg2); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
  backdrop-filter:blur(12px);
}
.tab-btn{
  background:none; border:none; color:var(--muted); position:relative;
  padding:18px 26px; font-family:inherit; font-size:.74rem; font-weight:700;
  cursor:pointer; transition:color .18s; letter-spacing:.18em; text-transform:uppercase;
}
/* Adaptive tab labels: long form on wide screens, abbreviated on narrow */
.tab-btn .tab-short{display:none}
@media (max-width: 720px){
  .tab-btn .tab-full{display:none}
  .tab-btn .tab-short{display:inline}
}
.tab-btn:hover{color:var(--text-soft)}
.tab-btn.active{color:var(--gold2)}
.tab-btn::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:0; height:2px; background:var(--gold); border-radius:2px 2px 0 0;
  transition:width .25s ease;
}
.tab-btn.active::after{width:60%}

/* === PANES === */
.pane{display:none; max-width:1320px; margin:0 auto; padding:32px 28px}
.pane.active{display:block; animation:fadeUp .35s ease-out}
@keyframes fadeUp{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:translateY(0)}}
.pane-head{margin-bottom:24px}
.pane-head .lbl{font-size:.62rem; letter-spacing:.36em; text-transform:uppercase; color:var(--gold2); font-weight:700; opacity:.85}
.pane-head h2{font-family:var(--display); font-size:1.55rem; font-weight:800; margin-top:4px; letter-spacing:-.015em; line-height:1.2}
.pane-head .sub{font-size:.86rem; color:var(--muted); margin-top:6px; max-width:760px; line-height:1.55}

/* === PILLS === */
.pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 11px 4px 5px; border-radius:99px;
  font-size:.62rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  white-space:nowrap;
}
.pill img{width:15px; height:15px; flex-shrink:0; display:block}
.pill-Attack {background:rgba(48,148,223,.16);  color:#5cb0e6;  box-shadow:inset 0 0 0 1px rgba(48,148,223,.35)}
.pill-Defense{background:rgba(31,150,86,.16);   color:#52c08a;  box-shadow:inset 0 0 0 1px rgba(31,150,86,.35)}
.pill-Stamina{background:rgba(236,112,27,.16);  color:#f59c4f;  box-shadow:inset 0 0 0 1px rgba(236,112,27,.35)}
.pill-Balance{background:rgba(210,67,73,.16);   color:#e8696e;  box-shadow:inset 0 0 0 1px rgba(210,67,73,.35)}
.pill-Right, .pill-Left{padding:4px 11px}
.pill-Right{background:rgba(255,255,255,.04); color:var(--text-soft); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.pill-Left {background:rgba(180,139,255,.14); color:#c2a3ff; box-shadow:inset 0 0 0 1px rgba(180,139,255,.35)}

/* === GRADE BADGES — clean and confident === */
.grade{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:900;
  border-radius:var(--radius-sm); min-width:42px; height:42px; font-size:1.2rem;
  letter-spacing:-.02em;
}
.grade-S{background:linear-gradient(135deg,#9d6f10,#f0ca50 50%,#9d6f10); color:#1a1000; box-shadow:0 0 0 1px rgba(212,168,48,.5), 0 4px 18px rgba(212,168,48,.4)}
.grade-A{background:linear-gradient(135deg,#b82f3a,#e25865); color:#fff; box-shadow:0 0 0 1px rgba(230,57,70,.4), 0 4px 14px rgba(230,57,70,.3)}
.grade-B{background:linear-gradient(135deg,#aaaaaa,#e0e0e0); color:#1a1a1a; box-shadow:0 0 0 1px rgba(255,255,255,.30), 0 4px 14px rgba(255,255,255,.10)}
.grade-C{background:linear-gradient(135deg,#5a5a5a,#7a7a7a); color:#f5f5f5; box-shadow:0 0 0 1px rgba(255,255,255,.20)}
.grade-D{background:linear-gradient(135deg,#2a2a2a,#3a3a3a); color:#888888}
.grade-F{background:linear-gradient(135deg,#1a1a1a,#0a0a0a); color:var(--muted-2); box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}

/* === STAT BARS === */
.stat-block{display:flex; flex-direction:column; gap:10px}
.stat-row{display:flex; align-items:center; gap:12px}
.stat-lbl{width:52px; font-size:.62rem; text-transform:uppercase; letter-spacing:.18em; color:var(--muted); flex-shrink:0; font-weight:700}
.stat-num{width:36px; text-align:right; font-weight:700; font-size:.95rem; flex-shrink:0; font-family:var(--mono); color:var(--text)}
.stat-track{flex:1; height:8px; background:rgba(255,255,255,.04); border-radius:99px; overflow:hidden; position:relative}
.stat-track::after{content:""; position:absolute; inset:0; border-radius:99px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.03); pointer-events:none}
.stat-fill{height:100%; border-radius:99px; transition:width .7s cubic-bezier(.2,.9,.3,1.1); box-shadow:0 0 12px currentColor}
.sf-atk{background:linear-gradient(90deg,var(--atk),var(--atk2)); color:rgba(48,148,223,.4)}
.sf-def{background:linear-gradient(90deg,var(--def),var(--def2)); color:rgba(31,150,86,.4)}
.sf-sta{background:linear-gradient(90deg,var(--sta),var(--sta2)); color:rgba(236,112,27,.4)}
.sf-bur{background:linear-gradient(90deg,var(--gold),var(--gold2)); color:rgba(212,168,48,.4)}
.sf-dsh{background:linear-gradient(90deg,var(--hot),#ffaa6b); color:rgba(255,107,61,.4)}
.sf-mob{background:linear-gradient(90deg,var(--bal),var(--bal2)); color:rgba(210,67,73,.4)}
.sf-end{background:linear-gradient(90deg,var(--sta),var(--sta2)); color:rgba(236,112,27,.4)}
.sf-agg{background:linear-gradient(90deg,var(--atk),var(--hot)); color:rgba(48,148,223,.4)}
.sf-dur{background:linear-gradient(90deg,var(--def),var(--def2)); color:rgba(31,150,86,.4)}
.sf-bdf{background:linear-gradient(90deg,var(--gold),var(--gold2)); color:rgba(212,168,48,.4)}

/* === BUILDER (CENTERPIECE) — premium card layout === */
.builder-top{display:grid; grid-template-columns:1.35fr 1fr; gap:24px; margin-bottom:24px}
@media(max-width:1100px){.builder-top{grid-template-columns:1fr}}

.combo-hero{
  background:linear-gradient(165deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  position:relative; overflow:hidden;
  box-shadow:var(--shadow-md);
}
.combo-hero::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.combo-hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 60% 80% at 18% 22%, rgba(212,168,48,.06), transparent 60%);
}
.combo-stage{
  display:grid; grid-template-columns:auto 1fr; gap:30px;
  padding:28px 28px 24px; position:relative; z-index:1; align-items:center;
}
@media(max-width:640px){.combo-stage{grid-template-columns:1fr; gap:18px; text-align:center; padding:22px}}

.combo-blade-frame{
  width:230px; height:230px; flex-shrink:0;
  display:grid; place-items:center; position:relative;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(210,57,73,.10) 0%, transparent 65%),
    radial-gradient(circle at 50% 50%, transparent 78%, rgba(212,168,48,.10) 80%, transparent 82%);
}
@media(max-width:640px){.combo-blade-frame{width:200px; height:200px; margin:0 auto}}
.combo-blade-frame::before{
  content:""; position:absolute; inset:14px; border-radius:50%;
  border:1px dashed rgba(212,168,48,.18); pointer-events:none;
}
.combo-blade-frame::after{
  content:""; position:absolute; inset:-2px; border-radius:50%;
  background:conic-gradient(from 90deg, transparent, rgba(212,168,48,.22), transparent 25%);
  pointer-events:none; opacity:.6;
}
.combo-blade-frame img.spinning{
  width:188px; height:188px; object-fit:contain;
  animation:bspin 7s linear infinite;
  filter:drop-shadow(0 14px 32px rgba(0,0,0,.65)) drop-shadow(0 0 16px rgba(210,57,73,.18));
  transform-origin:center center; position:relative; z-index:2;
}
@media(max-width:640px){.combo-blade-frame img.spinning{width:160px; height:160px}}
.combo-blade-frame img.fallback{outline:2px dashed rgba(212,168,48,.4); outline-offset:10px}
@keyframes bspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

.combo-info{min-width:0; position:relative}
.combo-grade-row{display:flex; align-items:flex-start; gap:18px; margin-bottom:14px}
.combo-grade-row .grade{font-size:1.85rem; min-width:68px; height:68px; flex-shrink:0}
.combo-grade-row > div:not(.grade){flex:1; min-width:0}
.combo-name{
  font-family:var(--display); font-size:1.7rem; font-weight:800;
  line-height:1.18; word-wrap:break-word; letter-spacing:-.015em; color:var(--text);
}
@media(max-width:640px){.combo-name{font-size:1.4rem}}
.combo-archetype{
  font-size:.7rem; color:var(--gold2); margin-top:8px;
  font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:8px;
}
.combo-archetype::before{content:"◆"; opacity:.55; font-size:.72em}
.combo-meta{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; align-items:center}
.combo-class{
  font-family:var(--mono); font-size:.72rem; color:var(--muted);
  margin-top:14px; line-height:1.7; padding:10px 14px;
  background:rgba(0,0,0,.20); border-left:2px solid var(--border);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
/* Action button row inside combo info */
.combo-stage .row{
  margin-top:18px !important; padding-top:16px;
  border-top:1px solid var(--line);
}

/* === COMBO ACTION ROWS === */
.combo-actions{
  margin-top:18px; padding-top:16px;
  border-top:1px solid var(--line);
  display:flex; flex-direction:column; gap:10px;
}
.combo-actions-primary{
  display:flex; gap:8px; flex-wrap:wrap;
}
.combo-actions-primary .battle-btn{padding:9px 14px; font-size:.66rem}
.combo-actions-tools{
  display:flex; gap:6px; flex-wrap:wrap; align-items:center;
  padding-top:6px; border-top:1px dashed rgba(255,255,255,.04);
}
.icon-btn{
  width:36px; height:36px; padding:0;
  display:grid; place-items:center;
  background:rgba(0,0,0,.30); color:var(--text);
  border:1px solid var(--line2); border-radius:50%;
  cursor:pointer; font-size:1rem; line-height:1;
  transition:all .15s;
  position:relative;
}
.icon-btn:hover{
  border-color:var(--gold); background:rgba(212,168,48,.10);
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(212,168,48,.15);
}
.icon-btn:active{transform:translateY(0)}
.icon-btn:focus-visible{outline:2px solid var(--gold); outline-offset:2px}

/* Compact Blade Stats strip inside combo-info */
.blade-stats-strip{
  margin-top:14px; padding:12px 14px;
  background:rgba(0,0,0,.20); border:1px solid var(--line);
  border-radius:var(--radius-md);
  display:flex; flex-direction:column; gap:8px;
}
.blade-stats-strip .bss-head{
  font-size:.58rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold2); font-weight:700; opacity:.92;
  display:flex; align-items:center; justify-content:space-between; gap:8px;
}
.blade-stats-strip .bss-tag{
  font-size:.52rem; letter-spacing:.16em; color:var(--muted-2);
  font-weight:600; font-family:var(--mono); padding:2px 7px;
  background:rgba(0,0,0,.30); border-radius:99px;
  box-shadow:inset 0 0 0 1px var(--line);
}
.stat-block-compact{gap:6px}
.stat-block-compact .stat-row{gap:10px}
.stat-block-compact .stat-lbl{width:38px; font-size:.56rem}
.stat-block-compact .stat-num{width:30px; font-size:.82rem}
.stat-block-compact .stat-track{height:6px}

/* Sub-scores card */
.subscore-grid{
  background:linear-gradient(165deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:24px; box-shadow:var(--shadow-md);
  display:flex; flex-direction:column; gap:18px;
}
.subscore-grid .readout{flex:1; min-height:140px}
.subscore-grid h3{
  font-size:.66rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold2); margin:0; font-weight:700; opacity:.92;
  display:flex; align-items:center; gap:10px;
}
.subscore-grid h3::before{
  content:""; width:14px; height:1px; background:var(--gold);
}
.subscore-grid h3 .h3-tag{
  font-size:.55rem; letter-spacing:.18em; color:var(--muted-2);
  font-weight:600; text-transform:uppercase; margin-left:auto;
  font-family:var(--mono); padding:2px 8px;
  background:rgba(0,0,0,.25); border-radius:99px;
  box-shadow:inset 0 0 0 1px var(--line);
}
.subscore-grid h3{justify-content:flex-start}
.subscore-grid h3:has(.h3-tag){display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px}

/* Pickers row sits inside combo-hero, below the stage */
.picker-row{
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:14px;
  padding:0 24px 24px;
}
.picker-row > .picker-cell{min-width:0}
@media(max-width:780px){.picker-row{grid-template-columns:1fr}}
.picker-cell{
  background:rgba(0,0,0,.22); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:14px; display:flex; flex-direction:column; gap:10px;
  transition:border-color .2s, box-shadow .2s;
}
.picker-cell:hover{border-color:var(--border); box-shadow:var(--shadow-sm)}
.picker-cell .lbl{
  font-size:.58rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--muted); font-weight:700;
  display:flex; align-items:center; gap:8px;
}
.picker-cell .lbl::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--gold); opacity:.6;
}
.picker-cell select{
  background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); padding:11px 14px;
  border-radius:var(--radius-sm); font-family:var(--mono); font-size:.78rem;
  cursor:pointer; min-height:42px; color-scheme:dark;
  transition:border-color .15s, box-shadow .15s;
}
.picker-cell select:hover{border-color:var(--border)}
.picker-cell select:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,168,48,.12)}
select option{background-color:#0a1422 !important; color:#eef3fb !important; padding:8px}
.picker-cell .img-mini{
  height:78px; display:grid; place-items:center; overflow:hidden;
  background:rgba(0,0,0,.15); border-radius:var(--radius-sm);
}
.picker-cell .img-mini img{max-height:68px; max-width:100%; object-fit:contain; display:block; filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}

/* === RICH PICKER (custom dropdown with thumbnails) === */
.rich-picker-wrap{position:relative; min-width:0}
.rich-picker-wrap select{display:none !important}
.rich-picker-trigger{
  width:100%; min-height:46px; padding:6px 34px 6px 8px;
  background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:var(--radius-sm);
  cursor:pointer; font-family:var(--display); font-size:.78rem;
  display:flex; align-items:center; gap:9px;
  text-align:left; position:relative;
  transition:border-color .15s, box-shadow .15s;
}
.rich-picker-trigger:hover{border-color:var(--border)}
.rich-picker-trigger:focus,.rich-picker-trigger.open{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,168,48,.12)}
.rich-picker-trigger .rp-thumb{
  width:34px; height:34px; flex-shrink:0;
  background:rgba(0,0,0,.30); border-radius:6px;
  display:grid; place-items:center; overflow:hidden;
}
.rich-picker-trigger .rp-thumb img{max-width:30px; max-height:30px; object-fit:contain; filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
.rich-picker-trigger .rp-body{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.rich-picker-trigger .rp-name{font-weight:700; font-size:.76rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--text); letter-spacing:.01em}
.rich-picker-trigger .rp-meta{font-family:var(--mono); font-size:.56rem; color:var(--muted); letter-spacing:.06em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.rich-picker-trigger .rp-meta .rp-tag{
  display:inline-block; padding:1px 5px; margin-right:4px;
  font-size:.92em; border-radius:3px; line-height:1.4;
}
.rich-picker-trigger .rp-meta .rp-tag.atk{background:rgba(48,148,223,.20); color:#7cc5ff}
.rich-picker-trigger .rp-meta .rp-tag.def{background:rgba(31,150,86,.20); color:#5dd49a}
.rich-picker-trigger .rp-meta .rp-tag.sta{background:rgba(236,112,27,.20); color:#ffac6a}
.rich-picker-trigger .rp-meta .rp-tag.bal{background:rgba(210,67,73,.20); color:#ff8a90}
.rich-picker-trigger .rp-chev{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  color:var(--muted); font-size:.7rem; pointer-events:none;
  transition:transform .2s;
}
.rich-picker-trigger.open .rp-chev{transform:translateY(-50%) rotate(180deg); color:var(--gold2)}

.rich-picker-pop{
  position:fixed;
  /* top, left, width set by JS */
  background:linear-gradient(180deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line2); border-radius:var(--radius-md);
  box-shadow:0 18px 48px rgba(0,0,0,.7), 0 0 0 1px rgba(212,168,48,.10);
  z-index:9999; max-height:420px; display:flex; flex-direction:column;
  animation:rpFadeIn .14s ease-out;
}
@keyframes rpFadeIn{from{opacity:0; transform:translateY(-4px)}to{opacity:1; transform:translateY(0)}}
.rich-picker-pop .rp-search{
  width:100%; padding:10px 12px;
  background:rgba(0,0,0,.30); color:var(--text);
  border:none; border-bottom:1px solid var(--line);
  font-family:var(--mono); font-size:.74rem; letter-spacing:.04em;
  border-radius:var(--radius-md) var(--radius-md) 0 0;
  outline:none; color-scheme:dark;
}
.rich-picker-pop .rp-search:focus{background:rgba(0,0,0,.45); box-shadow:inset 0 -2px 0 var(--gold)}
.rich-picker-pop .rp-search::placeholder{color:var(--muted-2); letter-spacing:.06em}
.rich-picker-pop .rp-list{flex:1; overflow-y:auto; padding:4px}
.rich-picker-pop .rp-list::-webkit-scrollbar{width:8px}
.rich-picker-pop .rp-list::-webkit-scrollbar-track{background:rgba(0,0,0,.20)}
.rich-picker-pop .rp-list::-webkit-scrollbar-thumb{background:var(--line2); border-radius:4px}
.rich-picker-pop .rp-row{
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; border-radius:var(--radius-sm);
  cursor:pointer; transition:background .12s;
}
.rich-picker-pop .rp-row:hover,.rich-picker-pop .rp-row.selected{background:rgba(212,168,48,.10)}
.rich-picker-pop .rp-row.active{background:rgba(210,57,73,.16); box-shadow:inset 0 0 0 1px rgba(210,57,73,.35)}
.rich-picker-pop .rp-row.hl{background:rgba(212,168,48,.20); box-shadow:inset 0 0 0 1px rgba(212,168,48,.50)}
.rich-picker-pop .rp-row.hl.active{background:linear-gradient(90deg, rgba(210,57,73,.18), rgba(212,168,48,.20))}
.rich-picker-pop .rp-row .rp-thumb{
  width:42px; height:42px; flex-shrink:0;
  background:rgba(0,0,0,.30); border-radius:6px;
  display:grid; place-items:center; overflow:hidden;
}
.rich-picker-pop .rp-row .rp-thumb img{max-width:38px; max-height:38px; object-fit:contain}
.rich-picker-pop .rp-row .rp-body{flex:1; min-width:0; display:flex; flex-direction:column; gap:3px}
.rich-picker-pop .rp-row .rp-name{font-weight:700; font-size:.78rem; color:var(--text); letter-spacing:.005em}
.rich-picker-pop .rp-row .rp-meta{font-family:var(--mono); font-size:.6rem; color:var(--muted); letter-spacing:.06em; display:flex; gap:6px; flex-wrap:wrap; align-items:center}
.rich-picker-pop .rp-empty{padding:24px 16px; text-align:center; color:var(--muted-2); font-family:var(--mono); font-size:.7rem}

/* Toast for share-link copy */
.toast{
  position:fixed; bottom:30px; left:50%; transform:translateX(-50%) translateY(100px);
  background:linear-gradient(135deg, var(--card) 0%, var(--card2) 100%);
  color:var(--text); padding:14px 22px; border-radius:99px;
  border:1px solid var(--gold); box-shadow:0 8px 32px rgba(0,0,0,.6), 0 0 0 1px rgba(212,168,48,.2);
  font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase;
  z-index:10001; opacity:0; pointer-events:none;
  transition:transform .3s cubic-bezier(.2,.9,.3,1.1), opacity .25s;
  display:flex; align-items:center; gap:10px;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}
.toast .toast-icon{color:var(--gold2); font-size:.9rem}

/* === Analyzer panels === */
.analyzer-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px}
@media(max-width:980px){.analyzer-grid{grid-template-columns:1fr}}
.panel{
  background:linear-gradient(165deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:22px; box-shadow:var(--shadow-md);
  position:relative;
}
.panel h3{
  font-size:.66rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold2); font-weight:700; margin-bottom:18px; opacity:.92;
  display:flex; align-items:center; gap:10px;
}
.panel h3::before{
  content:""; width:14px; height:1px; background:var(--gold);
}
.panel .item{
  padding:14px 16px; background:rgba(0,0,0,.22);
  border:1px solid var(--line); border-radius:var(--radius-md);
  margin-bottom:10px; line-height:1.55;
  position:relative; overflow:hidden;
  transition:border-color .15s, transform .15s;
}
.panel .item:hover{border-color:var(--line2)}
.panel .item::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--line2);
}
.panel .item.atk::before{background:linear-gradient(180deg,var(--atk),var(--atk2))}
.panel .item.def::before{background:linear-gradient(180deg,var(--def),var(--def2))}
.panel .item.sta::before{background:linear-gradient(180deg,var(--sta),var(--sta2))}
.panel .item.bal::before{background:linear-gradient(180deg,var(--bal),var(--bal2))}
.panel .item.gold::before{background:linear-gradient(180deg,var(--gold),var(--gold2))}
.panel .item.bad::before{background:linear-gradient(180deg,#9c3340,var(--crim))}
.panel .item .ttl{font-weight:700; color:var(--text); margin-bottom:5px; font-size:.92rem; letter-spacing:.005em}
.panel .item .desc{color:var(--muted); font-size:.78rem; line-height:1.6}

.suggestion-row{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px; margin-top:10px}
@media(max-width:780px){.suggestion-row{grid-template-columns:1fr}}
.sug-card{
  padding:18px; background:rgba(0,0,0,.22);
  border:1px solid var(--line); border-radius:var(--radius-md);
  cursor:pointer; transition:all .2s; position:relative; overflow:hidden;
}
.sug-card::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(135deg, transparent 70%, rgba(212,168,48,.05));
}
.sug-card:hover{
  border-color:var(--gold); transform:translateY(-3px);
  box-shadow:0 8px 22px rgba(0,0,0,.4), 0 0 0 1px rgba(212,168,48,.2);
}
.sug-card .slot{font-size:.56rem; letter-spacing:.26em; color:var(--gold2); text-transform:uppercase; font-weight:700; margin-bottom:10px; opacity:.85}
.sug-card .delta{
  font-family:var(--display); font-weight:800; font-size:1.85rem; color:#52c08a;
  margin:8px 0; line-height:1; letter-spacing:-.02em;
}
.sug-card .delta.neg{color:#e8696e}
.sug-card .swap-from{font-size:.72rem; color:var(--muted-2); text-decoration:line-through; margin-top:6px}
.sug-card .swap-to{font-size:.95rem; font-weight:800; color:var(--text); margin-top:2px; display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.sug-card .swap-to .sug-thumb{
  width:36px; height:36px; flex-shrink:0;
  background:rgba(0,0,0,.30); border-radius:6px;
  padding:3px; object-fit:contain;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));
}
.sug-card .swap-to .swap-to-name{flex-shrink:0}
.sug-card .reason{font-size:.72rem; color:var(--muted); margin-top:10px; line-height:1.55}

/* Suggestion v2 — extra card content */
.sug-card.sug-v2{padding:18px}
.sug-card-head{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; flex-wrap:wrap}
.sug-card-head .slot{margin:0}
.sug-tag{
  font-family:var(--mono); font-size:.54rem; letter-spacing:.16em; font-weight:700;
  padding:3px 8px; border-radius:99px; text-transform:uppercase;
  flex-shrink:0;
}
.sug-tag.sug-tag-top{
  background:linear-gradient(135deg, #9d6f10, #f0ca50 50%, #9d6f10);
  color:#1a1000;
  box-shadow:0 0 0 1px rgba(212,168,48,.4), 0 2px 8px rgba(212,168,48,.20);
}
.sug-tag.sug-tag-alt{
  background:rgba(255,255,255,.06); color:var(--muted);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
}
.sug-tag.sug-tag-dual{
  background:rgba(210,57,73,.18); color:var(--accent2);
  box-shadow:inset 0 0 0 1px rgba(210,57,73,.40);
}
/* Trade-off chips — secondary tag showing whether a suggestion is grade-focused or WR-focused */
.sug-tag.sug-tag-wr{
  background:rgba(82,192,138,.16); color:#7fd9a8;
  box-shadow:inset 0 0 0 1px rgba(82,192,138,.40);
}
.sug-tag.sug-tag-build{
  background:rgba(48,148,223,.16); color:var(--atk2);
  box-shadow:inset 0 0 0 1px rgba(48,148,223,.40);
}
.sug-subtag{
  display:inline-block; margin-left:8px;
  font-family:var(--mono); font-size:.6rem; letter-spacing:.06em; font-weight:600;
  color:var(--muted); padding:1px 7px; border-radius:99px;
  background:rgba(0,0,0,.30); vertical-align:middle;
}
.sug-card .sug-grade-row{
  display:flex; align-items:center; gap:8px; margin:6px 0 10px;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; color:var(--muted);
}
.sug-card .sug-grade-row .gb, .sug-card .sug-grade-row .gn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:900;
  width:28px; height:28px; border-radius:6px; font-size:.84rem;
}
.sug-card .sug-grade-row .arrow{color:var(--gold2); margin:0 2px; font-weight:800}
.sug-card .sug-grade-row .scoreline{font-size:.62rem; color:var(--muted-2); margin-left:6px}
.sug-card .sug-grade-row.sug-grade-same{padding:6px 10px; background:rgba(0,0,0,.20); border-radius:99px; align-self:flex-start}
.sug-card .sug-grade-row.sug-grade-same .scoreline{margin-left:0; font-size:.66rem; color:var(--muted)}
.sug-card .sug-stat-strip{
  display:flex; flex-direction:column; gap:4px; margin-top:12px;
  padding:8px 10px; background:rgba(0,0,0,.22);
  border-radius:var(--radius-sm);
}
.sug-card .sug-stat-strip .sst-row{
  display:grid; grid-template-columns:32px 1fr 36px; gap:8px; align-items:center;
  font-family:var(--mono); font-size:.56rem; letter-spacing:.06em;
}
.sug-card .sug-stat-strip .sst-lbl{color:var(--muted); text-transform:uppercase; font-weight:700}
.sug-card .sug-stat-strip .sst-bar{height:4px; background:rgba(255,255,255,.04); border-radius:99px; position:relative; overflow:hidden}
.sug-card .sug-stat-strip .sst-fill{position:absolute; top:0; height:100%; border-radius:99px}
.sug-card .sug-stat-strip .sst-fill.pos{background:linear-gradient(90deg, #52c08a, #88e0b3); left:50%}
.sug-card .sug-stat-strip .sst-fill.neg{background:linear-gradient(90deg, #ff8a90, #e8696e); right:50%}
.sug-card .sug-stat-strip .sst-delta{text-align:right; font-weight:700; font-size:.62rem}
.sug-card .sug-stat-strip .sst-delta.pos{color:#52c08a}
.sug-card .sug-stat-strip .sst-delta.neg{color:#ff8a90}

/* Suggestion mode toggle */
.sug-mode-row{
  display:flex; align-items:center; gap:8px; margin:10px 0 14px;
  flex-wrap:wrap; padding:8px 12px;
  background:rgba(0,0,0,.22); border:1px solid var(--line); border-radius:99px;
}
.sug-mode-row .sug-mode-lbl{
  font-size:.6rem; letter-spacing:.22em; color:var(--muted-2);
  text-transform:uppercase; font-weight:700; margin-right:4px;
}
.sug-mode-btn{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:6px 14px; border-radius:99px; cursor:pointer;
  font-family:var(--mono); font-size:.62rem; letter-spacing:.08em;
  text-transform:uppercase; font-weight:700;
  transition:all .15s;
}
.sug-mode-btn:hover{color:var(--text); border-color:var(--border)}
.sug-mode-btn.active{
  background:linear-gradient(135deg, rgba(212,168,48,.18), rgba(212,168,48,.06));
  color:var(--gold2); border-color:var(--gold);
}
.sug-dual-toggle{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  font-family:var(--mono); font-size:.62rem; letter-spacing:.08em;
  color:var(--muted); margin-left:auto;
}
.sug-dual-toggle input{accent-color:var(--gold); width:14px; height:14px}
.sug-dual-toggle:hover{color:var(--text)}

/* Counters list */
.counter-list{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px}
.counter-card{
  padding:14px; background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius-md);
  cursor:pointer; transition:all .2s; display:flex; gap:12px; align-items:center;
  box-shadow:var(--shadow-sm);
}
html[data-theme="light"] .counter-card{background:var(--card2)}
.counter-card:hover{border-color:var(--bal); transform:translateY(-2px); box-shadow:var(--shadow-sm)}
.counter-card .img-thumb{
  width:54px; height:54px; flex-shrink:0; background:rgba(0,0,0,.3);
  border-radius:var(--radius-sm); padding:4px; display:grid; place-items:center;
}
.counter-card .img-thumb img{max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.counter-card .info{flex:1; min-width:0}
.counter-card .nm{font-size:.82rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--text)}
.counter-card .wr{font-family:var(--display); font-size:1.15rem; font-weight:800; color:#e8696e; line-height:1; letter-spacing:-.02em}
.counter-card .reason{font-size:.68rem; color:var(--muted); margin-top:4px; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
@media (max-width: 720px){
  .counter-card .reason{white-space:normal; overflow:visible; text-overflow:clip}
  .counter-card .nm{white-space:normal}
}

/* Mechanic readout */
.readout{
  font-family:var(--mono); font-size:.78rem; line-height:1.65;
  background:rgba(0,0,0,.32); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:16px;
  min-height:140px; white-space:pre-wrap; word-break:break-word; color:var(--text-soft);
}
.readout .hl{color:var(--gold2); font-weight:700}
.readout .ok{color:#52c08a}
.readout .a{color:var(--accent2)}
.readout .b{color:#e8696e}

/* === BATTLE LAB — premium combatant cards === */
.battle-grid{display:grid; grid-template-columns:1fr auto 1fr; gap:22px; align-items:stretch}
@media(max-width:980px){.battle-grid{grid-template-columns:1fr}}
.combatant{
  background:linear-gradient(165deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:20px; position:relative; overflow:hidden;
  box-shadow:var(--shadow-md);
  transition:border-color .2s;
}
.combatant::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
}
.combatant[data-side="A"]::before{background:linear-gradient(90deg, transparent, var(--accent), transparent)}
.combatant[data-side="B"]::before{background:linear-gradient(90deg, transparent, var(--atk), transparent)}
.combatant .side-tag{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--mono); font-weight:800; font-size:.66rem;
  letter-spacing:.22em; text-transform:uppercase;
  padding:5px 12px; border-radius:99px;
}
.combatant[data-side="A"] .side-tag{background:rgba(210,57,73,.14); color:var(--accent2); box-shadow:inset 0 0 0 1px rgba(210,57,73,.4)}
.combatant[data-side="B"] .side-tag{background:rgba(48,148,223,.14); color:var(--atk2); box-shadow:inset 0 0 0 1px rgba(48,148,223,.4)}
.combatant .name-row{margin:10px 0 16px}
.combatant .name-row .nm{font-size:1.1rem; font-weight:800; color:var(--text); letter-spacing:-.005em}
.combatant .name-row .meta{font-family:var(--mono); font-size:.7rem; color:var(--muted); margin-top:5px; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.combatant .stack{
  display:flex; flex-direction:column; align-items:center; gap:0;
  height:300px; justify-content:center; position:relative;
  background:radial-gradient(circle at 50% 50%, rgba(212,168,48,.08), transparent 70%);
  border:1px dashed var(--line2); border-radius:var(--radius-md);
  padding:14px; margin-bottom:16px;
}
.combatant .stack img{filter:drop-shadow(0 8px 18px rgba(0,0,0,.55))}
.combatant .stack img.blade{height:150px; animation:bspin 7s linear infinite; transform-origin:center}
.combatant .stack img.ratchet{height:56px; margin-top:-10px; opacity:.92}
.combatant .stack img.bit{height:56px; margin-top:-4px; opacity:.92}
.combatant .stack img.fallback{outline:2px dashed rgba(212,168,48,.5); outline-offset:4px}
.combatant .pickers{display:flex; flex-direction:column; gap:8px}
.combatant select{
  background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  padding:10px 12px; border-radius:var(--radius-sm);
  font-family:var(--mono); font-size:.75rem; min-height:38px;
  cursor:pointer; transition:border-color .15s;
}
.combatant select:hover{border-color:var(--border)}
.combatant select:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,168,48,.12)}
.combatant .total-mass{
  margin-top:12px; padding:10px 14px;
  background:rgba(0,0,0,.25); border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-family:var(--mono); font-size:.72rem; color:var(--muted);
  display:flex; justify-content:space-between; align-items:center;
}
.combatant .total-mass b{color:var(--gold2); font-size:.95rem}

.vs-col{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:0 6px}
@media(max-width:980px){.vs-col{flex-direction:row; padding:14px 0; flex-wrap:wrap; justify-content:center}}
.vs-badge{
  font-family:var(--display); font-weight:900; font-size:54px;
  letter-spacing:-.04em; line-height:1;
  background:linear-gradient(180deg,var(--gold2) 0%, var(--gold) 50%, #b8862c 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  filter:drop-shadow(0 0 24px rgba(212,168,48,.4));
  animation:vsThrob 2.6s ease-in-out infinite;
}
@keyframes vsThrob{0%,100%{transform:scale(1);filter:brightness(1) drop-shadow(0 0 18px rgba(212,168,48,.3))}50%{transform:scale(1.08);filter:brightness(1.25) drop-shadow(0 0 30px rgba(212,168,48,.55))}}

/* Battle button — refined */
.battle-btn{
  background:linear-gradient(180deg,#dc3848,#a72836); color:#fff; border:none;
  padding:14px 22px; border-radius:var(--radius-md);
  font-family:var(--sans); font-size:.7rem; letter-spacing:.22em;
  font-weight:800; text-transform:uppercase; cursor:pointer;
  box-shadow:0 6px 18px rgba(220,56,72,.35), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .1s, box-shadow .2s; white-space:nowrap;
}
.battle-btn:hover{transform:translateY(-2px); box-shadow:0 10px 26px rgba(220,56,72,.5), inset 0 1px 0 rgba(255,255,255,.2)}
.battle-btn:active{transform:translateY(0)}
.battle-btn.gold{
  background:transparent; color:var(--gold2);
  box-shadow:inset 0 0 0 1px var(--border2);
  font-weight:700;
}
.battle-btn.gold:hover{
  background:rgba(212,168,48,.10); color:var(--gold2);
  box-shadow:inset 0 0 0 1px var(--gold), 0 4px 14px rgba(212,168,48,.18);
}
.battle-btn.ghost{
  background:transparent; color:var(--muted);
  box-shadow:inset 0 0 0 1px var(--line2);
  padding:9px 16px; font-size:.62rem;
}
.battle-btn.ghost:hover{color:var(--text); box-shadow:inset 0 0 0 1px var(--border); background:rgba(255,255,255,.02)}

/* === BATTLE RESULT === */
.result-row{display:grid; grid-template-columns:1.15fr 1fr 1.15fr; gap:20px; margin-top:24px}
@media(max-width:1100px){.result-row{grid-template-columns:1fr}}
.winrates{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:18px; gap:16px}
.wr{flex:1}
.wr .num{
  font-family:var(--display); font-size:48px; font-weight:800; line-height:1;
  letter-spacing:-.03em; transition:color .25s;
}
.wr .num small{font-size:20px; color:var(--muted); font-weight:500; letter-spacing:0}
.wr .lbl{font-size:.6rem; letter-spacing:.22em; color:var(--muted); margin-top:6px; text-transform:uppercase; font-weight:700}
.wr.A .num{color:var(--accent2)}
.wr.B .num{color:#f07b86; text-align:right}
.wr.B .lbl{text-align:right}
.wr .num.win{color:#52c08a !important; text-shadow:0 0 24px rgba(82,192,138,.5)}
.wr .num.lose{color:var(--muted-2) !important}
.bar-stack{
  height:10px; background:rgba(0,0,0,.3); border-radius:99px;
  overflow:hidden; position:relative; margin-bottom:16px;
  box-shadow:inset 0 0 0 1px var(--line);
}
.bar-stack > div{height:100%; transition:width .65s cubic-bezier(.2,.9,.3,1.1)}
.bar-stack > div.A{background:linear-gradient(90deg,var(--accent),var(--accent2)); box-shadow:0 0 16px rgba(210,57,73,.4)}
.bar-stack > div.B{position:absolute; right:0; top:0; background:linear-gradient(90deg,var(--atk2),var(--atk)); box-shadow:0 0 16px rgba(48,148,223,.4)}

.finish-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:16px; font-family:var(--mono); font-size:.72rem}
.finish{
  padding:11px 14px; background:rgba(0,0,0,.22);
  border:1px solid var(--line); border-radius:var(--radius-sm);
  position:relative;
}
.finish .k{color:var(--muted); font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; display:block; margin-bottom:4px}
.finish .v{font-weight:700; font-size:1rem; color:var(--text); font-family:var(--display); letter-spacing:-.01em}
.finish.xt{border-color:rgba(212,168,48,.4); box-shadow:0 0 16px rgba(212,168,48,.10)}
.finish.xt .v{color:var(--gold2)}
.finish.bu{border-left:3px solid var(--atk)}
.finish.bu .v{color:#5cb0e6}
.finish.ov{border-left:3px solid var(--accent)}
.finish.ov .v{color:var(--accent2)}
.finish.sp{border-left:3px solid var(--sta)}
.finish.sp .v{color:var(--sta2)}

/* Radar */
.radar-wrap{display:grid; place-items:center; padding:8px}
.radar-legend{display:flex; justify-content:center; gap:24px; margin-top:10px; font-family:var(--mono); font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted)}
.radar-legend i{display:inline-block; width:14px; height:3px; border-radius:99px; margin-right:7px; vertical-align:middle}

/* Verdict — readable mono */
.verdict{
  font-family:var(--mono); font-size:.76rem; line-height:1.7;
  color:var(--text-soft);
  background:rgba(0,0,0,.32); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:16px;
  min-height:300px; white-space:pre-wrap; word-break:break-word;
}
.verdict .hl{color:var(--gold2); font-weight:700}
.verdict .a{color:var(--accent2)}
.verdict .b{color:#f07b86}
.verdict .ok{color:#52c08a}
.verdict .xt{color:var(--gold2); font-weight:700}

/* === DATABASE === */
.col-tabs{display:flex; gap:8px; margin-bottom:16px}
.col-tab{
  background:transparent; border:1px solid var(--line2); color:var(--muted);
  padding:9px 18px; border-radius:99px;
  font-family:inherit; font-size:.7rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; cursor:pointer; transition:all .18s;
}
.col-tab:hover{color:var(--text); border-color:var(--border)}
.col-tab.active{
  color:#1a1000;
  background:linear-gradient(135deg, var(--gold2), var(--gold));
  border-color:transparent; box-shadow:0 4px 14px rgba(212,168,48,.3);
}
.db-controls{display:grid; grid-template-columns:1fr 150px 150px 150px 100px; gap:10px; margin-bottom:16px}
@media(max-width:780px){.db-controls{grid-template-columns:1fr 1fr}}
.db-controls input, .db-controls select{
  background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); padding:11px 14px;
  border-radius:var(--radius-sm); font-family:var(--mono); font-size:.74rem;
  transition:border-color .15s;
}
.db-controls input::placeholder{color:var(--muted-2)}
.db-controls input:hover, .db-controls select:hover{border-color:var(--border)}
.db-controls input:focus, .db-controls select:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,168,48,.12)}
.db-table{width:100%; border-collapse:collapse; font-size:.8rem}
.db-table th{
  text-align:left; font-weight:700; font-size:.58rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold2);
  padding:13px 14px; cursor:pointer; user-select:none;
  background:var(--card); position:sticky; top:0; z-index:5;
  border-bottom:1px solid var(--border2);
}
.db-table th:hover{color:var(--text); background:var(--card2)}
.db-table td{padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:middle}
.db-table tr:hover td{background:rgba(212,168,48,.04)}
.db-table .img-cell{width:64px}
.db-table .img-cell img{width:50px; height:50px; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.db-table .nm{font-weight:700; color:var(--text); letter-spacing:-.005em}
.db-table .cd{font-family:var(--mono); font-size:.7rem; color:var(--gold2); letter-spacing:.06em}
.db-table .stat-mini{display:inline-flex; gap:5px; font-family:var(--mono); font-size:.7rem}
.db-table .stat-mini span{
  padding:3px 8px; border-radius:99px;
  background:rgba(0,0,0,.25); box-shadow:inset 0 0 0 1px var(--line);
  font-weight:700;
}
.db-table .stat-mini .a{color:#5cb0e6}
.db-table .stat-mini .d{color:#52c08a}
.db-table .stat-mini .s{color:var(--sta2)}
.db-table .lore-cell{color:var(--muted); max-width:340px; line-height:1.55; font-size:.74rem}

/* === Inventory — owned / not-owned UI === */
.db-table tr.row-not-owned{opacity:.42}
.db-table tr.row-not-owned td:not(.own-cell){filter:grayscale(.6)}
.db-table .own-cell{width:64px; text-align:center; padding:8px}
.own-toggle{
  width:32px; height:32px; border-radius:50%;
  border:1px solid var(--line2); background:rgba(0,0,0,.30);
  color:var(--muted); cursor:pointer;
  display:inline-grid; place-items:center;
  font-size:.66rem; font-weight:700; letter-spacing:.04em;
  transition:all .15s; font-family:var(--mono);
}
.own-toggle:hover{border-color:var(--gold); color:var(--gold2); background:rgba(212,168,48,.10)}
.own-toggle.not-owned{
  background:rgba(220,56,72,.18); color:#ff8e96;
  border-color:rgba(220,56,72,.5);
}
.own-toggle.not-owned:hover{background:rgba(220,56,72,.30)}
.inventory-bar{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:10px 14px; margin-bottom:14px;
  background:rgba(0,0,0,.22); border:1px solid var(--line); border-radius:99px;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.06em;
}
.inventory-bar label{display:inline-flex; align-items:center; gap:8px; cursor:pointer; color:var(--muted)}
.inventory-bar label:hover{color:var(--text)}
.inventory-bar input{accent-color:var(--gold); width:14px; height:14px}
.inventory-bar .inv-count{color:var(--gold2); font-weight:700; margin-left:auto}
.inventory-bar .inv-clear{
  background:transparent; border:1px solid var(--line2); color:var(--muted);
  padding:4px 10px; border-radius:99px; cursor:pointer;
  font-family:var(--mono); font-size:.6rem; letter-spacing:.08em;
  text-transform:uppercase;
}
.inventory-bar .inv-clear:hover{color:var(--text); border-color:var(--gold)}

/* === MISC === */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--card3); border:2px solid var(--bg); border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--gold-dim)}
body.simming .panel h3::before{animation:simpulse .7s alternate infinite}
@keyframes simpulse{from{box-shadow:0 0 6px rgba(212,168,48,.6)}to{box-shadow:0 0 22px var(--gold2)}}
.row{display:flex; align-items:center; gap:10px}
.dim{color:var(--muted)}
.mono{font-family:var(--mono)}
.spinner{
  display:inline-block; width:13px; height:13px;
  border:2px solid rgba(212,168,48,.25); border-top-color:var(--gold);
  border-radius:50%; animation:spin .8s linear infinite; vertical-align:middle;
}
@keyframes spin{to{transform:rotate(360deg)}}
.fallback-banner{font-size:.58rem; color:var(--gold2); letter-spacing:.2em; text-transform:uppercase; margin-top:6px; opacity:.7; font-weight:700}

/* Selection styling */
::selection{background:rgba(212,168,48,.30); color:var(--text)}

/* Focus visible accessibility */
:focus-visible{outline:2px solid var(--gold); outline-offset:2px; border-radius:4px}

/* === Slim themed scrollbars ===
   Default browser scrollbars eat ~16px of width and shift content left when
   they appear. We replace them with thin (6px) gold-accented overlays that
   sit on top of content rather than displacing it. On phones (≤720px) the
   scrollbar is hidden entirely — touch users don't need a visible bar. */
html{scrollbar-width:thin; scrollbar-color:rgba(212,168,48,.30) transparent}
html[data-theme="light"]{scrollbar-color:rgba(168,127,28,.30) transparent}
::-webkit-scrollbar{width:6px; height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(212,168,48,.30); border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(212,168,48,.55)}
html[data-theme="light"] ::-webkit-scrollbar-thumb{background:rgba(168,127,28,.30)}
html[data-theme="light"] ::-webkit-scrollbar-thumb:hover{background:rgba(168,127,28,.55)}
@media(max-width:720px){
  /* Hide scrollbars entirely on touch devices — touch users scroll directly */
  html{scrollbar-width:none}
  ::-webkit-scrollbar{display:none; width:0; height:0}
  body{-ms-overflow-style:none}
}

/* === Performance: skip layout/paint for off-screen list items ===
   Browser only renders rows/cards that are actually in the viewport.
   60-row database tables and 60-card tier lists become essentially free
   to scroll. The contain-intrinsic-size hint avoids scroll-jank by
   reserving the right amount of vertical space upfront. */
.db-table tbody tr{
  content-visibility:auto;
  contain-intrinsic-size:auto 64px;
}
.tier-card{
  content-visibility:auto;
  contain-intrinsic-size:auto 72px;
}
.counter-card{
  content-visibility:auto;
  contain-intrinsic-size:auto 88px;
}
.sug-card.sug-v2{
  content-visibility:auto;
  contain-intrinsic-size:auto 240px;
}

/* ========================================================================
   MOBILE LAYOUT PASS — phones (≤640px) get full-screen pickers, stacked
   actions, simpler tables, full-screen modals.
   ======================================================================== */
@media (max-width: 640px){
  body{font-size:14px}
  .pane{padding:18px 14px}
  .pane-head h2{font-size:clamp(1.05rem, 4.6vw, 1.5rem); line-height:1.2}
  .pane-head .sub{font-size:clamp(.7rem, 2.6vw, .82rem)}
  .hero-row{padding:14px 14px; gap:14px; flex-direction:column; align-items:flex-start}
  .hero-deco{display:none}
  .brand h1{font-size:clamp(1.1rem, 5.2vw, 1.6rem)}
  .hero-meta{flex-wrap:wrap; gap:6px; width:100%}
  .hero-stat{padding:6px 8px; min-width:0; flex:1 1 70px}
  .hero-stat .num{font-size:clamp(.95rem, 3.5vw, 1.15rem)}
  .hero-stat .lbl{font-size:clamp(.55rem, 2vw, .68rem)}
  .theme-toggle{flex-shrink:0; padding:5px 10px; font-size:clamp(.55rem, 2vw, .66rem)}
  /* Tabs auto-distribute across the viewport width — short labels keep them visible */
  .tab-row{display:flex; justify-content:space-around; gap:0; padding:0 6px}
  .tab-btn{
    font-size:clamp(.6rem, 3vw, .82rem);  /* fluid type — scales with viewport */
    padding:13px 6px;
    flex:1 1 0; min-width:0; white-space:nowrap; text-align:center;
    letter-spacing:.10em;
  }
  .builder-top{grid-template-columns:1fr; gap:14px}
  .picker-row{grid-template-columns:1fr; padding:0 14px 14px; gap:10px}
  .picker-cell{padding:12px}
  .combo-stage{padding:18px 16px; gap:14px}
  .combo-blade-frame{width:180px; height:180px}
  .combo-blade-frame img.spinning{width:148px; height:148px}
  .combo-grade-row .grade{font-size:1.45rem; min-width:54px; height:54px}
  .combo-name{font-size:1.2rem}
  .combo-actions-primary{flex-direction:column; align-items:stretch}
  .combo-actions-primary .battle-btn{justify-content:center}
  .icon-btn{width:34px; height:34px; font-size:.92rem}
  .subscore-grid{padding:18px}
  .blade-stats-strip{padding:10px 12px}
  .analyzer-grid{grid-template-columns:1fr}
  .panel{padding:16px}
  .suggestion-row{grid-template-columns:1fr}
  .counter-list{grid-template-columns:1fr}
  .sug-card.sug-v2{padding:14px}
  .sug-mode-row{flex-wrap:wrap; padding:8px}
  .sug-mode-row .sug-mode-lbl{display:none}
  .sug-dual-toggle{margin-left:0}
  .battle-grid{grid-template-columns:1fr; gap:14px}
  .vs-col{flex-direction:row; padding:10px 0; flex-wrap:wrap; justify-content:center; order:2}
  .vs-col .vs-badge{font-size:1rem; width:44px; height:44px}
  .vs-col .battle-btn{flex:1; min-width:140px}
  .combatant{padding:14px}
  .combatant .stack img.blade{max-width:160px}
  .result-row{grid-template-columns:1fr}
  .db-controls{grid-template-columns:1fr 1fr; gap:8px}
  .db-controls input,.db-controls select{padding:9px 10px; font-size:.78rem}
  .db-table{font-size:.7rem; min-width:760px}
  .db-table th,.db-table td{padding:8px 10px}
  .db-table .lore-cell{max-width:200px; font-size:.66rem}
  .inventory-bar{padding:8px 12px; font-size:.62rem; flex-direction:column; align-items:stretch; border-radius:var(--radius-md)}
  .inventory-bar .inv-count{margin-left:0; text-align:center}
  .tier-row{grid-template-columns:50px 1fr; gap:10px; margin-bottom:10px}
  .tier-badge{font-size:1.3rem}
  .tier-cards{grid-template-columns:1fr; gap:8px}
  .tier-card{padding:10px 12px}
  .modal-overlay{padding:0; align-items:flex-start}
  .modal-card{max-width:100%; max-height:100vh; height:100vh; border-radius:0}
  .modal-head{padding:14px 16px}
  .modal-body{padding:16px}
  .modal-foot{padding:12px 16px}
  .compare-grid{grid-template-columns:1fr; gap:12px}
  .compare-pick{grid-template-columns:1fr; gap:6px}
  .compare-stat{grid-template-columns:38px 32px 1fr 32px; gap:6px}
  .compare-stat .lbl{font-size:.56rem; letter-spacing:.10em}
  .compare-stat .vala,.compare-stat .valb{font-size:.78rem}
  .split-bar{height:14px}
  .rich-picker-pop{
    position:fixed !important;
    top:0 !important; left:0 !important;
    width:100% !important; height:100% !important;
    max-height:100% !important;
    border-radius:0 !important;
  }
  .rich-picker-pop .rp-search{padding:14px 16px; font-size:.84rem; border-radius:0}
  .rich-picker-pop .rp-list{padding:6px}
  .rich-picker-pop .rp-row{padding:10px 12px}
  .rich-picker-pop .rp-row .rp-thumb{width:48px; height:48px}
  .rich-picker-pop .rp-row .rp-thumb img{max-width:42px; max-height:42px}
  .rich-picker-pop .rp-row .rp-name{font-size:.86rem}
  .rich-picker-pop .rp-row .rp-meta{font-size:.62rem}
  .site-foot{margin-top:36px; padding:22px 14px}
  .site-foot-meta{font-size:.6rem}
}
@media (min-width: 641px) and (max-width: 980px){
  .builder-top{grid-template-columns:1fr; gap:18px}
  .analyzer-grid{grid-template-columns:1fr}
  .battle-grid{grid-template-columns:1fr; gap:18px}
}

/* ========================================================================
   LIGHT MODE — kicks in via [data-theme="light"] (manual toggle) or
   prefers-color-scheme: light when no manual theme is set.
   ======================================================================== */
html[data-theme="light"]{color-scheme:light}
html[data-theme="light"]{
  --bg:#f5f5f5; --bg2:#eaeaea; --bg3:#fafafa; --bg-soft:#e0e0e0;
  --card:#ffffff; --card2:#f0f0f0; --card3:#fafafa;
  --line:rgba(0,0,0,.08); --line2:rgba(0,0,0,.14);
  --border:rgba(212,168,48,.40); --border2:rgba(212,168,48,.65);
  --glass:rgba(255,255,255,.75); --glass-strong:rgba(255,255,255,.92);
  --gold:#a87f1c; --gold2:#c79a32; --gold-dim:#5a4310; --gold-soft:rgba(168,127,28,.10);
  --accent:#b22a3a; --accent2:#d23949; --accent-soft:rgba(178,42,58,.10);
  --text:#0a0a0a; --text-soft:#262626; --muted:#5a5a5a; --muted-2:#8a8a8a;
  --hot:#e53626; --crim:#a8181f;
  --shadow-sm:0 1px 2px rgba(0,0,0,.10);
  --shadow-md:0 4px 16px rgba(0,0,0,.12);
  --shadow-lg:0 12px 40px rgba(0,0,0,.18);
}
html[data-theme="light"] body{
  background-image:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(178,42,58,0.06) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 100% 100%, rgba(168,127,28,0.06) 0%, transparent 65%);
}
@media (prefers-color-scheme: light){
  html:not([data-theme="dark"]):not([data-theme="light"]){color-scheme:light}
  html:not([data-theme="dark"]):not([data-theme="light"]){
    --bg:#f5f5f5; --bg2:#eaeaea; --bg3:#fafafa; --bg-soft:#e0e0e0;
    --card:#ffffff; --card2:#f0f0f0; --card3:#fafafa;
    --line:rgba(0,0,0,.08); --line2:rgba(0,0,0,.14);
    --border:rgba(212,168,48,.40); --border2:rgba(212,168,48,.65);
    --glass:rgba(255,255,255,.75); --glass-strong:rgba(255,255,255,.92);
    --gold:#a87f1c; --gold2:#c79a32; --gold-dim:#5a4310; --gold-soft:rgba(168,127,28,.10);
    --accent:#b22a3a; --accent2:#d23949; --accent-soft:rgba(178,42,58,.10);
    --text:#0a0a0a; --text-soft:#262626; --muted:#5a5a5a; --muted-2:#8a8a8a;
    --hot:#e53626; --crim:#a8181f;
  }
  html:not([data-theme="dark"]):not([data-theme="light"]) body{
    background-image:
      radial-gradient(ellipse 70% 50% at 50% 0%, rgba(178,42,58,0.06) 0%, transparent 65%),
      radial-gradient(ellipse 50% 50% at 100% 100%, rgba(168,127,28,0.06) 0%, transparent 65%);
  }
}
.theme-toggle{
  background:rgba(255,255,255,.04); color:var(--muted);
  border:1px solid var(--line2); border-radius:99px;
  padding:6px 12px; cursor:pointer;
  font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase;
  transition:all .15s; display:inline-flex; align-items:center; gap:6px;
}
.theme-toggle:hover{color:var(--text); border-color:var(--gold)}

/* === TIER LIST === */
.tier-row{display:grid; grid-template-columns:64px 1fr; gap:18px; margin-bottom:14px; align-items:stretch}
.tier-badge{
  display:grid; place-items:center; font-family:var(--display); font-weight:900;
  font-size:1.6rem; border-radius:var(--radius-md);
}
.tier-badge.tier-S{background:linear-gradient(135deg,#9d6f10,#f0ca50 50%,#9d6f10); color:#1a1000; box-shadow:0 0 0 1px rgba(212,168,48,.5), 0 4px 18px rgba(212,168,48,.4)}
.tier-badge.tier-A{background:linear-gradient(135deg,#b82f3a,#e25865); color:#fff; box-shadow:0 0 0 1px rgba(230,57,70,.4), 0 4px 14px rgba(230,57,70,.3)}
.tier-badge.tier-B{background:linear-gradient(135deg,#aaaaaa,#e0e0e0); color:#1a1a1a; box-shadow:0 0 0 1px rgba(255,255,255,.30)}
.tier-badge.tier-C{background:linear-gradient(135deg,#5a5a5a,#7a7a7a); color:#f5f5f5}
.tier-badge.tier-D{background:linear-gradient(135deg,#2a2a2a,#3a3a3a); color:#888888}
.tier-cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px}
.tier-card{
  background:linear-gradient(165deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line); border-radius:var(--radius-md);
  padding:12px 14px; cursor:pointer;
  transition:border-color .15s, transform .15s, box-shadow .15s;
  display:flex; gap:10px; align-items:center; min-width:0;
}
.tier-card:hover{border-color:var(--gold); box-shadow:0 6px 18px rgba(0,0,0,.4)}
.tier-card .tc-thumb{
  width:48px; height:48px; flex-shrink:0;
  background:rgba(0,0,0,.30); border-radius:8px;
  display:grid; place-items:center; overflow:hidden;
}
.tier-card .tc-thumb img{max-width:42px; max-height:42px; object-fit:contain}
.tier-card .tc-body{flex:1; min-width:0}
.tier-card .tc-name{font-weight:700; font-size:.78rem; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tier-card .tc-meta{font-family:var(--mono); font-size:.6rem; color:var(--muted); letter-spacing:.04em; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tier-card .tc-score{font-family:var(--mono); font-size:.76rem; font-weight:700; color:var(--gold2); margin-left:auto; padding-left:8px}
.tier-empty{
  grid-column:1/-1;
  padding:18px 16px; border:1px dashed var(--line2); border-radius:var(--radius-md);
  font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:var(--muted-2);
  text-align:center; opacity:.7;
}

/* === MODAL (saved combos / compare) === */
.modal-overlay{
  position:fixed; inset:0; background:rgba(4,8,16,.75);
  z-index:10000; display:none; align-items:center; justify-content:center;
  padding:20px; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  animation:rpFadeIn .16s ease-out;
}
.modal-overlay.show{display:flex}
.modal-card{
  background:linear-gradient(165deg, var(--card) 0%, var(--card2) 100%);
  border:1px solid var(--line2); border-radius:var(--radius-lg);
  box-shadow:0 22px 64px rgba(0,0,0,.7), 0 0 0 1px rgba(212,168,48,.10);
  width:100%; max-width:680px; max-height:90vh;
  display:flex; flex-direction:column; overflow:hidden;
}
.modal-card.modal-wide{max-width:920px}
.modal-head{
  padding:18px 22px; border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.modal-head h3{margin:0; font-size:.7rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold2); font-weight:700}
.modal-close{
  background:none; border:1px solid var(--line2); color:var(--muted);
  width:30px; height:30px; border-radius:50%; cursor:pointer; font-size:1rem;
  display:grid; place-items:center; transition:border-color .15s, color .15s;
}
.modal-close:hover{border-color:var(--gold); color:var(--gold2)}
.modal-body{padding:22px; overflow-y:auto; flex:1}
.modal-foot{padding:14px 22px; border-top:1px solid var(--line); display:flex; gap:10px; justify-content:flex-end}

/* Save modal — name input */
.save-name-input{
  width:100%; padding:12px 14px; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:var(--radius-sm);
  font-family:var(--display); font-size:.9rem; outline:none; color-scheme:dark;
  transition:border-color .15s, box-shadow .15s;
}
.save-name-input:focus{border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,168,48,.12)}
.save-current-preview{
  margin:14px 0; padding:14px; background:rgba(0,0,0,.25);
  border:1px solid var(--line); border-radius:var(--radius-md);
  font-family:var(--mono); font-size:.78rem; color:var(--text);
}
.save-current-preview .lbl{display:block; font-size:.6rem; letter-spacing:.22em; color:var(--gold2); margin-bottom:6px; text-transform:uppercase}

/* Saved combos list */
.saved-list{display:flex; flex-direction:column; gap:8px}
.saved-row{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px; background:rgba(0,0,0,.22);
  border:1px solid var(--line); border-radius:var(--radius-md);
  transition:border-color .15s, background .15s;
}
.saved-row:hover{border-color:var(--border); background:rgba(0,0,0,.32)}
.saved-row .saved-name{flex:1; font-weight:700; font-size:.86rem; color:var(--text); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.saved-row .saved-meta{font-family:var(--mono); font-size:.66rem; color:var(--muted); flex-shrink:0}
.saved-row .saved-load{
  background:linear-gradient(135deg,#9d6f10,#f0ca50 50%,#9d6f10); color:#1a1000;
  border:none; padding:6px 12px; border-radius:99px; cursor:pointer;
  font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; font-weight:700; text-transform:uppercase;
}
.saved-row .saved-del{
  background:rgba(220,56,72,.15); color:#ff8e96;
  border:1px solid rgba(220,56,72,.4); width:28px; height:28px; border-radius:50%; cursor:pointer;
  display:grid; place-items:center; font-size:.84rem; transition:background .15s, color .15s;
}
.saved-row .saved-del:hover{background:rgba(220,56,72,.4); color:#fff}
.saved-empty{padding:34px 20px; text-align:center; color:var(--muted-2); font-family:var(--mono); font-size:.78rem; letter-spacing:.04em}

/* Compare modal */
.compare-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:6px}
@media(max-width:640px){.compare-grid{grid-template-columns:1fr}}
.compare-side{
  background:rgba(0,0,0,.22); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:14px; display:flex; flex-direction:column; gap:10px;
}
.compare-side .lbl{font-size:.58rem; letter-spacing:.24em; color:var(--gold2); text-transform:uppercase; font-weight:700}
.compare-side .nm{font-weight:800; font-size:1rem; line-height:1.25}
.compare-side .mt{font-family:var(--mono); font-size:.66rem; color:var(--muted); letter-spacing:.04em}
/* Single split bar — your fill from left, opponent fill from right, meeting at the value-ratio point.
   Larger fill = stronger on that stat. */
.compare-stat{
  display:grid; grid-template-columns:54px 44px 1fr 44px; gap:10px; align-items:center;
  margin-top:10px; padding:6px 0;
}
.compare-stat .lbl{font-size:.62rem; letter-spacing:.20em; color:var(--muted); text-transform:uppercase; font-weight:700}
.compare-stat .vala, .compare-stat .valb{font-family:var(--mono); font-weight:700; font-size:.92rem}
.compare-stat .vala{text-align:right}
.compare-stat .valb{text-align:left}
.compare-stat.you-lead  .vala{color:var(--accent2)}
.compare-stat.opp-lead  .valb{color:var(--atk2)}
.compare-stat.tied .vala, .compare-stat.tied .valb{color:var(--muted)}

.split-bar{
  height:18px; display:flex; border-radius:99px; overflow:hidden;
  background:rgba(0,0,0,.32);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
  position:relative;
}
.split-bar .a-side, .split-bar .b-side{
  height:100%; transition:width .4s cubic-bezier(.2,.9,.3,1.1);
  position:relative;
}
.split-bar .a-side{
  background:linear-gradient(90deg, var(--accent2), var(--accent));
  box-shadow:inset 0 0 8px rgba(0,0,0,.20);
}
.split-bar .b-side{
  background:linear-gradient(90deg, var(--atk), var(--atk2));
  box-shadow:inset 0 0 8px rgba(0,0,0,.20);
  margin-left:auto;
}
/* Centerline divider — shows when values are equal */
.split-bar::after{
  content:""; position:absolute; left:50%; top:-2px; bottom:-2px; width:1px;
  background:rgba(255,255,255,.10); pointer-events:none;
}
/* Glow on the leading side */
.compare-stat.you-lead  .split-bar .a-side{box-shadow:inset 0 0 8px rgba(0,0,0,.20), 0 0 12px rgba(210,57,73,.35)}
.compare-stat.opp-lead  .split-bar .b-side{box-shadow:inset 0 0 8px rgba(0,0,0,.20), 0 0 12px rgba(48,148,223,.35)}
.compare-h2h{
  margin-top:18px; padding:16px;
  background:linear-gradient(165deg, rgba(212,168,48,.05), rgba(212,168,48,.02));
  border:1px solid rgba(212,168,48,.30); border-radius:var(--radius-md);
  text-align:center;
}
.compare-h2h .h2h-lbl{font-size:.62rem; letter-spacing:.24em; color:var(--gold2); text-transform:uppercase; font-weight:700; margin-bottom:8px}
.compare-h2h .h2h-num{font-family:var(--display); font-weight:800; font-size:1.5rem; color:var(--text)}
.compare-h2h .h2h-sub{font-family:var(--mono); font-size:.7rem; color:var(--muted); margin-top:4px}

/* Compare picker — small inline pickers for opponent selection */
.compare-pick{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin:8px 0}
@media(max-width:480px){.compare-pick{grid-template-columns:1fr}}
.compare-pick > div{display:flex; flex-direction:column; gap:4px}
.compare-pick .lbl{font-size:.54rem; letter-spacing:.22em; color:var(--muted); text-transform:uppercase}
.compare-pick select{
  background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  padding:8px 10px; border-radius:var(--radius-sm); font-family:var(--mono); font-size:.74rem;
  cursor:pointer; color-scheme:dark; outline:none;
}
.compare-pick select:focus{border-color:var(--gold); box-shadow:0 0 0 2px rgba(212,168,48,.12)}

/* === SITE FOOTER === */
.site-foot{
  margin-top:64px; padding:32px 24px 28px;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.20) 100%);
}
.site-foot-inner{
  max-width:1280px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:18px;
}
.site-foot-brand{
  font-family:var(--display); font-weight:800; letter-spacing:.04em;
  font-size:.92rem; color:var(--text);
  display:inline-flex; align-items:center;
}
.site-foot-brand .x{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; margin:0 4px;
  background:linear-gradient(135deg,#9d6f10,#f0ca50 50%,#9d6f10);
  color:#1a1000; border-radius:5px; font-weight:900;
  transform:rotate(-8deg); font-size:.8rem;
  box-shadow:0 0 0 1px rgba(212,168,48,.5), 0 3px 10px rgba(212,168,48,.25);
}
.site-foot-meta{
  font-family:var(--mono); font-size:.66rem; color:var(--muted-2);
  letter-spacing:.04em; text-align:center; flex:1; min-width:240px;
}
.site-foot-links{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.06em;
  display:inline-flex; align-items:center; gap:10px;
}
.site-foot-links a{
  color:var(--muted); text-decoration:none;
  border-bottom:1px solid transparent; transition:color .15s, border-color .15s;
  padding-bottom:1px;
}
.site-foot-links a:hover{color:var(--gold2); border-bottom-color:rgba(212,168,48,.4)}
.site-foot-links .dot{color:var(--muted-2); opacity:.6}
@media(max-width:780px){
  .site-foot-inner{flex-direction:column; text-align:center}
  .site-foot-meta{order:3}
}

/* ===== v5 additions: tutorials link + consent banner ===== */
.tab-link{display:inline-flex;align-items:center;text-decoration:none}
#consent-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;background:var(--glass-strong,rgba(20,20,20,.95));border:1px solid var(--border,rgba(212,168,48,.24));border-radius:12px;padding:14px 16px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;backdrop-filter:blur(12px);box-shadow:0 12px 40px rgba(0,0,0,.55)}
#consent-banner p{margin:0;color:var(--text-soft,#d8d8d8);font-size:.85rem}
.consent-actions{display:flex;gap:8px}
.consent-actions button{cursor:pointer;border-radius:8px;padding:8px 18px;font-weight:600;border:1px solid var(--border2,rgba(212,168,48,.45))}
#consent-accept{background:var(--gold,#d4a830);color:#0a0a0a}
#consent-decline{background:transparent;color:var(--muted,#8a8a8a)}

/* ===== tutorials pages ===== */
.tut-wrap{max-width:820px;margin:0 auto;padding:24px 18px 60px}
.tut-wrap h1{font-size:1.9rem;margin:18px 0 6px;color:var(--text)}
.tut-wrap h2{font-size:1.25rem;margin:28px 0 10px;color:var(--gold2)}
.tut-wrap p,.tut-wrap li{color:var(--text-soft);line-height:1.65;font-size:.98rem}
.tut-wrap ul,.tut-wrap ol{padding-left:22px;margin:10px 0}
.tut-wrap li{margin:6px 0}
.tut-crumb{font-size:.8rem;color:var(--muted);margin-bottom:4px}
.tut-crumb a{color:var(--gold);text-decoration:none}
.tut-lede{font-size:1.05rem;color:var(--text-soft);border-left:3px solid var(--gold);padding-left:14px;margin:14px 0 22px}
.tut-tip{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin:18px 0}
.tut-tip strong{color:var(--gold2)}
.tut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:24px 0}
.tut-card{display:block;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:18px;text-decoration:none;transition:border-color .15s}
.tut-card:hover{border-color:var(--border2)}
.tut-card h3{color:var(--text);margin:0 0 6px;font-size:1.05rem}
.tut-card p{margin:0;font-size:.85rem;color:var(--muted)}
.tut-card .tag{display:inline-block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.tut-nav{display:flex;gap:10px;justify-content:space-between;margin-top:40px;flex-wrap:wrap}
.tut-nav a{color:var(--gold);text-decoration:none;font-size:.9rem}
.tut-head{padding:18px;text-align:center;border-bottom:1px solid var(--line)}
.tut-head a.brand{color:var(--text);text-decoration:none;font-weight:800;letter-spacing:.04em}
.tut-head a.brand .x{color:var(--accent)}
.tut-head .back{display:inline-block;margin-top:6px;font-size:.8rem;color:var(--gold);text-decoration:none}

/* ===== v5 features: daily boss + deck lab ===== */
#daily-boss-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(90deg,rgba(210,57,73,.14),rgba(212,168,48,.10));border:1px solid var(--border);border-radius:12px;padding:10px 14px;margin:0 0 16px}
.db-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:220px}
.db-badge{background:var(--crim);color:#fff;font-weight:800;font-size:.62rem;letter-spacing:.12em;border-radius:6px;padding:4px 8px}
.db-combo{color:var(--gold2);font-size:.86rem;font-weight:600}
.db-streak{color:var(--sta2);font-size:.78rem}
.db-actions{display:flex;gap:8px}
.db-actions button{cursor:pointer;background:var(--card3);color:var(--text);border:1px solid var(--border2);border-radius:8px;padding:7px 14px;font-size:.78rem;font-weight:600}
.db-actions button:hover{border-color:var(--gold)}
.db-result{flex-basis:100%;font-size:.82rem;color:var(--text-soft);padding-top:4px}
.db-won{color:var(--def2);font-weight:700}
.db-lost{color:var(--accent2);font-weight:700}

.deck-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.deck-grid{grid-template-columns:1fr}}
.deck-slot{display:grid;grid-template-columns:24px 1.4fr 1fr 1fr;gap:8px;align-items:center;margin:8px 0}
.deck-slot-n{color:var(--gold);font-weight:800;text-align:center}
.deck-sel{width:100%;background:var(--card2);color:var(--text);border:1px solid var(--line2);border-radius:8px;padding:8px;font-size:.8rem}
.deck-tools{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.deck-cover{margin-top:12px;font-size:.8rem;color:var(--text-soft);border-top:1px solid var(--line);padding-top:10px}
.deck-win-row{display:flex;align-items:center;justify-content:center;gap:26px;margin:10px 0}
.deck-win{display:flex;flex-direction:column;align-items:center;color:var(--muted);font-size:.75rem}
.deck-win .big{font-size:2rem;font-weight:800;color:var(--gold2)}
.deck-vs{color:var(--accent);font-weight:800}
.deck-mx{border-collapse:collapse;width:100%;font-size:.76rem}
.deck-mx th,.deck-mx td{border:1px solid var(--line2);padding:6px 8px;text-align:center;color:var(--text-soft)}
.deck-mx th{color:var(--muted);font-weight:600;font-size:.7rem}
.mx-win{background:rgba(31,150,86,.25);color:var(--def2);font-weight:700}
.mx-loss{background:rgba(210,57,73,.22);color:var(--accent2);font-weight:700}
.mx-even{background:rgba(212,168,48,.10)}
#deck-order{font-size:.85rem;color:var(--text-soft);line-height:1.7}
#deck-verdict{font-size:.85rem;color:var(--text-soft)}

/* ===== battle theater ===== */
.theater-wrap{position:relative;max-width:760px;margin:0 auto}
#battle-theater{width:100%;height:auto;display:block;border-radius:14px;background:radial-gradient(ellipse at center,#141414 0%,#050505 78%)}
#theater-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;pointer-events:none;text-align:center}
#theater-overlay .t-big{font-size:1.5rem;font-weight:800;color:var(--gold2);text-shadow:0 2px 18px rgba(0,0,0,.9);letter-spacing:.04em}
#theater-overlay .t-sub{font-size:.8rem;color:var(--text-soft);text-shadow:0 1px 8px rgba(0,0,0,.9)}
@media(max-width:640px){#theater-overlay .t-big{font-size:1.05rem}}

/* hidden attribute must beat explicit display values */
#consent-banner[hidden]{display:none !important}
#theater-overlay[hidden]{display:none !important}
