*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #080808;--bg-sidebar: #0e0e0e;--bg-surface: #1c1c1c;--bg-hover: #262626;--bg-active: #303030;--border: #333333;--border-bright: #444444;--text: #e0e0e0;--text-secondary: #999999;--text-bright: #f5f5f5;--radius: 8px;--radius-sm: 4px;--sidebar-width: 260px;--font: "Inter", sans-serif}html,body{height:100%;overflow:hidden}body{font-family:var(--font);font-size:14px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}#app{display:flex;height:100vh;height:100dvh}#sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px;gap:8px}#new-chat-button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-family:var(--font);font-size:13px;transition:background .15s}#new-chat-button:hover{background:var(--bg-hover)}#conversation-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin-top:4px}.conversation-item{display:flex;align-items:center;padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .15s,color .15s;-webkit-user-select:none;user-select:none}.conversation-item:hover{background:var(--bg-hover);color:var(--text)}.conversation-item.active{background:var(--bg-active);color:var(--text-bright)}.conversation-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-item-delete{opacity:0;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px 4px;font-size:16px;line-height:1;transition:opacity .15s,color .15s}.conversation-item:hover .conversation-item-delete{opacity:1}.conversation-item-delete:hover{color:var(--text)}#settings-button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:none;color:var(--text-secondary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);font-size:13px;transition:background .15s,color .15s}#settings-button:hover{background:var(--bg-hover);color:var(--text)}#conversation-list::-webkit-scrollbar,#messages-scroll-container::-webkit-scrollbar{width:4px}#conversation-list::-webkit-scrollbar-track,#messages-scroll-container::-webkit-scrollbar-track{background:transparent}#conversation-list::-webkit-scrollbar-thumb,#messages-scroll-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}#chat-area{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}#sidebar-toggle{display:none;position:absolute;top:12px;left:12px;z-index:10;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:color .15s}#sidebar-toggle:hover{color:var(--text)}#messages-scroll-container{flex:1;overflow-y:auto;padding:24px}#messages{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:16px}.empty-state img{width:64px;height:64px;border-radius:50%;object-fit:cover}.empty-state span{font-size:14px;color:var(--text-secondary)}.message{display:flex;flex-direction:column;gap:8px}.user-message{align-items:flex-end}.user-message .message-content{background:var(--bg-surface);border-radius:var(--radius);padding:10px 14px;max-width:80%}.user-message .message-content p{white-space:pre-wrap}.assistant-message .message-header{display:flex;align-items:center;gap:8px}.assistant-message .message-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.message-role{font-size:12px;font-weight:500;color:var(--text);letter-spacing:.03em}.message-content{color:var(--text);line-height:1.7;word-wrap:break-word;overflow-wrap:break-word}.message-content p{margin-bottom:8px}.message-content p:last-child{margin-bottom:0}.message-content .code-block{position:relative;margin:8px 0}.message-content .code-block pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;overflow-x:auto;font-size:13px;line-height:1.5;margin:0}.code-copy-button{position:absolute;top:8px;right:8px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:4px 6px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,color .15s,background .15s}.code-block:hover .code-copy-button{opacity:1}.code-copy-button:hover{color:var(--text-bright);background:var(--bg-active)}.code-copy-button.copied{color:#6a9955}.message-content hr{border:none;border-top:1px solid var(--border);margin:16px 0}.message-content del{color:var(--text-secondary)}.message-content code{font-family:Consolas,Monaco,Courier New,monospace;font-size:13px}.message-content .inline-code{background:var(--bg-surface);padding:2px 6px;border-radius:3px;font-size:.9em}.message-content strong{color:var(--text-bright);font-weight:600}.message-content a{color:var(--text-bright);text-decoration:underline;text-underline-offset:2px}.message-content a:hover{color:#fff}.message-content h1,.message-content h2,.message-content h3,.message-content h4{color:var(--text-bright);margin-top:16px;margin-bottom:8px}.message-content h1{font-size:1.4em}.message-content h2{font-size:1.2em}.message-content h3{font-size:1.1em}.message-content h4{font-size:1em}.message-content ul,.message-content ol{padding-left:20px;margin:4px 0}.message-content li{margin-bottom:2px}.message-content blockquote{border-left:2px solid var(--border);padding-left:12px;color:var(--text-secondary);margin:8px 0}.message-content table{border-collapse:collapse;margin:8px 0;width:100%;font-size:13px;display:block;overflow-x:auto}.message-content th,.message-content td{border:1px solid var(--border);padding:6px 12px;white-space:nowrap}.message-content th{background:var(--bg-surface);color:var(--text-bright);font-weight:600}.message-content tr:nth-child(2n){background:#ffffff05}.message-images{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.message-images img{max-width:300px;max-height:200px;border-radius:var(--radius);object-fit:cover}.grounding-sources{margin-top:12px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.grounding-label{color:var(--text-secondary);margin-right:4px}.grounding-sources a{color:var(--text-secondary);margin-right:12px}.grounding-sources a:hover{color:var(--text)}.error-message{color:#a44}.loading-dots{display:inline-flex;gap:3px;line-height:1.7}.loading-dots span{opacity:0;animation:dot-step 1.5s step-end infinite}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.3s}.loading-dots span:nth-child(3){animation-delay:.6s}@keyframes dot-step{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}#input-area{padding:0 24px 24px;padding-bottom:max(24px,env(safe-area-inset-bottom,24px));flex-shrink:0}#input-area>*{max-width:720px;margin:0 auto}#image-preview-container{display:flex;gap:8px;padding:8px 0;flex-wrap:wrap}.image-preview{position:relative;width:64px;height:64px}.image-preview img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.image-preview-remove{position:absolute;top:-6px;right:-6px;width:18px;height:18px;background:var(--bg-active);border:1px solid var(--border);border-radius:50%;color:var(--text);cursor:pointer;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center}#message-form{display:flex;align-items:flex-end;gap:8px;background:var(--bg-surface);border:1px solid var(--border-bright);border-radius:var(--radius);padding:8px}#message-input{flex:1;background:none;border:none;color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;resize:none;outline:none;padding:4px 8px;max-height:200px}#message-input::placeholder{color:var(--text-secondary)}#image-upload-button,#send-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color .15s;flex-shrink:0}#image-upload-button:hover,#send-button:hover{color:var(--text-bright)}#send-button:disabled{opacity:.3;cursor:not-allowed}#settings-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:0;max-width:420px;width:calc(100% - 32px)}#settings-modal::backdrop{background:#0009}.modal-content{padding:24px}.modal-content h2{font-size:16px;font-weight:600;color:var(--text-bright);margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px}.form-group input{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:14px;outline:none;transition:border-color .15s}.form-group input:focus{border-color:var(--text-secondary)}.modal-actions{display:flex;align-items:center;gap:8px;margin-top:20px}.modal-actions-right{display:flex;gap:8px;margin-left:auto}button,a,.conversation-item{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;caret-color:transparent}button{font-family:var(--font)}.button-primary,.button-secondary,.button-danger{padding:6px 16px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:background .15s,color .15s}.button-primary{background:var(--text-bright);color:var(--bg);border:none;font-weight:500}.button-primary:hover{background:#fff}.button-secondary{background:none;color:var(--text);border:1px solid var(--border)}.button-secondary:hover{background:var(--bg-hover)}.button-danger{background:none;color:var(--text);border:1px solid #333}.button-danger:hover{background:#1a1111}@media(max-width:768px){#sidebar{position:fixed;top:0;left:0;bottom:0;z-index:100;transform:translate(-100%);transition:transform .2s ease}#sidebar.open{transform:translate(0)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:99}.sidebar-overlay.visible{display:block}#sidebar-toggle{display:flex}#messages-scroll-container{padding-top:48px}.conversation-item-delete,.code-copy-button{opacity:1}}
