@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #ffffff;--bg-soft: #f7f7f9;--bg-sunk: #efeff3;--surface: #ffffff;--text: #111116;--text-2: #53545d;--muted: #8a8b94;--line: #ebebf0;--line-strong: #d9d9e1;--bubble: #f1f1f5;--primary: #15151a;--primary-text: #ffffff;--accent: #6d5bff;--grad: linear-gradient(135deg, #6d5bff 0%, #b45cf0 55%, #ff7a6b 100%);--danger: #e0454b;--ok: #1e9a57;--code-bg: #15151b;--code-text: #e9e9f0;--shadow-sm: 0 1px 2px rgb(17 17 22 / .06);--shadow-md: 0 4px 18px -6px rgb(17 17 22 / .14), 0 1px 3px rgb(17 17 22 / .06);--shadow-lg: 0 24px 60px -18px rgb(17 17 22 / .28), 0 4px 12px rgb(17 17 22 / .08);--font: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--column: 780px;--sidebar: 288px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #151517;--bg-soft: #1b1b1f;--bg-sunk: #25252b;--surface: #1f1f24;--text: #ececf1;--text-2: #b3b4bd;--muted: #7f808a;--line: #2a2a31;--line-strong: #3a3a43;--bubble: #2a2a31;--primary: #f1f1f5;--primary-text: #111116;--accent: #8f82ff;--danger: #ff6b70;--ok: #3cc57b;--code-bg: #0e0e11;--shadow-md: 0 4px 18px -6px rgb(0 0 0 / .5), 0 1px 3px rgb(0 0 0 / .3);--shadow-lg: 0 24px 60px -18px rgb(0 0 0 / .7), 0 4px 12px rgb(0 0 0 / .35);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:16px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:13px}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s,transform .1s,box-shadow .15s}.btn:not(:disabled):active{transform:scale(.98)}.btn:disabled{opacity:.55}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:not(:disabled):hover{opacity:.9}.btn-secondary{background:var(--bg-sunk);color:var(--text);border-color:var(--line)}.btn-secondary:not(:disabled):hover{background:var(--line)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:not(:disabled):hover{background:var(--bg-sunk);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-lg{width:100%;min-height:54px;border-radius:16px;font-size:16.5px}.btn-sm{min-height:36px;padding:0 12px;border-radius:10px;font-size:14px}.icon-btn{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--text-2);transition:background .15s,color .15s}.icon-btn:hover,.icon-btn.active{background:var(--bg-sunk);color:var(--text)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{width:12px;height:12px}.callout{display:flex;align-items:flex-start;gap:10px;margin:8px 0;padding:11px 14px;border-radius:12px;font-size:14.5px;line-height:1.45;text-align:left}.callout svg{flex:none;margin-top:1px}.callout-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.callout-ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.gate{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));overflow:hidden;background:var(--bg)}.gate-backdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none}.blob{position:absolute;width:70vmax;height:70vmax;border-radius:50%;filter:blur(70px);opacity:.5;animation:drift 22s ease-in-out infinite alternate}.blob-a{top:-30vmax;left:-25vmax;background:#6d5bff}.blob-b{right:-30vmax;bottom:-35vmax;background:#ff7a6b;animation-delay:-9s}.blob-c{top:35%;left:45%;width:45vmax;height:45vmax;background:#b45cf0;opacity:.35;animation-duration:30s}@media(prefers-color-scheme:dark){.blob{opacity:.32}}.gate-card{position:relative;width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px;padding:36px 24px 26px;border:1px solid color-mix(in srgb,var(--line-strong) 55%,transparent);border-radius:28px;background:color-mix(in srgb,var(--surface) 76%,transparent);backdrop-filter:blur(28px) saturate(1.4);-webkit-backdrop-filter:blur(28px) saturate(1.4);box-shadow:0 30px 80px -24px #321e6e59;text-align:center;animation:rise .5s cubic-bezier(.2,.8,.2,1)}.gate-brand{display:flex;flex-direction:column;align-items:center;gap:12px}.gate-logo{border-radius:18px;box-shadow:0 16px 34px -12px #6d5bff99;animation:float 6s ease-in-out infinite}.wordmark{font-weight:750;letter-spacing:-.045em;color:var(--text)}.gate-wordmark{font-size:36px;line-height:1}.gate-tagline{margin:-4px 0 10px;color:var(--text-2);font-size:16px}.gate-title{margin:0;font-size:23px;font-weight:700;letter-spacing:-.02em}.gate-text{margin:0;color:var(--text-2);font-size:15.5px;line-height:1.55}.gate .btn-primary{border:0;background:var(--grad);color:#fff;box-shadow:0 12px 28px -10px #7c5cffa6}.gate-footer{position:relative;display:inline-flex;align-items:center;gap:6px;margin-top:18px;color:var(--text-2);font-size:13px}.gate-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;color:var(--text-2)}.perks{display:grid;gap:8px;margin:0;padding:0;list-style:none;text-align:left}.perks li{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;background:color-mix(in srgb,var(--bg-sunk) 75%,transparent);font-size:14.5px}.perks svg{flex:none;color:var(--accent)}.success{display:flex;flex-direction:column;align-items:center;gap:10px}.success-badge{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;box-shadow:0 12px 28px -10px color-mix(in srgb,var(--ok) 70%,transparent);animation:pop .45s cubic-bezier(.2,1.5,.4,1)}.success p{margin:0}.switch{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;color:var(--text-2);font-size:14.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;width:1px;height:1px;opacity:0}.switch-track{position:relative;flex:none;width:40px;height:24px;border-radius:999px;background:var(--line-strong);transition:background .2s}.switch-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s cubic-bezier(.2,.8,.2,1)}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track .switch-thumb{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.shell{display:flex;height:100dvh;overflow:hidden;background:var(--bg)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:min(86vw,320px);display:flex;flex-direction:column;padding:calc(10px + var(--safe-top)) 10px calc(10px + var(--safe-bottom));background:var(--bg-soft);transform:translate(-104%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s linear .28s}.sidebar-open .sidebar{transform:none;visibility:visible;box-shadow:var(--shadow-lg);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.scrim{position:fixed;inset:0;z-index:30;background:#0a0a0f73;opacity:0;pointer-events:none;transition:opacity .25s}.sidebar-open .scrim{opacity:1;pointer-events:auto}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 12px 8px}.brand{display:inline-flex;align-items:center;gap:10px}.brand .wordmark{font-size:22px}.new-chat{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);font-weight:600;font-size:15px;transition:background .15s}.new-chat:hover{background:var(--bg-sunk)}.history{flex:1;min-height:0;margin:8px -4px 0;padding:0 4px 8px;overflow-y:auto;overscroll-behavior:contain}.history-empty{margin:16px 8px;color:var(--muted);font-size:14px}.history-group{margin:18px 10px 6px;color:var(--muted);font-size:12.5px;font-weight:600}.history-item{display:flex;align-items:center;border-radius:12px;transition:background .15s;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.history-item:hover,.history-item.active{background:var(--bg-sunk)}.history-open{flex:1;min-width:0;min-height:46px;padding:0 12px;border:0;background:transparent;text-align:left;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item.active .history-open{font-weight:600}.menu.context-menu{position:fixed;right:auto;bottom:auto;z-index:120;min-width:200px;animation:fade .12s ease-out}.sheet-actions{display:grid;gap:4px;padding:4px 0 8px}.sheet-action{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:0 14px;border:0;border-radius:14px;background:var(--bg-soft);color:var(--text);font-size:16px;text-align:left}.sheet-action.danger{color:var(--danger)}.files{display:grid;gap:8px;margin:10px 0 4px;padding:0;list-style:none}.file-preview{display:block;max-width:min(100%,420px);margin-bottom:6px;overflow:hidden;border:1px solid var(--line);border-radius:14px}.file-preview img{display:block;width:100%;height:auto}.file-card{display:flex;align-items:center;gap:12px;max-width:min(100%,420px);min-height:60px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s}.file-card:hover{border-color:var(--line-strong);background:var(--bg-soft)}.file-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.file-meta{display:grid;flex:1;min-width:0}.file-name{overflow:hidden;font-size:14.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.file-sub{color:var(--muted);font-size:12.5px}.file-dl{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--bg-sunk);color:var(--text-2)}.usage{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:8px 4px 0;padding:12px;border:1px dashed var(--line-strong);border-radius:12px;font-size:12.5px}.usage div{min-width:0}.usage dt{color:var(--muted)}.usage dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.account{position:relative;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.account-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:6px 10px 6px 6px;border:0;border-radius:14px;background:transparent;color:var(--text);transition:background .15s}.account-btn:hover{background:var(--bg-sunk)}.account-btn svg{color:var(--muted)}.avatar-initial{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--grad);color:#fff;font-weight:700;font-size:15px}.account-name{flex:1;min-width:0;text-align:left;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu{position:absolute;bottom:calc(100% + 6px);left:0;right:0;z-index:10;padding:6px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-lg);animation:pop .16s ease-out;transform-origin:bottom center}.menu button{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font-size:15px;text-align:left}.menu button:hover{background:var(--bg-sunk)}.menu button svg{flex:none;color:var(--text-2)}.menu .danger,.menu .danger svg{color:var(--danger)}.menu hr{margin:4px 6px;border:0;border-top:1px solid var(--line)}.mini-switch{position:relative;flex:none;width:34px;height:20px;margin-left:auto;border-radius:999px;background:var(--line-strong);transition:background .2s}.mini-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.mini-switch.on{background:var(--accent)}.mini-switch.on:after{transform:translate(14px)}.main{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:grid;grid-template-columns:1fr minmax(0,3fr) 1fr;align-items:center;gap:4px;min-height:56px;padding:var(--safe-top) 6px 0;background:var(--bg);flex:none}.topbar-side{display:flex;align-items:center;gap:2px}.topbar-side.end{justify-content:flex-end}.topbar .icon-btn{width:44px;height:44px}.topbar-title{margin:0;font-size:15.5px;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{display:inline-flex;align-items:center;gap:7px;max-width:240px;padding:6px 11px;border:1px solid var(--line);border-radius:999px;color:var(--text-2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--ok)}.column{width:100%;max-width:var(--column);margin:0 auto;padding:0 16px}.hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 20px;text-align:center;animation:fade .4s ease-out}.hero .banner{width:100%;max-width:560px}.hero-logo{border-radius:16px;box-shadow:0 14px 30px -12px #6d5bff8c;animation:float 6s ease-in-out infinite}.hero-title{margin:18px 0 0;font-size:clamp(26px,7vw,36px);font-weight:700;letter-spacing:-.03em;line-height:1.15}.hero-sub{margin:8px 0 0;color:var(--text-2);font-size:17px}.thread{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 0 16px;mask-image:linear-gradient(to bottom,transparent 0,#000 20px);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 20px)}.msg{margin:22px 0}.msg-user,.msg-assistant.is-live{animation:msg-in .25s ease-out}.msg-user{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.attached{display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:85%}.attached-pictures{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.attached-pictures a{display:block;overflow:hidden;border:1px solid var(--line);border-radius:16px}.attached-pictures img{display:block;width:auto;max-width:min(240px,60vw);height:auto;max-height:240px;object-fit:cover}.attached-file{display:flex;align-items:center;gap:8px;max-width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);text-decoration:none}.attached-file svg{flex:none;color:var(--accent)}.attached-file .file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble{max-width:85%;padding:10px 16px;border-radius:22px;background:var(--bubble);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.msg-assistant{display:grid;grid-template-columns:minmax(0,1fr)}.msg-assistant .avatar{display:none}.msg-body{min-width:0}.actions{display:flex;gap:2px;margin:4px 0 0 -8px;transition:opacity .15s}.actions .icon-btn{width:36px;height:36px;color:var(--muted)}@media(hover:hover){.msg-assistant:not(.is-last) .actions{opacity:0}.msg-assistant:hover .actions,.actions:focus-within{opacity:1}}.to-bottom-wrap{position:sticky;bottom:12px;height:0;display:flex;justify-content:center}.to-bottom{display:grid;place-items:center;width:38px;height:38px;transform:translateY(-100%);border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:var(--shadow-md);animation:fade .2s ease-out}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:12px 0 20px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--bg));text-align:left}.banner p{flex:1 1 200px;margin:0;font-size:14.5px}.banner-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff}.banner-actions{display:flex;gap:6px;margin-left:auto}.prose{font-size:16px;line-height:1.68;overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:.65em 0}.prose h1,.prose h2,.prose h3,.prose h4{margin:1.2em 0 .45em;line-height:1.3;letter-spacing:-.015em}.prose h1{font-size:1.4em}.prose h2{font-size:1.25em}.prose h3,.prose h4{font-size:1.08em}.prose ul,.prose ol{margin:.6em 0;padding-left:1.4em}.prose li{margin:.3em 0}.prose li::marker{color:var(--muted)}.prose strong{font-weight:650}.prose a{text-underline-offset:3px}.prose blockquote{margin:.8em 0;padding:2px 0 2px 14px;border-left:3px solid var(--line-strong);color:var(--text-2)}.prose hr{margin:1.4em 0;border:0;border-top:1px solid var(--line)}.prose code{padding:.12em .4em;border-radius:6px;background:var(--bg-sunk);font-family:var(--mono);font-size:.88em}.prose pre{margin:.9em 0;padding:14px 16px;border-radius:14px;background:var(--code-bg);color:var(--code-text);overflow-x:auto;font-size:13.5px;line-height:1.55}.prose pre code{padding:0;background:none;font-size:inherit;overflow-wrap:normal}.prose img{max-width:100%;border-radius:12px}.table-wrap{margin:.9em 0;overflow-x:auto;border:1px solid var(--line);border-radius:12px}.prose table{width:100%;border-collapse:collapse;font-size:14.5px}.prose th,.prose td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose th{background:var(--bg-soft);font-weight:600}.prose tr:last-child td{border-bottom:0}.is-live .prose>:last-child:after{content:"";display:inline-block;width:.5em;height:1.05em;margin-left:3px;border-radius:3px;background:var(--grad);vertical-align:-.18em;animation:blink 1s steps(2,start) infinite}.steps{margin:0 0 10px}.steps-head{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:2px 0;border:0;background:none;color:var(--text-2);font-size:14.5px;text-align:left}.steps-head:not(.static):hover{color:var(--text)}.steps-chevron{flex:none;transition:transform .2s}.steps.open .steps-chevron{transform:rotate(90deg)}.steps-time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.shimmer{background:linear-gradient(90deg,var(--muted) 20%,var(--text) 50%,var(--muted) 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500;animation:shimmer 1.8s linear infinite}.timeline{position:relative;margin:6px 0 4px;padding:0;list-style:none;animation:fade .2s ease-out}.timeline-item{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:4px 0}.timeline-item:not(:last-child):before{content:"";position:absolute;top:32px;bottom:-4px;left:12px;width:2px;border-radius:1px;background:var(--line)}.timeline-dot{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--bg-sunk);color:var(--text-2)}.timeline-item.running .timeline-dot{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.timeline-body{min-width:0;padding-top:3px}.timeline-title{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:14.5px}.timeline-check{color:var(--ok)}.timeline-sub{display:block;color:var(--muted);font-size:13.5px;overflow-wrap:anywhere}.thought{max-height:260px;margin:6px 0 2px;padding:10px 12px;overflow-y:auto;border-radius:12px;background:var(--bg-soft);color:var(--text-2);font-size:14px;line-height:1.55;white-space:pre-wrap}.trace{display:grid;gap:6px;margin:0 0 12px;padding:0;list-style:none;animation:fade .2s ease-out}.rz-head{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:2px 0;border:0;background:none;color:var(--text-2);font-size:14px}.rz-head:hover{color:var(--text)}.rz-chevron{flex:none;transition:transform .2s}.rz.open .rz-chevron{transform:rotate(90deg)}.rz-body{max-height:420px;margin:2px 0 4px 6px;padding:2px 0 2px 14px;overflow-y:auto;border-left:2px solid var(--line-strong);color:var(--text-2);font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;animation:fade .2s ease-out}.rz-note{margin:6px 0 0;color:var(--muted);font-family:var(--font);font-size:12.5px}.trace-text{color:var(--text-2);font-size:14px;font-style:italic;white-space:pre-wrap}.trace-wait{display:flex;align-items:center;gap:8px;min-height:30px;font-size:14.5px}.tc{min-width:0;font-family:var(--mono);font-size:12.5px;line-height:1.5}.tc-head{display:flex;align-items:center;gap:8px;width:100%;min-height:30px;padding:2px 0;border:0;background:none;color:var(--text);text-align:left}.tc-head:not(.static):hover .tc-name{text-decoration:underline}.tc-dot{flex:none;width:8px;height:8px;margin:0 2px;border-radius:50%;background:var(--ok)}.tc.error .tc-dot{background:var(--danger)}.tc-sig{display:flex;flex:1;min-width:0;overflow:hidden;white-space:nowrap}.tc.open .tc-sig{display:block;white-space:normal;overflow-wrap:anywhere}.tc.open .tc-head{align-items:flex-start}.tc.open .tc-dot{margin-top:7px}.tc.open .tc-time{margin-top:1px}.tc-name{flex:none;font-weight:600}.tc.running .tc-name{color:var(--accent)}.tc-arg{min-width:0;overflow:hidden;color:var(--text-2);text-overflow:ellipsis}.tc-time{flex:none;color:var(--muted);font-family:var(--font);font-size:12px;font-variant-numeric:tabular-nums}.tc-args,.tc-out pre{margin:0;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.tc-args{max-height:320px;margin:2px 0 6px 18px;padding:8px 10px;overflow:auto;border-radius:10px;background:var(--bg-soft);color:var(--text-2)}.tc-out{margin:0 0 2px 6px;padding:2px 0 2px 16px;border-left:2px solid var(--line);color:var(--text-2)}.tc.error .tc-out{border-left-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.tc.open .tc-out pre{max-height:420px;overflow:auto}.tc-badge{display:inline-block;margin:2px 0 4px;padding:0 6px;border-radius:6px;background:var(--bg-sunk);color:var(--muted);font-size:11.5px}.tc-badge.bad{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.tc-more{margin:4px 0 0;padding:0;border:0;background:none;color:var(--accent);font-family:var(--font);font-size:13px}.tech{margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);font-size:13px;animation:fade .2s ease-out}.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px 16px;margin:0}.tech-grid dt{color:var(--muted);font-size:12px}.tech-grid dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tech-tools{display:grid;gap:6px;margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--line);list-style:none}.tech-tools li{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tech-tools code,.tech-error{font-family:var(--mono);font-size:12px}.tech-label{padding:1px 6px;border-radius:6px;background:var(--bg-sunk);overflow-wrap:anywhere}.tech-error{margin:10px 0 0;color:var(--danger);white-space:pre-wrap}.tech-note{margin:10px 0 0;color:var(--muted);font-size:12px}.dock{flex:none;padding:6px 0 calc(8px + var(--safe-bottom));background:var(--bg)}.dock .column{display:flex;flex-direction:column}.suggestions{display:flex;gap:8px;margin:0 -16px;padding:2px 16px 10px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.suggestions::-webkit-scrollbar{display:none}.suggestion{display:inline-flex;align-items:center;gap:8px;flex:none;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:14.5px;white-space:nowrap;scroll-snap-align:start;transition:background .15s,border-color .15s}.suggestion:hover{background:var(--bg-sunk)}.suggestion svg{flex:none;color:var(--accent)}.toast{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:6px 6px 6px 14px;border-radius:14px;background:color-mix(in srgb,var(--danger) 10%,var(--bg));color:var(--danger);font-size:14.5px;animation:fade .2s ease-out}.toast svg{flex:none}.toast span{flex:1}.toast .icon-btn{color:inherit}.composer{display:flex;flex-direction:column;gap:6px;padding:7px;border:1px solid var(--line-strong);border-radius:28px;background:var(--surface);box-shadow:var(--shadow-md);transition:border-color .2s,box-shadow .2s}.composer:focus-within{border-color:color-mix(in srgb,var(--accent) 50%,var(--line-strong));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent),var(--shadow-md)}.composer.is-disabled{opacity:.6}.composer.is-dragging{border-color:var(--accent);border-style:dashed}.composer-row{display:flex;align-items:flex-end;gap:4px}.attach-btn{display:grid;place-items:center;flex:none;width:42px;height:42px;border:0;border-radius:50%;background:transparent;color:var(--text-2)}.attach-btn:hover:not(:disabled){background:var(--bg-sunk);color:var(--text)}.attach-btn:disabled{opacity:.4}.attach-tray{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:2px 2px 0;list-style:none}.attach{position:relative;display:flex;align-items:center;gap:8px;max-width:220px;height:56px;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);font-size:13.5px}.attach.has-preview{width:56px;padding:0;overflow:hidden}.attach img{width:100%;height:100%;object-fit:cover}.attach.uploading img{opacity:.55}.attach.error{border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger)}.attach-icon{display:grid;place-items:center;flex:none;color:var(--accent)}.attach-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-busy{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.attach:not(.has-preview) .attach-busy{left:auto;right:32px}.attach-remove{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#0a0a0f8c;color:#fff}.composer textarea{flex:1;min-height:42px;max-height:220px;padding:9px 4px;border:0;outline:0;resize:none;background:transparent;color:var(--text);font:inherit;font-size:16.5px;line-height:1.45}.composer textarea::placeholder{color:var(--muted)}.send{display:grid;place-items:center;flex:none;width:42px;height:42px;border:0;border-radius:50%;background:var(--primary);color:var(--primary-text);transition:background .2s,transform .1s,opacity .2s}.send:not(:disabled):active{transform:scale(.92)}.send:disabled{background:var(--bg-sunk);color:var(--muted)}.send.is-busy{background:var(--primary);color:var(--primary-text);opacity:.8}.overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#0a0a0f73;animation:fade .2s ease-out}.dialog{width:100%;max-height:90dvh;overflow-y:auto;padding:0 20px calc(20px + var(--safe-bottom));border-radius:24px 24px 0 0;background:var(--surface);box-shadow:var(--shadow-lg);animation:sheet .28s cubic-bezier(.2,.8,.2,1)}.dialog:before{content:"";display:block;width:38px;height:4px;margin:8px auto 2px;border-radius:2px;background:var(--line-strong)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 4px}.dialog-head h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.015em}.dialog-head .icon-btn{margin-right:-8px}.dialog-text{margin:8px 0 20px;color:var(--text-2);line-height:1.55}.dialog-actions{display:flex;gap:10px}.dialog-actions .btn{flex:1}.dsection{margin:14px 0 18px}.dsection h3{margin:0 0 4px;font-size:15px}.dsection-help{margin:0 0 10px;color:var(--text-2);font-size:13.5px;line-height:1.5}.dlist{margin:0 0 12px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;list-style:none}.dlist li{display:flex;align-items:center;gap:12px;padding:12px}.dlist li+li{border-top:1px solid var(--line)}.dlist-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:var(--bg-sunk);color:var(--text-2)}.dlist-text{flex:1;min-width:0;display:flex;flex-direction:column}.dlist-text strong{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:600}.dlist-text span{color:var(--muted);font-size:13px}.badge{padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:11.5px;font-weight:600}.inspector{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;padding-top:var(--safe-top);background:var(--bg-soft);font-size:13px;animation:fade .2s ease-out}.inspector-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;border-bottom:1px solid var(--line)}.inspector-head h2{margin:0;font-size:15px}.inspector section{padding:12px 16px;border-bottom:1px solid var(--line)}.inspector section.grow{flex:1;min-height:0;display:flex;flex-direction:column;border-bottom:0;padding-bottom:calc(12px + var(--safe-bottom))}.inspector h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--muted);font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.inspector .bad{color:var(--danger)}.kv{display:grid;gap:6px;margin:0}.kv div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.caps{display:flex;flex-wrap:wrap;gap:4px}.cap{padding:1px 7px;border-radius:999px;background:var(--bg-sunk);font-size:11.5px}.json{max-height:200px;margin:0;padding:10px;overflow:auto;border-radius:10px;background:var(--code-bg);color:var(--code-text);font-family:var(--mono);font-size:11.5px}.log{flex:1;min-height:0;overflow-y:auto;font-family:var(--mono);font-size:11.5px}.wire{display:grid;grid-template-columns:58px 110px minmax(0,1fr);gap:8px;padding:4px;border-radius:6px;cursor:pointer}.wire:hover{background:var(--bg-sunk)}.wire-at{color:var(--muted)}.wire-name{color:var(--accent);overflow:hidden;text-overflow:ellipsis}.wire-data{overflow-wrap:anywhere}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);animation:blink 1s ease-in-out infinite}@media(min-width:768px){.sidebar,.sidebar-open .sidebar{position:relative;inset:auto;z-index:auto;flex:none;width:var(--sidebar);border-right:1px solid var(--line);box-shadow:none;transform:none;visibility:visible;transition:none;animation:fade .2s ease-out}.scrim{display:none}.history-open{min-height:40px;font-size:14.5px}.topbar{padding:0 10px}.topbar .icon-btn{width:40px;height:40px}.column{padding:0 24px}.msg-assistant{grid-template-columns:30px minmax(0,1fr);gap:16px}.msg-assistant .avatar{display:block;margin-top:1px}.avatar-live{animation:breathe 1.6s ease-in-out infinite}.bubble{max-width:75%}.main.is-empty .hero{flex:none;margin-top:auto;padding-bottom:28px}.dock{padding-bottom:20px}.main.is-empty .dock{margin-bottom:auto;padding-bottom:48px}.main.is-empty .suggestions{order:3;flex-wrap:wrap;justify-content:center;margin:14px 0 0;padding:0;overflow:visible}.overlay{align-items:center;padding:24px}.dialog{max-width:520px;max-height:86dvh;padding:6px 24px 24px;border-radius:22px;animation:pop .2s ease-out}.dialog:before{display:none}.dialog-actions{justify-content:flex-end}.dialog-actions .btn{flex:none}.inspector{position:relative;inset:auto;z-index:auto;flex:none;width:400px;padding-top:0;border-left:1px solid var(--line)}.gate-card{padding:44px 36px 32px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:0}}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}@keyframes sheet{0%{transform:translateY(100%)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}}@keyframes float{50%{transform:translateY(-6px)}}@keyframes breathe{50%{transform:scale(.9);opacity:.75}}@keyframes drift{to{transform:translate(8vmax,6vmax) scale(1.15)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
