:root{--bg: #0d0d0a;--panel: #1a1a14;--panel-2: #26261f;--panel-3: #32322a;--line: #3f3f33;--line-strong: #56564a;--ink: #f0eee4;--ink-dim: #a8a594;--accent: #e6c94e;--accent-dim: #8a7d33;--accent-2: #8a9a48;--danger: #c85738;--grid: #1e1e16;--font-display: "Oswald", sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:14px;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:340px 1fr;height:100vh;height:100dvh;overflow:hidden}.nav-toggle,.nav-backdrop{display:none}.sidebar{background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:0}.brand{padding:20px 22px 16px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(216,193,74,.04) 8px,rgba(216,193,74,.04) 16px),var(--panel-2)}.brand h1{font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);line-height:1}.brand .sub{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--ink-dim);margin-top:6px}.account-bar{display:flex;align-items:center;gap:8px;padding:10px 22px;border-bottom:1px solid var(--line);background:var(--panel-2)}.acct-status{font-size:11px;color:var(--ink);letter-spacing:.5px;display:flex;align-items:center;gap:6px;flex:1;min-width:0}.acct-status.guest{color:var(--ink-dim)}.acct-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 6px var(--accent-2)}.acct-admin{font-size:8px;text-transform:uppercase;letter-spacing:1px;background:var(--accent-dim);color:#15150f;padding:1px 5px;border-radius:2px;font-weight:700}.acct-btn{background:transparent;border:1px solid var(--line-strong);color:var(--ink-dim);font-family:var(--font-display);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:5px 11px;cursor:pointer;border-radius:2px;transition:all .15s;white-space:nowrap}.acct-btn:hover{border-color:var(--accent);color:var(--accent)}.acct-btn.primary{background:var(--accent);color:#15150f;border-color:var(--accent);font-weight:600}.acct-btn.primary:hover{background:#f0d65e}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#080805b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:340px;max-width:92vw;background:var(--panel);border:1px solid var(--line-strong);border-radius:3px;box-shadow:0 12px 48px #0009}.modal-tabs{display:flex;border-bottom:1px solid var(--line);position:relative}.modal-tabs button{flex:1;background:transparent;border:none;color:var(--ink-dim);font-family:var(--font-display);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:13px;cursor:pointer;transition:all .15s}.modal-tabs button:hover{color:var(--ink)}.modal-tabs button.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.modal-x{flex:0 0 auto!important;width:40px;color:var(--ink-dim)!important;font-size:18px!important;padding:0!important}.modal-body{padding:20px}.modal-note{font-size:10px;color:var(--ink-dim);margin-bottom:12px;letter-spacing:.3px;line-height:1.5}.modal-title{flex:1;padding:13px;font-family:var(--font-display);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent)}.modal-err{font-size:11px;color:#f0b09c;background:#c8573826;border:1px solid var(--danger);border-radius:2px;padding:8px 10px;margin-bottom:12px}.field-warn{font-size:10px;color:#f0b09c;margin-top:4px;letter-spacing:.3px}input[aria-invalid=true]{border-color:var(--danger)}.modal-body .btn{margin-top:4px}.modal-wide{width:480px}.admin-list{display:flex;flex-direction:column;gap:6px;margin-top:12px;max-height:50vh;overflow-y:auto}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:2px;padding:9px 11px}.admin-row-main{display:flex;flex-direction:column;gap:3px;min-width:0}.admin-name{color:var(--ink);font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px}.admin-meta{color:var(--ink-dim);font-size:10px;letter-spacing:.3px}.admin-you{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-dim);border:1px solid var(--line-strong);padding:1px 5px;border-radius:2px}.admin-row-actions{display:flex;gap:12px;flex:0 0 auto}.linkish.danger{color:var(--danger)}.linkish.danger:hover{color:#e06a4c}.linkish:disabled{opacity:.4;cursor:default}.admin-note{font-size:10px;color:var(--ink-dim);margin:10px 0;line-height:1.5}.invite-new{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:10px}.invite-new input{font-size:11px}.invite-status{font-size:8px;text-transform:uppercase;letter-spacing:1px;padding:1px 6px;border-radius:2px;font-weight:700}.invite-status.active{background:var(--accent-2);color:#10120b}.invite-status.used{background:var(--line-strong);color:var(--ink-dim)}.invite-status.expired{background:var(--danger);color:#15150f}.section{padding:18px 22px;border-bottom:1px solid var(--line)}.section h2{font-family:var(--font-display);font-weight:600;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);margin-bottom:14px;display:flex;align-items:center;gap:8px}.section h2:before{content:"";width:7px;height:7px;background:var(--accent);transform:rotate(45deg);box-shadow:0 0 6px #e6c94e66;flex:0 0 auto}.section h2.h2-collapse{cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:14px}.section.collapsed h2.h2-collapse{margin-bottom:0}.section h2.h2-collapse:before{display:none}.section h2.h2-collapse:hover{color:#f0d65e}.chevron{color:var(--accent);font-size:9px;width:10px;flex:0 0 auto}.mode-toggle{display:flex;border:1px solid var(--line)}.mode-toggle button{flex:1;background:transparent;border:none;color:var(--ink-dim);font-family:var(--font-display);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:10px;cursor:pointer;transition:all .15s}.mode-toggle button.active{background:var(--accent);color:#1a1a12;font-weight:600}label.field{display:block;margin-bottom:14px}label.field .lbl{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:var(--ink-dim);text-transform:uppercase;margin-bottom:5px}label.field .val{color:var(--accent);font-weight:700}input[type=range]{width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3px;background:var(--panel-3);outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:15px;height:15px;border-radius:2px;background:var(--accent);cursor:pointer;border:2px solid #15150f;box-shadow:0 0 5px #e6c94e66}select,input[type=number],input[type=text]{width:100%;background:var(--panel-2);border:1px solid var(--line-strong);color:var(--ink);padding:9px 10px;font-family:var(--font-mono);font-size:13px;border-radius:2px;transition:border-color .15s}select:focus,input[type=number]:focus,input[type=text]:focus{outline:none;border-color:var(--accent)}.chip-grid{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--panel-2);border:1px solid var(--line-strong);color:var(--ink-dim);padding:6px 11px;cursor:pointer;border-radius:2px;font-size:12px;font-weight:600;transition:all .12s}.chip:hover{border-color:var(--accent-2);color:var(--ink);background:var(--panel-3)}.chip.active{background:var(--accent-2);color:#10120b;border-color:var(--accent-2);box-shadow:0 0 8px #8a9a4859}.mixrow{display:grid;grid-template-columns:1fr 64px 28px;gap:6px;margin-bottom:8px;align-items:center}.mixrow button.rm{background:transparent;border:1px solid var(--line);color:var(--danger);cursor:pointer;height:100%;font-size:14px}.addrow{width:100%;background:transparent;border:1px dashed var(--line);color:var(--ink-dim);padding:9px;cursor:pointer;font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.addrow:hover{border-color:var(--accent);color:var(--accent)}.export-btns{display:flex;flex-direction:column;gap:8px}.btn{width:100%;padding:13px;border:none;cursor:pointer;font-family:var(--font-display);font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:600;transition:all .15s}.btn-primary{background:var(--accent);color:#1a1a12}.btn-primary:hover{background:#e6d05c}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.viewport{position:relative;background:radial-gradient(circle at 50% 42%,#20201a,#0c0c08 78%);overflow:hidden}.viewport canvas{display:block}.hud{position:absolute;top:18px;left:18px;z-index:5;font-size:11px;letter-spacing:1px;color:var(--ink-dim);pointer-events:none;background:#0d0d0a8c;padding:10px 14px;border-left:2px solid var(--accent);border-radius:0 2px 2px 0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hud .row{margin-bottom:3px}.hud .row:last-child{margin-bottom:0}.hud .row b{color:var(--accent);font-weight:700}.warn{position:absolute;bottom:18px;left:18px;right:18px;z-index:5;background:#c857382e;border:1px solid var(--danger);border-left-width:3px;color:#f0b09c;padding:11px 14px;font-size:12px;letter-spacing:.5px;border-radius:2px;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.toggle-2d{position:absolute;top:18px;right:18px;z-index:10;display:flex;border:1px solid var(--line-strong);background:var(--panel);border-radius:2px;overflow:hidden}.toggle-2d button{background:transparent;border:none;color:var(--ink-dim);padding:7px 15px;cursor:pointer;font-family:var(--font-display);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;transition:all .12s}.toggle-2d button:hover{color:var(--ink)}.toggle-2d button.active{background:var(--accent);color:#15150f;font-weight:600}.svg-2d{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.svg-2d svg{position:relative;z-index:1}.grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;opacity:.5}.preset-save{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:12px}.btn-mini{background:var(--accent);color:#1a1a12;border:none;cursor:pointer;font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:0 14px}.btn-mini:hover{background:#e6d05c}.btn-mini:disabled{background:var(--line);color:var(--ink-dim);cursor:not-allowed}.preset-empty{color:var(--ink-dim);font-size:11px;font-style:italic;padding:4px 0 10px;letter-spacing:.5px}.preset-list{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.preset-row{display:grid;grid-template-columns:1fr 28px;gap:4px}.preset-load{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;text-align:left;padding:7px 10px;transition:all .12s;display:flex;flex-direction:column;gap:2px;overflow:hidden}.preset-load:hover{border-color:var(--accent-2);background:#2a2c1f}.preset-name{color:var(--ink);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-meta{color:var(--accent);font-size:10px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-del{background:transparent;border:1px solid var(--line);color:var(--danger);cursor:pointer;font-size:15px;line-height:1;transition:all .12s}.preset-del:hover{border-color:var(--danger);background:#b5482e26}.preset-io{display:flex;gap:16px}.linkish{background:none;border:none;color:var(--ink-dim);cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:0}.linkish:hover{color:var(--accent)}.store-badge{margin-left:auto;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1px;text-transform:none}.store-badge.server{color:var(--accent-2)}.store-badge.local{color:var(--ink-dim)}.frontage-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px}.frontage-row .lbl{font-size:11px;letter-spacing:1px;color:var(--ink-dim);text-transform:uppercase}.stepper{display:flex;align-items:center;gap:12px}.stepper button{width:24px;height:24px;background:var(--panel-2);border:1px solid var(--line);color:var(--accent);cursor:pointer;font-size:15px;line-height:1}.stepper button:hover{border-color:var(--accent)}.stepper .val{color:var(--accent);font-weight:700;min-width:16px;text-align:center}.check-row{display:flex;align-items:center;gap:8px;cursor:pointer;margin-bottom:6px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim)}.check-row input{width:auto}.plate-dims{display:grid;grid-template-columns:1fr 1fr;gap:10px}.plate-dims .field{margin-bottom:0}.lock-toggle{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;font-family:var(--font-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:3px 8px;border-radius:2px;transition:all .15s}.lock-toggle:hover{border-color:var(--accent);color:var(--accent)}.lock-toggle.unlocked{border-color:var(--accent-2);color:var(--accent-2)}.lock-note{font-size:10px;color:var(--ink-dim);font-style:italic;margin:-4px 0 12px;letter-spacing:.3px}label.field.disabled{opacity:.45}label.field.disabled input[type=range]{cursor:not-allowed}label.field.disabled .val{color:var(--ink-dim)}.formation-hint{font-size:10px;color:var(--ink-dim);letter-spacing:.3px;line-height:1.6;margin-top:8px}.formation-hint b{color:var(--accent)}.linkish.inline{display:inline;font-size:10px}.editor-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);pointer-events:none}.sidebar-foot{padding:14px 22px 18px;font-family:var(--font-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim)}@media (max-width: 860px){.app{grid-template-columns:1fr}.nav-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;z-index:60;width:42px;height:42px;border-radius:3px;background:var(--panel);border:1px solid var(--line-strong);color:var(--accent);font-size:20px;cursor:pointer;box-shadow:0 3px 12px #0006}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:70;width:320px;max-width:88vw;transform:translate(-100%);transition:transform .22s ease;box-shadow:4px 0 24px #00000080}.app.nav-open .sidebar{transform:translate(0)}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;background:#08080580;opacity:0;pointer-events:none;transition:opacity .22s ease}.app.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.hud{top:64px;left:12px;font-size:10px}.toggle-2d{top:14px}.editor-hint{bottom:10px}.version-badge{bottom:6px;left:6px}}@media (max-width: 480px){body{font-size:13px}.modal,.modal-wide{width:94vw}.svg-2d svg{width:94%!important;height:70%!important}.warn{font-size:11px;padding:9px 11px}.hud{max-width:60vw}.section{padding:15px 16px}.account-bar{padding:9px 16px}}@media (pointer: coarse){.chip{padding:8px 13px}.acct-btn,.lock-toggle{padding:7px 12px}}
