:root{--bg:#0b1220;--panel:#0f172a;--muted:#94a3b8;--text:#e5e7eb;--accent:#22c55e;--border:rgba(148,163,184,.25)}
*{box-sizing:border-box;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
html,body{height:100%;margin:0;background:var(--bg);color:var(--text)}
.topbar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--border);background:rgba(2,6,23,.55);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}
.brand{font-weight:700;letter-spacing:.2px}
.topbar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
button{background:#111827;color:var(--text);border:1px solid var(--border);padding:7px 10px;border-radius:10px;cursor:pointer}
button:hover{border-color:rgba(148,163,184,.55)}
button.primary{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.55)}
.sep{width:1px;height:28px;background:var(--border);margin:0 6px}
.layout{height:calc(100% - 52px);display:grid;grid-template-columns:340px 1fr}
.sidebar{border-right:1px solid var(--border);background:rgba(2,6,23,.35);overflow:auto}
.panel{padding:12px 12px 14px;border-bottom:1px solid var(--border)}
.panel h3{margin:0 0 10px;font-size:14px;color:#cbd5e1}
.form{display:flex;flex-direction:column;gap:10px}
.field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.field.inline{flex-direction:row;align-items:center;gap:8px}
.field input,.field select{background:#0b1220;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 10px}
.row{display:flex;gap:8px}
.row>button{flex:1}
.toolgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tool{display:flex;flex-direction:column;gap:4px;align-items:flex-start;justify-content:center;padding:10px;border-radius:12px;border:1px solid var(--border);background:#0b1220;min-height:56px}
.tool .k{font-size:11px;color:var(--muted)}
.tool .t{font-size:13px;color:var(--text);font-weight:600}
.tool.active{border-color:rgba(34,197,94,.8);box-shadow:0 0 0 2px rgba(34,197,94,.18) inset}
.hint{margin-top:8px;color:var(--muted);font-size:12px;min-height:34px}
.stage{position:relative;overflow:hidden}
#canvas{width:100%;height:100%;display:block;background:radial-gradient(circle at 20% 10%, rgba(34,197,94,.06), transparent 42%), #060b16}
.statusbar{position:absolute;left:12px;bottom:12px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:rgba(2,6,23,.6);backdrop-filter:blur(8px);font-size:12px;color:#cbd5e1}
.small{font-size:12px;color:var(--muted);line-height:1.4}
