:root{--bg:#f7f4ef;--surface:#fffdfa;--surface-strong:#f0f7f5;--ink:#233331;--muted:#64706d;--line:#ddd8cf;--accent:#315c57;--accent-2:#8b5d3b;--danger:#b54545;--warn:#9a6a13;--ok:#2c6a4f}*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--ink);padding-top:env(safe-area-inset-top);margin:0;font-family:Arial,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}.compliance-footer{padding:18px max(20px, env(safe-area-inset-left)) calc(18px + env(safe-area-inset-bottom));text-align:center;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 20px;font-size:13px;display:flex}.compliance-footer>a,.compliance-footer>span{max-width:100%;min-height:44px;color:inherit;align-items:center;gap:6px;display:inline-flex}.compliance-footer img{flex-shrink:0}.compliance-footer a:hover{text-decoration:underline}@media (max-width:1100px){body:has(.bottom-nav) .compliance-footer{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}input,textarea,select,button{font:inherit;font-size:16px}input,textarea,select{width:100%;min-height:44px}button,a,label{touch-action:manipulation}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#eef5f1;flex-direction:column;gap:24px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.brand small,.tenant-card small,.list-item small,.file-card small,.result-card small,.todo-card small{color:var(--muted);line-height:1.6;display:block}.nav-list{gap:8px;display:grid}.nav-list a,.bottom-nav a{color:#314542;border-radius:8px;padding:11px 12px}.nav-list a:hover,.bottom-nav a:hover{background:#dfece8}.tenant-card,.panel,.file-card,.result-card,.todo-card,.auth-panel,.confirm-card{border:1px solid var(--line);background:var(--surface);border-radius:8px}.tenant-card{margin-top:auto;padding:14px}.main-content{padding:28px;padding-bottom:calc(84px + env(safe-area-inset-bottom));min-width:0}.voice-entry{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fbfaf6,#e7f1ee 62%,#f4eadf);grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);align-items:stretch;gap:24px;min-height:310px;padding:30px;display:grid}.eyebrow{color:var(--accent);margin:0 0 10px;font-weight:700}h1,h2,p{margin-top:0}h1{max-width:780px;margin-bottom:14px;font-size:40px;line-height:1.15}h2{font-size:18px}.voice-entry p,.page-header p,.setup-header p{max-width:760px;color:var(--muted);line-height:1.8}.hero-actions,.setup-actions,.confirm-actions,.quick-actions{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.quick-actions{justify-content:flex-end;margin-top:0}.mobile-priority-panel{display:none}.intelligence-panel{margin-bottom:1rem}.intelligence-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.intelligence-card{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;padding:.9rem;display:grid}.status-message{color:#285b48;background:#edf8f2;border:1px solid #b8d7c9;border-radius:10px;margin:0 0 1rem;padding:.75rem 1rem}.intelligence-card h3{margin:.45rem 0 .25rem}.intelligence-card p{margin:.25rem 0}.evidence-list,.summary-list{gap:.4rem;padding-left:1.2rem;display:grid}.suggestion-confirm-form{gap:.65rem;margin-top:.75rem;display:grid}.student-summary>details{border-top:1px solid var(--line);margin-top:.8rem;padding-top:.8rem}.student-summary>details>summary{cursor:pointer;font-weight:700}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;margin-top:.75rem;display:grid}.summary-grid .wide{grid-column:1/-1}.summary-list li{gap:.2rem;display:grid}.summary-list li>span:last-child{gap:.5rem;font-size:.82rem;display:flex}.quick-actions.stacked{justify-content:stretch;display:grid}.primary-action,.secondary-action{cursor:pointer;text-align:center;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:12px 16px;display:inline-flex}.primary-action{background:var(--accent);color:#fff}.secondary-action{color:var(--accent);background:#fff;border-color:#bfd1cc}.full{width:100%}.mic-panel{text-align:center;background:#ffffffb8;border:1px solid #cddbd5;border-radius:8px;align-content:center;place-items:center;gap:12px;min-height:220px;display:grid}.mic-dot{background:radial-gradient(circle at 50% 38%, white 0 18%, #5a8880 19% 55%, var(--accent) 56%);border-radius:50%;width:86px;height:86px;box-shadow:0 0 0 12px #315c571f}.dashboard-grid,.setup-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px;display:grid}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.cockpit-primary-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;gap:18px;margin-top:18px;display:grid}.cockpit-primary-grid>*{min-width:0;margin:0}.cockpit-stats .stat-card{min-height:112px;padding:15px 16px}.cockpit-stats .stat-card strong{font-size:30px}.stat-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:8px;min-height:132px;padding:18px;display:grid}.stat-card strong{font-size:34px;line-height:1}.stat-card small,.stat-card span{color:var(--muted)}.stat-card.warning{border-color:#efc6a0}.stat-card.success{border-color:#a9d1bd}.panel{padding:20px}.panel-head,.page-header.two-col{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.panel-head a{color:var(--accent);font-weight:700}.stack-list{gap:10px;display:grid}.list-item{background:#fbfaf7;border:1px solid #ebe4d9;border-radius:8px;gap:4px;padding:12px;display:grid}.work-trail{gap:0;margin:0;padding:0;list-style:none;display:grid}.work-trail li{border-bottom:1px solid var(--line);grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 0;display:grid}.work-trail li:last-child{border-bottom:0}.work-trail time,.work-trail small,.work-trail span{color:var(--muted)}.work-trail li>div{gap:3px;min-width:0;display:grid}.work-trail strong{overflow-wrap:anywhere}.work-trail a{color:var(--accent);white-space:nowrap;font-weight:700}.work-trail.compact li{grid-template-columns:82px minmax(0,1fr) auto;padding:10px 0}.work-log-filters{align-items:end;margin-bottom:18px}.work-log-filters .primary-action{min-height:46px}.grade-card-list,.grade-preview-list{gap:10px;display:grid}.grade-exam-card,.grade-preview-list article{border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:14px;text-decoration:none;display:flex}.grade-exam-card div,.grade-preview-list article div{gap:4px;display:grid}.grade-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.distribution-row{grid-template-columns:110px 1fr 48px;align-items:center;gap:10px;margin:10px 0;display:grid}.distribution-row div{background:#edf1ee;border-radius:99px;height:10px;overflow:hidden}.distribution-row i{background:#527a65;height:100%;display:block}.responsive-table{overflow-x:auto}.responsive-table table{border-collapse:collapse;width:100%;min-width:720px}.responsive-table th,.responsive-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px}.mini-form{gap:6px;min-width:180px;display:grid}.grade-preview-list article.preview-error{background:#fff7f7;border-color:#c96565}.grade-preview-list article.preview-conflict{background:#fffaf2;border-color:#bd8b45}.grade-preview-list article.preview-ready{border-color:#79a48c}.error-banner{color:#8e3030;background:#fff3f3;border-radius:10px;padding:12px}@media (max-width:600px){.grade-stats,.grade-preview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-exam-card,.grade-preview-list article{flex-direction:column;align-items:flex-start}.distribution-row{grid-template-columns:88px 1fr 40px}.responsive-table{overflow:visible}.responsive-table table,.responsive-table thead,.responsive-table tbody,.responsive-table tr,.responsive-table td{min-width:0;display:block}.responsive-table thead{clip:rect(0 0 0 0);position:absolute}.responsive-table tr{border:1px solid var(--line);border-radius:14px;margin:10px 0;padding:10px}.responsive-table td{border:0;padding:5px 2px}.responsive-table td:before{margin-right:8px;font-weight:700}.responsive-table td:first-child:before{content:"学生"}.responsive-table td:nth-child(2):before{content:"学号"}.responsive-table td:nth-child(3):before{content:"成绩"}.responsive-table td:nth-child(4):before{content:"比例"}.responsive-table td:nth-child(5):before{content:"修订"}.responsive-table td:nth-child(6):before{content:"跟进"}}.link-item:hover{border-color:#aac4bd}.priority,.risk,.status{border-radius:999px;width:fit-content;padding:4px 8px;font-size:12px;font-weight:700}.priority-紧急,.risk-重点跟进{color:var(--danger);background:#fde9e7}.priority-重要,.risk-需关注,.status-需复核{color:var(--warn);background:#fff2d8}.priority-普通,.risk-平稳,.status-已索引{color:var(--ok);background:#e2f2eb}.status-解析中,.status-待解析,.status-待上传,.status-已上传,.status-提取中,.status-分块中{color:#31547a;background:#e6edf8}.status-可用{color:var(--ok);background:#e2f2eb}.status-需OCR{color:var(--warn);background:#fff2d8}.status-失败,.status-已删除{color:var(--danger);background:#fde9e7}.auth-page,.setup-page{min-height:100vh;padding:32px}.auth-page{background:linear-gradient(135deg,#f7f4ef,#e6f1ee);place-items:center;display:grid}.auth-panel{width:min(460px,100%);padding:30px}.form-grid,.field-grid{gap:14px;display:grid}label{color:#3b4c49;gap:7px;font-weight:700;display:grid}input,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #ccc5b8;border-radius:8px;padding:12px}textarea{resize:vertical;min-height:82px}select{width:100%;color:var(--ink);background:#fff;border:1px solid #bfd1cc;border-radius:8px;padding:10px}.class-switcher{background:#ffffff94;border:1px solid #d7e4df;border-radius:8px;gap:8px;padding:12px;display:grid}.workspace-switcher,.mobile-workspace-switcher{gap:6px;display:grid}.workspace-switcher span{color:var(--muted);font-size:12px}.workspace-switcher button,.mobile-workspace-switcher button{border:1px solid var(--line);color:inherit;background:0 0}.workspace-switcher .workspace-active,.mobile-workspace-switcher .workspace-active{border-color:var(--accent);color:var(--accent);background:#e7efe9;font-weight:700}.mobile-workspace-switcher{display:none}.teaching-list,.compact-list,.inline-actions{gap:10px;display:grid}.teaching-row,.compact-list>form,.compact-editor{border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px;display:grid}.status-label{color:var(--accent);font-weight:700}.teaching-assignment-admin,.teaching-resource-catalogs,.resource-create-panel,.teaching-resource-grid{margin-top:18px}.teaching-resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.teaching-resource-card{overflow-wrap:anywhere;min-width:0}details>summary{cursor:pointer;margin-bottom:12px;font-weight:700}.lesson-card-grid,.adaptation-list,.lesson-steps,.lesson-version-content{gap:14px;display:grid}.lesson-card,.lesson-step{border:1px solid var(--line);background:var(--surface);min-width:0;color:inherit;overflow-wrap:anywhere;border-radius:16px;padding:16px;text-decoration:none;display:block}.lesson-card h2{margin:0;font-size:1.05rem}.lesson-editor{gap:16px;display:grid}.lesson-save-bar{z-index:4;border:1px solid var(--line);background:var(--surface);border-radius:16px;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 30px #0f172a1f}.lesson-step textarea,.lesson-editor textarea{min-height:96px}.adaptation-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-class-switcher{display:none}.compact{min-height:36px;padding:8px 10px}.text-button,.text-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:8px 0 0;font-weight:700}.helper-text,.muted{color:var(--muted);line-height:1.7}.error-text{color:#b42318;line-height:1.7}.setup-header,.page-header{padding:26px 0 10px}.upload-box{background:var(--surface-strong);min-height:120px;color:var(--accent);border:1px dashed #9db8b0;border-radius:8px;place-items:center;font-weight:700;display:grid}.upload-box input{width:min(100%,360px)}.upload-panel,.search-row{margin-top:18px}.upload-form{grid-template-columns:minmax(0,1.4fr) minmax(180px,.5fr) auto;align-items:end;gap:14px;display:grid}.search-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.search-form{gap:14px;display:grid}.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.search-results{margin-top:18px}.search-result-card mark{color:var(--ink);background:#fff2a8;border-radius:4px;padding:0 2px}.compact-empty{min-height:160px}.student-table,.result-list,.timeline,.todo-board,.file-grid{gap:14px;display:grid}.filter-tabs{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.filter-tabs a{color:var(--accent);background:#fff;border:1px solid #d7e4df;border-radius:8px;padding:9px 12px;font-weight:700}.filter-tabs a.active{background:var(--accent);color:#fff}.student-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1.2fr 1fr auto 1.4fr;align-items:center;gap:16px;padding:16px;display:grid}.student-row:hover,.file-card:hover,.result-card:hover{border-color:#a8c3bc}.file-grid,.todo-board{grid-template-columns:repeat(3,minmax(0,1fr))}.todo-board.expanded{grid-template-columns:repeat(2,minmax(0,1fr))}.file-card,.todo-card{min-height:170px;padding:18px}.todo-card{align-content:start;gap:12px;display:grid}.todo-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.task-form{grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr) minmax(140px,.5fr) minmax(140px,.6fr);align-items:end;gap:14px;display:grid}.task-details{border-top:1px solid #ebe4d9;padding-top:10px}.task-details summary{cursor:pointer;color:var(--accent);font-weight:700}.danger-details summary{color:var(--danger)}.checkbox-row{align-items:center;gap:8px;display:flex}.checkbox-row input{width:auto;min-height:auto}.follow-form{border-top:1px solid #ebe4d9;gap:10px;margin-top:12px;padding-top:12px;display:grid}.file-type{width:54px;height:54px;color:var(--accent);background:#e7efe9;border-radius:8px;place-items:center;margin-bottom:14px;font-weight:700;display:grid}.result-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;display:grid}.reason{color:var(--accent-2)}.confirm-card{padding:22px}.speech-input,.voice-record-form,.record-form,.upload-form,.upload-choice-grid,.upload-preview{gap:12px;display:grid}.speech-status-row,.speech-toolbar,.speech-actions,.upload-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.speech-status{min-height:34px;color:var(--accent);background:#edf5f2;border-radius:8px;align-items:center;padding:6px 10px;font-weight:700;display:inline-flex}.speech-interim,.browser-warning,.upload-preview{color:var(--muted);overflow-wrap:anywhere;background:#fbf7ef;border:1px solid #eadfce;border-radius:8px;padding:12px}.browser-warning{color:var(--warn);border-color:#ead1a0}.upload-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-upload-form{grid-template-columns:1fr;align-items:stretch}.record-form{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-panel{background:#fbfaf7;border:1px solid #e2dbcf;border-radius:8px;gap:12px;padding:14px;display:grid}.upload-file-tile{cursor:pointer;background:#fbfaf7;border:1px dashed #adc3bd;border-radius:8px;align-content:center;gap:10px;min-height:132px;padding:16px;display:grid}.upload-file-tile input{min-height:auto}.pwa-banner{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(74px + env(safe-area-inset-bottom));z-index:30;background:#fffdfafa;border:1px solid #c8d8d2;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex;position:fixed;box-shadow:0 10px 30px #2333311f}.field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wide{grid-column:1/-1}.success-note{color:var(--ok);background:#e2f2eb;border-radius:8px;margin-top:16px;padding:12px}.empty-state{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-content:center;gap:12px;min-height:260px;padding:26px;display:grid}.stats-row,.mapping-grid{flex-wrap:wrap;gap:10px;display:flex}.stats-row span,.mapping-item{background:#f5f1ea;border:1px solid #e4dbce;border-radius:8px;padding:9px 12px}.mapping-grid{margin:16px 0}.mapping-item{gap:4px;min-width:170px;display:grid}.import-panel{margin-top:18px}.import-table{gap:8px;display:grid}.import-row{background:#fbfaf7;border:1px solid #e7dfd4;border-radius:8px;grid-template-columns:86px 1fr 1fr 100px 100px 1.4fr;align-items:center;gap:10px;padding:12px;display:grid}.import-row-error{background:#fff4f2;border-color:#efc6c0}.info-list{color:var(--muted);overflow-wrap:anywhere;gap:10px;display:grid}.text-preview{white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;color:var(--ink);background:#fbfaf7;border:1px solid #e5ded3;border-radius:8px;padding:14px;overflow:auto}.compact-timeline .timeline-item{grid-template-columns:150px minmax(0,1fr)}.danger-zone{border-color:#efc6c0;margin-top:18px}.danger-action{color:var(--danger);border-color:#efc6c0}.timeline-item{border-left:4px solid var(--accent);background:var(--surface);border-radius:8px;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:16px;display:grid}.timeline-item time{color:var(--accent);font-weight:700}.seating-form{gap:18px;display:grid}.seating-grid{--seat-columns:6;grid-template-columns:repeat(var(--seat-columns), minmax(118px, 1fr));gap:10px;display:grid}.seat-cell{background:#fbfaf7;border:1px solid #d9e4df;border-radius:8px;gap:6px;min-height:118px;padding:10px;display:grid}.seat-cell span{color:var(--accent);font-weight:700}.seat-cell small{color:var(--muted)}.bottom-nav{display:none}.voice-skill-trigger{z-index:34;color:#fff;background:var(--accent);border:0;border-radius:999px;min-height:46px;padding:0 18px;font-weight:700;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 24px #23333138}.voice-skill-nav{display:none}.voice-skill-backdrop{z-index:60;background:#1722216b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.voice-skill-sheet{background:var(--surface);border-radius:16px;gap:14px;width:min(640px,100%);max-height:min(820px,100dvh - 36px);padding:20px;display:grid;overflow:auto;box-shadow:0 24px 70px #17222147}.voice-skill-sheet>header,.voice-skill-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.voice-skill-sheet h2{margin:3px 0 0}.voice-skill-form,.voice-skill-preview,.voice-skill-results{gap:10px;display:grid}.voice-skill-form textarea{resize:vertical;width:100%}.voice-skill-preview{border:1px solid var(--line);background:#fbfaf7;border-radius:10px;padding:14px}.voice-skill-preview p{overflow-wrap:anywhere;gap:2px;margin:0;display:grid}.voice-skill-preview small{color:var(--muted)}.voice-skill-preview .checkbox-row{align-items:flex-start;gap:8px;display:flex}.voice-skill-preview .checkbox-row input{width:auto;min-height:auto;margin-top:3px}.cockpit-reflection-strip{border:1px solid var(--line);background:#fbfaf7;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 16px;padding:10px 14px;display:flex}.reflection-filter{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;display:grid}.reflection-list,.suggestion-grid{gap:14px;display:grid}.reflection-summary{grid-template-columns:minmax(220px,1.3fr) minmax(300px,2fr) auto;align-items:center;gap:18px;display:grid}.reflection-summary dl,.fact-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.reflection-summary dl div,.fact-list div{background:#f6f5f1;border-radius:8px;min-width:0;padding:9px}.reflection-summary dt,.fact-list dt{color:var(--muted);font-size:12px}.reflection-summary dd,.fact-list dd{overflow-wrap:anywhere;margin:3px 0 0;font-weight:700}.reflection-form{gap:18px;display:grid}.reflection-context-grid,.reflection-choices,.reflection-notes-grid,.reflection-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.reflection-choices{border:1px solid var(--line);border-radius:10px;padding:14px}.reflection-choices legend,.copy-scope legend{padding:0 6px;font-weight:700}.reflection-save-bar{z-index:8;border:1px solid var(--line);background:#fffdfaf7;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;display:grid;position:sticky;bottom:12px;box-shadow:0 8px 22px #1722211a}.reflection-short-notes>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.reflection-short-notes article{border:1px solid var(--line);border-radius:9px;min-width:0;padding:12px}.reflection-short-notes p,.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.suggestion-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.suggestion-card{border:1px solid var(--line);background:#fbfaf7;border-radius:10px;min-width:0;padding:14px}.suggestion-card p{overflow-wrap:anywhere}.reuse-source-summary{background:#f6f5f1;border-radius:9px;grid-column:1/-1;padding:12px}.copy-scope{border:1px solid var(--line);border-radius:10px;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;display:grid}.copy-scope label{align-items:flex-start;gap:8px;min-width:0;display:flex}.copy-scope input{width:auto;min-height:auto;margin-top:3px}.source-lineage{overflow-wrap:anywhere}@media (max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main-content{padding:18px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:calc(96px + env(safe-area-inset-bottom))}.voice-entry,.mobile-priority-panel,.dashboard-grid,.stat-grid,.cockpit-primary-grid,.setup-grid,.settings-grid,.file-grid,.todo-board,.todo-board.expanded,.field-grid,.filter-grid,.upload-form,.search-row,.task-form,.seating-grid,.intelligence-list,.intelligence-card,.summary-grid,.record-form,.mobile-upload-form,.upload-choice-grid{grid-template-columns:1fr}.voice-entry{padding:22px}.mobile-priority-panel{gap:14px;margin-bottom:18px;padding:18px;display:grid}h1{font-size:30px}.student-row,.result-card,.timeline-item,.import-row{grid-template-columns:1fr}.page-header.two-col{grid-template-columns:1fr;align-items:stretch;display:grid}.bottom-nav{padding:8px max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-top:1px solid var(--line);background:#fffdfaf5;grid-template-columns:repeat(7,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{text-align:center;padding:10px 4px;font-size:11px}.mobile-class-switcher{background:#ffffffc7;border:1px solid #d7e4df;border-radius:8px;gap:8px;margin-bottom:14px;padding:12px;display:grid}.mobile-workspace-switcher{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px;display:grid}.teaching-row,.compact-list>form,.compact-editor,.teaching-resource-grid,.lesson-card-grid,.adaptation-list{grid-template-columns:1fr}.lesson-save-bar{bottom:calc(76px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch}.lesson-save-bar .primary-action{width:100%}.voice-skill-floating{display:none}.voice-skill-nav{width:100%;min-width:0;min-height:48px;box-shadow:none;border-radius:6px;place-items:center;padding:10px 2px;font-size:11px;display:grid;position:static}.voice-skill-backdrop{align-items:end;padding:0}.voice-skill-sheet{width:100%;max-height:calc(100dvh - env(safe-area-inset-top));padding:18px max(16px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-radius:18px 18px 0 0}.work-trail li,.work-trail.compact li{grid-template-columns:1fr auto;align-items:start;gap:6px 12px}.work-trail time{grid-column:1/-1}.lesson-step{padding:12px}.lesson-editor details{overflow:hidden}.lesson-editor input,.lesson-editor select,.lesson-editor textarea{min-width:0;max-width:100%}.quick-actions{justify-content:flex-start}.reflection-filter,.reflection-summary,.reflection-context-grid,.reflection-choices,.reflection-notes-grid,.reflection-detail-grid,.suggestion-grid{grid-template-columns:1fr}.reflection-save-bar{bottom:calc(76px + env(safe-area-inset-bottom));grid-template-columns:1fr}.copy-scope{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.main-content{padding-top:12px}h1{font-size:26px;line-height:1.22}.page-header,.panel,.empty-state,.confirm-card,.todo-card,.file-card,.result-card,.stat-card{padding:16px}.hero-actions,.setup-actions,.confirm-actions,.quick-actions,.speech-actions,.upload-controls{grid-template-columns:1fr;display:grid}.primary-action,.secondary-action,.text-button{width:100%;min-height:46px}.upload-choice-grid{grid-template-columns:1fr}.page-header .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-self:stretch;width:100%}.page-header .quick-actions .primary-action{grid-column:1/-1}.bottom-nav a{place-items:center;min-height:48px;display:grid}.cockpit-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-stats .stat-card{min-height:104px}.pwa-banner{bottom:calc(82px + env(safe-area-inset-bottom));display:grid}.voice-skill-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.voice-skill-actions .primary-action,.voice-skill-actions .secondary-action{white-space:normal;word-break:keep-all;width:100%;min-width:0}.cockpit-reflection-strip{flex-direction:column;align-items:stretch}.reflection-summary dl,.fact-list,.reflection-short-notes>div,.copy-scope{grid-template-columns:1fr}.reflection-form input,.reflection-form select,.reflection-form textarea,.reuse-preview input,.reuse-preview select,.reuse-preview textarea{min-width:0;max-width:100%}.reflection-save-bar .checkbox-row{align-items:flex-start}}.skill-center-grid{gap:18px;display:grid}.skill-items{gap:10px;margin:12px 0;display:grid}.skill-item{border:1px solid var(--line);overflow-wrap:anywhere;background:#fff;border-left:4px solid #6f8792;border-radius:10px;min-width:0;padding:14px}.skill-item.skill-immediate,.skill-item.skill-overdue{border-left-color:#b42318}.skill-item.skill-next_three_days{border-left-color:#d97706}.skill-item-head,.skill-sources,.skill-feedback,.planned-skills{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.skill-label{background:#eef3f5;border-radius:999px;padding:3px 9px;font-size:12px}.skill-sources{justify-content:flex-start}.skill-feedback{margin-top:12px}.planned-skills span{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 10px}@media (max-width:520px){.skill-item-head,.skill-feedback{grid-template-columns:1fr;align-items:stretch;display:grid}.skill-feedback select,.skill-feedback button{width:100%;min-width:0}.skill-item .suggestion-confirm-form{max-width:100%;overflow:hidden}}.grade-sheet-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grade-sheet-list article{border:1px solid var(--line);border-radius:14px;gap:5px;padding:14px;display:grid}.sheet-safe-preview{gap:4px;display:grid;overflow:hidden}.sheet-safe-preview div{background:#f7f9f7;border-radius:8px;grid-template-columns:70px minmax(0,1fr);gap:8px;padding:7px 9px;display:grid}.sheet-safe-preview span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-safe-preview .selected-header{outline:2px solid var(--accent)}.grade-row-resolution{grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) auto auto auto;align-items:end;gap:8px;display:grid}.grade-row-resolution label{min-width:0}.grade-preview-list article.preview-skipped{opacity:.72;border-style:dashed}.grade-mapping-form select,.grade-row-resolution select,.grade-row-resolution input{width:100%;min-width:0}@media (max-width:800px){.grade-row-resolution{grid-template-columns:1fr 1fr}.grade-row-resolution label,.grade-row-resolution .text-button{grid-column:1/-1}}@media (max-width:600px){.grade-sheet-list{grid-template-columns:1fr}}.learning-card-list,.learning-student-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.learning-card,.learning-student-card{border:1px solid var(--line);background:var(--panel,#fff);overflow-wrap:anywhere;border-radius:14px;gap:10px;min-width:0;padding:16px;display:grid}.workflow-form>*,.learning-student-card .form-grid>*{min-width:0}.workflow-form fieldset{border:1px solid var(--line);border-radius:12px}.batch-controls{scroll-margin-top:80px}.batch-controls .primary-action{min-width:160px;min-height:44px}.batch-save-jump{z-index:8;background:#fff;width:fit-content;margin-bottom:12px;display:block;position:sticky;top:8px;box-shadow:0 2px 8px #0002}@media (max-width:600px){.learning-card-list,.learning-student-list,.workflow-form,.learning-student-card .form-grid{grid-template-columns:minmax(0,1fr)}.batch-controls .primary-action,.workflow-form .primary-action{width:100%;min-height:44px}.learning-student-card .panel-head{flex-wrap:wrap}.batch-workflow select,.batch-workflow input:not([type=checkbox]){width:100%;min-width:0;min-height:44px}.batch-save-jump{width:100%;min-height:44px}}.task-planner{scroll-margin-top:24px}.task-planner>summary{cursor:pointer;padding:12px 0;font-size:1.15rem;font-weight:700}.task-planner .form-grid>*{min-width:0}.task-plan-preview ul{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;max-height:240px;padding-left:20px;display:grid;overflow-y:auto}@media (max-width:520px){.task-planner .form-grid{grid-template-columns:minmax(0,1fr)}.task-planner .primary-action{white-space:normal;width:100%}}
