:root{--paper:#fff;--canvas:#f7f7f5;--ink:#171717;--secondary:#606060;--muted:#929292;--line:rgba(0,0,0,.09);--hover:rgba(0,0,0,.045);--selected:#ececea;--input:#f1f1ef;--blue:#246bfd;--danger:#c83d3d;--success:#18855a;--sidebar:284px}
*{box-sizing:border-box}html,body{width:100%;height:100%}body{margin:0;overflow:hidden;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(36,107,253,.42);outline-offset:2px}
.app-shell{height:100dvh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);transition:grid-template-columns 180ms cubic-bezier(.23,1,.32,1)}.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.sidebar{min-width:0;overflow:hidden;display:flex;flex-direction:column;padding:12px;background:var(--canvas);border-right:1px solid var(--line)}.sidebar-head{min-width:250px;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 10px}.sidebar-head strong{font-size:16px;letter-spacing:-.02em}.icon-button{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--secondary);font-size:22px}.icon-button:hover{background:var(--hover);color:var(--ink)}.new-chat{min-width:250px;height:44px;margin:8px 0 20px;padding:0 12px;display:flex;align-items:center;gap:10px;border:0;border-radius:10px;background:var(--ink);color:#fff;font-weight:600;text-align:left}.new-chat span{font-size:21px;font-weight:400}.sidebar-section{min-width:250px;margin-bottom:18px}.conversations-section{flex:1;min-height:0;display:flex;flex-direction:column}.section-label{height:30px;padding:0 8px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:600}.section-label button{width:30px;height:30px;border:0;background:transparent;border-radius:8px;color:var(--secondary);font-size:18px}.section-label button:hover{background:var(--hover)}.library-list,.conversation-list{display:grid;gap:3px}.conversation-list{min-height:0;overflow-y:auto}.library-item,.conversation-item{width:100%;border:0;border-radius:9px;background:transparent;text-align:left;color:var(--secondary)}.library-item{min-height:42px;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.library-item.active,.conversation-item.active{background:var(--selected);color:var(--ink)}.library-item strong,.conversation-item strong{min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.library-item span{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.conversation-item{min-height:50px;padding:8px 10px}.conversation-item:hover,.library-item:hover{background:var(--hover)}.conversation-item span{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.sidebar-foot{min-width:250px;height:44px;display:flex;align-items:center;gap:9px;padding:0 10px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.sidebar-foot i{width:8px;height:8px;border-radius:50%;background:#d39a2c}.sidebar-foot.online i{background:var(--success)}.sidebar-foot.offline i{background:var(--danger)}
.workspace{min-width:0;min-height:0;display:grid;grid-template-rows:64px minmax(0,1fr)}.topbar{display:flex;align-items:center;gap:12px;padding:8px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);z-index:3}.menu-button{display:none}.sidebar-collapsed .menu-button{display:grid}.conversation-title-wrap{min-width:0;flex:1}.title-input{width:min(560px,60vw);display:block;border:0;padding:0;background:transparent;color:var(--ink);font-size:16px;font-weight:650;outline:0}.conversation-title-wrap span{display:block;margin-top:2px;color:var(--muted);font-size:11px}.topbar-actions{display:flex;align-items:center;gap:8px}.topbar select,.text-button{height:38px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--secondary);font-size:12px}.text-button:hover,.topbar select:hover{background:var(--hover);color:var(--ink)}
.chat-panel{position:relative;min-height:0;overflow:hidden;background:var(--paper)}.message-list{height:100%;overflow:auto;padding:34px clamp(18px,6vw,88px) 164px;overscroll-behavior:contain;scrollbar-gutter:stable}.empty-state{max-width:680px;margin:14vh auto 0;text-align:center}.empty-state h1{margin:0 0 12px;font-size:clamp(25px,3vw,36px);letter-spacing:-.035em}.empty-state p{margin:0 auto;max-width:520px;color:var(--secondary);line-height:1.7;font-size:14px}.empty-state .library-summary{display:inline-flex;margin-top:20px;padding:8px 12px;border-radius:18px;background:var(--canvas);color:var(--secondary);font-size:12px}.message{max-width:820px;margin:0 auto 28px}.message.user{display:flex;justify-content:flex-end}.message-body{min-width:0;max-width:100%;font-size:15px;line-height:1.75;overflow-wrap:anywhere}.message.user .message-body{max-width:min(78%,660px);padding:10px 14px;border-radius:18px 18px 5px 18px;background:var(--input)}.message.assistant .message-body{width:100%}.message-content>:first-child{margin-top:0}.message-content>:last-child{margin-bottom:0}.message-content p{margin:0 0 13px}.message-content h3,.message-content h4,.message-content h5{margin:22px 0 9px;line-height:1.35}.message-content h3{font-size:19px}.message-content h4{font-size:17px}.message-content h5{font-size:15px}.message-content ul,.message-content ol{margin:8px 0 14px;padding-left:24px}.message-content li+li{margin-top:6px}.message-content code{padding:2px 5px;border-radius:4px;background:var(--input);font-family:ui-monospace,monospace;font-size:.9em}.message-content pre{max-width:100%;overflow:auto;padding:14px;border-radius:10px;background:#202020;color:#fff}.message-content pre code{padding:0;background:transparent}.message-content a{color:#175cd3;text-underline-offset:3px}.message-meta{margin-top:7px;color:var(--muted);font-size:10px}.message.user .message-meta{text-align:right}.message.loading .message-content:after{content:"";display:inline-block;width:24px;height:6px;background:radial-gradient(circle,#777 2px,transparent 3px) 0 0/8px 6px;animation:dots 1s steps(3) infinite}@keyframes dots{to{background-position:24px 0}}
.message-attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,220px));gap:8px;margin-bottom:10px}.message-attachment{display:block;overflow:hidden;border-radius:12px;background:var(--canvas);color:inherit;text-decoration:none;box-shadow:inset 0 0 0 1px var(--line)}.message-attachment img{display:block;width:100%;max-height:320px;object-fit:contain;background:var(--canvas)}.message-attachment span{display:block;padding:9px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.source-page{width:min(100%,720px);margin:14px 0 20px;overflow:hidden;border-radius:10px;background:var(--canvas);box-shadow:inset 0 0 0 1px var(--line)}.source-page-image{min-height:120px;display:grid;place-items:center;color:var(--muted);text-decoration:none}.source-page img{display:block;width:100%;height:auto;max-height:760px;object-fit:contain;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.source-page figcaption{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 11px;color:var(--muted);font-size:11px}.source-page figcaption span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-page figcaption a{flex:0 0 auto;text-decoration:none}.source-image-error{min-height:140px;display:grid;place-items:center;padding:20px;color:var(--secondary);text-align:center;font-size:12px}.source-preview{display:inline-flex;min-height:36px;align-items:center;margin:6px 0;padding:0 11px;border-radius:8px;background:var(--canvas);text-decoration:none;font-size:12px}.document-link{font-weight:600}
.composer{position:absolute;z-index:4;left:clamp(12px,5vw,72px);right:clamp(12px,5vw,72px);bottom:18px;max-width:860px;margin:auto;padding:8px;border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 0 0 1px var(--line),0 10px 34px rgba(0,0,0,.10)}.composer.dragging{box-shadow:0 0 0 2px var(--blue),0 10px 34px rgba(0,0,0,.10)}.composer-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:end;gap:7px}.attach-button,.send-button{width:44px;height:44px;border:0;border-radius:50%;font-size:24px}.attach-button{background:transparent;color:var(--ink)}.attach-button:hover{background:var(--hover)}.send-button{background:var(--ink);color:#fff;font-size:22px}.send-button:disabled{opacity:.35;cursor:default}.composer textarea{width:100%;min-height:34px;max-height:160px;padding:10px 3px 5px;resize:none;border:0;outline:0;background:transparent;color:var(--ink);font-size:15px;line-height:1.45}.composer textarea::placeholder{color:var(--muted)}.composer>small{display:block;padding:4px 50px 2px;color:var(--muted);font-size:9px;text-align:center}.pending-attachments{display:flex;gap:8px;overflow-x:auto;padding:4px 4px 9px}.pending-item{position:relative;flex:0 0 auto;width:94px;height:72px;overflow:hidden;border-radius:10px;background:var(--canvas);box-shadow:inset 0 0 0 1px var(--line)}.pending-item img{width:100%;height:100%;object-fit:cover}.pending-item span{display:block;padding:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.pending-item button{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff}.jump-latest{position:absolute;right:24px;bottom:126px;z-index:3;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;opacity:0;pointer-events:none}.jump-latest.visible{opacity:1;pointer-events:auto}
.manual-dialog{width:min(680px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - 28px));padding:0;overflow:hidden;border:0;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.22)}.manual-dialog::backdrop{background:rgba(0,0,0,.34)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px}.dialog-head h2{margin:0;font-size:20px}.dialog-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.manual-upload{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 20px 16px;padding:13px 15px;border-radius:10px;background:var(--canvas);cursor:pointer}.manual-upload span{font-size:13px;font-weight:650}.manual-upload small{color:var(--muted);font-size:10px;text-align:right}.manual-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 20px 10px;color:var(--muted);font-size:11px}.manual-toolbar input{width:220px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.manual-list{max-height:520px;overflow-y:auto;border-top:1px solid var(--line);padding:8px 12px 14px}.manual-item{min-height:48px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;border-radius:9px}.manual-item:hover{background:var(--hover)}.manual-type{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:var(--input);color:var(--secondary);font-size:8px;font-weight:700}.manual-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.manual-item span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.delete-manual{width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--muted)}.delete-manual:hover{background:#fbecec;color:var(--danger)}.manual-empty{padding:48px 20px;color:var(--muted);text-align:center;font-size:12px}.sidebar-scrim{display:none}.toast-stack{position:fixed;z-index:30;right:18px;bottom:18px;display:grid;gap:8px}.toast{max-width:min(400px,calc(100vw - 36px));padding:12px 15px;border-radius:10px;background:#202020;color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.18);font-size:12px}.toast.error{background:#8f2f2f}
@media(max-width:760px){.app-shell,.app-shell.sidebar-collapsed{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:12;width:min(320px,86vw);transform:translateX(-102%);transition:transform 200ms cubic-bezier(.23,1,.32,1);box-shadow:16px 0 50px rgba(0,0,0,.18)}.sidebar.open{transform:translateX(0)}.sidebar-scrim{position:fixed;inset:0;z-index:11;border:0;background:rgba(0,0,0,.36)}.sidebar.open+.sidebar-scrim{display:block}.workspace{height:100dvh;grid-template-rows:58px minmax(0,1fr)}.topbar{padding:6px 10px;gap:7px}.menu-button,.sidebar-collapsed .menu-button{display:grid}.title-input{width:100%;font-size:14px}.conversation-title-wrap span{font-size:9px}.topbar select{display:none}.text-button{padding:0 9px;font-size:11px}.message-list{padding:22px 14px 148px}.empty-state{margin-top:11vh}.empty-state h1{font-size:25px}.message{margin-bottom:22px}.message-body{font-size:14px}.message.user .message-body{max-width:88%}.composer{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));border-radius:20px}.composer>small{display:none}.jump-latest{right:14px;bottom:calc(92px + env(safe-area-inset-bottom))}.source-page{border-radius:7px}.source-page img{max-height:66vh}.manual-upload{align-items:flex-start;flex-direction:column;gap:4px}.manual-upload small{text-align:left}.manual-toolbar input{width:55%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.conversation-list{overflow-x:hidden}.library-item,.conversation-item{min-width:0;max-width:100%}.library-item strong,.conversation-item strong,.conversation-item span{width:100%;max-width:100%;min-width:0}.delete-manual{width:44px;white-space:nowrap}
