:root {
  --blue-950:#082553;
  --blue-900:#0b326d;
  --blue-800:#104b9b;
  --blue-700:#1769f5;
  --blue-600:#2584ff;
  --cyan:#1fcbe5;
  --mint:#2cc7ac;
  --yellow:#ffc93e;
  --orange:#ff9429;
  --red:#ee5260;
  --ink:#0c2147;
  --text:#314866;
  --muted:#71839b;
  --line:#dfe9f5;
  --surface:#ffffff;
  --bg:#f3f8ff;
  --shadow:0 18px 50px rgba(30,76,137,.11);
  --soft-shadow:0 8px 24px rgba(30,76,137,.08);
  --radius:22px;
}

* { box-sizing:border-box; }
html { min-height:100%; font-size:16px; }
body {
  margin:0; min-height:100vh; color:var(--text); background:var(--bg);
  font-family:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,textarea,select { font:inherit; }
button { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
.hidden { display:none!important; }
.muted { color:var(--muted); }
.mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }

.brand { display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; }
.brand img { width:44px; height:44px; filter:drop-shadow(0 8px 12px rgba(23,105,245,.24)); }
.brand strong { display:block; font-size:1.18rem; letter-spacing:.02em; }
.brand span { display:block; font-size:.76rem; color:var(--muted); margin-top:2px; }

.btn {
  min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:0; border-radius:14px; padding:0 20px; cursor:pointer; font-weight:700;
  color:white; background:linear-gradient(135deg,var(--blue-700),var(--blue-600));
  box-shadow:0 10px 22px rgba(23,105,245,.22); transition:.2s ease;
}
.btn:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 13px 26px rgba(23,105,245,.29); }
.btn:active:not(:disabled) { transform:translateY(0); }
.btn:disabled { opacity:.52; cursor:not-allowed; box-shadow:none; }
.btn.secondary { color:var(--blue-700); background:#eaf3ff; box-shadow:none; }
.btn.secondary:hover:not(:disabled) { background:#dcecff; box-shadow:none; }
.btn.outline { color:var(--blue-700); background:white; border:1px solid #a8ccff; box-shadow:none; }
.btn.danger { color:#b92838; background:#fff0f2; box-shadow:none; }
.btn.success { background:linear-gradient(135deg,#14a88d,#2cc7ac); box-shadow:0 10px 22px rgba(44,199,172,.2); }
.btn.small { min-height:36px; padding:0 14px; border-radius:11px; font-size:.88rem; }
.icon-btn {
  width:42px; height:42px; border:1px solid var(--line); border-radius:13px; background:white;
  color:var(--blue-800); cursor:pointer; display:grid; place-items:center; font-size:1.05rem;
}

.field { display:grid; gap:8px; }
.field label { font-size:.93rem; color:var(--ink); font-weight:700; }
.field small { font-size:.8rem; color:var(--muted); line-height:1.6; }
input,textarea,select {
  width:100%; color:var(--ink); background:#fbfdff; border:1.5px solid #dbe7f5;
  border-radius:14px; padding:13px 15px; outline:0; transition:.18s ease;
}
textarea { min-height:160px; line-height:1.8; resize:vertical; }
input:focus,textarea:focus,select:focus { border-color:#65a6ff; box-shadow:0 0 0 4px rgba(37,132,255,.11); background:white; }

.toast {
  position:fixed; z-index:200; left:50%; bottom:30px; transform:translate(-50%,20px);
  background:var(--ink); color:white; padding:12px 20px; border-radius:999px;
  box-shadow:0 16px 40px rgba(3,22,53,.26); opacity:0; pointer-events:none; transition:.25s ease;
  max-width:min(88vw,520px); text-align:center;
}
.toast.show { opacity:1; transform:translate(-50%,0); }

/* 登录 */
.login-page {
  display:grid; place-items:center; padding:28px; overflow:hidden;
  background:
    radial-gradient(circle at 12% 16%,rgba(31,203,229,.22),transparent 26%),
    radial-gradient(circle at 86% 84%,rgba(255,201,62,.25),transparent 24%),
    linear-gradient(145deg,#edf7ff,#fafdff 46%,#fff9e9);
}
.login-card {
  width:min(980px,100%); min-height:580px; display:grid; grid-template-columns:1.08fr .92fr;
  border:1px solid rgba(255,255,255,.8); border-radius:32px; overflow:hidden;
  background:rgba(255,255,255,.88); box-shadow:0 30px 90px rgba(16,75,155,.18);
}
.login-art {
  position:relative; overflow:hidden; padding:56px; color:white;
  background:linear-gradient(150deg,#0d4dae,#1769f5 56%,#1ec9e8);
}
.login-art::before,.login-art::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.22); }
.login-art::before { width:420px; height:420px; right:-190px; top:-170px; }
.login-art::after { width:260px; height:260px; left:-130px; bottom:-90px; }
.login-art .brand { color:white; }
.login-art .brand span { color:rgba(255,255,255,.72); }
.login-copy { position:relative; z-index:1; margin-top:100px; }
.login-copy h1 { font-size:2.55rem; line-height:1.2; margin:0 0 18px; letter-spacing:-.03em; }
.login-copy p { max-width:390px; margin:0; font-size:1.05rem; line-height:1.9; color:rgba(255,255,255,.82); }
.sound-line { display:flex; align-items:center; gap:7px; height:80px; margin-top:38px; }
.sound-line i { display:block; width:7px; border-radius:9px; background:rgba(255,255,255,.76); }
.sound-line i:nth-child(4n+1) { height:24px; }
.sound-line i:nth-child(4n+2) { height:50px; }
.sound-line i:nth-child(4n+3) { height:34px; }
.sound-line i:nth-child(4n) { height:64px; }
.login-form-wrap { padding:70px 62px; display:flex; flex-direction:column; justify-content:center; }
.login-form-wrap h2 { color:var(--ink); font-size:1.75rem; margin:0 0 8px; }
.login-form-wrap > p { margin:0 0 32px; color:var(--muted); }
.login-form { display:grid; gap:18px; }
.login-form .btn { width:100%; margin-top:8px; min-height:50px; }
.form-error { min-height:24px; color:#c93445; font-size:.9rem; }

/* 老师工作台 */
.teacher-shell { min-height:100vh; display:grid; grid-template-columns:244px minmax(0,1fr); }
.sidebar {
  position:sticky; top:0; height:100vh; padding:26px 18px; color:white;
  background:
    radial-gradient(circle at 20% 90%,rgba(31,203,229,.28),transparent 28%),
    linear-gradient(180deg,#1257bd,#0b326d);
}
.sidebar .brand { color:white; margin:0 8px 38px; }
.sidebar .brand span { color:rgba(255,255,255,.65); }
.nav-list { display:grid; gap:8px; }
.nav-item {
  width:100%; min-height:50px; display:flex; align-items:center; gap:13px; padding:0 15px;
  color:rgba(255,255,255,.76); background:transparent; border:0; border-radius:14px; cursor:pointer;
  text-align:left; font-weight:600; transition:.18s ease;
}
.nav-item span:first-child { width:24px; text-align:center; font-size:1.12rem; }
.nav-item:hover { color:white; background:rgba(255,255,255,.09); }
.nav-item.active { color:white; background:linear-gradient(135deg,rgba(64,151,255,.92),rgba(41,115,233,.96)); box-shadow:0 12px 30px rgba(0,23,72,.25); }
.sidebar-note { position:absolute; left:32px; bottom:34px; right:28px; color:rgba(255,255,255,.72); font-size:.86rem; line-height:1.8; }
.sidebar-note b { color:#ffe269; font-weight:700; }
.teacher-main { min-width:0; background:linear-gradient(180deg,#f7fbff,#f2f7fd); }
.topbar {
  height:76px; padding:0 34px; display:flex; align-items:center; justify-content:space-between;
  background:rgba(255,255,255,.89); border-bottom:1px solid #e5eef8; backdrop-filter:blur(14px);
  position:sticky; top:0; z-index:20;
}
.topbar h1 { margin:0; color:var(--ink); font-size:1.12rem; }
.teacher-chip { display:flex; align-items:center; gap:10px; color:var(--ink); font-weight:700; }
.teacher-avatar { width:38px; height:38px; border-radius:13px; display:grid; place-items:center; background:#e6f3ff; }
.page { display:none; padding:30px 34px 60px; max-width:1500px; margin:auto; }
.page.active { display:block; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:24px; }
.page-heading h2 { margin:0; color:var(--ink); font-size:1.85rem; letter-spacing:-.03em; }
.page-heading p { margin:7px 0 0; color:var(--muted); }

.welcome-banner {
  min-height:176px; border-radius:28px; padding:32px 38px; display:flex; align-items:center;
  background:
    radial-gradient(circle at 82% 36%,rgba(255,210,72,.55) 0 3%,transparent 3.2%),
    radial-gradient(circle at 75% 58%,rgba(31,203,229,.42) 0 9%,transparent 9.3%),
    linear-gradient(110deg,#dff2ff,#eaf8ff 54%,#fff7cf);
  border:1px solid white; box-shadow:var(--soft-shadow); position:relative; overflow:hidden;
}
.welcome-banner::after { content:"🎙️"; position:absolute; right:7%; font-size:6.5rem; filter:drop-shadow(0 14px 18px rgba(23,105,245,.18)); transform:rotate(-8deg); }
.welcome-banner h2 { color:var(--ink); font-size:2rem; margin:0 0 10px; }
.welcome-banner p { font-size:1.02rem; margin:0; color:#59708d; }
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:20px 0; }
.stat-card { background:white; border:1px solid #e6eef7; border-radius:20px; padding:20px; display:flex; align-items:center; gap:15px; box-shadow:var(--soft-shadow); }
.stat-icon { width:50px; height:50px; flex:none; border-radius:16px; display:grid; place-items:center; font-size:1.4rem; }
.stat-card:nth-child(1) .stat-icon { background:#e7f1ff; }
.stat-card:nth-child(2) .stat-icon { background:#fff3d9; }
.stat-card:nth-child(3) .stat-icon { background:#dcf8f1; }
.stat-card:nth-child(4) .stat-icon { background:#ffecef; }
.stat-card strong { display:block; color:var(--ink); font-size:1.65rem; line-height:1.1; }
.stat-card span { display:block; margin-top:5px; color:var(--muted); font-size:.86rem; }
.panel { background:white; border:1px solid #e5edf7; border-radius:22px; box-shadow:var(--soft-shadow); }
.panel-head { padding:20px 22px; border-bottom:1px solid #edf2f8; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.panel-head h3 { color:var(--ink); margin:0; font-size:1.08rem; }
.panel-body { padding:20px 22px; }

.table-wrap { overflow:auto; }
.data-table { width:100%; border-collapse:collapse; min-width:760px; }
.data-table th { color:#7b8ca2; font-size:.82rem; font-weight:600; text-align:left; padding:13px 14px; background:#f8fbff; white-space:nowrap; }
.data-table td { padding:16px 14px; border-top:1px solid #edf2f8; vertical-align:middle; }
.data-table tr:hover td { background:#fbfdff; }
.table-title { color:var(--ink); font-weight:700; }
.table-sub { color:var(--muted); font-size:.79rem; margin-top:4px; }
.status { display:inline-flex; align-items:center; gap:7px; border-radius:999px; padding:6px 10px; font-size:.8rem; font-weight:700; white-space:nowrap; }
.status::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.status.open,.status.completed { color:#138e77; background:#e2f8f2; }
.status.pending,.status.processing { color:#c27a0b; background:#fff4dc; }
.status.closed,.status.failed { color:#c6384a; background:#fff0f2; }
.status.published { color:#1769f5; background:#eaf3ff; }
.score { color:var(--ink); font-size:1.08rem; font-weight:800; }
.score.low { color:#d14b41; }
.empty { text-align:center; padding:45px 20px; color:var(--muted); }
.empty b { display:block; color:var(--ink); font-size:1.05rem; margin-bottom:7px; }
.empty .empty-icon { font-size:2.5rem; display:block; margin-bottom:12px; }

.assignment-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr); gap:20px; align-items:start; }
.assignment-list-panel { margin-top:20px; }
.create-form { display:grid; gap:18px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.switch-row { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border:1px solid #e3edf7; border-radius:14px; }
.switch-row strong { color:var(--ink); font-size:.92rem; }
.switch-row span { color:var(--muted); font-size:.78rem; display:block; margin-top:3px; }
.switch { position:relative; width:48px; height:28px; flex:none; }
.switch input { opacity:0; position:absolute; }
.switch i { position:absolute; inset:0; border-radius:99px; background:#cad8e8; transition:.2s; cursor:pointer; }
.switch i::after { content:""; position:absolute; width:22px; height:22px; border-radius:50%; background:white; left:3px; top:3px; box-shadow:0 2px 8px rgba(20,42,70,.2); transition:.2s; }
.switch input:checked+i { background:var(--blue-700); }
.switch input:checked+i::after { transform:translateX(20px); }
.preview-card { position:sticky; top:98px; overflow:hidden; }
.preview-hero { padding:24px; color:white; background:linear-gradient(135deg,#1472f7,#1ac6dc); }
.preview-hero small { color:rgba(255,255,255,.78); }
.preview-hero h3 { margin:8px 0 0; font-size:1.35rem; }
.preview-paper { padding:24px; }
.preview-paper p { white-space:pre-wrap; line-height:1.85; color:var(--text); margin:12px 0 20px; max-height:260px; overflow:auto; }
.preview-meta { display:flex; gap:8px; flex-wrap:wrap; }
.meta-pill { background:#eff6ff; color:#416489; border-radius:10px; padding:8px 10px; font-size:.78rem; }
.share-url { padding:11px 13px; border-radius:12px; background:#f4f8fc; color:#4d6580; word-break:break-all; font-size:.78rem; margin:8px 0 12px; }
.actions { display:flex; flex-wrap:wrap; gap:8px; }
.filters { display:flex; gap:10px; flex-wrap:wrap; }
.filters input { min-width:250px; }
.filters select { width:auto; min-width:150px; }

/* 详情抽屉 */
.overlay { position:fixed; inset:0; z-index:80; background:rgba(5,24,55,.48); opacity:0; pointer-events:none; transition:.22s; }
.overlay.open { opacity:1; pointer-events:auto; }
.drawer { position:absolute; top:0; bottom:0; right:0; width:min(720px,96vw); background:#f7fbff; transform:translateX(100%); transition:.28s ease; overflow:auto; box-shadow:-20px 0 60px rgba(5,24,55,.18); }
.overlay.open .drawer { transform:translateX(0); }
.drawer-head { position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; align-items:center; padding:20px 24px; background:rgba(255,255,255,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.drawer-head h3 { margin:0; color:var(--ink); }
.drawer-body { padding:22px; display:grid; gap:16px; }
.student-summary { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.student-name { display:flex; align-items:center; gap:12px; }
.round-avatar { width:50px; height:50px; display:grid; place-items:center; border-radius:16px; color:white; font-weight:800; font-size:1.2rem; background:linear-gradient(135deg,#1ec9e8,#1769f5); }
.student-name h4 { margin:0; color:var(--ink); font-size:1.1rem; }
.student-name p { margin:4px 0 0; color:var(--muted); font-size:.82rem; }
.audio-card { background:linear-gradient(135deg,#eef7ff,#f9fcff); border:1px solid #dceafa; border-radius:18px; padding:18px; }
.audio-card audio { width:100%; margin-top:10px; }
.score-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.score-card { border-radius:16px; padding:15px; text-align:center; }
.score-card:nth-child(1) { background:#e8f8ef; color:#1b9851; }
.score-card:nth-child(2) { background:#fff3e2; color:#dc7a12; }
.score-card:nth-child(3) { background:#edf5ff; color:#2973d9; }
.score-card:nth-child(4) { background:#f2ecff; color:#7a55cc; }
.score-card span { display:block; font-size:.78rem; }
.score-card b { display:block; font-size:1.55rem; margin-top:5px; }
.issue-tags { display:flex; gap:8px; flex-wrap:wrap; }
.issue-tag { background:#fff3d7; color:#9b6512; border-radius:999px; padding:7px 11px; font-size:.8rem; }
.feedback-editor { min-height:300px; background:white; line-height:1.9; }
.sentences { display:grid; gap:8px; }
.sentence-row { display:flex; gap:12px; justify-content:space-between; padding:11px 12px; border-radius:12px; background:#f5f9fd; }
.sentence-row span:first-child { color:var(--text); line-height:1.5; }
.sentence-row b { color:var(--blue-700); white-space:nowrap; }

.modal { position:fixed; inset:0; z-index:100; display:none; place-items:center; padding:20px; background:rgba(5,24,55,.5); }
.modal.open { display:grid; }
.modal-card { width:min(420px,100%); background:white; border-radius:24px; padding:28px; box-shadow:var(--shadow); text-align:center; }
.modal-card h3 { color:var(--ink); margin:0 0 6px; }
.modal-card p { color:var(--muted); margin:0 0 18px; font-size:.88rem; }
.modal-card img { width:250px; height:250px; max-width:100%; }

/* 学生录音 */
.student-page {
  background:
    radial-gradient(circle at 12% 8%,rgba(31,203,229,.17),transparent 25%),
    radial-gradient(circle at 88% 92%,rgba(255,201,62,.18),transparent 24%),
    #f3f8ff;
  padding:0 14px 50px;
}
.student-top {
  margin:0 -14px 20px; min-height:140px; padding:26px 20px 44px; color:white;
  background:linear-gradient(145deg,#0f5bcd,#1777f8 56%,#1ec9e8); border-radius:0 0 34px 34px;
}
.student-top .brand { color:white; max-width:680px; margin:auto; }
.student-top .brand span { color:rgba(255,255,255,.72); }
.student-wrap { max-width:680px; margin:-46px auto 0; position:relative; }
.student-card { background:white; border:1px solid rgba(255,255,255,.9); border-radius:24px; box-shadow:var(--shadow); padding:24px; margin-bottom:16px; }
.assignment-intro { display:flex; align-items:center; gap:15px; }
.book-icon { width:58px; height:58px; flex:none; border-radius:18px; display:grid; place-items:center; background:#e7f2ff; font-size:1.8rem; }
.assignment-intro h1 { margin:0; color:var(--ink); font-size:1.35rem; }
.assignment-intro p { margin:6px 0 0; color:var(--muted); font-size:.85rem; }
.section-title { color:var(--ink); font-size:1.1rem; margin:0 0 15px; display:flex; align-items:center; gap:8px; }
.reading-paper { white-space:pre-wrap; color:var(--ink); background:linear-gradient(135deg,#eef8ff,#f7fbff); border:1px solid #dbeaf8; border-radius:18px; padding:20px; line-height:2; font-size:1.08rem; }
.student-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.recorder { text-align:center; padding:8px 0 2px; }
.mic-button {
  width:132px; height:132px; margin:6px auto 18px; border:0; border-radius:50%; color:white; cursor:pointer;
  display:grid; place-items:center; position:relative; font-size:3.2rem;
  background:linear-gradient(145deg,#28cce5,#1472f7 70%); box-shadow:0 18px 38px rgba(23,105,245,.3),0 0 0 12px rgba(31,203,229,.10);
}
.mic-button::after { content:""; position:absolute; inset:-22px; border:2px solid rgba(31,203,229,.22); border-radius:50%; }
.mic-button.recording { background:linear-gradient(145deg,#ff7b64,#ee4056); animation:recordPulse 1.35s infinite; }
@keyframes recordPulse { 50% { box-shadow:0 18px 38px rgba(238,64,86,.32),0 0 0 22px rgba(238,64,86,.08); } }
.record-state { color:var(--ink); font-size:1.12rem; font-weight:800; }
.timer { color:var(--blue-800); font-size:1.9rem; font-weight:800; font-variant-numeric:tabular-nums; margin-top:6px; }
.wave { width:100%; height:72px; margin:16px 0 8px; border-radius:16px; background:#f4f9fe; }
.record-help { color:var(--muted); font-size:.84rem; line-height:1.7; }
.playback-box { margin-top:18px; padding:16px; border-radius:16px; background:#f4f9fe; }
.playback-box audio { width:100%; }
.submit-actions { display:grid; grid-template-columns:1fr 1.35fr; gap:12px; margin-top:14px; }
.submit-actions .btn { min-height:50px; }
.student-alert { border-radius:14px; padding:13px 15px; background:#fff7dd; color:#8c6415; font-size:.84rem; line-height:1.6; }

/* 学生结果 */
.result-stage { display:grid; gap:16px; }
.progress-card { text-align:center; padding:38px 24px; }
.progress-orb { width:94px; height:94px; margin:0 auto 22px; border-radius:50%; display:grid; place-items:center; font-size:2.5rem; background:#e8f3ff; position:relative; }
.progress-orb.loading::after { content:""; position:absolute; inset:-7px; border:3px solid #d8eaff; border-top-color:var(--blue-700); border-radius:50%; animation:spin 1s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.progress-card h1 { color:var(--ink); font-size:1.45rem; margin:0 0 9px; }
.progress-card p { color:var(--muted); margin:0; line-height:1.75; }
.result-audio audio { width:100%; margin-top:12px; }
.published-feedback { white-space:pre-wrap; background:linear-gradient(145deg,#fffaf0,#fff); border:1px solid #f5e3b8; border-radius:18px; padding:20px; line-height:1.95; color:#34465d; }
#resultScores { margin-bottom:16px; }

@media (max-width:1100px) {
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .assignment-layout { grid-template-columns:1fr; }
  .preview-card { position:static; }
}
@media (max-width:800px) {
  .login-card { grid-template-columns:1fr; min-height:0; }
  .login-art { display:none; }
  .login-form-wrap { padding:48px 28px; }
  .teacher-shell { grid-template-columns:1fr; }
  .sidebar { position:fixed; z-index:50; left:0; right:0; bottom:0; top:auto; height:72px; padding:8px 10px; background:rgba(9,48,106,.96); backdrop-filter:blur(14px); }
  .sidebar .brand,.sidebar-note { display:none; }
  .nav-list { grid-template-columns:repeat(3,1fr); gap:5px; }
  .nav-item { min-height:56px; justify-content:center; flex-direction:column; gap:3px; padding:4px; font-size:.72rem; }
  .nav-item span:first-child { font-size:1.05rem; line-height:1; }
  .topbar { height:66px; padding:0 16px; }
  .page { padding:22px 15px 100px; }
  .page-heading { align-items:flex-start; flex-direction:column; }
  .page-heading h2 { font-size:1.55rem; }
  .welcome-banner { min-height:150px; padding:25px; }
  .welcome-banner::after { font-size:4.5rem; right:4%; opacity:.66; }
  .welcome-banner h2 { font-size:1.55rem; max-width:70%; }
  .welcome-banner p { max-width:70%; font-size:.9rem; }
  .panel-body { padding:16px; }
  .form-grid { grid-template-columns:1fr; }
  .filters { width:100%; }
  .filters input,.filters select { width:100%; min-width:0; }
  .score-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:540px) {
  .login-page { padding:14px; }
  .login-form-wrap { padding:38px 22px; }
  .stats-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .stat-card { padding:15px; gap:10px; }
  .stat-icon { width:42px; height:42px; border-radius:13px; }
  .stat-card strong { font-size:1.35rem; }
  .stat-card span { font-size:.72rem; }
  .student-card { padding:20px 17px; border-radius:21px; }
  .student-fields { grid-template-columns:1fr; }
  .reading-paper { font-size:1rem; padding:17px; }
  .mic-button { width:116px; height:116px; }
  .submit-actions { grid-template-columns:1fr; }
  .drawer-body { padding:14px; }
  .student-summary { align-items:flex-start; flex-direction:column; }
  .actions .btn { flex:1; }
}
