:root{color-scheme:light;--purple:#792b7c;--purple-dark:#652268;--ink:#233c50;--muted:#788397;--line:#e7e8ef;--lavender:#f2ecf8;--serif:"Songti SC","STSong","Noto Serif CJK SC","SimSun",serif;--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;font:16px/1.6 var(--sans);color:var(--ink);background:#fff}button,textarea,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button{transition:background .15s,color .15s,box-shadow .15s}button:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #cba4d1;outline-offset:3px}button svg{width:20px;height:20px;display:block;flex:none}button span[data-icon]{display:inline-flex}button{border:none}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 30px 0 21px;gap:20px;background:linear-gradient(120deg,#fff,#fefcfe);position:relative;z-index:20}.brand-group,.top-actions{display:flex;align-items:center;gap:15px}.university-brand{width:183px;height:59px;background:url('/assets/reference.png') -30px -49px/1672px 941px no-repeat;flex-shrink:0}.brand-divider{height:29px;width:1px;background:#c8ccda;margin:0 5px 0 12px}.department{font:18px var(--serif);white-space:nowrap;color:#415475}.top-actions{gap:14px}.primary-button{background:linear-gradient(120deg,#842e85,#6c256e);color:white;border:1px solid transparent;border-radius:9px;font-family:var(--serif);letter-spacing:.06em}.primary-button:hover{background:var(--purple-dark);box-shadow:0 3px 10px #792b7c20}.outline-button{border:1px solid #d6b5de;background:white;color:var(--purple);border-radius:9px;padding:8px 29px;font:16px/1.5 var(--serif)}.outline-button:hover{background:#f9f3fb}.admin-button{padding:8px 24px;font-size:16px}.icon-button{display:inline-flex;justify-content:center;align-items:center;width:35px;height:35px;border-radius:7px;color:#66768d;background:transparent;padding:7px}.icon-button:hover{color:var(--purple);background:var(--lavender)}.menu-toggle{width:28px;padding:4px;color:#7d6384}.workspace{display:flex;height:calc(100dvh - 94px);min-height:420px;overflow:hidden}.sidebar{flex:0 0 255px;width:255px;background:linear-gradient(180deg,#fcfafd,#faf8fc 60%,#f7f3f9);border-right:1px solid var(--line);position:relative;overflow:hidden;transition:width .22s,flex-basis .22s}.sidebar-content{position:relative;z-index:2;padding:25px 21px 20px;max-height:calc(100% - 248px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:transparent transparent;min-width:254px}.new-chat{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;height:47px;font-size:18px;letter-spacing:.09em;border-radius:11px;background:#632268;border:1px solid #4f1a54;color:#fff;box-shadow:0 1px 2px #35113a1a,0 6px 18px #63226824,inset 0 1px 0 #ffffff1a}.new-chat:hover{background:#56205b;border-color:#45164a;box-shadow:0 1px 2px #35113a22,0 8px 22px #6322682e,inset 0 1px 0 #ffffff26}.new-chat:active{background:#4b1c50;box-shadow:0 1px 2px #35113a26,inset 0 1px 2px #00000026}nav{margin-top:22px;display:flex;flex-direction:column;gap:8px}.nav-item{display:flex;align-items:center;gap:15px;background:transparent;color:#40516d;border-radius:9px;width:100%;padding:10px 15px;text-align:left;font:18px/1.4 var(--serif)}.nav-item:hover,.nav-item.active{background:#eee7f6;color:#65216f}.nav-item svg{width:21px;height:21px}.history-count{font:12px var(--sans);margin-left:auto;color:#877894;background:#ece7f0;border-radius:5px;padding:3px 6px}.recent-heading{margin:26px 13px 10px;font-size:12px;letter-spacing:.08em;color:#8c8393;display:flex;align-items:center;justify-content:space-between;gap:8px}.history-count[hidden]{display:none}.recent-list{display:flex;flex-direction:column;gap:5px}.recent-item{width:100%;display:flex;align-items:center;border-radius:7px;color:#746680;font-size:14px;position:relative}.recent-item:hover,.recent-item.selected{background:#eee8f3;color:#71377a}.recent-open{flex:1;min-width:0;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;color:inherit;padding:10px 13px;font-size:14px;border-radius:7px}.recent-open span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-open svg{width:15px;height:15px;flex:none}.recent-actions{display:flex;gap:2px;padding-right:6px;opacity:0;transition:opacity .15s}.recent-item:hover .recent-actions,.recent-actions:focus-within{opacity:1}.recent-actions .icon-button{width:26px;height:26px;padding:5px;color:#8c7c95}.recent-actions .icon-button svg{width:15px;height:15px}.recent-actions .icon-button:hover{background:#e3d6ea;color:#652268}.recent-empty{margin:4px 13px;font-size:13px;color:#a79bad}.campus-art{position:absolute;bottom:0;left:0;width:255px;height:220px;background:url('/assets/reference.png') 0 -686px/1562px 879px no-repeat;opacity:.7;pointer-events:none;mask-image:linear-gradient(transparent,#000 15%)}.sidebar-footer{position:absolute;bottom:14px;left:0;width:255px;display:flex;flex-direction:column;align-items:center;gap:9px;background:#faf7facf;padding:10px 6px 6px}.sidebar-footer>span{font:13px var(--serif);letter-spacing:.22em;color:#857491}.sidebar-backdrop{display:none}.main{flex:1;min-width:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 80% 2%,#f9f6fb80,transparent 50%),#fff}.intro{text-align:center;padding:24px 32px 18px;flex-shrink:0}.title-row{display:flex;justify-content:center;align-items:center;gap:15px}h1{margin:0;font:700 clamp(23px,2.4vw,37px)/1.45 var(--serif);color:#183f48;letter-spacing:.015em}.intro p{margin:9px auto 0;font:16px/1.85 var(--serif);color:#53647d;max-width:1130px}.conversation{flex:1;min-height:0;overflow-y:auto;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#ded5e2 transparent}.conversation-inner{max-width:1250px;padding:9px 38px 24px;margin:auto}.example-label{font-size:12px;color:#9a8c9f;text-align:center;margin:0 0 18px;letter-spacing:.1em}.message{display:flex;gap:17px;margin:0 0 23px;align-items:flex-start}.message.user{justify-content:flex-end;margin-top:4px}.avatar{width:44px;height:44px;flex:0 0 44px;border-radius:50%;margin-top:2px}.assistant-avatar{background:url('/assets/reference.png') -300px -297px/1415px 796px no-repeat}.user-avatar{display:flex;align-items:center;justify-content:center;color:var(--purple);background:#f0e4f5}.user-avatar svg{width:25px;height:25px;fill:var(--purple);stroke-width:1}.message-content{min-width:0;max-width:calc(100% - 62px)}.user .message-content{max-width:85%}.user-bubble{background:linear-gradient(110deg,#f1edfc,#eee2fa);border-radius:13px 13px 3px 13px;padding:13px 18px;font:17px/1.75 var(--serif);white-space:pre-wrap;overflow-wrap:anywhere}.timestamp{text-align:right;font-size:12px;color:#919caf;margin:5px 2px 0}.assistant-bubble{background:#fff;border:1px solid #e5e5ef;border-radius:13px;padding:19px 22px 8px;font:17px/1.85 var(--serif);box-shadow:0 1px 2px #4a355908,0 6px 20px #4a35590d;overflow-wrap:anywhere}.assistant-text>p{margin:0 0 13px}.answer-section{display:flex;align-items:flex-start;gap:13px;margin:13px 0}.number{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f1e8fa,#eae0f5);color:#413353;border-radius:9px;width:29px;height:29px;flex:0 0 29px;font-size:19px;line-height:1;margin-top:3px}.answer-section h3{font-size:18px;line-height:1.75;margin:0 0 1px;font-weight:700;color:#223952}.answer-section p{margin:0;color:#56657c;line-height:1.8}.answer-actions{display:flex;align-items:center;gap:6px;padding-top:0;margin-top:6px;color:#909aae}.answer-actions .icon-button{width:30px;height:30px;padding:6px}.answer-actions .icon-button svg{width:17px;height:17px}.answer-actions .selected{color:var(--purple);background:var(--lavender)}.answer-actions time{margin-left:auto;font:12px var(--sans);color:#98a0b0}.demo-caption{font:12px var(--sans);color:#918798;margin-bottom:9px}.composer-section{flex-shrink:0;padding:2px 34px 9px;background:linear-gradient(0deg,#fff 85%,#ffffff00)}.composer-wrap{max-width:1310px;margin:auto}.composer{display:flex;align-items:flex-end;gap:12px;border:1px solid #e2e4ed;border-radius:12px;background:#fff;padding:8px 8px 8px 13px;box-shadow:0 1px 2px #39445608,0 6px 22px #3944560d}.composer:focus-within{border-color:#cba7d3;box-shadow:0 0 0 3px #f6f0f8}.composer textarea{flex:1;resize:none;border:none;outline:none!important;box-shadow:none;background:none;min-height:43px;max-height:160px;padding:8px 0;font:17px/1.6 var(--serif);color:#2c4055}.composer textarea::placeholder{color:#929caf}.attach-button{height:42px;flex:0 0 32px}.send-button{height:44px;min-width:114px;padding:0 22px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:17px}.send-button svg{width:20px;height:20px}.composer-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#8b8296;margin:5px 9px 0}.keyboard-hint{color:#7e8ba1}.sidebar-collapsed .sidebar{width:0;flex-basis:0;border:0}.empty-state{padding:clamp(15px,5vh,65px) 0 40px;max-width:850px;margin:auto;text-align:center}.empty-mark{margin:0 auto 22px;width:44px;height:1px;background:linear-gradient(90deg,transparent,#d9c4de,transparent)}.empty-state h2{font:600 27px var(--serif);color:#3a3150;margin:0 0 10px}.empty-state>p{font:16px var(--serif);color:#8a7d94;margin:0 0 33px}.suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.suggestion{background:#fff;border:1px solid #e5dce9;border-radius:13px;text-align:left;padding:19px 20px;color:#4d3a5b;box-shadow:0 2px 4px #6c47740a,0 8px 24px #6c477410;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}.suggestion{transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.suggestion:hover{background:#fdfbfe;border-color:#c9a4d2;transform:translateY(-2px);box-shadow:0 6px 20px #6c477414}.suggestion-heading{display:flex;gap:10px;align-items:center;font:600 17px var(--serif);margin-bottom:12px;color:var(--purple)}.suggestion p{font:15px/1.9 var(--serif);margin:0;color:#7b7287}.empty-note{font-size:12px!important;margin-top:24px!important;color:#a19aa7!important}dialog{border:1px solid #e8dfed;border-radius:17px;padding:24px;width:min(510px,calc(100% - 32px));color:#39475a;box-shadow:0 20px 70px #30213820}dialog::backdrop{background:#21122740;backdrop-filter:blur(3px)}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.modal-top h2{font:600 23px var(--serif);margin:0;color:#55285e}#modal-body p{font-size:15px;line-height:1.9;color:#74647e}#modal-body label{display:block;font-size:14px;margin:15px 0 8px}#modal-body input{width:100%;padding:10px 12px;border:1px solid #d8cedf;border-radius:8px;color:#413c50}.modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.modal-buttons button{padding:8px 18px}.backend-modules{display:flex;gap:8px;margin:23px 0}.backend-modules span{font-size:14px;padding:8px 11px;background:var(--lavender);border-radius:7px;color:#785280}.history-entry{border-bottom:1px solid var(--line);display:flex;align-items:center;padding:12px 0;gap:4px}.history-entry>button:first-child{flex:1;min-width:0;background:none;text-align:left;color:#4e405b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{position:fixed;bottom:103px;left:50%;transform:translate(-50%,8px);z-index:100;background:#38273deb;color:white;font-size:14px;padding:10px 20px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.generating:after{content:'▋';color:var(--purple);animation:blink 1s infinite}.stopped{font:13px var(--sans);color:#a096a6;padding:7px 0}.history-empty{padding:25px 0;text-align:center}.mobile-close{display:none}@keyframes blink{50%{opacity:0}}@media(min-width:1600px){.sidebar{width:273px;flex-basis:273px}.sidebar-content{padding:25px}.conversation-inner{max-width:1300px}.intro{padding-top:24px;padding-bottom:24px}.assistant-bubble{font-size:18px}.answer-section h3{font-size:19px}.user-bubble{font-size:18px}.campus-art{width:273px;height:235px;background-position:0 -706px;background-size:1672px 941px}.sidebar-footer{width:273px}}
@media(max-width:1100px){.sidebar{width:226px;flex-basis:226px}.sidebar-content{min-width:225px;padding:22px 14px}.sidebar-footer{width:225px}.conversation-inner{padding:9px 24px 24px}.intro{padding:20px 24px 17px}.intro p{font-size:15px}.title-row{gap:9px}.department{font-size:16px}.assistant-bubble{padding:16px 18px 8px}.composer-section{padding-left:22px;padding-right:22px}.suggestions{gap:10px}.suggestion{padding:15px}.brand-divider{margin-left:2px}.topbar{padding-right:23px}.message{gap:13px}}
@media(max-width:760px){.topbar{height:76px;padding:0 13px;gap:8px}.brand-group{gap:9px}.university-brand{width:165px;height:53px;background-size:1505px 847px;background-position:-27px -44px}.department,.brand-divider{display:none}.top-actions{gap:8px}.outline-button{font-size:14px;padding:6px 13px}.admin-button{font-size:14px;padding:6px 11px}.workspace{height:calc(100dvh - 76px);min-height:340px}.sidebar{position:fixed;z-index:30;left:0;top:76px;bottom:0;width:255px;transform:translateX(-100%);transition:transform .2s;box-shadow:10px 0 35px #26132e1a}.sidebar-content{min-width:254px;padding:24px 20px}.sidebar-collapsed .sidebar{width:255px;transform:translateX(-100%)}.sidebar-open .sidebar{width:255px;transform:translateX(0)}.sidebar-open .sidebar-backdrop{display:block;position:fixed;z-index:25;inset:76px 0 0;background:#281b3340}.intro{padding:19px 20px 15px}.title-row{flex-wrap:wrap;gap:6px 9px}h1{font-size:24px;line-height:1.5;text-align:left}.intro p{font-size:13px;line-height:1.9;text-align:left;margin-top:10px}.conversation-inner{padding:7px 15px 18px}.avatar{width:32px;height:32px;flex-basis:32px}.assistant-avatar{background-size:1037px 584px;background-position:-220px -217px}.user-avatar svg{width:21px;height:21px}.message{gap:9px;margin-bottom:21px}.message-content{max-width:calc(100% - 41px)}.user .message-content{max-width:85%}.user-bubble{font-size:16px;padding:11px 14px}.assistant-bubble{font-size:16px;padding:15px 14px 7px}.answer-section{gap:9px}.number{width:24px;height:25px;flex-basis:24px;font-size:16px}.answer-section h3{font-size:17px}.answer-actions time{font-size:12px}.composer-section{padding:0 12px 8px}.composer{gap:7px;padding:7px}.composer textarea{font-size:16px;min-height:40px;padding:8px 0}.attach-button{display:none}.send-button{min-width:46px;width:46px;height:41px;padding:10px}.send-button #send-label{display:none}.composer-meta{font-size:12px;justify-content:center;margin-top:7px}.keyboard-hint{display:none}.empty-state{padding-top:20px}.empty-state h2{font-size:25px}.empty-state>p{font-size:14px;margin-bottom:24px}.suggestions{grid-template-columns:1fr;gap:10px}.suggestion{padding:14px 18px}.suggestion-heading{margin-bottom:4px;font-size:16px}.suggestion p{font-size:14px}.empty-mark{margin-bottom:16px;width:36px}.example-label{margin-bottom:14px}.toast{width:max-content;max-width:90%;text-align:center;bottom:105px}.backend-modules{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.api-apply-link{display:flex;align-items:center;justify-content:center;width:100%;height:47px;margin-top:10px;color:#7b5b87;font:18px var(--serif);letter-spacing:.09em;text-decoration:none;border-radius:11px;border:1px solid #e0d2e7;background:#fffffff2;transition:.15s}.api-apply-link:hover{color:#602465;border-color:#d3bcdd;background:#faf4fc}


/* ── 克制精修（不改版式与配色）────────────────── */

/* 侧栏内容通常只有几项，常驻滚动条是视觉噪音；悬停时才显形 */
.sidebar-content::-webkit-scrollbar{width:6px}
.sidebar-content::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}
.sidebar-content:hover{scrollbar-color:#ded5e2 transparent}
.sidebar-content:hover::-webkit-scrollbar-thumb{background:#ded5e2}

/* 中英文数字混排：界面元素统一用等宽数字，避免跳动与基线不齐 */
.history-count,.timestamp,.answer-actions time,.composer-meta{font-variant-numeric:tabular-nums}

/* 等待首字期间的呼吸提示。带检索的问答首字要数秒，
   全空白会让人以为卡死。 */
.assistant-text.generating:empty:after{content:'正在思考…';color:#a396a8;font-size:15px;animation:breathe 1.6s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.45}50%{opacity:1}}

/* 头像菜单：常用的「管理后台」留在顶栏，低频的改密与退出收进来 */
.account-menu{position:relative}
.account-trigger{display:flex;align-items:center;gap:9px;padding:6px 12px 6px 8px;border-radius:9px;
background:transparent;color:#4c4056;font:15px var(--serif);transition:background .15s}
.account-trigger:hover{background:var(--lavender)}
.account-avatar{display:flex;width:28px;height:28px;border-radius:50%;background:#f0e4f5;color:var(--purple);
align-items:center;justify-content:center;flex:none}
.account-avatar svg{width:17px;height:17px}
.account-name{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:150px;padding:6px;
background:#fff;border:1px solid #ece2ef;border-radius:11px;
box-shadow:0 2px 6px #30213810,0 14px 40px #30213818;display:flex;flex-direction:column;gap:2px}
.account-panel[hidden]{display:none}
.account-panel button{text-align:left;padding:9px 12px;border-radius:7px;background:transparent;
color:#4c4056;font:15px var(--serif);width:100%}
.account-panel button:hover{background:var(--lavender);color:var(--purple)}
@media(max-width:760px){.account-name{display:none}.account-trigger{padding:6px}}
