@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@500;600;700&family=Fira+Sans:wght@400;500;600;700&display=swap");:root{--color-primary:#1e293b;--color-primary-soft:#334155;--color-on-primary:#ffffff;--color-accent:#dc2626;--color-accent-hover:#b91c1c;--color-accent-soft:#fee2e2;--color-background:#f1f5f9;--color-foreground:#0f172a;--color-muted:#e2e8f0;--color-muted-fg:#64748b;--color-border:#e2e8f0;--color-card:#ffffff;--color-surface-2:#f8fafc;--color-destructive:#dc2626;--color-success:#15803d;--color-success-soft:#dcfce7;--color-info:#0369a1;--color-info-soft:#e0f2fe;--color-ring:#1e293b;--color-sidebar:#0f172a;--color-sidebar-fg:#cbd5e1;--color-sidebar-muted:#94a3b8;--color-sidebar-hover:rgba(255,255,255,0.06);--color-sidebar-active:rgba(255,255,255,0.1);--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:22px;--font-sans:"Fira Sans",ui-sans-serif,system-ui,sans-serif;--font-mono:"Fira Code",ui-monospace,monospace;--shadow-soft:0 1px 2px rgba(15,23,42,0.04),0 4px 12px rgba(15,23,42,0.04);--shadow-lift:0 4px 6px rgba(15,23,42,0.04),0 12px 28px rgba(15,23,42,0.08);--shadow-inset:inset 0 1px 2px rgba(15,23,42,0.06);--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-spring:cubic-bezier(0.34,1.4,0.64,1);--dur:200ms;--dur-med:280ms;--sidebar-w:260px;--topbar-h:64px}*{box-sizing:border-box;padding:0;margin:0}html{height:100%;scroll-behavior:smooth}body,html{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--color-foreground);background:var(--color-background);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{color:inherit;text-decoration:none}.btn,[role=button],[type=submit],button{cursor:pointer}[type=submit]:disabled,button:disabled{cursor:not-allowed;opacity:.55}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.55}}@keyframes spin{to{transform:rotate(1turn)}}.dash-shell{height:100dvh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);background:var(--color-background)}.dash-shell,.dash-sidebar{max-height:100dvh;overflow:hidden}.dash-sidebar{position:relative;height:100%;display:flex;flex-direction:column;background:radial-gradient(ellipse 80% 50% at 0 0,rgba(220,38,38,.18),transparent 55%),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(56,189,248,.08),transparent 50%),var(--color-sidebar);color:var(--color-sidebar-fg);padding:22px 16px;z-index:40}.dash-brand{display:flex;align-items:center;gap:12px;padding:6px 10px 22px}.dash-brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(145deg,#ef4444,#b91c1c);display:grid;place-items:center;color:#fff;box-shadow:0 6px 16px rgba(220,38,38,.35);flex-shrink:0}.dash-brand-text{display:flex;flex-direction:column;gap:1px;min-width:0}.dash-brand-name{font-family:var(--font-mono);font-weight:700;font-size:.95rem;letter-spacing:-.02em;color:#fff}.dash-brand-sub{font-size:.72rem;color:var(--color-sidebar-muted);text-transform:uppercase;letter-spacing:.06em}.dash-side-nav{display:flex;flex-direction:column;gap:4px;flex:1 1}.dash-side-nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:var(--radius-sm);color:var(--color-sidebar-fg);font-weight:500;font-size:.92rem;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.dash-side-nav a:hover{background:var(--color-sidebar-hover);color:#fff}.dash-side-nav a.active{background:var(--color-sidebar-active);color:#fff;box-shadow:inset 3px 0 0 var(--color-accent)}.dash-side-nav a svg{width:18px;height:18px;opacity:.85;flex-shrink:0}.dash-side-footer{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:10px}.dash-user-chip{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--radius);background:rgba(255,255,255,.04)}.dash-user-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#475569,#1e293b);color:#fff;display:grid;place-items:center;font-size:.75rem;font-weight:700;flex-shrink:0}.dash-user-meta{min-width:0;flex:1 1}.dash-user-meta strong{font-size:.82rem;color:#fff}.dash-user-meta span,.dash-user-meta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-user-meta span{font-size:.72rem;color:var(--color-sidebar-muted)}.dash-side-footer button{width:100%;border:0;background:transparent;color:var(--color-sidebar-muted);padding:10px 12px;border-radius:var(--radius-sm);font-weight:500;font-size:.88rem;display:flex;align-items:center;gap:8px;transition:background var(--dur) ease,color var(--dur) ease}.dash-side-footer button:hover{background:var(--color-sidebar-hover);color:#fff}.dash-workspace{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(ellipse 70% 40% at 90% -10%,rgba(220,38,38,.06),transparent 50%),radial-gradient(ellipse 50% 30% at 0 100%,rgba(14,165,233,.05),transparent 45%),var(--color-background)}.dash-mobile-bar{display:none;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--color-card);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:30}.dash-mobile-bar button{border:0;background:var(--color-muted);width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--color-primary);transition:background var(--dur) ease,transform var(--dur) var(--ease-spring)}.dash-mobile-bar button:active{transform:scale(.94)}.dash-overlay{display:none;border:0;padding:0;margin:0;cursor:pointer}.dash-main{width:min(1120px,100%);margin:0 auto;padding:28px 28px 64px;flex:1 1;animation:fade-up .45s var(--ease-out) both}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-header h1{font-size:clamp(1.45rem,2.2vw,1.85rem);letter-spacing:-.03em;font-weight:700;line-height:1.2}.page-lede{color:var(--color-muted-fg);margin-top:6px;max-width:52ch;font-size:.95rem}.page-lede code{font-family:var(--font-mono);font-size:.85em;background:var(--color-muted);padding:.1em .4em;border-radius:6px;color:var(--color-primary)}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted-fg);font-size:.88rem;font-weight:500;margin-bottom:14px;transition:color var(--dur) ease,gap var(--dur) ease}.back-link:hover{color:var(--color-accent);gap:10px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-soft);transition:transform var(--dur-med) var(--ease-out),box-shadow var(--dur-med) var(--ease-out);animation:fade-up .5s var(--ease-out) both}.stat-card:first-child{animation-delay:40ms}.stat-card:nth-child(2){animation-delay:80ms}.stat-card:nth-child(3){animation-delay:.12s}.stat-card:nth-child(4){animation-delay:.16s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}.stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted-fg);margin-bottom:8px}.stat-value{font-family:var(--font-mono);font-size:1.55rem;font-weight:700;letter-spacing:-.03em;color:var(--color-foreground);line-height:1}.stat-hint{margin-top:8px;font-size:.78rem;color:var(--color-muted-fg)}.panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);overflow:hidden;animation:fade-up .5s var(--ease-out) both}.panel+.panel{margin-top:16px}.panel-head{justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,#fff 0,var(--color-surface-2) 100%)}.panel-head,.panel-head h2{display:flex;align-items:center}.panel-head h2{font-size:1rem;font-weight:600;letter-spacing:-.01em;gap:8px}.panel-head p{font-size:.82rem;color:var(--color-muted-fg);margin-top:2px}.panel-body{padding:20px}.panel-body.tight{padding:0}.form-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid-4{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.form-span-2{grid-column:span 2}.form-span-full{grid-column:1/-1}.field{display:grid;gap:7px}.field label{font-size:.8rem;font-weight:600;color:var(--color-primary-soft);letter-spacing:.01em}.field-hint{font-size:.75rem;color:var(--color-muted-fg)}.input,.select,.textarea{width:100%;border:1px solid var(--color-border);border-radius:10px;padding:11px 13px;background:var(--color-surface-2);color:var(--color-foreground);box-shadow:var(--shadow-inset);transition:border-color var(--dur) ease,box-shadow var(--dur) ease,background var(--dur) ease,transform var(--dur) ease}.input:hover,.select:hover,.textarea:hover{border-color:#cbd5e1;background:#fff}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-accent);background:#fff;box-shadow:0 0 0 3px rgba(220,38,38,.12);outline:none}.textarea{min-height:88px;resize:vertical;font-family:var(--font-mono);font-size:.85rem}.file-input{width:100%;border:1.5px dashed #cbd5e1;border-radius:10px;padding:14px;background:var(--color-surface-2);color:var(--color-muted-fg);font-size:.88rem;transition:border-color var(--dur) ease,background var(--dur) ease}.file-input:hover{border-color:var(--color-accent);background:#fff5f5}.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.inline-form .field{flex:1 1;min-width:140px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:11px 16px;font-weight:600;font-size:.9rem;transition:background var(--dur) ease,transform var(--dur) var(--ease-spring),box-shadow var(--dur) ease,color var(--dur) ease;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:linear-gradient(180deg,#ef4444 0,var(--color-accent) 100%);color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.28)}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#dc2626 0,var(--color-accent-hover) 100%);box-shadow:0 6px 18px rgba(220,38,38,.35)}.btn-secondary{background:var(--color-muted);color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background:#d5dde8}.btn-ghost{background:transparent;color:var(--color-primary-soft);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2);border-color:#cbd5e1}.btn-danger{background:var(--color-accent-soft);color:var(--color-destructive)}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-sm{padding:8px 12px;font-size:.82rem;border-radius:8px}.btn-block{width:100%}.btn .spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;background:var(--color-muted);color:var(--color-primary-soft)}.badge-accent{background:var(--color-accent-soft);color:#b91c1c}.badge-info{background:var(--color-info-soft);color:#0369a1}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-muted{background:#f1f5f9;color:var(--color-muted-fg)}.card-list{display:grid;gap:12px}.entity-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-2);transition:transform var(--dur-med) var(--ease-out),box-shadow var(--dur-med) var(--ease-out),border-color var(--dur) ease,background var(--dur) ease}.entity-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:#cbd5e1;background:#fff}.entity-card h3{font-size:1rem;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}.entity-meta{font-family:var(--font-mono);font-size:.78rem;color:var(--color-muted-fg);margin-bottom:8px}.entity-stats{display:flex;flex-wrap:wrap;gap:8px}.empty-state{text-align:center;padding:36px 20px;color:var(--color-muted-fg)}.empty-state strong{display:block;color:var(--color-primary);margin-bottom:4px}.tabs{display:flex;gap:4px;padding:4px;background:var(--color-muted);border-radius:12px;margin-bottom:18px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{border:0;background:transparent;color:var(--color-muted-fg);padding:10px 14px;border-radius:9px;font-weight:600;font-size:.86rem;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;transition:background var(--dur) ease,color var(--dur) ease,box-shadow var(--dur) ease,transform var(--dur) var(--ease-spring)}.tab:hover{color:var(--color-primary)}.tab.active{background:#fff;color:var(--color-foreground);box-shadow:var(--shadow-soft)}.tab:active{transform:scale(.97)}.tab-count{font-size:.7rem;font-weight:700;background:var(--color-muted);color:var(--color-muted-fg);padding:1px 7px;border-radius:999px}.tab.active .tab-count{background:var(--color-accent-soft);color:var(--color-accent)}.tab-panel{animation:fade-in .28s var(--ease-out) both}.tab-panel[hidden]{display:none}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}.table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted-fg);font-weight:600;background:var(--color-surface-2)}.table tbody tr{transition:background var(--dur) ease}.table tbody tr:hover{background:#fafbfc}.table tbody tr:last-child td{border-bottom:0}.table .input,.table .select{padding:8px 10px;font-size:.85rem}.row-actions{gap:6px;align-items:center}.pill-list,.row-actions{display:flex;flex-wrap:wrap}.pill-list{gap:8px;list-style:none}.pill-list li{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;font-size:.88rem;transition:transform var(--dur) var(--ease-spring),box-shadow var(--dur) ease}.pill-list li:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.pill-list .mono{font-family:var(--font-mono);font-size:.75rem;color:var(--color-muted-fg)}.stack-list{list-style:none;display:grid;gap:8px}.stack-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:10px;font-size:.9rem;transition:border-color var(--dur) ease,transform var(--dur) ease}.stack-list li:hover{border-color:#cbd5e1;transform:translateX(2px)}.alert{border-radius:10px;padding:11px 13px;font-size:.9rem;display:flex;align-items:flex-start;gap:8px}.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.muted{color:var(--color-muted-fg)}.mono{font-family:var(--font-mono)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse 60% 50% at 10% 20%,rgba(220,38,38,.14),transparent 50%),radial-gradient(ellipse 50% 40% at 90% 10%,rgba(14,165,233,.1),transparent 45%),radial-gradient(ellipse 40% 30% at 70% 90%,rgba(15,23,42,.06),transparent 40%),linear-gradient(165deg,#f8fafc,#eef2f7 55%,#e2e8f0)}.login-shell{width:min(960px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:var(--color-card);border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lift);animation:fade-up .55s var(--ease-out) both}.login-panel{padding:44px 40px;background:radial-gradient(ellipse 80% 60% at 20% 0,rgba(220,38,38,.35),transparent 55%),linear-gradient(165deg,#0f172a,#1e293b);color:#cbd5e1;display:flex;flex-direction:column;justify-content:space-between;gap:32px;position:relative;overflow:hidden}.login-panel:after{content:"";position:absolute;inset:auto -20% -30% 40%;height:60%;background:radial-gradient(circle,rgba(56,189,248,.12),transparent 65%);pointer-events:none}.login-kicker{font-family:var(--font-mono);font-size:.78rem;color:#fca5a5;letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:8px}.login-panel h1{font-size:clamp(1.65rem,2.6vw,2.15rem);line-height:1.15;color:#fff;letter-spacing:-.03em;font-weight:700;position:relative;z-index:1}.login-panel>div>p{margin-top:12px;color:#94a3b8;line-height:1.55;position:relative;z-index:1;max-width:34ch}.login-points{display:grid;gap:12px;list-style:none;position:relative;z-index:1}.login-points li{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:#e2e8f0;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);transition:background var(--dur) ease,transform var(--dur) var(--ease-out)}.login-points li:hover{background:rgba(255,255,255,.07);transform:translateX(4px)}.login-points .dot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:#f87171;box-shadow:0 0 0 4px rgba(248,113,113,.2);flex-shrink:0}.login-form-wrap{padding:44px 40px;display:flex;flex-direction:column;justify-content:center;gap:22px}.login-form-wrap h2{font-size:1.5rem;letter-spacing:-.02em;font-weight:700}.login-meta{font-size:.88rem;color:var(--color-muted-fg);margin-top:6px}.login-form{display:grid;gap:16px}.dash-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:20px}.dash-field{display:grid;gap:7px}.dash-field label{font-size:.8rem;font-weight:600;color:var(--color-primary-soft)}.dash-input,.dash-select,.dash-textarea{width:100%;border:1px solid var(--color-border);border-radius:10px;padding:11px 13px;background:var(--color-surface-2);color:var(--color-foreground)}.dash-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:11px 16px;font-weight:600}.dash-btn-primary{background:var(--color-accent);color:#fff}.dash-btn-secondary{background:var(--color-muted);color:var(--color-primary)}.dash-btn-danger{background:var(--color-accent-soft);color:var(--color-destructive)}.dash-muted{color:var(--color-muted-fg)}.dash-grid-2{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.dash-alert{border-radius:10px;padding:11px 13px;font-size:.9rem}.dash-alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.dash-alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.dash-table{width:100%;border-collapse:collapse;font-size:.9rem}.dash-table td,.dash-table th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-border)}.dash-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--color-muted);color:var(--color-primary-soft)}.dash-badge-super{background:var(--color-info-soft);color:#0369a1}@media (max-width:1024px){.form-grid-3,.form-grid-4,.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.dash-shell{grid-template-columns:1fr;height:100dvh;max-height:100dvh}.dash-sidebar{position:fixed;inset:0 auto 0 0;height:100dvh;width:min(var(--sidebar-w),86vw);transform:translateX(-105%);transition:transform var(--dur-med) var(--ease-out);box-shadow:var(--shadow-lift)}.dash-shell.nav-open .dash-sidebar{transform:translateX(0)}.dash-overlay{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);opacity:0;pointer-events:none;transition:opacity var(--dur-med) ease;z-index:35}.dash-shell.nav-open .dash-overlay{opacity:1;pointer-events:auto}.dash-mobile-bar{display:flex}.dash-main{padding:20px 16px 48px}.login-shell{grid-template-columns:1fr}.login-panel{padding:28px 24px}.login-form-wrap{padding:28px 24px 32px}}@media (max-width:640px){.dash-grid-2,.form-grid,.form-grid-3,.form-grid-4,.stat-grid{grid-template-columns:1fr}.form-span-2{grid-column:span 1}.entity-card{flex-direction:column;align-items:flex-start}.entity-card .btn{width:100%}}.floor-editor{display:grid;gap:14px}.floor-toolbar{justify-content:space-between;gap:12px}.floor-toolbar,.floor-toolbar-meta{display:flex;align-items:center;flex-wrap:wrap}.floor-toolbar-meta{gap:10px}.floor-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.floor-check{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--color-primary-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.floor-stage{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.85fr);gap:14px;align-items:stretch;min-height:480px}.floor-canvas-wrap{position:relative;border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;background:radial-gradient(ellipse 80% 60% at 50% 0,rgba(220,38,38,.05),transparent 55%),linear-gradient(180deg,#f8fafc,#e8eef5);box-shadow:var(--shadow-inset);min-height:460px}.floor-compass{position:absolute;z-index:2;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;pointer-events:none;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted-fg)}.floor-svg{width:100%;height:100%;min-height:460px;touch-action:none;-webkit-user-select:none;user-select:none}.floor-car{transition:filter .16s ease}.floor-car.is-selected{filter:drop-shadow(0 0 .35px #dc2626)}.floor-car:active,.floor-decor:active{cursor:grabbing!important}.floor-inspector{display:flex;flex-direction:column;gap:12px;min-height:0}.floor-inspector-block{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px}.floor-inspector-block h3{font-size:.92rem;font-weight:600;letter-spacing:-.01em;margin-bottom:10px}.floor-inspector input[type=range]{width:100%;accent-color:var(--color-accent);cursor:pointer}.floor-lineup{list-style:none;display:grid;gap:6px;max-height:220px;overflow-y:auto}.floor-lineup-item{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;border:1px solid transparent;background:#fff;border-radius:8px;padding:8px 10px;text-align:left;cursor:pointer;transition:border-color var(--dur) ease,box-shadow var(--dur) ease,transform var(--dur) var(--ease-spring)}.floor-lineup-item:hover{border-color:#cbd5e1}.floor-lineup-item.is-active{border-color:#fecaca;box-shadow:0 0 0 2px rgba(220,38,38,.12)}.floor-lineup-idx{width:22px;height:22px;border-radius:6px;background:var(--color-muted);color:var(--color-primary);display:grid;place-items:center;font-size:.72rem;font-weight:700;font-family:var(--font-mono)}.floor-lineup-item.is-active .floor-lineup-idx{background:var(--color-accent-soft);color:var(--color-accent)}.floor-lineup-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floor-dirty-hint{font-size:.82rem;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:8px 12px}.floor-dirty-hint.is-saved{color:#166534;background:#f0fdf4;border-color:#bbf7d0}@media (max-width:1024px){.floor-stage{grid-template-columns:1fr}.floor-inspector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.floor-inspector-block:last-child{grid-column:1/-1}}@media (max-width:640px){.floor-inspector{grid-template-columns:1fr}}.image-uploader{display:grid;gap:10px}.image-uploader .ut-btn{background:#0f172a!important;color:#fff!important;border-radius:10px!important;font-weight:600!important;padding:.65rem 1rem!important}.image-uploader .ut-allowed{color:#64748b!important;font-size:.75rem!important}.image-uploader-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.image-uploader-thumb{position:relative;aspect-ratio:1;overflow:hidden;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc}.image-uploader-thumb img{width:100%;height:100%;object-fit:cover;display:block}.image-uploader-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:14px;line-height:1;cursor:pointer}.field-error{margin:0;color:#b91c1c;font-size:.8rem;font-weight:600}