:root{
  --bg:#04080f;--p1:#060c16;--p2:#090f1c;--b1:#0d1f35;--b2:#132840;
  --cy:#00d4e8;--cy2:#006070;--cy3:#001a20;
  --gd:#f0c040;--gd2:#6a5010;
  --gr:#00e890;--gr2:#005530;
  --rd:#ff4060;--rd2:#500018;
  --mg:#b060ff;--mg2:#401870;
  --tx:#8ab8cc;--wh:#d8eef8;--dm:#1a3040;--mt:#0a1620;
  --H:'Orbitron',monospace;--M:'Rajdhani',sans-serif;--C:'Share Tech Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--tx);font-family:var(--M);}

/* ══ SHOWCASE — CINEMATIC v3 ══ */
#showcase-root{position:fixed;inset:0;z-index:0;overflow:hidden;}

/* Slide base — smooth crossfade with scale shift */
.cslide{
  position:absolute;inset:0;opacity:0;overflow:hidden;
  transition:opacity 3.2s cubic-bezier(.25,.1,.25,1);
  will-change:opacity,transform;
}
.cslide.active{opacity:1;}
.cslide.leaving{opacity:0;transition:opacity 3.2s cubic-bezier(.25,.1,.25,1);}
/* Char label fade on transition */
.char-meta{transition:opacity .6s ease;}

/* ── 7 distinct Ken Burns / cinematic motion variants ── */
@keyframes kb-zoomin   {0%{transform:scale(1.12) translate(0%,0%)}  100%{transform:scale(1.01) translate(0%,0%)}}
@keyframes kb-zoomout  {0%{transform:scale(1.0)  translate(0%,0%)}  100%{transform:scale(1.10) translate(0%,0%)}}
@keyframes kb-panleft  {0%{transform:scale(1.06) translate(2%,0%)}  100%{transform:scale(1.02) translate(-2%,0%)}}
@keyframes kb-panright {0%{transform:scale(1.06) translate(-2%,0%)} 100%{transform:scale(1.02) translate(2%,0%)}}
@keyframes kb-panup    {0%{transform:scale(1.07) translate(0%,2%)}  100%{transform:scale(1.02) translate(0%,-2%)}}
@keyframes kb-diagonal {0%{transform:scale(1.09) translate(2%,2%)}  100%{transform:scale(1.01) translate(-1%,-1%)}}
@keyframes kb-drift    {0%{transform:scale(1.04) translate(-1%,-1%)} 50%{transform:scale(1.06) translate(1%,.5%)} 100%{transform:scale(1.03) translate(0%,-0.5%)}}

.cslide.active .slide-bg{animation:kb-zoomin 32s ease-in-out forwards;}
.cslide.active.v1 .slide-bg{animation:kb-zoomout  30s ease-in-out forwards;}
.cslide.active.v2 .slide-bg{animation:kb-panleft  34s linear forwards;}
.cslide.active.v3 .slide-bg{animation:kb-panright 32s linear forwards;}
.cslide.active.v4 .slide-bg{animation:kb-panup    36s ease-in-out forwards;}
.cslide.active.v5 .slide-bg{animation:kb-diagonal 30s ease-in-out forwards;}
.cslide.active.v6 .slide-bg{animation:kb-drift    38s ease-in-out forwards;}

.slide-bg{
  position:absolute;inset:-5%;  /* extra room for motion without edges showing */
  background-size:cover;
  background-position:center 12%;
  transform-origin:center center;
  will-change:transform;
}

/* Rich overlay — left sidebar coverage + cinematic vignette */
.slide-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(to right,
      rgba(4,8,15,.97) 0%,
      rgba(4,8,15,.88) 260px,
      rgba(4,8,15,.32) 46%,
      rgba(4,8,15,.02) 64%,
      rgba(4,8,15,.20) 100%),
    linear-gradient(to bottom,
      rgba(4,8,15,.50) 0%,
      transparent 13%,
      transparent 72%,
      rgba(4,8,15,.95) 100%);
}

/* Bloom orbs */
.slide-bloom{position:absolute;border-radius:50%;filter:blur(130px);opacity:0;transition:opacity 3s ease;pointer-events:none;}
.cslide.active .slide-bloom{opacity:.16;}
.cslide.active .slide-bloom2{opacity:.10;}

/* Colour vignette pulse */
@keyframes bloom-pulse{0%,100%{opacity:.11;}50%{opacity:.19;}}
.cslide.active .slide-bloom{animation:bloom-pulse 9s ease-in-out infinite;}

.slide-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;}
/* Particles confined to right panel — don't cover character */
.slide-particles .ep{position:absolute;opacity:0;}
.ep{position:absolute;opacity:0;}

/* ❄ GLACIO — snowflake falls top→bottom with slow spin */
@keyframes snow-fall{
  0%  {transform:translateY(0)     rotate(0deg)   scale(1);   opacity:0;}
  6%  {opacity:.95;}
  88% {opacity:.4;}
  100%{transform:translateY(95vh)  rotate(220deg) scale(.5);  opacity:0;}
}
/* gentle side sway on top of the fall */
@keyframes snow-sway{
  0%,100%{margin-left:0;}
  25%    {margin-left:var(--sw);}
  75%    {margin-left:calc(var(--sw)*-0.6);}
}

