@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#080b14;--surface:#ffffff0b;--border:#ffffff14;--indigo:#6366f1;--cyan:#06b6d4;--indigo-dim:#4f46e5;--text:#f0f4ff;--muted:#8b94b2;--error:#f87171;--radius:14px;--trans:all .2s ease}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif}.loading-screen{background:var(--bg);justify-content:center;align-items:center;height:100vh;display:flex}.loader{border:3px solid var(--border);border-top-color:var(--indigo);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.orb{filter:blur(90px);pointer-events:none;z-index:0;border-radius:50%;position:fixed}.orb-1{background:radial-gradient(circle,#6366f12e 0%,#0000 70%);width:520px;height:520px;top:-140px;left:-140px}.orb-2{background:radial-gradient(circle,#06b6d426 0%,#0000 70%);width:420px;height:420px;bottom:-100px;right:-100px}.orb-3{background:radial-gradient(circle,#6366f114 0%,#0000 70%);width:300px;height:300px;top:50%;left:55%}.home-root{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.home-main{z-index:1;flex-direction:column;align-items:center;gap:40px;width:100%;padding:32px 16px;display:flex}.hero{text-align:center}.logo-mark{justify-content:center;align-items:center;margin-bottom:14px;animation:4s ease-in-out infinite float;display:flex}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.hero-title{letter-spacing:-.03em;background:linear-gradient(135deg, #e0e7ff 0%, var(--indigo) 40%, var(--cyan) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,6vw,3.8rem);font-weight:700;line-height:1.1}.hero-tagline{color:var(--muted);letter-spacing:.01em;margin-top:10px;font-size:1.05rem;font-weight:400}.auth-card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);border-radius:22px;width:100%;max-width:420px;padding:8px;box-shadow:0 4px 40px #00000059,inset 0 0 0 1px #ffffff0a}.tab-switcher{background:#ffffff0a;border-radius:14px;gap:4px;margin-bottom:4px;padding:4px;display:flex}.tab-btn{cursor:pointer;transition:var(--trans);color:var(--muted);background:0 0;border:none;border-radius:11px;flex:1;padding:9px 0;font-size:.875rem;font-weight:500}.tab-btn.active{color:var(--text);background:#ffffff17;box-shadow:0 1px 8px #00000040}.tab-btn:hover:not(.active){color:var(--text)}.tab-content{padding:18px 18px 22px}.auth-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;font-weight:500}.form-group input{border:1px solid var(--border);color:var(--text);transition:var(--trans);background:#ffffff0d;border-radius:10px;outline:none;padding:11px 14px;font-family:inherit;font-size:.93rem}.form-group input::placeholder{color:#fff3}.form-group input:focus{background:#6366f112;border-color:#6366f18c;box-shadow:0 0 0 3px #6366f11f}.form-error{color:var(--error);background:#f8717114;border:1px solid #f8717133;border-radius:8px;padding:8px 12px;font-size:.82rem}.btn-primary{background:linear-gradient(135deg, var(--indigo-dim), var(--indigo));color:#fff;cursor:pointer;transition:var(--trans);border:none;border-radius:11px;padding:12px 20px;font-family:inherit;font-size:.93rem;font-weight:600;box-shadow:0 2px 16px #6366f159}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 22px #6366f180}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.form-switch{color:var(--muted);text-align:center;margin-top:2px;font-size:.82rem}.link-btn{color:var(--indigo);font-size:inherit;cursor:pointer;transition:var(--trans);background:0 0;border:none;padding:0;font-family:inherit;font-weight:500}.link-btn:hover{color:var(--cyan)}.studio-root{background:var(--bg);height:100vh;display:flex;overflow:hidden}.studio-sidebar{border-right:1px solid var(--border);background:#ffffff08;flex-direction:column;flex-shrink:0;gap:16px;width:230px;padding:20px 14px;display:flex}.sidebar-logo{align-items:center;gap:10px;margin-bottom:8px;padding:6px 8px;display:flex}.sidebar-brand{letter-spacing:-.02em;color:var(--text);font-size:1rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:3px;display:flex}.nav-item{color:var(--muted);transition:var(--trans);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:var(--text);background:#ffffff0f}.nav-item.active{color:var(--text);background:#6366f126}.nav-icon{opacity:.7;font-size:1rem}.sidebar-footer{flex-direction:column;gap:8px;display:flex}.user-chip{background:#ffffff0d;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex;overflow:hidden}.user-avatar{background:linear-gradient(135deg, var(--indigo), var(--cyan));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.78rem;font-weight:700;display:flex}.user-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.logout-btn{border:1px solid var(--border);width:100%;color:var(--muted);cursor:pointer;transition:var(--trans);background:0 0;border-radius:10px;padding:9px;font-family:inherit;font-size:.82rem}.logout-btn:hover{color:var(--error);background:#f8717114;border-color:#f871714d}.studio-main{flex-direction:column;flex:1;display:flex;overflow:hidden auto}.btn-sm{padding:8px 16px;font-size:.82rem}.btn-ghost{border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:var(--trans);background:0 0;border-radius:11px;padding:10px 18px;font-family:inherit;font-size:.9rem;font-weight:500}.btn-ghost:hover{color:var(--text);border-color:#ffffff26}.projects-section{flex-direction:column;gap:22px;height:100%;padding:28px 32px;display:flex}.projects-header{justify-content:space-between;align-items:center;display:flex}.projects-title{letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--border);cursor:pointer;transition:var(--trans);background:#ffffff0a;border-radius:14px;flex-direction:column;gap:14px;min-height:140px;padding:20px;display:flex;position:relative}.project-card:hover{background:#6366f112;border-color:#6366f166;transform:translateY(-2px);box-shadow:0 6px 24px #0000004d}.project-card-top{justify-content:space-between;align-items:flex-start;display:flex}.project-card-info{flex-direction:column;gap:6px;display:flex}.project-name{color:var(--text);word-break:break-word;font-size:2rem;font-weight:600;line-height:1.3}.project-date{color:var(--muted);white-space:nowrap;font-size:.78rem}.projects-empty{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;font-size:.9rem;display:flex}.empty-folder-icon{opacity:.35}.three-dot-wrapper{position:relative}.three-dot-btn{color:var(--muted);cursor:pointer;transition:var(--trans);letter-spacing:1px;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:1.2rem;line-height:1}.three-dot-btn:hover{color:var(--text);background:#ffffff1a}.three-dot-menu{z-index:50;border:1px solid var(--border);background:#141828;border-radius:10px;min-width:150px;padding:4px;animation:.12s fadeIn;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 32px #00000080}@keyframes fadeIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.three-dot-item{text-align:left;cursor:pointer;width:100%;color:var(--muted);transition:var(--trans);background:0 0;border:none;border-radius:7px;padding:8px 12px;font-family:inherit;font-size:.83rem}.three-dot-item:hover{color:var(--text);background:#ffffff0f}.three-dot-item.danger:hover{color:var(--error);background:#f871711a}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);background:#0f1320;border-radius:18px;width:100%;max-width:400px;padding:28px;animation:.18s slideUp;box-shadow:0 20px 60px #0009}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-title{margin-bottom:20px;font-size:1.1rem;font-weight:700}.modal-form{flex-direction:column;gap:16px;display:flex}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.project-workspace{flex:1}.project-not-found{height:100%;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;font-size:.9rem;display:flex}.comp-panel{border-right:1px solid var(--border);z-index:8;background:#07090f;flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.comp-panel-header{border-bottom:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-shrink:0;padding:10px 14px;font-size:.72rem;font-weight:700}.comp-panel-body{scrollbar-width:thin;scrollbar-color:#ffffff12 transparent;flex:1;padding:6px 0;overflow-y:auto}.comp-section{margin-bottom:2px}.comp-section-header{width:100%;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:var(--trans);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:5px 10px;font-size:.72rem;font-weight:600;display:flex}.comp-section-header:hover{color:var(--text);background:#ffffff0a}.comp-section-count{color:var(--muted);background:#ffffff12;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:.65rem;font-weight:700}.comp-section-items{padding:2px 0}.comp-item{width:100%;color:var(--muted);cursor:pointer;transition:var(--trans);text-align:left;background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:7px;padding:6px 10px 6px 24px;font-size:.78rem;display:flex}.comp-item:hover{color:var(--text);background:#ffffff0a}.comp-item.selected{color:#818cf8;background:#6366f11a;border-left-color:#6366f1}.comp-item-icon{opacity:.6;flex-shrink:0;align-items:center;display:flex}.comp-item.selected .comp-item-icon{opacity:1;color:#818cf8}.comp-item-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:JetBrains Mono,monospace;font-size:.73rem;overflow:hidden}.comp-item-badge{letter-spacing:.05em;text-transform:uppercase;color:#6366f1;background:#6366f126;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:.6rem;font-weight:700}.comp-empty-hint{color:#fff3;padding:6px 24px;font-size:.72rem;font-style:italic}.comp-item-group .comp-item-delete{opacity:0;pointer-events:none;cursor:pointer;width:20px;height:20px;color:var(--muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .12s,background .12s,opacity .12s;display:flex}.comp-item-group:hover .comp-item-delete{opacity:1;pointer-events:auto}.comp-item-group .comp-item-delete:hover{color:#f87171;background:#f871711f}.comp-item-deleting{opacity:.5;pointer-events:none}.lib-section-header{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:default;align-items:center;gap:6px;padding:6px 12px;font-size:.68rem;font-weight:700;display:flex}.lib-item{cursor:pointer;gap:8px;padding:6px 10px 6px 12px}.lib-item:disabled{cursor:not-allowed;opacity:.6}.lib-item:not(:disabled):hover{color:var(--text);background:#ffffff0d;border-left-color:#6366f1}.lib-item.lib-adding{color:#f59e0b;background:#f59e0b0d;border-left-color:#f59e0b}.lib-item.lib-error{color:#f87171;background:#f871710d;border-left-color:#f87171}.lib-item-icon{width:28px;height:28px;color:var(--muted);background:#ffffff0a;border:1px solid #ffffff14;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lib-item:hover .lib-item-icon{color:#818cf8;border-color:#6366f159}.lib-item-sub{color:#ffffff47;flex-shrink:0;margin-left:auto;font-size:.6rem}.lib-badge-adding{color:#f59e0b;background:#f59e0b1f;border-radius:4px;align-items:center;gap:3px;padding:1px 5px;font-size:.6rem;font-weight:700;display:flex}.lib-badge-error{color:#f87171;background:#f871711f;border-radius:4px;padding:1px 6px;font-size:.6rem;font-weight:700}.lib-empty-note{color:#fff3;padding:8px 14px;font-size:.72rem;font-style:italic}.proj-sidebar{border-right:1px solid var(--border);z-index:10;background:#ffffff08;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;width:56px;padding:14px 0;display:flex}.proj-sidebar-logo{cursor:pointer;transition:var(--trans);border-radius:10px;margin-bottom:10px;padding:6px}.proj-sidebar-logo:hover{background:#ffffff12}.proj-sidebar-nav{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.proj-sidebar-footer{flex-direction:column;align-items:center;gap:4px;display:flex}.proj-nav-item-wrapper{align-items:center;display:flex;position:relative}.proj-nav-icon-btn{width:38px;height:38px;color:var(--muted);cursor:pointer;transition:var(--trans);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;display:flex}.proj-nav-icon-btn:hover,.proj-nav-icon-btn.active{color:var(--text);background:#6366f126}.proj-nav-icon-btn.active{color:#a5b4fc}.user-icon-btn{cursor:default}.proj-nav-tooltip{border:1px solid var(--border);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;z-index:100;background:#1a1f35;border-radius:7px;padding:5px 10px;font-size:.75rem;font-weight:500;transition:opacity .15s,transform .15s;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)translate(-4px);box-shadow:0 4px 16px #0006}.proj-nav-item-wrapper:hover .proj-nav-tooltip{opacity:1;transform:translateY(-50%)translate(0)}.proj-workspace{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.proj-topbar{border-bottom:1px solid var(--border);z-index:5;background:#ffffff05;flex-shrink:0;align-items:center;gap:12px;height:44px;padding:0 18px;display:flex}.proj-back-btn{color:var(--muted);cursor:pointer;transition:var(--trans);background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:.78rem;display:flex}.proj-back-btn:hover{color:var(--text);background:#ffffff0f}.proj-topbar-name{color:var(--text);font-size:.88rem;font-weight:600}.proj-canvas-container{position:absolute;inset:0;overflow:hidden}.proj-body:has(.chat-pane) .proj-canvas-container{right:340px}.proj-canvas-container canvas{border-radius:0!important;display:block!important}.canvas-hint{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--muted);pointer-events:none;white-space:nowrap;background:#00000080;border-radius:999px;padding:5px 16px;font-size:.72rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.proj-topbar-sep{color:var(--muted);opacity:.5;font-size:.8rem}.proj-topbar-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:var(--trans);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-family:inherit;font-size:.78rem;font-weight:500;display:flex}.topbar-save-status{border-radius:7px;align-items:center;gap:5px;padding:4px 10px;font-size:.73rem;font-weight:500;animation:.2s fadeIn;display:flex}.topbar-save-status.saving{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b40}.topbar-save-status.saved{color:#34d399;background:#34d39914;border:1px solid #34d39933}.save-btn.saving{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b59}.save-btn.saved{color:#34d399;background:#34d3990f;border-color:#34d3994d}.proj-topbar-btn:hover{color:var(--text);background:#ffffff0d;border-color:#ffffff26}.proj-topbar-btn.active{color:#a5b4fc;background:#6366f11a;border-color:#6366f166}.proj-body{flex-direction:row;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.comp-editor-pane{border-left:1px solid var(--border);z-index:5;background:#090c1a;flex-direction:column;width:340px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.proj-body:has(.comp-editor-pane) .proj-canvas-container{right:340px}.ce-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.ce-header-left{align-items:center;gap:8px;min-width:0;display:flex}.ce-file-dot{background:#6366f1;border-radius:50%;flex-shrink:0;width:8px;height:8px}.ce-file-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.ce-header-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.ce-icon-btn{width:26px;height:26px;color:var(--muted);cursor:pointer;transition:var(--trans);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.ce-icon-btn:hover{color:var(--text);background:#ffffff0f}.ce-close-btn:hover{color:#ef4444;background:#ef44441a}.ce-body{scrollbar-width:thin;scrollbar-color:#ffffff14 transparent;flex:1;padding:8px 0;overflow-y:auto}.ce-section{border-bottom:1px solid #ffffff0a;padding:10px 14px}.ce-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:.68rem;font-weight:700}.ce-axis-row{grid-template-columns:16px 62px 1fr;align-items:center;gap:8px;margin-bottom:6px;display:grid}.ce-axis-label{text-align:center;font-size:.72rem;font-weight:700}.ce-num-input{width:100%;color:var(--text);text-align:right;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:4px 6px;font-family:JetBrains Mono,monospace;font-size:.75rem;transition:border-color .15s}.ce-num-input:focus{border-color:#6366f180;outline:none}.ce-slider{appearance:none;cursor:pointer;background:#ffffff1a;border-radius:2px;outline:none;width:100%;height:4px}.ce-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#6366f1;border:2px solid #090c1a;border-radius:50%;width:13px;height:13px;transition:box-shadow .15s;box-shadow:0 0 6px #6366f180}.ce-slider::-webkit-slider-thumb:hover{box-shadow:0 0 10px #6366f1cc}.ce-uniform-row{grid-template-columns:50px 62px 1fr;align-items:center;gap:8px;margin-bottom:4px;display:grid}.ce-uniform-label{color:var(--muted);font-size:.7rem}.ce-divider{background:#ffffff0f;height:1px;margin:8px 0}.ce-mirror-row{gap:6px;display:flex}.ce-mirror-btn{color:var(--muted);cursor:pointer;transition:var(--trans);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:7px;flex:1;padding:6px 4px;font-size:.72rem;font-weight:600}.ce-mirror-btn:hover{color:var(--text);background:#6366f11a;border-color:#6366f166}.ce-axis-mode-row{gap:6px;margin-bottom:4px;display:flex}.ce-mode-btn{color:var(--muted);cursor:pointer;transition:var(--trans);background:#ffffff08;border:1px solid #ffffff1a;border-radius:7px;flex:1;padding:5px 8px;font-size:.72rem;font-weight:600}.ce-mode-btn.active{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b80}.ce-mode-btn:hover:not(.active){color:var(--text);background:#ffffff0f}.ce-sub-label{letter-spacing:.05em;text-transform:uppercase;color:#ffffff4d;margin-top:4px;margin-bottom:4px;font-size:.66rem;font-weight:600}.ce-dir-presets{grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:6px;display:grid}.ce-dir-btn{color:var(--muted);cursor:pointer;transition:var(--trans);text-align:center;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:5px;padding:4px 2px;font-size:.68rem;font-weight:600}.ce-dir-btn:hover{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b66}.ce-slider-orange::-webkit-slider-thumb{background:#f59e0b;box-shadow:0 0 6px #f59e0b80}.ce-slider-orange::-webkit-slider-thumb:hover{box-shadow:0 0 10px #f59e0bcc}.ce-footer{border-top:1px solid var(--border);background:#0003;flex-direction:column;flex-shrink:0;gap:2px;padding:8px 14px;display:flex}.ce-footer span{color:#ffffff40;font-family:JetBrains Mono,monospace;font-size:.65rem}.chat-pane{border-left:1px solid var(--border);z-index:5;background:#0a0d18;flex-direction:column;width:340px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.chat-sub-topbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;display:flex}.chat-new-btn{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;color:var(--muted)!important;border:1px solid var(--border)!important;border-radius:7px!important;padding:0!important;display:flex!important}.chat-new-btn:hover{color:var(--text)!important;background:#ffffff0f!important;border-color:#ffffff26!important}.chat-heading-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;padding:0 4px;font-size:.82rem;font-weight:600;overflow:hidden}.chat-history-btn{border:1px solid #0000!important}.chat-history-btn.active{color:#a5b4fc!important;background:#6366f11f!important;border-color:#6366f14d!important}.chat-icon-btn{color:var(--muted);cursor:pointer;width:32px;height:32px;transition:var(--trans);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;font-family:inherit;display:flex}.chat-icon-btn:hover{color:var(--text);background:#ffffff12}.chat-messages{scrollbar-width:thin;scrollbar-color:#ffffff14 transparent;flex-direction:column;flex:1;gap:14px;padding:14px 14px 8px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.chat-empty{color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;margin:auto;font-size:.82rem;display:flex}.chat-empty-icon{opacity:.3;font-size:2rem}.chat-message{align-items:flex-end;gap:8px;display:flex}.chat-message-user{flex-direction:row-reverse}.chat-ai-avatar{color:#fff;background:linear-gradient(135deg,#6366f1,#06b6d4);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-bottom:2px;font-size:.7rem;font-weight:700;display:flex}.chat-bubble{border-radius:14px;max-width:82%;padding:9px 13px;font-size:.82rem;line-height:1.55}.chat-message-body{flex-direction:column;gap:6px;max-width:82%;display:flex}.chat-steps{flex-direction:column;gap:5px;display:flex}.chat-tool-pill{color:#34d399;background:#34d39912;border:1px solid #34d39933;border-radius:20px;align-items:center;gap:7px;width:fit-content;padding:5px 11px;font-size:.76rem;font-weight:500;display:inline-flex}.chat-tool-pill-error{color:#f87171;background:#f8717112;border-color:#f8717133}.chat-tool-pill strong{font-weight:700}.chat-message-body .chat-bubble{max-width:100%}.bubble-ai{color:#d4daf0;background:#13172a;border:1px solid #ffffff12;border-bottom-left-radius:4px}.bubble-user{color:var(--text);background:#1a1f38;border:1px solid #6366f133;border-bottom-right-radius:4px}.chat-typing{align-items:center;gap:5px;padding:12px 16px;display:flex}.chat-typing span{background:#6366f199;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite chatDotBounce;display:inline-block}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chatDotBounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}@keyframes chatSpin{to{transform:rotate(360deg)}}.chat-send-btn svg path[d^=M21\ 12]{transform-origin:50%;animation:.8s linear infinite chatSpin}.chat-input-area{border-top:1px solid var(--border);background:#0a0d18;flex-direction:column;flex-shrink:0;gap:8px;padding:10px 12px 12px;display:flex}.chat-input-row{background:#111525;border:1px solid #ffffff14;border-radius:12px;align-items:flex-end;gap:6px;padding:6px 8px;display:flex}.chat-textarea{color:var(--text);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:120px;padding:4px 2px;font-family:inherit;font-size:.83rem;line-height:1.5;overflow-y:auto}.chat-textarea::placeholder{color:#fff3}.chat-send-btn{color:#fff;cursor:pointer;width:32px;height:32px;transition:var(--trans);background:linear-gradient(135deg,#4f46e5,#6366f1);border:none;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 10px #6366f166}.chat-send-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #6366f18c}.chat-send-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.chat-input-footer{align-items:center;padding:0 2px;display:flex}.chat-model-selector{cursor:default;color:var(--muted);background:#ffffff08;border:1px solid #ffffff12;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;display:flex}.chat-model-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 5px #22c55eb3}.chat-model-name{color:var(--text);font-weight:500}.chat-attach-wrapper{position:relative}.chat-attach-btn{flex-shrink:0}.chat-attach-dropup{border:1px solid var(--border);z-index:50;background:#141828;border-radius:10px;min-width:170px;padding:4px;animation:.12s fadeIn;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 8px 30px #00000080}.chat-attach-item{width:100%;color:var(--muted);cursor:pointer;transition:var(--trans);text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:8px 12px;font-family:inherit;font-size:.82rem;display:flex}.chat-attach-item:hover{color:var(--text);background:#ffffff0f}.chat-history-panel{z-index:20;background:#0a0d18;flex-direction:column;animation:.15s fadeIn;display:flex;position:absolute;inset:0}.chat-history-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;font-size:.85rem;font-weight:600;display:flex}.chat-history-list{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow-y:auto}.chat-history-item{cursor:pointer;width:100%;transition:var(--trans);text-align:left;background:0 0;border:none;border-radius:9px;justify-content:space-between;align-items:center;padding:10px 12px;font-family:inherit;display:flex}.chat-history-item:hover{background:#ffffff0f}.history-title{color:var(--text);font-size:.82rem}.history-date{color:var(--muted);flex-shrink:0;margin-left:8px;font-size:.72rem}.chat-history-item-row{transition:var(--trans);border-radius:9px;align-items:center;gap:2px;padding:2px 4px;display:flex}.chat-history-item-row:hover{background:#ffffff0d}.chat-history-item-row .chat-history-item{flex:1;padding:8px}.chat-history-item-row .chat-history-item:hover{background:0 0}.chat-history-delete{color:#ef4444;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:opacity .15s,background .15s;display:flex}.chat-history-item-row:hover .chat-history-delete{opacity:1}.chat-history-delete:hover{background:#ef44441f}.export-download-all-wrap{border-bottom:1px solid #ffffff0f;padding:14px 12px 10px}.export-download-all-btn{color:#fff;letter-spacing:.01em;cursor:pointer;background:linear-gradient(135deg,#3b5bdb 0%,#2e44a8 100%);border:none;border-radius:8px;align-items:center;gap:7px;width:100%;padding:9px 13px;font-size:.78rem;font-weight:600;transition:opacity .18s,transform .12s;display:flex}.export-download-all-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.export-download-all-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.export-download-all-btn.exporting{opacity:.7;cursor:not-allowed}.export-hint{color:#ffffff57;margin:7px 0 0;font-size:.7rem;line-height:1.4}.export-zip-error{color:#f87171;margin:6px 0 0;font-size:.7rem}.export-file-list{flex-direction:column;gap:2px;padding:4px 8px 8px;display:flex}.export-file-row{background:#ffffff08;border-radius:7px;align-items:center;gap:6px;padding:7px 8px;transition:background .14s;display:flex}.export-file-row:hover{background:#ffffff12}.export-file-icon{opacity:.45;flex-shrink:0;align-items:center;display:flex}.export-file-name{color:#ffffffd1;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.75rem;overflow:hidden}.export-file-ext{color:#ffffff4d;flex-shrink:0;font-family:monospace;font-size:.65rem}.export-file-dl-btn{color:#ffffff73;cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:background .14s,color .14s;display:flex}.export-file-dl-btn:hover{color:#7b9fff;background:#3b5bdb38}.sim-capture-wrap{border-bottom:1px solid #ffffff0f;padding:14px 12px 12px}.sim-capture-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border:none;border-radius:8px;align-items:center;gap:7px;width:100%;padding:9px 13px;font-size:.78rem;font-weight:600;transition:opacity .18s,transform .12s;display:flex}.sim-capture-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.sim-capture-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.sim-capture-btn.capturing{opacity:.7;cursor:not-allowed}.sim-hint{color:#ffffff57;margin:7px 0 0;font-size:.7rem;line-height:1.4}.sim-error{color:#f87171;margin:6px 0 0;font-size:.7rem}.sim-states-grid{flex-direction:column;gap:8px;padding:8px 10px 10px;display:flex}.sim-state-card{background:#ffffff0a;border:1px solid #ffffff12;border-radius:9px;gap:10px;padding:8px;transition:background .14s;display:flex}.sim-state-card:hover{background:#ffffff12}.sim-state-thumb{background:#00000059;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:56px;display:flex;overflow:hidden}.sim-state-thumb img{object-fit:cover;width:100%;height:100%;display:block}.sim-thumb-placeholder{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.sim-state-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sim-state-date{color:#ffffffb3;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;font-weight:500;overflow:hidden}.sim-state-count{color:#ffffff59;font-size:.63rem}.sim-state-actions{align-items:center;gap:5px;margin-top:auto;padding-top:4px;display:flex}.sim-restore-btn{color:#a5b4fc;cursor:pointer;white-space:nowrap;background:#6366f12e;border:1px solid #6366f14d;border-radius:6px;flex:1;align-items:center;gap:5px;padding:5px 8px;font-size:.68rem;font-weight:600;transition:background .14s,color .14s;display:flex}.sim-restore-btn:hover:not(:disabled){color:#c7d2fe;background:#6366f152}.sim-restore-btn:disabled{opacity:.45;cursor:not-allowed}.sim-restore-btn.restoring{opacity:.6;cursor:not-allowed}.sim-delete-btn{color:#ffffff59;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:background .14s,color .14s,border-color .14s;display:flex}.sim-delete-btn:hover{color:#f87171;background:#ef444426;border-color:#ef444459}.sim-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sim-modal{background:#0e1120;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;width:540px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 24px 80px #000000b3}.sim-modal-header{color:#e0e4ff;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:16px 20px;font-size:.85rem;font-weight:600;display:flex}.sim-modal-close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.9rem;transition:color .15s}.sim-modal-close:hover{color:#fff}.sim-modal-body{flex-direction:column;gap:18px;padding:18px 20px;display:flex;overflow-y:auto}.sim-field{flex-direction:column;gap:6px;display:flex}.sim-field-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.sim-field-input{color:#e0e4ff;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:7px;outline:none;padding:8px 11px;font-size:.8rem;transition:border-color .15s}.sim-field-input:focus{border-color:#6366f199}.sim-pickers-row{align-items:flex-start;gap:10px;display:flex}.sim-pickers-arrow{color:#ffffff4d;flex-shrink:0;margin-top:26px;font-size:1rem}.sim-picker{flex-direction:column;flex:1;gap:5px;display:flex}.sim-picker-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.sim-picker-list{flex-direction:column;gap:4px;max-height:200px;display:flex;overflow-y:auto}.sim-picker-item{cursor:pointer;background:#ffffff08;border:1px solid #ffffff12;border-radius:7px;align-items:center;gap:7px;padding:5px 7px;transition:background .13s,border-color .13s;display:flex}.sim-picker-item:hover{background:#ffffff12}.sim-picker-item.selected{background:#6366f133;border-color:#6366f180}.sim-picker-thumb{background:#0006;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:32px;display:flex;overflow:hidden}.sim-picker-thumb img{object-fit:cover;width:100%;height:100%}.sim-picker-no-img{color:#fff3;font-size:.7rem}.sim-picker-date{color:#ffffff8c;text-align:left;font-size:.65rem;line-height:1.3}.sim-slider{-webkit-appearance:none;cursor:pointer;background:linear-gradient(90deg,#6366f1,#4f46e5);border-radius:2px;outline:none;width:100%;height:4px}.sim-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#818cf8;border:2px solid #0e1120;border-radius:50%;width:16px;height:16px;box-shadow:0 0 8px #6366f199}.sim-slider-labels{color:#ffffff4d;justify-content:space-between;margin-top:3px;font-size:.65rem;display:flex}.sim-modal-footer{border-top:1px solid #ffffff12;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.sim-modal-cancel{color:#fff9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:7px;padding:8px 16px;font-size:.78rem;transition:background .14s}.sim-modal-cancel:hover{background:#ffffff1a}.sim-modal-create{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:7px;padding:8px 20px;font-size:.78rem;font-weight:600;transition:opacity .15s}.sim-modal-create:disabled{opacity:.5;cursor:not-allowed}.sim-create-sim-btn{color:#a5b4fc;cursor:pointer;background:#6366f11f;border:1px dashed #6366f159;border-radius:8px;align-items:center;gap:6px;width:100%;padding:8px 12px;font-size:.75rem;font-weight:600;transition:background .14s,border-color .14s;display:flex}.sim-create-sim-btn:hover{background:#6366f138;border-color:#6366f18c}.sim-sim-list{flex-direction:column;gap:6px;padding:4px 10px 10px;display:flex}.sim-sim-card{background:#ffffff0a;border:1px solid #ffffff12;border-radius:9px;align-items:center;gap:8px;padding:7px 8px;transition:background .14s;display:flex}.sim-sim-card:hover{background:#ffffff12}.sim-sim-thumbs{flex-shrink:0;align-items:center;gap:4px;display:flex}.sim-sim-thumb{object-fit:cover;background:#0006;border-radius:4px;width:36px;height:28px;display:block}.sim-sim-thumb-ph{background:#ffffff0f;border-radius:4px;width:36px;height:28px}.sim-sim-arrow{color:#ffffff4d;font-size:.7rem}.sim-sim-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sim-sim-name{color:#ffffffd1;white-space:nowrap;text-overflow:ellipsis;font-size:.73rem;font-weight:500;overflow:hidden}.sim-sim-meta{color:#ffffff4d;font-size:.62rem}.sim-sim-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.sim-play-btn{color:#a5b4fc;cursor:pointer;background:#6366f12e;border:1px solid #6366f14d;border-radius:5px;align-items:center;gap:4px;padding:4px 9px;font-size:.65rem;font-weight:600;transition:background .14s;display:flex}.sim-play-btn:hover{background:#6366f152}.sim-player-hud{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:all;background:#0a0c18e0;border:1px solid #6366f159;border-radius:12px;align-items:center;gap:12px;min-width:280px;padding:8px 14px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0009}.sim-player-info{color:#a5b4fc;flex-shrink:0;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.sim-player-dur{color:#ffffff59;font-size:.65rem;font-weight:400}.sim-player-bar-wrap{background:#ffffff1f;border-radius:2px;flex:1;height:4px;overflow:hidden}.sim-player-bar{background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:2px;height:100%;transition:width 50ms linear}.sim-player-close{color:#ffffff59;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 5px;font-size:.85rem;transition:color .14s}.sim-player-close:hover{color:#f87171}.draw-overlay{z-index:2000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000c7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.draw-modal{background:#0d0f1a;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;width:min(960px,96vw);display:flex;overflow:hidden;box-shadow:0 32px 100px #000c}.draw-header{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.draw-title{color:#e0e4ff;font-size:.82rem;font-weight:600}.draw-header-right{align-items:center;gap:8px;display:flex}.draw-clear-btn{color:#ffffff8c;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:5px 12px;font-size:.73rem;transition:background .13s}.draw-clear-btn:hover{background:#ffffff1a}.draw-upload-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:6px;padding:5px 14px;font-size:.73rem;font-weight:600;transition:opacity .13s}.draw-upload-btn:hover{opacity:.88}.draw-close-btn{color:#ffffff59;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:.9rem;transition:color .13s}.draw-close-btn:hover{color:#f87171}.draw-toolbar{background:#00000040;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:16px;padding:8px 16px;display:flex}.draw-tools{gap:4px;display:flex}.draw-tool-btn{color:#ffffffb3;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:.88rem;transition:background .12s,border-color .12s;display:flex}.draw-tool-btn:hover{background:#ffffff1a}.draw-tool-btn.active{color:#a5b4fc;background:#6366f140;border-color:#6366f18c}.draw-options{align-items:center;gap:14px;display:flex}.draw-color-pick{cursor:pointer;background:0 0;border:none;border-radius:50%;width:34px;height:34px;padding:0;overflow:hidden}.draw-color-pick::-webkit-color-swatch-wrapper{border-radius:50%;padding:0}.draw-color-pick::-webkit-color-swatch{border:2px solid #fff3;border-radius:50%}.draw-size-wrap{align-items:center;gap:7px;display:flex}.draw-size-label{color:#ffffff59;font-size:.68rem}.draw-size-slider{-webkit-appearance:none;cursor:pointer;background:#ffffff26;border-radius:2px;outline:none;width:80px;height:3px}.draw-size-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#818cf8;border:2px solid #0d0f1a;border-radius:50%;width:13px;height:13px}.draw-size-val{color:#ffffff73;width:18px;font-size:.68rem}.draw-canvas-wrap{width:100%;height:520px;position:relative;overflow:hidden}.draw-bg-canvas,.draw-fg-canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.draw-bg-canvas{z-index:0;pointer-events:none}.draw-fg-canvas{z-index:1}.chat-attach-preview{flex-wrap:wrap;gap:6px;padding:8px 10px 2px;display:flex}.chat-attach-chip{background:#6366f124;border:1px solid #6366f147;border-radius:8px;align-items:center;gap:5px;max-width:160px;padding:3px 6px 3px 4px;display:flex}.chat-attach-chip-img{object-fit:cover;border-radius:4px;width:32px;height:26px}.chat-attach-chip-icon{color:#a5b4fc;align-items:center;padding:2px;display:flex}.chat-attach-chip-name{color:#ffffffa6;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.63rem;overflow:hidden}.chat-attach-chip-rm{color:#ffffff4d;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:1px 2px;font-size:.6rem;transition:color .12s}.chat-attach-chip-rm:hover{color:#f87171}.chat-bubble-attachments{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-bottom:6px;display:flex}.chat-msg-img{object-fit:cover;border:1px solid #ffffff1f;border-radius:10px;max-width:220px;max-height:160px}.chat-msg-file{color:#ffffffa6;background:#ffffff12;border:1px solid #ffffff1f;border-radius:7px;align-items:center;gap:5px;padding:4px 9px;font-size:.7rem;display:flex}
