:root{--paper:#f6f7f1;--surface:#fffefa;--surface-2:#edf3ec;--ink:#14221e;--muted:#60716b;--line:#d7dfd4;--teal:#0f766e;--teal-deep:#0a5f58;--blue:#2e5fa7;--amber:#b86b00;--red:#b42318;--shadow:0 18px 44px rgba(20,34,30,0.08)}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{margin:0;color:var(--ink);background:linear-gradient(90deg,rgba(215,223,212,.5) 1px,transparent 1px) 0 0 /32px 32px,linear-gradient(180deg,rgba(215,223,212,.38) 1px,transparent 1px) 0 0 /32px 32px,var(--paper);font-family:Inter,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}[role=button]:focus-visible,[role=textbox]:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(46,95,167,.42);outline-offset:2px}h1,h2,p{margin:0}h1{font-size:32px;font-weight:780;line-height:1.08}.app-shell{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:28px 0 36px}.topbar{justify-content:space-between;gap:18px;min-height:72px}.brand-block,.course-line,.message-actions,.meta-line,.panel-heading,.topbar,.topbar-summary{display:flex;align-items:center}.brand-block{gap:14px;min-width:0}.brand-mark{display:grid;place-items:center;width:44px;height:44px;color:#fff;background:var(--teal);border-radius:8px;box-shadow:0 10px 22px rgba(15,118,110,.24);flex:0 0 auto}.board-head p,.brand-block p{margin-top:6px;color:var(--muted);font-size:14px}.topbar-summary{gap:10px;flex-wrap:wrap;justify-content:flex-end}.topbar-summary span{display:inline-flex;align-items:baseline;gap:6px;min-height:38px;padding:0 12px;color:var(--muted);border:1px solid var(--line);border-radius:8px;background:rgba(255,254,250,.9)}.topbar-summary strong{color:var(--ink);font-size:22px;line-height:1}.app-workbench{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr) minmax(320px,380px);grid-gap:16px;gap:16px;align-items:start;margin-top:18px}.sidebar-panel{display:grid;grid-gap:14px;gap:14px}.action-panel,.board-panel,.panel-section{border:1px solid var(--line);border-radius:8px;background:rgba(255,254,250,.94);box-shadow:var(--shadow)}.panel-section{padding:16px}.panel-heading{gap:9px;align-items:flex-start;margin-bottom:14px}.panel-heading svg{flex:0 0 auto;margin-top:1px;color:var(--teal)}.board-head h2,.panel-heading h2{font-size:17px;line-height:1.15}.panel-heading p{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}.icon-button,.panel-tab,.primary-button,.script-tab,.secondary-button{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;transition:transform .14s ease,border-color .14s ease,background .14s ease}.primary-button,.secondary-button{gap:8px;min-height:40px;padding:0 13px;border:1px solid transparent;font-weight:680;white-space:nowrap}.primary-button{color:#fff;background:var(--teal)}.primary-button:hover:not(:disabled){background:var(--teal-deep)}.secondary-button{color:var(--ink);border-color:var(--line);background:var(--surface)}.icon-button:hover:not(:disabled),.panel-tab:hover,.script-tab:hover,.secondary-button:hover:not(:disabled),.teacher-filter:hover{border-color:#aab8b2;background:#f4f7f2}.icon-button:active:not(:disabled),.panel-tab:active,.primary-button:active:not(:disabled),.script-tab:active,.secondary-button:active:not(:disabled),.teacher-filter:active{transform:translateY(1px)}.icon-button{width:40px;height:40px;color:var(--ink)}.date-picker,.icon-button{border:1px solid var(--line);background:var(--surface)}.date-picker{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 10px;color:var(--muted);border-radius:8px}.date-picker.wide{width:100%}.date-picker select{width:100%;min-width:0;border:0;color:var(--ink);background:transparent;outline:0}.data-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;grid-gap:8px;gap:8px;margin-top:10px}.data-actions.public-view{grid-template-columns:minmax(0,1fr) 40px}.field-stack{margin-top:14px}.field-stack label{display:grid;grid-gap:7px;gap:7px}.field-stack span{color:var(--muted);font-size:13px}.field-stack input{width:100%;min-height:42px;padding:0 11px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface)}.teacher-section{padding-bottom:12px}.teacher-filter-list{display:grid;grid-gap:8px;gap:8px}.teacher-filter{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px 10px;gap:8px 10px;width:100%;min-height:62px;padding:11px 12px;text-align:left;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface)}.teacher-filter.active{border-color:rgba(15,118,110,.42);background:#eef8f4;box-shadow:inset 4px 0 0 var(--teal)}.teacher-name{min-width:0;overflow:hidden;font-weight:720;text-overflow:ellipsis;white-space:nowrap}.teacher-filter strong{color:var(--teal);font-size:18px;line-height:1}.teacher-times{display:flex;grid-column:1/-1;gap:6px;flex-wrap:wrap}.teacher-times em{min-height:24px;padding:3px 8px;color:var(--muted);border:1px solid var(--line);border-radius:8px;background:#fbfcf7;font-size:12px;font-style:normal}.board-panel{min-width:0;overflow:hidden}.board-head{justify-content:space-between;gap:16px;padding:18px 18px 15px;border-bottom:1px solid var(--line)}.board-head,.signal-strip{display:flex;align-items:center}.signal-strip{gap:8px;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcf7}.signal-dot{width:8px;height:18px;border-radius:8px;background:var(--blue)}.signal-dot.done{background:var(--teal)}.signal-dot.issue{background:var(--red)}.task-row,.timeline{display:grid}.task-row{grid-template-columns:104px minmax(0,1fr) minmax(150px,210px);grid-gap:18px;gap:18px;align-items:center;min-height:104px;padding:16px 18px;border-bottom:1px solid var(--line);background:rgba(255,254,250,.62);transition:background .14s ease,box-shadow .14s ease}.task-row:last-child{border-bottom:0}.task-row.selected,.task-row:hover{background:#f1f8f5}.task-row.selected{box-shadow:inset 4px 0 0 var(--teal)}.task-row.issue{box-shadow:inset 4px 0 0 var(--red)}.time-cell{display:grid;grid-gap:7px;gap:7px}.time-cell time{font-size:32px;font-weight:790;line-height:1}.time-cell span{color:var(--muted);font-size:12px}.course-cell{min-width:0}.course-line{gap:8px;flex-wrap:wrap}.course-line strong{font-size:22px;line-height:1.15}.class-chip,.star-chip{display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:8px;font-size:12px;font-weight:740;white-space:nowrap}.star-chip{color:#875100;background:#fde7b8}.class-chip{color:#24518f;background:#dceaff}.meta-line{gap:6px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:13px}.row-teachers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.row-teachers span{display:grid;grid-gap:3px;gap:3px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcf7;font-size:13px;font-weight:680}.row-teachers small{color:var(--muted);font-size:11px;font-weight:500}.action-panel{position:-webkit-sticky;position:sticky;top:16px;min-width:0;overflow:hidden}.panel-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;padding:8px;border-bottom:1px solid var(--line);background:var(--surface-2)}.panel-tab{gap:7px;min-height:38px;color:var(--muted);border:1px solid transparent;background:transparent;font-weight:700}.panel-tab.active{color:var(--ink);border-color:var(--line);background:var(--surface);box-shadow:0 8px 18px rgba(20,34,30,.06)}.action-view{padding:16px}.message-summary{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px}.message-summary small,.message-summary span{color:var(--muted);font-size:12px}.message-summary strong{font-size:18px}.message-view pre{max-height:390px;margin:0;overflow:auto;padding:14px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:#fbfcf7;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.message-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px;margin-top:12px}.message-actions.single{grid-template-columns:1fr}.script-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.script-tab{min-height:34px;padding:0 7px;color:var(--muted);border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:700}.script-tab.active{color:#fff;border-color:var(--teal);background:var(--teal)}.script-list{display:grid;grid-gap:10px;gap:10px;margin-top:12px;max-height:560px;overflow:auto;padding-right:2px}.script-card{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcf7}.script-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.script-card-head strong{min-width:0;font-size:14px}.script-card-head .icon-button{width:34px;height:34px;flex:0 0 auto}.script-text{color:#263632;font-size:13px;line-height:1.58;white-space:pre-wrap;word-break:break-word}.empty-state{display:grid;place-items:center;min-height:140px;color:var(--muted);border:1px dashed #bfcbc5;border-radius:8px;background:rgba(251,252,247,.72);font-size:14px}.timeline-empty{margin:16px}.toast{position:fixed;right:22px;bottom:22px;z-index:20;max-width:min(360px,calc(100vw - 44px));padding:12px 14px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);font-size:14px}.toast.success{border-color:rgba(15,118,110,.36);background:#eef8f4}.toast.warning{border-color:rgba(180,35,24,.3);background:#fff4ef}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:1200px){.app-workbench{grid-template-columns:minmax(240px,280px) minmax(0,1fr)}.action-panel{position:static;grid-column:2}}@media (max-width:900px){.app-shell{width:min(100% - 24px,760px);padding-top:20px}.topbar{align-items:flex-start;flex-direction:column}.topbar-summary{width:100%;justify-content:stretch}.topbar-summary span{flex:1 1;justify-content:center}.app-workbench{grid-template-columns:1fr}.action-panel{grid-column:auto}}@media (max-width:680px){h1{font-size:26px}.app-shell{width:min(100% - 18px,560px)}.brand-mark{width:40px;height:40px}.topbar-summary{display:grid;grid-template-columns:1fr 1fr}.topbar-summary span{padding:0 8px}.data-actions{grid-template-columns:1fr}.data-actions .icon-button{width:100%}.board-head{align-items:flex-start;flex-direction:column}.signal-strip{width:100%;overflow:hidden}.task-row{grid-template-columns:1fr;gap:12px;min-height:0;padding:15px}.time-cell{grid-template-columns:auto 1fr;align-items:end}.time-cell time{font-size:30px}.row-teachers,.script-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:430px){.message-actions,.row-teachers,.topbar-summary{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.platform-nav-wrap{border-bottom:1px solid rgba(170,184,178,.8);background:rgba(246,247,241,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.platform-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;width:min(1500px,calc(100% - 32px));min-height:66px;margin:0 auto}.platform-identity{display:inline-flex;align-items:center;gap:11px;min-width:0;color:var(--ink);text-decoration:none}.platform-identity-mark{display:grid;place-items:center;width:34px;height:34px;color:#fff;border-radius:8px;background:var(--ink)}.platform-identity>span:last-child{display:grid;grid-gap:2px;gap:2px}.platform-identity strong{font-size:14px;letter-spacing:.04em}.platform-identity small{color:var(--muted);font-size:11px}.tool-tabs{display:flex;align-self:stretch;gap:3px}.tool-tab{position:relative;display:inline-flex;align-items:center;gap:7px;min-width:116px;padding:0 17px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:700}.tool-tab:after{position:absolute;right:12px;bottom:-1px;left:12px;height:3px;border-radius:3px 3px 0 0;background:transparent;content:""}.tool-tab:hover{color:var(--ink);background:rgba(255,254,250,.54)}.tool-tab.active{color:var(--teal-deep);background:rgba(255,254,250,.78)}.tool-tab.active:after{background:var(--teal)}.tool-tab-label-short{display:none}.review-shell{width:min(1200px,calc(100% - 32px));margin:0 auto;padding:28px 0 44px}.review-hero{justify-content:space-between;gap:22px;min-height:82px;padding-bottom:22px;border-bottom:1px solid var(--line)}.review-hero,.review-title-row{display:flex;align-items:center}.review-title-row{gap:14px}.review-title-mark{display:grid;place-items:center;width:48px;height:48px;color:#fff;border-radius:8px;background:var(--blue);box-shadow:0 11px 24px rgba(46,95,167,.22)}.review-title-row h1{margin-top:2px}.review-title-row>div>p:last-child{margin-top:6px;color:var(--muted);font-size:14px}.eyebrow{color:var(--teal);font-size:10px;font-weight:820;letter-spacing:.15em;text-transform:uppercase}.review-system-status{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.review-system-status span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;color:var(--muted);border:1px solid var(--line);border-radius:8px;background:rgba(255,254,250,.82);font-size:12px;font-weight:650}.review-system-status i{width:7px;height:7px;border-radius:50%;background:var(--amber)}.review-system-status .ready i{background:var(--teal);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.review-workbench{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr);grid-gap:18px;gap:18px;align-items:stretch;margin-top:20px}.library-card,.review-input-card,.review-result-card{border:1px solid var(--line);border-radius:8px;background:rgba(255,254,250,.95);box-shadow:var(--shadow)}.review-input-card{padding:22px;border-top:4px solid var(--blue)}.review-result-card{display:flex;min-width:0;min-height:612px;padding:22px;border-top:4px solid var(--teal);flex-direction:column}.review-section-heading{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:start}.review-section-heading>span:first-child{display:grid;place-items:center;width:30px;height:30px;color:var(--blue);border:1px solid rgba(46,95,167,.28);border-radius:8px;background:#edf3ff;font-size:11px;font-weight:820}.review-section-heading h2{margin-top:4px;font-size:22px;line-height:1.15}.review-section-heading>strong{align-self:center;padding:6px 8px;border-radius:8px;font-size:11px}.review-section-heading>strong.complete{color:var(--teal-deep);background:#e5f4ef}.review-section-heading>strong.due{color:#8d3a22;background:#fff0e8}.review-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:22px}.review-mode-switch button{display:grid;grid-gap:4px;gap:4px;min-height:62px;padding:11px 13px;text-align:left;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface)}.review-mode-switch button:hover{border-color:#9aaca5}.review-mode-switch button.active{color:#fff;border-color:var(--blue);background:var(--blue);box-shadow:inset 0 -3px 0 #f0bd43}.review-mode-switch strong{font-size:14px}.review-mode-switch small{color:var(--muted);font-size:11px}.review-mode-switch .active small{color:rgba(255,255,255,.76)}.review-help{margin-top:14px;color:var(--muted);font-size:12px}.completion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:9px;gap:9px;margin-top:12px}.completion-grid.mode-two{grid-template-columns:repeat(2,minmax(0,1fr))}.completion-card{position:relative;display:grid;place-items:center;min-height:124px;padding:15px 8px 12px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface)}.completion-card.done{border-color:rgba(15,118,110,.58);background:#eaf6f1}.completion-card.due{border-color:rgba(180,35,24,.4);background:#fff5ef}.completion-card:hover{transform:translateY(-1px)}.completion-index{position:absolute;top:8px;right:9px;color:var(--muted);font-size:10px;font-weight:700}.completion-check{display:grid;place-items:center;width:39px;height:39px;margin-bottom:7px;color:var(--teal);border:1.5px solid;border-radius:6px;transform:rotate(-2deg)}.completion-card.due .completion-check{color:var(--red)}.completion-check>span{width:15px;height:2px;background:currentColor}.completion-card strong{font-size:15px}.completion-card small{margin-top:4px;color:var(--muted);font-size:11px}.completion-card.done small{color:var(--teal-deep)}.completion-card.due small{color:#9e3e25}.observation-field{margin-top:20px;padding-top:18px;border-top:1px dashed #b8c5bf}.field-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field-label-row label{font-size:14px;font-weight:750}.field-label-row label small,.field-label-row>span{color:var(--muted);font-size:11px;font-weight:500}.observation-field textarea{width:100%;min-height:112px;margin-top:9px;padding:12px 13px;resize:vertical;color:var(--ink);border:1px solid #b9c7c1;border-radius:8px;background:linear-gradient(180deg,transparent 31px,rgba(215,223,212,.48) 32px) 0 0 /100% 32px,#fff;line-height:32px}.observation-field textarea:focus{outline:2px solid rgba(46,95,167,.26);outline-offset:1px;border-color:rgba(46,95,167,.5)}.observation-field>p{margin-top:7px;color:var(--muted);font-size:11px;line-height:1.5}.review-generate-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:48px;margin-top:18px;color:#fff;border:0;border-radius:8px;background:var(--blue);box-shadow:0 4px 0 #173d73;font-weight:760}.review-generate-button:hover:not(:disabled){background:#254f8d}.review-generate-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 #173d73}.spin{animation:review-spin .85s linear infinite}@keyframes review-spin{to{transform:rotate(1turn)}}.review-notice{margin-top:12px;padding:10px 12px;border:1px solid;border-radius:8px;font-size:12px;line-height:1.5}.review-notice.success{color:var(--teal-deep);border-color:rgba(15,118,110,.3);background:#eef8f4}.review-notice.warning{color:#973d27;border-color:rgba(180,35,24,.25);background:#fff2ec}.result-heading>span:first-child{color:var(--teal-deep);border-color:rgba(15,118,110,.28);background:#eaf6f1}.pool-counter{display:flex;align-items:baseline;gap:5px;color:var(--muted)}.pool-counter strong{color:var(--teal);font-size:28px;line-height:1}.pool-counter small{font-size:11px}.quality-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:5px;gap:5px;margin-top:18px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.quality-strip span{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;color:var(--muted);font-size:11px;white-space:nowrap}.quality-strip svg{color:var(--teal)}.review-empty-state{display:grid;place-items:center;flex:1 1;min-height:390px;margin-top:16px;padding:30px;text-align:center;border:1px dashed #b5c4bd;border-radius:8px;background:rgba(246,249,246,.72)}.review-empty-state strong{margin-top:16px;font-size:15px}.review-empty-state p{max-width:310px;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.6}.empty-paper{position:relative;display:grid;align-content:center;grid-gap:9px;gap:9px;width:92px;height:76px;padding:16px;border:1px solid #9bb3ca;background:#fff;transform:rotate(-2deg)}.empty-paper span{display:block;width:46px;height:1px;background:#bed0e4}.empty-paper svg{position:absolute;right:-9px;bottom:-8px;width:38px;height:38px;padding:5px;color:var(--red);border:2px solid;background:var(--surface)}.comment-result{display:flex;flex:1 1;margin-top:16px;padding:18px;border:1px solid #a9bfd6;border-radius:8px;background:#f8fbff;flex-direction:column}.comment-result-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.comment-result-meta span:first-child{padding:5px 7px;color:var(--teal-deep);border:1px solid rgba(15,118,110,.35);border-radius:6px;background:#edf8f4;font-size:10px;font-weight:750}.comment-result-meta span:last-child{color:var(--muted);font-size:11px}.comment-result blockquote{display:flex;align-items:center;flex:1 1;margin:16px 0;padding:22px 18px;color:#172a25;border-left:3px solid var(--teal);background:linear-gradient(180deg,transparent 34px,rgba(178,199,218,.38) 35px) 0 7px /100% 35px,rgba(255,255,255,.64);font-family:"Noto Serif SC",Songti SC,SimSun,serif;font-size:20px;font-weight:520;line-height:1.95;letter-spacing:.02em}.comment-actions{display:grid;grid-template-columns:1.15fr 1fr .85fr;grid-gap:8px;gap:8px}.danger-button,.next-student-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border-radius:8px;font-weight:680}.danger-button{color:var(--red);border:1px solid rgba(180,35,24,.38);background:var(--surface)}.danger-button:hover:not(:disabled){background:#fff0eb}.next-student-button{width:100%;margin-top:9px;color:var(--muted);border:1px dashed #9eafa8;background:transparent}.next-student-button:hover{color:var(--ink);border-style:solid;background:#f3f7f3}.library-card{margin-top:18px;padding:22px;border-top:4px solid #d39a1f}.library-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.library-heading h2{margin-top:4px;font-size:21px}.library-heading>p{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:9px;gap:9px;margin-top:18px}.library-grid.mode-two{grid-template-columns:repeat(4,minmax(0,1fr))}.library-grid article{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcf7}.library-grid article.current{border-color:rgba(46,95,167,.5);background:#f0f5ff;box-shadow:inset 3px 0 0 var(--blue)}.library-grid article>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:7px}.library-grid article strong{overflow:hidden;font-size:11px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.library-grid article span{padding:2px 5px;color:var(--blue);border-radius:5px;background:#dfeaff;font-size:9px;font-weight:750}.library-grid article p{margin-top:10px;color:var(--muted);font-size:11px}.library-grid article b{color:var(--ink);font-size:18px}.library-progress{height:4px;margin-top:9px;overflow:hidden;border-radius:4px;background:#dce5df}.library-progress i{display:block;height:100%;border-radius:inherit;background:var(--teal)}.library-footnote{margin-top:12px;color:var(--muted);font-size:11px}@media (max-width:900px){.platform-nav,.review-shell{width:min(100% - 24px,760px)}.review-workbench{grid-template-columns:1fr}.review-result-card{min-height:560px}.library-grid,.library-grid.mode-two{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.platform-nav{align-items:stretch;width:min(100% - 18px,560px);padding-top:10px;flex-direction:column}.platform-identity small{display:none}.tool-tabs{min-height:45px;width:100%;overflow-x:auto;scrollbar-width:none}.tool-tabs::-webkit-scrollbar{display:none}.tool-tab{justify-content:center;flex:1 0 auto;min-width:104px;padding:0 10px;white-space:nowrap}.tool-tab-label-long{display:none}.tool-tab-label-short{display:inline}.review-shell{width:min(100% - 18px,560px);padding-top:20px}.library-heading,.review-hero{align-items:flex-start;flex-direction:column}.review-system-status{justify-content:flex-start}.library-card,.review-input-card,.review-result-card{padding:16px}.review-section-heading{grid-template-columns:30px minmax(0,1fr)}.pool-counter,.review-section-heading>strong{grid-column:2;justify-self:start}.completion-grid,.completion-grid.mode-two{grid-template-columns:1fr}.completion-card{grid-template-columns:44px minmax(0,1fr) auto;justify-items:start;min-height:70px;padding:10px 34px 10px 12px}.completion-check{grid-row:1/3;margin:0}.completion-card small{margin:0}.quality-strip{grid-template-columns:1fr}.quality-strip span{justify-content:flex-start}.comment-result blockquote{padding:17px 12px;font-size:18px}.comment-actions{grid-template-columns:1fr}.comment-actions button,.next-student-button{min-height:46px}.library-grid article strong{display:-webkit-box;min-height:32px;overflow:hidden;line-height:1.45;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}}@media (max-width:430px){.review-mode-switch{grid-template-columns:1fr}.review-title-mark{width:42px;height:42px}}@media (max-width:350px){.library-grid,.library-grid.mode-two{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.resource-download-control{display:grid;grid-gap:8px;gap:8px;min-width:0}.resource-download-control.primary{align-self:center}.resource-download-control.secondary{grid-column:1/-1;margin-top:3px}.resource-primary-download,.resource-secondary-download{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border-radius:10px;font-weight:760;transition:transform .14s ease,border-color .14s ease,background .14s ease}.resource-primary-download{min-height:56px;padding:0 22px;color:#fff;border:0;background:var(--teal);box-shadow:0 4px 0 var(--teal-deep)}.resource-primary-download:hover:not(:disabled){background:var(--teal-deep)}.resource-primary-download:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 #074842}.resource-secondary-download{color:var(--teal-deep);border:1px solid var(--line);background:var(--surface)}.resource-secondary-download:hover:not(:disabled){border-color:#9aaca5;background:#f3f7f3}.resource-secondary-download:active:not(:disabled){transform:translateY(1px)}.resource-download-status{color:var(--muted);font-size:12px;line-height:1.45;text-align:center}.resource-download-status.done{color:var(--teal-deep)}.resource-download-status.error{color:var(--red)}