:root{
  --bg-1:#0b0229;
  --bg-2:#130327;
  --accent-1:#8b5cf6;
  --accent-2:#d946ef;
  --glow: rgba(141,60,255,0.18);
  --muted:#a3a3c2;
  --white:#eef2ff;
  --radius:14px;
  --layer-colors:#d946ef,#8b5cf6,#5a189a,#7b2cbf,#c084fc,#a855f7;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:'Poppins',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial}
html,body{
  height:100%;
  background:radial-gradient(800px 400px at 10% 10%, rgba(196,103,255,0.06), transparent), linear-gradient(180deg,var(--bg-1),var(--bg-2));
  color:var(--white);-webkit-font-smoothing:antialiased
}
.page-wrap{
  min-height:100vh;
  display:flex;
  flex-direction:column
}
.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 32px;
  border-bottom:1px solid rgba(255,255,255,0.03);
  backdrop-filter:blur(6px)
}
.brand{
  display:flex;
  gap:14px;align-items:center}
.logo-dot{width:46px;height:46px;border-radius:10px;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));box-shadow:0 8px 30px var(--glow)}
.app-title{font-size:18px;font-weight:700;letter-spacing:0.2px}
.app-sub{font-size:12px;color:var(--muted)}
.identity{font-size:13px;color:var(--muted);padding:8px 12px;border-radius:10px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.03)}
.main-grid{display:grid;grid-template-columns:320px 1fr;gap:22px;padding:24px;align-items:start}
.panel{background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));border-radius:var(--radius);box-shadow:0 8px 30px rgba(10,6,18,0.6);border:1px solid rgba(255,255,255,0.03);padding:18px}
.controls-panel .panel-title{font-size:13px;color:var(--muted);margin-bottom:10px}
.field{display:flex;flex-direction:column;margin-bottom:12px}
.label{font-size:12px;color:var(--muted);margin-bottom:6px}
.controls-panel input, .controls-panel select{padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.04);background:transparent;color:var(--white);outline:none}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.btn{padding:10px 12px;border-radius:10px;border:none;cursor:pointer;font-weight:600;transition:transform .12s ease,box-shadow .12s ease;background:transparent;color:var(--white)}
.btn:hover{transform:scale(1.05);box-shadow:0 4px 20px rgba(140,60,255,0.3)}
.btn.primary{background:linear-gradient(90deg,var(--accent-1),var(--accent-2));color:#120015;box-shadow:0 8px 24px rgba(216,88,224,0.12)}
.btn.danger{background:linear-gradient(90deg,#ff6b6b,#ff5fa1);color:#120000}
.btn.ghost{border:1px solid rgba(255,255,255,0.04)}
.btn.small{padding:8px 10px;font-size:13px}
.stats{display:flex;gap:16px;color:var(--muted);font-size:14px;margin-bottom:8px}
.visual-panel{display:flex;flex-direction:column;gap:12px}
.canvas-wrap{position:relative;background:linear-gradient(180deg,rgba(255,255,255,0.01),transparent);border-radius:12px;padding:12px;min-height:560px;box-shadow:0 12px 40px rgba(8,6,18,0.6);border:1px solid rgba(255,255,255,0.03);overflow:auto}
#treeCanvas{display:block;width:100%;height:100%;border-radius:8px;cursor:pointer;transition:all 0.3s ease}
.site-footer{margin-top:auto;padding:12px 20px;background:linear-gradient(90deg, rgba(139,92,246,0.03), transparent);border-top:1px solid rgba(255,255,255,0.02)}
.marquee-wrap marquee{font-weight:700;color:transparent;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));-webkit-background-clip:text}

.loading-screen{position:fixed;left:0;top:0;right:0;bottom:0;background:var(--bg-1);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:22px;color:var(--white);z-index:9999;transition:opacity 0.5s ease}
.loader{display:flex;gap:6px;margin-bottom:16px}
.loader span{width:12px;height:12px;background:linear-gradient(45deg,var(--accent-1),var(--accent-2));border-radius:50%;animation:loaderAnim 1s infinite alternate}
.loader span:nth-child(2){animation-delay:0.2s}
.loader span:nth-child(3){animation-delay:0.4s}
.loader span:nth-child(4){animation-delay:0.6s}
@keyframes loaderAnim{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-16px) scale(1.3)}100%{transform:translateY(0) scale(1)}}
.loading-text{font-size:18px;color:var(--muted);letter-spacing:0.5px}

.info-panel{position:absolute;right:18px;top:18px;width:260px;background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));border-radius:12px;padding:14px;border:1px solid rgba(255,255,255,0.03);box-shadow:0 10px 30px rgba(10,6,18,0.6)}
.info-panel.hidden{display:none}
.info-panel h3{margin-bottom:8px}

body.light-mode {
  --bg-1:#f0f0f5;
  --bg-2:#ffffff;
  --muted:#4a4a5a;
  --white:#120015;
}
body.light-mode .canvas-wrap { background: linear-gradient(180deg, rgba(0,0,0,0.02), transparent); }
body.light-mode .controls-panel input,
body.light-mode .controls-panel select { color:#120015; border-color: rgba(0,0,0,0.1); background:#fff; }

@media (max-width:980px){
  .main-grid{grid-template-columns:1fr;padding:14px}
  .controls-panel{order:2}
  .visual-panel{order:1}
  .canvas-wrap{min-height:420px}
}
