/* MEDICSmart Classroom */
body.classroom-mode .page-shell { width:min(1180px,calc(100% - 28px)); }
.classroom-view { animation:view-enter .2s ease both; }
.classroom-masthead { min-height:94px; }
.classroom-masthead h1 { font-size:clamp(38px,6vw,60px); letter-spacing:-3px; }

.classroom-entry { margin-top:14px; }
.classroom-entry-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.classroom-role-card {
  text-align:left; min-height:150px; padding:20px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); cursor:pointer; display:grid; align-content:center; gap:5px;
  border-radius:5px; box-shadow:0 1px 0 rgba(0,0,0,.04); transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.classroom-role-card:hover { transform:translateY(-2px); border-color:var(--border-strong); background:var(--surface-2); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.classroom-role-card strong { font-size:21px; letter-spacing:-.02em; }
.classroom-role-card > span:last-child { color:var(--text-soft); font-size:13px; max-width:40ch; }
.role-kicker,.workspace-kicker,.dialog-kicker { font-size:10px; letter-spacing:.12em; font-weight:800; color:var(--accent); }
.classroom-local-note { margin-top:10px; border:1px solid var(--border); background:var(--surface-3); color:var(--text-soft); padding:9px 11px; font-size:12px; border-radius:4px; }

.classroom-pane { border:1px solid var(--border); background:var(--surface); margin-top:12px; padding:16px; animation:panel-in .18s ease both; }
.auth-shell { width:min(440px,100%); margin:24px auto; }
.auth-form,.student-join-form,.form-grid { display:grid; gap:13px; }
.auth-form label,.student-join-form label,.form-grid label,.assignment-builder-grid label { display:grid; gap:5px; font-size:12px; color:var(--text-soft); font-weight:700; }
.auth-form input,.student-join-form input,.form-grid input,.form-grid textarea,.assignment-builder-grid input,.assignment-builder-grid textarea {
  width:100%; min-height:39px; border:1px solid var(--border-strong); background:var(--field); color:var(--text); border-radius:4px; padding:8px 10px; font-weight:400;
}
.form-grid textarea,.assignment-builder-grid textarea { resize:vertical; }
.auth-switch { justify-self:center; }
.form-status { min-height:18px; font-size:12px; color:var(--text-soft); }
.form-status.error { color:var(--danger); }
.form-status.good { color:var(--success); }
.optional { font-weight:400; color:var(--text-soft); }

.teacher-dashboard { display:grid; grid-template-columns:218px minmax(0,1fr); gap:0; margin-top:12px; min-height:650px; border:1px solid var(--border); background:var(--surface); animation:view-enter .2s ease both; }
.classroom-sidebar { display:flex; flex-direction:column; min-width:0; padding:12px; border-right:1px solid var(--border); background:var(--surface-2); }
.teacher-profile-mini { display:flex; align-items:center; gap:10px; padding:5px 4px 14px; border-bottom:1px solid var(--border); margin-bottom:12px; }
.teacher-profile-mini > div:last-child { display:grid; min-width:0; }
.teacher-profile-mini strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.teacher-profile-mini span { font-size:11px; color:var(--text-soft); }
.teacher-avatar { width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);border:1px solid var(--border);font-weight:800;color:var(--accent);flex:0 0 auto; }
.sidebar-label { margin:16px 7px 6px; color:var(--text-soft); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.sidebar-action,.teacher-class-list button { width:100%; text-align:left; min-height:34px; border:0; border-radius:4px; background:transparent; color:var(--text); padding:7px 9px; cursor:pointer; transition:background .12s ease,color .12s ease; }
.sidebar-action:hover,.teacher-class-list button:hover { background:var(--hover); }
.sidebar-action.primary { background:var(--accent-soft); color:var(--accent); font-weight:700; border:1px solid var(--border); }
.teacher-class-list { display:grid; gap:3px; }
.teacher-class-list button { display:flex; align-items:center; gap:8px; font-size:12px; }
.teacher-class-list button.active { background:var(--surface-4); font-weight:700; }
.class-mini-dot { width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto; }
.sidebar-spacer { flex:1; min-height:40px; }
.teacher-main { min-width:0; padding:20px; }
.workspace-head { display:flex; justify-content:space-between; align-items:flex-end; gap:15px; margin-bottom:16px; }
.workspace-head h2 { margin:2px 0 0; font-size:28px; letter-spacing:-.03em; }
.teacher-overview-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:16px; }
.overview-stat { border:1px solid var(--border); background:var(--surface-2); padding:12px; display:grid; gap:2px; border-radius:4px; }
.overview-stat strong { font-size:22px; }
.overview-stat span { font-size:11px; color:var(--text-soft); }
.class-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.class-card { border:1px solid var(--border); background:var(--surface); border-radius:5px; overflow:hidden; cursor:pointer; transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease; }
.class-card:hover { transform:translateY(-2px); border-color:var(--border-strong); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.class-card-banner { height:88px; background:linear-gradient(135deg,var(--surface-4),var(--accent-soft)); background-position:center;background-size:cover; position:relative; }
.class-card-banner::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.14)); }
.class-card-body { padding:12px; }
.class-card-body h3 { margin:0 0 4px; font-size:17px; }
.class-card-body p { margin:0; color:var(--text-soft); font-size:12px; min-height:32px; }
.class-card-foot { display:flex;justify-content:space-between;gap:8px;margin-top:12px;padding-top:9px;border-top:1px solid var(--border);font-size:11px;color:var(--text-soft); }
.empty-classroom { padding:32px; border:1px dashed var(--border-strong); color:var(--text-soft); text-align:center; border-radius:5px; }
.empty-classroom strong { display:block; color:var(--text); margin-bottom:4px; }

