@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --bg-void:#0E0B14;
  --surface:#16111F;
  --surface-raised:#221A30;
  --line:#33283F;
  --accent-signal:#FF3B62;
  --accent-signal-dim:#7A2036;
  --accent-cyan:#2FE6C9;
  --accent-cyan-dim:#175A50;
  --accent-lime:#B8F15A;
  --accent-amber:#FFC93B;
  --text-primary:#F4EFFB;
  --text-muted:#9186A3;
  --text-faint:#5E5470;
  --radius:10px;
  --radius-sm:6px;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  background:var(--bg-void);
  color:var(--text-primary);
  font-family:'Inter',sans-serif;
  overflow:hidden;
}
.mono{font-family:'JetBrains Mono',monospace;}
.display{font-family:'Space Grotesk',sans-serif;}

/* ===== layout ===== */
.app{
  display:grid;
  grid-template-rows:60px 1fr;
  height:100vh;
  width:100vw;
}
.topbar{
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 18px;
  background:linear-gradient(180deg,#171020 0%, var(--surface) 100%);
  border-bottom:1px solid var(--line);
  z-index:20;
}
.brand{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:16px;
  letter-spacing:0.02em;
  white-space:nowrap;
}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-signal);box-shadow:0 0 8px var(--accent-signal);}
.brand small{color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-weight:400;font-size:10px;letter-spacing:0.08em;}

.title-input{
  background:transparent;border:1px solid transparent;color:var(--text-primary);
  font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:500;
  padding:6px 10px;border-radius:var(--radius-sm);min-width:160px;
}
.title-input:hover,.title-input:focus{border-color:var(--line);outline:none;background:var(--surface-raised);}