/* 🔥 FUSION — campfire sparks: erratic jitter upward */
@keyframes spark-pop{
  0%  {transform:translate(0,0) scale(0) rotate(0deg);                              opacity:0;}
  4%  {transform:translate(0,0) scale(1.5) rotate(var(--sa));                       opacity:1;}
  35% {transform:translate(var(--sx1),var(--sy1)) scale(1) rotate(var(--sa));       opacity:.9;}
  68% {transform:translate(var(--sx2),var(--sy2)) scale(.6) rotate(var(--sa));      opacity:.5;}
  100%{transform:translate(var(--sx3),var(--sy3)) scale(0)  rotate(var(--sa));      opacity:0;}
}
@keyframes streak-shoot{
  0%  {transform:translate(0,0)                              scale(.2) rotate(var(--sa)); opacity:0;}
  4%  {opacity:1; transform:translate(0,0)                   scale(1)  rotate(var(--sa));}
  50% {transform:translate(var(--sx1),var(--sy1))            scale(.7) rotate(var(--sa)); opacity:.7;}
  100%{transform:translate(var(--sx2),var(--sy2))            scale(0)  rotate(var(--sa)); opacity:0;}
}

/* ✨ SPECTRO — star/orb gentle float up with slight drift */
@keyframes spectro-float{
  0%  {transform:translateY(0)     scale(1.6)   translateX(0);     opacity:0;}
  8%  {opacity:1;}
  42% {transform:translateY(-22vh) scale(1.8) translateX(var(--sx1)); opacity:.8;}
  78% {transform:translateY(-50vh) scale(1.4)  translateX(var(--sx2)); opacity:.4;}
  100%{transform:translateY(-70vh) scale(.2)  translateX(var(--sx3)); opacity:0;}
}
/* star twinkle — quick scale pulse */
@keyframes twinkle{
  0%,100%{filter:drop-shadow(0 0 var(--sg) rgba(var(--sc),var(--sa)));}
  50%    {filter:drop-shadow(0 0 calc(var(--sg)*2.5) rgba(var(--sc),calc(var(--sa)*1.6)));}
}

/* 🌸 HAVOC — small flowers float upward gently */
@keyframes flower-float{
  0%  {transform:translate(0,0) rotate(0deg) scale(0); opacity:0;}
  7%  {transform:translate(0,0) rotate(var(--fr,0deg)) scale(1); opacity:.92;}
  30% {transform:translate(var(--fx1,10px),var(--fy1,-8vh)) rotate(calc(var(--fr,0deg) + 30deg)) scale(1.05); opacity:.9;}
  55% {transform:translate(var(--fx2,20px),var(--fy2,-20vh)) rotate(calc(var(--fr,0deg) + 90deg)) scale(.88); opacity:.7;}
  78% {transform:translate(var(--fx3,5px),var(--fy3,-34vh)) rotate(calc(var(--fr,0deg) + 160deg)) scale(.6); opacity:.35;}
  100%{transform:translate(var(--fx4,15px),var(--fy4,-45vh)) rotate(calc(var(--fr,0deg) + 250deg)) scale(.1); opacity:0;}
}
/* 🦋 PAPRI butterfly wander + wing flap */
@keyframes butterfly-wander{
  0%  {transform:translate(0,0) rotate(var(--br,0deg));}
  18% {transform:translate(var(--bwx,30px),var(--bwy,-15px)) rotate(calc(var(--br,0deg)+10deg));}
  38% {transform:translate(var(--bwx2,60px),var(--bwy2,20px)) rotate(calc(var(--br,0deg)-8deg));}
  58% {transform:translate(var(--bwx3,40px),var(--bwy3,-30px)) rotate(calc(var(--br,0deg)+6deg));}
  78% {transform:translate(var(--bwx,-20px),var(--bwy,10px)) rotate(calc(var(--br,0deg)-12deg));}
  100%{transform:translate(0,0) rotate(var(--br,0deg));}
}
@keyframes butterfly-fade{
  0%,100%{opacity:0;}
  10%    {opacity:.85;}
  85%    {opacity:.75;}
  96%    {opacity:0;}
}
/* 🌸 single petal fall — top-down drift with spin */
@keyframes petal-fall{
  0%  {transform:translate(0,0) rotate(var(--pa,0deg)) scale(1); opacity:0;}
  8%  {opacity:.9;}
  32% {transform:translate(var(--pfx1,8px),var(--pfy1,12vh)) rotate(calc(var(--pa,0deg)+55deg)) scale(.95);}
  62% {transform:translate(var(--pfx2,20px),var(--pfy2,30vh)) rotate(calc(var(--pa,0deg)+125deg)) scale(.82); opacity:.55;}
  90% {transform:translate(var(--pfx3,30px),var(--pfy3,52vh)) rotate(calc(var(--pa,0deg)+210deg)) scale(.65); opacity:.15;}
  100%{transform:translate(var(--pfx3,30px),var(--pfy3,60vh)) rotate(calc(var(--pa,0deg)+260deg)) scale(.4); opacity:0;}
}

