:root{--navy:#080c45;--purple:#8850a7;--pale:#f0e9f6;--lavender:#e5daee;--ink:#202243;--muted:#707087;--line:#e4dfeb;--paper:#f8f7fb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 'Microsoft YaHei','PingFang SC',sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button,a,input,textarea,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.path-scroll:focus-visible{outline:3px solid #ab76c7;outline-offset:3px}button{transition:background .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(.97)}[hidden]{display:none!important}header{height:72px;background:#f3f1f9;display:flex;align-items:center;gap:34px;padding:0 4%;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--navy)}.brand strong{font:800 28px 'Segoe UI',sans-serif;letter-spacing:-1px}.brand span{font-size:9px;line-height:1.6;border-left:1px solid #b8b2cd;padding-left:10px}nav{display:flex;gap:25px;align-items:center;flex:1}nav a{color:var(--muted);text-decoration:none;font-size:12px}.nav-current{color:var(--navy);border-bottom:3px solid var(--purple);padding:23px 0 18px;font-size:13px}main{max-width:1600px;padding:28px 4% 18px;margin:auto}.hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:20px}.eyebrow{font-size:10px;letter-spacing:1.3px;color:var(--purple);font-weight:bold;margin-bottom:5px}h1{font:750 36px/1.2 'Segoe UI',sans-serif;letter-spacing:-1.2px;color:var(--navy);margin:5px 0 9px}.hero p{margin:0;color:var(--muted);font-size:13px}.profile{display:flex;gap:28px;padding:16px 22px;background:#eee8f5;border-radius:12px}.profile span{font-size:11px;color:var(--muted)}.profile strong{display:block;font-size:14px;color:var(--navy);margin-top:4px}.panel{background:white;border:1px solid var(--line);border-radius:14px;margin-bottom:18px;overflow:hidden}.section-head{padding:18px 22px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}h2{font-size:17px;margin:0;color:var(--navy)}.actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.pill{font-size:11px;background:var(--pale);color:var(--purple);padding:5px 10px;border-radius:20px;white-space:nowrap}.quiet{border:0;background:transparent;padding:7px 9px;color:var(--muted);border-radius:6px;font-size:12px}.quiet:hover{background:var(--pale)}.outline{border:1px solid #d4c4e0;border-radius:7px;padding:7px 12px;background:white;color:var(--purple);font-size:12px}.primary,.librarian{background:var(--purple);color:white;border:0;padding:11px 18px;border-radius:8px;font-size:13px;font-weight:bold}.path-scroll{overflow:auto;cursor:grab;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:#cbb6dc #f8f6fb}.path-scroll.dragging{cursor:grabbing;user-select:none}.programme-graph{position:relative;min-width:1140px;height:265px;background:linear-gradient(180deg,#f6f1fa,white);}.programme-graph svg,.module-graph svg{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}.graph-year{position:absolute;top:8px;font-size:11px;font-weight:bold;color:var(--muted);border-left:1px solid #d8c9e4;padding-left:12px;height:240px;pointer-events:none}.graph-year b{color:var(--purple);font-size:10px;font-weight:normal;margin-left:10px}.node{position:absolute;width:165px;text-align:left;padding:12px 14px;border:1px solid #dcd3e5;background:#fff;border-radius:11px;box-shadow:0 5px 15px #15103d06;line-height:1.5}.node small{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.node strong{font-size:13px;display:block}.node .node-sub{font-size:10px;display:block;margin-top:5px;color:var(--muted)}.node.selected{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 6px 22px #0b10452a}.node.selected small,.node.selected .node-sub{color:#d8c9e8}.node:hover{box-shadow:0 6px 18px #8850a72a;transform:translateY(-2px)}.node.selected::before{content:'已选课程';position:absolute;top:-23px;left:2px;font-size:10px;color:var(--purple);font-weight:bold}.support-dot,.dot{display:inline-block;width:7px;height:7px;background:var(--purple);border-radius:50%;margin:0 5px}.support-dot{background:#d18f43}.node .support-dot{position:absolute;right:-5px;top:-5px;width:12px;height:12px;border:2px solid white;margin:0}.graph-footer{padding:10px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}.path-insight{padding:10px 22px;background:#f9f6fc;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.path-insight strong{color:var(--purple)}.week-select{display:flex;align-items:center;gap:14px;padding:0 22px 10px;font-size:11px;color:var(--muted)}.week-select input{accent-color:var(--purple);width:190px}.module-graph{position:relative;min-width:1320px;height:155px;background:linear-gradient(180deg,#faf8fc,#fff)}.module-graph .node{width:156px;top:35px;min-height:87px}.module-graph .node.selected::before{content:'正在查看';top:-24px}.module-graph .node.current::after{content:'● 第 3 周';position:absolute;bottom:-24px;left:4px;color:var(--purple);font-size:10px}.workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.workspace.has-history{grid-template-columns:225px minmax(0,1fr)}.workspace.has-book{grid-template-columns:minmax(0,1fr) minmax(340px,.72fr)}.workspace.has-history.has-book{grid-template-columns:210px minmax(350px,1fr) minmax(300px,.75fr)}.advisor{min-width:0}.advisor-head{padding:17px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.advisor-brand{display:flex;gap:12px;align-items:center}.avatar{background:var(--purple);color:white;width:37px;height:37px;display:grid;place-items:center;border-radius:10px;font-size:24px}.advisor-brand p{margin:3px 0 0;font-size:10px;color:var(--muted)}.chat{height:560px;overflow:auto;padding:23px;background:linear-gradient(145deg,#fcfaff,#fff)}.intro{font-size:23px;color:var(--navy);margin:5px 0 10px;letter-spacing:-.5px}.intro-copy{font-size:13px;color:var(--muted);margin:0 0 17px;line-height:1.8}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.resource{background:white;border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column}.resource small{font-size:9px;color:var(--purple)}.resource h3{font-size:15px;line-height:1.5;margin:9px 0 6px}.resource .author{font-size:10px;color:var(--muted)}.resource p{font-size:12px;color:var(--muted);line-height:1.65}.resource button{font-size:11px;color:var(--purple);border:0;background:none;text-align:left;padding:0;margin-top:auto}.question-title{font-size:11px;color:var(--muted);margin:18px 0 8px}.questions{display:flex;flex-wrap:wrap;gap:7px}.question{font-size:12px;background:var(--pale);border:1px solid #ded0e9;border-radius:18px;padding:8px 12px;color:var(--navy);text-align:left}.skills{margin-top:18px;border-top:1px solid var(--line);padding-top:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.skills>span{font-size:10px;color:var(--muted);margin-right:4px}.skills button{background:#fff;border:1px solid var(--line);padding:6px 9px;border-radius:6px;font-size:10px}.skills .suggested{border-color:#b599ca;color:var(--purple)}.message{display:flex;gap:9px;margin:22px 0}.message.user{justify-content:flex-end}.message .bubble{padding:13px 16px;border-radius:11px;border:1px solid var(--line);background:white;max-width:90%;font-size:13px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.message.user .bubble{background:var(--navy);color:white;border:0}.speaker{display:block;font-size:9px;opacity:.6;margin-bottom:4px}.streaming::after{content:'▍';color:var(--purple);animation:blink .8s infinite}.stream-status{min-height:24px;font-size:10px;color:var(--purple);padding:0 22px;background:#fff}form{margin:0 22px;display:flex;align-items:center;gap:8px;border:1px solid #d5c5e0;border-radius:10px;padding:9px 10px 9px 15px}textarea{width:100%;border:0;resize:none;outline:none;max-height:100px;min-height:30px;padding-top:4px;background:white;color:var(--ink);font-size:13px}.send{background:var(--purple);color:white;border:0;border-radius:8px;width:36px;height:36px;font-size:23px;flex-shrink:0}.contact-bar{padding:13px 22px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px}.fine{font-size:10px;color:var(--muted);line-height:1.7}.history-panel{padding-bottom:14px}.history-panel .section-head{padding:17px 14px}.history-panel h2{font-size:14px}.wide{display:block;width:calc(100% - 28px);margin:0 14px 12px}.history-panel .fine{padding:0 14px}.history-item{display:block;text-align:left;border:0;border-left:3px solid transparent;background:white;width:100%;padding:12px 14px}.history-item.active{background:var(--pale);border-left-color:var(--purple)}.history-item strong{font-size:11px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history-item span{font-size:9px;color:var(--muted)}.handbook{position:sticky;top:12px}.handbook .section-head{padding:17px 16px}.handbook h2{font-size:15px}.book-tools{display:flex;justify-content:space-between;align-items:center;padding:0 16px 12px;font-size:11px}.book-tools select{border:1px solid var(--line);border-radius:5px;color:var(--navy);background:white;padding:3px}.book-shortcuts{display:flex;gap:5px;padding:0 16px 12px;flex-wrap:wrap}.book-shortcuts button{font-size:10px;background:var(--pale);border:0;border-radius:5px;padding:5px 8px}.book-view{height:550px;overflow:auto;background:#e9e6ee;padding:12px}.book-view img{display:block;width:100%;height:auto;box-shadow:0 3px 12px #080c4515}.handbook>.fine,.book-link{display:block;margin:12px 16px}.book-link{color:var(--purple);font-size:11px}footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:15px;padding:28px;color:var(--ink);width:570px;max-width:93vw;max-height:85vh;overflow:auto;box-shadow:0 20px 70px #080c4533}dialog::backdrop{background:#080c4555}dialog h2{font-size:24px;margin:12px 0}dialog p{font-size:13px;line-height:1.8}dialog a{color:var(--purple)}.close{float:right;border:0;border-radius:50%;background:var(--pale);width:28px;height:28px;font-size:18px}.source{border-top:1px solid var(--line);padding-top:12px;font-size:11px!important;color:var(--muted)}.options{display:grid;gap:8px}.options button{text-align:left;padding:12px;background:#f6f2fa;border:1px solid var(--line);border-radius:7px;font-size:12px}.options button.chosen{border-color:var(--purple)}.feedback{font-size:13px;background:var(--pale);padding:12px;border-radius:8px;margin-top:12px}.include{font-size:12px}pre{white-space:pre-wrap;font:12px/1.8 'Microsoft YaHei',sans-serif;background:#f4eff8;padding:14px;border-radius:9px;max-height:220px;overflow:auto;overflow-wrap:anywhere}@keyframes blink{50%{opacity:.2}}@media(max-width:1150px){.workspace.has-history.has-book{grid-template-columns:190px minmax(0,1fr)}.workspace.has-history.has-book .handbook{grid-column:2;position:static}.has-book .resource-grid{grid-template-columns:1fr}.has-history .resource-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){header{padding:0 16px;height:62px;gap:15px}.brand strong{font-size:23px}nav{display:none}header>#historyToggle{margin-left:auto}main{padding:22px 14px}.hero{display:block}h1{font-size:30px}.profile{margin-top:18px;justify-content:space-between;gap:10px;padding:13px 16px}.section-head{padding:16px;align-items:flex-start;flex-wrap:wrap}.section-head h2{font-size:15px}.actions{gap:5px}.week-select{padding:0 16px 10px;gap:9px}.week-select input{width:100px}.graph-footer{padding:10px 16px;flex-direction:column;gap:3px}.path-insight{padding:10px 16px}.workspace,.workspace.has-history,.workspace.has-book,.workspace.has-history.has-book{display:flex;flex-direction:column;gap:0}.workspace>.panel{width:100%}.history-panel{max-height:300px;overflow:auto}.handbook{position:static;order:0}.advisor{order:1}.history-panel{order:-1}.resource-grid,.has-book .resource-grid,.has-history .resource-grid{grid-template-columns:1fr}.chat{height:540px;padding:18px}.advisor-head{padding:16px}.advisor-head h2{font-size:15px}.intro{font-size:20px}form{margin:0 16px}.contact-bar{padding:12px 16px}.librarian{font-size:11px;padding:10px 12px}.book-view{height:450px}footer{align-items:flex-start;gap:10px}.module-graph{height:155px}.message .bubble{max-width:95%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.language{display:flex;gap:2px;padding:3px;background:#e9e0f0;border-radius:8px}.language button{border:0;background:transparent;border-radius:5px;padding:4px 8px;font-size:11px;color:var(--muted)}.language button[aria-pressed=true]{background:white;color:var(--navy);box-shadow:0 1px 5px #080c4510}.hero{margin-bottom:22px}.resource-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.reading-focus{margin:12px 0 0;padding:10px;border-left:3px solid var(--purple);background:#f4eef8;font-size:11px;line-height:1.65}.reading-focus strong,.reading-focus span{display:block}.reading-focus span{font-size:10px;color:var(--muted)}.resource-link{display:block;font-size:11px;color:var(--purple);margin-top:10px;text-decoration:none}.resource-link:hover{text-decoration:underline}.contact-bar{justify-content:flex-end}.resource button{margin-top:auto}.node strong{font-size:12px}.node.selected:before{content:"Selected"}html[data-lang=zh] .node.selected:before{content:"已选课程"}.module-graph .node.selected:before{content:"Selected"}html[data-lang=zh] .module-graph .node.selected:before{content:"正在查看"}.module-graph .node.current:after{content:"● Week 3"}html[data-lang=zh] .module-graph .node.current:after{content:"● 第 3 周"}.has-book .resource-grid,.has-history .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.has-history.has-book .resource-grid{grid-template-columns:1fr}@media(max-width:1000px){.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){header{gap:7px}.language{margin-left:auto}header>#historyToggle{margin-left:0;font-size:10px}.brand span{display:none}.resource-grid,.has-book .resource-grid,.has-history .resource-grid{grid-template-columns:1fr}.profile strong{font-size:12px}.actions{flex-wrap:wrap}.week-select{flex-wrap:wrap}.graph-year b{margin-left:4px}}


.programme-graph{height:285px}.graph-year{height:260px}

.path-collapse{border:0;background:transparent;padding:0;color:var(--purple);font-size:11px;font-weight:700;letter-spacing:.6px;text-align:left}.plan-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.plan-header h3{font-size:20px;margin:0;color:var(--navy)}.plan-tasks{list-style:none;padding:0;margin:0}.plan-tasks li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.95}.task-number{color:#b5a2c4;font-size:20px;min-width:28px}.plan-tasks a,.embedded-book{color:var(--purple);text-decoration:underline;text-underline-offset:3px}.embedded-book{border:0;padding:0;background:transparent;font:inherit;text-align:left}.preview-reading{padding:0 20px 20px;font-size:13px;line-height:1.8}.chapter-highlight{padding:14px;background:#faf6e8;border-left:3px solid #ddba48}.chapter-highlight p{margin:4px 0 0;font-size:11px}.preview-reading mark{background:#fff0a6;color:#33314a}.preview-reading blockquote{margin:15px 0;padding:12px;border-left:3px solid #ddba48}.excerpt-frame{width:100%;height:510px;border:1px solid var(--line);margin-top:14px}.workspace.has-history.has-book{grid-template-columns:190px minmax(340px,1fr) minmax(330px,.85fr)}.workspace.has-book{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr)}.handbook{grid-column:auto!important;position:sticky;top:12px}.handbook .section-head h2{overflow-wrap:anywhere}@media(max-width:1150px){.workspace.has-history.has-book{grid-template-columns:minmax(340px,1fr) minmax(330px,.85fr)}.workspace.has-history.has-book .history-panel{grid-column:1/-1;max-height:230px;overflow:auto}.workspace.has-history.has-book .handbook{grid-column:2!important;position:sticky}}@media(max-width:760px){.workspace.has-book,.workspace.has-history.has-book{display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,.9fr);overflow-x:auto;align-items:start;max-width:100%}.workspace.has-book .advisor{grid-column:1;grid-row:auto;order:0}.workspace.has-book .handbook{grid-column:2!important;grid-row:auto;order:0;position:static}.workspace.has-history.has-book .history-panel{grid-column:1/-1}.plan-header{align-items:flex-start}.plan-header h3{font-size:18px}.plan-tasks li{font-size:13px}}


.handbook{min-width:0;width:100%}.preview-reading{overflow-wrap:anywhere}.excerpt-frame{max-width:100%}.workspace{min-width:0}.programme-graph svg{max-width:850px}

.resource-reason{color:var(--muted);font-size:12px;margin-top:5px;line-height:1.8}.placeholder-label{font-size:9px;letter-spacing:.3px;color:#917137;background:#faf3de;border-radius:4px;padding:3px 6px}.holding-placeholder{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:10px;background:#fcfaf5}.holding-placeholder h3{font-size:17px}.holding-placeholder dt{font-size:10px;color:var(--muted);margin-top:13px}.holding-placeholder dd{margin:3px 0;font-size:13px}.holding-status{color:#2f7a4a}.holding-status.loan{color:#9a5b12}.holding-unconfirmed{color:#756c80}.opac-status{font-size:12px;font-weight:700;letter-spacing:.4px;color:var(--purple)}.opac-status.checking::after{content:'▍';animation:blink .8s infinite}.opac-stream{margin:14px 0 0;white-space:pre-wrap;font:13px/1.85 inherit;color:var(--ink);min-height:1.6em}.opac-links{margin-top:12px}


#handoffSummary{display:block;width:100%;min-height:170px;max-height:350px;resize:vertical;border:1px solid var(--line);border-radius:9px;background:#f8f5fb;padding:14px;margin:8px 0 20px;font:13px/1.9 "Microsoft YaHei",sans-serif}#handoffLabel{font-size:12px;color:var(--muted)}

.reading-resource{display:flex;gap:18px;align-items:flex-start}.cover-button{padding:0;border:0;background:none;cursor:pointer;flex:0 0 66px}.cover-button img{display:block;width:66px;height:91px;object-fit:contain;object-position:top;filter:drop-shadow(1px 3px 3px #0002)}.book-author{font-size:12px;color:#756c80;margin-top:4px}.preview-book-meta{display:flex;align-items:center;gap:20px;margin-bottom:18px}.preview-book-meta img{width:85px;max-height:120px;object-fit:contain}.excerpt-frame{width:100%;height:660px;border:1px solid #e6dfec}.reading-resource .resource-reason{margin-top:5px}

.chat.idle{background:#fbfafd}.idle-note{padding:28px 24px}.node.placeholder-week{border-style:dashed}.module-graph .node.placeholder-week{min-height:96px}

.provider-badge{display:flex;align-items:center;gap:6px;width:fit-content;margin:0 0 7px;font-size:10px;font-weight:650;line-height:1.4;color:#56316e}.provider-badge>span{display:inline-grid;place-items:center;min-width:29px;height:24px;padding:0 4px;border-radius:6px;background:#673a86;color:white;font-size:10px}.provider-lm{color:#176e79}.provider-lm>span{background:#176e79}.vsi-cover{width:76px;min-height:108px;padding:9px 7px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;text-align:left;background:#f5f0e5;border-left:5px solid #314f72;color:#243f62;box-shadow:0 2px 5px #0002}.vsi-cover small{font-size:10px;letter-spacing:2px}.vsi-cover strong{font-size:11px;line-height:1.15;overflow-wrap:anywhere}.vsi-cover span{font-size:6px;letter-spacing:1px}.vsi-cover em{font-size:7px;font-style:normal;color:#666;margin-top:auto}.preview-book-meta .vsi-cover{flex-shrink:0;width:100px;min-height:142px}.preview-book-meta .vsi-cover strong{font-size:14px}