.formats{display:flex;gap:4px;background:#0B0811;padding:4px;border-radius:var(--radius-sm);border:1px solid var(--line);}
.format-tab{
  padding:6px 12px;border-radius:5px;font-size:12px;font-family:'JetBrains Mono',monospace;
  color:var(--text-muted);cursor:pointer;white-space:nowrap;border:1px solid transparent;
}
.format-tab.active{background:var(--accent-signal);color:#1a0810;font-weight:500;}
.format-tab:hover:not(.active){color:var(--text-primary);border-color:var(--line);}

.topbar-spacer{flex:1;}

.btn{
  font-family:'Inter',sans-serif;font-size:13px;font-weight:500;
  padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--line);
  background:var(--surface-raised);color:var(--text-primary);cursor:pointer;
  display:flex;align-items:center;gap:6px;white-space:nowrap;
}
.btn:hover{border-color:var(--text-muted);}
.btn.primary{background:var(--accent-signal);border-color:var(--accent-signal);color:#1a0810;font-weight:600;}
.btn.primary:hover{background:#ff5578;}
.btn.ghost{background:transparent;}
.btn.cyan{background:var(--accent-cyan);border-color:var(--accent-cyan);color:#06130f;font-weight:700;}
.btn:disabled{opacity:0.35;cursor:not-allowed;}
.btn svg{width:14px;height:14px;flex-shrink:0;}

/* ===== workspace ===== */
.workspace{
  display:grid;
  grid-template-columns:76px 1fr 340px;
  overflow:hidden;
}

/* rail */
.rail{
  background:var(--surface);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;
  padding:14px 0;gap:6px;overflow-y:auto;
}
.rail-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text-faint);letter-spacing:0.1em;margin:8px 0 2px;}
.rail-btn{
  width:52px;height:52px;border-radius:var(--radius-sm);border:1px solid transparent;
  background:transparent;color:var(--text-muted);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
}
.rail-btn svg{width:20px;height:20px;}
.rail-btn span{font-size:8px;font-family:'JetBrains Mono',monospace;}
.rail-btn:hover{background:var(--surface-raised);color:var(--text-primary);border-color:var(--line);}

/* stage */
.stage-wrap{
  display:flex;align-items:center;justify-content:center;
  background:
    linear-gradient(135deg, rgba(255,59,98,0.08), transparent 28%),
    linear-gradient(315deg, rgba(47,230,201,0.08), transparent 34%),
    var(--bg-void);
  position:relative;overflow:auto;padding:30px;
}
.stage-outer{position:relative;}
.stage{
  position:relative;
  background:#0A0810;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size:5% 5%;
  box-shadow:0 0 0 1px var(--line), 0 30px 80px -20px rgba(0,0,0,0.7), 0 0 0 10px rgba(255,255,255,0.015);
  overflow:hidden;
}
.stage-format-label{
  position:absolute;top:-26px;left:0;font-family:'JetBrains Mono',monospace;
  font-size:10px;color:var(--text-faint);letter-spacing:0.06em;
}

.layer-el{
  position:absolute;cursor:move;
  display:flex;align-items:center;justify-content:center;
  user-select:none;
}
.layer-el.selected{outline:2px solid var(--accent-cyan);outline-offset:2px;}
.layer-el .ref-thumb{width:100%;height:100%;object-fit:cover;opacity:0.85;pointer-events:none;}
.layer-el .icon-fill{width:60%;height:60%;pointer-events:none;}
.layer-el .missing-desc-flag{
  position:absolute;top:-8px;right:-8px;width:16px;height:16px;border-radius:50%;
  background:var(--accent-signal);border:2px solid var(--bg-void);
}
.handle{
  position:absolute;width:14px;height:14px;background:var(--accent-cyan);
  border:2px solid var(--bg-void);border-radius:50%;cursor:nwse-resize;z-index:5;
}
.handle.resize{right:-7px;bottom:-7px;}
.handle.rotate{left:50%;top:-26px;transform:translateX(-50%);cursor:grab;background:var(--accent-signal);}
.rotate-line{position:absolute;left:50%;top:-14px;width:1px;height:14px;background:var(--text-faint);transform:translateX(-50%);}

.text-layer-el{
  display:block !important;white-space:pre-wrap;line-height:1.15;padding:2px;
  overflow:hidden;text-align:center;
}
.text-layer-el.columns{column-count:2;column-gap:12px;text-align:left;}

/* inspector */
.inspector{
  background:var(--surface);border-left:1px solid var(--line);
  overflow-y:auto;display:flex;flex-direction:column;
}
.insp-section{padding:16px 16px;border-bottom:1px solid var(--line);}
.insp-title{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.1em;
  color:var(--text-faint);text-transform:uppercase;margin:0 0 10px;
  display:flex;align-items:center;justify-content:space-between;
}

/* depth strip — signature element */
.depth-strip{display:flex;flex-direction:column;gap:3px;}
.depth-row{
  display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;
  background:var(--surface-raised);border:1px solid transparent;cursor:pointer;font-size:11px;
}
.depth-row:hover{border-color:var(--line);}
.depth-row.selected{border-color:var(--accent-cyan);}
.depth-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;}
.depth-label{flex:1;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.depth-tag{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text-faint);}
.depth-empty{font-size:11px;color:var(--text-faint);padding:10px 0;}
.depth-caption{font-size:10px;color:var(--text-faint);margin-top:8px;line-height:1.5;}

/* layer list */
.layer-item{
  display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;margin-bottom:4px;
  border:1px solid transparent;cursor:pointer;
}
.layer-item:hover{background:var(--surface-raised);}
.layer-item.selected{background:var(--surface-raised);border-color:var(--accent-cyan);}
.layer-item .swatch{width:22px;height:22px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.layer-item .swatch svg{width:13px;height:13px;}
.layer-item .info{flex:1;min-width:0;}
.layer-item .lname{font-size:12px;font-weight:500;}
.layer-item .ldesc{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.layer-item .ldesc.empty{color:var(--accent-signal);}
.layer-actions{display:flex;gap:2px;}
.icon-btn{width:22px;height:22px;border:none;background:transparent;color:var(--text-faint);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;}
.icon-btn:hover{background:var(--line);color:var(--text-primary);}
.icon-btn svg{width:12px;height:12px;}

/* properties form */
.field{margin-bottom:12px;}
.field label{font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;letter-spacing:0.05em;display:block;margin-bottom:5px;}
.field textarea, .field input[type=text], .field select{
  width:100%;background:var(--bg-void);border:1px solid var(--line);color:var(--text-primary);
  border-radius:var(--radius-sm);padding:8px;font-family:'Inter',sans-serif;font-size:12px;resize:vertical;
}
.field textarea:focus, .field input:focus, .field select:focus{outline:none;border-color:var(--accent-cyan);}
.field textarea.error{border-color:var(--accent-signal);}
.field-hint{font-size:9px;color:var(--text-faint);margin-top:4px;}
.radio-row{display:flex;gap:8px;}
.radio-opt{
  flex:1;padding:7px;border-radius:var(--radius-sm);border:1px solid var(--line);text-align:center;
  font-size:10px;font-family:'JetBrains Mono',monospace;cursor:pointer;color:var(--text-muted);
}
.radio-opt.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:rgba(47,230,201,0.08);}
.ref-upload{
  border:1.5px dashed var(--line);border-radius:var(--radius-sm);padding:14px;text-align:center;
  cursor:pointer;font-size:11px;color:var(--text-muted);position:relative;
}
.ref-upload:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);}
.ref-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.ref-preview{display:flex;align-items:center;gap:8px;background:var(--bg-void);border-radius:var(--radius-sm);padding:6px;border:1px solid var(--line);}
.ref-preview img{width:36px;height:36px;object-fit:cover;border-radius:4px;}
.ref-preview .rp-name{flex:1;font-size:10px;color:var(--text-muted);}
.empty-panel{padding:40px 16px;text-align:center;color:var(--text-faint);font-size:12px;}
.empty-panel svg{width:32px;height:32px;margin-bottom:10px;opacity:0.4;}