/* 🌿 AERO — leaves drift sideways on wind, slight vertical oscillation */
@keyframes leaf-drift{
  0%  {transform:translate(0,0) rotate(0deg) scale(1); opacity:0;}
  5%  {opacity:.9;}
  25% {transform:translate(var(--lx1),var(--ly1)) rotate(var(--lr1)) scale(.95);}
  50% {transform:translate(var(--lx2),var(--ly2)) rotate(var(--lr2)) scale(1.02);}
  75% {transform:translate(var(--lx3),var(--ly3)) rotate(var(--lr3)) scale(.97);}
  92% {opacity:.5;}
  100%{transform:translate(var(--lx4),var(--ly4)) rotate(var(--lr4)) scale(.9); opacity:0;}
}
@keyframes leaf-sway{
  0%  {transform:translateY(0) translateX(0) rotate(0deg); opacity:0;}
  8%  {opacity:.9;}
  48% {transform:translateY(-30vh) translateX(26px) rotate(105deg); opacity:.55;}
  100%{transform:translateY(-68vh) translateX(-16px) rotate(240deg); opacity:0;}
}

/* ⚡ ELECTRO — thunderbolt dramatic multi-flicker */
@keyframes bolt-strike{
  0%   {opacity:0; filter:brightness(1) saturate(1);}

  1%   {opacity:1;  filter:brightness(5) saturate(2.2) hue-rotate(-10deg);}   /* MAIN FLASH — intense */
  2.5% {opacity:0.06;}

  5%   {opacity:1;  filter:brightness(4) saturate(1.8);}  /* echo flash 1 */
  7%   {opacity:0.04;}

  9.5% {opacity:0.9; filter:brightness(3.5) saturate(1.6);} /* echo flash 2 */
  12%  {opacity:0.02;}

  14.5%{opacity:0.75; filter:brightness(2.8);}              /* echo flash 3 */
  17%  {opacity:0;}

  20%  {opacity:0.5;  filter:brightness(2.2);}              /* ghost linger */
  24%  {opacity:0.02;}

  100% {opacity:0;}
}
/* ⚡ screen flash pulse on each major strike */
@keyframes electro-screenflash{
  0%,100%{opacity:0;}
  1.2%   {opacity:.12;}
  2.8%   {opacity:0;}
  5.2%   {opacity:.07;}
  7.2%   {opacity:0;}
  8%     {opacity:.05;}
  12%    {opacity:0;}
}
/* ⚡ plasma orb pulse */
@keyframes plasma-pulse{
  0%,100%{transform:scale(1);opacity:.55;}
  50%    {transform:scale(1.22);opacity:.85;}
}
/* 🌸 HAVOC — flower blast radial burst outward */
@keyframes flower-blast{
  0%  {transform:translate(0,0) rotate(0deg) scale(0); opacity:0;}
  6%  {transform:translate(calc(var(--bdx)*.06),calc(var(--bdy)*.06)) scale(1.5) rotate(var(--brot)); opacity:1;}
  28% {transform:translate(calc(var(--bdx)*.32),calc(var(--bdy)*.32)) scale(1.15) rotate(calc(var(--brot)*1.4)); opacity:.92;}
  58% {transform:translate(calc(var(--bdx)*.68),calc(var(--bdy)*.68)) scale(.8) rotate(calc(var(--brot)*2)); opacity:.6;}
  100%{transform:translate(var(--bdx),var(--bdy)) scale(.08) rotate(calc(var(--brot)*3)); opacity:0;}
}
/* 🌸 HAVOC — blast shockwave ring */
@keyframes blast-ring{
  0%  {transform:translate(-50%,-50%) scale(0); opacity:.9;}
  40% {opacity:.5;}
  100%{transform:translate(-50%,-50%) scale(1); opacity:0;}
}

#scanlines{position:fixed;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 4px);}
#grid-ov{position:fixed;inset:0;z-index:2;pointer-events:none;background-image:linear-gradient(rgba(0,212,232,.011) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,232,.011) 1px,transparent 1px);background-size:36px 36px;}

.det-section{padding:0 12px 6px;display:none;}
.nav-links{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:5px;padding:8px 14px;
  border-bottom:1px solid rgba(0,212,232,.07);
  flex-shrink:0;
}
.nav-link{
  font-family:var(--H);font-size:.48rem;letter-spacing:.08em;
  padding:6px 4px;border-radius:5px;border:1px solid;
  cursor:pointer;text-decoration:none;transition:all .18s;
  white-space:nowrap;text-align:center;display:flex;
  align-items:center;justify-content:center;gap:3px;
  line-height:1.2;
}
.nav-link.home{border-color:rgba(0,212,232,.25);color:var(--cy);}
.nav-link.home:hover{background:rgba(0,212,232,.1);border-color:var(--cy);box-shadow:0 0 8px rgba(0,212,232,.15);}
.nav-link.ai{border-color:rgba(240,192,64,.25);color:var(--gd);}
.nav-link.ai:hover{background:rgba(240,192,64,.1);border-color:var(--gd);box-shadow:0 0 8px rgba(240,192,64,.15);}
.nav-link.vis{border-color:rgba(176,96,255,.25);color:var(--mg);}
.nav-link.vis:hover{background:rgba(176,96,255,.1);border-color:var(--mg);box-shadow:0 0 8px rgba(176,96,255,.15);}
.nav-link:active{transform:scale(.96);}

