@import url("https://fonts.lug.ustc.edu.cn/css2?family=Geist:wght@200;300;400;500;600&family=Noto+Sans+SC:wght@300;400;500&display=swap");:root{--novi-cobalt:#1E5BC6;--novi-teal:#1A8B86;--novi-emerald:#1E8449;--novi-orange:#E8722C;--novi-graphite:#1A1A1A;--ink-900:#0F1012;--ink-800:#1A1A1A;--ink-700:#2D2D30;--ink-500:#6B6B70;--ink-400:#9A9A9F;--ink-300:#C9C9CC;--ink-200:#E5E4DF;--ink-150:#EFEDE6;--ink-100:#F5F3EC;--ink-50:#FAF8F2;--paper:#FAF8F2;--surface:#FFFFFF;--surface-2:#FBFAF6;--success:var(--novi-emerald);--warning:var(--novi-orange);--info:var(--novi-cobalt);--danger:#C8323A;--primary:var(--novi-cobalt);--font-display:"Geist","Noto Sans SC",system-ui,sans-serif;--font-body:"Geist","Noto Sans SC",system-ui,sans-serif;--font-mono:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans SC",sans-serif;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--r-1:4px;--r-2:6px;--r-3:10px;--r-4:14px;--r-pill:999px;--stroke-hair:0.5px;--stroke-thin:1px;--stroke-med:1.5px;--stroke-bold:2px;--shadow-1:0 1px 0 rgba(15,16,18,.04),0 0 0 0.5px rgba(15,16,18,.06);--shadow-2:0 4px 16px -8px rgba(15,16,18,.12),0 0 0 0.5px rgba(15,16,18,.08);--shadow-3:0 12px 40px -16px rgba(15,16,18,.18),0 0 0 0.5px rgba(15,16,18,.08);--ease-out:cubic-bezier(.2,.7,.2,1);--ease-in-out:cubic-bezier(.6,.2,.2,1);--dur-1:120ms;--dur-2:220ms;--dur-3:360ms;--bg:var(--paper);--bg-2:var(--ink-100);--bg-3:var(--ink-150);--panel-bg:var(--surface);--border:var(--ink-200);--border-soft:var(--ink-150);--text:var(--ink-800);--text-2:var(--ink-500);--text-3:var(--ink-400);--topbar-h:64px;--panel-handle-w:8px}[data-theme=dark]{--paper:#0F1012;--bg:#0F1012;--bg-2:#1A1A1A;--bg-3:#252528;--border:#2D2D30;--border-soft:#252528;--text:#E5E4DF;--text-2:#9A9A9F;--text-3:#6B6B70;--ink-50:#0F1012;--ink-100:#1A1A1A;--ink-150:#252528;--ink-200:#2D2D30;--surface:#151517;--surface-2:#1A1A1C;--panel-bg:var(--surface)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{overflow:hidden;height:100dvh}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ink-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ink-400)}.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.topbar{height:var(--topbar-h);border-bottom:var(--stroke-thin) solid var(--border);background:var(--paper);padding:0 var(--s-5);gap:var(--s-4);flex-shrink:0;z-index:100}.topbar,.topbar-brand{display:flex;align-items:center}.topbar-brand{gap:var(--s-2);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--text)}.topbar-brand img{height:40px;width:auto}.topbar-brand img.topbar-brand-logo{height:34px;width:auto}[data-theme=dark] .topbar-brand-logo{filter:brightness(0) invert(1)}.topbar-brand-name{font-size:15px;font-weight:500;letter-spacing:.01em;color:var(--text-2)}.topbar-sep{color:var(--text-3);font-size:18px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.topbar-project{display:flex;align-items:center;gap:var(--s-2);font-size:13px;font-weight:500;color:var(--text)}.topbar-spacer{flex:1 1}.topbar-actions{display:flex;align-items:center;gap:var(--s-2)}.topbar-divider{width:var(--stroke-thin);align-self:stretch;margin:8px 2px;background:var(--border);flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:0 var(--s-4);height:32px;font-family:var(--font-body);font-size:13px;font-weight:500;border-radius:var(--r-2);border:var(--stroke-thin) solid transparent;cursor:pointer;transition:transform var(--dur-1) var(--ease-out),background var(--dur-1);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:hover{transform:translateY(-.5px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:#1a50b3}.btn-secondary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-secondary:hover{background:var(--ink-700)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover{background:var(--bg-3)}.btn-text{background:transparent;color:var(--primary);border-color:transparent;padding:0 var(--s-2)}.btn-text:hover{background:var(--bg-2)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-sm{height:28px;font-size:12px;padding:0 var(--s-3)}.btn-lg{height:40px;font-size:14px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-2);border:none;background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--dur-1),color var(--dur-1);flex-shrink:0}.icon-btn:hover{background:var(--bg-3);color:var(--text)}.icon-btn.active{color:var(--text);background:var(--bg-2)}.icon-btn.icon-btn-active{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn:disabled:hover{background:transparent;color:var(--text-2)}.icon-btn-sm{width:28px;height:28px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-pill);border:var(--stroke-thin) solid;font-size:11px;line-height:1.4;white-space:nowrap}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-running{color:var(--success)}.badge-building,.badge-connecting{color:var(--info)}.badge-closed,.badge-idle{color:var(--text-3)}.badge-warning{color:var(--warning)}.badge-error{color:var(--danger)}.workspace{flex:1 1;min-height:0;padding:var(--s-3);gap:0;background-image:linear-gradient(var(--border-soft) .5px,transparent .5px),linear-gradient(90deg,var(--border-soft) .5px,transparent .5px);background-size:32px 32px;background-color:var(--paper)}.panel,.workspace{display:flex;overflow:hidden}.panel{flex-direction:column;background:var(--panel-bg);min-width:0;flex-shrink:0;border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-1)}.panel-center{flex:1 1;min-width:0;flex-shrink:1}.panel-aux{background:var(--surface-2)}.panel-primary{background:var(--surface);box-shadow:var(--shadow-2);border-color:var(--border)}.panel-subheader{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 var(--s-3);border-bottom:var(--stroke-thin) solid var(--border-soft);flex-shrink:0}.panel-subheader-title{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.panel-header{display:flex;align-items:center;height:36px;border-bottom:var(--stroke-thin) solid var(--border);flex-shrink:0;gap:var(--s-2);padding:0 var(--s-3)}.panel-header .panel-tabs{display:flex;align-items:center;flex:1 1;gap:0;overflow:hidden}.panel-tab{display:flex;align-items:center;gap:var(--s-1);padding:0 var(--s-3);height:36px;font-size:12px;color:var(--text-2);cursor:pointer;border:none;border-bottom:var(--stroke-med) solid transparent;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:color var(--dur-1),border-color var(--dur-1);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.panel-tab:hover{color:var(--text)}.panel-tab.active{color:var(--text);border-bottom-color:var(--text)}.preview-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.preview-tab-close{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-1);padding:1px;margin-left:2px;color:var(--text-3);opacity:0;transition:opacity var(--dur-1),background var(--dur-1),color var(--dur-1)}.panel-tab.active .preview-tab-close,.panel-tab:hover .preview-tab-close{opacity:1}.preview-tab-close:hover{background:var(--bg-3);color:var(--text)}.panel-body{flex:1 1;overflow:auto;min-height:0}.panel-handle{width:var(--panel-handle-w);background:transparent;cursor:col-resize;flex-shrink:0;transition:background var(--dur-1),width var(--dur-2) var(--ease-out);position:relative;z-index:10;border-radius:var(--r-pill)}.panel-handle:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:2px;border-radius:50%;background:var(--text-3);box-shadow:0 -6px 0 var(--text-3),0 6px 0 var(--text-3);opacity:0;transition:opacity var(--dur-1);pointer-events:none}.panel-handle.dragging,.panel-handle:hover{background:color-mix(in srgb,var(--primary) 18%,transparent)}.panel-handle.dragging:before,.panel-handle:hover:before{opacity:1}.panel-collapsed{width:40px!important;min-width:40px!important}.panel-collapsed .panel-body,.panel-collapsed .panel-header .panel-tabs{display:none}.grid-bg{background-image:linear-gradient(var(--border) .5px,transparent .5px),linear-gradient(90deg,var(--border) .5px,transparent .5px);background-size:32px 32px}.grid-bg,.grid-bg-fine{background-color:var(--bg)}.grid-bg-fine{background-image:linear-gradient(var(--border-soft) .5px,transparent .5px),linear-gradient(90deg,var(--border-soft) .5px,transparent .5px);background-size:24px 24px}.chat-messages{flex:1 1;overflow-y:auto;padding:var(--s-4) var(--s-5);min-height:0}.chat-vitem-inner{width:100%;max-width:640px;margin-left:auto;margin-right:auto}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--s-3);color:var(--text-3);text-align:center}.chat-empty-icon{opacity:.3}.chat-empty p{font-size:13px;max-width:200px;line-height:1.5}.session-sidebar{position:absolute;top:0;left:0;height:100%;width:200px;z-index:30;display:flex;flex-direction:column;border-right:var(--stroke-thin) solid var(--border);background:var(--bg-2);box-shadow:var(--shadow-3);transition:transform var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.session-sidebar-open{transform:translateX(0);opacity:1;pointer-events:auto}.session-sidebar-closed{transform:translateX(-100%);opacity:0;pointer-events:none}.session-sidebar-backdrop{position:absolute;inset:0;z-index:29}.session-sidebar-header{display:flex;align-items:center;gap:var(--s-1);height:36px;padding:0 var(--s-2) 0 var(--s-3);border-bottom:var(--stroke-thin) solid var(--border);flex-shrink:0}.session-sidebar-title{flex:1 1;font-size:11px;font-weight:500;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em}.session-sidebar-list{flex:1 1;overflow-y:auto;padding:var(--s-2) var(--s-1);display:flex;flex-direction:column;gap:2px}.session-card{padding:var(--s-2) var(--s-2);border-radius:var(--r-2);cursor:pointer;border:var(--stroke-thin) solid transparent;transition:background var(--dur-1),border-color var(--dur-1)}.session-card:hover{background:var(--bg-3)}.session-card-active{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-1)}.session-card-disabled{opacity:.5;cursor:not-allowed}.session-card-row{display:flex;align-items:center;gap:var(--s-1);margin-bottom:3px}.session-card-id{flex:1 1;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-card-active .session-card-id{color:var(--primary)}.session-card-delete{display:none;padding:2px;border:none;background:transparent;color:var(--text-3);cursor:pointer;border-radius:var(--r-1);line-height:0}.session-card-delete:hover{color:var(--danger);background:rgba(200,50,58,.1)}.session-card-delete:disabled{opacity:.4;cursor:not-allowed}.session-card:hover .session-card-delete{display:flex;align-items:center}.session-card-meta{display:flex;flex-direction:column;gap:1px;font-size:10px;color:var(--text-3);line-height:1.4}.session-card-result{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.session-card-result span{font-family:var(--font-mono);font-size:9.5px;color:var(--text-2);background:var(--bg-3);border-radius:var(--r-1);padding:1px 4px;white-space:nowrap}.history-load-btn{align-self:center;height:28px;padding:0 var(--s-3);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);background:var(--bg);color:var(--text-2);font-size:12px;cursor:pointer}.history-load-btn:hover{background:var(--bg-2);color:var(--text)}.history-load-btn:disabled{opacity:.55;cursor:not-allowed}.history-error{align-self:stretch;padding:var(--s-2) var(--s-3);border:var(--stroke-thin) solid rgba(200,50,58,.25);border-radius:var(--r-2);color:var(--danger);background:rgba(200,50,58,.08);font-size:12px}.message{display:flex;flex-direction:column;gap:2px}.message-user{align-items:flex-end;max-width:82%;margin-left:auto!important;margin-right:0!important}.message-assistant{align-items:flex-start;max-width:100%;margin-right:auto!important;margin-left:0!important;gap:var(--s-2)}.message-bubble{padding:var(--s-2) var(--s-3);border-radius:var(--r-3);font-size:13px;line-height:1.6;word-break:break-word;min-width:0;max-width:100%}.message-user .message-bubble{background:var(--bg-2);color:var(--text);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-3) var(--r-3) 4px var(--r-3);padding:var(--s-2) var(--s-3)}.message-assistant .message-bubble{background:transparent;color:var(--text);padding:0;border-radius:0}.message-assistant .message-bubble-md{padding:0}.streaming-cursor{display:inline-block;margin-left:1px;color:var(--primary);animation:streaming-blink 1s steps(1) infinite}@keyframes streaming-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.message-bubble-md{padding:var(--s-2) var(--s-3)}.message-bubble-md p{margin:0 0 var(--s-2);line-height:1.65}.message-bubble-md p:last-child{margin-bottom:0}.message-bubble-md h1,.message-bubble-md h2,.message-bubble-md h3,.message-bubble-md h4{font-weight:600;margin:var(--s-3) 0 var(--s-1);line-height:1.3}.message-bubble-md h1{font-size:15px}.message-bubble-md h2{font-size:14px}.message-bubble-md h3,.message-bubble-md h4{font-size:13px}.message-bubble-md h1:first-child,.message-bubble-md h2:first-child,.message-bubble-md h3:first-child{margin-top:0}.message-bubble-md ol,.message-bubble-md ul{margin:0 0 var(--s-2) var(--s-4);padding:0}.message-bubble-md li{margin-bottom:2px;line-height:1.6}.message-bubble-md li:last-child{margin-bottom:0}.message-bubble-md code{font-family:var(--font-mono);font-size:12px;background:var(--bg-3);border-radius:var(--r-1);padding:1px 5px;color:var(--text)}.message-bubble-md pre{margin:var(--s-2) 0;border-radius:var(--r-2);overflow:hidden;max-width:100%;background:var(--ink-800)}.message-bubble-md pre code{display:block;padding:var(--s-3);background:transparent;font-size:12px;line-height:1.55;overflow-x:auto;color:var(--ink-200)}.message-bubble-md blockquote{border-left:var(--stroke-med) solid var(--border);padding:var(--s-1) var(--s-3);margin:var(--s-2) 0;color:var(--text-2);font-style:italic}.message-bubble-md hr{border:none;border-top:var(--stroke-thin) solid var(--border);margin:var(--s-3) 0}.message-bubble-md a{color:var(--primary);text-decoration:underline}.message-bubble-md a:hover{opacity:.8}.message-bubble-md strong{font-weight:600}.message-bubble-md em{font-style:italic}.message-bubble-md table{width:100%;border-collapse:collapse;font-size:12.5px;margin:var(--s-2) 0}.message-bubble-md td,.message-bubble-md th{padding:var(--s-1) var(--s-2);border:var(--stroke-thin) solid var(--border);text-align:left}.message-bubble-md th{background:var(--bg-3);font-weight:500}.message-thinking{border-left:var(--stroke-med) solid var(--ink-300);padding:var(--s-2) var(--s-3);margin:var(--s-1) 0;font-family:var(--font-mono);font-size:10.5px;color:var(--text-2);font-style:italic;max-height:120px;overflow-y:auto;border-radius:0 var(--r-1) var(--r-1) 0;background:var(--bg-2);animation:thinking-pulse 2.4s ease-in-out infinite}@keyframes thinking-pulse{0%,to{border-left-color:var(--ink-300);opacity:.85}50%{border-left-color:var(--primary);opacity:1}}.message-tool{position:relative;border:var(--stroke-thin) solid var(--border-soft);border-left:var(--stroke-bold) solid var(--ink-300);border-radius:var(--r-2);background:var(--surface-2);overflow:hidden;font-family:var(--font-mono);font-size:11.5px;width:100%;transition:border-color var(--dur-1) var(--ease-out)}.message-tool:hover{border-color:var(--border)}.message-tool:has(.tool-pending){border-left-color:var(--info)}.message-tool:has(.tool-ok){border-left-color:var(--success)}.message-tool:has(.tool-err){border-left-color:var(--danger)}.message-tool-header{display:flex;align-items:center;gap:var(--s-2);padding:6px var(--s-3);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-height:28px}.message-tool-header:hover{background:var(--bg-2)}.message-tool-header>svg:first-child{color:var(--text-3);flex-shrink:0}.message-tool-name{font-weight:500;color:var(--text);flex:1 1;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-tool-status{font-family:var(--font-body);font-size:10px;font-weight:500;padding:1px 7px;border-radius:var(--r-pill);letter-spacing:.02em;flex-shrink:0}.tool-pending{color:var(--info);background:rgba(30,91,198,.08)}.tool-pending:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--info);margin-right:4px;vertical-align:1px;animation:typing-label-pulse 1.4s ease-in-out infinite}.tool-ok{color:var(--success);background:rgba(30,132,73,.08)}.tool-err{color:var(--danger);background:rgba(200,50,58,.08)}.message-tool-body{padding:var(--s-2) var(--s-3);background:var(--bg);border-top:var(--stroke-thin) solid var(--border-soft);font-size:11px;line-height:1.55;color:var(--text-2);max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-2)}.message-tool-section{display:flex;flex-direction:column;gap:4px}.message-tool-section-label{font-family:var(--font-body);font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.message-tool-section-content{margin:0;font-family:var(--font-mono);font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.message-tool-section-view{display:flex;flex-direction:column;gap:var(--s-2)}.message-tool-section-input{color:var(--info)}.message-tool-section-result{color:var(--success)}.message-tool-section-error{color:var(--danger)}.tool-result-card{width:100%;background:var(--surface)}.tool-result-grid{gap:6px 10px}.tool-result-stack{display:flex;flex-direction:column;gap:4px}.tool-result-label{font-family:var(--font-body);font-size:10px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase}.tool-result-code{margin:0;padding:var(--s-2) var(--s-3);border-radius:var(--r-2);border:var(--stroke-thin) solid var(--border-soft);background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:220px}.tool-result-code-error{color:var(--danger)}.tool-result-list{list-style:none;display:flex;flex-direction:column;gap:6px}.tool-result-list-item{border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2);background:var(--bg);padding:var(--s-2) var(--s-3);display:flex;flex-direction:column;gap:2px}.tool-result-list-title{color:var(--text);font-weight:500}.tool-result-list-meta{color:var(--text-3);font-size:10px}.tool-result-list-body{color:var(--text-2)}.tool-result-empty{color:var(--text-3);font-family:var(--font-body)}.message-meta-card{width:100%;border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2);background:var(--bg-2);padding:var(--s-2) var(--s-3);display:flex;flex-direction:column;gap:6px}.message-meta-title{font-size:11px;font-weight:600;color:var(--text)}.message-meta-body{font-size:12px;color:var(--text-2);line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-meta-grid{display:flex;flex-wrap:wrap;gap:4px 8px}.message-meta-foot,.message-meta-grid{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3)}.block-collapse-btn{display:block;width:100%;padding:6px 12px;margin:2px 0;background:var(--surface-2);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-md);color:var(--text-3);font-size:12px;cursor:pointer;text-align:center;transition:background .15s,color .15s}.block-collapse-btn:hover{background:var(--surface-3);color:var(--text-1)}.message-permission-card{width:100%;border:var(--stroke-thin) solid rgba(200,50,58,.22);border-left:var(--stroke-bold) solid var(--danger);border-radius:var(--r-2);background:rgba(200,50,58,.08);padding:var(--s-2) var(--s-3);display:flex;flex-direction:column;gap:6px}.message-permission-title{font-size:11px;font-weight:600;color:var(--danger)}.message-permission-body{font-size:12px;color:var(--text);line-height:1.5}.message-permission-foot{font-family:var(--font-mono);font-size:10.5px;color:var(--text-2)}.message-error-card{width:100%;border:var(--stroke-thin) solid rgba(200,50,58,.3);border-left:var(--stroke-bold) solid var(--danger);border-radius:var(--r-2);background:rgba(200,50,58,.08);padding:var(--s-2) var(--s-3);display:flex;flex-direction:column;gap:8px}.message-error-title{font-size:12px;font-weight:600;color:var(--danger)}.message-error-body{font-size:12px;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-error-section{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:var(--stroke-thin) solid rgba(200,50,58,.18)}.message-error-section-label{font-size:10.5px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.message-error-item{display:flex;flex-direction:column;gap:2px;padding:4px 6px;background:rgba(0,0,0,.04);border-radius:var(--r-1);font-size:11.5px;line-height:1.45}.message-error-item-name{font-family:var(--font-mono);font-size:11px;color:var(--text);font-weight:600}.message-error-item-msg{color:var(--text);white-space:pre-wrap;word-break:break-word}.message-error-item-foot{font-size:10px}.message-error-foot,.message-error-item-foot{font-family:var(--font-mono);color:var(--text-2)}.message-error-foot{font-size:10.5px;padding-top:6px;border-top:var(--stroke-thin) solid rgba(200,50,58,.18)}.message-time{font-size:10px;color:var(--text-3);padding:0 var(--s-1)}.chat-todos{padding:var(--s-2) var(--s-3) 0}.todo-panel{border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);background:var(--bg-2);overflow:hidden;font-size:12px}.todo-panel-header{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.todo-panel-title{font-weight:500;color:var(--novi-blue,var(--info));flex:1 1}.todo-panel-meta{font-size:10px;color:var(--text-2)}.todo-panel-list{list-style:none;margin:0;padding:var(--s-1) var(--s-3) var(--s-2);border-top:var(--stroke-thin) solid var(--border);background:var(--bg);display:flex;flex-direction:column;gap:4px}.todo-item{display:flex;align-items:flex-start;gap:var(--s-2);padding:4px 0;line-height:1.4}.todo-icon{width:14px;text-align:center;font-family:var(--font-mono);color:var(--text-3);flex-shrink:0}.todo-text{color:var(--text-1);word-break:break-word}.todo-completed .todo-icon{color:var(--success)}.todo-completed .todo-text{color:var(--text-3);text-decoration:line-through}.todo-in_progress .todo-icon{color:var(--info)}.todo-in_progress .todo-text{color:var(--text-1);font-weight:500}.todo-pending .todo-icon{color:var(--text-3)}.typing-indicator{display:inline-flex;gap:4px;align-items:center;padding:var(--s-1) 0;align-self:flex-start;width:-moz-fit-content;width:fit-content}.typing-label{margin-left:6px;font-size:11.5px;color:var(--text-2);letter-spacing:.2px;animation:typing-label-pulse 1.6s ease-in-out infinite}@keyframes typing-label-pulse{0%,to{opacity:.65}50%{opacity:1}}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:typing 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.chat-input-area{padding:var(--s-3) var(--s-5) var(--s-4);flex-shrink:0;background:var(--surface)}.chat-input-wrap{max-width:640px;margin:0 auto;border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-4);overflow:hidden;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),border-radius var(--dur-3) var(--ease-out);background:var(--surface-2)}.chat-input-wrap:hover{border-color:var(--border)}.chat-input-wrap:focus-within{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.chat-textarea-slot{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--dur-3) var(--ease-out)}.chat-textarea-slot>.chat-textarea{overflow:hidden}.chat-textarea{display:block;width:100%;padding:10px var(--s-4) 6px;font-family:var(--font-body);font-size:13.5px;line-height:1.55;color:var(--text);background:transparent;border:none;outline:none;resize:none;min-height:52px;max-height:200px;transition:opacity var(--dur-2) var(--ease-out)}.chat-textarea::placeholder{color:var(--text-3)}.chat-input-bar{display:flex;align-items:center;padding:6px var(--s-2) 6px var(--s-2);gap:var(--s-2);background:transparent}.chat-input-actions{gap:6px;padding-left:var(--s-1)}.chat-action-btn,.chat-input-actions{display:inline-flex;align-items:center}.chat-action-btn{justify-content:center;width:26px;height:26px;border-radius:var(--r-2);border:var(--stroke-thin) solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--dur-1),color var(--dur-1),border-color var(--dur-1);flex-shrink:0}.chat-action-btn:hover{color:var(--text);background:var(--bg-3);border-color:var(--ink-300)}.chat-input-hint{font-size:11px;color:var(--text-3);flex:1 1;text-align:right;padding-right:var(--s-2)}.chat-input-wrap--collapsed{border-radius:var(--r-pill);background:var(--surface)}.chat-input-wrap--collapsed:focus-within{box-shadow:var(--shadow-1)}.chat-input-wrap--collapsed .chat-textarea-slot{grid-template-rows:0fr}.chat-input-wrap--collapsed .chat-textarea{opacity:0;min-height:0;padding-top:0;padding-bottom:0;pointer-events:none}.chat-input-wrap--collapsed .chat-input-bar{padding:6px var(--s-2)}.chat-running-info{display:inline-flex;align-items:center;gap:var(--s-2);margin-left:auto;font-size:12px;color:var(--text-2)}.chat-running-spinner{width:14px;height:14px;border:1.5px solid var(--border);border-top-color:var(--text-2);border-radius:50%;animation:spin .9s linear infinite;flex-shrink:0}.chat-running-text{white-space:nowrap}.chat-running-text,.chat-usage-bar{font-family:var(--font-mono);font-size:12px;color:var(--text-2)}.chat-usage-bar{display:flex;align-items:center;gap:var(--s-2);margin:0 var(--s-3) var(--s-2);padding:4px var(--s-3);border:1px solid var(--border-soft);border-radius:var(--r-2);background:var(--surface-2,var(--bg-1));cursor:default}.chat-usage-dot{width:7px;height:7px;border-radius:var(--r-pill);background:var(--text-3);flex:none}.chat-usage-label{font-family:var(--font-sans,inherit);color:var(--text-3)}.chat-usage-item{margin-left:auto;white-space:nowrap}.chat-usage-item+.chat-usage-item{margin-left:var(--s-2)}.chat-usage-out{font-weight:600}.chat-usage-bar.is-running{border-color:color-mix(in srgb,var(--primary) 40%,var(--border-soft))}.chat-usage-bar.is-running .chat-usage-dot{background:var(--primary);animation:usage-pulse 1.2s ease-out infinite}.chat-usage-bar.is-running .chat-usage-label,.chat-usage-bar.is-running .chat-usage-out{color:var(--primary)}.chat-usage-bar.is-running .chat-usage-out{animation:usage-bump .35s ease-out}@keyframes usage-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--primary) 55%,transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb,var(--primary) 0%,transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--primary) 0%,transparent)}}@keyframes usage-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.chat-usage-bar.is-running .chat-usage-dot,.chat-usage-bar.is-running .chat-usage-out{animation:none}}.chat-stop-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:none;background:var(--danger);color:#fff;cursor:pointer;margin-left:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 12%,transparent);transition:transform var(--dur-1),background var(--dur-1);flex-shrink:0}.chat-stop-btn:hover{background:#a82930;transform:scale(1.05)}.chat-stop-btn:active{transform:scale(.95)}.file-tree{padding:var(--s-2)}.file-tree-empty{padding:var(--s-5);text-align:center;color:var(--text-3);font-size:12px}.file-item{display:flex;align-items:center;gap:6px;padding:4px var(--s-2);border-radius:var(--r-1);cursor:pointer;font-size:12.5px;color:var(--text-2);transition:background var(--dur-1),color var(--dur-1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.file-item:hover{background:var(--bg-3);color:var(--text)}.file-item.active{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--text)}.file-item.active .file-item-icon{color:var(--primary)}.file-item-chevron{width:12px;height:12px}.file-item-chevron,.file-item-icon{color:var(--text-3);flex-shrink:0;display:inline-flex;align-items:center}.file-item-dir .file-item-icon{color:var(--novi-cobalt)}.file-item-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-dir{font-weight:500;color:var(--text)}.file-item-loading{font-size:11px;color:var(--text-3);padding:4px var(--s-2)}.editor-header{display:flex;align-items:center;padding:0 var(--s-4);height:36px;border-bottom:var(--stroke-thin) solid var(--border);gap:var(--s-3);flex-shrink:0;background:var(--surface-2)}.editor-filename{font-family:var(--font-mono);font-size:12px;color:var(--text-2);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-area{flex:1 1;overflow:auto;background:var(--ink-900);position:relative}.code-content{padding:var(--s-4);font-family:var(--font-mono);font-size:13px;line-height:1.7;color:#E5E4DF;white-space:pre;min-height:100%;-moz-tab-size:2;tab-size:2}.editor-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--s-3);color:var(--text-3);text-align:center}.editor-empty p{font-size:13px;max-width:220px;line-height:1.5}.preview-frame-wrap{flex:1 1;display:flex;flex-direction:column;min-height:0;background:var(--surface)}.preview-toolbar{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3);height:36px;border-bottom:var(--stroke-thin) solid var(--border);background:var(--surface-2);flex-shrink:0}.preview-url{flex:1 1;font-family:var(--font-mono);font-size:11px;color:var(--text-2);background:var(--bg-3);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-1);padding:2px 8px;height:24px;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-iframe{flex:1 1;border:none;width:100%}.preview-placeholder{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);color:var(--text-3);text-align:center}.preview-placeholder p{font-size:13px;max-width:240px;line-height:1.5}.output-log{flex:1 1;overflow-y:auto;padding:var(--s-3);font-family:var(--font-mono);font-size:12px;line-height:1.6;color:#E5E4DF;background:var(--ink-900)}.output-log-line{white-space:pre-wrap;word-break:break-all}.output-log-line.err{color:#F0708A}.output-log-line.ok{color:#6BC18A}.output-log-line.info{color:#7AA9FF}.page{flex:1 1;overflow-y:auto;padding:var(--s-7) var(--s-6)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-6)}.page-title{font-size:24px;font-weight:300;letter-spacing:-.02em}.project-grid-header{display:flex;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-3);font-size:12px;color:var(--text-3);letter-spacing:.01em}.project-grid-count{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--text-2)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));grid-gap:var(--s-5);gap:var(--s-5)}@keyframes cardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.project-card{background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);padding:var(--s-5);cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);display:flex;flex-direction:column;gap:var(--s-3);box-shadow:var(--shadow-1);position:relative;overflow:hidden;animation:cardIn var(--dur-3) var(--ease-out) both}.project-card:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow-3);transform:translateY(-2px)}.project-card:hover .project-card-accent{opacity:1}.project-card-accent{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--novi-cobalt) 0,var(--novi-teal) 100%);border-radius:var(--r-3) var(--r-3) 0 0;opacity:0;transition:opacity var(--dur-2) var(--ease-out)}.project-card-icon-pill{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-2);background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary);border:var(--stroke-hair) solid color-mix(in srgb,var(--primary) 20%,transparent);flex-shrink:0}[data-theme=dark] .project-card-icon-pill{background:color-mix(in srgb,var(--primary) 15%,transparent);border-color:color-mix(in srgb,var(--primary) 25%,transparent)}.project-card-fresh-dot{width:6px;height:6px;border-radius:50%;background:var(--novi-emerald);animation:freshPulse 2.4s ease-in-out infinite;flex-shrink:0}@keyframes freshPulse{0%,to{opacity:.6;box-shadow:0 0 0 0 rgba(30,132,73,.4)}50%{opacity:1;box-shadow:0 0 0 4px rgba(30,132,73,0)}}.project-card-head{display:flex;align-items:center;justify-content:space-between}.project-card-name{font-size:16px;font-weight:500;color:var(--text);letter-spacing:-.02em;line-height:1.3}.project-card-desc{font-size:11.5px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-desc,.project-card-meta{font-family:var(--font-mono);color:var(--text-3)}.project-card-meta{display:flex;align-items:center;gap:var(--s-3);font-size:11px;flex-wrap:wrap;margin-top:var(--s-1)}.project-card-model-tag{display:inline-flex;align-items:center;padding:1px 7px;border:var(--stroke-hair) solid var(--border);border-radius:var(--r-pill);background:var(--bg-2);font-family:var(--font-mono);font-size:10.5px;color:var(--text-2);letter-spacing:.01em}.project-card-actions{display:flex;gap:var(--s-2);justify-content:flex-end;margin-top:var(--s-1)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s-9) var(--s-6);text-align:center;gap:var(--s-4);color:var(--text-2)}.empty-state h2{font-size:18px;font-weight:400;color:var(--text)}.empty-state p{font-size:13px;max-width:320px;line-height:1.6}.empty-state-mascot{width:96px;height:96px;opacity:.92}.form-page{flex:1 1;overflow-y:auto;padding:var(--s-7) var(--s-6);max-width:600px;margin:0 auto;width:100%}.form-section{margin-bottom:var(--s-5)}.form-label{display:block;font-size:12px;font-weight:500;color:var(--text-2);margin-bottom:var(--s-2);letter-spacing:.02em;text-transform:uppercase}.form-input{display:block;width:100%;height:38px;padding:0 var(--s-4);font-family:var(--font-body);font-size:14px;color:var(--text);background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);outline:none;transition:border-color var(--dur-1)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(30,91,198,.1)}.form-select{display:block;width:100%;height:38px;padding:0 var(--s-4);font-family:var(--font-body);font-size:14px;color:var(--text);background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path fill='%239A9A9F' d='M0 0h10L5 6z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;transition:border-color var(--dur-1)}.form-select:focus{border-color:var(--primary)}.form-textarea{display:block;width:100%;padding:var(--s-3) var(--s-4);font-family:var(--font-body);font-size:13px;color:var(--text);background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);outline:none;resize:vertical;min-height:80px;transition:border-color var(--dur-1)}.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(30,91,198,.1)}.form-hint{font-size:12px;color:var(--text-3);margin-top:var(--s-2)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-4);gap:var(--s-4)}.seg-control{display:flex;border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);overflow:hidden}.seg-btn{flex:1 1;padding:7px 12px;font-size:13px;font-family:var(--font-body);background:transparent;border:none;color:var(--text-2);cursor:pointer;transition:background var(--dur-1),color var(--dur-1);border-right:var(--stroke-thin) solid var(--border)}.seg-btn:last-child{border-right:none}.seg-btn.active{background:var(--text);color:var(--bg)}.seg-btn:hover:not(.active){background:var(--bg-3)}.divider{height:1px;background:var(--border);margin:var(--s-4) 0}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.flex{display:flex}.flex-1{flex:1 1}.items-center{align-items:center}.gap-2{gap:var(--s-2)}.gap-3{gap:var(--s-3)}.text-mono{font-family:var(--font-mono)}.text-sm{font-size:12px}.text-xs{font-size:11px}.text-muted{color:var(--text-2)}.text-faint{color:var(--text-3)}.model-select-inline{height:28px;padding:0 22px 0 var(--s-3);font-family:var(--font-body);font-size:12px;color:var(--text);background:var(--bg-2);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5'><path fill='%239A9A9F' d='M0 0h8L4 5z'/></svg>");background-repeat:no-repeat;background-position:right 8px center;transition:border-color var(--dur-1),background var(--dur-1)}.model-select-inline:hover:not(:disabled){background-color:var(--bg-3);border-color:var(--ink-300)}.model-select-inline:focus{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent)}.model-select-inline:disabled{opacity:.45;cursor:not-allowed}.confirm-overlay{position:fixed;inset:0;background:rgba(15,16,18,.48);z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--dur-1) var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-3);padding:var(--s-5);width:340px;display:flex;flex-direction:column;gap:var(--s-4);animation:dialogIn var(--dur-2) var(--ease-out)}@keyframes dialogIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-dialog-title{font-size:14px;font-weight:600;color:var(--text)}.confirm-dialog-body{font-size:13px;color:var(--text-2);line-height:1.65}.confirm-dialog-body strong{color:var(--text);font-weight:500}.confirm-dialog-footer{display:flex;gap:var(--s-2);justify-content:flex-end}.toast-area{position:fixed;bottom:var(--s-5);left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:var(--s-2);pointer-events:none}.toast{background:var(--ink-800);color:#fff;padding:8px 16px;border-radius:var(--r-2);font-size:13px;box-shadow:var(--shadow-3);animation:toastIn var(--dur-2) var(--ease-out)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ask-user-card{margin:8px 0;padding:12px 14px;border:1px solid var(--accent,#4f74ff);border-radius:var(--r-3,8px);background:var(--surface-1,#f7f9ff);display:flex;flex-direction:column;gap:10px}.ask-user-card--answered{border-color:var(--border,#d6dae3);background:var(--surface-2,#fafbfd);opacity:.92}.ask-user-card-head{display:flex;align-items:center;gap:8px}.ask-user-card-title{font-weight:600;font-size:13px;flex:1 1}.ask-user-card-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--ink-100,#e8ecf2);color:var(--text-2,#555)}.ask-user-card-badge--pending{background:var(--accent,#4f74ff);color:#fff}.ask-user-card-desc{font-size:12px;color:var(--text-2,#555)}.ask-user-question{display:flex;flex-direction:column;gap:6px}.ask-user-question-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.ask-user-question-header{font-size:11px;padding:1px 6px;background:var(--ink-100,#e8ecf2);color:var(--text-2,#555);border-radius:4px;text-transform:uppercase;letter-spacing:.04em}.ask-user-question-text{font-size:13px;font-weight:500}.ask-user-question-mode{font-size:11px;color:var(--text-3,#888)}.ask-user-options{display:flex;flex-direction:column;gap:6px}.ask-user-option{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--border,#d6dae3);border-radius:var(--r-2,6px);background:#fff;cursor:pointer;transition:border-color var(--dur-1,.12s),background var(--dur-1,.12s)}.ask-user-option--selected,.ask-user-option:hover{border-color:var(--accent,#4f74ff)}.ask-user-option--selected{background:var(--accent-soft,#eef2ff)}.ask-user-option input{margin-top:3px}.ask-user-option-body{flex:1 1;display:flex;flex-direction:column;gap:4px}.ask-user-option-label{font-size:13px;font-weight:500}.ask-user-option-desc{font-size:12px;color:var(--text-2,#555)}.ask-user-option-preview{margin-top:4px;padding:6px 8px;background:var(--surface-2,#fafbfd);border:1px solid var(--border,#d6dae3);border-radius:var(--r-1,4px);font-size:12px;overflow-x:auto}.ask-user-option-preview--text{font-family:var(--font-mono);white-space:pre}.ask-user-other-input{margin-top:2px;padding:4px 8px;border:1px solid var(--border,#d6dae3);border-radius:var(--r-1,4px);font-size:12px;width:100%;box-sizing:border-box}.ask-user-actions{display:flex;justify-content:flex-end}.ask-user-answer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ask-user-answer-list li{padding:6px 8px;background:#fff;border:1px solid var(--border,#d6dae3);border-radius:var(--r-1,4px)}.ask-user-answer-q{font-size:12px;color:var(--text-2,#555);margin-bottom:2px}.ask-user-answer-a{font-size:13px;font-weight:500}.projects-hero{flex-direction:column;align-items:center;gap:var(--s-3);padding-bottom:var(--s-5)}.projects-hero-logo{height:72px;width:auto}[data-theme=dark] .projects-hero-logo{filter:brightness(0) invert(1)}.projects-hero-sub{font-size:13.5px;letter-spacing:.01em;opacity:.65}.quick-start-wrap{width:100%;max-width:640px;margin:0 auto var(--s-7)}.quick-start-label{font-size:26px;font-weight:300;letter-spacing:-.03em;text-align:center;margin-bottom:var(--s-4);background:linear-gradient(135deg,var(--ink-800) 0,var(--novi-cobalt) 60%,var(--novi-teal) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .quick-start-label{background:linear-gradient(135deg,var(--ink-200) 0,#6EA8FF 60%,#5DD9D4 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.quick-start-box{border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-4);background:var(--surface-2);overflow:hidden;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.quick-start-box:focus-within{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.quick-start-input{display:block;width:100%;background:transparent;border:none;padding:var(--s-4) var(--s-4) var(--s-3);font-family:var(--font-body);font-size:15px;color:var(--text);resize:none;min-height:76px;max-height:200px;outline:none;line-height:1.6}.quick-start-input::placeholder{color:var(--text-3)}.quick-start-bar{display:flex;flex-wrap:wrap;align-items:center;padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);gap:var(--s-2);border-top:var(--stroke-thin) solid var(--border-soft)}.quick-start-bar .quick-start-chip{flex-shrink:0}.quick-start-hint{flex:1 1;min-width:0;font-size:11px;color:var(--text-3);letter-spacing:.01em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-start-btn{flex-shrink:0;align-self:center;background:linear-gradient(135deg,var(--novi-cobalt) 0,#1A5DC6 100%);border:none;box-shadow:0 2px 8px rgba(30,91,198,.32),0 1px 2px rgba(30,91,198,.2);transition:box-shadow var(--dur-2),transform var(--dur-1),opacity var(--dur-1)}.quick-start-btn:not(:disabled):hover{box-shadow:0 4px 16px rgba(30,91,198,.42),0 1px 4px rgba(30,91,198,.24);transform:translateY(-1px)}.quick-start-btn:not(:disabled):active{transform:translateY(0);box-shadow:0 1px 4px rgba(30,91,198,.24)}.quick-start-btn:disabled{background:linear-gradient(135deg,var(--novi-cobalt) 0,#1A5DC6 100%);opacity:.45;box-shadow:none}.quick-start-suggestions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--s-2);margin-top:var(--s-4)}.quick-start-suggestions-label{flex-basis:100%;text-align:center;font-size:11.5px;letter-spacing:.04em;color:var(--text-3);margin-bottom:var(--s-1)}.quick-start-chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font-family:var(--font-body);font-size:12.5px;white-space:nowrap;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1)}.quick-start-chip svg{color:var(--primary);flex-shrink:0}.quick-start-chip:not(:disabled):hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:var(--surface);color:var(--text);transform:translateY(-1px)}.quick-start-chip:disabled{opacity:.45;cursor:default}.quick-start-chip--compact{padding:6px var(--s-2);font-size:12px;gap:6px}.quick-start-chip--icon{padding:0;width:30px;height:30px;justify-content:center}.quick-model-picker{position:relative;flex:0 1 auto;min-width:0}.quick-model-chip{width:100%;max-width:170px;min-width:0}.quick-model-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-model-chip.is-error{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 14%,transparent)}.quick-model-menu{position:absolute;bottom:calc(100% + 6px);left:0;z-index:20;min-width:100%;max-width:240px;margin:0;padding:var(--s-1);list-style:none;background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);box-shadow:0 8px 24px rgba(15,16,18,.14);animation:fadeIn var(--dur-1) var(--ease-out)}.quick-model-option{display:block;width:100%;padding:var(--s-2) var(--s-3);border:none;border-radius:var(--r-2);background:transparent;color:var(--text-2);font-family:var(--font-body);font-size:12.5px;text-align:left;white-space:nowrap;cursor:pointer;transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.quick-model-option:hover{background:var(--bg-2);color:var(--text)}.quick-model-option.is-selected{color:var(--primary);font-weight:600}.quick-start-hint--error{color:var(--danger)}.projects-split{flex:1 1;display:grid;grid-template-columns:minmax(360px,420px) 1fr;min-height:0;overflow:hidden}.projects-create{display:flex;align-items:center;padding:var(--s-7) var(--s-6);border-right:var(--stroke-thin) solid var(--border);background:var(--surface-2);overflow-y:auto}.projects-create-inner{width:100%;margin:auto 0}.projects-hero-bird{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3)}.projects-bird{width:104px;height:104px;flex-shrink:0}.speech-bubble{position:relative;align-self:center;min-width:0;max-width:320px;white-space:normal;word-break:break-word;background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);padding:var(--s-3) var(--s-4);box-shadow:0 2px 10px rgba(0,0,0,.04)}.speech-bubble:after,.speech-bubble:before{content:"";position:absolute;top:50%;width:0;height:0;border-style:solid}.speech-bubble:before{left:-9px;transform:translateY(-50%);border-width:8px 9px 8px 0;border-color:transparent var(--border) transparent transparent}.speech-bubble:after{left:-7px;transform:translateY(-50%);border-width:7px 8px 7px 0;border-color:transparent var(--surface) transparent transparent}.speech-bubble-title{font-size:21px;font-weight:300;letter-spacing:-.02em;line-height:1.4;background:linear-gradient(135deg,var(--ink-800) 0,var(--novi-cobalt) 60%,var(--novi-teal) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .speech-bubble-title{background:linear-gradient(135deg,var(--ink-200) 0,#6EA8FF 60%,#5DD9D4 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.type-caret{display:inline-block;width:2px;height:1.5em;margin-left:3px;vertical-align:middle;position:relative;top:-.2em;background:var(--novi-cobalt);animation:caretBlink 1.05s step-end infinite}[data-theme=dark] .type-caret{background:#6EA8FF}@keyframes caretBlink{0%,50%{opacity:1}50.01%,to{opacity:0}}.projects-create .quick-start-wrap{max-width:none;margin:0}.projects-create .quick-start-suggestions{flex-direction:column;align-items:stretch}.projects-create .quick-start-suggestions-label{text-align:left}.projects-create .quick-start-suggestions .quick-start-chip{justify-content:flex-start;width:100%}.projects-list{padding:var(--s-7) var(--s-6);overflow-y:auto;min-width:0}.projects-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-5)}.projects-list-title{display:flex;align-items:baseline;gap:var(--s-2);font-size:18px;font-weight:400;color:var(--text)}.projects-list-count{font-family:var(--font-mono);font-size:12px;color:var(--text-3);padding:1px 8px;border:var(--stroke-hair) solid var(--border);border-radius:var(--r-pill);background:var(--surface-2)}@media (max-width:880px){.projects-split{display:block;overflow-y:auto}.projects-create{border-right:none;border-bottom:var(--stroke-thin) solid var(--border);overflow:visible}.projects-list{overflow:visible}}@media (max-width:560px){.quick-model-picker,.quick-start-chip{order:1}.quick-start-btn{order:2;margin-left:auto}.quick-start-hint{order:3;flex-basis:100%;text-align:center;margin-top:4px}}.lp-root{--lp-bg:#FAFAF7;--lp-elev:#FFFFFF;--lp-sunken:#F2F1EC;--lp-hover:#F0EFE9;--lp-line:#E5E3DC;--lp-line-strong:#D5D3CB;--lp-line-faint:#EDEBE3;--lp-text:#18181B;--lp-muted:#71717A;--lp-faint:#A1A1AA;--lp-primary:#1E5BC6;--lp-primary-fg:#FFFFFF;--lp-primary-soft:rgba(30,91,198,0.07);--lp-primary-strong:#194FAB;--lp-success:#1E8449;font-family:var(--font-display);background:radial-gradient(900px 600px at 70% -10%,var(--lp-primary-soft),transparent 60%),var(--lp-bg);color:var(--lp-text);min-height:100vh;-webkit-font-smoothing:antialiased}.lp-topbar{height:56px;border-bottom:1px solid var(--lp-line);padding:0 var(--s-5);position:-webkit-sticky;position:sticky;top:0;z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in oklab,var(--lp-bg) 88%,transparent)}.lp-topbar,.lp-topbar-inner{display:flex;align-items:center}.lp-topbar-inner{width:100%;max-width:1200px;margin:0 auto;gap:var(--s-5)}.lp-brand{display:flex;align-items:center;gap:var(--s-3);cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lp-brand-img{height:32px;width:auto}.lp-brand-mark,.lp-brand-name{color:var(--lp-text)}.lp-brand-name{font-size:16px;font-weight:400;letter-spacing:-.01em}.lp-brand-cn{font-size:10px;font-weight:300;letter-spacing:.25em;color:var(--lp-faint);margin-left:2px}.lp-nav{display:flex;gap:2px;margin-left:var(--s-6)}.lp-nav a{padding:6px 12px;font-size:13.5px;color:var(--lp-muted);border-radius:var(--r-2);cursor:pointer;transition:color .12s,background .12s}.lp-nav a:hover{color:var(--lp-text);background:var(--lp-hover)}.lp-topbar-spacer{flex:1 1}.lp-topbar-actions{display:flex;align-items:center;gap:var(--s-2)}.lp-beta-tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;padding:2px 8px;border:1px solid var(--lp-line-strong);border-radius:var(--r-pill);color:var(--lp-faint);background:var(--lp-elev)}.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:34px;padding:0 var(--s-4);font-family:var(--font-body);font-size:13.5px;font-weight:500;border-radius:var(--r-2);border:1px solid transparent;cursor:pointer;transition:all .12s cubic-bezier(.2,.7,.2,1);white-space:nowrap;letter-spacing:-.005em}.lp-btn:active{transform:translateY(.5px)}.lp-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.lp-btn-primary{background:var(--lp-primary);color:var(--lp-primary-fg)}.lp-btn-primary:hover:not(:disabled){background:var(--lp-primary-strong)}.lp-btn-secondary{background:var(--lp-text);color:#FAFAFA}.lp-btn-secondary:hover:not(:disabled){opacity:.88}.lp-btn-sm{height:28px;font-size:12.5px;padding:0 var(--s-3)}.lp-btn-lg{height:44px;font-size:14.5px;padding:0 var(--s-5);border-radius:var(--r-3)}.lp-container{max-width:1200px;margin:0 auto;padding:0 var(--s-6)}.lp-hero{padding:96px 0 80px}.lp-eyebrow{display:inline-flex;align-items:center;gap:var(--s-2);padding:4px 10px 4px 4px;border-radius:var(--r-pill);background:var(--lp-elev);border:1px solid var(--lp-line);font-family:var(--font-mono);font-size:11.5px;color:var(--lp-muted);margin-bottom:var(--s-5)}.lp-eyebrow-tag{background:var(--lp-primary);color:#fff;padding:1px 8px;border-radius:var(--r-pill);font-size:10.5px;font-weight:500}.lp-h1{font-family:var(--font-display);font-weight:250;font-size:clamp(48px,7vw,88px);line-height:.98;letter-spacing:-.035em;color:var(--lp-text);max-width:16ch;margin:0}.lp-h1 em{font-style:normal;font-weight:400;color:var(--lp-primary)}.lp-sub{font-size:19px;line-height:1.55;color:var(--lp-muted);max-width:56ch;margin-top:var(--s-5);font-weight:300}.lp-auth-form{margin-top:var(--s-7);flex-direction:column;max-width:500px}.lp-auth-form,.lp-auth-row{display:flex;gap:var(--s-2)}.lp-auth-input{flex:1 1;height:44px;padding:0 var(--s-4);background:var(--lp-elev);border:1px solid var(--lp-line-strong);border-radius:var(--r-3);color:var(--lp-text);font-family:var(--font-body);font-size:14px;outline:none;transition:border-color .12s,box-shadow .12s;box-sizing:border-box}.lp-auth-input::placeholder{color:var(--lp-faint)}.lp-auth-input:focus{border-color:var(--lp-primary);box-shadow:0 0 0 3px rgba(30,91,198,.12)}.lp-auth-input-err{border-color:#C8323A!important;box-shadow:0 0 0 3px rgba(200,50,58,.1)!important}.lp-auth-input:disabled{opacity:.5;cursor:not-allowed}.lp-auth-error{font-size:12.5px;color:#C8323A;margin:0}@keyframes lp-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.lp-shake{animation:lp-shake .45s cubic-bezier(.2,.7,.2,1)}.lp-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:lp-spin .6s linear infinite}@keyframes lp-spin{to{transform:rotate(1turn)}}.lp-trust{display:flex;gap:var(--s-5);margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px dashed var(--lp-line);font-family:var(--font-mono);font-size:11px;color:var(--lp-faint);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap}.lp-canvas{margin-top:80px;perspective:1600px}.lp-canvas-frame{border:1px solid var(--lp-line);border-radius:14px;background:var(--lp-elev);box-shadow:0 24px 60px -20px rgba(0,0,0,.14),0 0 0 .5px rgba(0,0,0,.06);overflow:hidden;transform:rotateX(2deg);transform-origin:center top}.lp-canvas-bar{height:38px;display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);border-bottom:1px solid var(--lp-line);background:var(--lp-sunken)}.lp-dots{display:flex;gap:6px}.lp-dots span{width:10px;height:10px;border-radius:50%;background:var(--lp-line-strong)}.lp-url{flex:1 1;font-size:11.5px;text-align:center}.lp-tail,.lp-url{font-family:var(--font-mono);color:var(--lp-faint)}.lp-tail{font-size:10.5px;letter-spacing:.08em}.lp-canvas-body{display:grid;grid-template-columns:190px 1fr 300px;min-height:420px}.lp-side{border-right:1px solid var(--lp-line);background:var(--lp-sunken);padding:var(--s-4);display:flex;flex-direction:column;gap:2px;font-size:13px}.lp-group-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-faint);margin:10px 0 4px;padding:0 var(--s-2)}.lp-item{display:flex;align-items:center;gap:var(--s-2);padding:5px var(--s-2);border-radius:var(--r-2);color:var(--lp-muted);font-size:13px}.lp-item-active{background:rgba(0,0,0,.05);color:var(--lp-text);font-weight:500}.lp-item-mono{font-family:var(--font-mono);font-size:12px}.lp-item-primary{color:var(--lp-primary)}.lp-main{background:var(--lp-bg);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}.lp-crumb{display:flex;gap:6px;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--lp-faint)}.lp-crumb-sep{color:var(--lp-line-strong)}.lp-crumb-cur{color:var(--lp-text)}.lp-preview-area{flex:1 1;background-image:linear-gradient(var(--lp-line-faint) .5px,transparent .5px),linear-gradient(90deg,var(--lp-line-faint) .5px,transparent .5px);background-size:24px 24px;background-color:var(--lp-elev);display:flex;align-items:center;justify-content:center;padding:var(--s-6);min-height:280px}.lp-preview-area,.lp-preview-card{border:1px solid var(--lp-line);border-radius:var(--r-3)}.lp-preview-card{background:var(--lp-elev);padding:var(--s-5);width:100%;max-width:320px;box-shadow:0 4px 16px -8px rgba(0,0,0,.1),0 0 0 .5px rgba(0,0,0,.06)}.lp-badge{font-family:var(--font-mono);font-size:10.5px;font-weight:500;padding:2px 8px;border-radius:var(--r-pill);border:1px solid}.lp-badge-primary{color:var(--lp-primary)}.lp-badge-green{color:var(--lp-success);font-family:var(--font-mono);font-size:10px}.lp-task{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--lp-line);border-radius:6px;font-size:12px;color:var(--lp-text)}.lp-task-done{color:var(--lp-faint);text-decoration:line-through}.lp-task-check{width:12px;height:12px;border-radius:3px;border:1px solid var(--lp-line-strong);background:transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.lp-task-check-done{background:var(--lp-success);border-color:var(--lp-success)}.lp-chat{border-left:1px solid var(--lp-line);background:var(--lp-elev);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}.lp-chat-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--s-3);border-bottom:1px solid var(--lp-line)}.lp-msg{font-size:12.5px;line-height:1.55;padding:10px 12px;border-radius:var(--r-3);max-width:92%}.lp-msg-user{background:var(--lp-primary);color:#fff;align-self:flex-end}.lp-msg-ai{background:var(--lp-sunken);color:var(--lp-text)}.lp-who{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;margin-bottom:4px;opacity:.7;text-transform:uppercase}.lp-section{margin-top:128px}.lp-muted{color:var(--lp-muted)}.lp-section-title{font-family:var(--font-display);font-weight:300;font-size:40px;letter-spacing:-.02em;margin-bottom:var(--s-3)}.lp-section-lede{font-size:16px;color:var(--lp-muted);max-width:56ch;margin-bottom:var(--s-7);font-weight:300}.lp-feat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--s-4);gap:var(--s-4)}.lp-feat-card{padding:var(--s-6);border:1px solid var(--lp-line);border-radius:var(--r-3);background:var(--lp-elev);display:flex;flex-direction:column;gap:var(--s-3);min-height:220px;position:relative}.lp-feat-num{position:absolute;top:var(--s-4);right:var(--s-4);font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--lp-faint)}.lp-feat-title{font-size:18px;font-weight:500;letter-spacing:-.01em;margin-top:var(--s-3)}.lp-feat-desc{font-size:13.5px;color:var(--lp-muted);line-height:1.55}.lp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:var(--s-2)}.lp-chip{display:inline-flex;align-items:center;padding:4px 10px;background:var(--lp-sunken);border:1px solid var(--lp-line);border-radius:var(--r-pill);font-size:12px;color:var(--lp-muted)}.lp-flow{padding:128px 0}.lp-flow-steps{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--lp-line);border-radius:var(--r-3);background:var(--lp-elev);overflow:hidden}.lp-flow-step{padding:var(--s-6);border-right:1px solid var(--lp-line);display:flex;flex-direction:column;gap:var(--s-4)}.lp-flow-step:last-child{border-right:none}.lp-flow-num{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--lp-faint)}.lp-flow-title{font-size:20px;font-weight:500;letter-spacing:-.01em}.lp-flow-desc{font-size:13.5px;color:var(--lp-muted);line-height:1.55}.lp-flow-visual{margin-top:var(--s-3);background:var(--lp-bg);border:1px solid var(--lp-line);border-radius:var(--r-2);padding:var(--s-4);min-height:96px;justify-content:center}.lp-flow-visual,.lp-footer-cta{display:flex;align-items:center}.lp-footer-cta{margin:0 0 80px;padding:80px 48px;border:1px solid var(--lp-line);border-radius:14px;background:radial-gradient(600px 400px at 80% 30%,var(--lp-primary-soft),transparent 60%),var(--lp-elev);justify-content:space-between;gap:var(--s-6);position:relative;overflow:hidden}.lp-footer-deco{position:absolute;right:-24px;top:-12px;width:220px;height:auto;opacity:.14;pointer-events:none}.lp-footer-cta-h{font-family:var(--font-display);font-weight:300;font-size:36px;letter-spacing:-.02em;line-height:1.1;max-width:22ch;position:relative}.lp-docfoot{padding:var(--s-6) 0;border-top:1px solid var(--lp-line);font-family:var(--font-mono);font-size:11px;color:var(--lp-faint);display:flex;justify-content:space-between;letter-spacing:.08em;margin-bottom:var(--s-6)}.lp-docfoot-links{display:flex;gap:var(--s-6)}.lp-docfoot-links a{cursor:pointer}.lp-docfoot-links a:hover{color:var(--lp-text)}@media (max-width:900px){.lp-feat-grid,.lp-flow-steps{grid-template-columns:1fr}.lp-flow-step{border-right:none;border-bottom:1px solid var(--lp-line)}.lp-flow-step:last-child{border-bottom:none}.lp-canvas-body{grid-template-columns:1fr}.lp-side{display:none}.lp-chat{border-left:none;border-top:1px solid var(--lp-line)}.lp-footer-cta{flex-direction:column;align-items:flex-start}.lp-nav{display:none}.lp-auth-row{flex-direction:column}}.preview-frame-wrap{position:relative}.preview-loading{top:36px;left:0;right:0;bottom:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--ink-500);animation:fadeIn .12s ease}.elpick-hint,.preview-loading{position:absolute;font-size:12px}.elpick-hint{top:44px;left:50%;transform:translateX(-50%);z-index:20;background:var(--primary);color:#fff;padding:4px 12px;border-radius:var(--r-pill);box-shadow:var(--shadow-2);pointer-events:none;animation:fadeIn var(--dur-1) var(--ease-out)}.elpick-popup{position:fixed;z-index:1100;display:flex;flex-direction:column;gap:var(--s-2);background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-3);padding:var(--s-3);animation:dialogIn var(--dur-2) var(--ease-out)}.elpick-popup-head{display:flex;align-items:center;gap:var(--s-2)}.elpick-popup-title{flex:1 1;font-size:13px;font-weight:600;color:var(--text)}.elpick-popup-selector,.elpick-popup-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elpick-popup-selector{font-family:var(--font-mono);font-size:11px;color:var(--text-3);background:var(--bg-3);border-radius:var(--r-1);padding:3px 6px}.elpick-popup-textarea{width:100%;resize:vertical;min-height:56px;font-size:13px;line-height:1.5;color:var(--text);background:var(--surface-2);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2);padding:var(--s-2);outline:none}.elpick-popup-textarea:focus{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.elpick-popup-actions{display:flex;justify-content:flex-end;gap:var(--s-2)}.staged-bar{margin:0 var(--s-5);padding:var(--s-2) var(--s-3);background:color-mix(in srgb,var(--primary) 8%,var(--surface));border:var(--stroke-thin) solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:var(--r-2)}.staged-bar,.staged-bar-info{display:flex;align-items:center;gap:var(--s-2)}.staged-bar-info{flex:1 1}.staged-bar-btn,.staged-bar-info{font-size:12px;color:var(--text-2)}.staged-bar-btn{padding:3px 10px;border-radius:var(--r-pill);border:var(--stroke-thin) solid var(--border);background:var(--surface);cursor:pointer}.staged-bar-btn:hover{color:var(--text);border-color:var(--text-3)}.staged-bar-btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.staged-bar-btn-primary:hover{color:#fff;filter:brightness(1.05)}.staged-bar-btn:disabled{opacity:.5;cursor:not-allowed}.ctx-menu{position:fixed;z-index:1300;min-width:176px;padding:4px;background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-2);box-shadow:var(--shadow-3);animation:dialogIn var(--dur-1) var(--ease-out)}.ctx-menu-path{padding:4px 8px 6px;margin-bottom:2px;border-bottom:var(--stroke-thin) solid var(--border);font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}.ctx-menu-item{display:flex;align-items:center;gap:var(--s-2);width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--r-1);font-size:12.5px;color:var(--text-2);cursor:pointer;text-align:left;transition:background var(--dur-1),color var(--dur-1)}.ctx-menu-item:hover{background:var(--bg-3);color:var(--text)}.ctx-menu-item svg{color:var(--text-3);flex-shrink:0}.ctx-menu-item:hover svg{color:var(--primary)}.chat-attached-bar{display:flex;flex-wrap:wrap;gap:6px;margin:0 var(--s-5) var(--s-2)}.chat-attached-chip{display:inline-flex;align-items:center;gap:4px;max-width:220px;padding:3px 4px 3px 8px;border:var(--stroke-thin) solid color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:var(--r-pill);background:color-mix(in srgb,var(--primary) 8%,var(--surface));font-size:11.5px;color:var(--text-2)}.chat-attached-chip svg{color:var(--primary);flex-shrink:0}.chat-attached-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attached-chip-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-3);cursor:pointer;flex-shrink:0}.chat-attached-chip-x:hover{background:var(--bg-3);color:var(--text)}.chat-attached-chip-x svg{color:inherit}.staged-modal{display:flex;flex-direction:column;width:460px;max-width:92vw;max-height:80vh;background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-3);animation:dialogIn var(--dur-2) var(--ease-out)}.staged-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:var(--s-4) var(--s-4) var(--s-3);border-bottom:var(--stroke-thin) solid var(--border)}.staged-modal-list{flex:1 1;overflow-y:auto;padding:var(--s-3) var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}.staged-empty{font-size:13px;color:var(--text-3);text-align:center;padding:var(--s-6) 0}.staged-item{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);background:var(--surface-2);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2)}.staged-item-head{display:flex;align-items:center;gap:var(--s-2)}.staged-item-index{flex-shrink:0;width:20px;height:20px;display:grid;place-items:center;font-size:11px;font-weight:600;color:#fff;background:var(--primary);border-radius:var(--r-pill)}.staged-item-desc{flex:1 1;font-size:13px;font-weight:500;color:var(--text)}.staged-item-desc,.staged-item-selector{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staged-item-selector{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.staged-item-textarea{width:100%;resize:vertical;min-height:44px;font-size:13px;line-height:1.5;color:var(--text);background:var(--surface);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2);padding:var(--s-2);outline:none}.staged-item-textarea:focus{border-color:color-mix(in srgb,var(--primary) 55%,var(--border))}.staged-modal-foot{display:flex;justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-top:var(--stroke-thin) solid var(--border)}.skill-card{display:flex;align-items:flex-start;gap:var(--s-3);width:100%;text-align:left;padding:var(--s-3);background:var(--surface-2);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2);cursor:pointer;transition:border-color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out)}.skill-card:hover:not(:disabled){border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--surface)}.skill-card:disabled{opacity:.5;cursor:not-allowed}.skill-card-icon{flex-shrink:0;color:var(--primary);margin-top:1px}.skill-card-text{display:flex;flex-direction:column;gap:2px}.skill-card-name{font-size:13px;font-weight:600;color:var(--text)}.skill-card-desc{font-size:12px;color:var(--text-3);line-height:1.5}.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3)}.template-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);text-align:left;padding:var(--s-3);background:var(--surface-2);border:var(--stroke-thin) solid var(--border-soft);border-radius:var(--r-2);cursor:pointer;transition:border-color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out)}.template-card:hover:not(:disabled){border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--surface)}.template-card:disabled{opacity:.5;cursor:not-allowed}.template-card--scratch{border-style:dashed}.template-card-icon{color:var(--primary)}.template-card-name{font-size:13px;font-weight:600;color:var(--text)}.template-card-desc{font-size:12px;color:var(--text-3);line-height:1.45}.template-notice{font-size:12px;color:var(--text-3);padding:var(--s-2) var(--s-3);background:var(--surface-2);border-radius:var(--r-2)}.template-notice--error{color:var(--danger)}.md-reader{flex:1 1;overflow-y:auto;background:var(--surface);padding:var(--s-5) var(--s-6);display:flex;justify-content:center}.md-reader-inner{width:100%;max-width:760px}.md-reader-inner h1{font-size:24px}.md-reader-inner h2{font-size:19px}.md-reader-inner h3{font-size:16px}.md-reader-inner h4,.md-reader-inner li,.md-reader-inner p{font-size:14px}.file-panel-footer{flex-shrink:0;border-top:var(--stroke-thin) solid var(--border);padding:var(--s-2);display:flex;flex-direction:column;gap:var(--s-2)}.file-panel-footer-actions{display:flex;flex-direction:column;gap:4px}.file-panel-footer-actions .btn{justify-content:flex-start;width:100%}.file-panel-footer-stat{align-self:flex-start}.panel-collapsed .file-panel-footer{display:none}.account-badge-root{position:relative;display:inline-flex}.account-badge{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:var(--stroke-thin) solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text);cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.account-badge:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:var(--surface)}.account-badge svg{color:var(--novi-cobalt)}.account-badge-value{font-family:var(--font-mono);font-size:12.5px;font-weight:500}.account-badge-ring{position:relative;display:inline-grid;place-items:center;width:24px;height:24px;flex-shrink:0}.account-badge-ring .account-ring-svg{position:absolute;inset:0}.account-badge-ring .account-ring-track{fill:none;stroke:color-mix(in srgb,var(--text-3) 30%,transparent);stroke-width:2}.account-badge-ring .account-ring-fill{fill:none;stroke:var(--novi-cobalt);stroke-width:2;stroke-linecap:round;transition:stroke-dashoffset var(--dur-2) var(--ease-out),stroke var(--dur-2) var(--ease-out)}.account-badge-ring .account-ring-fill[data-level=warn]{stroke:var(--warning)}.account-badge-ring .account-ring-fill[data-level=danger]{stroke:var(--danger)}.account-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:1200;width:320px;max-height:min(72vh,560px);overflow-y:auto;background:var(--surface);border:var(--stroke-thin) solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-3);padding:var(--s-3);animation:dialogIn var(--dur-2) var(--ease-out)}.account-popover-head{display:flex;align-items:center;gap:var(--s-2);padding-bottom:var(--s-3);border-bottom:var(--stroke-thin) solid var(--border)}.account-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--bg-3);color:var(--text-2);flex-shrink:0}.account-id{flex:1 1;min-width:0}.account-name{font-size:13px;font-weight:600;color:var(--text)}.account-email,.account-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-email{font-size:11.5px;color:var(--text-3)}.account-popover-error{margin-top:var(--s-2);font-size:12px;color:var(--danger)}.account-section{padding-top:var(--s-3)}.account-section-title{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s-2)}.account-credit-total{display:flex;align-items:baseline;gap:6px;color:var(--text)}.account-credit-total svg{color:var(--novi-cobalt);align-self:center}.account-credit-num{font-family:var(--font-mono);font-size:22px;font-weight:600}.account-credit-unit{font-size:12px;color:var(--text-3)}.account-daily{margin-top:var(--s-2)}.account-daily-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text-2)}.account-daily-remaining{color:var(--text-3);margin-top:2px}.account-daily-bar{height:6px;border-radius:var(--r-pill);background:var(--bg-3);overflow:hidden;margin:6px 0}.account-daily-bar-fill{height:100%;background:linear-gradient(90deg,var(--novi-cobalt),var(--novi-teal,#2BB3A3));border-radius:var(--r-pill);transition:width var(--dur-2) var(--ease-out)}.account-models{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.account-model{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:5px 6px;border-radius:var(--r-1)}.account-model:hover{background:var(--surface-2)}.account-model-main{display:flex;align-items:center;gap:var(--s-2);min-width:0}.account-model-icon{width:16px;height:16px;flex-shrink:0;border-radius:3px}.account-model-icon-dot{background:var(--novi-cobalt);border-radius:50%;width:8px;height:8px}.account-model-name{font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-model-price{font-family:var(--font-mono);font-size:11px;color:var(--text-3);flex-shrink:0}.account-models-empty{font-size:12px;color:var(--text-3)}.account-popover-foot{margin-top:var(--s-3);padding-top:var(--s-2);border-top:var(--stroke-thin) solid var(--border);font-size:11px;color:var(--text-3)}