/* ============================================================
   第一后裔 资料查询站 — 工具站样式 (sci-fi HUD dashboard)
   ============================================================ */
:root{
  --bg-0:#05070d; --bg-1:#080c16; --bg-2:#0d1424; --bg-3:#132038; --bg-4:#18263f;
  --line:#1d2c4a; --line-soft:#15213a;
  --ink:#e7eefb; --ink-mid:#9fb0cc; --ink-dim:#5d6e8c;
  --acc:#27d3ff; --acc-deep:#1183d6; --acc-glow:rgba(39,211,255,.5);
  --ember:#ff6a3d; --ember-2:#ffb24a; --danger:#ff3b46;
  --gold:#ffcc66; --ok:#39d98a;
  --tier-s:#ff5d73; --tier-a:#ffb24a; --tier-u:#c98bff;
  --hud:"Chakra Petch","Saira",system-ui,sans-serif;
  --disp:"Saira Condensed","Chakra Petch",sans-serif;
  --cjk:"Noto Sans SC",system-ui,sans-serif;
  --body:"Saira","Noto Sans SC",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --topbar:64px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg-0);color:var(--ink);font-family:var(--body);
  font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;
  background-image:
    radial-gradient(120% 80% at 80% -10%, rgba(18,40,80,.4), transparent 55%),
    linear-gradient(var(--line-soft) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:auto, 56px 56px, 56px 56px;
  background-attachment:fixed;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--acc);color:#04121f;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg-1);}
::-webkit-scrollbar-thumb{background:var(--line);border:2px solid var(--bg-1);}
::-webkit-scrollbar-thumb:hover{background:var(--acc-deep);}

.clip{ --c:12px; clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c)); }
.mono{font-family:var(--hud);}
.eyebrow{font-family:var(--hud);font-weight:600;letter-spacing:.28em;text-transform:uppercase;font-size:11px;color:var(--acc);}

/* ---------- top bar ---------- */
.topbar{
  position:sticky;top:0;z-index:50;height:var(--topbar);
  display:flex;align-items:center;gap:22px;padding:0 22px;
  background:rgba(6,9,17,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft);
}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.dmark{
  width:38px;height:38px;display:grid;place-items:center;background:var(--acc);color:#04121f;
  font-family:var(--disp);font-weight:700;font-size:24px;
  clip-path:polygon(0 0,100% 0,100% 70%,70% 100%,0 100%);box-shadow:0 0 20px -4px var(--acc-glow);
}
.brand .nm{font-family:var(--cjk);font-weight:900;font-size:17px;line-height:1;}
.brand .en{font-family:var(--hud);font-size:9px;letter-spacing:.26em;color:var(--ink-dim);text-transform:uppercase;white-space:nowrap;}
.topbar .grow{flex:1;}

