:root{--bg-base: #05070b;--bg-surface: #0b1018;--bg-vignette: radial-gradient(120% 120% at 50% 0%, #101723 0%, #070b11 45%, #04060a 100%);--surface-shell: rgba(8, 13, 20, .9);--surface-panel: rgba(13, 20, 30, .9);--surface-card: rgba(16, 25, 38, .92);--surface-elev: rgba(23, 34, 50, .92);--surface-input: rgba(10, 16, 24, .95);--border-soft: rgba(72, 91, 116, .32);--border-strong: rgba(101, 128, 160, .38);--text-primary: #ebf2ff;--text-secondary: #b8c7dd;--text-muted: #7d93b3;--text-dim: #5d708d;--accent: #1fe0d3;--accent-strong: #22fff0;--accent-soft: rgba(31, 224, 211, .16);--accent-ring: rgba(31, 224, 211, .5);--state-success-bg: linear-gradient(180deg, rgba(10, 52, 54, .85), rgba(8, 42, 45, .85));--state-success-border: rgba(45, 215, 194, .36);--state-danger-bg: linear-gradient(180deg, rgba(84, 16, 31, .88), rgba(57, 10, 22, .88));--state-danger-border: rgba(237, 92, 120, .42);--radius-shell: 22px;--radius-panel: 16px;--radius-card: 14px;--radius-pill: 999px;--shadow-shell: 0 16px 54px rgba(0, 0, 0, .55);--shadow-card: 0 10px 28px rgba(0, 0, 0, .36);--shadow-accent: 0 0 0 1px rgba(31, 224, 211, .18), 0 0 18px rgba(31, 224, 211, .12);--scrollbar-track: rgba(6, 10, 16, .92);--scrollbar-thumb: linear-gradient(180deg, rgba(31, 224, 211, .42), rgba(18, 120, 118, .38));--scrollbar-thumb-hover: linear-gradient(180deg, rgba(34, 255, 240, .55), rgba(24, 150, 145, .48));--scrollbar-thumb-border: rgba(31, 224, 211, .22);--scrollbar-corner: var(--scrollbar-track)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%;font-family:Inter,Segoe UI,sans-serif;background:var(--bg-base);color:var(--text-primary)}.chat-log-body,.generated-models-list,.subagent-list,.chat-log-input textarea{scrollbar-width:thin;scrollbar-color:rgba(31,224,211,.5) var(--scrollbar-track)}.chat-log-body::-webkit-scrollbar,.generated-models-list::-webkit-scrollbar,.subagent-list::-webkit-scrollbar,.chat-log-input textarea::-webkit-scrollbar{width:9px;height:9px}.chat-log-body::-webkit-scrollbar-track,.generated-models-list::-webkit-scrollbar-track,.subagent-list::-webkit-scrollbar-track,.chat-log-input textarea::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px;margin:4px 0}.chat-log-body::-webkit-scrollbar-thumb,.generated-models-list::-webkit-scrollbar-thumb,.subagent-list::-webkit-scrollbar-thumb,.chat-log-input textarea::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box;box-shadow:0 0 0 1px var(--scrollbar-thumb-border) inset}.chat-log-body::-webkit-scrollbar-thumb:hover,.generated-models-list::-webkit-scrollbar-thumb:hover,.subagent-list::-webkit-scrollbar-thumb:hover,.chat-log-input textarea::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}.chat-log-body::-webkit-scrollbar-corner,.generated-models-list::-webkit-scrollbar-corner,.subagent-list::-webkit-scrollbar-corner,.chat-log-input textarea::-webkit-scrollbar-corner{background:var(--scrollbar-corner)}.chat-app{display:flex;flex-direction:column;height:100%}.chat-header{height:52px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--border-soft);background:#05090eeb}.chat-header h1{margin:0;font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:.01em}.chat-main{flex:1;min-height:0;display:block;padding:12px;background:var(--bg-vignette)}.scene-panel{position:relative;height:100%;border:1px solid var(--border-soft);border-radius:var(--radius-shell);background:var(--surface-shell);overflow:hidden;box-shadow:var(--shadow-shell)}#renderCanvas{width:100%;height:100%;display:block;outline:none}.scene-controls-panel{position:absolute;left:0;bottom:14px;width:440px;background:var(--surface-panel);border:1px solid var(--border-soft);border-left:none;border-radius:var(--radius-panel);border-top-left-radius:0;border-bottom-left-radius:0;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-card);backdrop-filter:blur(10px)}.scene-controls-title,.generated-models-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.camera-toggle{display:flex;gap:8px}.camera-toggle button,.generated-model-focus-btn,.generated-model-download-btn,.generated-model-visibility-btn{border:1px solid var(--border-soft);background:var(--surface-elev);color:var(--text-secondary);border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.camera-toggle button{flex:1;height:28px}.camera-toggle button.active{border-color:var(--accent-ring);background:#15424dcc;color:#d8fffc;box-shadow:var(--shadow-accent)}.scene-controls-groups{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:0}.scene-controls-group{min-width:0;border:1px solid var(--border-soft);border-radius:10px;padding:6px 8px;background:#0a10188c;box-shadow:0 1px #ffffff0a inset}.scene-controls-group-title{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:5px}.scene-controls-toggle-grid{display:grid;grid-template-columns:1fr;gap:4px;min-width:0}.scene-toggle,.spz-toggle{display:flex;align-items:center;gap:6px;min-width:0;min-height:24px;border:1px solid var(--border-soft);border-radius:8px;padding:3px 7px;background:var(--surface-elev);color:var(--text-secondary);font-size:11px}.spz-toggle span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-toggle input,.spz-toggle input{accent-color:var(--accent)}.generated-models-panel{margin-top:4px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-elev);padding:8px}.generated-models-empty{font-size:11px;color:var(--text-muted)}.generated-models-list{display:flex;flex-direction:column;gap:6px;max-height:132px;overflow-y:auto;overflow-x:hidden}.generated-model-item{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;border-radius:8px;padding:4px 6px;margin:0 -2px;border:1px solid transparent;border-left-width:3px;border-left-color:transparent}.generated-model-item.has-generated-model-accent{border-color:#ffffff0f;border-left-color:var(--generated-model-accent);background:linear-gradient(90deg,color-mix(in srgb,var(--generated-model-accent) 14%,transparent),transparent 52%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--generated-model-accent) 12%,transparent)}.generated-model-identity{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.generated-model-color-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--generated-model-accent, var(--text-muted));box-shadow:0 0 0 1px #00000059}.generated-model-item.has-generated-model-accent .generated-model-color-dot{box-shadow:0 0 0 1px #00000059,0 0 8px color-mix(in srgb,var(--generated-model-accent) 45%,transparent)}.generated-model-name{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.generated-model-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.generated-model-focus-btn{height:24px;min-width:46px}.generated-model-focus-btn:disabled{opacity:.5;cursor:not-allowed}.generated-model-download-btn{height:24px;min-width:42px;font-size:11px;padding:0 6px}.generated-model-visibility-btn{height:24px;min-width:46px;padding:0 6px;gap:3px;display:inline-flex;align-items:center;justify-content:center}.generated-model-visibility-label{font-size:10px;line-height:1}.generated-model-visibility-btn.is-off{opacity:.72;color:var(--text-muted);background:#0003}.generated-model-visibility-btn:disabled{opacity:.35;cursor:not-allowed}.generated-model-download-btn:disabled{opacity:.35;cursor:not-allowed}.chat-log-panel{position:absolute;right:14px;top:14px;width:420px;max-width:calc(100% - 28px);height:calc(100% - 28px);min-height:420px;max-height:calc(100% - 28px);display:flex;flex-direction:column;overflow:hidden;background:var(--surface-panel);border:1px solid var(--border-soft);border-radius:var(--radius-shell);box-shadow:var(--shadow-shell);backdrop-filter:blur(14px)}.chat-log-header{height:56px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--border-soft);font-size:11px;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.chat-log-header-icon{width:24px;height:24px;border-radius:50%;border:1px solid rgba(51,207,190,.44);background:#0b3134c2;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);box-shadow:var(--shadow-accent)}.chat-log-body{flex:1;overflow:auto;overflow-x:hidden;padding:10px 10px 6px;display:flex;flex-direction:column;gap:10px}.chat-log-entry{display:grid;grid-template-columns:70px 1fr;gap:10px;min-width:0;align-items:start}.chat-log-time{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11px;white-space:nowrap;padding-top:10px}.chat-log-text{color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;min-width:0;border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--surface-card);padding:12px 12px 10px;box-shadow:var(--shadow-card);line-height:1.45;font-size:15px}.chat-log-entry.activity .chat-log-text,.chat-log-entry.pending .chat-log-text{background:var(--state-success-bg);border-color:var(--state-success-border);color:#dbfffb}.chat-log-entry.error .chat-log-text{background:var(--state-danger-bg);border-color:var(--state-danger-border);color:#ffe7ee}.typing-indicator{animation:fade-pulse 1.6s ease-in-out infinite}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.55}}.chat-inline-attachments{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.chat-inline-attachment-chip{display:inline-flex;align-items:center;gap:6px;max-width:250px;min-width:0;border:1px solid var(--border-strong);background:#16263abf;border-radius:var(--radius-pill);padding:3px 10px 3px 8px;font-size:11px;overflow:hidden}.chat-inline-attachment-kind{color:var(--accent-strong);font-size:10px;letter-spacing:.06em;white-space:nowrap;flex:0 0 auto;line-height:1}.chat-inline-attachment-name{display:inline-block;min-width:0;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-log-entry.subagent-row{grid-template-columns:1fr}.chat-log-entry.subagent-row .chat-log-time{display:none}.chat-log-entry.subagent-row .chat-log-text{padding:0;border:none;background:transparent;box-shadow:none}.subagent-toggle{width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--state-success-border);border-radius:var(--radius-card);background:var(--state-success-bg);color:#defefa;padding:11px 12px;font-size:14px;cursor:pointer;text-align:left}.subagent-toggle:hover{border-color:#4ef3e37a}.chat-log-entry.subagent-done .subagent-toggle{border-color:#2dd7c22e;background:linear-gradient(180deg,#08262899,#061e2099);color:#9ecfca;opacity:.8}.chat-log-entry.subagent-failed .subagent-toggle{border-color:var(--state-danger-border);background:var(--state-danger-bg);color:#e8b4be;opacity:.85}.chat-log-entry[style*=--subagent-accent] .subagent-toggle{border-left:3px solid var(--subagent-accent, transparent);padding-left:8px}.chat-log-entry[style*=--subagent-accent] .subagent-toggle .icon-badge{box-shadow:0 0 0 2px var(--subagent-accent, transparent);border-radius:6px}.icon-badge{width:28px;height:28px;border-radius:50%;border:1px solid rgba(51,207,190,.44);background:#0b3134c2;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);flex:0 0 auto;box-shadow:var(--shadow-accent)}.subagent-caret{flex:0 0 auto;color:var(--accent);line-height:1;transform:rotate(0);transition:transform .15s ease}.subagent-caret.open{transform:rotate(90deg)}.subagent-toggle-content{min-width:0;display:flex;flex-direction:column;gap:3px}.subagent-toggle-title{color:var(--text-primary);font-weight:600;line-height:1.2}.subagent-toggle-subtitle{color:#b4f9f2e0;font-size:12px;line-height:1.25;white-space:normal;letter-spacing:.03em;text-transform:uppercase}.subagent-toggle-subtitle.live{animation:subagent-live-pulse 1.8s ease-in-out infinite}@keyframes subagent-live-pulse{0%,to{opacity:1}50%{opacity:.6}}.subagent-details{margin-top:8px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:12px;background:#0d1722e6;color:var(--text-secondary);font-size:13px}.subagent-detail-line{margin-bottom:6px}.subagent-list{margin:2px 0 8px;max-height:120px;overflow:auto;font-family:Consolas,Courier New,monospace;font-size:11px;color:#9fb3cf}.subagent-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0 10px}.subagent-image-grid img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:8px;border:1px solid var(--border-soft);background:#0d141e}.subagent-activity-log{max-height:320px}.subagent-activity-row{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(72,91,116,.2)}.subagent-activity-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.subagent-activity-text{margin-bottom:6px;line-height:1.35}.subagent-activity-capture{display:block;width:100%;max-height:140px;object-fit:contain;border-radius:8px;border:1px solid var(--border-soft);background:#0d141e}.chat-log-input{border-top:1px solid var(--border-soft);padding:10px;display:flex;flex-direction:column;gap:8px}.attachments-row{display:flex;align-items:center;gap:8px}.icon-button{width:30px;height:30px;border-radius:10px;border:1px solid var(--accent-ring);background:#0c4047e0;color:var(--accent-strong);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;box-shadow:var(--shadow-accent)}.icon-button:hover:not(:disabled){background:#11545af0}.icon-button:disabled{opacity:.5;cursor:not-allowed}.attach-btn{flex:0 0 30px}.attachment-list{display:flex;flex-wrap:wrap;gap:6px;min-width:0;max-width:100%}.attachment-chip{display:inline-flex;align-items:center;gap:6px;max-width:220px;min-width:0;min-height:26px;border:1px solid var(--border-soft);background:#122030d6;border-radius:var(--radius-pill);padding:3px 8px 3px 10px;overflow:hidden;white-space:nowrap;color:var(--text-secondary);font-size:12px}.attachment-name{overflow:hidden;text-overflow:ellipsis;min-width:0}.attachment-remove-btn{width:18px;height:18px;min-width:18px;border:none;border-radius:6px;padding:0;background:#471422db;color:#ffd9e2;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.attachment-remove-btn:hover{background:#5d192beb}.chat-log-input textarea{width:100%;resize:none;min-height:76px;max-height:160px;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface-input);color:var(--text-primary);padding:12px 13px;font-size:14px;line-height:1.4}.chat-log-input textarea::placeholder{color:var(--text-muted)}.chat-log-input textarea:focus{outline:none;border-color:var(--accent-ring);box-shadow:var(--shadow-accent)}.chat-actions-row{display:flex;justify-content:flex-end;align-items:center;gap:8px}.chat-actions-row>button{height:30px;min-width:74px;border:1px solid var(--border-soft);border-radius:10px;background:#141f2ee6;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.chat-actions-row>button:hover:not(:disabled){border-color:var(--border-strong);background:#1e2a3aeb}.chat-actions-row>button:disabled{opacity:.5;cursor:not-allowed}.chat-actions-row>.send-btn{border-color:var(--accent-ring);background:linear-gradient(180deg,#125f66f2,#0b424af2);color:#e5fffd;box-shadow:var(--shadow-accent)}.chat-actions-row>.send-btn:hover:not(:disabled){border-color:#46f7e8a8;background:linear-gradient(180deg,#156e77f2,#0d4f58f2)}.chat-entry-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.chat-entry-role{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.chat-entry-body{color:inherit}@media(max-width:1040px){.chat-log-panel{width:360px}.chat-log-text{font-size:14px}}@media(max-width:960px){.chat-log-panel{width:320px}.scene-controls-panel{width:402px}.scene-controls-groups{grid-template-columns:1fr}}
