:root{color-scheme:light;--color-cream: #fff3e0;--color-cream-deep: #ffe7ce;--color-lemonade: #ffd7df;--color-pulp: #ff6b9a;--color-pulp-deep: #d8336c;--color-citrus: #ffc23d;--color-citrus-deep: #ff8a2b;--color-matcha: #9fe6c1;--color-blueberry: #6a7bff;--color-ink: #2a0712;--color-ink-soft: #7a3346;--color-graphite: #190e14;--font-display: "Satoshi", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;--radius-lg: 20px;--radius-md: 12px;--radius-sm: 10px;--radius-pill: 999px;font-family:var(--font-body);background:var(--color-cream);color:var(--color-ink);font-synthesis:none;--bg: var(--color-cream);--surface: #ffffff;--surface-muted: #fff7ec;--surface-strong: var(--color-cream-deep);--border: rgba(42, 7, 18, .1);--border-strong: rgba(42, 7, 18, .2);--text: var(--color-ink);--text-muted: var(--color-ink-soft);--primary: var(--color-ink);--primary-hover: var(--color-graphite);--on-primary: var(--color-cream);--accent: var(--color-pulp);--accent-hover: var(--color-pulp-deep);--accent-soft: var(--color-lemonade);--blue: var(--color-blueberry);--blue-soft: #e4e7ff;--citrus: var(--color-citrus-deep);--citrus-soft: #ffe9c7;--success: #2fa56f;--success-soft: var(--color-matcha);--danger: var(--color-pulp-deep);--danger-soft: var(--color-lemonade);--shadow: 0 22px 60px rgba(42, 7, 18, .16);--shadow-soft: 0 12px 34px rgba(42, 7, 18, .08)}[hidden]{display:none!important}*{box-sizing:border-box}html,body{height:100%;margin:0}body{min-width:320px;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em}button,input,textarea{font:inherit;letter-spacing:0}button{color:inherit}::selection{background:var(--color-pulp);color:#fff}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}#app{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%}.topbar{z-index:2;display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,440px) minmax(280px,1fr);align-items:center;gap:20px;min-height:74px;padding:12px 24px;border-bottom:1px solid var(--border);background:#fff7ecd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand-mark{display:block;flex:0 0 auto;width:45px;height:45px;padding:4px;border-radius:var(--radius-sm);box-shadow:0 6px 16px #2a07122e}.brand>div{display:grid;min-width:0}.brand strong{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.01em}.brand span:not(.brand-mark){color:var(--text-muted);font-size:12px}.model-button{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.model-button:hover{border-color:var(--accent);background:var(--surface-muted);box-shadow:0 6px 18px #2a071214}.model-button>span:first-child{display:grid;min-width:0}.model-button strong{overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.control-label{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.runtime-status{display:flex;align-items:center;gap:8px;min-width:0;margin-right:6px;padding:5px 12px 5px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:500}.runtime-status span:last-child{overflow:hidden;max-width:150px;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:9px;height:9px;border-radius:50%;background:#2a07124d;box-shadow:0 0 0 4px #2a07120f}.status-dot.loading,.status-dot.running{background:var(--blue);box-shadow:0 0 0 4px #6a7bff2e}.status-dot.ready{background:var(--success);box-shadow:0 0 0 4px #2fa56f2e}.status-dot.error{background:var(--danger);box-shadow:0 0 0 4px #d8336c2e}.button{min-height:38px;padding:8px 16px;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:700;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.45}.button.primary{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.button.primary:hover:not(:disabled){border-color:var(--primary-hover);background:var(--primary-hover);box-shadow:0 8px 20px #2a071238}.button.secondary{border-color:var(--border);background:var(--surface);color:var(--text)}.button.secondary:hover:not(:disabled){border-color:var(--accent);background:var(--surface-muted)}.button.danger{border-color:var(--danger);background:var(--danger);color:#fff}.button.danger:hover:not(:disabled){box-shadow:0 8px 20px #d8336c47}.chat-layout{min-height:0;padding:20px 24px 26px}.chat-surface{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,1040px);height:100%;margin:0 auto;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.chat-surface:before{content:"";position:absolute;inset:0 0 auto 0;z-index:3;height:4px;background:linear-gradient(90deg,var(--color-pulp) 0%,var(--color-citrus-deep) 50%,var(--color-citrus) 100%)}.metrics-bar{display:flex;justify-content:flex-end;gap:28px;min-height:46px;padding:9px 22px;border-bottom:1px solid var(--border);background:var(--surface-muted)}.metrics-bar>div{display:grid;min-width:72px}.metrics-bar span{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.metrics-bar strong{font-family:var(--font-mono);font-size:12px;font-weight:600}.empty-state{align-self:center;width:min(100%,760px);margin:auto;padding:44px 28px;text-align:center}.empty-mark{display:block;width:64px;height:64px;padding:4px;margin:0 auto 20px;border-radius:var(--radius-md);box-shadow:0 14px 30px #2a07122e}.empty-state h1{margin:0;font-size:30px;line-height:1.15}.empty-state p{margin:10px 0 28px;color:var(--text-muted);font-size:14px}.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.topic-grid button{--topic-accent: var(--color-pulp);position:relative;min-height:78px;padding:14px 14px 14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;color:var(--text);font-size:13px;font-weight:600;text-align:left;overflow:hidden;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .12s ease}.topic-grid button:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--topic-accent);opacity:0;transition:opacity .15s ease}.topic-grid button:nth-child(2){--topic-accent: var(--color-citrus-deep)}.topic-grid button:nth-child(3){--topic-accent: var(--color-blueberry)}.topic-grid button:hover{border-color:var(--topic-accent);background:var(--surface-muted);box-shadow:0 10px 24px #2a07121a;transform:translateY(-2px)}.topic-grid button:hover:before{opacity:1}.transcript{min-height:0;overflow-y:auto;padding:24px clamp(18px,7vw,76px) 36px;scrollbar-color:var(--border-strong) transparent}.message{display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px;padding:20px 0;border-bottom:1px solid var(--border)}.message:last-child{border-bottom:0}.message-role{overflow:hidden;font-family:var(--font-display);color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}.message.user .message-role{color:var(--accent-hover)}.message-body{min-width:0}.message-content{min-height:22px;color:var(--text);font-size:15px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.message.assistant.streaming .message-content:after{content:"";display:inline-block;width:7px;height:15px;margin-left:4px;border-radius:2px;background:var(--accent);vertical-align:-2px;animation:caret-blink 1.05s steps(1) infinite}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.message.error .message-content{color:var(--danger)}.message-metrics{margin-top:10px;color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.message-image{display:block;width:min(100%,360px);max-height:300px;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius-md);object-fit:contain;background:var(--surface-muted)}.composer{position:relative;padding:14px 18px 16px;border-top:1px solid var(--border);background:var(--surface-muted)}.composer-row{display:flex;align-items:flex-end;gap:9px}.composer textarea{flex:1 1 auto;min-width:0;min-height:44px;max-height:160px;resize:none;padding:11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);outline:none;background:var(--surface);color:var(--text);font-size:14px;line-height:1.45;transition:border-color .15s ease,box-shadow .15s ease}.composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.composer textarea:disabled{background:var(--surface-muted);color:var(--text-muted)}.image-button{flex:0 0 auto}.attachment{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:12px}.attachment img{width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover}.attachment span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment button{border:0;background:transparent;cursor:pointer;color:var(--danger);font-size:12px;font-weight:700}.composer-error{margin-bottom:8px;padding:9px 12px;border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:12px;font-weight:500}.capability-badge{display:inline-flex;align-items:center;width:max-content;min-height:22px;padding:3px 10px;border-radius:var(--radius-pill);font-size:10px;font-weight:800;letter-spacing:.02em;white-space:nowrap}.capability-badge.text{background:var(--blue-soft);color:var(--blue)}.capability-badge.vision{background:var(--citrus-soft);color:var(--citrus)}.dialog{width:min(calc(100vw - 32px),680px);max-height:min(760px,calc(100vh - 40px));padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.dialog::backdrop{background:#2a071273;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 18px;border-bottom:1px solid var(--border)}.dialog-header h2{margin:10px 0 0;font-size:22px}.dialog-eyebrow{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-hover);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.dialog-eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.dialog-close{min-height:32px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);cursor:pointer;color:var(--text-muted);font-size:12px;font-weight:700;transition:border-color .15s ease,color .15s ease,background .15s ease}.dialog-close:hover{border-color:var(--accent);background:var(--surface-muted);color:var(--text)}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin:18px 24px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-muted)}.segmented-control.compact{width:min(100%,300px);margin:0 0 18px}.segmented-control button{min-height:34px;border:0;border-radius:var(--radius-pill);background:transparent;cursor:pointer;color:var(--text-muted);font-size:12px;font-weight:700;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.segmented-control button.selected{background:var(--surface);color:var(--text);box-shadow:0 2px 8px #2a07121f}.model-options{display:grid;gap:9px;max-height:390px;padding:0 24px 20px;overflow-y:auto}.model-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:76px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.model-option:hover{border-color:var(--border-strong);background:var(--surface-muted)}.model-option.selected{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.model-option-main{display:grid;gap:4px;min-width:0}.model-option-main strong{font-size:14px;font-weight:700}.model-option-main span{color:var(--text-muted);font-size:12px}.model-option-metadata{display:grid;justify-items:end;gap:5px;color:var(--text-muted);font-size:10px}.recommended-label{color:var(--accent-hover);font-weight:800;letter-spacing:.02em}.custom-panel{min-height:270px;padding:0 24px 20px}.field{display:grid;gap:7px}.field label{color:var(--text-muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.field input[type=url],.field input[type=file]{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:13px}.field input[type=url]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.file-name,.custom-note{color:var(--text-muted);font-size:11px}.custom-note{margin:18px 0 0}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:14px 24px;border-top:1px solid var(--border);background:var(--surface-muted)}.load-feedback{flex:1 1 auto;min-width:0}.dialog-status{margin:0;color:var(--text-muted);font-size:12px}.dialog-status.error{color:var(--danger);font-weight:600}.load-feedback progress{display:block;width:100%;height:6px;margin-top:9px;border:0;border-radius:var(--radius-pill);accent-color:var(--accent);overflow:hidden}.load-feedback progress::-webkit-progress-bar{background:var(--surface-strong);border-radius:var(--radius-pill)}.load-feedback progress::-webkit-progress-value{background:var(--accent);border-radius:var(--radius-pill)}.load-feedback progress::-moz-progress-bar{background:var(--accent);border-radius:var(--radius-pill)}.settings-dialog{width:min(calc(100vw - 32px),560px)}.settings-fields{display:grid;padding:4px 24px}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,230px);align-items:center;gap:24px;min-height:86px;border-bottom:1px solid var(--border)}.setting-row:last-child{border-bottom:0}.setting-row>span:first-child{display:grid;gap:3px}.setting-row strong{font-size:13px;font-weight:700}.setting-row small{color:var(--text-muted);font-size:11px}.setting-row input[type=number]{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:right}.setting-row input[type=number]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.range-control{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px}.range-control input{width:100%;accent-color:var(--accent)}.range-control output{font-family:var(--font-mono);font-size:12px;font-weight:600;text-align:right}.settings-footer{justify-content:flex-end}@media (max-width: 820px){.topbar{grid-template-columns:minmax(150px,1fr) minmax(220px,1.4fr);gap:12px;padding:10px 14px}.topbar-actions{grid-column:1 / -1;justify-content:space-between}.runtime-status{margin-right:auto}.chat-layout{padding:10px}.topic-grid{grid-template-columns:1fr}.topic-grid button{min-height:54px}.message{grid-template-columns:1fr;gap:7px}.message-role{max-width:100%}}@media (max-width: 560px){.topbar{grid-template-columns:1fr}.model-button{grid-row:2}.topbar-actions{grid-row:3}.runtime-status{display:none}.chat-layout{padding:0}.chat-surface{border:0;border-radius:0;box-shadow:none}.metrics-bar{justify-content:space-between}.empty-state{padding:30px 18px}.empty-state h1{font-size:25px}.transcript{padding:16px 18px 28px}.composer-row{flex-wrap:wrap}.composer textarea{order:1;flex-basis:100%}.image-button,#send-button,#stop-button{order:2}#send-button,#stop-button{margin-left:auto}.model-option{grid-template-columns:1fr}.model-option-metadata{grid-template-columns:repeat(3,max-content);justify-content:start;justify-items:start}.dialog-footer{align-items:stretch;flex-direction:column}.dialog-footer .button{width:100%}.setting-row{grid-template-columns:1fr;gap:10px;padding:16px 0}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