/* global search in topbar */
.gsearch{display:flex;align-items:center;gap:0;max-width:460px;flex:1;}
.gsearch .field{
  display:flex;align-items:center;gap:10px;flex:1;background:var(--bg-2);border:1px solid var(--line);
  padding:0 14px;height:42px;--c:9px;
  clip-path:polygon(var(--c) 0,100% 0,100% 100%,0 100%,0 var(--c));transition:border-color .2s;
}
.gsearch .field:focus-within{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc-glow);}
.gsearch .field svg{width:16px;height:16px;color:var(--ink-dim);flex-shrink:0;}
.gsearch input{flex:1;background:none;border:0;outline:0;color:var(--ink);font-size:14px;font-family:var(--body);}
.gsearch input::placeholder{color:var(--ink-dim);}
.gsearch .plat{
  background:var(--bg-3);border:1px solid var(--line);border-left:0;color:var(--ink-mid);
  height:42px;padding:0 10px;font-family:var(--hud);font-size:12px;outline:0;
}
.gsearch .go{
  height:42px;padding:0 18px;background:var(--acc);color:#04121f;border:0;font-family:var(--hud);
  font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:12px;
  --c:9px;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%);
  transition:background .2s;
}
.gsearch .go:hover{background:#5ee1ff;}

.keychip{
  display:flex;align-items:center;gap:8px;font-family:var(--hud);font-size:11px;letter-spacing:.1em;
  color:var(--ink-mid);border:1px solid var(--line);padding:8px 12px;text-transform:uppercase;cursor:pointer;
  --c:8px;clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c));
  transition:.2s;white-space:nowrap;
}
.keychip:hover{border-color:var(--acc);color:var(--ink);}
.keychip .led{width:8px;height:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.keychip.live .led{background:var(--ok);box-shadow:0 0 8px var(--ok);}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:2px;padding:0 22px;border-bottom:1px solid var(--line-soft);background:rgba(8,12,22,.6);position:sticky;top:var(--topbar);z-index:40;}
.tab{
  background:none;border:0;color:var(--ink-dim);font-family:var(--hud);font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;padding:16px 22px;position:relative;transition:color .2s;display:flex;align-items:center;gap:9px;
}
.tab .ic{width:16px;height:16px;}
.tab:hover{color:var(--ink-mid);}
.tab.on{color:var(--ink);}
.tab.on::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--acc);box-shadow:0 0 10px var(--acc-glow);}

/* ---------- page shell ---------- */
.page{max-width:1280px;margin:0 auto;padding:34px 22px 90px;}
.view{display:none;}
.view.on{display:block;animation:fade .35s var(--ease);}
@keyframes fade{from{opacity:.4;}to{opacity:1;}}

.section-h{display:flex;align-items:baseline;gap:14px;margin:0 0 22px;flex-wrap:wrap;}
.section-h h2{font-family:var(--cjk);font-weight:900;font-size:26px;margin:0;}
.section-h .sub{font-family:var(--hud);font-size:12px;letter-spacing:.16em;color:var(--ink-dim);text-transform:uppercase;}
.section-h .count{margin-left:auto;font-family:var(--hud);font-size:12px;color:var(--ink-dim);letter-spacing:.1em;}

.banner{
  display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:24px;font-size:13px;color:var(--ink-mid);
  background:linear-gradient(90deg,rgba(255,178,74,.1),transparent);border:1px solid rgba(255,178,74,.3);border-left:3px solid var(--ember-2);
}
.banner.live{background:linear-gradient(90deg,rgba(57,217,138,.1),transparent);border-color:rgba(57,217,138,.3);border-left-color:var(--ok);}
.banner b{color:var(--ink);font-family:var(--hud);letter-spacing:.05em;}
.banner svg{width:18px;height:18px;color:var(--ember-2);flex-shrink:0;}
.banner.live svg{color:var(--ok);}

/* ---------- PROFILE view ---------- */
.lookup-hero{
  background:linear-gradient(135deg,var(--bg-2),var(--bg-1));border:1px solid var(--line-soft);
  padding:40px;text-align:center;margin-bottom:30px;position:relative;overflow:hidden;
}
.lookup-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 50% 0%,rgba(39,211,255,.12),transparent 60%);}
.lookup-hero h1{font-family:var(--cjk);font-weight:900;font-size:clamp(28px,4vw,42px);margin:0 0 8px;position:relative;}
.lookup-hero p{color:var(--ink-mid);margin:0 auto 26px;max-width:480px;position:relative;}
.lookup-hero .big-search{display:flex;max-width:560px;margin:0 auto;position:relative;}
.lookup-hero .big-search .field{flex:1;height:52px;font-size:16px;}
.lookup-hero .big-search input{font-size:16px;}
.lookup-hero .go{height:52px;}
.examples{margin-top:18px;font-size:12px;color:var(--ink-dim);display:flex;gap:10px;justify-content:center;flex-wrap:wrap;align-items:center;position:relative;}
.examples b{color:var(--ink-dim);font-family:var(--hud);letter-spacing:.1em;}
.examples button{background:var(--bg-3);border:1px solid var(--line);color:var(--ink-mid);font-family:var(--hud);font-size:12px;padding:5px 12px;transition:.2s;}
.examples button:hover{border-color:var(--acc);color:var(--acc);}

