@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.welcome{grid-template-columns:minmax(0,1.15fr) minmax(380px,1fr);min-height:100%;display:grid}.welcome-hero{color:#fff;background:radial-gradient(circle at 12% 18%,#ffffff2e 0 120px,#0000 121px),radial-gradient(circle at 92% 88%,#ffffff1f 0 180px,#0000 181px),linear-gradient(145deg,#5b5bf7 0%,#7b4de8 48%,#14b8a6 130%);flex-direction:column;justify-content:center;gap:22px;padding:56px clamp(24px,6vw,88px);display:flex;position:relative;overflow:hidden}.welcome-hero .logo{color:#fff}.welcome-hero .logo-accent{color:#b9f5ec}.welcome-hero h1{letter-spacing:-.03em;font-size:clamp(36px,4.6vw,60px);font-weight:900}.welcome-hero h1 span{color:#b9f5ec}.welcome-lead{opacity:.92;max-width:520px;font-size:19px}.welcome-compat{opacity:.75;font-size:13px;font-weight:700}.hero-blocks{filter:drop-shadow(0 10px 24px #0000002e);flex-direction:column;align-items:flex-start;margin:12px 0;display:flex;position:relative}.hb{color:#fff;border-radius:10px;align-items:center;gap:8px;margin-top:-2px;padding:12px 18px;font-size:16px;font-weight:800;display:inline-flex}.hb-hat{color:#3d2b00;background:#ffbf00;border-radius:22px 22px 10px 10px;padding-top:16px}.hb-motor{background:#3d8bff}.hb-move{background:#e6509e}.hb-control{background:#ffab19;min-width:190px;padding-bottom:30px}.hb-port,.hb-slot{color:#333;background:#fff;border-radius:99px;place-items:center;min-width:30px;height:26px;padding:0 8px;font-size:14px;display:inline-grid}.hb-port{color:#fff;background:#ffffff40;border-radius:8px}.hb-cursor{color:#fff;border-radius:0 12px 12px;padding:3px 10px 3px 12px;font-size:13px;font-weight:800;animation:5s ease-in-out infinite float;position:absolute}.hb-cursor-a{background:#ff6fb5;top:44px;left:330px}.hb-cursor-b{background:#10ac84;animation-delay:-2s;top:150px;left:240px}@keyframes float{50%{transform:translate(12px,-8px)}}.welcome-panel{flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:40px 24px;display:flex}.auth-card{width:100%;max-width:420px;box-shadow:var(--shadow);flex-direction:column;gap:18px;padding:32px;display:flex}.auth-card.wide{max-width:520px}.auth-card h2{font-size:28px}.auth-sub{color:var(--text-2);margin-top:-10px}.auth-footer{text-align:center;max-width:420px;color:var(--text-3);font-size:12px}.center{text-align:center;justify-content:center;align-items:center;gap:6px;display:flex}.onboarding{background:radial-gradient(circle at 50% -20%, #e4e3ff, transparent 60%), var(--bg);flex-direction:column;min-height:100%;display:flex}.onboarding-header{padding:18px 28px}.onboarding-header a:hover{text-decoration:none}.onboarding-main{flex:1;place-items:center;padding:16px 16px 48px;display:grid}.back-link{color:var(--text-2);align-self:flex-start;align-items:center;gap:6px;font-size:14px;font-weight:700;display:inline-flex}.profile-preview{justify-content:center;display:flex}.avatar-picker{flex-direction:column;gap:8px;display:flex}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{width:36px;height:36px;box-shadow:0 0 0 1px var(--border-strong);color:#fff;cursor:pointer;transition:transform var(--fast) var(--ease);border:3px solid #fff;border-radius:50%;place-items:center;display:grid}.swatch:hover{transform:scale(1.08)}.swatch[aria-checked=true]{box-shadow:0 0 0 2px var(--text)}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;display:grid}.emoji-choice{border:1.5px solid var(--border);background:var(--surface-2);cursor:pointer;height:44px;transition:transform var(--fast) var(--ease), border-color var(--fast);border-radius:12px;place-items:center;font-size:22px;display:grid}.emoji-choice:hover{border-color:var(--border-strong);transform:translateY(-1px)}.emoji-choice[aria-checked=true]{border-color:var(--text);box-shadow:0 0 0 2px var(--text) inset}.initials-choice{color:#fff;font-size:15px;font-weight:900}.code-reveal{text-align:center;flex-direction:column;align-items:stretch;gap:16px;display:flex}.code-reveal h2{font-size:26px}.code-icon{background:var(--brand-soft);width:60px;height:60px;color:var(--brand);border-radius:18px;align-self:center;place-items:center;display:grid}.code-box{border-radius:var(--radius-lg);background:var(--surface-2);border:2px dashed var(--border-strong);flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.code-value{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text);-webkit-user-select:all;user-select:all;font-size:clamp(22px,5vw,30px);font-weight:800}.code-warning{border-radius:var(--radius);background:var(--warn-soft);color:#7a4a00;text-align:left;padding:12px 14px;font-size:14px}.check-row{cursor:pointer;justify-content:center;align-items:center;gap:10px;font-weight:700;display:flex}.check-row input{width:20px;height:20px;accent-color:var(--brand)}@media (max-width:900px){.welcome{grid-template-columns:1fr}.welcome-hero{gap:14px;padding:36px 24px}.hero-blocks,.welcome-lead{display:none}}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:8px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar-logo{padding:4px 10px 18px}.sidebar-logo:hover{text-decoration:none}.sidebar nav{flex-direction:column;gap:4px;display:flex}.nav-link{border-radius:var(--radius);color:var(--text-2);transition:background var(--fast) var(--ease), color var(--fast);align-items:center;gap:12px;padding:11px 14px;font-weight:750;display:flex}.nav-link:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav-link.active{background:var(--brand-soft);color:var(--brand)}.sidebar-profile{border-radius:var(--radius);color:var(--text);align-items:center;gap:10px;margin-top:auto;padding:10px;font-weight:800;display:flex}.sidebar-profile:hover{background:var(--surface-3);text-decoration:none}.sidebar-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shell-main{min-width:0;padding:36px clamp(20px,4vw,56px) 64px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.page-header h1{font-size:32px}.page-sub{color:var(--text-2);margin-top:6px}.section-title{margin:32px 0 14px;font-size:18px}@media (max-width:760px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{z-index:20;border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;height:auto;padding:8px 12px;position:sticky}.sidebar-logo{padding:0}.sidebar-logo .logo-text,.nav-link span,.sidebar-name{display:none}.sidebar nav{flex-direction:row;margin-left:auto}.sidebar-profile{margin-top:0;padding:4px}.shell-main{padding:24px 16px 48px}.page-header h1{font-size:26px}}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;max-width:760px;display:grid}.quick-action{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);align-items:center;gap:16px;padding:20px;display:flex}.quick-action:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.quick-action strong{font-size:18px;display:block}.quick-action small{color:var(--text-2);font-size:14px}.qa-icon{color:#fff;border-radius:16px;flex-shrink:0;place-items:center;width:56px;height:56px;display:grid}.qa-new .qa-icon{background:var(--brand)}.qa-join .qa-icon{background:var(--accent)}.section-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-row .section-title{margin-bottom:14px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;display:grid}.project-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);flex-direction:column;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.project-thumb{height:118px;position:relative;overflow:hidden}.thumb-block{background:#ffffffd9;border-radius:7px;height:22px;position:absolute;box-shadow:0 2px #00000014}.thumb-block.b1{border-radius:14px 14px 7px 7px;width:110px;top:26px;left:22px}.thumb-block.b2{opacity:.7;width:150px;top:50px;left:22px}.thumb-block.b3{opacity:.55;width:90px;top:74px;left:22px}.project-info{flex-direction:column;gap:4px;padding:14px 16px 16px;display:flex}.project-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-info h3{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.project-meta{color:var(--text-2);align-items:center;gap:6px;font-size:14px;display:flex}.skeleton-card{pointer-events:none}.empty-state{text-align:center;color:var(--text-2);flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.empty-state svg{color:var(--brand)}.empty-state h3{color:var(--text);font-size:20px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:20px;display:grid}.settings-card{flex-direction:column;gap:16px;padding:24px;display:flex}.settings-card h2{font-size:20px}.settings-profile-row{align-items:flex-end;gap:16px;display:flex}.setting-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.setting-row:first-of-type{border-top:0}.setting-row strong{align-items:center;gap:6px;display:inline-flex}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f5fa;--surface:#fff;--surface-2:#f8f9fc;--surface-3:#eef1f7;--border:#e2e6ef;--border-strong:#cfd5e2;--text:#1c2233;--text-2:#51596d;--text-3:#858da0;--text-on-brand:#fff;--brand:#5b5bf7;--brand-hover:#4a4ae6;--brand-soft:#ececfe;--accent:#14b8a6;--accent-soft:#dcf7f3;--run:#1fb35c;--run-hover:#189b4f;--stop:#ef4444;--stop-hover:#dc2626;--warn:#f59e0b;--warn-soft:#fff5e0;--danger:#dc2626;--danger-soft:#fdecec;--success:#16a34a;--success-soft:#e6f7ec;--info-soft:#e8f1ff;--radius-sm:10px;--radius:14px;--radius-lg:18px;--radius-xl:24px;--radius-pill:999px;--shadow-sm:0 1px 2px #141c370f;--shadow:0 2px 6px #141c370f, 0 8px 24px #141c370f;--shadow-lg:0 12px 40px #141c3724;--focus-ring:0 0 0 3px #5b5bf759;--font:"Nunito Variable", "Nunito", ui-rounded, "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SFMono-Regular", Menlo, Consolas, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--fast:.12s;--normal:.2s;--header-h:60px;--robot-panel-w:300px;--console-h:36px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:800;line-height:1.2}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus-ring);outline:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.btn{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-border:var(--border);border-radius:var(--radius-sm);border:1px solid var(--btn-border);background:var(--btn-bg);min-height:40px;color:var(--btn-fg);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease), transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease), border-color var(--fast) var(--ease);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:700;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{flex-shrink:0}.btn-primary{--btn-bg:var(--brand);--btn-fg:var(--text-on-brand);--btn-border:transparent;box-shadow:0 2px #00000014}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-accent{--btn-bg:var(--accent);--btn-fg:#fff;--btn-border:transparent}.btn-accent:hover:not(:disabled){background:#0fa393}.btn-danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-border:transparent}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-ghost{--btn-bg:transparent;--btn-border:transparent}.btn-soft{--btn-bg:var(--brand-soft);--btn-fg:var(--brand);--btn-border:transparent}.btn-soft:hover:not(:disabled){background:#dedefd}.btn-lg{border-radius:var(--radius);min-height:52px;padding:0 22px;font-size:17px}.btn-sm{min-height:32px;padding:0 12px;font-size:14px}.btn-block{width:100%}.icon-btn{border-radius:var(--radius-sm);width:38px;height:38px;color:var(--text-2);cursor:pointer;transition:background var(--fast) var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.field{flex-direction:column;gap:6px;display:flex}.field label,.field-label{color:var(--text-2);font-size:14px;font-weight:700}.input,.select,.textarea{border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:var(--surface);width:100%;min-height:44px;transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);padding:10px 14px}.textarea{resize:vertical;min-height:84px}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.input-code{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;min-height:56px;font-size:20px}.hint{color:var(--text-3);font-size:13px}.error-text{color:var(--danger);font-size:14px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.badge{border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);text-transform:capitalize;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-flex}.badge-owner{background:var(--brand-soft);color:var(--brand)}.badge-editor{background:var(--accent-soft);color:#0d8a7c}.badge-viewer{background:var(--warn-soft);color:#a86500}.skeleton{background:linear-gradient(90deg, var(--surface-3) 0%, #f7f8fc 50%, var(--surface-3) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.3s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:3px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.logo{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;font-size:20px;font-weight:900;display:inline-flex}.logo-accent{color:var(--brand)}.avatar{color:#fff;-webkit-user-select:none;user-select:none;text-shadow:0 1px 1px #00000026;border-radius:50%;flex-shrink:0;place-items:center;font-weight:800;line-height:1;display:inline-grid}.avatar-ring{box-shadow:0 0 0 2px var(--surface)}.avatar-stack{align-items:center;display:inline-flex}.avatar-stack>.avatar+.avatar{margin-left:-8px}.avatar-more{background:var(--surface-3);color:var(--text-2);text-shadow:none}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--normal) var(--ease);background:#141a2d6b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);animation:pop-in var(--normal) var(--ease);overflow:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 8px;display:flex}.modal-header h2{font-size:22px}.modal-description{color:var(--text-2);margin-top:4px}.modal-body{flex-direction:column;gap:16px;padding:12px 24px;display:flex}.modal-footer{justify-content:flex-end;gap:10px;padding:12px 24px 22px;display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toasts{z-index:1100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--radius);color:#fff;max-width:min(520px,100vw - 32px);box-shadow:var(--shadow-lg);animation:pop-in var(--normal) var(--ease);background:#1f2537;align-items:center;gap:10px;padding:10px 10px 10px 14px;font-weight:600;display:flex}.toast-success svg:first-child{color:#4ade80}.toast-error svg:first-child{color:#f87171}.toast-info svg:first-child{color:#93c5fd}.toast-close{color:#cbd2e1;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:4px;display:grid}.full-center{place-items:center;min-height:100%;padding:24px;display:grid}.error-card{flex-direction:column;gap:12px;max-width:440px;padding:28px;display:flex}.row-gap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.divider-text{color:var(--text-3);align-items:center;gap:12px;font-size:14px;font-weight:700;display:flex}.divider-text:before,.divider-text:after{content:"";background:var(--border);flex:1;height:1px}.menu{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow-lg);animation:pop-in var(--fast) var(--ease);padding:6px;position:absolute}.menu-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-weight:650;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-3)}.menu-item.danger{color:var(--danger)}.menu-sep{background:var(--border);height:1px;margin:6px 4px}.segmented{border-radius:var(--radius);background:var(--surface-3);gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 14px;font-weight:750}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.switch{background:var(--border-strong);cursor:pointer;width:44px;height:26px;transition:background var(--fast) var(--ease);border:0;border-radius:99px;flex-shrink:0;position:relative}.switch:after{content:"";width:20px;height:20px;box-shadow:var(--shadow-sm);transition:transform var(--fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--brand)}.switch[aria-checked=true]:after{transform:translate(18px)}