/* ══ DETECTED LOG SECTION ══ */
.det-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(0,212,232,.1);}
.det-badge{font-family:var(--C);font-size:.5rem;padding:2px 6px;border-radius:3px;background:rgba(0,232,144,.08);border:1px solid rgba(0,232,144,.2);color:#00e890;letter-spacing:.05em;}
.det-group-hd{display:flex;align-items:center;gap:5px;margin-bottom:4px;}
.det-group-icon{width:16px;height:16px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.65rem;flex-shrink:0;}
.det-group-line{flex:1;height:1px;background:rgba(0,212,232,.08);}
.det-rows{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.det-cell{padding:3px 6px;border-radius:4px;background:rgba(13,31,53,.5);border:1px solid rgba(0,212,232,.06);display:flex;flex-direction:column;gap:1px;}
.det-cell.wide{grid-column:span 2;}
.det-ck{font-family:var(--C);font-size:.5rem;color:rgba(138,184,204,.35);letter-spacing:.06em;line-height:1;}
.det-cv{font-family:var(--C);font-size:.64rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.det-cv.cy{color:#00d4e8;}.det-cv.gr{color:#00e890;}.det-cv.gd{color:#f0c040;}.det-cv.rd{color:#ff4060;}.det-cv.mg{color:#b060ff;}.det-cv.wh{color:#d8eef8;}.det-cv.sm{color:rgba(216,238,248,.5);}
.det-status-row{display:flex;gap:3px;flex-wrap:wrap;margin-bottom:6px;}
.det-stat-chip{font-family:var(--C);font-size:.52rem;padding:2px 7px;border-radius:10px;border:1px solid;white-space:nowrap;}
.det-stat-chip.gr{border-color:rgba(0,232,144,.3);color:#00e890;background:rgba(0,232,144,.06);}
.det-stat-chip.gd{border-color:rgba(240,192,64,.3);color:#f0c040;background:rgba(240,192,64,.06);}
.det-stat-chip.rd{border-color:rgba(255,64,96,.3);color:#ff4060;background:rgba(255,64,96,.06);}
.det-stat-chip.cy{border-color:rgba(0,212,232,.3);color:#00d4e8;background:rgba(0,212,232,.06);}
.det-stat-chip.mg{border-color:rgba(176,96,255,.3);color:#b060ff;background:rgba(176,96,255,.06);}
.det-net-alert{margin:4px 0;padding:5px 8px;border-radius:4px;background:rgba(255,64,96,.05);border:1px solid rgba(255,64,96,.2);}
.det-net-alert-title{font-family:var(--H);font-size:.48rem;color:#ff6070;letter-spacing:.1em;margin-bottom:2px;}
.det-net-alert-val{font-family:var(--C);font-size:.6rem;color:var(--gd);}
.det-diag{margin-top:5px;}
.det-diag-title{font-family:var(--H);font-size:.48rem;color:rgba(0,212,232,.35);letter-spacing:.15em;margin-bottom:3px;}
.det-diag-item{font-family:var(--C);font-size:.59rem;padding:3px 7px;border-radius:3px;margin-bottom:2px;line-height:1.4;}
.det-diag-item.gr{background:rgba(0,232,144,.06);border-left:2px solid rgba(0,232,144,.4);color:#00e890;}
.det-diag-item.gd{background:rgba(240,192,64,.06);border-left:2px solid rgba(240,192,64,.4);color:#f0c040;}
.det-diag-item.rd{background:rgba(255,64,96,.06);border-left:2px solid rgba(255,64,96,.4);color:#ff6070;}

/* ══ CHAR LABEL ══ */
.char-meta{position:fixed;z-index:8;right:0;bottom:80px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:0 24px;pointer-events:none;transition:opacity .6s;}
#clab-elem-icon{font-size:.65rem;letter-spacing:.22em;font-family:var(--C);padding:3px 10px;border-radius:2px;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(4px);transition:all 1s ease;}
#clab-name{font-family:var(--H);font-weight:900;font-size:2.2rem;letter-spacing:.3em;line-height:1;text-shadow:0 0 40px rgba(34,211,238,.25),0 2px 4px rgba(0,0,0,.8);transition:all .8s ease;white-space:nowrap;-webkit-text-stroke:1px rgba(255,255,255,.06);}
.clab-sep{width:60px;height:1px;background:linear-gradient(to left,rgba(255,255,255,.25),transparent);align-self:flex-end;}
#clab-sub{font-family:var(--C);font-size:.6rem;letter-spacing:.15em;transition:all .8s ease;}

/* ══ SLIDE DOTS ══ */
.cdots-wrap{position:fixed;z-index:5;bottom:18px;right:18px;display:flex;gap:5px;align-items:center;}
.cdot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .35s;}
.cdot.active{width:22px;border-radius:3px;background:var(--cy);box-shadow:0 0 10px rgba(0,212,232,.5);}

#slide-prog{position:fixed;bottom:0;left:0;z-index:10;width:0%;height:2px;background:linear-gradient(to right,var(--cy),var(--mg));pointer-events:none;}

/* ══ APP SHELL ══ */
.app-shell{position:relative;z-index:10;display:grid;grid-template-columns:310px 1fr;height:100vh;overflow:hidden;}

/* ══ SIDEBAR ══ */
.sidebar{height:100vh;overflow-y:auto;overflow-x:hidden;background:linear-gradient(to bottom,rgba(4,8,15,.97),rgba(6,12,22,.95));border-right:1px solid rgba(0,212,232,.08);display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:rgba(0,212,232,.15) transparent;}
.sidebar-spacer{flex:1;min-height:8px;}
.sidebar::-webkit-scrollbar{width:3px;}.sidebar::-webkit-scrollbar-thumb{background:rgba(0,212,232,.15);border-radius:2px;}

.sidebar-header{padding:14px 14px 10px;border-bottom:1px solid rgba(0,212,232,.07);flex-shrink:0;}
.logo-title{font-family:var(--H);font-size:.9rem;color:var(--cy);letter-spacing:.18em;font-weight:900;}
.logo-sub{font-size:.68rem;color:var(--dm);margin-top:2px;letter-spacing:.05em;}

.plat-switch{display:flex;gap:5px;padding:10px 14px 6px;flex-shrink:0;}
.plat-btn{flex:1;padding:7px 4px;border-radius:5px;cursor:pointer;font-family:var(--H);font-size:.56rem;letter-spacing:.1em;border:1.5px solid;transition:all .2s;text-align:center;}
.plat-btn.android{border-color:rgba(0,232,144,.2);color:var(--gr);background:transparent;}
.plat-btn.android.active{border-color:var(--gr);background:rgba(0,232,144,.07);box-shadow:0 0 10px rgba(0,232,144,.1);}
.plat-btn.pc{border-color:rgba(0,212,232,.2);color:var(--cy);background:transparent;}
.plat-btn.pc.active{border-color:var(--cy);background:rgba(0,212,232,.07);box-shadow:0 0 10px rgba(0,212,232,.1);}

.sidebar-section{padding:8px 14px;}
.sec-label{font-family:var(--H);font-size:.56rem;color:rgba(0,212,232,.4);letter-spacing:.18em;margin-bottom:6px;}

/* Drop zone */
.drop-zone{border:1.5px dashed rgba(0,212,232,.18);border-radius:7px;padding:12px 10px;text-align:center;cursor:pointer;transition:all .2s;position:relative;}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--cy);background:rgba(0,212,232,.04);}
.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.dz-icon{font-size:1.3rem;margin-bottom:3px;}
.dz-label{font-size:.76rem;color:var(--tx);}
.dz-hint{font-family:var(--C);font-size:.58rem;color:var(--dm);margin-top:2px;}
#file-info-bar{display:none;font-family:var(--C);font-size:.62rem;color:var(--gr);margin-top:4px;padding:3px 7px;background:rgba(0,232,144,.05);border:1px solid rgba(0,232,144,.12);border-radius:4px;word-break:break-all;line-height:1.5;}

/* Detected section */
#detected-section{display:none;padding:0 14px 4px;}
.info-grid{display:flex;flex-direction:column;gap:2px;}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;border-bottom:1px solid rgba(0,212,232,.04);}
.info-k{font-family:var(--C);font-size:.58rem;color:var(--dm);flex-shrink:0;}
.info-v{font-family:var(--C);font-size:.6rem;text-align:right;max-width:58%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.info-v.ok{color:var(--cy);}.info-v.warn{color:var(--gd);}.info-v.err{color:var(--rd);}.info-v.dim{color:rgba(0,212,232,.22);}
.issues-title{font-family:var(--H);font-size:.52rem;color:rgba(0,212,232,.35);letter-spacing:.15em;margin:6px 0 3px;}
.issue-item{font-family:var(--C);font-size:.6rem;padding:3px 7px;border-radius:3px;margin-bottom:2px;}
.issue-item.red  {background:rgba(255,64,96,.04);border-left:2px solid rgba(255,64,96,.25);color:var(--rd);}
.issue-item.yellow{background:rgba(240,192,64,.04);border-left:2px solid rgba(240,192,64,.25);color:var(--gd);}
.issue-item.green{background:rgba(0,232,144,.04);border-left:2px solid rgba(0,232,144,.25);color:var(--gr);}
.rtt-box{display:none;margin:4px 0;padding:6px 9px;background:rgba(255,64,96,.04);border:1px solid rgba(255,64,96,.18);border-radius:5px;}
.rtt-title{font-family:var(--H);font-size:.54rem;color:var(--rd);letter-spacing:.1em;margin-bottom:2px;}
.rtt-detail{font-family:var(--C);font-size:.6rem;color:var(--gd);}

/* Presets */
.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px 14px;}
.preset-card{padding:8px 6px;border-radius:6px;cursor:pointer;border:1.5px solid;font-family:var(--H);font-size:.56rem;letter-spacing:.06em;text-align:center;transition:all .2s;line-height:1.4;background:transparent;}
.preset-card:hover,.preset-card.active{transform:translateY(-1px);}
.preset-card.perf{border-color:rgba(0,232,144,.18);}.preset-card.perf .pname{color:var(--gr);}
.preset-card.perf:hover,.preset-card.perf.active{border-color:var(--gr);background:rgba(0,232,144,.06);box-shadow:0 0 10px rgba(0,232,144,.1);}
.preset-card.bal{border-color:rgba(0,212,232,.18);}.preset-card.bal .pname{color:var(--cy);}
.preset-card.bal:hover,.preset-card.bal.active{border-color:var(--cy);background:rgba(0,212,232,.06);box-shadow:0 0 10px rgba(0,212,232,.1);}
.preset-card.hi{border-color:rgba(176,96,255,.18);}.preset-card.hi .pname{color:var(--mg);}
.preset-card.hi:hover,.preset-card.hi.active{border-color:var(--mg);background:rgba(176,96,255,.06);box-shadow:0 0 10px rgba(176,96,255,.1);}
.preset-card.vh{border-color:rgba(240,192,64,.18);}.preset-card.vh .pname{color:var(--gd);}
.preset-card.vh:hover,.preset-card.vh.active{border-color:var(--gd);background:rgba(240,192,64,.06);box-shadow:0 0 10px rgba(240,192,64,.1);}
.pname{display:block;font-size:.68rem;font-weight:700;}.psub{display:block;font-size:.52rem;opacity:.5;font-family:var(--M);margin-top:1px;}

/* Options */
.opts-list{padding:0 14px 8px;display:flex;flex-direction:column;}
.opt-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(0,212,232,.04);}
.opt-label{font-size:.75rem;color:var(--wh);}
.opt-sub{display:block;font-family:var(--C);font-size:.54rem;color:var(--dm);margin-top:1px;}
.opt-row select{background:rgba(9,15,28,.9);border:1px solid rgba(0,212,232,.18);border-radius:4px;color:var(--cy);font-family:var(--C);font-size:.68rem;padding:3px 5px;outline:none;}
.tog{width:34px;height:18px;position:relative;cursor:pointer;flex-shrink:0;}
.tog input{opacity:0;position:absolute;}
.tog-track{width:100%;height:100%;border-radius:9px;background:rgba(9,15,28,.9);border:1px solid rgba(0,212,232,.12);display:block;transition:all .2s;}
.tog input:checked~.tog-track{background:rgba(0,212,232,.15);border-color:var(--cy);}
.tog-th{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--b2);transition:all .2s;pointer-events:none;}
.tog input:checked~.tog-th{left:18px;background:var(--cy);box-shadow:0 0 5px rgba(0,212,232,.4);}

/* Footer */
.sidebar-footer{padding:10px 14px;border-top:1px solid rgba(0,212,232,.07);flex-shrink:0;margin-top:auto;}
.gen-btn{width:100%;padding:10px;border-radius:6px;cursor:pointer;font-family:var(--H);font-size:.68rem;letter-spacing:.14em;border:1.5px solid rgba(0,212,232,.35);color:var(--cy);background:linear-gradient(135deg,rgba(0,212,232,.1),rgba(0,212,232,.03));transition:all .2s;}
.gen-btn:hover{background:rgba(0,212,232,.18);box-shadow:0 0 18px rgba(0,212,232,.15);}
.reset-btn{width:100%;padding:7px;border-radius:6px;cursor:pointer;margin-top:5px;font-family:var(--H);font-size:.6rem;letter-spacing:.1em;border:1.5px solid rgba(255,64,96,.2);color:var(--rd);background:transparent;transition:all .2s;}
.reset-btn:hover{background:rgba(255,64,96,.07);border-color:var(--rd);}

/* ══ BRAIN TOGGLE ══ */
.brain-toggle{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(240,192,64,.08);}
.bt-label{display:flex;align-items:center;gap:6px;}
.bt-icon{font-size:.9rem;}
.bt-text{font-family:var(--H);font-size:.52rem;letter-spacing:.12em;color:var(--gd);}
.bt-switch{width:36px;height:20px;position:relative;cursor:pointer;flex-shrink:0;}
.bt-switch input{opacity:0;position:absolute;width:0;height:0;}
.bt-track{width:100%;height:100%;border-radius:10px;background:rgba(240,192,64,.12);border:1px solid rgba(240,192,64,.18);display:block;transition:all .2s;}
.bt-switch.active .bt-track{background:rgba(240,192,64,.25);border-color:var(--gd);}
.bt-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--b2);transition:all .2s;pointer-events:none;}
.bt-switch.active .bt-thumb{left:19px;background:var(--gd);box-shadow:0 0 8px rgba(240,192,64,.5);}
.brain-status{font-family:var(--C);font-size:.52rem;color:var(--dm);margin-top:4px;line-height:1.4;}

/* ══ BRAIN PANEL ══ */
.brain-panel-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(240,192,64,.1);}
.bp-icon{font-size:.8rem;}
.bp-title{font-family:var(--H);font-size:.5rem;letter-spacing:.12em;color:var(--gd);}
.brain-panel-content{font-size:.68rem;line-height:1.6;}
.bp-rec-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(0,212,232,.04);}
.bp-rec-label{color:var(--tx);}
.bp-rec-value{font-family:var(--C);font-size:.64rem;color:var(--gd);}
.bp-score{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 8px;background:rgba(240,192,64,.06);border-radius:5px;border:1px solid rgba(240,192,64,.12);}
.bp-score-bar{flex:1;height:6px;background:rgba(0,212,232,.1);border-radius:3px;overflow:hidden;}
.bp-score-fill{height:100%;background:linear-gradient(to right,var(--gr),var(--gd));border-radius:3px;transition:width .4s ease;}
.bp-score-text{font-family:var(--C);font-size:.6rem;color:var(--gd);min-width:32px;text-align:right;}
.bp-issue{display:flex;align-items:center;gap:5px;padding:3px 6px;border-radius:3px;margin-bottom:3px;font-size:.6rem;}
.bp-issue.warning{background:rgba(240,192,64,.06);border-left:2px solid rgba(240,192,64,.4);color:var(--gd);}
.bp-issue.error{background:rgba(255,64,96,.06);border-left:2px solid rgba(255,64,96,.4);color:var(--rd);}
.bp-issue.info{background:rgba(0,212,232,.06);border-left:2px solid rgba(0,212,232,.4);color:var(--cy);}
.bp-suggest{margin-top:6px;padding:5px 7px;background:rgba(0,232,144,.04);border-radius:4px;border-left:2px solid rgba(0,232,144,.3);}
.bp-suggest-label{font-family:var(--H);font-size:.44rem;letter-spacing:.1em;color:var(--gr);margin-bottom:3px;}
.bp-suggest-item{font-family:var(--C);font-size:.58rem;color:var(--tx);display:flex;align-items:center;gap:4px;}
.bp-suggest-item::before{content:"•";color:var(--gr);}
.brain-panel-actions{display:flex;gap:6px;margin-top:8px;}
.bp-apply-btn{flex:1;padding:6px;border-radius:4px;cursor:pointer;font-family:var(--H);font-size:.52rem;letter-spacing:.08em;border:1px solid var(--gd);color:var(--gd);background:rgba(240,192,64,.08);transition:all .2s;}
.bp-apply-btn:hover{background:rgba(240,192,64,.18);box-shadow:0 0 10px rgba(240,192,64,.2);}
.bp-dismiss-btn{padding:6px 10px;border-radius:4px;cursor:pointer;font-family:var(--H);font-size:.52rem;letter-spacing:.08em;border:1px solid rgba(0,212,232,.2);color:var(--tx);background:transparent;transition:all .2s;}
.bp-dismiss-btn:hover{background:rgba(0,212,232,.08);}

/* ══ MAIN AREA ══ */
.main-area{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:rgba(4,8,15,.12);}
.topbar{flex-shrink:0;padding:8px 16px;height:46px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,212,232,.07);background:rgba(4,8,15,.7);backdrop-filter:blur(8px);}
.install-path{font-family:var(--C);font-size:.6rem;color:var(--gd);opacity:.65;}
.tab-bar{flex-shrink:0;display:flex;align-items:stretch;border-bottom:1px solid rgba(0,212,232,.07);background:rgba(4,8,15,.6);backdrop-filter:blur(6px);overflow-x:auto;}
.tab-bar::-webkit-scrollbar{height:2px;}
.tab-btn{padding:8px 16px;font-family:var(--H);font-size:.58rem;letter-spacing:.1em;color:rgba(0,212,232,.3);border-bottom:2px solid transparent;transition:all .18s;background:none;cursor:pointer;white-space:nowrap;flex-shrink:0;border-top:none;border-left:none;border-right:none;}
.tab-btn:hover{color:var(--tx);background:rgba(0,212,232,.03);}
.tab-btn.active{color:var(--cy);border-bottom-color:var(--cy);background:rgba(0,212,232,.04);}
.tab-content{flex:1;overflow:hidden;display:none;}
.tab-content.active{display:flex;}
.code-view{flex:1;overflow:auto;padding:12px 14px;scrollbar-width:thin;scrollbar-color:rgba(0,212,232,.1) transparent;}
.code-view::-webkit-scrollbar{width:3px;}.code-view::-webkit-scrollbar-thumb{background:rgba(0,212,232,.12);}
.code-inner{font-family:var(--C);font-size:.7rem;line-height:1.75;white-space:pre;}
.c-banner{color:rgba(0,212,232,.18);}.c-comment{color:rgba(0,212,232,.32);}.c-section{color:var(--mg);font-weight:700;}.c-key{color:var(--cy);}.c-equals{color:rgba(0,212,232,.18);}.c-val-num{color:var(--gd);}.c-val-str{color:var(--gr);}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;opacity:.3;}
.empty-icon{font-size:3rem;margin-bottom:12px;}
.empty-txt{font-family:var(--H);font-size:.62rem;letter-spacing:.12em;color:var(--cy);text-align:center;line-height:2;}

/* DL Bar */
.dl-bar{flex-shrink:0;padding:8px 14px;border-top:1px solid rgba(0,212,232,.07);background:rgba(4,8,15,.85);display:none;align-items:center;gap:8px;flex-wrap:wrap;}
.dl-bar.visible{display:flex;}
.dl-btn{padding:6px 16px;border-radius:5px;cursor:pointer;font-family:var(--H);font-size:.62rem;letter-spacing:.1em;border:1.5px solid;transition:all .2s;}
.dl-btn.primary{border-color:rgba(0,232,144,.3);color:var(--gr);background:rgba(0,232,144,.05);}
.dl-btn.primary:hover{background:rgba(0,232,144,.12);box-shadow:0 0 12px rgba(0,232,144,.12);}
.dl-btn.sec{border-color:rgba(0,212,232,.25);color:var(--cy);background:rgba(0,212,232,.04);}
.dl-btn.sec:hover{background:rgba(0,212,232,.12);}
.dl-btn.danger{border-color:rgba(255,64,96,.25);color:var(--rd);background:rgba(255,64,96,.03);}
.dl-btn.danger:hover{background:rgba(255,64,96,.09);}
.dl-info{font-family:var(--C);font-size:.62rem;color:rgba(0,212,232,.35);flex:1;}

/* Guide */
.guide-view{flex:1;overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:rgba(0,212,232,.08) transparent;}
.guide-section{margin-bottom:18px;padding:12px;background:rgba(9,15,28,.55);border:1px solid rgba(0,212,232,.07);border-radius:8px;}
.g-title{font-family:var(--H);font-size:.62rem;color:var(--cy);letter-spacing:.18em;margin-bottom:10px;border-bottom:1px solid rgba(0,212,232,.07);padding-bottom:5px;}
.g-path{font-family:var(--C);font-size:.65rem;color:var(--gd);background:rgba(240,192,64,.04);border:1px solid rgba(240,192,64,.1);border-radius:5px;padding:8px 10px;line-height:1.9;}
.g-step{display:flex;gap:9px;margin-bottom:7px;align-items:flex-start;}
.snum{width:20px;height:20px;border-radius:50%;background:rgba(0,212,232,.08);border:1px solid rgba(0,212,232,.25);display:flex;align-items:center;justify-content:center;font-family:var(--H);font-size:.58rem;color:var(--cy);flex-shrink:0;}
.stxt{font-size:.76rem;color:var(--tx);line-height:1.6;}
.g-note{padding:7px 9px;border-radius:4px;font-size:.73rem;line-height:1.6;background:rgba(0,212,232,.03);border-left:2px solid rgba(0,212,232,.25);}
.cmd-table{width:100%;border-collapse:collapse;font-size:.66rem;}
.cmd-table th{font-family:var(--H);font-size:.5rem;color:rgba(0,212,232,.4);padding:4px 7px;text-align:left;letter-spacing:.09em;border-bottom:1px solid rgba(0,212,232,.09);}
.cmd-table td{padding:4px 7px;border-bottom:1px solid rgba(0,212,232,.04);}
.cmd-n{font-family:var(--C);color:var(--cy);}.cmd-d{color:var(--tx);}.cmd-v{font-family:var(--C);color:var(--gd);}.cmd-note{font-family:var(--C);font-size:.58rem;color:rgba(138,184,204,.45);}
.rf-btn{font-family:var(--H);font-size:.48rem;letter-spacing:.08em;padding:3px 8px;border-radius:4px;cursor:pointer;border:1px solid rgba(0,212,232,.2);color:rgba(0,212,232,.5);background:transparent;transition:all .15s;}
.rf-btn:hover{border-color:var(--cy);color:var(--cy);}
.rf-btn.active{border-color:var(--cy);color:var(--cy);background:rgba(0,212,232,.08);}


/* Toast */
.toast{position:fixed;bottom:60px;left:50%;transform:translateX(-50%) translateY(10px);background:rgba(9,15,28,.95);border:1px solid rgba(0,212,232,.18);border-radius:6px;padding:7px 16px;font-family:var(--C);font-size:.72rem;color:var(--wh);opacity:0;transition:all .25s;z-index:100;white-space:nowrap;backdrop-filter:blur(10px);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Badge */
.badge{font-family:var(--C);font-size:.58rem;padding:2px 7px;border-radius:3px;letter-spacing:.05em;}
.badge-ok{color:var(--gr);border:1px solid rgba(0,232,144,.22);background:rgba(0,232,144,.05);}
.badge-init{color:var(--cy);border:1px solid rgba(0,212,232,.22);background:rgba(0,212,232,.05);}

/* Screen tag */
#screen-tag{font-family:var(--C);font-size:.58rem;color:var(--dm);}

/* Responsive */
@media(max-width:900px){.app-shell{grid-template-columns:260px 1fr;}.char-meta{display:none;}}
@media(max-width:660px){html,body{overflow:auto;}.app-shell{grid-template-columns:1fr;height:auto;overflow:visible;}.sidebar{height:auto;border-right:none;border-bottom:1px solid rgba(0,212,232,.09);}.main-area{height:80vh;min-height:450px;}.char-meta,.cdots-wrap{display:none;}#slide-overlay-ext{background:rgba(4,8,15,.9);}}
@media(min-width:1440px){.app-shell{grid-template-columns:340px 1fr;}#clab-name{font-size:2.8rem;}}

.report-type-btn.selected{border-color:var(--cy)!important;background:rgba(0,212,232,.08)!important;color:var(--cy)!important;}
