@font-face{font-family:__geistSans_1e4310;src:url(/_next/static/media/4473ecc91f70f139-s.p.woff) format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:__geistSans_Fallback_1e4310;src:local("Arial");ascent-override:85.83%;descent-override:20.52%;line-gap-override:9.33%;size-adjust:107.19%}.__className_1e4310{font-family:__geistSans_1e4310,__geistSans_Fallback_1e4310}.__variable_1e4310{--font-geist-sans:"__geistSans_1e4310","__geistSans_Fallback_1e4310"}@font-face{font-family:__geistMono_c3aa02;src:url(/_next/static/media/463dafcda517f24f-s.p.woff) format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:__geistMono_Fallback_c3aa02;src:local("Arial");ascent-override:69.97%;descent-override:16.73%;line-gap-override:7.61%;size-adjust:131.49%}.__className_c3aa02{font-family:__geistMono_c3aa02,__geistMono_Fallback_c3aa02}.__variable_c3aa02{--font-geist-mono:"__geistMono_c3aa02","__geistMono_Fallback_c3aa02"}@media (max-width:960px){body,html{margin:0;padding:0;overflow:hidden;position:fixed;overscroll-behavior:none;-webkit-text-size-adjust:100%}.app-shell,body,html{width:100%;height:100dvh}.app-shell{display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0);padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);background-color:var(--surface-bg)}.app-shell:before{display:none}.app-layout{display:flex;flex-direction:column;flex:1 1;overflow:hidden;gap:0;position:relative;width:100%;height:100%}.sidebar{width:100%!important;border-right:none;border-bottom:1px solid var(--surface-border);flex-shrink:0;background:var(--surface-panel);z-index:50;transition:max-height .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;display:flex;flex-direction:column}.sidebar.collapsed{height:auto;max-height:60px;padding:8px 12px;flex-direction:row;align-items:center;justify-content:space-between;overflow:visible}.sidebar.collapsed .sidebar-body{display:none}.sidebar.collapsed .sidebar-toggle{display:none!important}.sidebar.collapsed .sidebar-collapsed-actions{display:flex;flex-direction:row;align-items:center;gap:12px;width:100%;margin:0;padding:0}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button{flex:0.8 1;min-height:40px;border-radius:12px;border:1px solid var(--surface-border);background:var(--surface-panel);display:flex;align-items:center;justify-content:center;padding:0}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button[aria-label*="Start new chat"]{flex:1.6 1}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button:first-child{background:var(--accent);border-color:var(--accent);color:#fff}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button:first-child .arrow-icon{filter:brightness(0) invert(1)}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button:first-child:active .arrow-icon{filter:brightness(0) invert(1)!important}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button img{width:20px;height:20px;opacity:.8}.sidebar.collapsed .sidebar-collapsed-actions .collapsed-icon-button:first-child img{opacity:1}.app-shell:not(.dark-mode) .sidebar.collapsed .icon-img:not(.sun-icon):not(.moon-icon):not(.settings-icon){filter:brightness(0);opacity:.65}.app-shell:not(.dark-mode) .sidebar.collapsed .sun-icon{filter:invert(65%) sepia(54%) saturate(1200%) hue-rotate(-8deg) brightness(102%) contrast(95%);opacity:1}.app-shell:not(.dark-mode) .sidebar.collapsed .moon-icon{filter:invert(77%) sepia(66%) saturate(461%) hue-rotate(2deg) brightness(97%) contrast(98%);opacity:1}.app-shell:not(.dark-mode) .sidebar.collapsed .settings-icon{filter:invert(60%) sepia(15%) saturate(800%) hue-rotate(220deg) brightness(92%) contrast(90%);opacity:1}.app-shell.dark-mode .sidebar.collapsed .icon-img.moon-icon,.app-shell.dark-mode .sidebar.collapsed .icon-img.sun-icon{filter:invert(83%) sepia(56%) saturate(562%) hue-rotate(354deg) brightness(102%) contrast(98%)}.app-shell.dark-mode .sidebar.collapsed .icon-img.settings-icon{filter:invert(84%) sepia(9%) saturate(300%) hue-rotate(206deg) brightness(96%) contrast(92%)}.app-shell.dark-mode .sidebar.collapsed .icon-img{filter:brightness(0) invert(1)}.sidebar:not(.collapsed){position:absolute;top:0;left:0;right:0;max-height:85vh;height:auto;box-shadow:0 10px 30px rgba(0,0,0,.2);border-radius:0 0 24px 24px;padding:16px;display:flex;flex-direction:column}.sidebar:not(.collapsed) .sidebar-toggle{display:flex!important;position:absolute!important;top:16px;right:16px;left:auto;margin:0;width:36px;height:36px;background:transparent;border:1px solid var(--surface-border);align-items:center;justify-content:center;z-index:10}.sidebar:not(.collapsed) .sidebar-toggle img{width:20px;height:20px;opacity:.7;filter:brightness(0)}.app-shell.dark-mode .sidebar:not(.collapsed) .sidebar-toggle img{filter:brightness(0) invert(1)}.sidebar:not(.collapsed) .sidebar-button{width:100%;justify-content:center;background:var(--surface-panel-alt);border:1px solid var(--surface-border);margin-bottom:8px}.sidebar:not(.collapsed) .sidebar-head{padding-right:48px}.sidebar:not(.collapsed) .sidebar-collapsed-actions{display:none}.chat-panel{flex:1 1;display:flex;flex-direction:column;min-height:0;background:var(--surface-bg);padding:0;width:100%;position:relative}.app-layout:has(.sidebar:not(.collapsed)):after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chat-header{display:none}.chat-window{flex:1 1;width:100%;overflow-y:auto;padding:16px 16px 90px;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;border:none;border-radius:0}.message{max-width:100%;margin-bottom:16px}.message.user{max-width:85%;margin-left:auto}.message.model{max-width:100%;padding-right:12px}.composer{flex-shrink:0;width:100%;background:var(--surface-panel);border-top:1px solid var(--surface-border);padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0));position:absolute;bottom:0;left:0;right:0;z-index:30}.composer-field{display:flex;align-items:flex-end;gap:8px;width:100%;position:relative}.composer-input{flex:1 1;min-height:44px;max-height:120px;padding:10px 16px;font-size:16px;background:var(--surface-bg);border:1px solid var(--surface-border);border-radius:22px;outline:none;resize:none}.composer-input:focus{border-color:var(--accent)}.send-button{position:static!important;transform:none!important;top:auto!important;right:auto!important;width:44px;height:44px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.modal-overlay{z-index:999;padding:20px;align-items:center}.modal{width:100%;max-width:100%;max-height:90dvh;border-radius:20px}.login-view{padding:20px;justify-content:center}.login-card{width:100%;box-shadow:none;border:1px solid var(--surface-border)}}@tailwind base;@tailwind components;@tailwind utilities;:root{font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;color:#111;background-color:#f5f6fb;--surface-border-strong:rgba(0,0,0,.12);--shell-padding:clamp(8px,2vw,12px);--mobile-pad:clamp(8px,3vw,12px);--mobile-radius:clamp(12px,3vw,16px)}*,:after,:before{box-sizing:border-box}body,html{margin:0;background:var(--surface-body);width:100%;min-height:100vh;min-height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}.app-shell{--code-block-bg:#e8ebfb;min-height:100vh;padding:calc(var(--shell-padding) + env(safe-area-inset-top, 0)) calc(var(--shell-padding) + env(safe-area-inset-right, 0)) calc(var(--shell-padding) + env(safe-area-inset-bottom, 0)) calc(var(--shell-padding) + env(safe-area-inset-left, 0));background:var(--surface-body);color:var(--text-primary);transition:background .3s ease,color .3s ease;width:100%;display:flex;flex-direction:column;overscroll-behavior:none}@supports (min-height:100svh){.app-shell{min-height:100svh}}@supports (min-height:100dvh){.app-shell{min-height:100dvh}}.app-shell.dark-mode{--surface-body:linear-gradient(135deg,#1a2136,#0e162c 70%);--surface-panel:#151b28;--surface-panel-alt:#0e1420;--surface-border:hsla(0,0%,100%,.08);--surface-border-strong:hsla(0,0%,100%,.3);--surface-sidebar:#0f1624;--text-primary:#eef1f8;--text-muted:#a9b5cd;--accent:#6d8dff;--accent-strong:#8c66ff;--chip-bg:hsla(0,0%,100%,.08);--code-block-bg:hsla(0,0%,100%,.08)}.app-shell.light-mode{--surface-body:radial-gradient(circle at top left,#f8fff6 0%,#e6f6ff 55%,#d9ecff 100%);--surface-panel:#fff;--surface-panel-alt:#f6f7fb;--surface-border:rgba(43,62,102,.15);--surface-border-strong:rgba(64,88,255,.25);--surface-sidebar:#eef1fb;--text-primary:#1a2130;--text-muted:#5a6478;--accent:#4a6bff;--accent-strong:#8841ff;--chip-bg:rgba(64,88,255,.08);--code-block-bg:#e8ebfb}.app-layout{display:flex;min-height:calc(100vh - var(--shell-padding) * 2);gap:10px;background:transparent;overflow:hidden;flex:1 1;width:100%}.chat-panel{position:relative;min-width:0}.login-view{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-panel{width:min(480px,100%)}.login-card{background:var(--surface-panel);border-radius:28px;padding:32px;border:1px solid var(--surface-border);box-shadow:0 20px 50px rgba(16,25,54,.15);display:flex;flex-direction:column;gap:16px}.login-header{display:flex;justify-content:space-between;align-items:center}.login-header h1{margin:0;font-size:1.8rem;color:var(--text-primary)}.login-subtitle{margin:0;color:var(--text-muted);font-size:.95rem}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px;color:var(--text-primary);font-size:.95rem}.login-field input{border-radius:16px;border:1px solid var(--surface-border);padding:12px 14px;background:var(--surface-panel-alt);color:var(--text-primary);transition:border .2s ease,box-shadow .2s ease}.login-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(64,88,255,.12)}.login-error{color:#e0435c;background:rgba(224,67,92,.14);border-radius:12px;padding:10px 14px;font-size:.9rem}.login-submit{margin-top:4px;border-radius:18px;border:none;padding:12px 0;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.login-submit:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(23,32,66,.2)}.login-submit:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.login-switch{margin-top:12px;display:flex;justify-content:center;gap:6px;font-size:.9rem;color:var(--text-muted)}.login-switch-button{border:none;background:none;color:var(--accent);cursor:pointer;font-weight:600;padding:0}.login-switch-button:hover{text-decoration:underline}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.anim-enter{animation:slideIn 1s cubic-bezier(.2,0,.2,1) forwards}.sidebar{position:relative;width:260px;background:var(--surface-sidebar);border:1px solid var(--surface-border);display:flex;transition:width .3s ease;padding:64px 20px 24px;border-radius:20px;box-shadow:0 2px 6px rgba(0,10px,10px,.12);overflow:hidden;max-height:calc(100vh - var(--shell-padding) * 2)}.sidebar-collapsed-actions{display:none}.collapsed-icon-button{width:44px;height:44px;border-radius:14px;border:1px solid var(--surface-border);background:var(--surface-panel);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;transition:background .2s ease,transform .2s ease}.collapsed-icon-button:hover{background:var(--chip-bg);transform:translateY(-1px)}.sidebar.collapsed .sidebar-collapsed-actions{display:flex;flex-direction:column;gap:14px;position:relative;margin-top:90px;align-items:center;padding-bottom:12px}.sidebar-body{display:flex;flex-direction:column;gap:10px;width:100%;flex:1 1;overflow:hidden;min-height:0}.sidebar.collapsed{width:72px;padding:64px 12px 24px}.sidebar.collapsed .more-session-button,.sidebar.collapsed .session-info,.sidebar.collapsed .session-menu,.sidebar.collapsed .sidebar-controls,.sidebar.collapsed .sidebar-head-actions,.sidebar.collapsed .sidebar-title,.sidebar.collapsed .sidebar-title-group{opacity:0;pointer-events:none}.sidebar.collapsed .sidebar-body{display:none}.sidebar-head{justify-content:space-between;padding-bottom:8px}.sidebar-head,.sidebar-title-group{display:flex;align-items:center;gap:6px}.sidebar-head-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.sidebar-title{margin:0;font-size:1.4rem;line-height:1;letter-spacing:.005em}.icon-button{width:36px;height:36px;border-radius:12px;border:1px solid var(--surface-border);background:var(--surface-panel);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;font-size:1.1rem;padding:0}.icon-button:hover{background:var(--chip-bg)}.icon-img{width:22px;height:22px;object-fit:contain}.icon-img.small{width:18px;height:18px}.app-shell.dark-mode .arrow-icon-left,.app-shell.dark-mode .arrow-icon-right,.app-shell.dark-mode .icon-img.small{filter:brightness(0) invert(1)}.arrow-icon-left,.arrow-icon-right{filter:invert(16%) sepia(7%) saturate(1296%) hue-rotate(182deg) brightness(92%) contrast(90%)}.settings-icon{filter:invert(60%) sepia(15%) saturate(800%) hue-rotate(220deg) brightness(92%) contrast(90%)}.app-shell.dark-mode .settings-icon{filter:invert(84%) sepia(9%) saturate(300%) hue-rotate(206deg) brightness(96%) contrast(92%)}.sun-icon{filter:invert(65%) sepia(54%) saturate(1200%) hue-rotate(-8deg) brightness(102%) contrast(95%)}.moon-icon{filter:invert(77%) sepia(66%) saturate(461%) hue-rotate(2deg) brightness(97%) contrast(98%)}.app-shell.dark-mode .moon-icon,.app-shell.dark-mode .sun-icon{filter:invert(83%) sepia(56%) saturate(562%) hue-rotate(354deg) brightness(102%) contrast(98%)}.icon-button:active .arrow-icon,.sidebar-toggle:active .arrow-icon{filter:invert(51%) sepia(67%) saturate(2205%) hue-rotate(205deg) brightness(95%) contrast(101%)}.icon-button:active,.sidebar-toggle:active{background:linear-gradient(135deg,rgba(74,107,255,.18),rgba(136,65,255,.18));border-color:var(--surface-border-strong)}.sidebar-toggle{position:absolute;top:18px;left:18px;width:38px;height:38px;border-radius:14px;border:1px solid var(--surface-border);background:var(--surface-panel);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease;z-index:2}.sidebar-toggle:hover{background:var(--chip-bg);transform:scale(1.05)}.sidebar-controls{display:flex;flex-direction:column;gap:0}.history-actions{display:flex;flex-direction:column;gap:10px}.sidebar-button{border:1px solid var(--surface-border);border-radius:12px;padding:12px 16px;background:var(--surface-panel);color:var(--text-primary);cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease;text-align:left;display:inline-flex;align-items:center;gap:8px;font-weight:600}.sidebar-head-actions .icon-button .icon-img{width:18px;height:18px}.sidebar-head-actions .icon-button{width:32px;height:32px;padding:0;border-radius:10px;border:1px solid var(--surface-border);min-width:0;min-height:0}.checkbox-row{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.85rem;cursor:pointer;color:var(--text-secondary)}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.sidebar-button:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}.sidebar-button.secondary{border:1px dashed var(--surface-border);background:transparent;color:var(--text-muted)}.sidebar-button.secondary:hover{background:var(--chip-bg);color:var(--text-primary)}.sidebar-button.secondary:disabled{opacity:.45;cursor:not-allowed;transform:none}.sidebar-search{margin:12px 0 8px;position:relative;display:flex;align-items:center;transition:all .3s ease}.search-input{width:100%;background:var(--surface-panel-alt);border:1px solid var(--surface-border);border-radius:12px;padding:8px 12px 8px 36px;font-size:.85rem;color:var(--text-primary);transition:all .2s ease}.search-input:focus{outline:none;background:var(--surface-panel);border-color:var(--accent);box-shadow:0 0 0 3px rgba(64,88,255,.1)}.search-icon{position:absolute;left:12px;width:16px;height:16px;opacity:.5;pointer-events:none}.search-clear{position:absolute;right:8px;border:none;background:transparent;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;border-radius:6px;transition:background .2s ease,opacity .2s ease}.search-clear:hover{background:var(--chip-bg);opacity:1}.collapsed .sidebar-search{opacity:0;visibility:hidden;pointer-events:none}.session-list{list-style:none;margin:0;padding:0;flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.session-list::-webkit-scrollbar{width:6px}.session-list::-webkit-scrollbar-track{background:transparent}.session-list::-webkit-scrollbar-thumb{background:transparent;border-radius:10px}.session-list:hover::-webkit-scrollbar-thumb{background:var(--surface-border-strong)}.session-list{scrollbar-width:thin;scrollbar-color:transparent transparent;transition:scrollbar-color .3s ease}.session-list:hover{scrollbar-color:var(--surface-border-strong) transparent}.session-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:1px 12px;border-radius:10px;background:var(--surface-panel);border:1px solid var(--surface-border);cursor:pointer;transition:background .2s ease,border .2s ease;min-height:48px}.session-list{margin-top:12px;padding-top:12px;border-top:1px solid var(--surface-border)}.session-item:hover{background:rgba(0,0,0,.04);border-color:var(--surface-border-strong)}.session-item.active{background:#dbe2fc;border-color:#4b6cff}.dark-mode .session-item.active{background:rgba(110,140,255,.15);border-color:#6e8cff;color:#fff}.sidebar.collapsed .session-item{justify-content:center;gap:0;padding:6px 0;width:100%}.sidebar.collapsed .session-item,.sidebar.collapsed .session-item:hover{background:transparent!important;border:none!important}.sidebar.collapsed .session-item:before{display:none}.sidebar.collapsed .session-item.active{background:transparent!important;border:none!important}.sidebar.collapsed .session-item.active:before{display:none}.session-info{display:flex;flex-direction:row;align-items:center;gap:8px;flex:1 1;min-width:0}.session-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-rename-input,.session-title{font-weight:500;font-size:.85rem;flex:1 1}.session-rename-input{min-width:0;font-family:inherit;color:var(--text-primary);background:var(--surface-panel);border:1px solid var(--accent);border-radius:6px;padding:2px 6px;margin:-3px -7px;outline:none;box-shadow:0 0 0 2px rgba(64,88,255,.15)}.session-pin-icon{flex-shrink:0;opacity:.8}.session-count{display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;color:var(--text-muted);background:var(--chip-bg);min-width:18px;height:18px;padding:0 4px;border-radius:9px;flex-shrink:0;opacity:0;transition:opacity .2s ease;line-height:normal}.session-item:hover .session-count{opacity:1}.session-actions{display:flex;flex-direction:column;gap:2px;margin-left:4px}.more-session-button,.session-actions{align-items:center;justify-content:center;flex-shrink:0}.more-session-button{border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:0;width:18px;height:18px;font-size:0;line-height:1;transition:opacity .2s ease,color .2s ease,background .2s ease;display:inline-flex;opacity:0;border-radius:3px}.more-session-button .icon-img{width:14px;height:14px}.session-item:hover .more-session-button{opacity:1}.more-session-button:hover{color:var(--text-primary);background:rgba(0,0,0,.08)}.session-menu{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid rgba(43,62,102,.15);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:6px;display:flex;flex-direction:column;min-width:140px;z-index:10000;color:#1a2130}.app-shell.dark-mode~.session-menu,.dark-mode .session-menu{background:#151b28;border-color:hsla(0,0%,100%,.08);color:#eef1f8}.session-menu-item{border:none;background:transparent;padding:8px 12px;text-align:left;border-radius:8px;font-size:.9rem;color:inherit;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;gap:8px}.session-menu-item:hover{background:rgba(0,0,0,.06)}.session-menu-item.delete{color:#e0435c}.session-menu-item.delete:hover{background:rgba(224,67,92,.1)}.session-menu-item .icon-img{width:16px;height:16px}.session-menu-item.delete .icon-img{filter:invert(41%) sepia(51%) saturate(2250%) hue-rotate(328deg) brightness(91%) contrast(96%)}.chat-panel{flex:1 1;display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top, 0)) 20px calc(14px + env(safe-area-inset-bottom, 0));background:var(--surface-panel);border-radius:24px;border:1px solid var(--surface-border);box-shadow:0 25px 65px rgba(0,10px,10px,.12);max-height:calc(100vh - var(--shell-padding) * 2);overflow:hidden;gap:6px}.chat-header{justify-content:space-between;padding:calc(4px + env(safe-area-inset-top, 0)) 0 2px 10px;margin-bottom:5px}.chat-header,.header-right{display:flex;align-items:center;gap:8px}.header-right{flex-shrink:0}.chat-model-badge{padding:2px 8px;background:var(--chip-bg);color:var(--text-muted);border:1px solid var(--surface-border);border-radius:6px;font-size:.72rem;font-weight:500;white-space:nowrap}.chat-user-badge{padding:3px 12px;background:var(--accent);color:#fff;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.05)}.chat-session-meta{flex:1 1;min-width:0;width:100%}.chat-session-title{margin:0;font-size:1.05rem;cursor:pointer}.chat-session-title-container{display:flex;align-items:center;gap:8px;max-width:100%}.chat-header-rename-btn{background:transparent;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease,background .2s ease;border-radius:6px;flex-shrink:0}.chat-session-title-container:hover .chat-header-rename-btn{opacity:.6}.chat-header-rename-btn:hover{opacity:1!important;background:var(--chip-bg)}.header-rename-input{background:var(--surface-panel-alt);border:1px solid var(--accent);color:var(--text-primary);font-size:1.05rem;font-weight:500;padding:2px 8px;border-radius:8px;width:100%;max-width:400px;outline:none;box-shadow:0 0 0 2px rgba(64,88,255,.1)}.chat-session-instruction{margin:2px 0 0;color:var(--text-muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%}.chat-header-actions{display:flex;align-items:center;gap:12px}.clear-history-button{border:1px solid var(--surface-border);background:transparent;color:var(--text-primary);border-radius:12px;padding:8px 14px;cursor:pointer;transition:background .2s ease}.clear-history-button:hover{background:var(--chip-bg)}.clear-history-button:disabled{opacity:.4;cursor:not-allowed}.chat-window{flex:1 1;overflow-y:auto;padding:16px;scroll-padding-bottom:120px;border-radius:16px;background:var(--surface-panel-alt);border:1px solid var(--surface-border);margin-bottom:10px;height:clamp(480px,72vh,780px);max-height:clamp(680px,72vh,780px);scrollbar-width:thin;scrollbar-color:rgba(64,88,255,.35) transparent;overscroll-behavior:contain}.chat-window:hover::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--accent-strong));border:2px solid transparent;background-clip:padding-box}.empty-state{text-align:center;color:var(--text-muted);padding:48px 16px}.message-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;overflow:visible}.message{display:flex;gap:16px;padding:16px;border-radius:16px;background:var(--surface-panel);border:1px solid var(--surface-border);width:-moz-fit-content;width:fit-content;max-width:min(85%,720px);align-self:flex-start}.message.has-code{background:var(--surface-panel-alt);border-color:var(--surface-border-strong)}.message.user{border-color:rgba(64,88,255,.4);background:rgba(64,88,255,.08);margin-left:auto;align-self:flex-end}.message.model{width:-moz-fit-content;width:fit-content;max-width:min(98%,1960px);align-self:flex-start;box-sizing:border-box}.message.model.is-error{border-color:rgba(224,67,92,.45);background:rgba(224,67,92,.08);color:#c53030}.message-role{font-weight:600;min-width:60px;color:var(--text-muted)}.message-role:empty{display:none}.message-content{flex:1 1;color:var(--text-primary);word-break:break-word;overflow-wrap:anywhere}.message.model.is-error .message-content{color:inherit}.message.model.is-error .message-content,.message.model.is-error .message-content *{color:#e0435c!important}.message-content p{margin:0 0 12px}.message-content p:last-child{margin-bottom:0}.message-content ol,.message-content ul{margin:0 0 12px;padding-left:0;list-style-position:inside}.message-content hr{border:none;border-top:1px solid var(--surface-border-strong);margin:16px 0}.message-content code,.message-content pre{white-space:pre-wrap;word-break:break-word}.message-content.with-code pre{margin:12px 0;padding:12px;border-radius:14px;background:var(--code-block-bg,#e8ebfb);border:1px solid var(--surface-border);overflow-x:auto}.message-content.with-code code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;padding:0;border-radius:0;background:transparent;border:none}.message.thinking{background:transparent;border:none;padding:0;width:auto;min-width:220px}.message.thinking .message-role{display:none}.message.thinking .message-content{flex:1 1;min-width:200px}.thinking-indicator{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:14px;background:var(--surface-panel);border:1px dashed var(--surface-border);min-width:200px}.thinking-spinner{width:14px;height:14px;border-radius:50%;border-bottom:2px solid transparent;border-right:2px solid transparent;border-top:2px solid transparent;border-top-color:var(--accent);border-left:2px solid transparent;border-left-color:var(--accent);animation:spin .9s linear infinite}.thinking-text{color:var(--text-muted);font-size:.95rem;letter-spacing:.02em;animation:thinkingPulse 1.3s ease-in-out infinite}.chat-status{min-height:0;margin:0;padding:0;color:var(--text-muted)}.status{display:inline-flex;align-items:center;gap:6px;opacity:.92;transition:color .85s ease-in-out,background .85s ease-in-out,border-color .85s ease-in-out,opacity .85s ease-in-out}.status.loading{color:var(--accent);opacity:1}.status.error{color:#ff6464;opacity:1}.status.warning{padding:6px 12px;border-radius:16px;background:rgba(255,194,82,.15);color:#d97706;font-weight:600}.composer{margin-top:0;border:2px solid var(--surface-border-strong);border-radius:20px;background:var(--surface-panel);padding:0;box-shadow:0 10px 30px rgba(40,52,84,.15);position:-webkit-sticky;position:sticky;bottom:calc(env(safe-area-inset-bottom, 0) + 8px);z-index:5;transition:border-color .2s ease,box-shadow .2s ease}.composer:focus-within{border-color:var(--text-primary);box-shadow:0 10px 30px rgba(40,52,84,.15),0 0 0 .01px var(--text-primary)}.composer-field{position:relative;display:flex;align-items:center}.composer-input{flex:1 1;border:none;border-radius:20px;resize:none;padding:16px 120px 16px 4px;background:transparent;color:var(--text-primary);min-height:48px;line-height:1.5;overflow-y:auto;max-height:220px;font-size:16px;outline:none}.composer-input:disabled{opacity:.6}.send-button{position:absolute;right:16px;top:50%;transform:translateY(-50%);padding:8px 22px;border-radius:999px;border:none;background:linear-gradient(120deg,var(--accent),var(--accent-strong));color:#fff;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.send-button:hover:not(:disabled){transform:translateY(-50%) scale(1.05);opacity:.9}.send-button:disabled{opacity:.5;cursor:not-allowed}.composer-upload-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:10px;border-radius:10px;cursor:pointer;color:var(--text-muted);transition:color .2s ease,background .2s ease;flex-shrink:0}.composer-upload-btn:hover{color:var(--accent);background:var(--chip-bg)}.composer-image-preview{display:flex;gap:8px;padding:10px 14px 0;flex-wrap:wrap}.composer-image-item{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;border:2px solid var(--surface-border);transition:border-color .2s ease}.composer-image-item:hover{border-color:var(--accent)}.composer-image-item img{width:100%;height:100%;object-fit:cover}.composer-image-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.composer-image-item:hover .composer-image-remove{opacity:1}.message-images{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.message-image{max-width:240px;max-height:200px;border-radius:12px;border:1px solid var(--surface-border);object-fit:cover;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.message-image:hover{transform:scale(1.02);box-shadow:0 4px 16px rgba(0,0,0,.15)}.modal-overlay{position:fixed;inset:0;background:rgba(9,15,37,.65);display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface-panel);border-radius:26px;padding:32px;width:min(480px,92vw);border:1px solid hsla(0,0%,100%,.08);display:flex;flex-direction:column;gap:18px;box-shadow:0 35px 80px rgba(15,24,66,.35);position:relative;overflow:hidden}.modal:before{display:none}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--surface-border)}.modal-close{width:34px;height:34px;border-radius:12px;border:none;background:var(--chip-bg);font-size:1.1rem;cursor:pointer;color:var(--text-primary);transition:background .2s ease,color .2s ease,filter .2s ease;display:inline-flex;align-items:center;justify-content:center}.app-shell.dark-mode .modal-close:hover .icon-img,.modal-close:hover .icon-img{filter:invert(29%) sepia(78%) saturate(2782%) hue-rotate(341deg) brightness(89%) contrast(95%)}.modal-body{gap:16px}.modal-body,.modal-field{display:flex;flex-direction:column}.modal-field{gap:8px;color:var(--text-primary);font-size:.95rem}.modal-field input,.modal-field textarea{border-radius:16px;border:1px solid var(--surface-border);padding:12px 14px;background:var(--surface-panel-alt);color:var(--text-primary);transition:border .2s ease,box-shadow .2s ease}.modal-field input:focus,.modal-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(64,88,255,.12)}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px}.modal-actions button{border-radius:16px;border:none;padding:10px 22px;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;font-weight:600;transition:transform .2s ease,box-shadow .2s ease,opacity .15s ease}.modal-actions button:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(23,32,66,.25)}.modal.confirm .modal-actions button{background:var(--surface-panel);color:var(--text-primary);border:1px solid var(--surface-border)}.modal.confirm .modal-actions button.danger{background:linear-gradient(135deg,#ff4b4b,#d9234f);color:#fff;border:none}.modal.confirm .modal-actions button.danger:hover{box-shadow:0 16px 30px rgba(217,35,79,.35)}.clear-history-button,.collapsed-icon-button,.composer-send,.logout-button,.modal-actions button,.send-button,.sidebar-button,.sidebar-toggle{min-width:44px;min-height:44px;touch-action:manipulation}.modal-actions .logout-button{background:linear-gradient(135deg,#ff4b4b,#d9234f);color:#fff;font-weight:600}.modal-actions .logout-button:hover{box-shadow:0 16px 30px rgba(217,35,79,.35)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes thinkingPulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes revealMessage{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message.model{animation:revealMessage .4s cubic-bezier(.16,1,.3,1) forwards}.message.model.streaming .message-content:after{content:"▊";display:inline-block;vertical-align:baseline;margin-left:4px;color:var(--accent);font-size:1.1em;filter:drop-shadow(0 0 4px var(--accent));animation:cursorBlink .8s step-end infinite}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.message-content{will-change:contents}.timeline-container{position:absolute;right:2px;top:120px;bottom:120px;width:16px;display:flex;justify-content:center;z-index:10;pointer-events:none;background:var(--surface-panel-alt);border:1px solid rgba(64,88,255,.25);opacity:.9;border-radius:10px;padding:12px 0;box-shadow:0 4px 12px rgba(0,0,0,.08)}.timeline-track{position:absolute;top:12px;bottom:12px;left:50%;transform:translateX(-50%);width:2px;background:var(--surface-border);border-radius:2px}.timeline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100%;width:100%;position:relative;z-index:1}.timeline-item{position:relative;pointer-events:auto}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--surface-panel-alt);cursor:pointer;transition:all .25s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 0 0 2px transparent}.timeline-dot:hover{background:var(--accent);transform:scale(1.5);box-shadow:0 0 0 4px rgba(64,88,255,.15)}.timeline-dot:active{transform:scale(1.2)}.timeline-tooltip{position:absolute;right:20px;top:50%;transform:translateY(-50%) translateX(10px);background:var(--surface-panel);border:1px solid var(--surface-border);box-shadow:0 8px 24px rgba(16,25,54,.15);padding:8px 12px;border-radius:12px;font-size:.85rem;color:var(--text-primary);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;opacity:0;visibility:hidden;transition:all .2s cubic-bezier(.16,1,.3,1);pointer-events:none}.timeline-tooltip:after{content:"";position:absolute;right:-5px;top:50%;transform:translateY(-50%);border-left:5px solid var(--surface-panel);border-top:5px solid transparent;border-bottom:5px solid transparent}.timeline-dot:hover .timeline-tooltip{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}@media (max-width:768px){.timeline-container{display:none}}.input-wrapper{position:relative;width:100%}.input-wrapper .input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;opacity:.5;pointer-events:none;transition:opacity .2s ease,color .2s ease}.input-wrapper input{padding-left:42px;width:100%;box-sizing:border-box}.input-wrapper:focus-within .input-icon{opacity:1;filter:brightness(0) saturate(100%) invert(43%) sepia(35%) saturate(2250%) hue-rotate(222deg) brightness(101%) contrast(105%)}.field-error{color:#e0435c;font-size:13px;margin-top:6px;margin-left:4px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}