.library-workspace{background:#fdfcf8;padding:34px 42px 70px}.dossier-header{padding:0 0 10px;border-bottom:0}.dossier-header h2{font-size:2.3rem;letter-spacing:-.04em}.dossier-header .student-subtitle{font-size:.92rem}.student-workboard{margin-top:0}.workboard-tags{display:grid;gap:7px;padding:10px 0 8px}.tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-height:31px}.tag-label,.profile-chip{height:31px;display:inline-flex;align-items:center;border-radius:17px;padding:0 11px;font-size:.82rem;line-height:1;white-space:nowrap}.tag-label{border:1px solid #ebc2c8;background:#fff0f1;color:#8b4a55;font-weight:700}.tag-label.tag-升学意向{border-color:#bcd8ee;background:#eef7ff;color:#3d6481}.tag-label.tag-课程习惯{border-color:#c8ddbd;background:#eff8eb;color:#55714c}.tag-label.tag-选科{border-color:#dfd0ad;background:#fff8e9;color:#806a39}.profile-chip{border:1px solid #e7d8c3;background:#fffdfa;color:#5f5143}.profile-chip:hover{background:#fff3e1}.tag-add-form{display:grid;grid-template-columns:130px minmax(230px,455px) 88px;gap:9px;padding:8px 0 18px;border-bottom:1px solid #e8e4da}.tag-add-form select,.tag-add-form input{height:38px;border:1px solid #cfdce3;border-radius:7px;padding:0 11px;background:#fff;color:#203950;font-size:.83rem}.soft-button{height:38px;min-height:38px;border:1px solid #e4c998;border-radius:8px;padding:0 13px;background:#fff4e5;color:#765633;font-size:.82rem;font-weight:700}.workboard-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:16px;margin-top:22px}.workboard-grid .dossier-section,.workboard-grid .material-compare{margin:0;padding:18px 20px;border:1px solid #cfdfeb;border-radius:16px;background:#fff;box-shadow:none}.workboard-grid .dossier-section:first-child{border-color:#c9dceb}.workboard-grid .material-compare{border-color:#cde1d3}.section-heading{margin-bottom:11px}.section-heading h3{font-size:1.16rem;letter-spacing:-.02em}.section-heading p{font-size:.78rem}.workboard-grid .todo-editor{grid-template-columns:minmax(0,1fr) 120px 62px;gap:8px;margin:0}.workboard-grid .todo-editor input{height:38px;min-height:38px;border:1px solid #cfdce3;border-radius:7px;padding:0 10px;font-size:.82rem}.workboard-grid .todo-list{margin-top:12px}.workboard-grid .todo-row{grid-template-columns:22px minmax(0,1fr) auto;padding:10px 0}.compact-todos .todo-title{font-size:.84rem}.material-compare-heading strong{font-size:1.16rem}.material-compare-heading span{font-size:.76rem}.material-toggle-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:13px}.material-toggle{height:34px;min-height:34px;border-radius:17px;padding:0 9px;font-size:.74rem}.material-toggle small{display:none}.material-toggle.is-collected{background:#eff8f1}.material-toggle.is-collected::before{font-size:.72rem}.material-toggle.is-collected::after{font-size:.68rem}.material-toggle:not(.is-collected)::after{font-size:.68rem}.workboard-grid .dossier-section:last-child{grid-column:1/-1;padding-bottom:16px}.follow-editor{display:grid;grid-template-columns:135px minmax(0,1fr) 88px;gap:8px;align-items:start}.follow-editor label{padding-top:10px;font-size:.82rem;color:#58708a}.follow-editor textarea{min-height:38px;border:1px solid #cfdce3;border-radius:7px;padding:9px 10px;font-size:.82rem}.follow-editor textarea:nth-of-type(2){min-height:38px}.follow-editor .soft-button{grid-column:3;grid-row:1 / span 2;margin-top:0}@media(max-width:900px){.library-workspace{padding:28px 20px}.workboard-grid{grid-template-columns:1fr}.workboard-grid .dossier-section:last-child{grid-column:auto}.follow-editor{grid-template-columns:1fr}.follow-editor label{padding-top:0}.follow-editor .soft-button{grid-column:auto;grid-row:auto}.tag-add-form{grid-template-columns:120px 1fr 88px}}@media(max-width:600px){.tag-add-form{grid-template-columns:1fr}.workboard-grid .todo-editor{grid-template-columns:1fr}.material-toggle-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Student workboard: todo, booking and material comparison share one row. */
.workboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.workboard-grid .dossier-section,.workboard-grid .material-compare{padding:18px;border-radius:18px}
.workboard-grid .quick-booking-panel{border-color:#efd5bd;background:#fffdfa}
.workboard-grid .todo-editor{grid-template-columns:1fr}.workboard-grid .todo-editor .soft-button{width:100%}
.quick-booking-panel .section-heading{display:block}.quick-booking-panel .section-heading p{margin:4px 0 0;line-height:1.45}
.quick-booking-list{display:grid;gap:6px;min-height:46px;margin:11px 0}
.quick-booking-row{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;width:100%;border:0;border-radius:13px;padding:9px 10px;background:#f7fafb;color:#29495c;text-align:left}
.quick-booking-row:hover{background:#eef7fb}.quick-booking-row:focus-visible{outline:3px solid rgba(0,48,87,.2);outline-offset:2px}
.quick-booking-row>span{grid-row:1 / span 2;color:#003057;font-size:.78rem;font-weight:800}.quick-booking-row strong{font-size:.8rem}.quick-booking-row small{color:#72838f;font-size:.68rem}
.quick-booking-form{display:grid;gap:9px;padding-top:10px;border-top:1px solid #ece6df}.booking-fields{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:6px}.booking-fields label{display:grid;gap:4px;min-width:0}.booking-fields label>span{color:#697d89;font-size:.67rem;font-weight:750}.booking-fields input,.booking-fields select{width:100%;min-width:0;height:36px;border:1px solid #d5dfe3;border-radius:11px;padding:0 8px;background:#fff;color:#203950;font-size:.76rem}
.booking-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.booking-actions .soft-button{flex:1;border-radius:999px}.booking-reset{border:0;border-radius:999px;padding:8px 11px;background:#eef4f6;color:#456373;font-size:.74rem;font-weight:750}.booking-save-status{width:100%;color:#71818c;font-size:.68rem}
.workboard-grid .dossier-section:last-child{grid-column:1/-1}
@media(max-width:1180px){.workboard-grid{grid-template-columns:1fr}.workboard-grid .dossier-section:last-child{grid-column:auto}}
@media(max-width:600px){.booking-fields{grid-template-columns:1fr 1fr}.booking-fields label:first-child{grid-column:1/-1}}
