:root{
  --bg:#05070d;
  --bg2:#080d18;
  --panel:rgba(12,18,32,.74);
  --panel2:rgba(255,255,255,.055);
  --line:rgba(145,190,255,.20);
  --line2:rgba(145,190,255,.35);
  --text:#f4f8ff;
  --muted:#9eabc4;
  --cyan:#5ee7ff;
  --violet:#8c76ff;
  --pink:#ff58cf;
  --gold:#ffd978;
  --green:#64efb8;
  --red:#ff687b;
  --shadow:0 24px 80px rgba(0,0,0,.38);
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{
  background:
    radial-gradient(circle at 12% 8%,rgba(94,231,255,.14),transparent 31%),
    radial-gradient(circle at 85% 0%,rgba(140,118,255,.16),transparent 30%),
    radial-gradient(circle at 48% 105%,rgba(255,88,207,.10),transparent 38%),
    linear-gradient(145deg,#02040a,#070b14 52%,#0a0918);
  -webkit-text-size-adjust:100%;
}
a{color:inherit}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
code{color:var(--cyan)}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent 78%);
}
.app-shell{position:relative;z-index:1;min-height:100dvh}
.topline{
  position:fixed;top:0;left:0;right:0;z-index:40;height:calc(58px + var(--safe-top));
  padding:var(--safe-top) max(14px,var(--safe-right)) 10px max(14px,var(--safe-left));
  display:flex;align-items:end;gap:10px;
  background:linear-gradient(180deg,rgba(2,4,10,.86),rgba(2,4,10,.22));
  border-bottom:1px solid rgba(255,255,255,.055);
  backdrop-filter:blur(18px);
}
.brand-mini{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none}
.brand-mark{
  width:38px;height:38px;border-radius:15px;display:grid;place-items:center;color:#02040a;
  background:conic-gradient(from 15deg,var(--cyan),var(--violet),var(--pink),var(--gold),var(--cyan));
  font-weight:950;box-shadow:0 0 32px rgba(94,231,255,.28);
}
.brand-copy{min-width:0}
.brand-copy small{display:block;color:var(--cyan);font-size:8px;letter-spacing:.18em;text-transform:uppercase;font-weight:900}
.brand-copy strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.info-btn{
  width:40px;height:40px;border-radius:16px;border:1px solid var(--line2);background:rgba(255,255,255,.07);
  color:var(--text);display:grid;place-items:center;font-size:18px;font-weight:950;box-shadow:0 0 28px rgba(94,231,255,.12)
}
.top-spacer{height:calc(58px + var(--safe-top))}
.icon-dock{
  position:fixed;left:max(12px,var(--safe-left));top:calc(74px + var(--safe-top));z-index:35;
  display:flex;flex-direction:column;gap:10px;
}
.icon-link,.icon-action{
  position:relative;width:46px;height:46px;border-radius:18px;border:1px solid var(--line);
  background:rgba(10,16,28,.66);color:var(--text);display:grid;place-items:center;text-decoration:none;
  box-shadow:0 12px 38px rgba(0,0,0,.28);backdrop-filter:blur(16px);transition:.18s ease;
}
.icon-link:hover,.icon-action:hover{transform:translateX(3px);border-color:rgba(94,231,255,.65);background:rgba(255,255,255,.10)}
.icon-link span,.icon-action span{font-size:20px}
.icon-link::after,.icon-action::after{
  content:attr(data-label);position:absolute;left:56px;top:50%;transform:translateY(-50%) translateX(-4px);
  opacity:0;pointer-events:none;white-space:nowrap;padding:8px 11px;border-radius:12px;
  background:rgba(5,8,16,.92);border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:850;
  transition:.16s ease;box-shadow:0 12px 40px rgba(0,0,0,.34);
}
.icon-link:hover::after,.icon-action:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
.drawer-shade{
  position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.52);backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transition:.22s ease;
}
.drawer-shade.open{opacity:1;pointer-events:auto}
.info-drawer{
  position:fixed;z-index:81;top:0;bottom:0;left:0;width:min(390px,88vw);
  padding:calc(18px + var(--safe-top)) 16px calc(18px + var(--safe-bottom)) max(16px,var(--safe-left));
  background:linear-gradient(180deg,rgba(12,18,32,.98),rgba(5,7,14,.98));
  border-right:1px solid var(--line);box-shadow:30px 0 90px rgba(0,0,0,.55);
  transform:translateX(-105%);transition:.24s cubic-bezier(.2,.9,.25,1);
  overflow:auto;
}
.info-drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.drawer-head h2{margin:0;font-size:24px;letter-spacing:-.04em}
.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.drawer-grid a,.drawer-grid button,.pill{
  border:1px solid var(--line);background:rgba(255,255,255,.055);color:var(--text);
  border-radius:16px;text-decoration:none;padding:12px 10px;font-weight:850;text-align:center;
}
.main-clean{position:relative;z-index:1;min-height:calc(100dvh - 58px);padding:26px max(18px,var(--safe-right)) 26px max(82px,var(--safe-left))}
.hero h1,.big{
  margin:0 0 18px;font-size:clamp(46px,8vw,102px);line-height:.86;letter-spacing:-.08em;font-weight:950;
  background:linear-gradient(110deg,#fff,var(--cyan),var(--violet),var(--pink),var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.lead{font-size:clamp(17px,2vw,24px);line-height:1.25;font-weight:850;max-width:940px;color:#e5ecff}
.muted,p{color:#c4cee4;line-height:1.65}
.grid{display:grid;gap:14px}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr 1fr}
.card{
  border:1px solid var(--line);background:var(--panel);border-radius:26px;padding:20px;
  backdrop-filter:blur(18px);box-shadow:var(--shadow);
}
.card h2,.card h3{margin-top:0}
.clean-card-link{text-decoration:none;display:block;transition:.18s ease}
.clean-card-link:hover{transform:translateY(-2px);border-color:rgba(94,231,255,.55)}
.toolbar{
  display:flex;gap:8px;align-items:center;position:sticky;top:calc(58px + var(--safe-top));z-index:30;
  background:rgba(5,8,16,.72);border:1px solid var(--line);padding:10px;border-radius:20px;
  backdrop-filter:blur(18px);box-shadow:0 12px 42px rgba(0,0,0,.24);
}
input,textarea,select{
  width:100%;border:1px solid var(--line);background:rgba(0,0,0,.34);color:var(--text);
  padding:12px;border-radius:15px;outline:none;
}
input:focus,textarea:focus,select:focus{border-color:rgba(94,231,255,.65);box-shadow:0 0 0 3px rgba(94,231,255,.08)}
label{display:block;color:var(--muted);font-size:13px;margin:8px 0}
pre{white-space:pre-wrap;overflow:auto;background:rgba(0,0,0,.32);border:1px solid var(--line);border-radius:18px;padding:13px}
.btn,button{
  border:1px solid var(--line);background:rgba(255,255,255,.065);color:var(--text);padding:11px 13px;
  border-radius:15px;text-decoration:none;font-weight:850;
}
.btn.primary,button.primary{color:#02040a;background:linear-gradient(120deg,var(--cyan),var(--violet),var(--pink),var(--gold));border:0}
.workspace-clean{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr 360px;gap:12px;min-height:calc(100dvh - 58px);padding:76px max(12px,var(--safe-right)) 12px max(72px,var(--safe-left))}
.panel{min-height:0;overflow:auto}.tree button{width:100%;display:block;text-align:left;margin:4px 0;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.editor{height:calc(100dvh - 158px);border-radius:20px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;resize:none}
.aiBox textarea{height:150px}.status.ok{color:var(--green)}.status.bad{color:var(--red)}.status.warn{color:var(--gold)}
.badge{display:inline-block;border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:999px;padding:6px 8px;font-size:11px;color:var(--muted);margin:2px}
.viewer-shell{position:relative;z-index:1;height:100dvh;display:grid;grid-template-rows:auto 1fr auto}
.viewer-top{padding:calc(10px + var(--safe-top)) max(10px,var(--safe-right)) 10px max(72px,var(--safe-left));display:flex;gap:8px;align-items:center;background:rgba(5,8,16,.68);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.viewer-bottom{padding:10px max(10px,var(--safe-right)) calc(10px + var(--safe-bottom)) max(72px,var(--safe-left));display:grid;grid-template-columns:repeat(6,1fr);gap:8px;background:rgba(5,8,16,.68);border-top:1px solid var(--line);backdrop-filter:blur(18px)}
.frame-wrap{position:relative;min-height:0;padding:10px max(10px,var(--safe-right)) 10px max(72px,var(--safe-left))}
.frame-wrap iframe{width:100%;height:100%;border:1px solid var(--line);border-radius:26px;background:white;box-shadow:var(--shadow)}
body.hide-chrome .viewer-top,body.hide-chrome .viewer-bottom,.hide-when-clean{display:none}
body.hide-chrome .frame-wrap{padding:0}
body.hide-chrome .frame-wrap iframe{border:0;border-radius:0}
.floating-restore{display:none;position:fixed;right:max(12px,var(--safe-right));bottom:calc(16px + var(--safe-bottom));z-index:50}
body.hide-chrome .floating-restore{display:grid}
@media(max-width:1100px){.workspace-clean{grid-template-columns:1fr;min-height:auto}.panel{overflow:visible}.editor{height:62dvh}.grid.three,.grid.two{grid-template-columns:1fr}}
@media(max-width:760px){
  .topline{height:calc(54px + var(--safe-top))}
  .brand-copy strong{font-size:12px}.brand-copy small{font-size:7px}.brand-mark{width:34px;height:34px;border-radius:13px}
  .icon-dock{left:50%;right:auto;top:auto;bottom:calc(12px + var(--safe-bottom));transform:translateX(-50%);flex-direction:row;background:rgba(5,8,16,.62);border:1px solid var(--line);border-radius:24px;padding:8px;backdrop-filter:blur(18px)}
  .icon-link,.icon-action{width:42px;height:42px;border-radius:16px}
  .icon-link::after,.icon-action::after{left:50%;top:-42px;transform:translateX(-50%);font-size:11px}
  .icon-link:hover::after,.icon-action:hover::after{transform:translateX(-50%)}
  .main-clean{padding:20px 12px calc(90px + var(--safe-bottom))}
  .workspace-clean{padding:66px 10px calc(90px + var(--safe-bottom))}
  .viewer-top,.viewer-bottom,.frame-wrap{padding-left:10px}
  .viewer-bottom{grid-template-columns:repeat(3,1fr)}
}
