/* ============================================================
   TOKENS — sampled from reference frames
   ============================================================ */
:root{
  --bg-app:#0D1723; --bg-deep:#0A121C;
  --rail:#080F18; --panel:#0C1520;
  --card:#141D29; --card-hi:#16202C; --plot:#0F1723;
  --ctrl:#1B2532; --track:#1E2733;
  --bd-card:#1E2A38; --bd-ctrl:#263140; --divider:#1B2634;

  --t1:#F1F5F9; --t2:#E2E8F0; --t3:#94A3B8; --t4:#64748B; --t5:#4B5563;
  --skel:#3A4557; --skel-hi:#475569;

  --purple:#A855F7; --violet:#8B5CF6; --violet-d:#7C5CF6;
  --blue:#3B82F6; --blue-d:#1E3A8A; --cyan:#22D3EE; --cyan-l:#7DD3FC;
  --green:#34D399; --teal:#2DD4BF; --magenta:#EC4899; --amber:#FBBF24; --lime:#A3E635;
  --indigo:#6366F1;

  --r-pill:28.5px; --r-composer:26px; --r-card:14px; --r-chip:10px; --r-ctl:8px; --r-sw:6px; --r-bar:4px;
  --grad-btn:linear-gradient(135deg,#A855F7 0%,#7C5CF6 45%,#4F7BF7 70%,#22D3EE 100%);
  --grad-brd:linear-gradient(115deg,#C084FC 0%,#A855F7 22%,#7C5CF6 50%,#3B82F6 78%,#22D3EE 100%);
  --grad-slide:linear-gradient(90deg,#A855F7,#8B5CF6,#3B82F6,#22D3EE,#34D399);
  --grad-meter:linear-gradient(90deg,#3B82F6,#22D3EE,#A3E635);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:#0A0C12;
  font:400 13px/1.5 Inter,-apple-system,"SF Pro Text","Segoe UI",sans-serif;
  color:var(--t2);
  -webkit-font-smoothing:antialiased;
  display:grid; place-items:center; padding:24px;
  background-image:
    radial-gradient(50% 60% at 22% 88%, rgba(55,71,106,.35), transparent 70%),
    radial-gradient(45% 55% at 45% 78%, rgba(43,58,88,.30), transparent 70%),
    linear-gradient(160deg,#1B2033 0%,#14161F 60%,#0B0D14 100%);
  background-attachment:fixed;
}
.mono{font-family:ui-monospace,"SF Mono","JetBrains Mono",monospace;font-variant-numeric:tabular-nums}
svg{display:block}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#243040;border-radius:99px}

/* ============================================================
   WINDOW
   ============================================================ */
.win{
  position:relative; width:min(1280px,100%); height:min(800px,94vh);
  border-radius:10px; overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 60px 120px -30px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.4);
  background:var(--bg-app);
  display:grid;
  grid-template-columns:198px minmax(0,1fr);
  grid-template-rows:52px minmax(0,1fr);
  grid-template-areas:"head head" "side main";
  isolation:isolate;
}
/* aurora glow inside app */
.win::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(38% 44% at 44% 6%, rgba(59,29,110,.40), transparent 70%),
    radial-gradient(34% 40% at 70% 10%, rgba(30,58,138,.30), transparent 70%),
    radial-gradient(40% 50% at 100% 100%, rgba(7,12,19,1), transparent 65%);
}

/* ============================================================
   HEADER
   ============================================================ */
.head{grid-area:head;position:relative;z-index:3;display:flex;align-items:center;gap:26px;
  padding:0 18px;background:#141823;border-bottom:1px solid #232834}
.brand{display:flex;align-items:baseline;gap:7px;flex-shrink:0}
.brand b{font-size:19px;font-weight:800;letter-spacing:-.6px;
  background:linear-gradient(90deg,#3B82F6,#8B5CF6);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 10px rgba(99,102,241,.35))}
.brand span{font-size:15px;font-weight:600;color:#EDF0F6}
.nav{display:flex;align-items:center;gap:22px}
.nav a{font-size:13px;font-weight:500;color:#8A91A3;text-decoration:none;padding:16px 0 15px;position:relative}
.nav a.on{color:#fff;font-weight:600}
.nav a.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--indigo);border-radius:2px}
.nav a .chev{margin-left:5px;opacity:.7}
.head__r{margin-left:auto;display:flex;align-items:center;gap:9px}
.icobtn{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:#C3C9D6;transition:.15s}
.icobtn:hover{background:#232733;color:#fff}
.btn-g{height:25px;padding:0 11px;border-radius:8px;background:#1B2029;border:1px solid #2A3140;
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#E6E9F0;transition:.15s}
.btn-g:hover{border-color:#3A4257;background:#232936}
.btn-p{height:25px;padding:0 12px;border-radius:8px;background:linear-gradient(90deg,#6366F1,#7C5CF0);
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#fff;
  box-shadow:0 0 16px -4px rgba(99,102,241,.7),inset 0 1px 0 rgba(255,255,255,.14)}
.btn-p:hover{filter:brightness(1.12)}
.avt{width:26px;height:26px;border-radius:50%;background:linear-gradient(140deg,#f59e0b,#ec4899);
  display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;cursor:pointer}

/* ============================================================
   SIDEBAR
   ============================================================ */
.side{grid-area:side;position:relative;z-index:2;background:var(--rail);
  border-right:1px solid var(--divider);padding:9px 6px;display:flex;flex-direction:column}
.sfield{height:26px;border-radius:8px;background:#141922;display:flex;align-items:center;gap:8px;padding:0 10px;margin-bottom:14px}
.sfield input{flex:1;background:none;border:0;outline:0;color:var(--t1);font-size:12.5px}
.sfield input::placeholder{color:#6B7387}
.nrow{height:23px;border-radius:7px;display:flex;align-items:center;gap:10px;padding:0 8px;margin-bottom:2px;
  color:#C3C9D6;font-size:12.5px;font-weight:500;cursor:pointer;transition:.13s;position:relative}
.nrow:hover{background:#1A2029}
.nrow.on{background:#212736;color:#fff;font-weight:600}
.nrow.on::before{content:'';position:absolute;left:-6px;top:0;bottom:0;width:2px;background:var(--indigo);border-radius:2px 0 0 2px}
.nrow svg{flex-shrink:0;opacity:.85}
.secl{font-size:10px;font-weight:600;letter-spacing:.4px;color:#7C8397;padding:14px 8px 6px}
.pro{margin-left:auto;font-size:7px;font-weight:800;letter-spacing:.5px;color:#fff;
  background:linear-gradient(90deg,#7C3AED,#6D4AFF);padding:2.5px 5px;border-radius:4px}
.side__sp{flex:1}
.acct{margin:0 3px;border-radius:9px;background:#171C26;border:1px solid #262C3A;padding:8px;display:flex;align-items:center;gap:8px}
.acct .a{width:24px;height:24px;border-radius:50%;background:linear-gradient(140deg,#fbbf24,#ef4444);display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}
.acct div{min-width:0;flex:1}
.acct b{display:block;font-size:11px;font-weight:600;color:#E6E9F0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acct span{display:block;font-size:8.5px;color:#8A91A3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acct button{width:14px;height:14px;border-radius:50%;background:#242B3A;display:grid;place-items:center;color:#C3C9D6;flex-shrink:0}

/* ============================================================
   MAIN / CANVAS
   ============================================================ */
.main{grid-area:main;position:relative;z-index:1;min-width:0;min-height:0;overflow:hidden auto;background:transparent;overscroll-behavior:contain}
.pad{padding:16px 22px 40px}

/* ---------- empty stage ---------- */
.stage{position:relative;min-width:0;display:grid;place-items:center}
.dbox{width:min(532px,86%);height:112px;border-radius:var(--r-card);
  border:1px solid rgba(226,232,242,.55);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 0 40px -18px rgba(168,85,247,.35);
  background:rgba(255,255,255,.035);
  transition:.4s}
.dbox.hot{border-color:rgba(226,232,242,.8);background:rgba(255,255,255,.055);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 60px -18px rgba(168,85,247,.6)}
.status{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:baseline;white-space:nowrap}
.status b{font-size:11px;font-weight:700;color:#fff;position:relative;padding-bottom:4px}
.status b::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--indigo);border-radius:2px}
.status span{font-size:10px;color:#8A91A3}
.status a{font-size:10px;font-weight:500;color:#5B8DEF;text-decoration:none}

/* ---------- composer ---------- */
.stage.has{padding:0;place-items:start stretch}
.wrap{min-width:0}
.wrap{max-width:1004px;width:100%;margin:0 auto;padding:13px 22px 60px}
.composer{position:relative;border-radius:var(--r-composer);padding:18px 24px 16px;background:rgba(16,26,38,.88)}
/* 2px gradient border */
.composer::before{
  content:''; position:absolute; inset:0; border-radius:inherit; padding:2px;
  background:var(--grad-brd);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none;
}
/* dual bloom: violet top-left, cyan right */
.composer::after{
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:-1;
  box-shadow:-8px -10px 44px -14px rgba(168,85,247,.55), 14px 12px 46px -14px rgba(34,211,238,.5);
}
/* chat tail */
.tail{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);width:24px;height:10px;
  background:var(--bg-app);
  clip-path:polygon(0 0,100% 0,50% 100%);
  filter:drop-shadow(0 1px 0 rgba(34,211,238,.55))}

.prompt{width:100%;background:none;border:0;outline:0;resize:none;color:var(--t1);
  font:500 21px/30px Inter,-apple-system,sans-serif;letter-spacing:.1px;min-height:60px}
.prompt::placeholder{color:#54607A}
.prompt-row{display:flex;align-items:center;gap:24px;margin-top:12px}

/* slider */
.slider{flex:1;max-width:417px;height:16px;border-radius:99px;background:var(--track);position:relative;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
.slider::before{content:'';position:absolute;left:2px;right:2px;top:-4px;height:1px;background:#2A3540}
.slider .fill{position:absolute;left:0;top:0;bottom:0;width:50.2%;border-radius:99px;background:var(--grad-slide)}
.slider .thumb{position:absolute;top:50%;left:50.2%;width:17px;height:17px;border-radius:50%;background:#fff;
  transform:translate(-50%,-50%);box-shadow:0 2px 6px rgba(0,0,0,.45),0 0 0 4px rgba(255,255,255,.18)}
.slider input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}

/* generate pill */
.gen{height:57px;padding:0 16px 0 37px;border-radius:var(--r-pill);background:var(--grad-btn);
  display:inline-flex;align-items:center;gap:28px;color:#fff;font-size:20px;font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),
     0 0 40px -8px rgba(168,85,247,.75),
     0 0 40px -8px rgba(34,211,238,.7),
     0 12px 30px -12px rgba(0,0,0,.7);
  position:relative;flex-shrink:0;transition:filter .2s}
.gen:hover{filter:brightness(1.1)}
.gen .disc{width:29px;height:29px;border-radius:50%;background:#fff;display:grid;place-items:center;flex-shrink:0}

/* ---------- toolbar ---------- */
.tbar{display:flex;align-items:center;justify-content:space-between;margin:47px 0 17px;height:28px}
.tl,.tr{display:flex;align-items:center;gap:7px}
.tbtn{height:28px;padding:0 10px;border-radius:var(--r-ctl);background:var(--ctrl);border:1px solid var(--bd-ctrl);
  display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#CBD5E1;transition:.15s}
.tbtn:hover{border-color:#354054;background:#212B38}
.tbtn.icon{padding:0;width:32px;justify-content:center}
.meter{height:26px;width:267px;border-radius:13px;background:var(--track);overflow:hidden}
.meter i{display:block;height:100%;width:62%;background:var(--grad-meter)}

/* ---------- masonry grid ---------- */
.mgrid{columns:4;column-gap:18px}
.mgrid>*{break-inside:avoid;margin-bottom:16px}
.gcard{border-radius:var(--r-card);border:1px solid var(--bd-card);background:var(--card);overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.3)}
.gcard.hov{transition:.2s}
.gcard.hov{overflow:hidden}
.gcard.hov:hover{border-color:#2B3A4C;transform:translateY(-2px);box-shadow:0 14px 34px -16px rgba(0,0,0,.8)}
.gcard.lift{background:var(--card-hi);border-color:#26313F;box-shadow:0 18px 40px rgba(0,0,0,.55);margin-left:-39px;position:relative;z-index:2}

/* skeletons */
.sk{background:var(--skel);border-radius:var(--r-bar)}
.pad16{padding:16px}

/* light mockup card */
.lightcard{border-radius:var(--r-card);border:1px solid var(--bd-card);overflow:hidden;background:#F8FAFC;height:193px}
.lc{display:flex;height:100%}
.lc__nav{width:59px;background:#F1F5F9;border-right:1px solid #E2E8F0;padding:9px 8px}
.lc__nav .logo{display:flex;align-items:center;gap:5px;margin-bottom:10px}
.lc__nav .logo i{width:9px;height:9px;border-radius:3px;background:linear-gradient(135deg,#6366F1,#A855F7)}
.lc__nav .logo b{font-size:6px;font-weight:700;color:#0F172A}
.lc__nav u{display:block;font-size:5px;color:#64748B;text-decoration:none;padding:2.5px 0;display:flex;align-items:center;gap:4px}
.lc__nav u i{width:5px;height:5px;border-radius:1.5px;background:#CBD5E1}
.lc__nav u.on{color:#0F172A;font-weight:700}
.lc__nav u.on i{background:#6366F1}
.lc__body{flex:1;padding:10px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:8px}
.blk{border-radius:6px;background:#fff;border:1px solid #E2E8F0;padding:7px}
.blk h6{font-size:5.5px;font-weight:700;color:#0F172A;margin-bottom:5px;display:flex;align-items:center;gap:4px}
.blk h6 i{width:5px;height:5px;border-radius:1px;background:#6366F1}
.blk p{font-size:3px;color:#94A3B8;line-height:1.6}
.sw{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:5px}
.sw i{height:11px;border-radius:3px}
.sw u{display:block;font-size:2.4px;color:#94A3B8;text-align:center;margin-top:1px;text-decoration:none}

/* photo card */
.photo{height:127px;position:relative;
  background:linear-gradient(180deg,#93C5FD 0%,#1E3A5F 45%,#0F172A 100%)}
.photo::after{content:'';position:absolute;inset:0;
  background:radial-gradient(60% 40% at 30% 78%, rgba(15,23,42,.85), transparent 70%)}
.pill{position:absolute;top:14px;right:12px;height:19px;padding:0 8px;border-radius:var(--r-chip);
  background:rgba(9,15,26,.55);backdrop-filter:blur(8px);display:flex;align-items:center;gap:4px;
  font-size:8px;color:#E2E8F0;z-index:2}
.dots3{position:absolute;bottom:8px;right:8px;width:30px;height:16px;border-radius:5px;background:rgba(9,15,26,.6);
  display:grid;place-items:center;color:#94A3B8;font-size:9px;z-index:2}

/* 3d glass card */
.glass3d{height:193px;position:relative;overflow:hidden;isolation:isolate;contain:paint;
  background:linear-gradient(160deg,#DCE9F7,#A9C8EC 60%,#8FB4DC)}
.glass3d .cyl{position:absolute;bottom:0;border-radius:99px 99px 0 0;
  background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(191,219,254,.7),rgba(255,255,255,.45))}
.glass3d .rib{position:absolute;left:0;right:0;top:38%;height:70px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:rotate(-8deg);border-radius:99px}
.glass3d .orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff,#93C5FD 70%)}
.gpanel{position:absolute;right:-15px;top:70px;width:123px;height:104px;border-radius:var(--r-card);
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(14px);padding:10px}
.gpanel .ghost{display:flex;gap:5px;margin-top:auto}
.gpanel u{width:18px;height:12px;border-radius:3px;background:rgba(255,255,255,.5);text-decoration:none}
.gpanel em{font-size:6px;font-style:normal;color:#fff;opacity:.7}

/* swatch card */
.swrow{display:flex;gap:4px}
.swrow i{width:20px;height:24px;border-radius:var(--r-sw)}
.chk{width:30px;height:30px;border-radius:var(--r-ctl);border:1px solid var(--skel);display:grid;place-items:center}

/* chart card */
.chartcard{padding:16px}
.plot{background:var(--plot);border-radius:var(--r-ctl);padding:10px 8px;margin-top:10px}
.zoomgrp{display:inline-flex;background:var(--ctrl);border:1px solid var(--bd-ctrl);border-radius:var(--r-ctl);overflow:hidden}
.zoomgrp button{width:26px;height:22px;display:grid;place-items:center;color:#94A3B8;border-left:1px solid var(--bd-ctrl)}
.zoomgrp button:first-child{border-left:0}
.zoomgrp button:hover{background:#212B38}
.netbadge{display:inline-flex;align-items:center;gap:5px;height:18px;padding:0 8px;border-radius:9px;
  background:var(--cyan-l);color:#0B1220;font-size:10px;font-weight:600}
.circbtn{width:34px;height:34px;border-radius:50%;background:var(--blue);display:grid;place-items:center;
  box-shadow:0 4px 14px rgba(59,130,246,.45)}

/* media card w/ lock */
.mediapad{padding:16px}
.lock{width:20px;height:20px;border-radius:var(--r-ctl);background:rgba(15,23,42,.6);display:grid;place-items:center}

/* agent panel (right) */
.agent{position:absolute;right:0;top:0;bottom:0;width:min(280px,86vw);max-width:86vw;background:var(--panel);
  border-left:1px solid var(--divider);padding:16px 14px;overflow:hidden auto;z-index:30;
  transform:translateX(101%);transition:transform .28s ease;visibility:hidden}
.agent.open{visibility:visible}
.agent.open{transform:none}
.astep{display:grid;grid-template-columns:16px 1fr;gap:10px;padding:9px 10px;border-radius:var(--r-ctl);margin-bottom:2px}
.astep.on{background:linear-gradient(90deg,rgba(99,102,241,.16),transparent)}
.astep .d{width:9px;height:9px;border-radius:50%;margin:3px 0 0 3px;background:#3A4557}
.astep.ok .d{background:var(--green);box-shadow:0 0 8px rgba(52,211,153,.5)}
.astep.run .d{background:var(--purple);box-shadow:0 0 10px rgba(168,85,247,.7);animation:pl 1.4s ease-in-out infinite}
@keyframes pl{0%,100%{opacity:1}50%{opacity:.4}}
.astep b{display:block;font-size:11.5px;font-weight:600;color:var(--t1);line-height:1.4}
.astep span{font-size:10.5px;color:var(--t4);line-height:1.45}
.ahead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ahead h4{font-size:12px;font-weight:700;color:var(--t1)}
.fld{margin-top:14px}
.fld label{display:block;font-size:11px;color:#8B97A6;margin-bottom:5px}
.fld div{height:32px;border:1px solid #243040;border-radius:var(--r-chip);background:transparent}
.atabs{display:flex;gap:14px;margin:16px 0 10px;border-bottom:1px solid var(--divider)}
.atabs button{font-size:11px;font-weight:600;color:#8B97A6;padding-bottom:7px;position:relative}
.atabs button.on{color:var(--t1)}
.atabs button.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,#A855F7,#3B82F6)}
.agbtn{position:absolute;right:18px;top:14px;z-index:5;height:28px;padding:0 11px;border-radius:var(--r-ctl);
  background:var(--ctrl);border:1px solid var(--bd-ctrl);color:#CBD5E1;font-size:12px;font-weight:600;transition:.15s}
.agbtn:hover{border-color:#354054;color:#fff}

/* ============================================================
   RESPONSIVE — 6 breakpoints
   XL  ≥1280  sidebar + canvas + inspector, 4 kolom
   LG  ≥1024  sidebar + canvas, inspector jadi overlay, 3 kolom
   MD  ≥768   sidebar jadi drawer, canvas full, 2 kolom
   SM  ≥520   bottom nav, 2 kolom, compact header
   XS  <520   bottom nav, 1 kolom, compact
   ============================================================ */
.mob{display:none}
.btmnav{display:none}
.scrim{display:none}

/* ---- LG: inspector jadi overlay ---- */
@media(max-width:1279px){
  .agent{box-shadow:-24px 0 50px -20px rgba(0,0,0,.8)}
  .mgrid{columns:3}
  .mgrid>.gcard.lift{margin-left:0}
}

/* ---- MD: sidebar jadi drawer ---- */
@media(max-width:1023px){
  .win{grid-template-columns:1fr;grid-template-rows:52px minmax(0,1fr);
       grid-template-areas:"head" "main";height:min(900px,96vh)}
  .side{position:absolute;left:0;top:52px;bottom:0;width:246px;z-index:30;
transform:translateX(-100%);transition:transform .26s ease}
  .side.open{transform:none;box-shadow:24px 0 60px -20px rgba(0,0,0,.85)}
  .mob{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
       border-radius:8px;color:#C3C9D6;background:#1B2029;border:1px solid #2A3140;flex-shrink:0}
  .scrim{display:block;position:absolute;inset:52px 0 0;background:rgba(4,7,12,.6);
 backdrop-filter:blur(2px);z-index:25;opacity:0;pointer-events:none;transition:opacity .26s}
  .scrim.on{opacity:1;pointer-events:auto}
  .nav{display:none}
  .wrap{padding:13px 16px 56px}
  .pad{padding:15px}
  .tbar{margin:34px 0 15px}
}

/* ---- SM: bottom nav, 2 kolom ---- */
@media(max-width:639px){
  .head{height:48px;padding:0 10px;gap:8px}
  .head__r{gap:5px}
  .head__r .btn-g{display:none}
  .head__r .icobtn:first-child{display:none}
  .brand span{display:none}
  .prompt{font-size:17px;line-height:25px;min-height:52px}
  .composer{padding:15px 17px 14px;border-radius:20px}
  .prompt-row{flex-wrap:wrap;gap:12px;margin-top:10px}
  .gen{order:1;margin-left:auto;height:46px;font-size:16px;padding:0 12px 0 20px;gap:12px}
  .gen .disc{width:24px;height:24px}
  .slider{order:2;flex-basis:100%;max-width:none;height:14px}
  .mgrid{columns:2;column-gap:12px}
  .mgrid>*{margin-bottom:12px}
  .meter{width:120px}
  .dbox{width:min(420px,92%);height:96px}
  .tbar{flex-wrap:wrap;gap:9px;margin:26px 0 13px;height:auto}
  /* bottom nav */
  .win{padding-bottom:0}
  .main{padding-bottom:58px}
  .btmnav{display:flex;position:absolute;left:0;right:0;bottom:0;z-index:22;height:56px;
    background:rgba(12,18,26,.94);backdrop-filter:blur(18px);border-top:1px solid var(--divider);
    padding-bottom:env(safe-area-inset-bottom)}
  .btmnav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;font-size:9px;font-weight:600;color:#64748B}
  .btmnav button.on{color:var(--t1)}
  .btmnav button.on svg{color:var(--purple)}
}

/* ---- XS: 1 kolom ---- */
@media(max-width:360px){
  .mgrid{columns:1}
  .status{font-size:9px;gap:6px;flex-wrap:wrap;justify-content:center;bottom:74px}
  .status b{font-size:10px}
  .lc__body{grid-template-columns:1fr}
  .glass3d{height:170px}
  .lightcard{height:auto}
}

/* ---- landscape HP: ruang vertikal kecil, rapatkan ---- */
@media(max-height:520px) and (orientation:landscape){
  .win{height:98vh}
  .head{height:46px}
  .side{top:46px}
  .scrim{inset:46px 0 0}
  .btmnav{height:48px}
  .main{padding-bottom:48px}
  .dbox{height:78px}
  .status{bottom:10px}
  .tbar{margin:20px 0 12px}
}


/* ---- sidebar extras (Documents count, API keys) ---- */
.cnt{margin-left:auto;font-size:9.5px;color:#5A6379;letter-spacing:.2px}
.keyrow .okdot{margin-left:auto;width:6px;height:6px;border-radius:50%;background:#3A4557;box-shadow:none;transition:.3s;flex-shrink:0}
.keyrow .okdot.on{background:var(--green);box-shadow:0 0 7px rgba(52,211,153,.7)}
.keylist{overflow:hidden;max-height:0;transition:max-height .28s ease,margin .28s ease;margin:0 0 0 4px}
.keylist.open{max-height:200px;margin-bottom:6px}
.keyitem{display:flex;align-items:center;gap:7px;height:22px;padding:0 8px;font-size:11px;color:var(--t4)}
.keyitem i{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.keyitem u{margin-left:auto;font-size:9px;color:#4A5368;text-decoration:none;max-width:74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.keyitem.has u{color:#8B97A6}

/* ---- generic page view ---- */
.pg{display:none}
.pg.on{display:block}
.pghead{margin-bottom:18px}
.pghead h2{font-size:20px;font-weight:700;color:#F1F5F9;letter-spacing:-.3px}
.pghead p{font-size:12.5px;color:var(--t4);margin-top:3px}
.cardlist{display:grid;gap:9px}
.cardrow{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:var(--r-card);background:var(--card);border:1px solid var(--bd-card);cursor:pointer;transition:.16s}
.cardrow:hover{border-color:#2B3A4C;background:var(--card-hi);transform:translateX(2px)}
.cardrow .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;background:linear-gradient(140deg,#1E3A8A,#0F172A);color:#93C5FD}
.cardrow .tx{flex:1;min-width:0}
.cardrow .tx b{display:block;font-size:12.5px;color:var(--t1);font-weight:600}
.cardrow .tx span{font-size:11px;color:var(--t4)}
.tag{font-size:9.5px;font-weight:700;padding:3px 7px;border-radius:99px;flex-shrink:0;background:rgba(52,211,153,.13);color:var(--green);box-shadow:inset 0 0 0 1px rgba(52,211,153,.3)}
.tag.wait{background:rgba(100,116,139,.16);color:var(--t4);box-shadow:inset 0 0 0 1px var(--bd)}

/* settings */
.setrow{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--divider)}
.setrow:last-child{border-bottom:0}
.setrow .tx{flex:1;min-width:0}
.setrow .tx b{display:block;font-size:12.5px;color:var(--t1);font-weight:600}
.setrow .tx span{font-size:11px;color:var(--t4);line-height:1.45}
.tgl{width:38px;height:21px;border-radius:99px;background:#232B3A;position:relative;flex-shrink:0;cursor:pointer;transition:.2s}
.tgl::after{content:'';position:absolute;top:2.5px;left:2.5px;width:16px;height:16px;border-radius:50%;background:#64748B;transition:.2s}
.tgl.on{background:linear-gradient(90deg,#6366F1,#7C5CF0)}
.tgl.on::after{left:19.5px;background:#fff}
.sinput{height:32px;padding:0 11px;border-radius:var(--r-ctl);background:var(--ctrl);border:1px solid var(--bd-ctrl);color:var(--t1);font-size:12px;outline:0;min-width:0;flex:1}
.sinput:focus{border-color:var(--indigo);box-shadow:0 0 0 3px rgba(99,102,241,.16)}

/* apikeys */
.keybig{border-radius:var(--r-card);background:var(--card);border:1px solid var(--bd-card);padding:15px;margin-bottom:11px}
.keybig__top{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.keybig__top .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;color:#fff}
.keybig__top .tx{flex:1;min-width:0}
.keybig__top .tx b{display:block;font-size:13px;color:var(--t1);font-weight:600}
.keybig__top .tx span{font-size:10.5px;color:var(--t4)}
.keybig__top .tx span code{color:#7DD3FC}
.keyin{display:flex;gap:7px}
.keyin input{flex:1;height:34px;padding:0 11px;border-radius:var(--r-ctl);background:var(--plot);border:1px solid var(--bd-ctrl);color:var(--t1);font:400 11.5px ui-monospace,monospace;outline:0;min-width:0}
.keyin input:focus{border-color:var(--indigo);box-shadow:0 0 0 3px rgba(99,102,241,.16)}
.keyin input::placeholder{color:#4A5368}
.ksave{height:34px;padding:0 14px;border-radius:var(--r-ctl);background:linear-gradient(135deg,#6366F1,#7C5CF0);color:#fff;font-size:11.5px;font-weight:700;box-shadow:0 0 14px -3px rgba(99,102,241,.7);flex-shrink:0}
.ksave:hover{filter:brightness(1.12)}
.ksave.ghost{background:var(--ctrl);border:1px solid var(--bd-ctrl);color:var(--t3);box-shadow:none}
.keymeta{display:flex;gap:14px;flex-wrap:wrap;margin-top:11px;font-size:10.5px;color:var(--t4)}
.keymeta b{color:var(--t2);font-weight:600}
.kenv{font-size:10.5px;color:var(--t4);margin-top:9px;display:flex;align-items:center;gap:6px}
.kenv code{color:var(--cyan-l);background:rgba(34,211,238,.08);padding:2px 6px;border-radius:4px}
.notice{display:flex;gap:9px;padding:11px 13px;border-radius:10px;background:rgba(245,196,107,.07);border:1px solid rgba(245,196,107,.26);color:#F5C46B;font-size:11.5px;line-height:1.5;margin-bottom:14px}
.notice.info{background:rgba(59,130,246,.07);border-color:rgba(59,130,246,.26);color:#93C5FD}

/* ---- reduced motion ---- */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ---- mobile guard: panel & login tidak boleh melebihi viewport ---- */
@media(max-width:860px){
  .agent{max-width:min(280px,86vw)}
  .ahead{flex-wrap:wrap;max-width:100%}
  .ahead>*{min-width:0}
}

/* ============================================================
   FIX v2 — layar penuh, tombol header tidak menumpuk
   ============================================================ */
body.app{display:block;padding:0;overflow:hidden}
.win{width:100%;height:100vh;height:100dvh;border:0;border-radius:0;box-shadow:none}
#viewPrompt{min-height:100%}
.head__r{flex-shrink:0}
.agbtn{position:static;flex-shrink:0;height:25px;padding:0 10px}
@media(max-width:860px){
  .head__r .btn-g span{display:none}
  .head__r .btn-g{padding:0 8px}
}
@media(max-width:639px){
  .agbtn{display:none}
  .status{white-space:normal;flex-wrap:wrap;justify-content:center;width:max-content;max-width:92%}
}

/* FIX v3 — pilihan mode Gambar/Video + kotak hasil */
.seg{display:inline-flex;gap:2px;padding:3px;margin-bottom:10px;border-radius:99px;background:var(--ctrl);border:1px solid var(--bd-ctrl)}
.seg button{height:26px;padding:0 14px;border-radius:99px;font-size:12px;font-weight:600;color:var(--t3);transition:.15s}
.seg button.on{background:var(--grad-btn);color:#fff}
.resbox{margin-top:22px;padding:14px;border-radius:var(--r-card);background:var(--card);border:1px solid var(--bd-card);font-size:12.5px;color:var(--t2);line-height:1.55}
.resbox[hidden]{display:none}
.resbox img,.resbox video{display:block;max-width:100%;border-radius:var(--r-chip);margin-bottom:10px}
.resbox .tbtn{text-decoration:none}
.gen:disabled{opacity:.6;cursor:progress}
