:root{--bg: #eff1f5;--panel: #e6e9ef;--surface0: #ccd0da;--surface1: #bcc0cc;--surface2: #dce0e8;--input-bg: #ffffff;--text: #4c4f69;--muted: #8c8fa1;--subtext0: #6c6f85;--overlay2: #7c7f93;--accent: #1e66f5;--on-accent: #ffffff;--red: #d20f39;--green: #40a02b;--peach: #fe640b;--peach-bg: rgba(254, 100, 11, .12);--red-border: rgba(210, 15, 57, .35);--red-bg: rgba(210, 15, 57, .12);--red-bg2: rgba(210, 15, 57, .15);--backdrop: rgba(76, 79, 105, .45);--scrollbar: rgba(76, 79, 105, .35);--scrollbar-strong: rgba(76, 79, 105, .5);--shadow: rgba(76, 79, 105, .25);--rail-hover: rgba(76, 79, 105, .06);--rail-drag: rgba(76, 79, 105, .1);--rail-progress: rgba(30, 102, 245, .45);--rail-progress-hover: rgba(30, 102, 245, .65);--blue-soft: rgba(30, 102, 245, .15);--blue-soft2: rgba(30, 102, 245, .08);--drop-overlay: rgba(239, 241, 245, .92);--mic-pulse: rgba(210, 15, 57, .4)}[data-theme=dark]{--bg: #1e1e2e;--panel: #181825;--surface0: #313244;--surface1: #45475a;--surface2: #313244;--input-bg: #11111b;--text: #cdd6f4;--muted: #a6adc8;--subtext0: #a6adc8;--overlay2: #7f849c;--accent: #89b4fa;--on-accent: #11111b;--red: #f38ba8;--green: #a6e3a1;--peach: #fab387;--peach-bg: rgba(250, 179, 135, .12);--red-border: rgba(243, 139, 168, .35);--red-bg: rgba(243, 139, 168, .12);--red-bg2: rgba(243, 139, 168, .15);--backdrop: rgba(0, 0, 0, .5);--scrollbar: rgba(205, 214, 244, .35);--scrollbar-strong: rgba(205, 214, 244, .5);--shadow: rgba(0, 0, 0, .45);--rail-hover: rgba(205, 214, 244, .06);--rail-drag: rgba(205, 214, 244, .1);--rail-progress: rgba(137, 180, 250, .45);--rail-progress-hover: rgba(137, 180, 250, .65);--blue-soft: rgba(137, 180, 250, .15);--blue-soft2: rgba(137, 180, 250, .08);--drop-overlay: rgba(30, 30, 46, .92);--mic-pulse: rgba(243, 139, 168, .4)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;overscroll-behavior:none;touch-action:manipulation}body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}.app{display:flex;height:100%;position:relative;z-index:1}#root:before{content:"";position:fixed;top:-40px;right:-40px;bottom:-40px;left:-40px;z-index:0;background-color:var(--bg);background-image:var(--bg-img, none);background-size:cover;background-position:center;background-repeat:no-repeat;filter:blur(var(--bg-img-blur, 0px));-webkit-filter:blur(var(--bg-img-blur, 0px));pointer-events:none}.sidebar,header,footer,.modal,.login-card,.bubble,.reasoning,.context-bubble,.code-block,.attach-menu,.rail-tip,.vault-item,.user-row.me,select,.msg-file{backdrop-filter:blur(var(--bg-blur, 0px));-webkit-backdrop-filter:blur(var(--bg-blur, 0px))}.sidebar{width:280px;flex-shrink:0;background:var(--panel-glass);border-right:1px solid var(--surface0);display:flex;flex-direction:column;padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px));gap:10px;overscroll-behavior:contain}.sidebar-head{padding-bottom:10px;border-bottom:1px solid var(--surface0)}.new-chat-btn{width:100%;padding:9px 12px;background:var(--accent);border:none;border-radius:9px;color:var(--on-accent);font:inherit;font-weight:600;cursor:pointer}.new-chat-btn:hover{filter:brightness(1.1)}.chat-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.sidebar-empty{color:var(--muted);text-align:center;font-size:13px;margin-top:20px}.chat-item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text);font-size:14px}.chat-item:hover{background:var(--panel-glass)}.chat-item.active{background:var(--surface2)}.chat-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item-actions{display:none;gap:2px}.chat-item:hover .chat-item-actions,.chat-item.active .chat-item-actions{display:flex}.chat-item-actions button{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 4px;font-size:13px;border-radius:4px}.chat-item-actions button:hover{background:var(--surface0);color:var(--text)}.sidebar-footer{border-top:1px solid var(--surface0);padding-top:10px;display:flex;flex-direction:column;gap:4px}.sidebar-footer-btn{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--muted);padding:9px 10px;border-radius:8px;font:inherit;font-size:14px;cursor:pointer;width:100%;text-align:left}.sidebar-footer-btn:hover{background:var(--panel-glass);color:var(--text)}.sidebar-footer-btn svg{flex-shrink:0}.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;border-bottom:1px solid var(--surface0);background:var(--panel-glass)}header h1{font-size:17px;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:8px}.menu-btn:hover{background:var(--panel-glass)}.header-left{display:flex;align-items:center;gap:4px}.temp-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px}.temp-btn:hover{background:var(--panel-glass);color:var(--text)}.temp-btn.active{color:var(--peach);background:var(--peach-bg)}.hint-block{margin-top:18vh;text-align:center}.hint-main{color:var(--muted);font-size:20px;font-weight:600;margin:0 0 6px}.hint-sub{color:var(--overlay2);font-size:14px;margin:0}select{background:var(--panel-glass);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:6px 8px;max-width:45vw}.login-page{display:flex;justify-content:center;align-items:center;height:100%;background:transparent;position:relative;z-index:1}.login-card{background:var(--panel-glass);border:1px solid var(--surface0);border-radius:16px;padding:36px 32px;width:100%;max-width:380px;text-align:center}.login-card h1{font-size:28px;margin:0 0 6px}.login-card h2{font-size:16px;color:var(--muted);font-weight:400;margin:0 0 24px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card input{background:var(--input-bg);color:var(--text);border:1px solid var(--surface1);border-radius:10px;padding:11px 14px;font:inherit;outline:none}.login-card input:focus{border-color:var(--accent)}.login-card button{padding:11px;border-radius:10px}.login-error{color:var(--red);font-size:13px;margin:0}.remember-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;cursor:pointer;margin:0}.remember-label input[type=checkbox]{accent-color:var(--accent)}.login-toggle{color:var(--muted);font-size:13px;margin:16px 0 0}.login-toggle a{color:var(--accent);text-decoration:none}.login-toggle a:hover{text-decoration:underline}.loading-screen{display:flex;justify-content:center;align-items:center;height:100%;color:var(--muted);font-size:24px}.header-right{display:flex;align-items:center;gap:6px}.logout-btn{background:none;border:none;font-size:18px;cursor:pointer;padding:4px 6px;border-radius:8px;line-height:1}.logout-btn:hover{background:var(--panel-glass)}.profile-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px}.profile-btn:hover{background:var(--panel-glass);color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);display:flex;justify-content:center;align-items:center;z-index:50;padding:16px}.modal{background:var(--panel-glass);border:1px solid var(--surface0);border-radius:14px;width:100%;max-width:440px;max-height:88vh;overflow-y:auto;overflow-anchor:none;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-head h2{margin:0;font-size:18px}.modal-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:6px}.modal-close:hover{background:var(--surface0);color:var(--text)}.profile-section{border-top:1px solid var(--surface0);padding:14px 0}.profile-section h3{margin:0 0 10px;font-size:14px;color:var(--muted);font-weight:600}.profile-form{display:flex;flex-direction:column;gap:8px}.profile-form input{background:var(--input-bg);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:9px 12px;font:inherit;outline:none}.profile-form input:focus{border-color:var(--accent)}.profile-form button{align-self:flex-start;padding:8px 16px;font-size:13px}.ok-msg{color:var(--green);font-size:13px;margin:8px 0 0}.err-msg{color:var(--red);font-size:13px;margin:8px 0 0}.user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.user-list li{display:flex;justify-content:space-between;align-items:center;background:var(--input-bg);border-radius:8px;padding:8px 12px;font-size:14px}.user-date{color:var(--muted);font-size:12px}.admin-badge{background:var(--peach-bg);color:var(--peach);font-size:11px;font-weight:600;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}.admin-badge-sm{background:var(--peach-bg);color:var(--peach);font-size:11px;border-radius:6px;padding:2px 6px;white-space:nowrap}.admin-msg{color:var(--peach);font-size:13px;margin:0 0 8px}.user-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.user-row.me{border:1px solid var(--surface0)}.user-info{display:flex;flex-direction:column;min-width:0;overflow:hidden}.user-info>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-actions{display:flex;gap:2px;flex-shrink:0}.user-actions button{background:none;border:none;color:var(--muted);cursor:pointer;padding:3px 5px;font-size:13px;border-radius:5px;line-height:1}.user-actions button:hover{background:var(--surface0);color:var(--text)}.account-actions{display:flex;gap:8px;flex-wrap:wrap}.bg-flag{opacity:.45}.bg-flag.on{opacity:1;background:#1e66f526}.btn-plain{background:var(--surface0);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:8px 14px;font:inherit;font-size:13px;cursor:pointer}.btn-plain:hover{background:var(--surface0)}.btn-danger{background:none;color:var(--red);border:1px solid var(--red-border);border-radius:8px;padding:8px 14px;font:inherit;font-size:13px;cursor:pointer}.btn-danger:hover{background:var(--red-bg)}.section-label{display:block;font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:2px 0 8px}input[type=range]{-webkit-user-drag:none;user-drag:none}.theme-picker{display:flex;justify-content:space-between;gap:6px;padding:8px 0 2px}.theme-dot{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;flex-shrink:0;transition:transform .12s,border-color .12s,box-shadow .12s}.theme-dot:hover{transform:scale(1.12)}.theme-dot.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}.theme-slider-row{margin-top:10px;padding:2px 0 0}.theme-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:10px;border-radius:5px;background:linear-gradient(to right,#ff4d4d,#ff9e2c,#ffd93d,#6bcf57,#2ec4a0,#35a7ff,#6c5ce7,#c56cf0,#ff4dab,#ff4d4d);outline:none;cursor:pointer;border:none}.theme-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--thumb-color, #888);border:2.5px solid #fff;box-shadow:0 1px 4px #00000059;cursor:pointer}.theme-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--thumb-color, #888);border:2.5px solid #fff;box-shadow:0 1px 4px #00000059;cursor:pointer}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.bg-value{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.bg-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;border-radius:4px;background:var(--surface1);outline:none;cursor:pointer;border:none;margin:4px 0 0}.bg-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 4px #0000004d;cursor:pointer}.bg-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 4px #0000004d;cursor:pointer}.bg-upload-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.toggle-btn{background:var(--surface0);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.toggle-btn.on{border-color:var(--accent);color:var(--accent)}.toggle-btn.off{border-color:var(--surface1);color:var(--muted)}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.settings-modal{max-width:520px}.model-select{background:var(--input-bg);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:7px 10px;font:inherit;font-size:13px;max-width:210px}.model-list{display:flex;flex-direction:column;gap:6px}.model-group{border:1px solid var(--surface0);border-radius:10px;overflow:hidden}.model-group-head{display:flex;align-items:stretch}.model-group-toggle{flex:1;display:flex;align-items:center;gap:8px;background:var(--panel-glass);border:none;color:var(--text);font:inherit;font-size:13px;font-weight:600;padding:9px 12px;cursor:pointer;text-align:left;border-radius:0}.model-group-toggle:hover{background:var(--surface2)}.model-group-name{flex:1}.model-group-count{color:var(--muted);font-weight:500;font-size:12px;background:var(--surface0);border-radius:8px;padding:1px 8px}.provider-eye{background:var(--panel-glass);border:none;border-left:1px solid var(--surface2);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 12px}.provider-eye:hover{color:var(--text);background:var(--surface2)}.provider-eye.off{color:var(--peach)}.model-group .chevron{transition:transform .15s;color:var(--muted);font-size:11px}.model-group .chevron.closed{transform:rotate(-90deg)}.model-more{border-style:dashed}.model-more>.model-group-head .model-group-toggle{color:var(--accent);background:var(--panel-glass)}.model-subgroup{border:1px solid var(--panel);border-radius:8px;margin:4px 0}.model-subgroup .model-group-toggle{background:var(--panel-glass);font-size:12.5px;font-weight:500}.model-check-list{max-height:240px;overflow-y:auto;padding:6px 8px;display:flex;flex-direction:column;gap:2px}.model-check{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--text);padding:3px 6px;border-radius:6px;cursor:pointer}.model-check:hover{background:var(--panel-glass)}.model-check.off{opacity:.45}.model-check-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-left:6px}.model-eye{background:none;border:none;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:3px;border-radius:5px;flex-shrink:0}.model-eye:hover{color:var(--text);background:var(--surface2)}.model-eye.off{color:var(--peach)}.model-show-more-btn{width:100%;background:none;border:1px dashed var(--surface1);border-radius:10px;color:var(--accent);font:inherit;font-size:13px;font-weight:600;padding:10px;cursor:pointer}.model-show-more-btn:hover{background:var(--blue-soft2);border-color:var(--accent)}.model-divider{border-top:1px solid var(--surface0);margin:2px 0 8px}.vault-modal{max-width:560px}.modal-head-actions{display:flex;align-items:center;gap:6px}.modal-back{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:inline-flex}.modal-back:hover{background:var(--surface0);color:var(--text)}.vault-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.vault-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--input-bg);border:1px solid var(--surface0);border-radius:10px;padding:8px 12px;cursor:pointer}.vault-item:hover{border-color:var(--accent)}.vault-item-main{flex:1;min-width:0;display:flex;flex-direction:column}.vault-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.vault-item-meta{color:var(--muted);font-size:12px}.vault-item-actions{display:flex;gap:4px;flex-shrink:0}.vault-editor{display:flex;flex-direction:column;gap:10px}.vault-title-input{background:var(--input-bg);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:9px 12px;font:inherit;font-size:15px;outline:none}.vault-title-input:focus{border-color:var(--accent)}.vault-sensitive{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;cursor:pointer}.vault-sensitive input{accent-color:var(--peach)}.vault-editor-tabs{display:flex;gap:6px}.vault-tab{background:none;border:1px solid var(--surface1);color:var(--muted);border-radius:8px;font:inherit;font-size:13px;padding:6px 14px;cursor:pointer}.vault-tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.vault-preview{background:var(--input-bg);border:1px solid var(--surface1);border-radius:10px;padding:12px;min-height:180px}.vault-textarea{background:var(--input-bg);color:var(--text);border:1px solid var(--surface1);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.5;outline:none;resize:vertical;min-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.vault-textarea:focus{border-color:var(--accent)}.vault-editor-actions{display:flex;justify-content:flex-end;gap:8px}.btn-ok{background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;padding:8px 18px;font:inherit;font-size:13px;cursor:pointer}.btn-ok:hover{filter:brightness(1.1)}.reset-form{width:100%;display:flex;flex-direction:column;gap:6px;padding:4px 0}.reset-form input{background:var(--input-bg);color:var(--text);border:1px solid var(--surface1);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;outline:none}.reset-actions{display:flex;gap:6px}.btn-small-ok{background:var(--accent);color:var(--on-accent);border:none;border-radius:7px;padding:6px 12px;font:inherit;font-size:12px;cursor:pointer}.btn-small-cancel{background:none;color:var(--muted);border:1px solid var(--surface1);border-radius:7px;padding:6px 12px;font:inherit;font-size:12px;cursor:pointer}.user-row.resetting{background:var(--panel-glass)}.mic-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-bottom:2px}.mic-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);border:none;color:var(--on-accent);cursor:pointer;padding:7px;border-radius:10px;transition:all .15s}.mic-btn:hover{background:var(--accent);color:var(--on-accent);filter:brightness(1.1)}.mic-btn.recording{background:var(--red-bg2);color:var(--red);border-color:var(--red);animation:mic-pulse 1.2s ease-in-out infinite}.mic-btn.busy{opacity:.5;cursor:default}.mic-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--muted);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.rec-timer{font-size:13px;color:var(--red);font-variant-numeric:tabular-nums;min-width:28px}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 var(--mic-pulse)}50%{box-shadow:0 0 0 6px #d20f3900}}@keyframes spin{to{transform:rotate(360deg)}}main{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:none}main::-webkit-scrollbar{width:6px}main::-webkit-scrollbar-track{background:transparent}main::-webkit-scrollbar-thumb{background:transparent!important;border-radius:3px}main:hover::-webkit-scrollbar-thumb{background:var(--scrollbar)!important}main:active::-webkit-scrollbar-thumb{background:var(--scrollbar-strong)!important}.hint{color:var(--muted);text-align:center;margin-top:20vh}.msg{display:flex}.msg.user{justify-content:flex-end}.bubble{max-width:80%;padding:10px 14px;border-radius:14px;background:var(--bubble-glass);word-wrap:break-word}.msg.user .bubble{background:var(--bubble-glass-accent);color:var(--on-accent);border-bottom-right-radius:4px}.msg.assistant .bubble{border-bottom-left-radius:4px}.msg.context{justify-content:center}.context-bubble{background:var(--panel-glass);border:1px solid var(--surface0);width:92%;max-width:92%}.context-bubble pre{white-space:pre-wrap;word-wrap:break-word;font-family:inherit;font-size:13px;color:var(--subtext0);margin:6px 0 0;max-height:200px;overflow-y:auto}.loading{color:var(--muted)}.reasoning{background:var(--panel-glass);border:1px solid var(--surface0);border-radius:10px;margin-bottom:8px;padding:0;font-size:13px;overflow:hidden}.reasoning-toggle{width:100%;display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--muted);cursor:pointer;font:inherit;padding:8px 10px;text-align:left}.reasoning-toggle:hover{background:var(--surface2)}.reasoning-label{flex:1}.chevron{display:inline-block;transition:transform .2s}.chevron.closed{transform:rotate(-90deg)}.reasoning-body{padding:0 10px 10px}.reasoning-sentence{margin:6px 0;color:var(--subtext0);line-height:1.5}.error{color:var(--red);text-align:center;padding:8px}.error-row{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px}.error-row .error{padding:0}.retry-btn{background:none;border:1px solid var(--accent);color:var(--accent);border-radius:8px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}.retry-btn:hover{background:var(--blue-soft)}.stream-status{color:var(--muted);font-size:12px;text-align:center;margin:4px 0;animation:pulse-soft 1.5s ease-in-out infinite}@keyframes pulse-soft{0%,to{opacity:.5}50%{opacity:1}}.scroll-rail{position:absolute;right:2px;top:56px;bottom:68px;width:18px;z-index:8;cursor:ns-resize;touch-action:none;border-radius:8px}.scroll-rail:before{content:"";position:absolute;right:2px;top:0;bottom:0;width:7px;border-radius:4px;background:var(--rail-hover);opacity:0;transition:opacity .15s;pointer-events:none}.scroll-rail:hover:before{opacity:1}.scroll-rail.dragging:before{opacity:1;background:var(--rail-drag)}.rail-progress{position:absolute;right:2px;width:5px;border-radius:3px;background:var(--rail-progress);pointer-events:none;transition:height .1s}.rail-progress:hover,.scroll-rail.dragging .rail-progress{background:var(--rail-progress-hover)}.rail-marker{position:absolute;right:10px;width:6px;height:4px;border-radius:2px;background:var(--accent);opacity:.8;transform:translateY(-50%);transition:opacity .15s,width .15s}.rail-marker:hover{opacity:1;width:9px;cursor:pointer;background:var(--accent)}.rail-tip{position:absolute;right:24px;transform:translateY(-50%);background:var(--panel-glass);border:1px solid var(--surface1);border-radius:10px;padding:8px 12px;max-width:240px;box-shadow:0 8px 30px var(--shadow);pointer-events:none;z-index:9}.rail-tip-label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:4px}.rail-tip-text{font-size:12px;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word}.rail-tip-att{font-size:11px;color:var(--accent);margin-top:5px}footer{display:flex;flex-direction:column;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--surface0)}.attach-chips{display:flex;flex-wrap:wrap;gap:6px}.attach-chip{display:inline-flex;align-items:center;gap:6px;background:var(--panel-glass);border:1px solid var(--surface0);border-radius:8px;padding:5px 10px;font-size:12px;color:var(--subtext0);max-width:220px;overflow:hidden}.attach-chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:0 2px;line-height:1}.attach-chip button:hover{color:var(--red)}.chip-thumb{width:26px;height:26px;object-fit:cover;border-radius:5px;flex-shrink:0}.chip-icon{color:var(--red);flex-shrink:0}.chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--drop-overlay);border:2px dashed var(--accent);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--accent);z-index:60;pointer-events:none}.input-row{display:flex;gap:8px;align-items:flex-end}.attach-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);border:none;color:var(--on-accent);cursor:pointer;padding:7px;border-radius:10px;transition:all .15s;flex-shrink:0}.attach-btn:hover{background:var(--accent);color:var(--on-accent);filter:brightness(1.1)}.attach-menu{position:fixed;bottom:76px;left:16px;z-index:40;background:var(--panel-glass);border:1px solid var(--surface0);border-radius:12px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 30px var(--shadow)}.attach-menu button{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--text);padding:10px 14px;font-size:14px;border-radius:8px;cursor:pointer;text-align:left;width:100%}.attach-menu button:hover{background:var(--surface0)}.attach-menu button svg{color:var(--muted)}.my-files-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.my-files-list li{display:flex;align-items:center;gap:10px;background:var(--input-bg);border:1px solid var(--surface0);border-radius:10px;padding:8px 12px;cursor:pointer}.my-files-list li:hover{border-color:var(--accent)}.my-file-thumb{width:40px;height:40px;object-fit:cover;border-radius:8px;flex-shrink:0}.my-file-icon{color:var(--red);flex-shrink:0}.my-file-info{flex:1;min-width:0;display:flex;flex-direction:column}.my-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.my-file-meta{color:var(--muted);font-size:12px}.my-file-actions{flex-shrink:0}.msg-attachments{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.msg-img{max-width:100%;max-height:320px;border-radius:10px;display:block;object-fit:contain}.msg-file{background:var(--panel-glass);border:1px solid var(--surface0);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--subtext0);display:inline-flex;align-items:center;gap:6px}.chat-md{line-height:1.55;word-wrap:break-word}.chat-md p{margin:6px 0}.chat-md p:first-child{margin-top:0}.chat-md p:last-child{margin-bottom:0}.chat-md strong{font-weight:600;color:var(--text)}.chat-md em{font-style:italic}.chat-md ul,.chat-md ol{margin:8px 0;padding-left:22px}.chat-md li{margin:3px 0}.chat-md h1,.chat-md h2,.chat-md h3,.chat-md h4{margin:12px 0 6px;line-height:1.3;color:var(--text)}.chat-md h1{font-size:1.2em}.chat-md h2{font-size:1.1em}.chat-md h3{font-size:1.05em}.chat-md blockquote{border-left:3px solid var(--accent);margin:8px 0;padding:2px 12px;color:var(--muted)}.chat-md a{color:var(--accent);text-decoration:underline}.inline-code{background:var(--surface0);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;color:var(--peach)}.code-block{background:var(--panel-glass);border:1px solid var(--surface0);border-radius:10px;margin:10px 0;overflow:hidden}.code-head{display:flex;align-items:center;justify-content:space-between;background:var(--panel-glass);padding:6px 12px;border-bottom:1px solid var(--surface0)}.code-lang{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.code-copy{background:none;border:1px solid var(--surface1);border-radius:6px;color:var(--muted);font-size:11px;padding:2px 8px;cursor:pointer}.code-copy:hover{color:var(--text);border-color:var(--accent)}.code-copied{color:var(--green);font-size:11px}.code-block pre{margin:0;padding:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.code-block pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.5;color:var(--text);white-space:pre}.table-wrap{overflow-x:auto;margin:10px 0}.table-wrap table{border-collapse:collapse;width:100%;font-size:13px}.table-wrap th,.table-wrap td{border:1px solid var(--surface0);padding:6px 10px;text-align:left}.table-wrap th{background:var(--panel-glass);font-weight:600}.msg.user .chat-md strong{color:var(--on-accent)}.msg-actions{display:flex;gap:4px;margin-top:10px;opacity:0;transition:opacity .15s}.msg.assistant:hover .msg-actions{opacity:1}.msg-action-btn{background:none;border:1px solid var(--surface1);border-radius:7px;color:var(--muted);cursor:pointer;padding:3px 8px;font-size:13px;line-height:1;display:inline-flex;align-items:center;gap:4px}.msg-action-btn:hover{background:var(--surface0);color:var(--text);border-color:var(--accent)}.temp-toggle{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:12px;white-space:nowrap;cursor:pointer;padding-bottom:8px}textarea{flex:1;resize:none;background:var(--bubble-glass);color:var(--text);border:1px solid var(--surface1);border-radius:10px;padding:10px 12px;font:inherit;outline:none;max-height:160px;overflow-y:auto}textarea::placeholder{color:var(--text);opacity:.45}textarea:focus{border-color:var(--accent)}textarea{scrollbar-width:none}textarea::-webkit-scrollbar{width:5px}textarea::-webkit-scrollbar-track{background:transparent}textarea::-webkit-scrollbar-thumb{background:transparent!important;border-radius:3px}textarea:hover::-webkit-scrollbar-thumb{background:var(--scrollbar)!important}button{background:var(--accent);color:var(--on-accent);border:none;border-radius:10px;padding:0 18px;font:inherit;cursor:pointer}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:default}.send-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);border:none;border-radius:50%;width:38px;height:38px;flex-shrink:0;cursor:pointer;transition:opacity .15s;padding:0}.send-btn:hover:not(:disabled){filter:brightness(1.1)}.send-btn:disabled{opacity:.4;cursor:default}.send-btn.stop{background:var(--red)}.send-btn.stop:hover:not(:disabled){filter:brightness(1.1)}.backdrop{display:none}@media (min-width: 721px){.sidebar{transition:width .25s ease,padding .25s ease,border-color .25s ease;overflow:hidden}.app.sidebar-closed .sidebar{width:0;padding-left:0;padding-right:0;border-right:none}.app.sidebar-closed .sidebar .sidebar-head,.app.sidebar-closed .sidebar .chat-list,.app.sidebar-closed .sidebar .sidebar-footer{visibility:hidden}}@media (max-width: 720px){.sidebar{position:fixed;z-index:20;top:0;left:0;bottom:0;transform:translate(-105%);transition:transform .25s ease}.app.sidebar-visible .sidebar{transform:translate(0)}.app.sidebar-visible .backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);z-index:15}.menu-btn{display:inline-block}}
