:root{color-scheme:light;--font-sans: "General Sans", "Segoe UI", system-ui, sans-serif;--font-display: "Sentient", "Iowan Old Style", "Palatino Linotype", serif;--font-mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;--page: #faf9f5;--page-raised: #fffefb;--surface: #f3f2ed;--surface-strong: #e9e7df;--ink: #242621;--ink-soft: #3c4039;--muted: #61645f;--muted-light: #747872;--line: #e7e6df;--line-strong: #d8d8d0;--accent: #2079c2;--accent-strong: #145f9e;--accent-soft: #e8f0f4;--on-ink: #fffef9;--success: #2f6b3f;--success-soft: #e9eee5;--danger: #a5402f;--danger-soft: #f6e6e1;--warning: #8a5a12;--warning-soft: #f5ecd9;--overlay: rgba(36, 38, 33, .32);--shadow-sm: 0 1px 2px rgba(36, 38, 33, .06);--shadow-md: 0 8px 24px rgba(36, 38, 33, .08);--shadow-lg: 0 24px 64px rgba(36, 38, 33, .16);--focus-ring: 0 0 0 3px rgba(32, 121, 194, .22);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--header-height: 56px;--content-width: 760px;--wide-content-width: 1040px;--ease: cubic-bezier(.075, .82, .165, 1);--duration: .25s}[data-theme=dark]{color-scheme:dark;--page: #111211;--page-raised: #161716;--surface: #1c1d1b;--surface-strong: #262724;--ink: #f1f2ee;--ink-soft: #d6d7d1;--muted: #bcbcb5;--muted-light: #92928c;--line: #262724;--line-strong: #353632;--accent: #8cc7f5;--accent-strong: #b3dbfa;--accent-soft: #16273a;--on-ink: #111211;--success: #8fcf9e;--success-soft: #18291c;--danger: #f0a191;--danger-soft: #3a1f1a;--warning: #e3c07a;--warning-soft: #33291a;--overlay: rgba(0, 0, 0, .6);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .55);--focus-ring: 0 0 0 3px rgba(140, 199, 245, .25)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body{width:100%;height:100%}html{background:var(--page);font-family:var(--font-sans);font-size:15px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{min-width:320px;overflow:hidden;background:var(--page);color:var(--ink);line-height:1.5}button,input,textarea,select{color:inherit;font:inherit}button,summary{-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}input[type=checkbox],input[type=radio]{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent)}:where(button,input,textarea,select,summary,a,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring)}::selection{background:var(--accent-soft);color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:var(--radius-pill);background:var(--line-strong);background-clip:padding-box}#app{display:flex;flex-direction:column}.app-container{display:flex;width:100%;height:100vh;height:100dvh;min-height:0;flex-direction:column;background:var(--page)}.content,.artifacts-page{display:flex;min-height:0;flex:1;flex-direction:column}.tab-strip{display:flex;height:var(--header-height);flex-shrink:0;align-items:center;gap:16px;padding:0 12px;border-bottom:1px solid var(--line);background:var(--page)}.tab-strip-main{display:flex;min-width:0;flex:1;align-items:center;gap:4px}.tab-strip-tabs{display:flex;min-width:0;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none}.tab-strip-tabs::-webkit-scrollbar{display:none}.tab{display:flex;height:36px;min-width:140px;max-width:260px;flex-shrink:0;align-items:center;gap:4px;padding:0 4px 0 12px;border:1px solid transparent;border-radius:var(--radius-md);color:var(--muted);cursor:pointer;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.tab:hover{background:var(--surface);color:var(--ink)}.tab.active{border-color:var(--line);background:var(--page-raised);box-shadow:var(--shadow-sm);color:var(--ink)}.tab-label{display:flex;min-width:0;flex:1;align-items:baseline;overflow:hidden;white-space:nowrap}.tab-model{overflow:hidden;font-size:.85rem;font-weight:500;text-overflow:ellipsis}.tab-provider{overflow:hidden;color:var(--muted-light);font-size:.75rem;text-overflow:ellipsis}.tab-actions{display:flex;flex-shrink:0;opacity:0;transition:opacity var(--duration) var(--ease)}.tab:hover .tab-actions,.tab.active .tab-actions,.tab:focus-within .tab-actions{opacity:1}.tab-btn{display:flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--muted-light);font-size:.9rem}.tab-btn:hover{background:var(--surface-strong);color:var(--ink)}.tab-strip-actions{display:flex;flex-shrink:0;align-items:center;gap:2px}.tab-strip-btn{display:flex;width:36px;height:36px;flex:0 0 36px;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--muted);font-size:1.1rem;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.tab-strip-btn:hover:not(:disabled){background:var(--surface);color:var(--ink)}.view-switcher{display:flex;gap:2px;margin-right:8px;padding:3px;border-radius:var(--radius-pill);background:var(--surface)}.view-switcher-btn{display:flex;height:30px;align-items:center;gap:6px;padding:0 14px;border-radius:var(--radius-pill);color:var(--muted);font-size:.85rem;font-weight:500;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.view-switcher-btn:hover{color:var(--ink)}.view-switcher-btn.active{background:var(--ink);color:var(--on-ink)}.chat-scroll{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:40px 24px 24px}.chat-area{width:min(100%,var(--content-width));margin:0 auto}.suggestions{display:flex;min-height:52vh;flex-direction:column;justify-content:center;gap:32px;padding:48px 0}.suggestions-title{color:var(--ink);font-family:var(--font-display);font-size:clamp(2rem,4.5vw,2.6rem);font-weight:400;letter-spacing:-.02em;line-height:1.1}.suggestions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.suggestion-card{min-height:64px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised);color:var(--ink-soft);font-size:.9rem;line-height:1.45;text-align:left;transition:border-color var(--duration) var(--ease),background var(--duration) var(--ease)}.suggestion-card:hover{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}.message{display:flex;flex-direction:column;margin-bottom:28px}.message-user{align-items:flex-end}.message-assistant,.message-tool{align-items:stretch}.assistant-stream{display:flex;flex-direction:column;gap:12px}.message-bubble{max-width:100%;overflow-wrap:anywhere}.user-bubble{max-width:min(80%,620px);padding:10px 16px;border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);line-height:1.55}.message-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.attachment-thumb{display:block;max-width:200px;max-height:160px;border:1px solid var(--line);border-radius:var(--radius-md);object-fit:cover}.attachment-audio{max-width:100%;height:36px}.attachment-file{display:inline-flex;max-width:100%;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--page-raised);color:var(--ink-soft);font-size:.8rem}.attachment-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--duration) var(--ease)}.message-user .message-actions{margin-top:4px}.message:hover .message-actions,.message:focus-within .message-actions{opacity:1}.message-meta-row{display:flex;align-items:center;gap:8px;margin-top:8px}.msg-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-md);color:var(--muted-light);transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.msg-action-btn:hover{background:var(--surface);color:var(--ink)}.msg-action-icon-btn{width:30px;height:30px;font-size:.95rem}.msg-action-text-btn{height:28px;padding:0 10px;font-size:.8rem}.message-model-chip{overflow:hidden;color:var(--muted-light);font-family:var(--font-mono);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.assistant-bubble{color:var(--ink);line-height:1.65}.message-content>:first-child{margin-top:0}.message-content>:last-child{margin-bottom:0}.message-content p,.message-content ul,.message-content ol,.message-content blockquote,.message-content table,.message-content .code-block{margin:0 0 14px}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin:24px 0 10px;font-weight:600;letter-spacing:-.01em;line-height:1.3}.message-content h1{font-size:1.45rem}.message-content h2{font-size:1.25rem}.message-content h3{font-size:1.1rem}.message-content h4,.message-content h5,.message-content h6{font-size:1rem}.message-content ul,.message-content ol{padding-left:22px}.message-content li+li{margin-top:4px}.message-content a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:3px}.message-content a:hover{text-decoration-color:currentColor}.message-content strong{font-weight:600}.message-content hr{margin:24px 0;border:0;border-top:1px solid var(--line)}.message-content blockquote{padding-left:14px;border-left:2px solid var(--line-strong);color:var(--muted)}.message-content img{max-width:100%;border-radius:var(--radius-md)}.message-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.9rem}.message-content th,.message-content td{padding:8px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.message-content th{border-bottom-color:var(--line-strong);color:var(--muted);font-size:.8rem;font-weight:500}.message-content code{padding:1px 6px;border-radius:var(--radius-sm);background:var(--surface);font-family:var(--font-mono);font-size:.85em}.code-block{position:relative}.code-block pre,pre.code-block{overflow-x:auto;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-soft);font-family:var(--font-mono);font-size:.8rem;line-height:1.6;white-space:pre}.code-block pre code{padding:0;background:none;font-size:inherit}.code-copy-btn{position:absolute;top:8px;right:8px;z-index:1;display:flex;width:30px;height:30px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--page-raised);color:var(--muted);opacity:0;transition:opacity var(--duration) var(--ease),color var(--duration) var(--ease)}.code-block:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:1}.code-copy-btn:hover{color:var(--ink)}.assistant-thinking{color:var(--muted)}.assistant-thinking-summary{display:inline-flex;height:30px;align-items:center;gap:6px;padding:0 10px 0 6px;border-radius:var(--radius-md);font-size:.85rem;-webkit-user-select:none;user-select:none;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.assistant-thinking-summary:hover{background:var(--surface);color:var(--ink)}.assistant-thinking-caret{display:inline-flex;width:14px;justify-content:center;font-size:1.1rem;line-height:1;transition:transform var(--duration) var(--ease)}.assistant-thinking[open] .assistant-thinking-caret{transform:rotate(90deg)}.assistant-thinking-label{display:flex;align-items:center;gap:8px}.assistant-thinking-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.assistant-thinking-body{margin:6px 0 0 12px;padding:2px 0 2px 14px;border-left:1px solid var(--line-strong);color:var(--muted);font-size:.88rem;line-height:1.6}.tool-call-bubble,.tool-bubble{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised)}.tool-call-header{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem}.tool-call-header strong{color:var(--ink);font-family:var(--font-mono);font-size:.82rem;font-weight:500}.tool-call-args,.tool-content{max-height:280px;overflow:auto;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface);color:var(--ink-soft);font-family:var(--font-mono);font-size:.78rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.tool-info{color:var(--muted);font-size:.85rem;line-height:1.5}.tool-label{font-family:var(--font-mono);font-size:.75rem}.tool-bubble .msg-action-text-btn{align-self:flex-start;margin-left:-6px}.tool-response-input{width:100%;min-height:72px;resize:vertical;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--page);font-family:var(--font-mono);font-size:.8rem;line-height:1.5}.tool-response-input:focus{border-color:var(--accent);outline:none;box-shadow:var(--focus-ring)}.tool-response-input::placeholder,.chat-input::placeholder,.form-input::placeholder{color:var(--muted-light)}.tool-continue-row{display:flex;justify-content:flex-start;margin:-8px 0 28px}.streaming-indicator{display:flex;align-items:center;gap:5px;padding:8px 2px}.streaming-indicator .dot{width:6px;height:6px;border-radius:50%;background:var(--muted-light);animation:pulse 1.2s infinite ease-in-out}.streaming-indicator .dot:nth-child(2){animation-delay:.16s}.streaming-indicator .dot:nth-child(3){animation-delay:.32s}@keyframes pulse{0%,80%,to{opacity:.3}40%{opacity:1}}.upload-progress{display:flex;max-width:340px;flex-direction:column;gap:8px;padding:8px 2px}.upload-progress-label{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.upload-progress-track{height:4px;overflow:hidden;border-radius:var(--radius-pill);background:var(--surface-strong)}.upload-progress-bar{height:100%;border-radius:inherit;background:var(--accent);transition:width .12s linear}.input-area{position:relative;flex-shrink:0;padding:8px 24px 20px;background:var(--page)}.input-area.drag-over:before{position:absolute;inset:0 16px 12px;z-index:2;border:1px dashed var(--accent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent-soft) 80%,transparent);content:"";pointer-events:none}.input-container{display:flex;width:min(100%,var(--content-width));flex-direction:column;margin:0 auto;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--page-raised);box-shadow:var(--shadow-md);transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.input-container:focus-within{border-color:var(--muted-light)}.input-row{display:flex}.chat-input{width:100%;min-height:52px;max-height:200px;resize:none;padding:14px 16px 6px;border:0;background:transparent;line-height:1.5}.chat-input:focus{outline:none;box-shadow:none}.input-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 8px}.input-toolbar{display:flex;min-width:0;align-items:center;gap:2px}.input-actions{display:flex;flex-shrink:0;align-items:center}.toolbar-btn{display:flex;width:34px;height:34px;flex:0 0 34px;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--muted);font-size:1.05rem;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.toolbar-btn:hover{background:var(--surface);color:var(--ink)}.toolbar-btn.recording{background:var(--danger-soft);color:var(--danger);animation:recording-pulse 1.4s infinite ease-in-out}@keyframes recording-pulse{50%{opacity:.6}}.model-btn{width:auto;max-width:240px;flex:0 1 auto;gap:6px;margin-right:4px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:var(--radius-pill)}.model-label{overflow:hidden;font-family:var(--font-mono);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.send-btn{display:flex;height:36px;align-items:center;gap:6px;padding:0 16px;border-radius:var(--radius-pill);background:var(--ink);color:var(--on-ink);font-size:.85rem;font-weight:500;transition:background var(--duration) var(--ease)}.send-btn:hover{background:var(--ink-soft)}.pending-attachments{display:flex;flex-wrap:wrap;gap:6px;padding:10px 10px 0}.pending-att{display:flex;max-width:240px;align-items:center;gap:4px;padding:4px 4px 4px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);font-size:.8rem}.pending-att:has(.pending-att-thumb){padding-left:4px}.pending-att-thumb{width:36px;height:36px;border-radius:var(--radius-sm);object-fit:cover}.pending-att-name{overflow:hidden;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap}.pending-att-remove{display:flex;width:24px;height:24px;flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--muted-light)}.pending-att-remove:hover{background:var(--surface-strong);color:var(--ink)}.btn{display:inline-flex;height:36px;flex-shrink:0;align-items:center;justify-content:center;gap:6px;padding:0 16px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--page-raised);color:var(--ink);font-size:.85rem;font-weight:500;white-space:nowrap;transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.btn:hover:not(:disabled){border-color:var(--muted-light);background:var(--surface)}.btn-primary{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.btn-primary:hover:not(:disabled){border-color:var(--ink-soft);background:var(--ink-soft)}.btn-sm{height:30px;padding:0 12px;font-size:.8rem}.overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--overlay);animation:fade-in var(--duration) var(--ease)}.overlay:has(>.dropdown-menu){align-items:flex-start;justify-content:flex-end;padding:calc(var(--header-height) - 4px) 12px 12px;background:transparent}.modal{display:flex;width:min(100%,600px);max-height:min(86vh,860px);max-height:min(86dvh,860px);flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised);box-shadow:var(--shadow-lg);animation:rise-in var(--duration) var(--ease)}.modal-sm{width:min(100%,420px)}.modal-debug{width:min(100%,920px)}.modal-header{display:flex;min-height:60px;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 24px}.modal-header h3{font-family:var(--font-display);font-size:1.35rem;font-weight:400;letter-spacing:-.01em}.debug-modal-header-copy{display:flex;align-items:center;gap:12px}.modal-close{display:flex;width:34px;height:34px;flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--muted);font-size:1.15rem}.modal-close:hover{background:var(--surface);color:var(--ink)}.modal-body{min-height:0;flex:1;overflow-y:auto;padding:8px 24px 24px}.settings-tabs+.modal-body{padding-top:20px}.debug-modal-body{display:flex;flex-direction:column;gap:20px}.modal-footer{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--line);background:var(--page)}.modal-footer-left{display:flex;gap:8px;margin-right:auto}.dropdown-menu{display:flex;min-width:220px;flex-direction:column;padding:6px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised);box-shadow:var(--shadow-lg);animation:rise-in var(--duration) var(--ease)}.dropdown-item{display:flex;min-height:36px;flex-shrink:0;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-md);color:var(--ink);font-size:.875rem;text-align:left}.dropdown-item i{color:var(--muted);font-size:1rem}.dropdown-item:hover{background:var(--surface)}.dropdown-item:last-child:not(:first-child){margin-top:5px;border-top:1px solid var(--line);border-radius:0 0 var(--radius-md) var(--radius-md)}.debug-section{display:flex;flex-direction:column;gap:8px}.debug-section-header{display:flex;align-items:center;justify-content:space-between}.debug-section-header h4{color:var(--muted);font-size:.8rem;font-weight:500}.debug-code-block{max-height:320px;white-space:pre-wrap;word-break:break-word}.modal-body>pre.code-block{margin-top:16px;white-space:pre-wrap;word-break:break-all}.form-group{display:flex;flex-direction:column;gap:6px}.form-group+.form-group,.form-group+.settings-checkbox-row,.settings-panel>.form-group+.form-group{margin-top:16px}.form-label{color:var(--ink-soft);font-size:.8rem;font-weight:500}.form-input,.test-variant-select,.artifacts-effort-select{width:100%;height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--page);color:var(--ink);font-size:.875rem;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.form-input:focus,.test-variant-select:focus,.artifacts-effort-select:focus{border-color:var(--accent);outline:none;box-shadow:var(--focus-ring)}.form-input:disabled{cursor:not-allowed;opacity:.5}.form-textarea,.import-json-textarea{height:auto;min-height:120px;resize:vertical;padding:10px 12px;font-family:var(--font-mono);font-size:.8rem;line-height:1.6}.import-json-textarea{min-height:160px}#cfg-system,#edit-msg{font-family:var(--font-sans);font-size:.875rem}.endpoint-field{display:flex;flex-direction:column;gap:8px}.endpoint-field-row{display:flex;gap:8px}.endpoint-field-row .form-input{min-width:0;flex:1}.endpoint-picker-btn{width:40px;height:40px;padding:0;border-radius:var(--radius-md)}.endpoint-preset-menu{max-height:240px;overflow-y:auto;box-shadow:var(--shadow-md);animation:none}.endpoint-preset-item{align-items:flex-start}.endpoint-preset-item:last-child:not(:first-child){margin-top:0;border-top:0;border-radius:var(--radius-md)}.endpoint-preset-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.endpoint-preset-label{font-weight:500}.endpoint-preset-value{color:var(--muted-light);font-family:var(--font-mono);font-size:.72rem;word-break:break-all}.checkbox-label{display:flex;align-items:center;gap:10px;padding:4px 0;color:var(--ink-soft);font-size:.875rem;cursor:pointer}.settings-checkbox-row,.test-checkbox-label,.test-fixed-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--page);cursor:pointer}.settings-checkbox-row input,.test-checkbox-label input{margin-top:2px}.settings-checkbox-copy,.test-checkbox-copy,.test-fixed-copy,.control-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.settings-checkbox-title,.test-checkbox-title,.test-fixed-title,.control-title{color:var(--ink);font-size:.875rem;font-weight:500}.settings-checkbox-description,.test-checkbox-description,.test-fixed-description,.control-description,.settings-hint{color:var(--muted);font-size:.8rem;line-height:1.45}.settings-hint{margin-top:8px}.settings-tabs{display:flex;flex-shrink:0;gap:20px;overflow-x:auto;padding:0 24px;border-bottom:1px solid var(--line);scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab-btn{position:relative;height:40px;flex-shrink:0;color:var(--muted);font-size:.85rem;font-weight:500;white-space:nowrap}.settings-tab-btn:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;border-radius:2px 2px 0 0;background:transparent;content:""}.settings-tab-btn:hover,.settings-tab-btn.active{color:var(--ink)}.settings-tab-btn.active:after{background:var(--accent)}.sampling-panel{display:flex;flex-direction:column;gap:8px}.sampling-panel .form-group+.form-group{margin-top:0}.form-card{gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--page)}.form-card.is-disabled .form-slider,.form-card.is-disabled .form-input,.form-card.is-disabled .slider-value-badge{opacity:.45}.slider-header,.control-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.control-toggle{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.toggle-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.toggle-switch{position:relative;width:32px;height:18px;flex-shrink:0;margin-top:1px;border-radius:var(--radius-pill);background:var(--line-strong);transition:background var(--duration) var(--ease)}.toggle-switch:after{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--page-raised);box-shadow:var(--shadow-sm);content:"";transition:transform var(--duration) var(--ease)}.toggle-input:checked+.toggle-switch{background:var(--accent)}.toggle-input:checked+.toggle-switch:after{transform:translate(14px)}.toggle-input:focus-visible+.toggle-switch{box-shadow:var(--focus-ring)}.form-slider{width:100%;accent-color:var(--accent)}.slider-value-badge{flex-shrink:0;padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-soft);font-family:var(--font-mono);font-size:.75rem}.tool-presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;color:var(--muted);font-size:.8rem}.metrics-grid{display:flex;flex-direction:column}.metric-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.875rem}.metric-row:last-child{border-bottom:0}.metric-label{color:var(--muted)}.metric-value{font-family:var(--font-mono);font-size:.82rem;font-variant-numeric:tabular-nums}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.library-item{display:flex;flex-direction:column;gap:8px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--page);cursor:pointer;transition:border-color var(--duration) var(--ease)}.library-item:hover{border-color:var(--line-strong)}.library-item.selected{border-color:var(--accent);box-shadow:var(--focus-ring)}.library-thumb,.library-file-icon{width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-sm)}.library-thumb{object-fit:cover}.library-file-icon{display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--muted);font-size:1.6rem}.library-name{overflow:hidden;padding:0 2px 2px;color:var(--ink-soft);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.test-disclaimer{margin-bottom:14px;padding:10px 12px;border-radius:var(--radius-md);background:var(--warning-soft);color:var(--warning);font-size:.82rem;line-height:1.5}.test-config-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.test-config-pill{max-width:100%;overflow:hidden;padding:3px 10px;border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.test-checkbox-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.test-checkbox-label:hover{border-color:var(--line-strong)}.test-fixed-row{align-items:center;justify-content:space-between;cursor:default}.test-fixed-badge{flex-shrink:0;padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-strong);font-size:.72rem;font-weight:500}.test-checkbox-variant-row{display:flex;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md)}.test-checkbox-variant-row .test-checkbox-label{flex:1;border:0;border-radius:0}.test-variant-select{width:168px;height:auto;border:0;border-left:1px solid var(--line);border-radius:0}.test-progress{margin-bottom:12px}.test-progress-copy{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.test-progress-title{font-weight:500}.test-progress-detail{color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}.test-results-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.test-row-wrap{border-bottom:1px solid var(--line)}.test-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0}.test-item-icon{display:flex;width:22px;height:22px;flex-shrink:0;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:var(--muted);font-size:.85rem}.test-item-icon.passed{background:var(--success-soft);color:var(--success)}.test-item-icon.failed,.test-item-icon.error{background:var(--danger-soft);color:var(--danger)}.test-item-icon.running{background:var(--accent-soft);color:var(--accent)}.test-item-icon.running i{animation:spin .9s linear infinite}.test-item-main{min-width:0;flex:1}.test-item-name{font-size:.875rem;font-weight:500}.test-item-description{color:var(--muted);font-size:.8rem}.test-item-detail{max-width:45%;color:var(--muted);font-size:.8rem;text-align:right}.test-error-detail{margin:0 0 12px 34px;padding:8px 10px;border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);font-family:var(--font-mono);font-size:.75rem;white-space:pre-wrap;word-break:break-word}.test-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:20px}.test-metrics-title{grid-column:1 / -1;color:var(--muted);font-size:.8rem;font-weight:500}.test-metric-group{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--page)}.test-metric-group-label{margin-bottom:6px;font-size:.82rem;font-weight:500}.test-metric-subrow{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:.8rem}.test-metric-subrow-label{color:var(--muted)}.test-metric-value{font-family:var(--font-mono);font-size:.78rem;font-variant-numeric:tabular-nums}.test-metric-unit{margin-left:3px;color:var(--muted-light)}.test-metric-boolean.is-positive{color:var(--success)}@keyframes spin{to{transform:rotate(360deg)}}.artifacts-page{overflow-y:auto;overscroll-behavior:contain}.artifacts-list{width:min(100%,var(--wide-content-width));margin:0 auto;padding:56px 24px 72px}.artifacts-header{margin-bottom:28px}.artifacts-header h2{margin-bottom:8px;font-family:var(--font-display);font-size:clamp(2rem,4.5vw,2.6rem);font-weight:400;letter-spacing:-.02em;line-height:1.1}.artifacts-subtitle{max-width:560px;color:var(--muted);text-wrap:pretty}.artifacts-config-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:10px 10px 10px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised)}.artifacts-config-model{display:flex;min-width:0;flex-direction:column}.artifacts-model-name,.artifacts-model-endpoint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifacts-model-name{font-family:var(--font-mono);font-size:.82rem}.artifacts-model-endpoint{color:var(--muted-light);font-size:.75rem}.artifacts-config-controls{display:flex;flex-shrink:0;align-items:center;gap:8px}.artifacts-effort-select{width:auto;min-width:120px;height:30px;border-radius:var(--radius-pill);font-size:.8rem}.artifacts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.artifact-card{display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:start;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised);cursor:pointer;transition:border-color var(--duration) var(--ease),background var(--duration) var(--ease)}.artifact-card:hover{border-color:var(--line-strong);background:var(--surface)}.artifact-card-icon{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-strong);font-size:1.2rem}.artifact-card-body{min-width:0}.artifact-card-title{margin-bottom:4px;font-weight:500}.artifact-card-desc{color:var(--muted);font-size:.85rem;line-height:1.5;text-wrap:pretty}.artifact-card-arrow{align-self:center;color:var(--muted-light);font-size:1.2rem;transition:transform var(--duration) var(--ease),color var(--duration) var(--ease)}.artifact-card:hover .artifact-card-arrow{color:var(--ink);transform:translate(2px)}.artifact-build{display:flex;min-height:0;flex:1;flex-direction:column}.artifact-build-header{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.artifact-build-info{display:flex;min-width:0;flex:1;align-items:center;gap:12px}.artifact-build-title{display:flex;align-items:center;gap:6px;overflow:hidden;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.artifact-build-status{overflow:hidden;color:var(--muted);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.artifact-status-error{color:var(--danger)}.artifact-timer{margin-left:6px;font-variant-numeric:tabular-nums}.artifact-build-metric{display:inline-flex;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:.72rem;white-space:nowrap}.artifact-layout-btns{display:flex;flex-shrink:0;gap:2px;padding:3px;border-radius:var(--radius-pill);background:var(--surface)}.artifact-layout-btn{width:30px;height:26px;padding:0;border:0;background:transparent;color:var(--muted)}.artifact-layout-btn:hover:not(:disabled){border:0;background:transparent;color:var(--ink)}.artifact-layout-btn.active,.artifact-layout-btn.active:hover:not(:disabled){background:var(--page-raised);box-shadow:var(--shadow-sm);color:var(--ink)}.artifact-build-actions{display:flex;flex-shrink:0;gap:6px}.artifact-download-menu{position:relative;flex-shrink:0}.artifact-download-options{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:140px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--page-raised);box-shadow:var(--shadow-lg)}.artifact-download-option{width:100%;min-height:34px;padding:6px 10px;border-radius:var(--radius-md);font-size:.85rem;text-align:left}.artifact-download-option:hover{background:var(--surface)}.artifact-build-body{display:flex;min-height:0;flex:1}.artifact-build-body[data-layout=response] .artifact-preview-panel,.artifact-build-body[data-layout=preview] .artifact-raw-panel{display:none}.artifact-raw-panel,.artifact-preview-panel{display:flex;min-width:0;min-height:0;flex:1;flex-direction:column}.artifact-raw-panel{border-right:1px solid var(--line)}.artifact-panel-label{flex-shrink:0;padding:8px 14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.75rem;font-weight:500}.artifact-raw-text{min-height:0;flex:1;overflow:auto;padding:14px;background:var(--surface);color:var(--ink-soft);font-family:var(--font-mono);font-size:.75rem;line-height:1.6;white-space:pre-wrap;word-break:break-word}.artifact-build-canvas{display:flex;min-height:0;flex:1;background:#fffefb}.artifact-iframe{display:block;width:100%;height:100%;border:0}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}@media(max-width:980px){.tab-provider{display:none}.tab{min-width:120px;max-width:200px}}@media(max-width:760px){:root{--header-height: auto}html{font-size:14px}.tab-strip{flex-wrap:wrap;gap:6px;padding:8px}.tab-strip-main{min-width:100%}.tab-strip-actions{width:100%}.view-switcher{margin-right:auto}.overlay:has(>.dropdown-menu){padding-top:96px}.chat-scroll{padding:24px 16px 16px}.input-area{padding:6px 12px max(12px,env(safe-area-inset-bottom))}.artifacts-list{padding:32px 16px 56px}.artifacts-grid,.suggestions-grid,.test-metrics{grid-template-columns:1fr}.artifact-build-body{flex-direction:column}.artifact-raw-panel{border-right:0;border-bottom:1px solid var(--line)}.artifact-build-info{min-width:100%;order:-1}}@media(max-width:560px){.tab-actions{opacity:1}.view-switcher{flex:1}.view-switcher-btn{flex:1;justify-content:center}.suggestions{min-height:0;padding:24px 0}.user-bubble{max-width:92%}.model-btn{max-width:128px}.send-btn{width:36px;padding:0;justify-content:center;font-size:0}.send-btn i{font-size:1rem}.overlay{align-items:flex-end;padding:0}.modal{width:100%;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.modal-header{padding-left:16px}.modal-body{padding:8px 16px 20px}.settings-tabs{padding:0 16px}.modal-footer{flex-wrap:wrap;padding:12px 16px max(12px,env(safe-area-inset-bottom))}.slider-header,.control-header,.test-checkbox-variant-row{flex-direction:column}.test-variant-select{width:100%;height:40px;border-top:1px solid var(--line);border-left:0}.test-item{flex-wrap:wrap}.test-item-detail{max-width:none;width:100%;padding-left:34px;text-align:left}.artifacts-config-bar{flex-direction:column;align-items:stretch}.artifacts-config-controls{justify-content:space-between}}@media(hover:none){.message-actions,.code-copy-btn,.tab-actions{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
