:root{--bg-base: #0B0E14;--bg-panel: rgba(21, 25, 36, .92);--bg-elevated: #1E2330;--border-subtle: #2A3245;--text-primary: #F8FAFC;--text-secondary: #94A3B8;--text-muted: #475569;--color-success: #10B981;--color-success-text: #34D399;--color-danger: #EF4444;--color-danger-text: #F87171;--color-warn: #F59E0B;--color-accent: #A855F7;--color-info: #06B6D4;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--z-canvas: 1;--z-hud: 20;--z-drawer: 30;--z-dock: 40;--z-tooltip: 60}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;line-height:1.5;overflow:hidden;user-select:none}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-family:var(--font-mono)}.world-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:var(--z-canvas);cursor:grab}.world-canvas:active{cursor:grabbing}.hud-top{position:fixed;top:var(--space-3);left:var(--space-3);right:var(--space-3);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);z-index:var(--z-hud);pointer-events:none}.hud-group{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);background-color:var(--bg-panel);backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);pointer-events:auto}.brand-title{font-size:15px;font-weight:700;letter-spacing:-.01em}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:11px;font-weight:600;background-color:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary)}.badge--success{color:var(--color-success-text);border-color:var(--color-success)}.badge--warn{color:var(--color-warn);border-color:var(--color-warn)}.badge--danger{color:var(--color-danger-text);border-color:var(--color-danger)}.badge--accent{color:var(--color-accent);border-color:var(--color-accent)}.vital-pill{position:relative;display:flex;flex-direction:column;gap:var(--space-1);background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);min-width:128px;cursor:help}.vital-pill__label{font-size:11px;color:var(--text-secondary);display:flex;justify-content:space-between;gap:var(--space-2)}.vital-pill__val{font-size:15px;font-weight:700;color:var(--text-primary)}.vital-pill__sub{font-size:11px;color:var(--text-secondary)}.vital-pill:hover .formula-pop{display:block}.formula-pop{display:none;position:absolute;top:100%;right:0;padding-top:var(--space-1);width:288px;z-index:var(--z-tooltip)}.formula-pop__inner{background-color:var(--bg-base);border:1px solid var(--color-info);border-radius:var(--radius-sm);padding:var(--space-2);font-size:11px;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--bg-elevated);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s ease-out,border-color .15s ease-out,transform .15s ease-out}.btn:hover:not(:disabled){border-color:var(--text-secondary)}.btn:active:not(:disabled){transform:scale(.98)}.btn--active{background-color:var(--color-info);color:var(--bg-base);border-color:var(--color-info);font-weight:700}.btn--primary{background-color:var(--color-success);color:var(--bg-base);border-color:var(--color-success);font-weight:600}.dock-bottom{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);background-color:var(--bg-panel);backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);z-index:var(--z-dock)}.dock-tab{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;background-color:var(--bg-elevated);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:background-color .15s ease-out,border-color .15s ease-out,transform .15s ease-out}.dock-tab:hover{color:var(--text-primary);border-color:var(--border-subtle)}.dock-tab:active{transform:scale(.98)}.dock-tab--active{background-color:var(--bg-base);color:var(--color-info);border-color:var(--color-info)}.inspector-card{position:fixed;bottom:96px;left:var(--space-4);width:300px;background-color:var(--bg-panel);backdrop-filter:blur(8px);border:1px solid var(--color-info);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);z-index:var(--z-drawer)}.floating-drawer{position:fixed;bottom:96px;left:50%;transform:translate(-50%);width:min(860px,94vw);max-height:68vh;overflow-y:auto;background-color:var(--bg-panel);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);z-index:var(--z-drawer)}.drawer-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-2)}.drawer-title{font-size:15px;font-weight:700}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:768px){.two-col{grid-template-columns:1fr}}.lever-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background-color:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.lever-row__top{display:flex;justify-content:space-between;align-items:center;font-size:13px}.slider{width:100%;accent-color:var(--color-info);cursor:pointer}.canvas-frame{width:100%;background-color:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:block}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:var(--space-1) var(--space-2);text-align:left;border-bottom:1px solid var(--border-subtle)}.data-table th{font-size:11px;color:var(--text-secondary);font-weight:600}.data-table td.num{text-align:right}.event-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:280px;overflow-y:auto}.event-item{display:flex;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);background-color:var(--bg-elevated);font-size:12px;border-left:4px solid var(--color-info)}.event-item--warn{border-left-color:var(--color-warn)}.event-item--danger{border-left-color:var(--color-danger)}.param-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);max-height:260px;overflow-y:auto}.param-item{display:grid;grid-template-columns:1fr 88px;gap:var(--space-2);align-items:center;padding:var(--space-2);background-color:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.input-num,.input-text{width:100%;padding:var(--space-1) var(--space-2);background-color:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.toast-banner{position:fixed;top:76px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background-color:var(--bg-panel);border:1px solid var(--color-info);color:var(--text-primary);z-index:var(--z-tooltip)}.toast-banner--error{border-color:var(--color-danger);color:var(--color-danger-text)}.vnmap-backdrop{position:fixed;inset:0;background-color:#080c14d6;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:80}.vnmap-modal{width:min(1080px,96vw);max-height:92vh;overflow-y:auto;background-color:var(--bg-panel);border:1px solid var(--color-info);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.vnmap-layout{display:grid;grid-template-columns:440px 1fr;gap:var(--space-4);align-items:start}@media(max-width:920px){.vnmap-layout{grid-template-columns:1fr}}.vnmap-canvas-wrap{display:flex;justify-content:center;background-color:#06182c;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.vnmap-right{display:flex;flex-direction:column;gap:var(--space-3)}.vnmap-detail-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.vnmap-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.vnmap-filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-1)}.vnmap-prov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:var(--space-2);max-height:230px;overflow-y:auto;padding-right:var(--space-1)}.vnmap-prov-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-2);background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color .15s ease-out,background-color .15s ease-out}.vnmap-prov-item:hover{border-color:var(--color-info)}.vnmap-prov-item--active{background-color:#10b98129;border-color:var(--color-success)}