/* profile result */
.profile{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start;}
.pcard{background:var(--bg-2);border:1px solid var(--line-soft);position:relative;overflow:hidden;}
.pcard .ph{position:relative;height:300px;overflow:hidden;background:var(--bg-3);}
.pcard .ph img{width:100%;height:100%;object-fit:cover;object-position:center 18%;}
.pcard .ph .ph-ph{width:100%;height:100%;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:90px;color:rgba(231,238,251,.1);background:radial-gradient(circle at 50% 40%,var(--bg-4),var(--bg-2));}
.pcard .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--bg-2) 3%,transparent 55%);}
.pcard .ph .plat-tag{position:absolute;top:14px;left:14px;z-index:2;font-family:var(--hud);font-size:11px;letter-spacing:.14em;color:var(--acc);border:1px solid var(--acc);background:rgba(5,7,13,.6);padding:5px 10px;text-transform:uppercase;}
.pcard .pbody{padding:18px 20px 22px;position:relative;margin-top:-50px;z-index:2;}
.pcard .pname{font-family:var(--cjk);font-weight:900;font-size:24px;line-height:1.1;}
.pcard .ptitle{color:var(--gold);font-size:13px;margin-top:4px;font-family:var(--hud);letter-spacing:.05em;}
.pcard .pmeta{display:flex;gap:18px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft);}
.pcard .pmeta .m .v{font-family:var(--hud);font-weight:700;font-size:24px;color:var(--acc);line-height:1;}
.pcard .pmeta .m .l{font-family:var(--hud);font-size:10px;letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;margin-top:5px;}
.pcard .pinfo{margin-top:18px;display:flex;flex-direction:column;gap:9px;}
.pcard .pinfo .row{display:flex;justify-content:space-between;font-size:13px;}
.pcard .pinfo .row .k{color:var(--ink-dim);font-family:var(--hud);letter-spacing:.06em;}
.pcard .pinfo .row .vv{color:var(--ink-mid);}

.pright{display:flex;flex-direction:column;gap:22px;}
.panel{background:var(--bg-2);border:1px solid var(--line-soft);padding:22px;}
.panel-h{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.panel-h .bar{width:4px;height:18px;background:var(--acc);box-shadow:0 0 8px var(--acc-glow);}
.panel-h h3{font-family:var(--cjk);font-weight:700;font-size:17px;margin:0;}
.panel-h .tag{margin-left:auto;font-family:var(--hud);font-size:11px;letter-spacing:.12em;color:var(--ink-dim);text-transform:uppercase;}

/* stats grid */
.statgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);}
.statgrid .s{background:var(--bg-1);padding:16px 14px;text-align:center;}
.statgrid .s .v{font-family:var(--hud);font-weight:700;font-size:22px;color:var(--ink);}
.statgrid .s .l{font-family:var(--hud);font-size:10px;letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase;margin-top:6px;}

/* equipped descendant inside profile */
.eqdesc{display:flex;gap:18px;align-items:center;}
.eqdesc .av{width:88px;height:88px;flex-shrink:0;background:var(--bg-3);overflow:hidden;border:1px solid var(--line);}
.eqdesc .av img{width:100%;height:100%;object-fit:cover;object-position:center 15%;}
.eqdesc .av .ph-ph{width:100%;height:100%;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:30px;color:var(--acc);}
.eqdesc .ed .role{font-family:var(--hud);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);}
.eqdesc .ed .nm{font-family:var(--cjk);font-weight:900;font-size:22px;line-height:1.1;margin-top:3px;}
.eqdesc .ed .nm small{font-family:var(--disp);font-weight:600;color:var(--ink-dim);font-size:13px;letter-spacing:.2em;margin-left:8px;}
.eqdesc .lvl{margin-left:auto;text-align:right;}
.eqdesc .lvl .v{font-family:var(--hud);font-weight:700;font-size:30px;color:var(--gold);line-height:1;}
.eqdesc .lvl .l{font-family:var(--hud);font-size:10px;letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;}

