:root{
  --bg:#14161c; --bg2:#1c1f27; --bg3:#252934; --line:#323744;
  --text:#e6e8ee; --muted:#8a91a3; --accent:#f5b83d; --accent2:#4fc3f7; --danger:#ef5350;
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-size:13px;overflow:hidden}
button,select,input,textarea{font:inherit;color:inherit}
button,select{background:var(--bg3);border:1px solid var(--line);border-radius:6px;padding:5px 10px;cursor:pointer}
button:hover{border-color:var(--accent)}
button.active,button.primary{background:var(--accent);color:#1a1a1a;border-color:var(--accent);font-weight:600}
input,textarea,select.field{background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:4px 6px;width:100%}
input[type=color]{padding:0;height:26px;cursor:pointer}
input[type=checkbox]{width:auto}
a{color:var(--accent2)}

.topbar{display:flex;align-items:center;gap:12px;padding:6px 10px;background:var(--bg2);border-bottom:1px solid var(--line);height:46px;flex-wrap:nowrap;overflow-x:auto}
.brand{font-weight:700;letter-spacing:.5px;color:var(--accent);white-space:nowrap}
.tabs{display:flex;gap:4px}
.actions{display:flex;gap:4px;margin-left:auto}
.actions button,.actions select{white-space:nowrap}

#workspace{position:absolute;top:46px;left:0;right:0;bottom:0}
.view{display:none;height:100%}
.view.active{display:grid;grid-template-columns:132px 1fr 280px}
.toolbar{background:var(--bg2);border-right:1px solid var(--line);padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.toolbar h4{margin:10px 0 2px;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.6px}
.toolbar button{text-align:left;width:100%}
.stage{position:relative;overflow:hidden;background:#0d0f13}
.stage canvas{display:block;width:100%;height:100%;touch-action:none}
.hint{position:absolute;left:8px;bottom:6px;color:var(--muted);font-size:11px;pointer-events:none;background:#0008;padding:3px 7px;border-radius:4px}
.panel{background:var(--bg2);border-left:1px solid var(--line);padding:10px;overflow-y:auto}
.panel h3{margin:4px 0 8px;font-size:13px}
.panel h4{margin:14px 0 6px;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.6px}
.field-row{display:grid;grid-template-columns:78px 1fr;gap:6px;align-items:center;margin-bottom:5px}
.field-row label{color:var(--muted);font-size:12px}
.vec{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.list{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto;margin-bottom:6px}
.list .item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:5px;cursor:pointer;border:1px solid transparent}
.list .item:hover{background:var(--bg3)}
.list .item.sel{border-color:var(--accent);background:var(--bg3)}
.swatch{width:16px;height:16px;border-radius:3px;border:1px solid #0006;flex:none;image-rendering:pixelated}
.btnrow{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0}
.btnrow button{flex:1}
.palette{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-bottom:6px}
.palette div{aspect-ratio:1;border-radius:3px;cursor:pointer;border:2px solid transparent}
.palette div.sel{border-color:var(--accent)}
.muted{color:var(--muted)}

dialog{background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0;width:min(820px,94vw)}
dialog::backdrop{background:#000a}
.dlg{padding:16px;display:flex;flex-direction:column;gap:8px}
.dlg h3{margin:0}
.dlg textarea{height:55vh;font-family:ui-monospace,Consolas,monospace;font-size:12px;resize:vertical}
.dlg .row{display:flex;gap:6px;justify-content:flex-end}
.err{color:var(--danger);min-height:1em;white-space:pre-wrap}

#toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--accent);color:#1a1a1a;padding:7px 14px;border-radius:6px;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none;z-index:9}
#toast.show{opacity:1}

@media (max-width:820px){
  .view.active{grid-template-columns:1fr;grid-template-rows:auto 1fr 38%}
  .toolbar{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line);max-height:110px}
  .toolbar h4{width:100%;margin:2px 0}
  .toolbar button{width:auto}
  .panel{border-left:none;border-top:1px solid var(--line)}
  .brand{display:none}
}