.class-workspace { animation:panel-in .18s ease both; }
.class-hero { min-height:176px; border:1px solid var(--border); background:linear-gradient(130deg,#3f6e4d,#253a2b); background-size:cover;background-position:center; position:relative; border-radius:5px; overflow:hidden; display:flex; align-items:flex-end; justify-content:space-between; gap:15px; padding:18px; color:#fff; }
.class-hero-overlay { position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.12) 70%); }
.class-hero-content,.class-code-chip { position:relative;z-index:1; }
.class-hero-content h2 { margin:2px 0 3px; font-size:30px; letter-spacing:-.03em; }
.class-hero-content p { margin:0; opacity:.85; max-width:62ch; font-size:13px; }
.class-hero .workspace-kicker { color:#d9eee0; }
.class-code-chip { background:rgba(13,16,14,.82); border:1px solid rgba(255,255,255,.24); padding:9px 10px; min-width:132px; border-radius:4px; display:grid;grid-template-columns:1fr auto; gap:0 8px; align-items:center; backdrop-filter:blur(8px); }
.class-code-chip span { grid-column:1/-1; font-size:10px; text-transform:uppercase; letter-spacing:.1em; opacity:.75; }
.class-code-chip strong { font-size:20px;letter-spacing:.08em; }
.class-code-chip button { border:0;background:transparent;color:#fff;cursor:pointer;font-size:11px;text-decoration:underline; }
.class-tabs { display:flex; gap:3px; overflow-x:auto; border-bottom:1px solid var(--border); margin-top:12px; scrollbar-width:none; }
.class-tabs::-webkit-scrollbar{display:none}
.class-tabs button { border:0;background:transparent;color:var(--text-soft);padding:10px 12px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;font-size:12px; }
.class-tabs button:hover { color:var(--text); background:var(--surface-2); }
.class-tabs button.active { color:var(--text); border-bottom-color:var(--accent); font-weight:700; }
.class-tab-content { padding-top:15px; animation:fade-in .14s ease both; }
.tab-toolbar { display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px; }
.tab-toolbar h3 { margin:0;font-size:18px; }
.tab-toolbar-actions { display:flex;gap:6px;flex-wrap:wrap; }
.stream-composer { border:1px solid var(--border);background:var(--surface-2);padding:12px;border-radius:4px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:12px; }
.stream-composer span { color:var(--text-soft);font-size:12px; }
.stream-list { display:grid;gap:8px; }
.stream-card { border:1px solid var(--border);background:var(--surface);padding:12px;border-radius:4px;display:grid;gap:5px;animation:item-in .18s ease both; }
.stream-card-head { display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;color:var(--text-soft); }
.stream-card strong { font-size:13px; }
.stream-card p { margin:0;white-space:pre-wrap; }
.stream-card.assignment { border-left:3px solid var(--accent); }
.assignment-list,.student-roster,.points-list { display:grid;gap:7px; }
.assignment-row,.student-roster-row,.points-row { display:grid;align-items:center;gap:10px;border:1px solid var(--border);background:var(--surface);padding:10px 11px;border-radius:4px; }
.assignment-row { grid-template-columns:minmax(0,1.5fr) 115px 95px auto; }
.assignment-main { min-width:0; }
.assignment-main strong { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.assignment-main span,.assignment-meta { font-size:11px;color:var(--text-soft); }
.status-pill { display:inline-flex;align-items:center;justify-content:center;width:max-content;border:1px solid var(--border);background:var(--surface-3);padding:3px 7px;border-radius:999px;font-size:10px;font-weight:700; }
.status-pill.published { color:var(--success);background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 35%,var(--border)); }
.row-actions { display:flex;justify-content:flex-end;gap:4px; }
.icon-button { min-width:31px;min-height:29px;border:1px solid var(--border);background:var(--button);color:var(--text);border-radius:3px;cursor:pointer;padding:4px 7px;font-size:11px; }
.icon-button:hover { background:var(--hover); }
.student-roster-row { grid-template-columns:minmax(0,1fr) 88px 110px auto; }
.roster-person { display:flex;align-items:center;gap:10px;min-width:0; }
.roster-avatar,.student-avatar { width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);border:1px solid var(--border);font-size:18px;flex:0 0 auto; }
.roster-person strong { display:block; }
.roster-person span { display:block;font-size:11px;color:var(--text-soft); }
.points-value { font-weight:800;font-variant-numeric:tabular-nums; }
.points-value.positive { color:var(--success); }
.points-value.negative { color:var(--danger); }
.gradebook-wrap { overflow:auto;border:1px solid var(--border);border-radius:4px; }
.gradebook { width:100%;border-collapse:collapse;min-width:680px;font-size:12px; }
.gradebook th,.gradebook td { border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:8px;text-align:left;white-space:nowrap; }
.gradebook th { background:var(--surface-3);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft);position:sticky;top:0;z-index:1; }
.gradebook th:last-child,.gradebook td:last-child{border-right:0}
.gradebook tr:last-child td{border-bottom:0}
.grade-score { font-weight:700; }
.grade-score.low { color:var(--danger); }
.grade-score.high { color:var(--success); }
.leaderboard-card { display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid var(--border);background:var(--surface);padding:10px;border-radius:4px; }
.leaderboard-rank { width:28px;height:28px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-weight:800;font-size:11px; }
.point-log { margin-top:15px;border-top:1px solid var(--border);padding-top:12px; }
.point-log h4 { margin:0 0 8px; }
.point-log-item { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 2px;border-bottom:1px solid var(--border);font-size:11px; }
.point-log-item span { color:var(--text-soft); }
.class-settings-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.settings-card { border:1px solid var(--border);background:var(--surface-2);padding:13px;border-radius:4px; }
.settings-card h4 { margin:0 0 8px; }
.settings-card p { margin:0 0 10px;color:var(--text-soft);font-size:12px; }
.live-status { display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text-soft); }
.live-dot { width:8px;height:8px;border-radius:50%;background:#9aa49c;box-shadow:0 0 0 3px color-mix(in srgb,#9aa49c 18%,transparent); }
.live-dot.online { background:#2e7c45;box-shadow:0 0 0 3px color-mix(in srgb,#2e7c45 18%,transparent);animation:pulse-dot 1.8s ease infinite; }
.danger-zone { border-color:color-mix(in srgb,var(--danger) 35%,var(--border)); }
.danger-button { color:var(--danger)!important;border-color:color-mix(in srgb,var(--danger) 45%,var(--border))!important; }

.student-join-form { width:min(620px,100%); margin:14px auto 25px; }
.class-code-field input { text-transform:uppercase;letter-spacing:.16em;font-size:20px;font-weight:800;text-align:center; }
.student-name-grid,.two-col { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.avatar-picker { border:1px solid var(--border);padding:10px;border-radius:4px; }
.avatar-picker legend { color:var(--text-soft);font-size:11px;font-weight:700;padding:0 5px; }
.avatar-choices { display:grid;grid-template-columns:repeat(6,1fr);gap:6px; }
.avatar-choice { aspect-ratio:1;border:1px solid var(--border);background:var(--surface-2);border-radius:50%;cursor:pointer;font-size:22px;display:grid;place-items:center;transition:transform .12s ease,border-color .12s ease,background .12s ease; }
.avatar-choice:hover { transform:translateY(-1px);border-color:var(--border-strong); }
.avatar-choice.selected { border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent); }
.joined-classes-block { width:min(720px,100%);margin:0 auto; }
.joined-class-list { display:grid;gap:7px; }
.joined-class-card { border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:10px; }
.joined-class-card > div { min-width:0; }
.joined-class-card strong { display:block; }
.joined-class-card span { display:block;color:var(--text-soft);font-size:11px; }

.student-class-dashboard { animation:view-enter .18s ease both; }
.student-class-top { display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 8px; }
.student-identity { display:flex;align-items:center;gap:7px;font-size:12px; }
.student-identity > span { font-size:20px; }
.student-class-hero { min-height:120px;padding:16px;border:1px solid var(--border);border-radius:5px;background:linear-gradient(135deg,var(--surface-4),var(--accent-soft));display:flex;justify-content:space-between;align-items:flex-end;gap:10px; }
.student-class-hero h2 { margin:2px 0;font-size:26px; }
.student-class-hero p { margin:0;color:var(--text-soft); }
.student-points { min-width:105px;text-align:right; }
.student-points span { display:block;font-size:10px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em; }
.student-points strong { font-size:30px;font-variant-numeric:tabular-nums; }
.student-dashboard-grid { display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.75fr);gap:12px;margin-top:12px; }
.student-panel { border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:12px; }
.panel-head { display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px; }
.panel-head h3 { margin:0;font-size:16px; }
.panel-head span { font-size:11px;color:var(--text-soft); }
.student-assignment-list,.student-stream { display:grid;gap:7px; }
.student-assignment-card { border:1px solid var(--border);background:var(--surface-2);border-radius:4px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center; }
.student-assignment-card h4 { margin:0 0 3px;font-size:13px; }
.student-assignment-card p { margin:0;color:var(--text-soft);font-size:11px; }
.student-assignment-card .score { font-size:18px;font-weight:800; }
.student-stream-item { border-bottom:1px solid var(--border);padding:7px 0; }
.student-stream-item:last-child{border-bottom:0}
.student-stream-item strong { font-size:11px;display:block;margin-bottom:2px; }
.student-stream-item p { margin:0;font-size:12px; }
.student-stream-item span { font-size:10px;color:var(--text-soft); }

.assignment-runner { width:min(780px,100%);margin:14px auto 0;animation:view-enter .18s ease both; }
.assignment-runner-head { display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px; }
.assignment-runner-head > div { display:grid;gap:1px; }
.assignment-runner-head > div:last-child { justify-items:end; }
.assignment-runner-head span { font-size:11px;color:var(--text-soft); }
.assignment-runner-head h2 { margin:0;font-size:22px; }
.assignment-progress-track { height:5px;background:var(--surface-3);border-radius:999px;overflow:hidden;margin-bottom:12px; }
.assignment-progress-track > div { height:100%;width:0;background:var(--accent);transition:width .28s ease; }
.assignment-question-card { min-height:340px;border:1px solid var(--border);background:var(--surface);border-radius:5px;padding:20px;display:grid;align-content:start;gap:10px; }
.assignment-question-number { color:var(--text-soft);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em; }
.assignment-question-card h3 { margin:0 0 8px;font-size:20px;line-height:1.35; }
.assignment-answer-area { display:grid;gap:7px; }
.assignment-choice { display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--surface-2);border-radius:4px;padding:10px;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease; }
.assignment-choice:hover { background:var(--hover);border-color:var(--border-strong);transform:translateY(-1px); }
.assignment-choice.selected { background:var(--accent-soft);border-color:var(--accent); }
.assignment-choice input { accent-color:var(--accent); }
.assignment-type-input { width:100%;min-height:44px;border:1px solid var(--border-strong);background:var(--field);color:var(--text);padding:9px 10px;border-radius:4px; }
.assignment-runner-actions { display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px; }
.assignment-runner-actions span { color:var(--text-soft);font-size:11px; }
.assignment-result { text-align:center; }
.result-score-ring { width:130px;height:130px;border-radius:50%;border:8px solid var(--accent-soft);box-shadow:inset 0 0 0 1px var(--border);display:grid;place-content:center;margin:18px auto 12px; }
.result-score-ring strong { font-size:32px;line-height:1; }
.result-score-ring span { font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft); }
.assignment-result h2 { margin:0 0 14px; }
.assignment-result-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(520px,100%);margin:0 auto 20px; }
.assignment-result-stats > div { border:1px solid var(--border);background:var(--surface-2);padding:10px;border-radius:4px; }
.assignment-result-stats strong { display:block;font-size:18px; }
.assignment-result-stats span { display:block;font-size:10px;color:var(--text-soft); }

