:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-heading:"Fraunces", Georgia, serif;--font-mono:"Fira Code", monospace;--bg-main:#f2efe8;--bg-sidebar:#ebe8df;--bg-card:#fff;--bg-card-hover:#f7f5ef;--bg-input:#fff;--bg-elevated:#fff;--bg-code:#f0ede5;--bg-code-inline:#ebe8df;--code-inline-text:#c72c1e;--bubble-user-bg:#e9e6dc;--bubble-user-border:#d8d4c8;--border-color:#ddd9ce;--border-focus:#c4bfb0;--accent:#c72c1e;--accent-hover:#a82418;--accent-bg-rgba:#c72c1e14;--text-primary:#1a1a1a;--text-secondary:#52504a;--text-muted:#8b887f;--success:#1a7f4e;--warning:#a86a0c;--error:#ef4444;--shadow-sm:0 1px 2px 0 #1a1a1a0d;--shadow-md:0 4px 6px -1px #1a1a1a0d, 0 2px 4px -1px #1a1a1a08;--shadow-lg:0 10px 15px -3px #1a1a1a0d, 0 4px 6px -2px #1a1a1a08;--shadow-glow:0 4px 12px #c72c1e26;box-sizing:border-box}*,:before,:after{box-sizing:inherit}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);overscroll-behavior:none;-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0;padding:0;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0000001a;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#0003}.app-container{width:100vw;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.app-container:before{content:"";background:var(--accent);z-index:60;pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0}input,textarea{caret-color:var(--accent)}::selection{background:color-mix(in srgb, var(--accent) 22%, transparent)}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;flex-shrink:0;width:380px;height:100%;transition:margin-left .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);align-items:center;gap:1px;padding:20px 24px;display:flex}.logo-text{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:.5px;text-transform:uppercase;font-size:22px;font-weight:800}.sidebar-content{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:24px;padding:20px;display:flex;overflow-y:scroll}.sidebar-content::-webkit-scrollbar{display:none}.sidebar-section{flex-direction:column;gap:12px;display:flex}.section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);align-items:center;gap:6px;font-size:10px;font-weight:600;display:flex}.card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;padding:16px;transition:all .2s}.btn{font-family:var(--font-sans);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover)}.btn-danger{background:color-mix(in srgb, var(--error) 10%, transparent);color:var(--error);border:1px solid color-mix(in srgb, var(--error) 20%, transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--error) 15%, transparent)}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.status-badge{letter-spacing:.5px;border-radius:12px;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.status-badge.supported{background:color-mix(in srgb, var(--success) 10%, transparent);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 22%, transparent)}.status-badge.unsupported{background:color-mix(in srgb, var(--error) 10%, transparent);color:var(--error);border:1px solid color-mix(in srgb, var(--error) 20%, transparent)}.status-badge.gpu{background:var(--accent-bg-rgba);color:var(--accent);white-space:nowrap;border:1px solid #c72c1e33}.tabs-container{background:var(--bg-sidebar);border-radius:8px;padding:4px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;font-weight:500;transition:all .2s;display:flex}.tab-btn.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm);border-color:var(--border-color)}button:focus{outline:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.custom-input{background:var(--bg-input);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);border-radius:8px;outline:none;padding:10px 12px;font-size:13px;transition:border-color .2s}.custom-input:focus{border-color:var(--accent)}.input-group{flex-direction:column;gap:6px;margin-bottom:4px;display:flex}.input-label{color:var(--text-secondary);font-size:11px;font-weight:500}.input-control{background:var(--bg-input);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;border-radius:8px;outline:none;padding:8px 10px;font-size:12px;transition:all .2s}.input-control:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.input-control:hover:not(:disabled){border-color:var(--border-focus)}.input-control:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(20%)}.file-dropzone{border:2px dashed var(--border-color);text-align:center;cursor:pointer;background:#ffffff80;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:30px 20px;transition:all .2s;display:flex}.file-dropzone:hover,.file-dropzone.dragging{border-color:var(--accent);background:var(--accent-bg-rgba)}.file-dropzone-icon{color:var(--accent);margin-bottom:4px}.file-dropzone-text{color:var(--text-primary);font-size:13px;font-weight:500}.file-dropzone-subtext{color:var(--text-muted);font-size:11px}.chat-area{background:var(--bg-main);flex-direction:column;flex:1;height:100%;display:flex;position:relative}.chat-header{border-bottom:1px solid var(--border-color);background:var(--bg-elevated);z-index:5;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.chat-header-info{flex-direction:column;gap:4px;display:flex}.loaded-model-name{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--text-primary);font-size:15px;font-weight:600}.loaded-model-status{color:var(--success);align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.pulse-dot{background-color:var(--success);border-radius:50%;width:8px;height:8px}.pulse-dot.anim{animation:1.5s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--success) 40%, transparent)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.messages-container{flex-direction:column;flex:1;gap:24px;width:100%;max-width:900px;margin:0 auto;padding:30px 24px;display:flex;overflow-y:auto}.welcome-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:600px;margin:auto;padding:40px 20px;display:flex}.welcome-mark{color:var(--text-primary);margin-bottom:20px}.welcome-title{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--text-primary);margin:0 0 18px;font-size:30px;font-weight:700}.welcome-rule{background:var(--accent);width:44px;height:3px;margin:0 auto 20px}.welcome-subtitle{color:var(--text-secondary);margin:0 0 40px;font-size:15px;line-height:1.6}.welcome-steps{grid-template-columns:1fr 1fr;gap:28px;width:100%;display:grid}.welcome-step{border-top:2px solid var(--text-primary);text-align:left;padding:14px 2px 0}.welcome-step-num{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.2px;color:var(--accent);margin-bottom:8px;font-size:10px;font-weight:700}.welcome-step-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:8px;font-size:19px;font-weight:600}.welcome-step-desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.message{gap:16px;max-width:100%;display:flex}.message.user{flex-direction:row-reverse}.avatar{background:var(--bg-sidebar);border:1px solid var(--border-color);width:36px;height:36px;color:var(--text-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.message.assistant .avatar{background:var(--accent-bg-rgba);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent)}.message-bubble{width:fit-content;max-width:100%;box-shadow:var(--shadow-sm);overflow-wrap:anywhere;border-radius:16px;padding:12px 30px 12px 16px;font-size:15px;line-height:1.6;position:relative}.message-col{flex-direction:column;min-width:0;max-width:80%;display:flex}.message.user .message-bubble{background:var(--bubble-user-bg);border:1px solid var(--bubble-user-border);color:var(--text-primary);border-top-right-radius:4px;margin-left:auto}.message.assistant .message-bubble{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary);border-top-left-radius:4px}.message-stats{color:var(--text-muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:11px;display:flex}.stat-item{background:var(--bg-sidebar);border:1px solid var(--border-color);border-radius:6px;align-items:center;gap:4px;padding:4px 8px;display:flex}.chat-input-container{border-top:1px solid var(--border-color);background:var(--bg-elevated);padding:20px 24px}.chat-input-wrapper{background:var(--bg-elevated);border:1px solid var(--border-color);max-width:850px;box-shadow:var(--shadow-sm);border-radius:14px;align-items:flex-end;gap:12px;margin:0 auto;padding:10px 14px;transition:all .2s;display:flex}.chat-input-wrapper:focus-within{border-color:var(--border-focus);box-shadow:var(--shadow-md)}.chat-textarea{resize:none;color:var(--text-primary);font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;min-height:24px;max-height:200px;padding:4px 0;font-size:15px;line-height:1.5}.chat-actions{align-items:center;gap:8px;padding-bottom:2px;display:flex}.circle-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.circle-btn:hover:not(:disabled){color:var(--accent);background:var(--bg-sidebar)}.circle-btn.send-btn{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.circle-btn.send-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md)}.circle-btn:disabled{opacity:.4;cursor:not-allowed}.message-actions .circle-btn span{white-space:nowrap!important}.model-loading-overlay{z-index:50;text-align:center;background:color-mix(in srgb, var(--bg-main) 94%, transparent);-webkit-backdrop-filter:blur(10px);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.spinner{border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.progress-bar-container{background:var(--bg-sidebar);border-radius:99px;width:100%;height:6px;margin-top:8px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:99px;height:100%;transition:width .1s}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}pre{border:1px solid var(--border-color);font-family:var(--font-mono);border-radius:8px;margin:12px 0;padding:14px;font-size:13px;overflow-x:auto;background:var(--bg-code)!important}code{font-family:var(--font-mono);background:var(--bg-code-inline);color:var(--code-inline-text);border-radius:4px;padding:2px 5px;font-size:13px}pre code{color:inherit;background:0 0;padding:0}.sidebar:not(.open){margin-left:-380px}html.sb-closed .sidebar.open{margin-left:-380px;transition:none}@media (max-width:1000px){.sidebar{z-index:10;height:100dvh;margin-left:0;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar:not(.open){margin-left:0}html.sb-closed .sidebar.open{margin-left:0;transition:none;transform:translate(-100%)}.welcome-steps{grid-template-columns:1fr}}.typing-indicator{align-items:center;gap:4px;padding:4px 8px;display:flex}.typing-dot{background:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite typing}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.metadata-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:12px}.metadata-table th,.metadata-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:6px 8px}.metadata-table th{color:var(--text-muted);width:35%;font-weight:500}.metadata-table td{color:var(--text-primary);word-break:break-all;font-family:var(--font-mono)}.new-chat-btn{background:var(--bg-elevated);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.new-chat-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.new-chat-btn:disabled{opacity:.5;cursor:not-allowed}.model-card{background:var(--bg-elevated);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;gap:8px;padding:12px;transition:all .2s ease-in-out;display:flex;position:relative}.model-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent)!important}html.dark{--bg-main:#171614;--bg-sidebar:#1c1b18;--bg-card:#211f1c;--bg-card-hover:#2a2823;--bg-input:#211f1c;--bg-elevated:#211f1c;--bg-code:#1c1b18;--bg-code-inline:#2a2823;--code-inline-text:#e05a4e;--bubble-user-bg:#2a2823;--bubble-user-border:#3a372f;--border-color:#33302a;--border-focus:#4a463d;--accent:#d9463a;--accent-hover:#c72c1e;--accent-bg-rgba:#d9463a1f;--text-primary:#ece9e1;--text-secondary:#b5b1a6;--text-muted:#7b776c;--success:#4cc38a;--warning:#d9a13c;--error:#f0655a;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 8px -1px #00000073, 0 2px 4px -1px #0000004d;--shadow-lg:0 12px 22px -4px #0000008c}html.dark body{background-color:var(--bg-main)}html.dark .file-dropzone{background:#ffffff08}html.dark ::-webkit-scrollbar-thumb{background:#ffffff1f}.tip{display:inline-flex;position:relative}.tip:after{content:attr(data-tip);z-index:60;background:var(--bg-elevated);width:max-content;max-width:280px;color:var(--text-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-md);white-space:normal;text-align:left;opacity:0;pointer-events:none;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.4;transition:opacity .12s,transform .12s;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-4px)}.tip:hover:after{opacity:1;transform:translateY(0)}.tip[data-tip-warn="1"]:after{border-color:var(--warning)}html.dark ::-webkit-scrollbar-thumb:hover{background:#ffffff38}@media (prefers-reduced-motion:reduce){.pulse-dot.anim,.typing-dot{animation:none}.sidebar{transition:none}}