/* weapons row */
.wrow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.wmini{background:var(--bg-1);border:1px solid var(--line-soft);padding:14px;transition:.2s;cursor:pointer;}
.wmini:hover{border-color:var(--acc);transform:translateY(-2px);}
.wmini .wt{font-family:var(--hud);font-size:10px;letter-spacing:.12em;color:var(--ink-dim);text-transform:uppercase;display:flex;justify-content:space-between;}
.wmini .wn{font-family:var(--cjk);font-weight:700;font-size:15px;margin-top:8px;line-height:1.2;}
.wmini .we{font-family:var(--disp);font-size:11px;letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;}
.wmini .wa{font-family:var(--hud);font-weight:700;font-size:18px;color:var(--acc);margin-top:10px;}
.wmini .wa span{font-size:10px;color:var(--ink-dim);letter-spacing:.1em;}

/* modules / reactor chips */
.chips{display:flex;flex-wrap:wrap;gap:9px;}
.chips .chip{background:var(--bg-1);border:1px solid var(--line);color:var(--ink-mid);font-size:13px;padding:8px 13px;font-family:var(--hud);letter-spacing:.03em;}
.chips .chip b{color:var(--acc);}
.reactor{display:flex;align-items:center;gap:14px;background:var(--bg-1);border:1px solid var(--line-soft);padding:16px;}
.reactor .rc{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--tier-u);color:var(--tier-u);}
.reactor .rc svg{width:24px;height:24px;}
.reactor .rn{font-family:var(--cjk);font-weight:700;font-size:15px;}
.reactor .rm{font-family:var(--hud);font-size:12px;color:var(--ink-dim);margin-top:3px;letter-spacing:.05em;}
.reactor .ra{margin-left:auto;font-family:var(--hud);font-weight:700;font-size:20px;color:var(--ember-2);}

/* ---------- DATABASE shared (toolbar) ---------- */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:24px;}
.filters{display:flex;gap:6px;flex-wrap:wrap;}
.filters button{
  font-family:var(--hud);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mid);
  background:var(--bg-2);border:1px solid var(--line);padding:9px 16px;transition:.2s;
}
.filters button:hover{color:var(--ink);border-color:var(--ink-dim);}
.filters button.on{color:#04121f;background:var(--acc);border-color:var(--acc);}
.toolbar .find{margin-left:auto;display:flex;align-items:center;gap:9px;background:var(--bg-2);border:1px solid var(--line);padding:0 12px;height:40px;min-width:220px;}
.toolbar .find:focus-within{border-color:var(--acc);}
.toolbar .find svg{width:15px;height:15px;color:var(--ink-dim);}
.toolbar .find input{background:none;border:0;outline:0;color:var(--ink);font-family:var(--body);font-size:14px;width:100%;}

/* descendant grid */
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.dcard{
  background:var(--bg-2);border:1px solid var(--line-soft);overflow:hidden;cursor:pointer;position:relative;
  transition:transform .3s var(--ease),border-color .2s;
}
.dcard:hover{transform:translateY(-5px);border-color:var(--acc);}
.dcard .dimg{height:200px;position:relative;overflow:hidden;background:var(--bg-3);}
.dcard .dimg img{width:100%;height:100%;object-fit:cover;object-position:center 16%;transition:transform .5s var(--ease);}
.dcard:hover .dimg img{transform:scale(1.06);}
.dcard .dimg .ph-ph{width:100%;height:100%;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:64px;color:rgba(39,211,255,.18);background:radial-gradient(circle at 50% 35%,var(--bg-4),var(--bg-2));}
.dcard .dimg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--bg-2),transparent 50%);}
.dcard .tier{position:absolute;top:12px;right:12px;z-index:2;width:28px;height:28px;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:16px;background:rgba(5,7,13,.7);border:1px solid;}
.tier.S,.tier-S{color:var(--tier-s);border-color:var(--tier-s);}
.tier.A,.tier-A{color:var(--tier-a);border-color:var(--tier-a);}
.tier.U,.tier-U{color:var(--tier-u);border-color:var(--tier-u);}
.dcard .dbody{padding:0 16px 18px;position:relative;z-index:2;margin-top:-26px;}
.dcard .drole{font-family:var(--hud);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);}
.dcard .dnm{font-family:var(--cjk);font-weight:900;font-size:20px;line-height:1.1;margin-top:3px;}
.dcard .dnm small{display:block;font-family:var(--disp);font-weight:600;font-size:11px;letter-spacing:.2em;color:var(--ink-dim);text-transform:uppercase;margin-top:4px;}

