:root{--bg-base: #0a0a14;--bg-surface: #0f0f1a;--bg-elevated: rgba(15, 15, 26, .94);--bg-overlay: rgba(0, 0, 0, .55);--bg-input: rgba(255, 255, 255, .04);--bg-hover: rgba(39, 39, 42, .8);--bg-card: rgba(30, 30, 50, .5);--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .15);--accent: #7c3aed;--accent-hover: #6d28d9;--accent-light: #a78bfa;--accent-dim: rgba(124, 58, 237, .15);--accent-glow: rgba(124, 58, 237, .3);--text-primary: #e4e4e7;--text-secondary: #a1a1aa;--text-dim: #71717a;--text-muted: #52525b;--text-subtle: #3f3f46;--success: #10b981;--success-dim: rgba(16, 185, 129, .15);--error: #ef4444;--error-dim: rgba(239, 68, 68, .15);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .15);--font-mono: "SF Mono", "Fira Code", "JetBrains Mono", monospace;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-base: 12px;--font-size-md: 13px;--font-size-lg: 14px;--font-size-xl: 16px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 14px;--z-world: 0;--z-hud: 5;--z-labels: 5;--z-panels: 50;--z-terminal: 100;--z-shop: 150;--z-console: 200;--z-overlay: 1000;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-xl: 0 12px 48px rgba(0, 0, 0, .6);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .25s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-md);overflow:hidden}canvas#world-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:var(--z-world)}#lab-overlay{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;grid-template-rows:44px 1fr;grid-template-columns:1fr 240px;grid-template-areas:"header  header" "main    main";pointer-events:none}#lab-overlay.visible{display:grid}#lab-overlay.visible>*{pointer-events:auto}#lab-header{grid-area:header;display:flex;align-items:center;gap:var(--space-lg);padding:0 var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#lab-header h1{font-size:var(--font-size-lg);font-weight:600;color:var(--accent);letter-spacing:.5px}#lab-status{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--text-dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--warning);transition:background var(--transition-normal)}#lab-main{grid-area:main;display:grid;grid-template-rows:1fr 180px;grid-template-columns:1fr 240px;grid-template-areas:"sequencer  mixer" "peers      peers";gap:1px;background:var(--border-subtle)}section{background:#0f0f1aed;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#sequencer-panel{grid-area:sequencer}#mixer-panel{grid-area:mixer}#peers-panel{grid-area:peers}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle)}.panel-header h2{font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim)}.panel-controls{display:flex;align-items:center;gap:6px}#bpm-display{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);min-width:30px;text-align:center}.btn-icon{background:var(--border-subtle);border:1px solid var(--bg-hover);color:var(--text-secondary);font-size:var(--font-size-base);width:28px;height:24px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-icon:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-primary)}.btn-icon.header-btn{width:28px;height:24px;margin-left:auto;font-size:var(--font-size-md);color:var(--error)}.btn-icon:active{background:#18181b}#sequencer-panel{grid-area:sequencer;display:flex;flex-direction:column}#step-grid{flex:1;overflow-y:auto;padding:8px}#mixer-panel{grid-area:mixer;display:flex;flex-direction:column}#track-meters{flex:1;padding:8px;font-size:10px;color:#52525b;display:flex;flex-direction:column;justify-content:center;align-items:center}#peers-panel{grid-area:peers;display:flex;flex-direction:column}#peer-count{background:#1e1e32;color:#a1a1aa;font-size:11px;padding:1px 8px;border-radius:8px}#peer-canvas-container{flex:1;overflow:hidden}#peer-canvas{width:100%;height:100%;display:block}.join-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:transparent;z-index:var(--z-terminal);pointer-events:none}.join-overlay>*{pointer-events:auto}.join-box{text-align:center;max-width:340px;width:100%;padding:32px 24px;background:#0f0f1af0;border:1px solid rgba(255,255,255,.08);border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 32px #00000080}.join-box h2{font-size:28px;color:#7c3aed;margin-bottom:4px;display:flex;align-items:center;justify-content:center;gap:10px}.join-mark{display:inline-flex}.join-box .btn .ui-sprite{margin-right:6px;vertical-align:-3px}.join-sub{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-md);min-height:18px}.join-field{margin-bottom:var(--space-lg)}.join-input{width:100%;padding:10px 14px;background:var(--border-subtle);border:1px solid var(--bg-hover);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-lg);text-align:center;outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.join-input:focus{border-color:var(--accent)}.join-input::placeholder{color:var(--text-muted)}.join-status{font-size:var(--font-size-base);color:var(--text-dim);margin-bottom:var(--space-xl);min-height:20px}.join-status.brand{color:var(--accent)}.join-status.searching{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.btn{padding:10px var(--space-2xl);border:none;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-lg);font-weight:600;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast);width:100%;box-sizing:border-box}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--border-subtle);color:var(--text-primary);border:1px solid var(--bg-hover)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--text-muted);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:2px}.world-label{position:absolute;pointer-events:none;font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;transform:translate(-50%);z-index:var(--z-labels);padding:3px 10px;background:#0a0a14c7;border:1px solid var(--border-default);border-radius:4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);text-transform:uppercase;letter-spacing:.05em;transition:opacity .3s}.world-label-accent{display:block;width:20px;height:2px;margin:4px auto 0;border-radius:1px}#minimap-wrap{position:fixed;top:16px;right:16px;z-index:var(--z-hud);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:#0a0a14e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px;box-shadow:var(--shadow-md);transition:transform .2s,box-shadow .2s}#minimap-wrap:hover{transform:scale(1.05);box-shadow:0 4px 32px #7c3aed26}#minimap-wrap canvas{display:block;width:200px;height:150px;border-radius:var(--radius-sm);cursor:pointer}#minimap-tooltip{position:fixed;z-index:calc(var(--z-hud) + 5);padding:4px 10px;background:#0a0a14eb;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--text-primary);pointer-events:none;opacity:0;transition:opacity .15s;white-space:nowrap;letter-spacing:.02em;font-family:var(--font-mono)}#minimap-tooltip.visible{opacity:1}#controls-hint{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:var(--z-hud);padding:8px 18px;background:#0a0a14b3;border:1px solid var(--border-default);border-radius:var(--radius-lg);font-size:var(--font-size-xs);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:opacity .6s;display:flex;align-items:center;gap:12px}.controls-key{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 5px;background:#7c3aed1f;border:1px solid rgba(124,58,237,.25);border-radius:3px;font-size:10px;color:var(--accent-light)}#building-panel{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(100%);width:min(480px,92vw);max-width:92vw;max-height:55vh;background:#0c0c1af0;border:1px solid var(--border-default);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:20px 24px 24px;color:var(--text-primary);z-index:var(--z-panels);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-lg);transition:transform .35s cubic-bezier(.16,1,.3,1);overflow:hidden}#building-panel.visible{transform:translate(-50%) translateY(0)}#building-panel .panel-grabber{width:36px;height:3px;border-radius:2px;background:var(--border-default);margin:0 auto 14px}#building-panel .panel-close-btn{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;font-family:var(--font-mono);padding:4px;line-height:1;z-index:1}#building-panel .panel-close-btn:hover{color:var(--text-primary)}#building-panel .panel-scroll{padding:var(--space-lg) var(--space-xl);overflow-y:auto;max-height:50vh}#building-panel h2{font-size:15px;margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}#building-panel .level-badge{font-size:var(--font-size-xs);background:#ffffff14;padding:2px 6px;border-radius:var(--radius-sm);color:var(--text-secondary)}#building-panel .access-badge{font-size:9px;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px}#building-panel .access-badge.restricted{background:var(--error-dim);color:var(--error)}.access-toggle-btn{font-family:var(--font-mono);font-size:9px;padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.4px;cursor:pointer;border:1px solid;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);line-height:1.4;background:none}.access-toggle-btn.public{color:var(--success);border-color:#10b98140;background:#10b9810f}.access-toggle-btn.public:hover{background:#10b98126;border-color:#10b98166;color:#6ee7b7}.access-toggle-btn.restricted{color:var(--error);border-color:#ef444440;background:#ef44440f}.access-toggle-btn.restricted:hover{background:#ef444426;border-color:#ef444466;color:#fca5a5}.module-section{margin-bottom:var(--space-md)}.module-section-header{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}.module-count{font-size:var(--font-size-xs);color:var(--text-muted);background:#ffffff0d;padding:1px 6px;border-radius:var(--radius-lg)}.module-empty{font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;padding:10px;border:1px dashed var(--border-subtle);border-radius:var(--radius-md)}.module-entry{display:flex;align-items:center;gap:10px;width:100%;padding:var(--space-sm) 10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:var(--font-size-base);text-align:left;transition:background var(--transition-fast),border-color var(--transition-fast);margin-bottom:var(--space-xs)}.module-entry:last-child{margin-bottom:0}.module-entry:hover{background:var(--bg-hover);border-color:var(--accent-glow)}.module-entry.active{border-color:var(--accent);background:var(--accent-dim)}.module-entry.available{opacity:.8;cursor:default}.module-entry.available:hover{opacity:1;border-color:var(--border-default)}.module-icon{font-size:18px;flex-shrink:0}.module-info{flex:1;min-width:0}.module-name{display:block;font-size:var(--font-size-base);font-weight:500;color:var(--text-primary)}.module-desc{display:block;font-size:var(--font-size-xs);color:var(--text-dim);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-action{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--accent);flex-shrink:0;padding:4px 10px;border-radius:var(--radius-sm);background:var(--accent-dim);transition:background var(--transition-fast)}.module-entry:hover .module-action{background:var(--accent-glow)}.module-entry.active .module-action{color:var(--error);background:var(--error-dim)}.module-entry.active:hover .module-action{background:#ef444433}.module-entry.available .module-action.btn-install{color:var(--success);background:var(--success-dim)}.module-entry.available:hover .module-action.btn-install{background:#10b98133}.stats-section{border-top:1px solid var(--border-subtle);padding-top:var(--space-sm)}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:var(--font-size-base);border-bottom:1px solid rgba(255,255,255,.04)}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:var(--font-size-xs);min-width:100px}.stat-value{font-weight:600;font-size:var(--font-size-base);min-width:60px;text-align:right}.stat-bar-bg{flex:1;max-width:120px;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden;margin:0 var(--space-sm)}.stat-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}#console-panel{position:fixed;right:-480px;top:0;width:480px;max-width:100vw;height:100vh;background:#0a0a14f2;border-left:1px solid var(--border-default);z-index:var(--z-console);display:flex;flex-direction:column;transition:right var(--transition-slow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:-4px 0 24px #0006}#console-panel.visible{right:0}.console-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.console-title{font-size:var(--font-size-md);font-weight:600;color:var(--accent-light);white-space:nowrap}.console-settings{display:flex;align-items:center;gap:6px;flex:1}.console-api-key{flex:1;min-width:0;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--font-size-sm);outline:none;transition:border-color var(--transition-fast)}.console-api-key:focus{border-color:var(--accent)}.console-api-key::placeholder{color:var(--text-muted)}.console-model-select{padding:5px 8px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;outline:none}.console-model-select:focus{border-color:var(--accent)}.console-model-select option{background:#1a1a2e;color:var(--text-primary)}.console-status{font-size:var(--font-size-xs);color:var(--text-muted);min-width:12px}.console-voice-toggle{background:none;border:1px solid rgba(255,255,255,.08);border-radius:4px;color:#52525b;cursor:pointer;padding:4px 6px;font-size:14px;line-height:1;transition:color .15s,border-color .15s}.console-voice-toggle:hover{color:#a1a1aa;border-color:#ffffff26}.console-voice-toggle.active{color:#7c3aed;border-color:#7c3aed}.console-close-btn{background:none;border:none;color:#52525b;cursor:pointer;padding:4px 6px;font-size:14px;line-height:1;transition:color .15s}.console-close-btn:hover{color:#ef4444}.console-messages{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.console-msg{padding:10px 12px;border-radius:var(--radius-lg);font-size:var(--font-size-base);line-height:1.6;max-width:100%;white-space:pre-wrap;word-wrap:break-word}.console-msg.user{background:var(--accent-dim);border:1px solid rgba(124,58,237,.2);color:#c4b5fd;align-self:flex-end;max-width:85%}.console-msg.assistant{background:#ffffff0a;border:1px solid var(--border-subtle);color:#d4d4d8;align-self:flex-start;border-left:3px solid var(--accent-glow)}.console-msg.system{background:#ffffff05;color:var(--text-dim);font-size:var(--font-size-sm);text-align:center;border:none;padding:var(--space-sm)}.console-msg code{background:#0000004d;padding:1px 5px;border-radius:3px;font-family:inherit;font-size:var(--font-size-sm);color:var(--accent-light)}.console-msg pre{background:#0000004d;padding:var(--space-sm) 10px;border-radius:var(--radius-md);overflow-x:auto;margin:6px 0}.console-msg pre code{background:none;padding:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.console-msg strong{color:var(--text-primary);font-weight:600}.console-msg.typing{background:#ffffff0a;border:1px solid var(--border-subtle);align-self:flex-start;padding:10px 14px}.typing-dots{color:var(--text-dim);font-size:var(--font-size-md)}.cursor-blink{animation:blink .8s step-end infinite;color:var(--accent)}.console-input-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);flex-shrink:0}.console-input{flex:1;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--font-size-md);outline:none;transition:border-color var(--transition-fast)}.console-input:focus{border-color:var(--accent)}.console-input::placeholder{color:var(--text-muted)}.console-send,.console-mic{padding:var(--space-sm) 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-md);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.console-send{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:500}.console-send:hover:not(:disabled){background:var(--accent-hover)}.console-send:disabled{opacity:.4;cursor:not-allowed}.console-mic{background:var(--bg-input);color:var(--text-secondary);font-size:var(--font-size-xl);padding:var(--space-sm) 10px}.console-mic:hover{background:#ffffff1a;border-color:var(--border-hover)}.console-mic.listening{background:var(--error-dim);border-color:var(--error);animation:micPulse 1s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 8px #ef444400}}#login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg-base);z-index:var(--z-overlay);opacity:0;transition:opacity .3s ease}#login-overlay.visible{opacity:1}.login-box{text-align:center;max-width:340px;width:100%;padding:48px 28px}.login-logo{font-size:48px;margin-bottom:var(--space-sm)}.login-box h2{font-size:28px;color:var(--accent-light);margin-bottom:var(--space-xs);font-weight:600}.login-sub{font-size:var(--font-size-md);color:var(--text-muted);margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-field{width:100%}.login-input{width:100%;padding:var(--space-md) var(--space-lg);background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-lg);color:var(--text-primary);font-family:inherit;font-size:var(--font-size-lg);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.login-input:focus{border-color:var(--accent)}.login-input::placeholder{color:var(--text-subtle)}.login-error{font-size:var(--font-size-base);color:var(--error);min-height:18px;display:none}.login-error.visible{display:block}.login-btn{margin-top:var(--space-sm)}.login-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:var(--font-size-md);color:var(--text-dim);padding:10px var(--space-2xl)}.login-hint{font-size:var(--font-size-sm);color:var(--text-subtle);margin-top:var(--space-2xl)}#world-hud{position:fixed;top:12px;left:12px;min-width:140px;background:#0a0a14cc;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:10px 14px;z-index:var(--z-hud);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud-title{font-size:var(--font-size-xs);font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm)}.hud-stats{display:flex;flex-direction:column;gap:var(--space-xs)}.hud-row{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm)}.hud-icon{font-size:var(--font-size-base);width:16px;text-align:center}.hud-value{font-weight:700;color:var(--text-primary);min-width:18px;text-align:right;font-variant-numeric:tabular-nums}.hud-label{color:var(--text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.3px}.hud-row-credits{border-top:1px solid var(--border-subtle);margin-top:var(--space-xs);padding-top:var(--space-xs)}.hud-row-credits .hud-value{color:var(--accent-light)}.hud-actions{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-sm);border-top:1px solid var(--border-subtle);padding-top:var(--space-sm)}.hud-btn{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:5px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:6px 10px;text-align:left;display:flex;align-items:center;gap:6px;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.hud-btn:hover{background:var(--bg-hover);border-color:var(--accent-glow);color:var(--text-primary)}.hud-btn:active{background:var(--accent-dim)}#user-badge{position:fixed;top:12px;left:170px;font-size:var(--font-size-sm);color:var(--text-secondary);background:#0f0f1ab3;padding:var(--space-xs) 10px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);z-index:10;pointer-events:none}#logout-btn{position:fixed;top:12px;left:140px;font-size:var(--font-size-lg);color:var(--text-muted);background:#0f0f1ab3;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:3px var(--space-sm);cursor:pointer;z-index:10;line-height:1;transition:color var(--transition-fast),border-color var(--transition-fast)}#logout-btn:hover{color:var(--error);border-color:#ef44444d}#terminal-panel{position:fixed;bottom:0;left:0;right:0;height:45vh;max-height:400px;min-height:200px;background:#05050ff7;border-top:2px solid var(--accent-glow);z-index:var(--z-terminal);display:none;flex-direction:column;font-family:var(--font-mono);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -4px 24px #0009}#terminal-panel.visible{display:flex}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:#0f0f1acc;flex-shrink:0}.terminal-title{font-size:var(--font-size-base);font-weight:600;color:var(--accent);letter-spacing:.5px}.terminal-title-hint{font-weight:400;color:var(--text-muted);font-size:var(--font-size-sm)}.terminal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--font-size-lg);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.terminal-close:hover{color:var(--error);background:var(--error-dim)}.terminal-output{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-lg);background:#0006}.terminal-line{font-size:var(--font-size-md);line-height:1.6;color:var(--text-secondary);word-wrap:break-word;white-space:pre-wrap}.terminal-input-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--border-subtle);background:#0a0a14e6;flex-shrink:0}.terminal-prompt{font-size:var(--font-size-lg);font-weight:600;color:var(--accent);flex-shrink:0;min-width:80px}.terminal-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-lg);caret-color:var(--success)}.terminal-input::placeholder{color:var(--text-subtle)}.terminal-prompt-echo{color:var(--accent);font-weight:500}.terminal-error{color:var(--error)}.terminal-success{color:var(--success)}.terminal-highlight{color:var(--accent-light);font-weight:600}.terminal-heading{color:var(--text-primary);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:var(--font-size-base)}.terminal-cmd{color:var(--success);font-weight:500}.terminal-dim{color:var(--text-muted)}#terminal-panel ::-webkit-scrollbar{width:4px}#terminal-panel ::-webkit-scrollbar-track{background:transparent}#terminal-panel ::-webkit-scrollbar-thumb{background:var(--accent-glow);border-radius:2px}#building-shop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-shop);display:none}#building-shop.visible{display:block}.hub-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);visibility:hidden;opacity:0;transition:opacity .2s ease,visibility .2s ease}.hub-menu-overlay.visible{visibility:visible;opacity:1}.hub-menu-card{width:420px;max-width:92vw;background:#0a0a18f5;border:1px solid var(--border-default);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:0 25px 80px #0009;animation:hubSlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes hubSlideIn{0%{transform:translateY(24px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.hub-menu-header{display:flex;align-items:center;gap:10px;padding:20px 24px 16px;border-bottom:1px solid var(--border-subtle)}.hub-menu-icon{font-size:22px;line-height:1}.hub-menu-title-group{flex:1;display:flex;align-items:baseline;gap:10px}.hub-menu-title{font-size:18px;font-weight:700;color:var(--accent-light);letter-spacing:.3px}.hub-menu-level{font-size:11px;color:var(--text-dim);background:var(--bg-input);padding:2px 8px;border-radius:99px}.hub-menu-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:4px 8px;border-radius:var(--radius-md);transition:color .15s,background .15s;line-height:1}.hub-menu-close:hover{color:var(--error);background:var(--error-dim)}.hub-menu-body{padding:16px 24px;display:flex;flex-direction:column;gap:10px}.hub-menu-option{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-card);cursor:pointer;transition:background .15s,border-color .15s,transform .15s;text-align:left;width:100%;font-family:inherit}.hub-menu-option:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:translate(4px)}.hub-menu-option:active{transform:translate(2px) scale(.99)}.hub-menu-option.primary{background:var(--accent-dim);border-color:#7c3aed4d}.hub-menu-option.primary:hover{background:#7c3aed40;border-color:var(--accent)}.hub-menu-option-icon{font-size:24px;line-height:1;flex-shrink:0;width:36px;text-align:center}.hub-menu-option-content{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.hub-menu-option-title{font-size:14px;font-weight:600;color:var(--text-primary)}.hub-menu-option-desc{font-size:11px;color:var(--text-dim);line-height:1.4}.hub-menu-option-arrow{font-size:14px;color:var(--text-muted);opacity:0;transition:opacity .15s,transform .15s}.hub-menu-option:hover .hub-menu-option-arrow{opacity:1;transform:translate(4px)}.hub-menu-option.primary .hub-menu-option-arrow{opacity:.6}.hub-menu-footer{padding:12px 24px 16px;border-top:1px solid var(--border-subtle);display:flex;justify-content:center}.hub-menu-hint{font-size:11px;color:var(--text-muted)}.hub-menu-hint kbd{display:inline-block;padding:1px 6px;font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;margin:0 1px}.shop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:shopFadeIn var(--transition-normal) ease}@keyframes shopFadeIn{0%{opacity:0}to{opacity:1}}.shop-panel{width:640px;max-width:92vw;max-height:80vh;background:#0a0a18f5;border:1px solid var(--border-default);border-radius:var(--radius-2xl);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-xl);animation:shopSlideIn var(--transition-normal) ease}@keyframes shopSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.shop-header{display:flex;align-items:center;gap:10px;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.shop-title{font-size:16px;font-weight:700;color:#a78bfa;letter-spacing:.3px}.shop-header-hint{flex:1;font-size:11px;color:#52525b}.shop-close{background:none;border:none;color:#52525b;cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:color .15s,background .15s;line-height:1}.shop-close:hover{color:#ef4444;background:#ef44441a}.shop-grid{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.shop-empty{text-align:center;padding:32px;color:#52525b;font-size:13px}.shop-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);transition:background var(--transition-fast),border-color var(--transition-fast),transform .15s}.shop-card:hover{background:#27272a99;border-color:var(--accent-glow);transform:translateY(-2px)}.shop-card.installed{border-color:#10b98133;background:#10b9810a}.shop-card.installed:hover{border-color:#10b98159;background:#10b98114}.shop-card-icon{font-size:36px;flex-shrink:0;width:48px;text-align:center;line-height:1}.shop-card-body{flex:1;min-width:0}.shop-card-name{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin-bottom:3px}.shop-card-desc{font-size:var(--font-size-sm);color:var(--text-dim);margin-bottom:6px;line-height:1.4}.shop-card-tags{display:flex;gap:var(--space-xs);flex-wrap:wrap}.shop-tag{font-size:9px;text-transform:uppercase;letter-spacing:.4px;padding:2px 7px;border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent-light);border:1px solid rgba(124,58,237,.15)}.shop-card.installed .shop-tag{background:var(--success-dim);color:var(--success);border-color:#10b98133}.shop-card-action{flex-shrink:0}.shop-btn{padding:7px 16px;border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform .1s;white-space:nowrap;line-height:1}.shop-btn:active{transform:scale(.96)}.shop-btn-install{background:var(--accent-dim);color:var(--accent-light);border:1px solid rgba(124,58,237,.2)}.shop-btn-install:hover{background:#7c3aed40;border-color:var(--accent-glow)}.shop-btn-remove{background:var(--error-dim);color:#fca5a5;border:1px solid rgba(239,68,68,.15)}.shop-btn-remove:hover{background:#ef444433;border-color:#ef44444d}.shop-footer{padding:10px var(--space-xl);border-top:1px solid var(--border-subtle);flex-shrink:0;text-align:center}.shop-footer-hint{font-size:var(--font-size-xs);color:var(--text-subtle)}.shop-toast{position:absolute;bottom:70px;left:50%;transform:translate(-50%);padding:10px var(--space-xl);background:var(--success-dim);border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-lg);color:#34d399;font-size:var(--font-size-md);font-weight:500;animation:toastIn .25s ease;pointer-events:none;white-space:nowrap}.shop-toast.fading{animation:toastOut .3s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}#building-shop ::-webkit-scrollbar{width:4px}#building-shop ::-webkit-scrollbar-track{background:transparent}#building-shop ::-webkit-scrollbar-thumb{background:var(--accent-glow);border-radius:2px}.shop-card.constructing{border-color:#f59e0b4d;background:var(--warning-dim)}.workload-owner{font-size:var(--font-size-xs);color:var(--text-muted);margin-bottom:var(--space-sm);padding-left:8px}.shop-tag.status-tag{background:var(--warning-dim);color:var(--warning);border-color:#f59e0b33}#touch-dpad{position:fixed;bottom:100px;left:24px;z-index:var(--z-hud);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;user-select:none;-webkit-user-select:none;touch-action:none;pointer-events:none}#touch-dpad.visible{opacity:1;visibility:visible;pointer-events:auto}.dpad-container{display:flex;flex-direction:column;align-items:center;gap:2px;width:160px}.dpad-middle-row{display:flex;align-items:center;gap:2px}.dpad-btn{width:52px;height:52px;border-radius:12px;background:#7c3aed26;border:1.5px solid rgba(124,58,237,.3);color:#ffffffb3;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s,transform .1s,border-color .1s;-webkit-tap-highlight-color:transparent;touch-action:none;user-select:none;-webkit-user-select:none}.dpad-btn.pressed{background:#7c3aed66;border-color:var(--accent);transform:scale(.92);color:#fff}.dpad-center{width:52px;height:52px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;font-size:11px;color:#ffffff26}.touch-ripple{position:fixed;width:40px;height:40px;border-radius:50%;border:2px solid var(--accent);background:#7c3aed1a;pointer-events:none;z-index:calc(var(--z-hud) + 10);animation:rippleFadeOut .5s ease-out forwards}@keyframes rippleFadeOut{0%{transform:scale(.5);opacity:1}to{transform:scale(2);opacity:0}}@media(max-width:480px){#touch-dpad{bottom:80px;left:12px}.dpad-btn{width:48px;height:48px;font-size:16px}.dpad-center{width:48px;height:48px}.dpad-container{width:148px}}@media(max-width:768px){html,body{font-size:14px}#world-hud{top:8px;left:8px;right:8px;min-width:auto;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px}#world-hud .hud-title{display:none}#world-hud .hud-stats{flex-direction:row;gap:10px;flex:1}#world-hud .hud-row{gap:3px}#world-hud .hud-icon{width:14px;font-size:12px}#world-hud .hud-value{font-size:11px;min-width:14px}#world-hud .hud-label{display:none}#world-hud .hud-row-credits{border-top:none;margin-top:0;padding-top:0}#world-hud .hud-actions{flex-direction:row;margin-top:0;padding-top:0;border-top:none}.hud-btn{padding:4px 8px;font-size:10px;gap:3px}#minimap-wrap{top:auto;bottom:90px;right:8px;transform:scale(.55);transform-origin:bottom right}#minimap-wrap:hover{transform:scale(.6)}#controls-hint{display:none}#user-badge{top:8px;left:auto;right:8px;font-size:10px;padding:2px 8px}#logout-btn{display:none}#building-panel{width:100%;max-width:100%;left:0;transform:translateY(100%);border-radius:16px 16px 0 0;max-height:60vh}#building-panel.visible{transform:translateY(0)}#building-panel .panel-scroll{padding:12px 16px}.interior-panel{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0}.interior-header{padding:12px 14px}.interior-title{font-size:14px}.interior-stats{display:none}.interior-chat-messages{padding:10px 14px}.interior-input-row{padding:10px 14px;gap:6px}.interior-input{font-size:14px}.interior-send{padding:10px 14px}.interior-msg{max-width:92%}.interior-settings{padding:4px 14px}.interior-settings.visible{height:40px;padding:4px 14px}.interior-key-input,.interior-model-select{font-size:11px}.hub-menu-card{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;display:flex;flex-direction:column}.hub-menu-body{flex:1;justify-content:center;padding:20px}.hub-menu-option{padding:18px 16px}#console-panel{width:100vw;max-width:100vw;right:-100vw}#terminal-panel{height:50vh;max-height:50vh}.shop-panel{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.shop-grid,.shop-card{padding:12px 14px}.shop-card-icon{font-size:28px;width:40px}}@media(max-width:360px){#world-hud .hud-stats{gap:6px}#world-hud .hud-actions{gap:4px}.hud-btn{font-size:9px;padding:3px 6px}.dpad-btn{width:42px;height:42px;font-size:14px}.dpad-center{width:42px;height:42px}.dpad-container{width:130px}}@media(max-width:768px)and (orientation:landscape){#touch-dpad{bottom:20px;left:16px}.dpad-btn{width:40px;height:40px;font-size:14px}.dpad-center{width:40px;height:40px}.dpad-container{width:124px}#minimap-wrap{transform:scale(.4)}.interior-panel{height:100vh}#terminal-panel{height:60vh;max-height:60vh}}.llmchat-panel{display:flex;flex-direction:column;height:100%;min-height:400px;max-height:70vh}.llmchat-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #27272a;background:#1c1c1f;flex-shrink:0}.llmchat-title{font-weight:600;font-size:14px;color:#e4e4e7}.llmchat-model-tag{font-size:11px;color:#71717a;background:#27272a;padding:2px 8px;border-radius:4px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.llmchat-status{margin-left:auto;font-size:11px;font-weight:500}.llmchat-status.online{color:#22c55e}.llmchat-status.fallback{color:#3b82f6}.llmchat-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px;min-height:0}.llmchat-msg{max-width:85%;padding:8px 12px;border-radius:8px;font-size:13px;line-height:1.5;word-wrap:break-word}.llmchat-msg code{background:#27272a;padding:1px 5px;border-radius:3px;font-size:12px;color:#a1a1aa}.llmchat-msg strong{color:#e4e4e7}.llmchat-user{align-self:flex-end;background:#3b82f6;color:#fff}.llmchat-assistant{align-self:flex-start;background:#27272a;color:#d4d4d8}.llmchat-system{align-self:center;background:transparent;color:#71717a;font-size:12px;text-align:center;max-width:100%}.llmchat-error{align-self:center;background:#7f1d1d;color:#fca5a5;font-size:12px}.llmchat-streaming{border-left:2px solid #3b82f6}.cursor-blink{animation:blink 1s step-end infinite;color:#a1a1aa}@keyframes blink{50%{opacity:0}}.llmchat-input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #27272a;background:#1c1c1f;flex-shrink:0}.llmchat-input{flex:1;background:#27272a;border:1px solid #3f3f46;border-radius:8px;padding:8px 12px;color:#e4e4e7;font-size:13px;outline:none}.llmchat-input:focus{border-color:#3b82f6}.llmchat-input::placeholder{color:#52525b}.llmchat-send{background:#3b82f6;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.llmchat-send:hover:not(:disabled){background:#2563eb}.llmchat-send:disabled{opacity:.4;cursor:default}.typing-dots span{animation:dotPulse 1.4s infinite;opacity:0}.typing-dots span:nth-child(1){animation-delay:0s}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,60%,to{opacity:0}30%{opacity:1}}.building-interior-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;background:#0009;display:flex;align-items:center;justify-content:center;animation:interiorFadeIn .2s ease;visibility:hidden;opacity:0;transition:opacity .2s ease,visibility .2s ease}.building-interior-overlay.visible{visibility:visible;opacity:1}.interior-panel{width:min(800px,94vw);height:min(700px,90vh);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-xl);animation:interiorSlideIn .3s cubic-bezier(.16,1,.3,1)}.interior-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated);flex-shrink:0}.interior-icon{font-size:20px;line-height:1}.interior-title{font-weight:600;font-size:var(--font-size-lg);color:var(--text-primary)}.interior-level{color:var(--text-dim);font-size:var(--font-size-sm);padding:2px 8px;background:var(--bg-input);border-radius:var(--radius-sm)}.interior-stats{display:flex;gap:var(--space-md);margin-left:auto}.interior-stats span{font-size:var(--font-size-xs);color:var(--text-secondary);font-family:var(--font-mono)}.interior-close{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:4px 12px;font-size:18px;line-height:1;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.interior-close:hover{color:var(--error);background:var(--error-dim)}.interior-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.interior-chat-messages{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-sm)}.interior-msg{max-width:85%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-base);line-height:1.5;white-space:pre-wrap;word-break:break-word}.interior-msg.interior-user{align-self:flex-end;background:var(--accent-dim);color:var(--text-primary);border:1px solid var(--accent-glow)}.interior-msg.interior-assistant{align-self:flex-start;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle)}.interior-msg.interior-system{align-self:center;background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);text-align:center;max-width:100%;border:none}.interior-msg.interior-error{align-self:center;background:var(--error-dim);color:var(--error);font-size:var(--font-size-sm);border:1px solid rgba(239,68,68,.2)}.interior-msg strong{color:var(--accent-light)}.interior-msg code{background:#ffffff0f;padding:1px 5px;border-radius:3px;font-family:var(--font-mono);font-size:var(--font-size-xs)}.interior-msg.interior-typing{align-self:flex-start;background:transparent;border:none}.interior-output-area{border-top:1px solid var(--border-subtle);max-height:0;overflow:hidden;transition:max-height .3s ease;flex-shrink:0}.interior-output-area.has-output{max-height:150px;overflow-y:auto}.interior-output-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) var(--space-xl);background:var(--bg-elevated);font-size:var(--font-size-xs);color:var(--text-dim);position:sticky;top:0}.interior-output-clear{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-sm)}.interior-output-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.interior-output-content{padding:var(--space-sm) var(--space-xl);font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--text-secondary);white-space:pre-wrap;line-height:1.4}.interior-output-line{padding:1px 0}.interior-input-row{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border-subtle);background:var(--bg-elevated);flex-shrink:0}.interior-input{flex:1;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--text-primary);font-size:var(--font-size-base);font-family:var(--font-mono);outline:none;transition:border-color var(--transition-fast)}.interior-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.interior-input::placeholder{color:var(--text-muted)}.interior-send{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast)}.interior-send:hover:not(:disabled){background:var(--accent-hover)}.interior-send:disabled{opacity:.4;cursor:default}.interior-mic{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-sm) 12px;cursor:pointer;font-size:16px;line-height:1;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.interior-mic:hover{background:var(--bg-hover);border-color:var(--border-hover)}.interior-mic:active{transform:scale(.95)}.interior-mic.listening{background:#ef444433;border-color:var(--error);animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 6px #ef444400}}.interior-settings{display:flex;align-items:center;gap:var(--space-sm);padding:6px var(--space-xl);background:#0000004d;border-bottom:1px solid var(--border-subtle);flex-shrink:0;visibility:hidden;height:0;overflow:hidden;opacity:0;transition:height .2s ease,opacity .2s ease,visibility .2s ease,padding .2s ease}.interior-settings.visible{visibility:visible;height:36px;opacity:1;padding:6px var(--space-xl)}.interior-key-input{flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:4px 10px;color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono);outline:none;transition:border-color var(--transition-fast)}.interior-key-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.interior-key-input::placeholder{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs)}.interior-model-select{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:4px 8px;color:var(--text-primary);font-size:var(--font-size-sm);outline:none;cursor:pointer;transition:border-color var(--transition-fast);flex-shrink:0}.interior-model-select:focus{border-color:var(--accent)}.interior-model-select option{background:var(--bg-surface);color:var(--text-primary)}.interior-deploy-prompt{background:var(--accent-dim);border:1px solid rgba(124,58,237,.25);border-radius:var(--radius-xl);padding:0;margin:8px 0;overflow:hidden}.deploy-prompt-content{display:flex;align-items:center;gap:14px;padding:16px}.deploy-prompt-icon{font-size:28px;line-height:1;flex-shrink:0}.deploy-prompt-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.deploy-prompt-text strong{font-size:13px;color:var(--text-primary)}.deploy-prompt-desc{font-size:11px;color:var(--text-dim);line-height:1.4}.deploy-prompt-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);padding:8px 18px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--transition-fast),transform var(--transition-fast)}.deploy-prompt-btn:hover{background:var(--accent-hover);transform:scale(1.03)}.deploy-prompt-btn:active{transform:scale(.97)}.deploy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:350;background:#000000a6;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);visibility:hidden;opacity:0;transition:opacity .25s ease,visibility .25s ease}.deploy-overlay.visible{visibility:visible;opacity:1}.deploy-card{width:min(460px,92vw);background:#0a0a18f7;border:1px solid var(--border-default);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:0 25px 80px #0009;animation:deploySlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes deploySlideIn{0%{transform:translateY(24px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.deploy-header{display:flex;align-items:center;gap:12px;padding:20px 24px 16px;border-bottom:1px solid var(--border-subtle)}.deploy-header-icon{font-size:24px;line-height:1;flex-shrink:0}.deploy-header-text{flex:1;min-width:0}.deploy-title{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:.3px}.deploy-subtitle{font-size:11px;color:var(--text-dim);margin-top:2px}.deploy-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;padding:2px 8px;border-radius:var(--radius-md);transition:color .15s,background .15s;line-height:1}.deploy-close:hover{color:var(--error);background:var(--error-dim)}.deploy-steps{padding:20px 24px 8px;display:flex;flex-direction:column;gap:0}.deploy-step{display:flex;gap:12px;padding:8px 0;position:relative}.deploy-step:before{content:"";position:absolute;left:15px;top:36px;bottom:-8px;width:2px;background:var(--border-subtle);transition:background .3s ease}.deploy-step:last-child:before{display:none}.deploy-step.step-done:before{background:var(--success)}.deploy-step-indicator{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.deploy-step-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;line-height:1;transition:background .2s,border-color .2s,color .2s}.step-pending .deploy-step-icon{background:#ffffff0a;border:1.5px solid var(--border-default);color:var(--text-muted)}.step-active .deploy-step-icon{background:#7c3aed26;border:1.5px solid var(--accent);color:var(--accent-light)}.step-done .deploy-step-icon{background:#10b98126;border:1.5px solid rgba(16,185,129,.4);color:var(--success)}.step-error .deploy-step-icon{background:var(--error-dim);border:1.5px solid rgba(239,68,68,.4);color:var(--error)}.deploy-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(124,58,237,.3);border-top-color:var(--accent);border-radius:50%;animation:deploySpin .7s linear infinite}@keyframes deploySpin{to{transform:rotate(360deg)}}.deploy-step-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding-bottom:4px}.deploy-step-label{font-size:13px;font-weight:500;color:var(--text-primary);transition:color .2s}.step-pending .deploy-step-label{color:var(--text-muted)}.step-done .deploy-step-label{color:var(--success)}.step-error .deploy-step-label{color:var(--error)}.deploy-step-detail{font-size:11px;color:var(--text-dim);line-height:1.3;min-height:14px}.deploy-footer{padding:12px 24px 20px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:10px}.deploy-status-text{font-size:11px;color:var(--text-muted);text-align:center}.deploy-action-btn{width:100%;padding:12px 20px;border:none;border-radius:var(--radius-lg);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s,transform .1s}.deploy-action-btn:hover{background:var(--accent-hover)}.deploy-action-btn:active{transform:scale(.98)}.deploy-action-btn.deploy-action-danger{background:var(--error-dim);color:var(--error);border:1px solid rgba(239,68,68,.2)}.deploy-action-btn.deploy-action-danger:hover{background:#ef444433}.deploy-overlay.final .deploy-step-icon{transition:none}.deploy-overlay.final .deploy-step{pointer-events:none}@media(max-width:768px){.deploy-card{width:92vw;border-radius:var(--radius-xl)}.deploy-header{padding:16px 18px 12px}.deploy-steps{padding:16px 18px 4px}.deploy-footer{padding:10px 18px 16px}}@keyframes interiorSlideIn{0%{transform:translateY(20px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes interiorFadeIn{0%{opacity:0}to{opacity:1}}.panel-host{position:fixed;left:0;right:0;bottom:0;z-index:40;max-height:48vh;display:flex;flex-direction:column;background:var(--bg-surface, #0f0f1a);border-top:1px solid var(--border-default, rgba(255, 255, 255, .08));border-radius:16px 16px 0 0;box-shadow:0 -12px 40px #00000080;color:var(--text-primary, #e4e4e7);font-family:system-ui,-apple-system,sans-serif}.panel-host--full{top:0;max-height:none;border-radius:0}.panel-host-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .05));flex-shrink:0}.panel-host-icon{font-size:18px;line-height:1}.panel-host-title{flex:1;font-weight:600;font-size:15px}.panel-host-close{background:transparent;border:0;color:inherit;font-size:16px;padding:4px 8px;cursor:pointer;opacity:.7}.panel-host-close:hover{opacity:1}.panel-host-body{overflow:auto;flex:1;min-height:0}.forge-panel{display:grid;grid-template-columns:1fr 160px;grid-template-areas:"status status" "drop view" "foot foot";gap:10px;padding:12px 14px 14px}.forge-status{grid-area:status;font-size:12px;color:var(--text-secondary, #a1a1aa);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-status[data-phase=verified]{color:#4ade80}.forge-status[data-phase=dormant]{color:#9ca3af}.forge-status[data-phase=error]{color:#ef4444}.forge-status[data-phase=forging],.forge-status[data-phase=loading],.forge-status[data-phase=reading]{color:#fbbf24}.forge-drop{grid-area:drop;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;min-height:120px;border:1px dashed rgba(255,255,255,.25);border-radius:12px;font-size:13px;color:var(--text-secondary, #a1a1aa);cursor:pointer}.forge-drop.is-over{border-color:#fbbf24;background:#fbbf2414}.forge-view{grid-area:view;width:160px;height:160px;border-radius:12px;background:radial-gradient(circle at 50% 40%,#232338,#0b0b14 75%);overflow:hidden}.forge-view canvas{width:100%;height:100%;display:block}.forge-foot{grid-area:foot;display:flex;align-items:center;gap:10px}.forge-digest{flex:1;font-size:10px;color:var(--text-secondary, #a1a1aa);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-place{background:var(--accent, #7c3aed);color:#fff;border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer}.forge-place:disabled{opacity:.4;cursor:default}.settings-panel,.desk,.treasury,.admin,.house{display:grid;gap:var(--space-lg, 16px);padding:var(--space-md, 12px) var(--space-lg, 16px) var(--space-xl, 20px);font-size:var(--font-size-base, 12px);line-height:1.45;color:var(--text-primary, #e4e4e7)}.settings-section h3,.admin-section h3,.desk-eyebrow,.treasury-eyebrow,.guide-eyebrow{margin:0;font-size:var(--font-size-xs, 10px);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim, #71717a)}.desk-title,.desk-name,.treasury-locked h3{margin:0;font-size:var(--font-size-xl, 16px);font-weight:600;letter-spacing:-.01em;line-height:1.25;text-wrap:balance}.desk-role,.treasury-locked p,.desk-hint,.settings-note,.desk-note,.admin-note{margin:0;color:var(--text-secondary, #a1a1aa)}.desk-hint,.desk-small,.treasury-reason,.admin-muted,.guide-foot{font-size:var(--font-size-sm, 11px);color:var(--text-dim, #71717a)}.desk-hint code,.treasury-locked code,.settings-mono,.desk-mono{font-family:var(--font-mono, monospace);font-size:var(--font-size-sm, 11px);font-variant-numeric:tabular-nums}.desk-hint code,.treasury-locked code{padding:1px 4px;border-radius:var(--radius-sm, 4px);background:var(--bg-input, rgba(255, 255, 255, .04));color:var(--text-primary, #e4e4e7)}.settings-section dl,.desk-facts,.treasury-facts{display:grid;grid-template-columns:max-content 1fr;column-gap:var(--space-md, 12px);row-gap:var(--space-xs, 4px);margin:0}.settings-section dt,.desk-facts dt,.treasury-facts dt{color:var(--text-secondary, #a1a1aa)}.settings-section dd,.desk-facts dd,.treasury-facts dd{margin:0;min-width:0;color:var(--text-primary, #e4e4e7);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.settings-section dd.settings-mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-note,.desk-note,.admin-note{padding:var(--space-sm, 8px) var(--space-md, 12px);border-left:2px solid var(--border-hover, rgba(255, 255, 255, .15));background:var(--bg-input, rgba(255, 255, 255, .04));border-radius:0 var(--radius-md, 6px) var(--radius-md, 6px) 0;white-space:pre-wrap;overflow-wrap:anywhere}.desk-note-error{color:var(--error, #ef4444);border-left-color:var(--error, #ef4444);background:var(--error-dim, rgba(239, 68, 68, .15))}.settings-actions,.desk-actions,.admin-row-actions,[data-house=move]{display:flex;flex-wrap:wrap;gap:var(--space-sm, 8px);align-items:center}.settings-actions button,.desk-actions button,.admin-invite button,.admin-row-actions button,[data-house=move] button{display:inline-flex;align-items:center;gap:var(--space-sm, 8px);padding:8px 12px;font:600 var(--font-size-base, 12px) system-ui,-apple-system,sans-serif;line-height:1.2;color:var(--text-primary, #e4e4e7);background:var(--bg-input, rgba(255, 255, 255, .04));border:1px solid var(--border-default, rgba(255, 255, 255, .08));border-radius:var(--radius-lg, 8px);cursor:pointer;transition:border-color .12s ease,background-color .12s ease,transform 80ms ease}.settings-actions button:hover,.desk-actions button:hover,.admin-invite button:hover,.admin-row-actions button:hover,[data-house=move] button:hover{border-color:var(--border-hover, rgba(255, 255, 255, .15));background:var(--bg-hover, rgba(39, 39, 42, .8))}.settings-actions button:active,.desk-actions button:active,.admin-invite button:active,.admin-row-actions button:active,[data-house=move] button:active{transform:translateY(1px)}.settings-actions button:focus-visible,.desk-actions button:focus-visible,.admin-invite button:focus-visible,.admin-row-actions button:focus-visible,[data-house=move] button:focus-visible,.desk-form input:focus-visible,.admin-invite input:focus-visible,.admin-invite select:focus-visible,.guide-close:focus-visible,.panel-host-close:focus-visible{outline:2px solid var(--accent-light, #a78bfa);outline-offset:2px}.desk-actions button[type=submit],.admin-invite button[type=submit]{color:#fff;background:var(--accent, #7c3aed);border-color:transparent}.desk-actions button[type=submit]:hover,.admin-invite button[type=submit]:hover{background:var(--accent-hover, #6d28d9);border-color:transparent}.desk-actions button:disabled{opacity:.6;cursor:wait;transform:none}.desk-actions .desk-link{padding-left:4px;padding-right:4px;font-weight:500;color:var(--text-secondary, #a1a1aa);background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}.desk-actions .desk-link:hover{background:transparent;border-color:transparent;color:var(--text-primary, #e4e4e7)}.admin-row-actions button,[data-house=move] button{padding:5px 9px;font-size:var(--font-size-sm, 11px)}.desk-form{display:grid;gap:var(--space-md, 12px)}.desk-form label{display:grid;gap:var(--space-xs, 4px);color:var(--text-secondary, #a1a1aa)}.desk-form input,.admin-invite input,.admin-invite select{min-width:0;padding:10px 12px;font:inherit;font-size:var(--font-size-md, 13px);color:var(--text-primary, #e4e4e7);background:var(--bg-input, rgba(255, 255, 255, .04));border:1px solid var(--border-default, rgba(255, 255, 255, .08));border-radius:var(--radius-lg, 8px);transition:border-color .12s ease}.desk-form input::placeholder,.admin-invite input::placeholder{color:var(--text-muted, #52525b)}.desk-form input:hover,.admin-invite input:hover,.admin-invite select:hover{border-color:var(--border-hover, rgba(255, 255, 255, .15))}.desk-form input:focus,.admin-invite input:focus,.admin-invite select:focus{outline:none;border-color:var(--accent-light, #a78bfa)}.settings-panel{gap:var(--space-lg, 16px)}.settings-section{display:grid;gap:var(--space-sm, 8px)}.desk-card{display:grid;gap:var(--space-md, 12px)}.desk-card .desk-role{margin-top:calc(-1 * var(--space-sm, 8px))}.desk-fp,.treasury-fp{color:var(--text-primary, #e4e4e7);overflow-wrap:anywhere}.treasury{gap:var(--space-md, 12px)}.treasury-locked{display:grid;gap:var(--space-sm, 8px)}.treasury-fp{padding:var(--space-sm, 8px) var(--space-md, 12px);border-radius:var(--radius-md, 6px);background:var(--bg-input, rgba(255, 255, 255, .04));border:1px dashed var(--border-hover, rgba(255, 255, 255, .15))}.treasury-cards{display:grid;gap:var(--space-md, 12px)}.treasury-card{--curve: #c9a227;--curve-fill: rgba(201, 162, 39, .16);--curve-grid: rgba(255, 255, 255, .05);--glow: rgba(201, 162, 39, .22);position:relative;display:grid;gap:var(--space-sm, 8px);padding:var(--space-lg, 16px);background:var(--bg-card, rgba(30, 30, 50, .5));border:1px solid var(--border-default, rgba(255, 255, 255, .08));border-radius:var(--radius-xl, 12px)}.treasury-card.tone-up{--curve: #10b981;--curve-fill: rgba(16, 185, 129, .16);--glow: rgba(16, 185, 129, .22)}.treasury-card.tone-down{--curve: #ef4444;--curve-fill: rgba(239, 68, 68, .14);--glow: rgba(239, 68, 68, .2)}.treasury-card[style*=--breath]{animation:treasury-breathe var(--breath, 4s) ease-in-out infinite}@keyframes treasury-breathe{0%,to{box-shadow:0 0 0 0 transparent;border-color:var(--border-default, rgba(255, 255, 255, .08))}50%{box-shadow:0 0 18px -2px var(--glow);border-color:var(--curve-fill)}}.treasury-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm, 8px)}.treasury-head h3{margin:0;font-size:var(--font-size-lg, 14px);font-weight:600}.treasury-detail{font-size:var(--font-size-xs, 10px);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim, #71717a);white-space:nowrap}.treasury-equity{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.treasury-return{margin:0;font-weight:600;color:var(--curve)}.treasury-since{font-weight:400;color:var(--text-dim, #71717a)}.treasury-curve{display:block;width:100%;height:84px;margin-top:var(--space-xs, 4px)}.treasury-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs, 4px) var(--space-sm, 8px);margin:0;padding:0;list-style:none}.chip{padding:3px 9px;border-radius:999px;font-size:var(--font-size-sm, 11px);color:var(--text-secondary, #a1a1aa);background:var(--bg-input, rgba(255, 255, 255, .04));border:1px solid var(--border-subtle, rgba(255, 255, 255, .06))}.chip b{color:var(--text-primary, #e4e4e7);font-variant-numeric:tabular-nums}.chip.tone-up b{color:var(--success, #10b981)}.chip.tone-down b{color:var(--error, #ef4444)}.treasury-facts{margin-top:var(--space-xs, 4px);padding-top:var(--space-sm, 8px);border-top:1px solid var(--border-subtle, rgba(255, 255, 255, .06));font-size:var(--font-size-sm, 11px)}.treasury-facts dt{color:var(--text-dim, #71717a)}.admin{gap:var(--space-xl, 20px)}.admin-section{display:grid;gap:var(--space-sm, 8px)}.admin-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm, 11px)}.admin-table th{padding:6px;text-align:left;font-weight:500;color:var(--text-dim, #71717a);border-bottom:1px solid var(--border-default, rgba(255, 255, 255, .08));white-space:nowrap}.admin-table td{padding:7px 6px;vertical-align:middle;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .06));font-variant-numeric:tabular-nums}.admin-table tbody tr:last-child td{border-bottom:0}.admin-name{font-weight:600;color:var(--text-primary, #e4e4e7)}.admin-fp{color:var(--text-secondary, #a1a1aa);white-space:nowrap}.admin-row-actions{justify-content:flex-end;flex-wrap:nowrap;gap:var(--space-xs, 4px)}@media(max-width:600px){.admin-table th:nth-child(4),.admin-table td:nth-child(4){display:none}}.admin-invite{display:flex;gap:var(--space-sm, 8px);margin-top:var(--space-xs, 4px)}.admin-invite input{flex:1}.admin-invite select{flex:0 0 auto}.admin-note{font-size:var(--font-size-sm, 11px)}.admin-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm, 8px)}@media(max-width:480px){.admin-totals{grid-template-columns:repeat(2,1fr)}}.admin-totals div{display:grid;gap:2px;padding:var(--space-sm, 8px) var(--space-md, 12px);background:var(--bg-card, rgba(30, 30, 50, .5));border:1px solid var(--border-subtle, rgba(255, 255, 255, .06));border-radius:var(--radius-lg, 8px)}.admin-totals b{font-size:var(--font-size-xl, 16px);font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.admin-label{font-size:var(--font-size-xs, 10px);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim, #71717a)}.admin-lab{display:grid;gap:var(--space-md, 12px)}.admin-lab canvas{display:block}.house .desk-card{gap:var(--space-md, 12px)}[data-house=move]{margin-top:var(--space-xs, 4px)}[data-house=move] .desk-hint{flex-basis:100%}.guide{position:fixed;top:var(--space-md, 12px);left:var(--space-md, 12px);right:var(--space-md, 12px);z-index:40;max-width:420px;margin:0 auto;padding:var(--space-md, 12px) var(--space-lg, 16px) var(--space-lg, 16px);font:var(--font-size-base, 12px) / 1.45 system-ui,-apple-system,sans-serif;color:var(--text-primary, #e4e4e7);background:var(--bg-elevated, rgba(15, 15, 26, .94));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-hover, rgba(255, 255, 255, .15));border-radius:var(--radius-2xl, 14px);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .4)),0 12px 40px #00000073;animation:guide-in .4s ease-out}@keyframes guide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.guide-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm, 8px)}.guide-close{padding:2px 8px;font:18px/1 system-ui,sans-serif;color:var(--text-secondary, #a1a1aa);background:none;border:0;border-radius:var(--radius-md, 6px);cursor:pointer}.guide-close:hover{color:var(--text-primary, #e4e4e7);background:var(--bg-input, rgba(255, 255, 255, .04))}.guide-steps{display:grid;gap:var(--space-sm, 8px);margin:0;padding:0;list-style:none}.guide-steps li{display:grid;grid-template-columns:24px 1fr;gap:var(--space-sm, 8px);align-items:start}.guide-icon{text-align:center;font-size:var(--font-size-lg, 14px);line-height:1.3}.guide-foot{margin:var(--space-md, 12px) 0 0}@media(prefers-reduced-motion:reduce){.treasury-card[style*=--breath],.guide{animation:none}.settings-actions button,.desk-actions button,.admin-invite button,.admin-row-actions button,[data-house=move] button,.desk-form input,.admin-invite input,.admin-invite select{transition:none}}.treasury-card-unavailable{--glow: transparent;opacity:.72;border-style:dashed}.speech{position:fixed;top:0;left:0;z-index:30;max-width:min(260px,70vw);padding:var(--space-sm, 8px) var(--space-md, 12px);font:var(--font-size-base, 12px) / 1.4 system-ui,-apple-system,sans-serif;color:#10202a;background:#f4f7f9;border:1px solid rgba(16,32,42,.18);border-radius:var(--radius-lg, 10px);box-shadow:0 6px 18px #10202a2e;pointer-events:auto;cursor:pointer;user-select:none;-webkit-user-select:none;will-change:transform}.speech-text{position:relative;margin:0;white-space:normal;overflow-wrap:anywhere}.speech:before{content:"";position:absolute;left:10px;bottom:-7px;width:12px;height:12px;background:#f4f7f9;border-right:1px solid rgba(16,32,42,.18);border-bottom:1px solid rgba(16,32,42,.18);transform:rotate(45deg)}.speech-in{animation:speech-in .22s ease-out}@keyframes speech-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.speech-in{animation:none}}.controls-question{margin:0 0 var(--space-sm, 8px);font-weight:600}.controls-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm, 8px);margin-bottom:var(--space-md, 12px)}.controls-choice button{display:grid;gap:2px;min-height:44px;padding:var(--space-sm, 8px) var(--space-md, 12px);text-align:left;font:inherit;color:var(--text-primary, #e4e4e7);background:var(--bg-input, rgba(255, 255, 255, .04));border:1px solid var(--border-default, rgba(255, 255, 255, .1));border-radius:var(--radius-lg, 8px);cursor:pointer;-webkit-tap-highlight-color:transparent}.controls-choice button b{font-weight:600}.controls-choice button span{font-size:var(--font-size-sm, 11px);color:var(--text-secondary, #a1a1aa)}.controls-choice button[aria-pressed=true]{border-color:var(--accent, #7c3aed);background:var(--accent-dim, rgba(124, 58, 237, .15))}.controls-choice button:focus-visible{outline:2px solid var(--accent-light, #a78bfa);outline-offset:1px}.settings-section .controls-choice{margin-bottom:0}.guide--ask{top:auto;bottom:calc(var(--space-md, 12px) + env(safe-area-inset-bottom,0px))}.guide--ask .controls-choice{margin-bottom:0}.guide--ask .guide-foot{margin-top:var(--space-sm, 8px)}.walk-pad{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);gap:4px;transform:translate(-50%);touch-action:none;user-select:none;-webkit-user-select:none}.walk-pad-btn{display:flex;align-items:center;justify-content:center;padding:0;font-size:18px;color:#ffffffd9;background:#0f0f1ab8;border:1px solid rgba(255,255,255,.18);border-radius:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;touch-action:none;cursor:pointer;transition:background .08s,transform .08s}.walk-pad-btn[data-dir=up]{grid-area:1 / 2}.walk-pad-btn[data-dir=left]{grid-area:2 / 1}.walk-pad-btn[data-dir=right]{grid-area:2 / 3}.walk-pad-btn[data-dir=down]{grid-area:3 / 2}.walk-pad-hub{grid-area:2 / 2;margin:16px;border-radius:50%;background:#ffffff0f}.walk-pad-btn.held{color:#fff;background:#7c3aed99;border-color:var(--accent, #7c3aed);transform:scale(.94)}.walk-pad-btn:focus-visible{outline:2px solid var(--accent-light, #a78bfa)}@media(max-width:380px){.walk-pad{grid-template-columns:repeat(3,50px);grid-template-rows:repeat(3,50px)}}@media(max-height:500px)and (orientation:landscape){.walk-pad{left:calc(18px + env(safe-area-inset-left,0px));transform:none}}.panel-host~.walk-pad,.walk-pad:has(~.panel-host){opacity:.35;pointer-events:none}.install-offer{display:grid;gap:var(--space-xs, 4px);margin-bottom:var(--space-md, 12px)}.install-offer button{min-height:40px;padding:var(--space-sm, 8px) var(--space-md, 12px);font:inherit;font-weight:600;color:#fff;background:var(--accent, #7c3aed);border:0;border-radius:var(--radius-lg, 8px);cursor:pointer;-webkit-tap-highlight-color:transparent}.install-offer button:focus-visible{outline:2px solid var(--accent-light, #a78bfa);outline-offset:2px}.install-hint{margin:0;font-size:var(--font-size-sm, 11px);color:var(--text-secondary, #a1a1aa)}.settings-section .install-offer{margin-bottom:0}.guide:not(.guide--ask){top:calc(var(--space-md, 12px) + env(safe-area-inset-top,0px))}@media(max-width:600px){.panel-host{max-height:64vh;padding-bottom:env(safe-area-inset-bottom,0px)}.panel-host-header{padding:12px 14px}.panel-host-close{padding:8px 12px;font-size:18px}.guide{max-height:calc(100vh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto}.speech{max-width:min(240px,78vw)}}:root{--side-w: 320px}.side{position:fixed;top:0;right:0;bottom:0;z-index:45;display:flex;flex-direction:column;width:var(--side-w);max-width:100vw;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);font:var(--font-size-base, 12px) / 1.45 system-ui,-apple-system,sans-serif;color:var(--text-primary, #e4e4e7);background:var(--bg-elevated, rgba(15, 15, 26, .94));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:1px solid var(--border-default, rgba(255, 255, 255, .1));box-shadow:-12px 0 40px #00000059;transform:translate(100%);transition:transform .22s ease}.side[data-open=true]{transform:none}.side-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .05));flex-shrink:0}.side-title{flex:1;font-weight:600;font-size:15px}.side-close{padding:4px 8px;font-size:16px;color:inherit;background:transparent;border:0;cursor:pointer;opacity:.7}.side-body{display:grid;align-content:start;gap:var(--space-lg, 16px);flex:1;min-height:0;padding:var(--space-md, 12px) 14px var(--space-lg, 16px);overflow:auto}.side-card{display:grid;gap:var(--space-sm, 8px)}.side-card h3{margin:0;font-size:var(--font-size-xs, 10px);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim, #71717a)}.side-card-body{display:grid;gap:var(--space-sm, 8px)}.side-text,.side-note,.side-mono{margin:0}.side-text{color:var(--text-secondary, #a1a1aa)}.side-note{font-size:var(--font-size-sm, 11px);color:var(--text-dim, #71717a)}.side-mono{font:var(--font-size-sm, 11px) / 1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-secondary, #a1a1aa);overflow-wrap:anywhere}.side-rows{display:grid;gap:6px;margin:0;padding:0;list-style:none}.side-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--space-sm, 8px);align-items:baseline;padding:8px 10px;background:var(--bg-card, rgba(30, 30, 50, .5));border:1px solid var(--border-subtle, rgba(255, 255, 255, .06));border-radius:var(--radius-lg, 8px)}.side-row b{font-weight:600;overflow-wrap:anywhere}.side-num{font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.side-num.tone-up{color:var(--success, #10b981)}.side-num.tone-down{color:var(--error, #ef4444)}.side-num.tone-wait{color:var(--warning, #f59e0b)}.side-sub{grid-column:1 / -1;font-size:var(--font-size-sm, 11px);color:var(--text-secondary, #a1a1aa)}.side-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm, 8px)}.side-actions button{min-height:36px;padding:8px 12px;font:600 var(--font-size-base, 12px) system-ui,-apple-system,sans-serif;line-height:1.2;color:var(--text-primary, #e4e4e7);background:var(--bg-input, rgba(255, 255, 255, .04));border:1px solid var(--border-default, rgba(255, 255, 255, .08));border-radius:var(--radius-lg, 8px);cursor:pointer}.side-actions button:hover{border-color:var(--border-hover, rgba(255, 255, 255, .15))}.side-actions button:focus-visible,.side-close:focus-visible,.side-toggle:focus-visible{outline:2px solid var(--accent-light, #a78bfa);outline-offset:1px}.side-toggle{position:fixed;z-index:46;display:flex;align-items:center;justify-content:center;padding:0;font-size:18px;color:var(--text-primary, #e4e4e7);background:var(--bg-elevated, rgba(15, 15, 26, .94));border:1px solid var(--border-default, rgba(255, 255, 255, .1));cursor:pointer;-webkit-tap-highlight-color:transparent;transition:right .22s ease}.side-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:44;display:none;background:#00000073}@media(max-width:899px){.side{width:min(86vw,360px)}.side-scrim[data-open=true]{display:block}.side-toggle{right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;box-shadow:0 6px 18px #00000059}.side-open .side-toggle{display:none}.guide--ask{right:calc(76px + env(safe-area-inset-right,0px))}}@media(min-width:900px){.side-close{display:none}.side-toggle{top:50%;right:0;width:28px;height:64px;border-right:0;border-radius:8px 0 0 8px;transform:translateY(-50%)}.side-open .side-toggle,.side-open .panel-host{right:var(--side-w)}.side-open .guide:not(.guide--ask){right:calc(var(--side-w) + var(--space-md, 12px))}}@media(prefers-reduced-motion:reduce){.side,.side-toggle{transition:none}}[hidden]{display:none!important}.ui-sprite{--frames: 1;--size: 24px;display:inline-block;flex:none;width:var(--size);height:var(--size);vertical-align:middle;background-image:var(--sheet);background-repeat:no-repeat;background-position:0 0;background-size:calc(var(--frames) * 100%) 100%;animation:ui-sprite-run 1s steps(1) infinite}@keyframes ui-sprite-run{to{background-position-x:calc(var(--frames) * var(--size) * -1)}}.guide-steps li{grid-template-columns:28px 1fr;align-items:center}.guide-icon.ui-sprite{--size: 28px}.install-offer button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm, 8px)}.side-toggle .ui-sprite{--size: 28px}.listening-choice b{display:inline-flex;align-items:center;gap:var(--space-sm, 8px)}.speech--thinking{min-width:0}.speech--thinking .speech-text:empty{display:none}.boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-content:center;justify-items:center;gap:var(--space-md, 12px);background:var(--bg-base, #0a0a14);transition:opacity .32s ease}.boot--gone{opacity:0;pointer-events:none}.boot-line{margin:0;font:var(--font-size-base, 12px) system-ui,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary, #a1a1aa)}.data-waiting{display:grid;gap:var(--space-sm, 8px);padding:var(--space-sm, 8px) 0}.data-shimmer{width:var(--w, 100%);height:12px;border-radius:6px;background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a 80%);background-size:280% 100%;animation:data-shimmer-run 1.6s ease-in-out var(--delay, 0ms) infinite}@keyframes data-shimmer-run{0%{background-position-x:120%}to{background-position-x:-60%}}.admin-table td .ui-sprite{margin-right:6px}.settings-actions .ui-sprite,.side-close .ui-sprite,.panel-host-close .ui-sprite,.guide-close .ui-sprite{--size: 18px}.side-close,.panel-host-close,.guide-close{display:inline-flex;align-items:center;justify-content:center}.install-report{margin:0;font-size:var(--font-size-xs, 10px);color:var(--text-dim, #71717a)}@media(prefers-reduced-motion:reduce){.ui-sprite,.data-shimmer{animation:none!important}}.data-state{display:flex;align-items:flex-start;gap:var(--space-sm, 8px);margin:0;color:var(--text-secondary, #a1a1aa)}.data-state .status-sprite{--size: 22px;margin-top:-3px}.data-state[data-status=failed] .data-state-text{color:var(--error, #ef4444)}.side-card h3{display:flex;align-items:center;gap:6px}.side-card h3 .ui-sprite{--size: 18px}.side-actions button{display:inline-flex;align-items:center;gap:6px}.side-actions button .ui-sprite{--size: 18px}.side-row{grid-template-columns:18px minmax(0,1fr) auto;align-items:center}.side-row .status-sprite{--size: 18px}.side-row b{grid-column:2}.side-num{grid-column:3}.side-sub,.side-row .sparkline{grid-column:2 / -1}.side-row .sparkline{display:block;width:100%;height:24px;margin-top:2px}.side-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.side-chips .chip{display:inline-flex;align-items:center;gap:5px;opacity:.55}.side-chips .chip-on{opacity:1}.side-chips .chip .ui-sprite{--size: 14px}.chip-waiting.chip-on b{color:var(--warning, #f59e0b)}.chip-failed.chip-on b{color:var(--error, #ef4444)}.treasury-state{display:flex;align-items:center;gap:var(--space-md, 12px)}.treasury-state .ui-sprite{--size: 40px}.treasury-state h3{margin:0}.treasury>.treasury-eyebrow{display:flex;align-items:center;gap:6px}.treasury>.treasury-eyebrow .ui-sprite{--size: 16px}.treasury-detail{display:inline-flex;align-items:center;gap:5px}.treasury-detail .ui-sprite{--size: 14px}.settings-section dd .status-sprite{--size: 16px;margin-right:6px}.panel-host-icon .ui-sprite{--size: 22px}.speech{display:flex;align-items:flex-start;gap:6px}.speech-icon{flex:none;margin-top:1px}.speech-icon .ui-sprite{--size: 18px}.walk-pad-btn .ui-sprite{--size: 26px}.walk-pad-btn[data-dir=left] .ui-sprite{transform:rotate(-90deg)}.walk-pad-btn[data-dir=right] .ui-sprite{transform:rotate(90deg)}.walk-pad-btn[data-dir=down] .ui-sprite{transform:rotate(180deg)}.hub-menu-option-arrow .ui-sprite{transform:rotate(90deg)}.dpad-btn .ui-sprite{--size: 22px}.dpad-btn[data-dir=left] .ui-sprite{transform:rotate(-90deg)}.dpad-btn[data-dir=right] .ui-sprite{transform:rotate(90deg)}.dpad-btn[data-dir=down] .ui-sprite{transform:rotate(180deg)}.listening-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm, 8px)}@media(max-width:600px){.listening-choice{grid-template-columns:1fr}}