.app-dialog { width:min(560px,calc(100% - 24px));max-height:min(90vh,820px);padding:0;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:5px;box-shadow:var(--shadow-elevated); }
.app-dialog.wide { width:min(940px,calc(100% - 24px)); }
.app-dialog::backdrop { background:rgba(16,20,17,.52);backdrop-filter:blur(2px); }
.app-dialog-shell { margin:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:inherit; }
.dialog-head { display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border); }
.dialog-head h2 { margin:1px 0 0;font-size:20px; }
.dialog-body { padding:16px;overflow:auto; }
.dialog-actions { display:flex;justify-content:flex-end;gap:7px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface-2); }
.banner-preview { min-height:104px;border:1px dashed var(--border-strong);background:var(--surface-2);display:grid;place-items:center;color:var(--text-soft);border-radius:4px;overflow:hidden; }
.banner-preview img { width:100%;height:150px;object-fit:cover;display:block; }
.assignment-builder-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px; }
.assignment-source-column { display:grid;align-content:start;gap:12px; }
.assignment-source-panel { border:1px solid var(--border);background:var(--surface-2);border-radius:4px;min-height:390px;overflow:hidden; }
.source-tabs { display:flex;border-bottom:1px solid var(--border); }
.source-tabs button { flex:1;border:0;border-right:1px solid var(--border);background:transparent;color:var(--text-soft);padding:9px;cursor:pointer;font-size:11px; }
.source-tabs button:last-child{border-right:0}
.source-tabs button.active { background:var(--surface);color:var(--text);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent); }
.source-content { padding:10px; }
.template-list { display:grid;gap:6px;max-height:315px;overflow:auto; }
.template-choice { width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;padding:9px;cursor:pointer; }
.template-choice:hover { border-color:var(--border-strong);background:var(--hover); }
.template-choice.selected { border-color:var(--accent);background:var(--accent-soft); }
.template-choice strong { display:block;font-size:12px; }
.template-choice span { color:var(--text-soft);font-size:10px; }
.assignment-options-row { display:flex;gap:12px;flex-wrap:wrap;padding:8px 0; }
.check-line { display:flex!important;grid-template-columns:none!important;align-items:center;gap:6px!important;font-size:11px!important;font-weight:500!important;color:var(--text)!important; }
.check-line input { width:auto!important;min-height:auto!important;accent-color:var(--accent); }
.paste-tools { display:flex;align-items:center;gap:8px;margin-top:8px; }
.paste-tools span { color:var(--text-soft);font-size:10px; }
.selected-source-summary { border-top:1px solid var(--border);padding:9px 10px;font-size:11px;color:var(--text-soft);background:var(--surface); }