/* weapon table */
.wtable{width:100%;border-collapse:collapse;background:var(--bg-2);border:1px solid var(--line-soft);}
.wtable th{font-family:var(--hud);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--bg-1);}
.wtable th.r,.wtable td.r{text-align:right;}
.wtable td{padding:14px 16px;border-bottom:1px solid var(--line-soft);font-size:14px;}
.wtable tr{cursor:pointer;transition:background .15s;}
.wtable tbody tr:hover{background:var(--bg-3);}
.wtable .wn{font-family:var(--cjk);font-weight:700;color:var(--ink);}
.wtable .we{font-family:var(--disp);font-size:11px;letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;}
.wtable .atkv{font-family:var(--hud);font-weight:700;color:var(--acc);}
.tierpill{font-family:var(--hud);font-size:11px;letter-spacing:.08em;padding:3px 9px;border:1px solid;text-transform:uppercase;}
.tierpill.Ultimate{color:var(--tier-u);border-color:var(--tier-u);}
.tierpill.Standard{color:var(--ink-mid);border-color:var(--line);}
.typetag{font-family:var(--hud);font-size:12px;color:var(--ink-mid);letter-spacing:.04em;}

/* ---------- detail drawer ---------- */
.drawer-bg{position:fixed;inset:0;z-index:80;background:rgba(3,6,12,.7);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .3s;}
.drawer-bg.on{opacity:1;pointer-events:auto;}
.drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:81;width:min(520px,92vw);background:var(--bg-1);
  border-left:1px solid var(--line);transform:translateX(100%);transition:transform .4s var(--ease);
  overflow-y:auto;box-shadow:-30px 0 60px -20px rgba(0,0,0,.7);
}
.drawer.on{transform:none;}
.drawer .dh{position:relative;height:260px;overflow:hidden;background:var(--bg-3);}
.drawer .dh img{width:100%;height:100%;object-fit:cover;object-position:center 14%;}
.drawer .dh .ph-ph{width:100%;height:100%;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:120px;color:rgba(39,211,255,.14);background:radial-gradient(circle at 50% 35%,var(--bg-4),var(--bg-1));}
.drawer .dh::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--bg-1),transparent 60%);}
.drawer .close{position:absolute;top:16px;right:16px;z-index:3;width:38px;height:38px;display:grid;place-items:center;background:rgba(5,7,13,.7);border:1px solid var(--line);color:var(--ink);font-size:18px;transition:.2s;}
.drawer .close:hover{border-color:var(--acc);color:var(--acc);}
.drawer .dcontent{padding:0 26px 40px;margin-top:-46px;position:relative;z-index:2;}
.drawer .drole{font-family:var(--hud);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);}
.drawer .dtitle{font-family:var(--cjk);font-weight:900;font-size:32px;line-height:1;margin:6px 0 4px;}
.drawer .dtitle small{display:block;font-family:var(--disp);font-weight:600;font-size:14px;letter-spacing:.24em;color:var(--ink-dim);text-transform:uppercase;margin-top:8px;}
.drawer .ddesc{color:var(--ink-mid);font-size:14px;line-height:1.7;margin:18px 0 24px;}
.dstats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);margin-bottom:26px;}
.dstats .s{background:var(--bg-2);padding:14px 16px;display:flex;justify-content:space-between;align-items:baseline;}
.dstats .s .l{font-family:var(--hud);font-size:11px;letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase;}
.dstats .s .v{font-family:var(--hud);font-weight:700;font-size:18px;color:var(--ink);}
.dskill{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line-soft);}
.dskill .si{width:42px;height:42px;flex-shrink:0;border:1px solid var(--acc);color:var(--acc);display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:18px;background:rgba(39,211,255,.06);}
.dskill .sn{font-family:var(--cjk);font-weight:700;font-size:15px;}
.dskill .se{font-family:var(--disp);font-size:11px;letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;}
.dskill .sd{color:var(--ink-mid);font-size:13px;margin-top:5px;line-height:1.55;}

