/* 梦道教育 UI · shared tokens and role-specific layouts. No business state is changed. */
:root.md-theme {
  color-scheme: light;
  --md-navy:#142c40; --md-primary:#087f78; --md-primary-hover:#066960;
  --md-tint:#eaf6f3; --md-bg:#f3f6f8; --md-surface:#fff; --md-text:#203447;
  --md-muted:#627487; --md-line:#dfe7ed; --md-danger:#bc3845; --md-radius:16px;
  --md-shadow:0 4px 20px rgba(20,44,64,.045); --md-font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  --primary:var(--md-primary); --primary-dark:var(--md-primary-hover); --primary-light:#6cbcb2; --primary-bg:var(--md-tint);
  --primary-gradient:linear-gradient(115deg,#087f78,#126d73); --success-gradient:linear-gradient(115deg,#087f78,#278b6e);
  --bg:var(--md-bg); --cream:var(--md-bg); --surface:#fff; --white:#fff; --text:var(--md-text); --ink:var(--md-navy);
  --text-primary:var(--md-text); --text-secondary:#506579; --text2:var(--md-muted); --text-muted:var(--md-muted);
  --muted:var(--md-muted); --light:var(--md-muted); --border:var(--md-line); --border-light:#e9eef2; --line:var(--md-line);
  --gold:var(--md-primary); --gold2:#93d5c7; --green:#158365; --red:var(--md-danger); --danger:var(--md-danger);
  --shadow:var(--md-shadow); --shadow-sm:var(--md-shadow); --shadow-lg:0 12px 36px #142c4010;
  --shadow-primary:0 4px 12px #087f781a; --glass-bg:#fff; --glass-border:var(--md-line); --glass-blur:none;
  --radius-xl:20px; --radius-lg:16px; --radius-md:12px; --transition-base:180ms ease;
  --grad-blue:linear-gradient(90deg,#087f78,#58a89e); --grad-purple:linear-gradient(90deg,#476a92,#7e9cb9);
  background:var(--md-bg);
}
body.md-ui {margin:0;background:var(--md-bg);color:var(--md-text);font-family:var(--md-font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh}
.md-ui *, .md-ui *::before, .md-ui *::after {box-sizing:border-box}
.md-ui button,.md-ui input,.md-ui select,.md-ui textarea {font-family:inherit}
.md-ui button,.md-ui [role=button],.md-ui a {touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.md-ui button:not(:disabled),.md-ui [role=button] {cursor:pointer}
.md-ui button {transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.md-ui button:disabled {opacity:.5;cursor:not-allowed;transform:none}
.md-ui :focus-visible {outline:3px solid #269b93;outline-offset:3px}
.md-ui :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]) {font-size:16px;min-height:46px;border:1px solid var(--md-line);border-radius:10px;background:#fff;color:var(--md-text);box-shadow:none;max-width:100%}
.md-ui :is(input,select,textarea):focus {border-color:var(--md-primary);box-shadow:0 0 0 3px #087f7812;outline:none}
.md-ui :is(input,textarea)::placeholder {color:#8493a0}
.md-ui :is(input[type=checkbox],input[type=radio]) {accent-color:var(--md-primary);min-width:17px;min-height:17px}
.md-ui :is(.form-label,.form-group label,.field label) {font-size:14px;color:#506579;font-weight:600}
.md-ui :is(h1,h2,h3,h4) {letter-spacing:-.025em;line-height:1.35}
.md-ui h1 {font-weight:750}.md-ui h2,.md-ui h3 {font-weight:700}
.md-ui :is(.btn,.primary-btn,.text-btn,.btn-submit,.btn-download,.btn-history,.btn-profile,.tool-btn,.back-btn) {min-height:42px;font-size:14px;border-radius:10px;letter-spacing:0}
.md-ui :is(.btn-primary,.primary-btn,.btn-submit,.v5sw-primary) {background:var(--md-primary);color:white;box-shadow:0 3px 8px #087f7812;border-color:var(--md-primary)}
.md-ui :is(.btn-outline,.btn-light,.btn-history,.btn-download,.btn-profile,.tool-btn) {background:#fff;border:1px solid var(--md-line);color:#40596d;box-shadow:none}
.md-ui :is(.btn-danger,.btn-danger-outline,.btn-pdf) {border-color:var(--md-danger)}
.md-ui .btn-ai {background:var(--md-navy);box-shadow:none}
.md-ui :is(.btn-success,.btn-daily) {color:#126d57}.md-ui .btn-success {background:#eaf6f0;border:1px solid #b6d9c9}
.md-ui .btn-sm {min-height:36px;font-size:13px;padding:7px 11px}
.md-ui :is(.toast) {background:var(--md-navy);box-shadow:0 8px 24px #142c4026;border-radius:12px;font-size:14px;max-width:calc(100vw - 32px);pointer-events:none}
.md-ui :is(.empty,.v5sw-empty,.loading,.v5sw-loading) {color:var(--md-muted);font-size:14px;padding:36px 20px;line-height:1.8}
.md-ui .spinner {border-color:#dfe9e8;border-top-color:var(--md-primary)}
.md-ui :is(.card,.panel,.student-card,.attention-card,.class-card,.report-card,.question-card,.result-card,.overview,.weekly-card,.report,.stat-card,.backup-card,.feature) {border:1px solid var(--md-line);border-radius:var(--md-radius);box-shadow:var(--md-shadow);background:#fff}
.md-ui :is(.modal-mask,.confirm-overlay) {background:rgba(11,29,44,.42);backdrop-filter:none;overscroll-behavior:contain}
.md-ui :is(.modal-mask>.modal,.modal-box,.confirm-box) {border:1px solid var(--md-line);box-shadow:0 24px 80px #102b4033;border-radius:20px;max-height:calc(100dvh - 40px);overscroll-behavior:contain}
.md-ui .modal-mask>.modal {max-width:600px;padding:28px}
.md-ui :is(.modal-desc,.panel-hint,.panel-note,.student-meta,.report-meta) {font-size:14px;color:var(--md-muted)}
.md-ui .modal-actions {gap:10px;flex-wrap:wrap}
.md-ui .md-table-scroll {overflow-x:auto;max-width:100%;overscroll-behavior-x:contain;border:1px solid var(--md-line);border-radius:12px}
.md-ui table {font-variant-numeric:tabular-nums}
.md-ui th {font-size:13px;letter-spacing:0;background:#f5f8fa;color:#627487}
.md-ui td {font-size:14px}
.md-ui .md-brand-link {display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--md-navy);font-size:18px;font-weight:750;letter-spacing:.02em}
.md-ui .md-brand-link img {width:38px;height:38px;border-radius:10px;object-fit:contain}
.md-ui .md-back-link {display:inline-flex;align-items:center;min-height:44px;gap:8px;color:var(--md-muted);text-decoration:none;font-size:14px}
.md-ui .md-icon {width:24px;height:24px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.md-ui .md-eyebrow {font-size:13px;font-weight:650;color:var(--md-primary);letter-spacing:.1em}
.md-ui .md-workspace-heading {margin:24px 0}.md-ui .md-workspace-heading h1 {font-size:28px;margin:0 0 8px}.md-ui .md-workspace-heading p {color:var(--md-muted);font-size:14px;margin:0}
/* Entry: clear role choice, existing destinations. */
body.md-entry {display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0;background:#f5f8fa}
.md-entry .md-entry-header {width:min(1120px,100%);margin:0 auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--md-line)}
.md-entry .md-entry-header>span {font-size:14px;color:var(--md-muted)}
.md-entry .md-entry-main {width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:56px 32px 72px}
.md-entry .md-entry-copy h1 {font-size:clamp(36px,4.4vw,58px);margin:20px 0;line-height:1.23;letter-spacing:-.05em;color:var(--md-navy)}
.md-entry .md-entry-copy p {font-size:16px;line-height:1.9;color:var(--md-muted);max-width:340px}
.md-entry .md-entry-mark {display:flex;align-items:center;gap:12px;font-size:13px;color:var(--md-muted);margin-top:38px}.md-entry .md-entry-mark::before {content:"";height:2px;width:36px;background:var(--md-primary)}
.md-entry .choice-wrap {max-width:none;gap:16px}
.md-entry .choice-card {position:relative;border:1px solid var(--md-line);padding:28px;border-radius:20px;box-shadow:var(--md-shadow);color:var(--md-text)}
.md-entry .choice-card.md-student-choice {background:var(--md-navy);color:#fff;border-color:var(--md-navy)}
.md-entry .choice-head {gap:16px;margin:0 0 14px}.md-entry .choice-title {color:inherit;font-size:22px}
.md-entry .choice-emoji {width:50px;height:50px;border-radius:14px;display:grid;place-items:center;color:var(--md-primary);background:var(--md-tint)}
.md-entry .md-student-choice .choice-emoji {background:#264657;color:#a4ddd0}
.md-entry .choice-sub {margin:0;max-width:310px;font-size:14px;color:var(--md-muted);line-height:1.8}
.md-entry .md-student-choice .choice-sub {color:#baccd8}
.md-entry .md-choice-arrow {position:absolute;right:28px;top:35px;font-size:24px;color:var(--md-primary)}.md-entry .md-student-choice .md-choice-arrow {color:#a4ddd0}
.md-entry .foot {margin:0;padding:20px 24px 28px;line-height:1.9;font-size:12px;color:var(--md-muted);letter-spacing:0}
/* Login screens: the form is visible on arrival, including phones. */
body.md-auth {background:#f3f6f8;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px}
.md-auth .brand {text-align:center;margin-bottom:28px}.md-auth .brand-icon {width:58px;height:58px;border-radius:16px;box-shadow:none;margin-bottom:10px}.md-auth .brand-name {color:var(--md-navy);font-size:24px;letter-spacing:.04em}.md-auth .brand-slogan {font-size:14px;color:var(--md-muted);margin-top:6px}
.md-auth .card {width:min(440px,100%);max-width:100%;padding:32px;border-radius:20px;box-shadow:0 16px 60px #142c4008}
.md-auth :is(.card-title,.card h1) {font-size:26px;color:var(--md-navy)}.md-auth :is(.card-sub,.card>p) {font-size:14px;color:var(--md-muted);margin:8px 0 24px}
.md-auth .card button {background:var(--md-primary);min-height:48px;box-shadow:none}.md-auth .field {margin:18px 0}.md-auth .field input {background:#fff;width:100%;padding:12px 14px}
.md-auth .foot,.md-auth .site-filing {position:static;font-size:12px;color:var(--md-muted);line-height:1.8;margin:28px auto 0;max-width:560px;text-align:center}
.md-auth .site-filing a {color:inherit}.md-auth .logo {font-size:24px;margin:0 auto 16px;width:50px;height:50px;display:grid;place-items:center;background:var(--md-tint);border-radius:14px;color:var(--md-primary)}
body.md-parent-login {padding:0;display:block}
.md-parent-login .page {width:min(1100px,100%);grid-template-columns:1.05fr .95fr;gap:80px;padding:56px 32px;min-height:100dvh}
.md-parent-login .hero .brand {text-align:left;justify-content:flex-start;margin-bottom:48px}
.md-parent-login .hero .logo {margin:0;width:40px;height:40px;background:var(--md-navy);color:#fff;box-shadow:none}
.md-parent-login .eyebrow {margin:0 0 16px;font-size:13px;color:var(--md-primary)}
.md-parent-login .hero h1 {font-family:inherit;font-size:44px;line-height:1.35;color:var(--md-navy)}.md-parent-login .hero h1 em {color:var(--md-primary)}
.md-parent-login .hero>p {font-size:16px;line-height:1.9;margin:24px 0;color:var(--md-muted)}
.md-parent-login .promise {gap:0;margin-top:36px}.md-parent-login .promise-item {border:none;border-left:2px solid #cbdedb;border-radius:0;background:none;padding:2px 14px;backdrop-filter:none}.md-parent-login .promise-item span {font-size:13px}
.md-parent-login .preview {display:none}.md-parent-login .login-card {border:1px solid var(--md-line);background:#fff;border-radius:22px;padding:36px;backdrop-filter:none;box-shadow:0 16px 60px #142c4008}.md-parent-login .login-card::before {display:none}
.md-parent-login .card-head h2 {font-size:26px}.md-parent-login .card-head p {font-size:14px}.md-parent-login .tabs {background:#f0f4f6;border-radius:10px}.md-parent-login .tab.active {color:var(--md-primary)}
.md-parent-login .footer {font-size:12px;line-height:1.8}.md-parent-login .app-tip {font-size:12px}.md-parent-login .md-back-link {margin:0 0 16px}
/* Student assessment: learning first, diagnostic options second. */
.md-student .global-nav {background:#fff!important;border-bottom:1px solid var(--md-line);box-shadow:none;backdrop-filter:none}
.md-student .global-nav-title {color:var(--md-navy)}.md-student .global-nav-back {color:var(--md-muted)}
.md-student .hero-section {background:var(--md-navy);padding:40px 24px 70px;min-height:0}
.md-student .hero-section::before,.md-student .hero-section::after,.md-student .hero-wave {display:none}
.md-student .hero-content {display:grid;grid-template-columns:52px 1fr;gap:2px 16px;text-align:left;max-width:740px;margin:auto;align-items:center}
.md-student .hero-logo-img {width:52px;height:52px;border-radius:14px;grid-row:1/3;margin:0;box-shadow:none;animation:none}
.md-student .hero-title {font-size:28px;margin:0;color:#fff}.md-student .hero-subtitle {font-size:14px;margin:0;color:#bacdd7;letter-spacing:0}
.md-student .home-content {max-width:800px;margin-top:-34px;padding:0 24px 32px}
.md-student .md-learning-first {border-radius:18px;margin:0 0 28px;padding:24px;background:#fff;box-shadow:0 8px 28px #142c400a;border:1px solid var(--md-line);color:var(--md-text)}
.md-student .md-learning-first .practice-entry-icon {width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--md-tint);color:var(--md-primary);font-size:24px}
.md-student .practice-entry-title {font-size:21px;letter-spacing:0}.md-student .practice-entry-desc {color:var(--md-muted);font-size:14px}.md-student .practice-entry-arrow {color:var(--md-primary)}
.md-student .md-diagnostic-label {font-size:18px;margin:0 0 12px}.md-student .home-intro {padding:0;text-align:left;box-shadow:none;border:0;background:none;font-size:14px;margin:0 0 18px;color:var(--md-muted);backdrop-filter:none}
.md-student .trust-bar {display:none}.md-student .select-cards {display:grid;grid-template-columns:1fr 1fr;gap:16px}
.md-student .select-card {padding:24px;border:1px solid var(--md-line);border-radius:16px;background:#fff;box-shadow:none;backdrop-filter:none}
.md-student .card-icon {color:var(--md-primary);font-size:28px;margin-bottom:16px}.md-student .select-card h2 {font-size:21px}.md-student .card-subjects {font-size:14px;letter-spacing:2px}.md-student .card-desc {font-size:14px}.md-student .select-card .arrow {width:30px;height:30px;right:20px;font-size:20px;background:#f3f6f8}
.md-student :is(.top-bar,.nav-buttons) {background:#fff;backdrop-filter:none;box-shadow:none;border-color:var(--md-line)}
.md-student .top-bar {top:56px}.md-student .step-dot.active {animation:none;box-shadow:none}.md-student .progress-fill::after {animation:none;display:none}.md-student .step-label {font-size:12px}
.md-student .option-item {border-width:1px;transform:none!important;border-radius:12px}.md-student .option-item.selected {background:var(--md-tint);border-color:var(--md-primary);box-shadow:inset 3px 0 var(--md-primary)}
.md-student .option-item::after {display:none}.md-student .info-form,.md-student .question-area {padding-top:28px}.md-student .question-card {backdrop-filter:none;padding:28px}
.md-student .q-text {font-size:18px}.md-student .report-header {background:var(--md-navy);border-radius:18px;color:white}.md-student .report-header::before {display:none}
.md-student #practice-entry-modal>div {border-radius:20px!important;background:#fff!important;border:1px solid var(--md-line);box-shadow:0 20px 60px #142c4033!important}
.md-student #practice-entry-modal :is(h3,h2) {color:var(--md-navy)!important}.md-student #practice-entry-modal button[onclick*="doPracticeEntry"] {background:var(--md-primary)!important}
/* Parent: overview, weekly report and tools as a readable workspace. */
body.md-parent {background:var(--md-bg)}
.md-parent .shell {width:min(1120px,100%);padding:0 28px 110px}
.md-parent .topbar {height:80px;color:var(--md-navy);border-bottom:1px solid var(--md-line)}
.md-parent .brand {font-size:19px;display:flex;gap:10px;align-items:center}.md-parent .brand::before {content:"梦";display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--md-navy);color:#fff;font-size:18px}
.md-parent .logout {background:#fff;border:1px solid var(--md-line);color:var(--md-muted);border-radius:10px;min-height:38px;font-size:14px}
.md-parent .greeting {color:var(--md-navy);margin:32px 0 8px}.md-parent .greeting h1 {font-size:28px}.md-parent .greeting small {color:var(--md-muted);font-size:14px;margin-bottom:8px}
.md-parent .selector {padding:16px 0 20px}.md-parent .chip {font-size:14px;min-height:42px;border-radius:10px}.md-parent .chip.active {background:var(--md-navy)}.md-parent .chip.add {color:var(--md-primary)}
.md-parent :is(.overview,.weekly-card) {padding:24px}.md-parent .student-name {font-size:21px}.md-parent .student-meta {font-size:13px}.md-parent .overview-head {gap:12px;flex-wrap:wrap}
.md-parent .subject-btn {font-size:14px;min-height:36px;background:#f0f4f6;color:var(--md-muted)}.md-parent .subject-btn.active {background:var(--md-tint);color:var(--md-primary)}
.md-parent .metric {border-radius:12px;background:#f5f8fa;padding:18px}.md-parent .metric strong {font-size:30px;letter-spacing:-.04em}.md-parent .metric span {font-size:14px}.md-parent .metric em {font-size:13px}
.md-parent .insight {background:var(--md-tint);border-radius:12px}.md-parent .insight-icon {background:#d0ebe4;color:var(--md-primary)}.md-parent .insight b {font-size:15px}.md-parent .insight p {font-size:14px;color:#4e7068}
.md-parent .section {margin-top:28px}.md-parent .section-head h2 {font-size:20px}.md-parent .section-head span,.md-parent .text-btn {font-size:14px}
.md-parent .weekly-stat {background:#f5f8fa;border-radius:12px;padding:16px 12px}.md-parent .weekly-stat strong {font-size:24px}.md-parent .weekly-stat span {font-size:13px}
.md-parent .weekly-period {font-size:14px}.md-parent .week-nav button {font-size:13px;min-height:36px;background:#fff}.md-parent .weekly-teacher {font-size:14px;background:#f2f6f8}.md-parent .weekly-list h3 {font-size:15px}.md-parent .weekly-item,.md-parent .weekly-none {font-size:14px}.md-parent .homework-summary div {font-size:13px}.md-parent .homework-detail {font-size:14px}
.md-parent .feature {min-height:144px;padding:20px}.md-parent .feature .icon {background:var(--md-tint);color:var(--md-primary);width:40px;height:40px}.md-parent .feature b {font-size:16px}.md-parent .feature span {font-size:13px;line-height:1.7}.md-parent .report-name {font-size:16px}.md-parent .score {color:var(--md-primary)}
.md-parent .bottom-nav {max-width:520px;left:50%;right:auto;width:calc(100% - 32px);transform:translateX(-50%);bottom:16px;border:1px solid var(--md-line);border-radius:18px;padding:8px;background:#fff;box-shadow:0 8px 36px #142c4014;gap:4px}
.md-parent .bottom-nav button {font-size:13px;min-height:52px;flex:1;border-radius:12px;color:var(--md-muted)}.md-parent .bottom-nav button.active {background:var(--md-tint);color:var(--md-primary)}.md-parent .bottom-nav button b {font-size:20px}
/* Teacher: full desktop workspace, compact sticky navigation on phones. */
.md-teacher .topbar {background:#fff;color:var(--md-navy);border-bottom:1px solid var(--md-line);padding:24px 32px}
.md-teacher .topbar-inner {max-width:1100px}.md-teacher .topbar-title {font-size:20px}.md-teacher .topbar-name {color:var(--md-muted);font-size:14px}.md-teacher .topbar-actions a {color:var(--md-muted);min-height:36px;display:flex;align-items:center}
.md-teacher .container {max-width:1164px;padding:0 32px 60px}.md-teacher .tabbar {margin:24px 0;background:#e9eff3;box-shadow:none;border-radius:12px;padding:5px;gap:4px;overflow:visible}
.md-teacher .tab {border:0;border-radius:9px;color:var(--md-muted);font-size:14px;padding:12px 14px}.md-teacher .tab.active {background:#fff;color:var(--md-primary);box-shadow:0 2px 5px #142c4009}
.md-teacher .stat-card {margin:0 0 24px;padding:24px;gap:20px;justify-content:stretch;box-shadow:none}.md-teacher .stat {flex:1;text-align:left;padding-left:16px;border-left:2px solid #d1e7e2}.md-teacher .stat-num {font-size:32px;color:var(--md-navy)}.md-teacher .stat-label {font-size:14px}
.md-teacher .student-card,.md-teacher .attention-card,.md-teacher .class-card {padding:22px;margin:0 0 16px}.md-teacher .student-name {font-size:18px}.md-teacher .student-row {gap:12px;flex-wrap:wrap}.md-teacher .student-actions {margin-top:16px;gap:8px}.md-teacher .panel {padding:24px}.md-teacher .panel-head h3 {font-size:18px}.md-teacher .panel-toggle {min-width:40px;min-height:40px}.md-teacher .section-title {font-size:18px}
.md-teacher .attention-toolbar {gap:12px;flex-wrap:wrap}.md-teacher .form-select {margin-bottom:14px}.md-teacher .attention-toolbar .form-select {margin:0;max-width:180px}
.md-teacher .student-pick label {font-size:14px;padding:8px 12px;background:#f5f8fa}.md-teacher .pick-toolbar button {font-size:13px;min-height:34px}.md-teacher .panel-hint {margin-top:12px}.md-teacher .inline-row {flex-wrap:wrap}
/* Admin: clear navigation and quiet, dense tables. */
.md-admin .sidebar {width:228px;min-width:228px;background:var(--md-navy);box-shadow:none;padding:24px 12px 16px;height:100dvh;position:sticky;top:0;overflow-y:auto}
.md-admin .sidebar h2 {font-size:20px;background:none;-webkit-text-fill-color:#fff;color:#fff;padding:0 12px 22px;margin-bottom:16px;border-bottom-color:#ffffff18}
.md-admin .sidebar a {border:0;margin:2px 0;border-radius:9px;padding:11px 14px;color:#c0cfda;min-height:44px}.md-admin .sidebar a.active {background:#ffffff14;color:#8cdec9;box-shadow:inset 3px 0 #81d2bd}.md-admin .sidebar a i {width:20px;text-align:center}
.md-admin .nav-section {font-size:12px;color:#839baa;padding:20px 14px 6px;letter-spacing:.1em}
.md-admin .main {min-width:0;padding:32px 36px;max-width:1800px}.md-admin .main h1 {font-size:28px}.md-admin .page-header {margin-bottom:28px}
.md-admin .stats-row {grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.md-admin .stat-card {padding:24px;box-shadow:none}.md-admin .stat-card::before {display:none}.md-admin .stat-card:hover {transform:none;box-shadow:none}.md-admin .stat-card .card-icon {font-size:22px;margin-bottom:20px;color:var(--md-primary)}.md-admin .stat-card .card-num {font-size:34px;font-weight:700;letter-spacing:-.04em}.md-admin .stat-card .card-label {font-size:14px}
.md-admin .table-wrapper {box-shadow:none;border-radius:14px}.md-admin th,.md-admin td {padding:14px 16px}.md-admin tr:hover td {background:#f5faf8}.md-admin .action-group {gap:6px}.md-admin .search-bar {gap:10px;margin:20px 0}.md-admin .search-bar input {flex:1;max-width:360px}.md-admin .badge {border-radius:6px;font-size:12px;padding:4px 8px}.md-admin .modal-box {max-width:1100px}.md-admin .hamburger {background:var(--md-navy);border-radius:10px;box-shadow:none}
/* Practice, knowledge map, wrong questions and weekly plan share the same language. */
.md-practice .header {background:var(--md-navy);padding:22px max(24px,calc((100vw - 900px)/2));text-align:left}.md-practice .header>div {gap:18px;flex-wrap:wrap}.md-practice .header h1 {font-size:21px}.md-practice .header p {font-size:14px;color:#c4d5df;margin-top:6px}.md-practice .header button {min-height:40px;font-size:14px!important;border-radius:10px!important}
.md-practice .md-student-context {font-size:14px!important;color:var(--md-muted)!important;margin:18px auto 0!important;padding:0 20px;max-width:940px;line-height:1.9}.md-practice .md-student-context a {color:var(--md-primary)}
.md-practice .container {max-width:940px;padding:24px 24px 110px}.md-practice .question-card {padding:28px}.md-practice .question-text {font-size:18px;line-height:1.9}.md-practice .question-number {font-size:14px;color:var(--md-muted)}.md-practice .opt-btn {border-width:1px;border-radius:12px;min-height:52px}.md-practice .opt-btn.selected {background:var(--md-tint)!important;border-color:var(--md-primary)!important;color:var(--md-primary)!important}.md-practice .opt-btn:hover {background:#f0f8f5!important;border-color:#6cafa1!important}
.md-practice .nav-bar {gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}.md-practice .nav-dot {flex:none;border-radius:10px;border-width:1px;min-width:42px;height:42px}.md-practice .nav-dot.active {border-color:var(--md-primary);color:var(--md-primary);background:var(--md-tint)}.md-practice .nav-dot.done {background:var(--md-primary);border-color:var(--md-primary);color:#fff}.md-practice .nav-submit {flex:none;background:var(--md-primary);border-radius:10px}.md-practice .philosophy {font-size:13px;color:var(--md-muted);letter-spacing:0}
.md-practice .tutor-fab {background:var(--md-navy);box-shadow:0 4px 20px #142c4026;bottom:calc(86px + env(safe-area-inset-bottom));border-radius:16px}.md-practice .tutor-panel {max-width:640px;left:auto;right:16px;border:1px solid var(--md-line);border-radius:20px 20px 0 0}.md-practice .tutor-header {padding:16px;background:#fff}.md-practice .tutor-header h3 {font-size:16px;color:var(--md-navy)}.md-practice .tutor-msg {font-size:15px;line-height:1.8;padding:12px 16px}.md-practice .tutor-msg.user {background:var(--md-primary)}.md-practice .tutor-act {font-size:13px;min-height:40px}.md-practice .tutor-input-wrap button {background:var(--md-primary)}
.md-ui #v5-student-learning {background:var(--md-bg);color:var(--md-text)}
.md-ui .v5sw-shell {max-width:1000px;background:var(--md-bg);box-shadow:none;padding-bottom:110px}.md-ui .v5sw-top {background:#fff;border-color:var(--md-line);padding:20px 24px;backdrop-filter:none}.md-ui .v5sw-title {font-size:24px}.md-ui .v5sw-sub {font-size:14px;color:var(--md-muted)}.md-ui .v5sw-close {border:1px solid var(--md-line);box-shadow:none;color:var(--md-muted);width:42px;height:42px;border-radius:12px}.md-ui .v5sw-body {padding:24px}
.md-ui .v5sw-card,.md-ui .v5sw-stat {border-color:var(--md-line);box-shadow:none;border-radius:16px;padding:22px;margin-bottom:16px}.md-ui .v5sw-hero {background:var(--md-navy);border-color:var(--md-navy);color:#fff;padding:28px}.md-ui .v5sw-hero h2 {font-size:28px;margin:12px 0}.md-ui .v5sw-eyebrow {color:#a4d5c9;font-size:14px}.md-ui .v5sw-hero .v5sw-muted {color:#c0d1dd}.md-ui .v5sw-hero .v5sw-primary {background:#b9ebd9;color:#173e37;font-size:16px}
.md-ui .v5sw-primary {min-height:48px;font-size:15px;box-shadow:none;border-radius:10px}.md-ui .v5sw-secondary {border:1px solid #c5ddd6;background:#f0f8f5;color:var(--md-primary);font-size:14px;min-height:38px}.md-ui .v5sw-linkbtn {color:var(--md-primary);min-height:36px;font-size:14px}
.md-ui .v5sw-stat b {font-size:28px;color:var(--md-navy)}.md-ui .v5sw-stat span {font-size:14px;color:var(--md-muted)}.md-ui .v5sw-section-title {font-size:18px}.md-ui .v5sw-muted {font-size:14px;color:var(--md-muted)}
.md-ui :is(.v5sw-rowmeta,.v5sw-focusmeta,.v5sw-plan-period,.v5sw-plan-count,.v5sw-skillname,.v5sw-chapter summary,.v5sw-exam) {font-size:14px;color:var(--md-muted)}.md-ui :is(.v5sw-rowtitle,.v5sw-focusname,.v5sw-plan-title) {font-size:16px}.md-ui .v5sw-score {color:var(--md-primary)}.md-ui .v5sw-progress>i {background:var(--md-primary)}.md-ui .v5sw-progress {background:#e8eef0}.md-ui .v5sw-chapter {border-color:var(--md-line)}.md-ui .v5sw-chapter summary {background:#f5f8fa;color:var(--md-text);padding:16px}.md-ui .v5sw-focus {background:var(--md-tint);border-color:#d3e8e1}.md-ui .v5sw-pill,.md-ui .v5sw-badge {font-size:12px}
.md-ui .v5sw-tabs {padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:#fff;border-color:var(--md-line);box-shadow:0 -4px 20px #142c4005}.md-ui .v5sw-tabs-inner {max-width:720px;gap:6px}.md-ui .v5sw-tab {font-size:13px;border-radius:10px;padding:8px 4px;color:var(--md-muted)}.md-ui .v5sw-tab.active {background:var(--md-tint);color:var(--md-primary)}.md-ui .v5sw-tab b {font-size:21px}
.md-ui :is(.se-card,.se-panel,.se-modal) {border-color:var(--md-line);border-radius:16px;box-shadow:var(--md-shadow)}.md-ui .se-btn {min-height:42px;font-size:14px;border-radius:10px}.md-ui .se-picker-help {font-size:14px}.md-ui .se-muted {font-size:14px;color:var(--md-muted)}
/* Public appointments and report reading. */
.md-public .hero {background:var(--md-navy);padding-top:56px;padding-bottom:72px}.md-public .hero::before,.md-public .hero::after {display:none}.md-public .hero h1 {font-size:clamp(34px,4.5vw,52px);line-height:1.3}.md-public .hero .brand {font-size:18px;letter-spacing:.08em;margin-bottom:32px}.md-public .hero .subtitle {font-size:16px;color:#c3d3dc;line-height:1.8}.md-public .badge {background:#ffffff12;color:#c8e9df;border:1px solid #ffffff20;font-size:13px}.md-public .cta-btn {background:#b9ebd9;color:var(--md-navy);border-radius:10px;box-shadow:none;min-height:48px;font-size:16px}.md-public .stats {gap:12px}.md-public .stat-card {box-shadow:none}.md-public .stat-card .num {color:var(--md-primary)}.md-public .form-card {border:1px solid var(--md-line);border-radius:20px;box-shadow:var(--md-shadow)}.md-public .submit-btn {background:var(--md-primary);box-shadow:none}.md-public .section-title {color:var(--md-navy);font-size:26px}.md-public .section-subtitle {font-size:16px;color:var(--md-muted)}
.md-report .container {max-width:940px;padding:32px 24px}.md-report .report-header {background:var(--md-navy);padding:32px;border-radius:18px 18px 0 0}.md-report .report-body {padding:36px;border-radius:0 0 18px 18px;font-size:16px;box-shadow:var(--md-shadow)}.md-report .report-body h2 {font-size:21px;margin-top:30px}.md-report .report-body h3 {font-size:18px}.md-report .report-body th {background:#eef4f5;color:var(--md-navy)}.md-report .report-body blockquote {background:var(--md-tint);border-left-color:var(--md-primary)}
@media(hover:hover) and (pointer:fine) {
 .md-ui :is(.btn-primary,.primary-btn,.btn-submit):hover {background:var(--md-primary-hover);transform:translateY(-1px)}
 .md-ui :is(.choice-card,.feature,.report):hover {border-color:#97bcb3;box-shadow:0 8px 24px #142c400c;transform:translateY(-2px)}
 .md-ui :is(.btn-outline,.btn-light,.btn-history,.btn-download,.tool-btn):hover {background:#f2f8f6;border-color:#bad4cc}
}
@media(min-width:1050px) {
 .md-teacher {padding-left:240px}.md-teacher .tabbar {position:fixed;left:0;top:0;bottom:0;width:240px;margin:0;padding:124px 16px 24px;background:var(--md-navy);display:flex;flex-direction:column;gap:8px;border-radius:0;z-index:20;overflow:auto}
 .md-teacher .tabbar::before {content:"梦道教育";position:absolute;left:28px;top:32px;color:#fff;font-size:22px;font-weight:700;letter-spacing:.06em}
 .md-teacher .tabbar::after {content:"教学工作台";position:absolute;left:28px;top:70px;color:#91aabb;font-size:13px;letter-spacing:.1em}
 .md-teacher .tab {flex:0;text-align:left;color:#bbcedb;padding:14px 16px;display:flex;gap:12px;align-items:center}.md-teacher .tab.active {background:#ffffff13;color:#9fdec9;box-shadow:inset 3px 0 #8cd4bd}.md-teacher .topbar {padding:26px 32px}
 .md-teacher #students-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.md-teacher #students-list>.student-card {margin:0}.md-teacher #students-list>.empty {grid-column:1/-1}
 .md-parent .shell {display:grid;grid-template-columns:1.4fr 1fr;column-gap:24px}.md-parent :is(.topbar,.greeting,.selector,.overview,#weekly-section,footer) {grid-column:1/-1}.md-parent #feature-section {grid-column:1}.md-parent #report-section {grid-column:2}.md-parent .features {grid-template-columns:repeat(2,1fr)}.md-parent .reports {grid-template-columns:1fr}
}
@media(max-width:760px) {
 .md-ui .md-workspace-heading {margin:20px 0}.md-ui .md-workspace-heading h1 {font-size:24px}.md-ui .md-workspace-heading p {font-size:14px}
 .md-entry .md-entry-header {padding:20px;border-bottom:0}.md-entry .md-entry-header>span {display:none}.md-entry .md-entry-main {display:block;padding:20px 20px 32px;margin:0 auto}.md-entry .md-entry-copy h1 {font-size:34px;margin:10px 0}.md-entry .md-entry-copy p {margin:12px 0 28px;font-size:15px}.md-entry .md-entry-mark {display:none}.md-entry .choice-wrap {gap:14px}.md-entry .choice-card {padding:22px}.md-entry .choice-title {font-size:20px}.md-entry .md-choice-arrow {right:22px;top:29px}.md-entry .choice-emoji {width:44px;height:44px}.md-entry .foot {margin-top:auto}
 .md-auth .card {padding:26px 22px}.md-parent-login .page {padding:24px 20px 32px;display:flex;flex-direction:column;gap:22px;align-items:stretch;justify-content:center}.md-parent-login .hero {padding:0}.md-parent-login .hero .brand {margin:0;font-size:18px}.md-parent-login .eyebrow,.md-parent-login .hero h1,.md-parent-login .hero>p,.md-parent-login .promise {display:none}.md-parent-login .login-card {margin:0;padding:26px 22px}.md-parent-login .card-head {text-align:left}.md-parent-login .card-head h2 {font-size:26px}
 .md-student .hero-section {padding:28px 20px 60px}.md-student .hero-title {font-size:25px}.md-student .hero-content {grid-template-columns:44px 1fr;gap:2px 12px}.md-student .hero-logo-img {width:44px;height:44px}.md-student .home-content {padding:0 16px 28px}.md-student .md-learning-first {padding:20px 16px;gap:12px}.md-student .practice-entry-title {font-size:19px}.md-student .practice-entry-desc {font-size:13px}.md-student .select-cards {gap:12px}.md-student .select-card {padding:20px 16px;min-width:0}.md-student .select-card .arrow {display:none}.md-student .select-card h2 {font-size:19px}.md-student .card-desc {font-size:13px}.md-student .question-card {padding:22px 18px}.md-student .step-label {font-size:12px}.md-student .step-line {width:22px}.md-student .nav-buttons {padding-bottom:calc(12px + env(safe-area-inset-bottom))}.md-student .nav-btn {font-size:15px;min-height:46px}
 .md-parent .shell {padding:0 16px 110px}.md-parent .topbar {height:70px}.md-parent .greeting {margin:24px 0 6px}.md-parent .greeting h1 {font-size:24px}.md-parent :is(.overview,.weekly-card) {padding:18px}.md-parent .metric {padding:14px 10px}.md-parent .metric strong {font-size:26px}.md-parent .metric span {font-size:12px}.md-parent .metrics {gap:8px}.md-parent .features {grid-template-columns:repeat(2,1fr);gap:12px}.md-parent .feature {min-height:132px;padding:18px}.md-parent .reports {grid-template-columns:1fr}.md-parent .weekly-grid {grid-template-columns:repeat(3,1fr)}.md-parent .weekly-columns {grid-template-columns:1fr}.md-parent .weekly-stat {padding:14px 10px}.md-parent .weekly-head {flex-wrap:wrap}.md-parent .section-head {gap:10px;align-items:center}.md-parent .section-head>span {font-size:12px}.md-parent .bottom-nav {bottom:0;left:0;right:0;transform:none;width:100%;max-width:none;border-radius:16px 16px 0 0;padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.md-parent .modal-mask>.modal {border-radius:22px 22px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));max-height:90dvh}
 .md-teacher .topbar {padding:22px 18px 18px}.md-teacher .container {padding:0 16px 40px}.md-teacher .topbar-title {font-size:18px}.md-teacher .topbar-actions {gap:10px}.md-teacher .tabbar {position:sticky;top:0;z-index:15;margin:16px 0;padding:4px;gap:2px}.md-teacher .tab {font-size:13px;padding:11px 5px;white-space:nowrap}.md-teacher .tab i {display:none}.md-teacher .stat-card {padding:18px 12px;gap:6px}.md-teacher .stat {padding-left:10px}.md-teacher .stat-num {font-size:27px}.md-teacher .stat-label {font-size:13px}.md-teacher .student-card,.md-teacher .attention-card,.md-teacher .class-card,.md-teacher .panel {padding:18px}.md-teacher .modal-mask {padding:16px}.md-ui .modal-mask>.modal {padding:22px 18px}
 .md-admin .main {padding:76px 16px 32px}.md-admin .main h1 {font-size:24px}.md-admin .stats-row {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.md-admin .stat-card {padding:18px 14px}.md-admin .stat-card .card-num {font-size:28px}.md-admin .sidebar {position:fixed;top:0;height:100dvh}.md-admin .search-bar input[type=text] {min-width:0;max-width:none;width:100%}.md-admin .page-header {align-items:flex-start}.md-admin .modal-box {padding:20px 16px}
 .md-practice .header {padding:20px}.md-practice .header h1 {font-size:19px}.md-practice .header>div {gap:12px}.md-practice .container {padding:20px 16px 110px}.md-practice .question-card {padding:22px 18px}.md-practice .tutor-panel {width:100%;max-width:none;right:0}.md-practice .tutor-fab {right:16px;width:48px;height:48px}.md-ui .v5sw-top {padding:18px 16px}.md-ui .v5sw-body {padding:16px}.md-ui .v5sw-card,.md-ui .v5sw-stat {padding:18px;margin-bottom:12px}.md-ui .v5sw-hero {padding:22px}.md-ui .v5sw-hero h2 {font-size:25px}.md-ui .v5sw-stat b {font-size:26px}.md-ui .v5sw-skillhead {flex-wrap:wrap}.md-ui .v5sw-skillactions {flex-wrap:wrap}.md-ui .v5sw-tabs-inner {gap:2px}
 .md-public .hero {padding:36px 20px 56px}.md-public .hero .brand {margin-bottom:24px}.md-public .hero h1 {font-size:36px}.md-report .container {padding:16px}.md-report .report-header {padding:24px}.md-report .report-body {padding:24px 18px}
}
@media(max-width:370px) {.md-ui .homework-summary {grid-template-columns:repeat(2,1fr)}.md-entry .choice-card {padding:20px}.md-teacher .topbar-row {flex-wrap:wrap;gap:10px}.md-parent .weekly-grid {grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce) {.md-ui *,.md-ui *::before,.md-ui *::after {animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print {body.md-ui {background:#fff!important;color:#111}.md-ui :is(.global-nav,.sidebar,.hamburger,.md-back-link,.bottom-nav,.v5sw-tabs,.nav-bar,.tutor-fab) {display:none!important}.md-ui :is(.report-header,.report-body,.card,.question-card) {box-shadow:none!important}.md-ui .report-header {background:#fff!important;color:#111!important}.md-admin .main {padding:0}.md-teacher {padding:0}.md-ui .md-table-scroll {overflow:visible;border:0}}

/* Dynamic and small-screen details. */
.md-ui .fa-solid,.md-ui .fas,.md-ui .fa-brands {display:inline-flex;align-items:center;justify-content:center;font-style:normal;vertical-align:middle;font-family:inherit!important}
.md-ui .fa-solid::before,.md-ui .fas::before,.md-ui .fa-brands::before {display:none!important}
.md-ui .fa-solid .md-icon,.md-ui .fas .md-icon {width:1.2em;height:1.2em}
.md-ui .v5sw-row>.v5sw-secondary {flex:none;white-space:nowrap}
.md-ui .v5sw-rowmain {flex:1}
.md-ui .v5sw-hero .v5sw-rowmeta {color:#c0d1dd}
.md-ui .v5sw-badge,.md-ui .v5sw-pill {background:#eef4f5;color:#52697a}
.md-ui .v5sw-pill.mastered {background:#eaf6ef;color:#26774b}.md-ui .v5sw-pill.weak {background:#fff0eb;color:#b45536}
.md-ui .se-form {background:#f4f7f9;padding:16px;border:1px solid var(--md-line)}
.md-ui .se-field {color:var(--md-text)}.md-ui .se-field small,.md-ui .se-picker-help {color:var(--md-muted)}
.md-parent .bottom-nav b {color:inherit!important}
.md-teacher .attention-metrics,.md-teacher .intervention-item-meta {font-size:14px;color:var(--md-muted)}
.md-teacher .reason-chip {font-size:13px}.md-teacher .priority-badge {font-size:12px}
.md-public :is(.adv-card,.feature-card,.step-card,.pain-card) {border:1px solid var(--md-line);box-shadow:var(--md-shadow);border-radius:16px}
.md-public :is(.adv-card p,.feature-card p,.step-card p,.pain-card p) {font-size:15px;line-height:1.8;color:var(--md-muted)}
@media(max-width:760px){.md-ui .v5sw-row>.v5sw-secondary {padding:9px;font-size:13px}.md-ui .v5sw-tab .md-icon,.md-parent .bottom-nav .md-icon {width:21px;height:21px}}
@media(max-width:768px){.md-admin .sidebar {position:fixed}.md-admin .main {padding:76px 16px 32px}}
.md-ui :is(.se-record summary,.v5sw-chapter summary) {min-height:44px}
.md-ui .v5sw-tab:focus-visible,.md-parent .bottom-nav button:focus-visible {outline-offset:-3px}
.md-ui .md-workspace-heading,.md-parent .section,.md-parent .overview {scroll-margin-top:24px}
.md-ui .fa-spin .md-icon {animation:md-ui-spin 1s linear infinite}
@keyframes md-ui-spin {to {transform:rotate(360deg)}}

/* Reading and answering deserve room, even on a small screen. */
.md-practice #option-buttons {grid-template-columns:1fr!important;gap:10px!important}
.md-practice .opt-btn {text-align:left;font-weight:500;font-size:16px;line-height:1.7;padding:14px 18px;color:var(--md-text)}
.md-practice .opt-btn.selected {box-shadow:inset 3px 0 var(--md-primary)}
.md-public .container {max-width:1120px;padding:36px 24px 64px}
.md-public .stats {max-width:960px}
.md-public .step-card {padding:24px;box-shadow:none}
.md-public .step-card h3 {font-size:18px}
.md-public .step-card p {font-size:15px;line-height:1.85}
.md-public .form-card {max-width:680px;margin:32px auto}
.md-public .stat-card .label {font-size:14px}
.md-teacher-login :is(.card-tip,.tip,.hint) {color:var(--md-muted);font-size:13px}
@media(min-width:900px){.md-public .steps {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.md-public .section-title {margin-top:44px;margin-bottom:24px}}
@media(max-width:760px){.md-public .container {padding:24px 16px 40px}.md-public .step-card {padding:20px}.md-public .stat-card .label {font-size:13px}}

.md-share [data-section] {background:#fff;border:1px solid var(--md-line);border-radius:16px;padding:20px;margin:20px 0}
.md-share [data-section] h2 {background:none!important;color:var(--md-navy)!important;padding:0 0 14px!important;font-size:19px!important;border-bottom:1px solid var(--md-line)}
.md-share [data-name] {padding:16px 0!important;line-height:1.8}
.md-share [data-name] a {color:var(--md-primary)!important;font-size:16px}
.md-share [data-name]>span {font-size:13px!important;color:var(--md-muted)!important}
.md-share input {width:100%;padding:12px 16px}
.md-report .download-btn {background:var(--md-primary)!important;border-radius:10px;box-shadow:none;font-size:16px}
/* Student management: frequent actions first, secondary actions in a dialog. */
.md-admin .md-student-subtitle {margin:8px 0 0;font-size:14px;color:var(--md-muted)}
.md-admin .md-student-filters {display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:14px;padding:22px;background:#fff;border:1px solid var(--md-line);border-radius:16px}
.md-admin .md-student-filters label,.md-admin .md-student-extra label {display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--md-muted);min-width:0}
.md-admin .md-student-filters :is(input,select),.md-admin .md-student-extra select {width:100%;min-width:0;padding:10px 12px;margin:0}
.md-admin .md-student-filter-footer {display:flex;align-items:flex-start;gap:18px;margin:16px 0;flex-wrap:wrap;font-size:13px;color:var(--md-muted)}
.md-admin .md-student-filter-footer #filter-count {margin-left:auto;min-height:36px;display:flex;align-items:center}
.md-admin .md-student-extra summary {cursor:pointer;min-height:36px;display:flex;align-items:center;gap:8px}.md-admin .md-student-extra summary::after {content:'⌄';color:var(--md-muted)}
.md-admin .md-student-extra>div {display:flex;gap:14px;margin:12px 0}.md-admin .md-student-extra label {min-width:150px}
.md-admin .md-student-table table {min-width:850px}.md-admin .md-student-table td {padding:20px 18px;vertical-align:middle}
.md-admin .md-student-name {border:0;background:none;padding:0;color:var(--md-navy);font-size:17px;font-weight:700;min-height:32px;text-align:left}
.md-admin .md-student-name:hover {color:var(--md-primary);text-decoration:underline}
.md-admin .md-student-meta {color:var(--md-muted);font-size:13px;margin-top:4px}
.md-admin .md-access {font-size:12px;color:var(--md-muted);margin-top:5px}.md-admin .md-access.enabled {color:var(--md-primary)}
.md-admin .md-subject-chips {display:flex;gap:5px;flex-wrap:wrap;max-width:220px}.md-admin .md-subject-chips span {padding:3px 8px;background:#edf3f6;color:#52697a;border-radius:6px;font-size:12px}
.md-admin .md-student-link {border:0;background:none;color:var(--md-primary);font-size:13px;padding:5px 0;min-height:34px;text-align:left}
.md-admin .md-diagnosis-score {font-size:22px;font-weight:650;color:var(--md-navy);font-variant-numeric:tabular-nums}.md-admin .md-diagnosis-score span {font-size:12px;font-weight:400;color:var(--md-muted);margin-left:6px}
.md-admin .md-student-table .badge {margin-top:4px}
.md-admin .md-student-actions {display:flex;gap:7px;flex-wrap:wrap;max-width:350px}
.md-admin .md-student-actions .btn {min-height:38px;font-size:13px;padding:9px 12px}
.md-admin .md-student-pagination {display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;font-size:13px;color:var(--md-muted);flex-wrap:wrap}
.md-admin .md-student-pagination>div {display:flex;gap:8px;align-items:center;flex-wrap:wrap}.md-admin .md-student-pagination label {display:flex;gap:8px;align-items:center;margin-left:8px}.md-admin .md-student-pagination select {min-height:38px!important;font-size:13px!important;padding:7px 10px}
.md-ui .md-student-action-dialog {width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:26px;border:1px solid var(--md-line);border-radius:20px;background:#fff;color:var(--md-text);box-shadow:0 24px 80px #102b4033;overflow:auto}
.md-ui .md-student-action-dialog::backdrop {background:#102b4070}
.md-ui .md-student-action-dialog header {display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.md-ui .md-student-action-dialog h2 {font-size:21px;margin:0}.md-ui .md-student-action-dialog header p {font-size:13px;color:var(--md-muted);margin:8px 0}
.md-ui .md-dialog-close {border:1px solid var(--md-line);width:38px;height:38px;border-radius:10px;background:#fff;font-size:22px;color:var(--md-muted);flex:none}
.md-ui .md-action-section {border-top:1px solid var(--md-line);margin-top:16px;padding-top:14px}.md-ui .md-action-section h3 {font-size:12px;font-weight:500;color:var(--md-muted);margin:0 0 8px}
.md-ui .md-action-choice {border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:12px;border-radius:10px;font-size:15px;color:var(--md-text);min-height:44px}.md-ui .md-action-choice:hover {background:#f3f7f9}.md-ui .md-action-choice.danger {color:var(--md-danger)}.md-ui .md-action-choice.danger:hover {background:#fff1f1}
@media(max-width:1100px){.md-admin .md-student-filters {grid-template-columns:repeat(3,minmax(0,1fr))}.md-admin .md-student-search {grid-column:1/-1}}
@media(max-width:760px){
 .md-admin .md-student-filters {padding:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.md-admin .md-student-filters label:last-child {grid-column:1/-1}.md-admin .md-student-filter-footer {gap:14px}.md-admin .md-student-filter-footer #filter-count {width:100%;margin:0;min-height:24px}
 .md-admin .md-student-table {border:0;background:none;overflow:visible}.md-admin .md-student-table table {display:block;min-width:0;width:100%}.md-admin .md-student-table thead {display:none}.md-admin .md-student-table tbody {display:grid;gap:14px}.md-admin .md-student-table tr {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:20px;background:#fff;border:1px solid var(--md-line);border-radius:16px}
 .md-admin .md-student-table td {display:block;padding:0;border:0;background:none!important}.md-admin .md-student-table td:nth-child(2) {grid-column:1/-1;grid-row:2}.md-admin .md-student-table td:nth-child(3) {grid-column:2;grid-row:1;text-align:right}.md-admin .md-student-table td:last-child {grid-column:1/-1}.md-admin .md-student-table td[colspan] {grid-column:1/-1}.md-admin .md-subject-chips {max-width:none}.md-admin .md-student-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:8px}.md-admin .md-student-actions .btn {justify-content:center;min-height:42px}
 .md-admin .md-student-pagination {gap:12px}.md-admin .md-student-pagination>div {width:100%;justify-content:space-between}.md-admin .md-student-extra>div {flex-wrap:wrap}.md-ui .md-student-action-dialog {padding:22px}
}
.md-ui .md-student-action-dialog {margin:auto}

/* 03I-S11: teacher mobile touch targets */
/* 真机/375px 实测：.btn-sm 36px、.pick-toolbar button 34px，均低于 44px 触控底线。
   仅在窄屏提升，不影响桌面端布局。 */
@media (max-width:800px){
  .md-teacher .btn-sm,
  .md-teacher .pick-toolbar button{min-height:44px;padding-block:11px}
}