.toast-stack { position:fixed;right:18px;bottom:18px;display:grid;gap:7px;z-index:10000;pointer-events:none; }
.medicsmart-toast { min-width:220px;max-width:360px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);box-shadow:var(--shadow-elevated);padding:10px 12px;border-radius:4px;font-size:12px;animation:toast-in .2s ease both; }
.medicsmart-toast.good { border-left:3px solid var(--success); }
.medicsmart-toast.error { border-left:3px solid var(--danger); }

@keyframes view-enter { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:none} }
@keyframes panel-in { from{opacity:0;transform:translateY(3px)} to{opacity:1;transform:none} }
@keyframes item-in { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:none} }
@keyframes toast-in { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes pulse-dot { 0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,#2e7c45 18%,transparent)} 50%{box-shadow:0 0 0 6px transparent} }

@media (max-width:860px){
  body.classroom-mode .page-shell { width:min(100% - 18px,760px); }
  .teacher-dashboard { grid-template-columns:1fr; }
  .classroom-sidebar { border-right:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center; }
  .teacher-profile-mini { margin:0;padding:0 8px 0 0;border:0; }
  .teacher-class-list,.sidebar-label,.sidebar-spacer,#teacherDashboardHome { display:none; }
  .sidebar-action.primary { width:auto; }
  #teacherSignOut { width:auto; }
  .teacher-main { padding:14px; }
  .teacher-overview-stats { grid-template-columns:repeat(2,1fr); }
  .class-card-grid { grid-template-columns:1fr; }
  .student-dashboard-grid { grid-template-columns:1fr; }
  .assignment-builder-grid { grid-template-columns:1fr; }
}

@media (max-width:620px){
  .classroom-entry-grid { grid-template-columns:1fr; }
  .classroom-role-card { min-height:118px;padding:16px; }
  .student-name-grid,.two-col,.class-settings-grid { grid-template-columns:1fr; }
  .avatar-choices { grid-template-columns:repeat(4,1fr); }
  .teacher-overview-stats { grid-template-columns:1fr 1fr; }
  .workspace-head { align-items:center; }
  .workspace-head h2 { font-size:23px; }
  .class-hero { min-height:190px;align-items:flex-start;flex-direction:column;justify-content:flex-end; }
  .class-code-chip { min-width:0;align-self:stretch;grid-template-columns:1fr auto; }
  .class-hero-content h2 { font-size:24px; }
  .assignment-row { grid-template-columns:minmax(0,1fr) auto; }
  .assignment-row .assignment-meta:nth-of-type(1),.assignment-row .assignment-meta:nth-of-type(2){display:none}
  .student-roster-row { grid-template-columns:minmax(0,1fr) auto; }
  .student-roster-row > :nth-child(2),.student-roster-row > :nth-child(3){display:none}
  .student-class-hero { align-items:flex-start; }
  .assignment-question-card { padding:15px;min-height:300px; }
  .assignment-result-stats { grid-template-columns:1fr; }
  .classroom-sidebar { grid-template-columns:minmax(0,1fr) auto auto; }
  .teacher-profile-mini .teacher-avatar { display:none; }
  .app-dialog.wide { width:calc(100% - 14px); }
  .dialog-body { padding:12px; }
  .dialog-actions { padding:10px 12px;flex-wrap:wrap; }
}

/* V12 — responsive classroom workspace polish */
body.classroom-mode {
  background: var(--surface-2);
  min-height: 100dvh;
}
body.classroom-mode .page-shell {
  width: calc(100vw - clamp(24px, 3.2vw, 64px));
  max-width: 1720px;
  margin: clamp(10px, 1.7vh, 20px) auto 24px;
}
body.classroom-mode .topbar {
  border-radius: 6px;
  min-height: 48px;
  padding-inline: 14px 10px;
}
body.classroom-mode .brand { font-size: 19px; }
body.classroom-mode .top-actions { gap: 7px; }
body.classroom-mode .top-button,
body.classroom-mode .history-button {
  min-height: 33px;
  padding-inline: 11px;
}
.classroom-masthead {
  min-height: 86px;
  margin-block: 10px;
  border-radius: 6px;
}
.classroom-masthead h1 {
  font-size: clamp(36px, 3.1vw, 50px);
  letter-spacing: -2.5px;
}
.classroom-masthead .question-count { margin-top: 5px; }

.teacher-dashboard {
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: max(670px, calc(100dvh - 194px));
  margin-top: 10px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(17, 29, 20, .055);
}
.classroom-sidebar {
  padding: 16px 14px;
}
.teacher-profile-mini {
  gap: 11px;
  padding: 5px 5px 16px;
  margin-bottom: 14px;
}
.teacher-avatar { width: 38px; height: 38px; }
.teacher-profile-mini strong { font-size: 14px; }
.teacher-profile-mini span { font-size: 12px; }
.sidebar-label { margin: 18px 8px 7px; font-size: 10px; }
.sidebar-action,
.teacher-class-list button {
  min-height: 39px;
  padding: 9px 10px;
  font-size: 13px;
  border-radius: 5px;
}
.teacher-main {
  min-width: 0;
  padding: clamp(20px, 2vw, 32px);
}
.workspace-head { margin-bottom: 20px; }
.workspace-head h2 { font-size: clamp(27px, 2.2vw, 34px); }
.teacher-overview-stats { gap: 11px; margin-bottom: 20px; }
.overview-stat { min-height: 82px; padding: 14px; }
.overview-stat strong { font-size: 25px; }
.overview-stat span { font-size: 12px; }
.class-card-grid { grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 14px; }
.class-card-banner { height: 108px; }
.class-card-body { padding: 15px; }
.class-card-body h3 { font-size: 18px; }
.class-card-body p { font-size: 13px; }

.class-hero {
  min-height: 190px;
  padding: 22px;
  border-radius: 8px;
}
.class-hero-content h2 { font-size: clamp(29px, 2.2vw, 38px); }
.class-hero-content p { font-size: 14px; }
.class-code-chip {
  min-width: 160px;
  padding: 11px 12px;
  border-radius: 6px;
}
.class-code-chip strong { font-size: 22px; }
.class-tabs { margin-top: 14px; gap: 4px; }
.class-tabs button {
  min-height: 44px;
  padding: 11px 15px;
  font-size: 13px;
}
.class-tab-content { padding-top: 19px; }
.tab-toolbar { margin-bottom: 14px; }
.tab-toolbar h3 { font-size: 20px; }
.assignment-row,
.student-roster-row,
.points-row {
  min-height: 56px;
  padding: 12px 14px;
  border-radius: 6px;
}
.points-row { grid-template-columns: 42px minmax(0,1fr) auto auto; }
.leaderboard-rank { width: 32px; height: 32px; font-size: 12px; }
.roster-avatar,.student-avatar { width: 38px; height: 38px; }
.roster-person strong,
.points-row strong { font-size: 14px; }
.icon-button { min-height: 33px; min-width: 36px; }
.gradebook { font-size: 13px; }
.gradebook th,.gradebook td { padding: 10px 9px; }

.classroom-pane,
.student-join-form,
.student-class-hero,
.assignment-question-card,
.app-dialog {
  border-radius: 7px;
}

/* Keep notifications useful without letting them cover a whole corner. */
.toast-stack {
  right: clamp(12px, 1.6vw, 24px);
  bottom: clamp(12px, 1.6vw, 24px);
  gap: 8px;
  width: min(330px, calc(100vw - 24px));
}
.medicsmart-toast {
  min-width: 0;
  width: 100%;
  max-width: none;
  padding: 11px 13px;
  border-radius: 6px;
  font-size: 12.5px;
}

/* Large classroom/projector displays */
@media (min-width: 1380px) {
  .teacher-dashboard { grid-template-columns: 270px minmax(0,1fr); }
  .classroom-sidebar { padding: 18px 16px; }
  .teacher-main { padding: 30px 34px; }
  .class-hero { min-height: 210px; padding: 25px; }
  .class-tabs button { padding-inline: 18px; }
  .stream-card { padding: 14px; }
}

/* Normal laptops */
@media (max-width: 1100px) and (min-width: 861px) {
  body.classroom-mode .page-shell { width: calc(100vw - 24px); }
  .teacher-dashboard { grid-template-columns: 220px minmax(0,1fr); }
  .teacher-main { padding: 18px; }
  .class-hero { min-height: 170px; }
}

@media (max-width: 860px) {
  body.classroom-mode { background: var(--page); }
  body.classroom-mode .page-shell { width: calc(100% - 18px); max-width: none; margin-top: 9px; }
  .classroom-masthead { min-height: 76px; }
  .classroom-masthead h1 { font-size: clamp(32px, 8vw, 43px); }
  .teacher-dashboard { min-height: calc(100dvh - 168px); border-radius: 6px; }
  .classroom-sidebar { padding: 9px 10px; }
  .teacher-main { padding: 14px; }
  .class-tabs button { min-height: 42px; padding-inline: 12px; }
}

@media (max-width: 620px) {
  body.classroom-mode .page-shell { width: calc(100% - 12px); margin-top: 6px; }
  body.classroom-mode .topbar { min-height: 44px; padding-inline: 9px 6px; }
  body.classroom-mode .brand { font-size: 16px; }
  body.classroom-mode .top-button,
  body.classroom-mode .history-button { padding-inline: 8px; min-height: 31px; }
  .classroom-masthead { margin-block: 7px; min-height: 68px; }
  .classroom-masthead h1 { font-size: 33px; letter-spacing: -1.8px; }
  .teacher-main { padding: 11px; }
  .class-hero { min-height: 180px; padding: 16px; }
  .class-tab-content { padding-top: 13px; }
  .assignment-row,.student-roster-row,.points-row { min-height: 52px; padding: 10px; }
}
.leaderboard-card {
  grid-template-columns:42px minmax(0,1fr) auto auto;
  min-height:58px;
  padding:12px 14px;
  border-radius:6px;
}
.point-log { margin-top:20px; padding-top:16px; }
.point-log h4 { font-size:14px; margin-bottom:10px; }
.point-log-item { min-height:36px; align-items:center; padding:8px 3px; font-size:12px; }