/* empty / loading */
.empty{text-align:center;padding:80px 20px;color:var(--ink-dim);}
.empty svg{width:54px;height:54px;color:var(--line);margin:0 auto 18px;}
.empty h3{font-family:var(--cjk);font-weight:700;color:var(--ink-mid);font-size:18px;margin:0 0 6px;}
.skeleton{animation:pulse 1.2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.5;}}

/* key modal */
.modal-bg{position:fixed;inset:0;z-index:90;background:rgba(3,6,12,.74);backdrop-filter:blur(4px);display:none;place-items:center;padding:20px;}
.modal-bg.on{display:grid;}
.modal{background:var(--bg-2);border:1px solid var(--line);max-width:480px;width:100%;padding:30px;position:relative;}
.modal h3{font-family:var(--cjk);font-weight:900;font-size:22px;margin:0 0 6px;}
.modal p{color:var(--ink-mid);font-size:13px;line-height:1.7;margin:0 0 20px;}
.modal label{font-family:var(--hud);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);display:block;margin-bottom:8px;}
.modal input{width:100%;background:var(--bg-1);border:1px solid var(--line);color:var(--ink);padding:13px 14px;font-family:var(--hud);font-size:14px;outline:0;}
.modal input:focus{border-color:var(--acc);}
.modal .acts{display:flex;gap:10px;margin-top:22px;}
.modal .btn{flex:1;padding:13px;font-family:var(--hud);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:13px;border:0;}
.modal .btn.primary{background:var(--acc);color:#04121f;}
.modal .btn.ghost{background:transparent;color:var(--ink-mid);border:1px solid var(--line);}
.modal .note{font-size:11px;color:var(--ink-dim);margin-top:16px;line-height:1.6;}
.modal .note a{color:var(--acc);}
.modal .close{position:absolute;top:16px;right:16px;width:34px;height:34px;display:grid;place-items:center;background:none;border:1px solid var(--line);color:var(--ink-mid);font-size:16px;}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .dgrid{grid-template-columns:repeat(3,1fr);}
  .profile{grid-template-columns:1fr;}
  .pcard{max-width:420px;}
}
@media (max-width:780px){
  .topbar{flex-wrap:wrap;height:auto;padding:12px 16px;gap:12px;}
  .gsearch{order:3;max-width:none;width:100%;}
  .brand{order:1;}.keychip{order:2;margin-left:auto;}
  .tabs{top:0;position:static;overflow-x:auto;}
  .statgrid{grid-template-columns:repeat(3,1fr);}
  .dgrid{grid-template-columns:repeat(2,1fr);}
  .wrow{grid-template-columns:1fr;}
  .toolbar .find{margin-left:0;width:100%;}
  .wtable .hide-sm{display:none;}
}
@media (max-width:460px){
  .dgrid{grid-template-columns:1fr;}
  .statgrid{grid-template-columns:repeat(2,1fr);}
}