/* style presets */
.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.preset-card{
  border-radius:var(--radius-sm);border:1px solid var(--line);padding:9px;cursor:pointer;background:var(--surface-raised);
}
.preset-card.active{border-color:var(--accent-signal);box-shadow:0 0 0 1px var(--accent-signal);}
.preset-swatches{display:flex;gap:3px;margin-bottom:6px;}
.preset-swatches div{width:14px;height:14px;border-radius:3px;}
.preset-name{font-size:11px;font-weight:500;}

/* prompt drawer */
.drawer-overlay{
  position:fixed;inset:0;background:rgba(5,3,8,0.7);backdrop-filter:blur(2px);
  display:none;align-items:flex-end;justify-content:center;z-index:100;
}
.drawer-overlay.open{display:flex;}
.drawer{
  background:var(--surface);border:1px solid var(--line);border-bottom:none;
  border-radius:12px 12px 0 0;width:min(920px,94vw);max-height:86vh;overflow-y:auto;
  padding:24px 28px 28px;
}
.drawer h2{font-family:'Space Grotesk',sans-serif;font-size:18px;margin:0 0 4px;}
.drawer .sub{color:var(--text-muted);font-size:12px;margin-bottom:18px;}
.drawer-close{float:right;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;line-height:1;}
.stage-block{margin-bottom:16px;}
.stage-block h3{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.08em;color:var(--accent-cyan);text-transform:uppercase;margin:0 0 8px;display:flex;align-items:center;gap:8px;}
.stage-block pre{
  background:var(--bg-void);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:12px;font-family:'JetBrains Mono',monospace;font-size:11.5px;line-height:1.6;
  white-space:pre-wrap;word-break:break-word;color:var(--text-primary);margin:0;
}
.copy-row{display:flex;justify-content:flex-end;margin-top:8px;}
.action-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px;}
.handoff-preview{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:start;}
.handoff-preview img{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:#09070d;}
.status-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;}
.status-pill.ok{border-color:var(--accent-cyan);color:var(--accent-cyan);}
.status-pill.fallback{border-color:var(--accent-amber);color:var(--accent-amber);}
.guide-overlay{
  position:fixed;inset:0;background:rgba(5,3,8,0.78);backdrop-filter:blur(4px);
  display:none;align-items:center;justify-content:center;z-index:160;padding:24px;
}
.guide-overlay.open{display:flex;}
.guide-modal{
  width:min(620px,94vw);background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,0.45);
}
.guide-modal h2{font-family:'Space Grotesk',sans-serif;margin:0 0 8px;font-size:20px;}
.guide-modal p{color:var(--text-muted);font-size:13px;line-height:1.55;margin:0 0 14px;}
.guide-steps{display:grid;gap:8px;margin:14px 0;}
.guide-step{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg-void);}
.guide-step b{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent-cyan);color:#06130f;font-size:12px;}
.guide-step span{font-size:12px;line-height:1.45;color:var(--text-primary);}
.guide-note{border:1px solid var(--accent-amber);color:var(--accent-amber);border-radius:8px;padding:10px;font-size:12px;line-height:1.45;background:rgba(255,201,59,0.06);}
.guide-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px;}
.loading-dots{display:flex;gap:4px;padding:20px 0;justify-content:center;}
.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--accent-cyan);animation:pulse 1s infinite ease-in-out;}
.loading-dots span:nth-child(2){animation-delay:0.15s;}
.loading-dots span:nth-child(3){animation-delay:0.3s;}
@keyframes pulse{0%,80%,100%{opacity:0.2;transform:scale(0.8);}40%{opacity:1;transform:scale(1.1);}}

.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--accent-signal);color:#1a0810;padding:10px 18px;border-radius:8px;
  font-size:12px;font-weight:500;opacity:0;transition:all 0.25s;z-index:200;pointer-events:none;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
::-webkit-scrollbar-track{background:transparent;}

/* KOLRN-inspired studio system */
:root{
  --bg-void:#0a0a0a;
  --surface:#101010;
  --surface-raised:#171717;
  --line:rgba(255,255,255,.10);
  --accent-signal:#c8ff00;
  --accent-signal-dim:#526900;
  --accent-cyan:#c8ff00;
  --accent-cyan-dim:#526900;
  --accent-lime:#c8ff00;
  --accent-amber:#ffcb45;
  --text-primary:#f5f5f5;
  --text-muted:#969696;
  --text-faint:#626262;
  --radius:6px;
  --radius-sm:4px;
}
body{background:#0a0a0a;font-family:'Inter',system-ui,sans-serif;letter-spacing:0;}
.app{grid-template-rows:68px 1fr;}
.topbar{gap:10px;padding:0 16px;background:rgba(10,10,10,.96);border-color:var(--line);}
.brand{min-width:220px;gap:10px;letter-spacing:0;}
.brand>span:last-child{display:flex;flex-direction:column;line-height:1.05;}
.brand .dot{display:none;}
.brand-mark{width:30px;height:30px;display:grid;place-items:center;background:var(--accent-signal);color:#0a0a0a;font-family:'Space Grotesk';font-weight:700;font-size:16px;}
.brand small{margin-top:4px;font-size:8px;color:#777;letter-spacing:.08em;}
.title-input{min-width:140px;max-width:210px;font-size:13px;background:#111;border-color:var(--line);}
.formats{background:#111;border-color:var(--line);border-radius:4px;padding:3px;}
.format-tab{border-radius:2px;padding:7px 10px;font-family:'Inter';font-size:11px;}
.format-tab.active{background:var(--accent-signal);color:#0a0a0a;}
.btn{min-height:34px;padding:8px 12px;border-radius:999px;background:#171717;border-color:var(--line);font-size:12px;}
.btn.primary,.btn.cyan{background:var(--accent-signal);border-color:var(--accent-signal);color:#0a0a0a;}
.btn.primary:hover,.btn.cyan:hover{background:#dbff59;border-color:#dbff59;}
.btn.ghost:hover{background:#1d1d1d;color:#fff;}
.language-switch{display:flex;align-items:center;padding:3px;background:#111;border:1px solid var(--line);border-radius:999px;}
.github-link{text-decoration:none}.github-link svg{width:15px;height:15px}.github-link:hover{border-color:rgba(200,255,0,.55);color:var(--accent-signal)}
.lang-btn{width:34px;height:26px;border:0;border-radius:999px;background:transparent;color:#777;font:600 10px/1 'Inter';cursor:pointer;}
.lang-btn.active{background:var(--accent-signal);color:#0a0a0a;}
.workspace{grid-template-columns:72px minmax(420px,1fr) 360px;}
.rail,.inspector{background:#0e0e0e;}
.rail-btn{width:48px;height:48px;border-radius:4px;}
.rail-btn:hover{background:#191919;border-color:rgba(200,255,0,.35);color:var(--accent-signal);}
.stage-wrap{background-color:#0a0a0a;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:24px 24px;padding:42px;}
.stage{background-color:#0d0d0d;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 30px 80px rgba(0,0,0,.65);}
.layer-el.selected{outline-color:var(--accent-signal);}
.handle{background:var(--accent-signal);border-color:#0a0a0a;border-radius:2px;}
.handle.rotate{background:#f5f5f5;border-radius:50%;}
.insp-section{padding:18px 16px;}
.insp-title{font-family:'Inter';font-weight:600;font-size:10px;color:#767676;letter-spacing:.08em;}
.depth-row,.preset-card{background:#141414;border-radius:4px;}
.depth-row.selected,.layer-item.selected,.preset-card.active{border-color:var(--accent-signal);box-shadow:none;}
.radio-opt{border-radius:999px;font-family:'Inter';}
.radio-opt.active{border-color:var(--accent-signal);color:var(--accent-signal);background:rgba(200,255,0,.07);}
.field textarea,.field input[type=text],.field select{background:#0a0a0a;border-radius:4px;font-size:12px;line-height:1.5;}
.field textarea:focus,.field input:focus,.field select:focus{border-color:var(--accent-signal);}
.ref-upload{border-radius:4px;}
.ref-upload:hover{border-color:var(--accent-signal);color:var(--accent-signal);}
.drawer{background:#0f0f0f;border-radius:8px 8px 0 0;}
.stage-block h3{color:var(--accent-signal);}
.guide-modal{width:min(680px,94vw);background:#101010;border-radius:6px;padding:30px;}
.guide-kicker{color:var(--accent-signal);font:600 10px/1 'Inter';letter-spacing:.1em;margin-bottom:12px;}
.guide-modal h2{font:600 30px/1.05 'Space Grotesk';letter-spacing:0;}
.guide-step{border-radius:4px;background:#0b0b0b;}
.guide-step b{border-radius:2px;background:var(--accent-signal);color:#0a0a0a;}
.guide-note{border-radius:4px;border-color:rgba(200,255,0,.4);color:#d9ff57;background:rgba(200,255,0,.05);}
.lang-copy a{color:var(--accent-signal);}.lang-copy.ru{display:none;}html[lang="ru"] .lang-copy.en{display:none;}html[lang="ru"] .lang-copy.ru{display:block;}
.creator-credit{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;color:var(--text-faint)}.creator-credit a{color:var(--text-muted);text-decoration:none}.creator-credit a:hover{color:var(--accent-signal)}
.toast{background:var(--accent-signal);color:#0a0a0a;border-radius:999px;}
@media (max-width:1180px){.topbar .btn.ghost{padding-inline:9px}.brand{min-width:auto}.brand small{display:none}.title-input{max-width:150px}.workspace{grid-template-columns:64px minmax(360px,1fr) 330px}}
@media (max-width:1360px){.topbar #helpBtn,.topbar #saveBtn,.topbar #loadBtn{display:none}.brand{min-width:auto}.brand small{display:none}}
@media (max-width:1100px){body{overflow:auto}.app{height:auto;min-height:100vh;grid-template-rows:auto 1fr}.topbar{min-height:68px;flex-wrap:wrap;padding:10px}.formats{order:4;width:100%;overflow-x:auto}.workspace{grid-template-columns:58px minmax(0,1fr);grid-template-rows:minmax(520px,70vh) auto}.inspector{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);max-height:none}.stage-wrap{padding:30px 18px}.topbar-spacer{display:none}.brand{margin-right:auto}.title-input{order:2}.language-switch{order:3}.topbar .btn,.topbar .github-link{display:none}.topbar #generateBtn{display:flex;position:fixed;right:16px;bottom:16px;z-index:90;box-shadow:0 10px 30px #000}}
