:root {
    color-scheme: dark;
    --bg: #0b1020;
    --surface: #11182b;
    --surface-2: #182138;
    --surface-3: #202b46;
    --border: #2c3858;
    --text: #f5f7ff;
    --muted: #9ba8c7;
    --input-bg: #0d1425;
    --sidebar-bg: rgba(13,19,35,.95);
    --card-bg: rgba(17,24,43,.92);
    --topbar-bg: rgba(11,16,32,.82);
    --empty-bg: rgba(17,24,43,.45);
    --badge-text: #cbd5ef;
    --body-glow: #1a2450;
    --code-bg: #202943;
    --primary: #0099FF;
    --primary-2: #7F00FF;
    --success: #36c98f;
    --danger: #ff6577;
    --warning: #f5b942;
    --info: #4ca7ff;
    --shadow: 0 22px 70px rgba(0,0,0,.32);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html[data-theme="light"] {
    color-scheme: light;
    --bg: #f4f6fb;
    --surface: #ffffff;
    --surface-2: #eef1f8;
    --surface-3: #e3e8f4;
    --border: #d1d8e8;
    --text: #172033;
    --muted: #68748b;
    --input-bg: #ffffff;
    --sidebar-bg: rgba(255,255,255,.96);
    --card-bg: rgba(255,255,255,.94);
    --topbar-bg: rgba(244,246,251,.88);
    --empty-bg: rgba(255,255,255,.62);
    --badge-text: #35425b;
    --body-glow: #dfe4ff;
    --code-bg: #e8ecf5;
    --shadow: 0 18px 55px rgba(53,65,95,.15);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 18% 0%, var(--body-glow) 0, transparent 34%), var(--bg); color: var(--text); }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
.hidden { display: none !important; }
.screen-center { min-height: 100vh; display: grid; place-content: center; gap: 18px; text-align: center; color: var(--muted); }
.loader { width: 42px; height: 42px; border: 4px solid #273252; border-top-color: var(--primary); border-radius: 50%; animation: spin .8s linear infinite; margin: auto; }
@keyframes spin { to { transform: rotate(360deg); } }
.brand-mark { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: linear-gradient(145deg, var(--primary), var(--primary-2)); color: #fff; font-weight: 900; font-size: 28px; box-shadow: 0 12px 30px rgba(0,153,255,.35); }
.brand-mark.small { width: 38px; height: 38px; border-radius: 12px; font-size: 19px; }
.auth-view { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 1fr) minmax(400px, 520px); align-items: center; gap: 80px; max-width: 1180px; margin: auto; padding: 44px; }
.auth-brand { display: flex; align-items: center; gap: 22px; }
.auth-brand h1 { font-size: clamp(44px, 7vw, 82px); line-height: .95; margin: 0 0 14px; letter-spacing: -4px; }
.auth-brand p { color: var(--muted); font-size: 19px; max-width: 520px; margin: 0; }
.auth-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 28px; padding: 30px; box-shadow: var(--shadow); backdrop-filter: blur(18px); }
.auth-tabs { display: flex; background: var(--input-bg); border-radius: 14px; padding: 5px; margin-bottom: 26px; }
.auth-tab { flex: 1; border: 0; background: transparent; padding: 12px 10px; border-radius: 10px; color: var(--muted); cursor: pointer; }
.auth-tab.active { background: var(--surface-3); color: var(--text); }
.auth-form { display: grid; gap: 17px; }
label { display: grid; gap: 8px; color: var(--text); font-size: 14px; font-weight: 650; }
input, textarea, select { width: 100%; border: 1px solid var(--border); background: var(--input-bg); color: var(--text); border-radius: 12px; padding: 12px 14px; outline: none; transition: .18s; }
textarea { min-height: 100px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0,153,255,.16); }
.button { border: 1px solid var(--border); background: var(--surface-2); color: var(--text); border-radius: 12px; padding: 10px 15px; cursor: pointer; font-weight: 700; transition: .18s; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.button:hover { transform: translateY(-1px); background: var(--surface-3); border-color: color-mix(in srgb, var(--primary) 28%, var(--border)); }
.button.primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.button.primary:hover { background: #0087E0; border-color: #0087E0; }
.button.success { background: var(--success); color: #071a13; border-color: var(--success); }
.button.success:hover { filter: brightness(1.05); background: var(--success); }
.button.danger { background: color-mix(in srgb, var(--danger) 15%, var(--surface)); color: var(--danger); border-color: color-mix(in srgb, var(--danger) 48%, var(--border)); }
.button.danger:hover { background: color-mix(in srgb, var(--danger) 24%, var(--surface)); border-color: var(--danger); }
.button.ghost { background: transparent; }
.button.small { padding: 7px 10px; font-size: 13px; border-radius: 9px; }
.button.wide { width: 100%; }
.demo-box { margin-top: 24px; border: 1px dashed #344264; background: var(--input-bg); border-radius: 14px; padding: 15px; display: grid; gap: 6px; color: var(--muted); font-size: 13px; }
.demo-box strong { color: var(--text); }
code { background: var(--code-bg); border-radius: 6px; padding: 2px 6px; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0,1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; background: var(--sidebar-bg); border-right: 1px solid var(--border); padding: 20px 14px; display: flex; flex-direction: column; }
.sidebar-brand { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 850; padding: 4px 10px 24px; }
.main-nav { display: grid; gap: 4px; }
.nav-button { border: 0; background: transparent; color: var(--muted); border-radius: 11px; text-align: left; padding: 11px 13px; cursor: pointer; display: flex; gap: 11px; align-items: center; font-weight: 680; }
.nav-button:hover, .nav-button.active { background: var(--surface-2); color: var(--text); }
.nav-icon { width: 23px; height: 23px; display: block; opacity: .95; flex: 0 0 23px; color: inherit; background-color: currentColor; -webkit-mask: var(--nav-icon) center / 20px 20px no-repeat; mask: var(--nav-icon) center / 20px 20px no-repeat; }
.nav-icon.design-nav { width: 27px; height: 27px; flex-basis: 27px; background-color: transparent; -webkit-mask: none; mask: none; background: var(--nav-icon-dark) center / contain no-repeat; filter: drop-shadow(0 1px 1px rgba(0,0,0,.16)); }
html[data-theme="light"] .nav-icon.design-nav { background-image: var(--nav-icon-light); }
html[data-theme="dark"] .nav-icon.design-nav { background-image: var(--nav-icon-dark); }
.nav-icon img { display: none; }
.sidebar-footer { margin-top: auto; padding: 15px 8px 4px; border-top: 1px solid var(--border); display: grid; gap: 12px; }
.sidebar-user { display: grid; gap: 3px; }
.sidebar-user strong { font-size: 14px; }
.sidebar-user span { color: var(--muted); font-size: 12px; }
.workspace { min-width: 0; }
.topbar { min-height: 104px; padding: 24px 34px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--topbar-bg); backdrop-filter: blur(12px); position: sticky; top: 0; z-index: 20; }
.topbar h1 { margin: 0; font-size: 27px; letter-spacing: -.5px; }
.topbar p { margin: 5px 0 0; color: var(--muted); }
.topbar-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.page-content { padding: 30px 34px 60px; max-width: 1500px; }
.grid { display: grid; gap: 18px; }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid.cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid.cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 18px; padding: 20px; box-shadow: 0 10px 28px rgba(0,0,0,.12); }
.card.interactive { cursor: pointer; transition: .18s; }
.card.interactive:hover { transform: translateY(-2px); border-color: #46557b; }
.card h2, .card h3 { margin: 0 0 8px; }
.card p { color: var(--muted); }
.metric { display: grid; gap: 8px; }
.metric-value { font-size: 34px; font-weight: 900; letter-spacing: -1px; }
.metric-label { color: var(--muted); font-size: 14px; }
.section { margin-top: 28px; }
.section-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 14px; }
.section-header h2 { margin: 0; font-size: 20px; }
.empty-state { border: 1px dashed #344264; border-radius: 18px; padding: 42px 22px; text-align: center; color: var(--muted); background: var(--empty-bg); }
.list { display: grid; gap: 10px; }
.list-row { display: grid; grid-template-columns: minmax(180px,1.5fr) minmax(140px,1fr) auto; align-items: center; gap: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 14px 16px; }
.list-row .sub { color: var(--muted); font-size: 13px; margin-top: 4px; }
.row-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.badge { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); background: var(--surface-2); color: var(--badge-text); padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.badge.success { background: rgba(54,201,143,.12); color: #67e3ad; border-color: rgba(54,201,143,.3); }
.badge.warning { background: rgba(245,185,66,.12); color: #f8ce79; border-color: rgba(245,185,66,.3); }
.badge.danger { background: rgba(255,101,119,.1); color: #ff93a0; border-color: rgba(255,101,119,.28); }
.badge.info { background: rgba(76,167,255,.11); color: #8cc8ff; border-color: rgba(76,167,255,.28); }
.kicker { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .9px; font-weight: 800; }
.subject-card, .group-card, .lesson-card { display: grid; gap: 12px; }
.group-code { font-size: 20px; letter-spacing: 3px; font-weight: 900; color: #aeb7ff; }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; background: rgba(2,5,13,.72); display: grid; place-items: center; padding: 24px; backdrop-filter: blur(8px); }
.modal { width: min(720px, 100%); max-height: calc(100vh - 48px); overflow: auto; border: 1px solid var(--border); background: var(--surface); border-radius: 22px; box-shadow: var(--shadow); }
.modal.large { width: min(1050px, 100%); }
.modal-header { padding: 20px 23px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; background: var(--surface); z-index: 2; }
.modal-header h2 { margin: 0; }
.icon-button { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-2); cursor: pointer; }
.modal-body { padding: 23px; }
.modal-body > [data-modal-error] { margin-top: 16px; }
.modal-footer { padding: 16px 23px 22px; display: flex; justify-content: flex-end; gap: 10px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.form-grid .full { grid-column: 1/-1; }
.checkbox-list { display: grid; gap: 8px; max-height: 240px; overflow: auto; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--input-bg); }
.checkbox-row { display: flex; align-items: center; gap: 10px; padding: 7px; color: var(--text); }
.checkbox-row input { width: auto; }
.task-builder { display: grid; gap: 14px; margin-top: 18px; }
.builder-task { border: 1px solid var(--border); background: var(--input-bg); border-radius: 16px; overflow: hidden; }
.builder-task-header { padding: 12px 14px; background: var(--surface-2); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.builder-task-body { padding: 15px; display: grid; gap: 14px; }
.options-builder { display: grid; gap: 8px; }
.option-row { display: grid; grid-template-columns: 28px 1fr auto; gap: 8px; align-items: center; }
.option-row input[type=radio], .option-row input[type=checkbox] { width: auto; }
.builder-toolbar { display: flex; flex-wrap: wrap; gap: 8px; }
.lesson-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 20px; }
.lesson-main { min-width: 0; }
.task-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.task-pill { width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); cursor: pointer; font-weight: 850; }
.task-pill.active { outline: 2px solid var(--subject-accent, var(--primary)); }
.task-pill.correct { background: rgba(54,201,143,.19); border-color: #35c98e; color: #80e5bd; }
.task-pill.incorrect { background: rgba(255,101,119,.14); border-color: #ff6577; color: #ff9ca7; }
.task-pill.submitted { background: rgba(245,185,66,.14); border-color: #f5b942; color: #f8cf7c; }
.task-card { min-height: 360px; }
.task-statement { font-size: 18px; line-height: 1.6; white-space: pre-wrap; margin: 18px 0; }
.answer-options { display: grid; gap: 10px; margin: 18px 0; }
.answer-option { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--input-bg); cursor: pointer; }
.answer-option input { width: auto; }
.feedback { margin-top: 14px; padding: 12px 14px; border-radius: 12px; }
.feedback.success { background: rgba(54,201,143,.12); color: #75e0b5; border: 1px solid rgba(54,201,143,.3); }
.feedback.danger { background: rgba(255,101,119,.1); color: #ff98a4; border: 1px solid rgba(255,101,119,.28); }
.feedback.warning { background: rgba(245,185,66,.11); color: #f7ce7c; border: 1px solid rgba(245,185,66,.28); }
.lesson-side { display: grid; gap: 14px; align-content: start; }
.progress-bar { height: 9px; background: var(--input-bg); border-radius: 999px; overflow: hidden; }
.progress-bar > span { display: block; height: 100%; background: linear-gradient(90deg,var(--subject-accent, var(--primary)),var(--success)); }
.stats-table-wrap { overflow: auto; border: 1px solid var(--border); border-radius: 16px; }
table { width: 100%; border-collapse: collapse; min-width: 650px; }
th, td { padding: 12px 13px; border-bottom: 1px solid var(--border); text-align: left; }
th { background: var(--surface-2); color: var(--text); position: sticky; top: 0; }
td.status-cell { text-align: center; min-width: 52px; font-weight: 900; }
td.status-cell.correct { background: rgba(54,201,143,.14); color: #6ee2b1; }
td.status-cell.incorrect { background: rgba(255,101,119,.09); color: #ff8f9c; }
td.status-cell.submitted { background: rgba(245,185,66,.1); color: #f5c96f; }
.attempt-list { display: grid; gap: 8px; }
.attempt { border: 1px solid var(--border); border-radius: 11px; padding: 10px 12px; background: var(--input-bg); }
.toast-root { position: fixed; right: 22px; bottom: 22px; z-index: 200; display: grid; gap: 10px; }
.toast { width: min(390px, calc(100vw - 44px)); padding: 14px 16px; border: 1px solid var(--border); background: var(--surface-2); border-radius: 13px; box-shadow: var(--shadow); animation: toast-in .2s ease-out; }
.toast.error { border-color: rgba(255,101,119,.45); }
@keyframes toast-in { from { transform: translateY(12px); opacity: 0; } }
.muted { color: var(--muted); }
.spacer { height: 8px; }
.inline { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.right { margin-left: auto; }
.pdf-frame { width: 100%; height: calc(100vh - 190px); min-height: 600px; border: 1px solid var(--border); border-radius: 16px; background: #fff; }
@media (max-width: 1050px) {
    .auth-view { grid-template-columns: 1fr; gap: 35px; max-width: 650px; }
    .auth-brand h1 { font-size: 54px; }
    .grid.cols-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .grid.cols-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .lesson-layout { grid-template-columns: 1fr; }
}

/* Alpha 24 · Homework workflow v2 */
.mc-group-picker { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--mds-border-default); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); }
.mc-group-picker legend { padding: 0 6px; font-weight: 800; }
.mc-group-picker-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mc-group-check { min-height: 52px; display: flex; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-md); background: var(--mds-surface-default); cursor: pointer; }
.mc-group-check:hover { border-color: var(--mds-border-focus); background: var(--mds-action-primary-subtle); }
.mc-group-check input { min-height: 0; }
.mc-group-check span { display: grid; gap: 2px; }
.mc-group-check small { color: var(--mds-text-tertiary); }
.mc-criteria-manager, .mc-homework-assessment { margin-top: 14px; padding: 14px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); }
.mc-criteria-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mc-chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 9px 7px 11px; border: 1px solid var(--mds-border-default); border-radius: 999px; background: var(--mds-surface-default); }
.mc-chip button { width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; color: var(--mds-text-tertiary); cursor: pointer; }
.mc-chip button:hover { background: var(--mds-action-ghost-hover); color: var(--mds-text-primary); }
.mc-photo-answer-field { display: grid; gap: 7px; margin: 12px 0; padding: 12px 14px; border: 1px dashed var(--mds-border-strong); border-radius: var(--mds-radius-md); background: var(--mds-surface-subtle); }
.mc-photo-answer-field small { color: var(--mds-text-tertiary); }
.mc-answer-photo-list, .mc-homework-answer-photos { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.mc-answer-photo { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 10px; border: 1px solid var(--mds-border-default); border-radius: var(--mds-radius-md); background: var(--mds-surface-default); }
.mc-homework-answer-photos a { width: 128px; display: grid; gap: 5px; color: var(--mds-text-secondary); font-size: 11px; }
.mc-homework-answer-photos img { width: 128px; height: 92px; object-fit: cover; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-md); background: var(--mds-surface-subtle); }
.mc-correction-callout { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 14px 0; padding: 14px 16px; border: 1px solid var(--mds-border-focus); border-radius: var(--mds-radius-lg); background: var(--mds-action-primary-subtle); }
.mc-correction-callout > div { display: grid; gap: 3px; }
.mc-correction-callout span { color: var(--mds-text-secondary); font-size: 13px; }
.seamless-page-meta { display: inline-flex; align-items: center; gap: 10px; }
.seamless-page-delete { border: 0; padding: 2px 5px; background: transparent; color: var(--mds-danger); font: inherit; cursor: pointer; }
.seamless-page-delete:hover { text-decoration: underline; }
.seamless-empty-add { margin-top: 10px; }
.mc-homework-review-v2-modal { width: min(1480px, 96vw) !important; max-width: 1480px !important; }
.mc-homework-review-v2 { min-height: 620px; display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 18px; }
.mc-submission-history { display: flex; flex-direction: column; gap: 8px; padding-right: 14px; border-right: 1px solid var(--mds-border-subtle); }
.mc-submission-history > div:first-child { display: grid; gap: 2px; margin-bottom: 4px; }
.mc-submission-history > div:first-child span { color: var(--mds-text-tertiary); font-size: 12px; }
.mc-submission-history-item { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; padding: 10px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-md); background: var(--mds-surface-default); color: var(--mds-text-primary); text-align: left; cursor: pointer; }
.mc-submission-history-item:hover, .mc-submission-history-item.active { border-color: var(--mds-border-focus); background: var(--mds-action-primary-subtle); }
.mc-submission-history-item > span { min-width: 0; display: grid; gap: 2px; }
.mc-submission-history-item > span:last-child { text-align: right; }
.mc-submission-history-item small { color: var(--mds-text-tertiary); font-size: 11px; }
.mc-submission-review-main { min-width: 0; display: grid; align-content: start; gap: 14px; }
.mc-submission-review-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 15px 16px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); }
.mc-submission-review-summary h2, .mc-submission-review-summary p { margin: 3px 0 0; }
.mc-submission-review-summary > div:last-child { display: grid; justify-items: end; gap: 7px; }
.mc-review-total { font-size: 22px; }
.mc-homework-review-task { display: grid; gap: 12px; padding: 16px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-default); }
.mc-homework-review-task > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.mc-homework-review-task h3 { margin: 3px 0 0; }
.mc-review-answer, .mc-review-reference, .mc-review-criteria { display: grid; gap: 5px; padding: 11px 12px; border-radius: var(--mds-radius-md); background: var(--mds-surface-subtle); }
.mc-review-answer > span, .mc-review-reference > span, .mc-review-criteria > span { color: var(--mds-text-tertiary); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.mc-review-reference { border-left: 3px solid var(--mds-action-primary); }
.mc-review-criteria { border-left: 3px solid var(--mds-warning); }
.mc-review-reference-image { width: max-content; font-weight: 700; }
.mc-manual-score-grid { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 12px; padding-top: 4px; }
.mc-manual-score-grid label, .mc-review-overall-comment { display: grid; gap: 6px; font-weight: 700; }
.mc-manual-score-grid textarea, .mc-review-overall-comment textarea { min-height: 82px; }
.mc-review-overall-comment { padding: 14px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); }

@media (max-width: 760px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: static; height: auto; }
    .main-nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sidebar-footer { display: none; }
    .topbar { position: static; padding: 20px; }
    .page-content { padding: 20px; }
    .grid.cols-2, .grid.cols-3, .grid.cols-4, .form-grid { grid-template-columns: 1fr; }
    .form-grid .full { grid-column: auto; }
    .list-row { grid-template-columns: 1fr; }
    .row-actions { justify-content: flex-start; }
    .auth-view { padding: 24px; }
}

.theme-toggle { position: fixed; top: 16px; right: 18px; z-index: 300; width: 42px; height: 42px; border-radius: 13px; border: 1px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; box-shadow: var(--shadow); }
.schedule-list { display: grid; gap: 12px; }
.schedule-day { display: grid; gap: 10px; }
.schedule-day > h3 { margin: 10px 0 0; color: var(--muted); font-size: 14px; text-transform: uppercase; letter-spacing: .08em; }
.schedule-item { display: grid; grid-template-columns: 94px minmax(0,1fr) auto; gap: 16px; align-items: center; border: 1px solid var(--border); border-radius: 16px; padding: 15px 17px; background: var(--surface); }
.schedule-time { font-weight: 900; font-size: 18px; }
.schedule-time small { display: block; color: var(--muted); font-size: 12px; font-weight: 600; margin-top: 4px; }
.schedule-info { min-width: 0; }
.schedule-info strong { display: block; margin-bottom: 4px; }
.schedule-info span { color: var(--muted); font-size: 13px; }
.student-monitor { display: grid; gap: 8px; }
.student-live-row { border: 1px solid var(--border); background: var(--input-bg); border-radius: 12px; padding: 11px 12px; cursor: pointer; text-align: left; color: var(--text); }
.student-live-row:hover, .student-live-row.active { border-color: var(--primary); background: var(--surface-3); }
.student-live-row strong, .student-live-row span { display: block; }
.student-live-row span { color: var(--muted); font-size: 12px; margin-top: 4px; }
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--muted); margin-right: 6px; }
.live-dot.online { background: var(--success); box-shadow: 0 0 0 4px rgba(54,201,143,.12); }
.protected-content { user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.math-content mjx-container { overflow-x: auto; overflow-y: hidden; max-width: 100%; }
.security-note { font-size: 12px; color: var(--muted); border-top: 1px solid var(--border); padding-top: 10px; margin-top: 12px; }
@media print { .protected-content { visibility: hidden !important; } }
@media (max-width:760px) { .schedule-item { grid-template-columns: 1fr; } .theme-toggle { top: 8px; right: 8px; } }

.builder-order { display: flex; align-items: center; gap: 7px; }
.builder-order .icon-button:disabled { opacity: .35; cursor: default; }
.builder-material { border-style: dashed; }
.builder-material .builder-task-header { background: linear-gradient(90deg, rgba(0,153,255,.12), rgba(127,0,255,.10)); }
.builder-add-panel { border: 1px dashed var(--border); border-radius: 16px; padding: 16px; display: grid; gap: 12px; background: var(--empty-bg); }
.lesson-material { margin: 14px 0; }
.material-text { white-space: pre-wrap; line-height: 1.65; font-size: 17px; }
.material-image { display: block; max-width: 100%; max-height: 680px; margin: 12px auto 0; border-radius: 12px; }
.material-pdf { width: 100%; height: 620px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.teacher-comment { margin-top: 15px; border-left: 4px solid var(--primary); background: rgba(0,153,255,.08); padding: 13px 15px; border-radius: 0 12px 12px 0; display: grid; gap: 6px; }
.writing-actions { margin: 16px 0; }
.writing-backdrop { padding: 10px; }
.writing-modal { width: min(1500px, 100%); height: calc(100vh - 20px); background: var(--surface); border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow); overflow: hidden; display: grid; grid-template-rows: auto auto auto minmax(0,1fr); }
.writing-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 17px; border-bottom: 1px solid var(--border); }
.writing-header > div { display: grid; gap: 3px; }
.writing-header span { color: var(--muted); font-size: 12px; }
.writing-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 9px 13px; background: var(--input-bg); border-bottom: 1px solid var(--border); }
.writing-tab { white-space: nowrap; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); border-radius: 10px; padding: 8px 12px; cursor: pointer; }
.writing-tab.active { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(0,153,255,.15); }
.writing-toolbar { padding: 9px 13px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-bottom: 1px solid var(--border); }
.writing-toolbar .button.active { border-color: var(--primary); background: rgba(0,153,255,.13); }
.writing-colors { display: flex; gap: 5px; align-items: center; }
.writing-colors button { width: 28px; height: 28px; padding: 0; border-radius: 50%; border: 2px solid var(--surface); outline: 1px solid var(--border); background: var(--swatch); cursor: pointer; }
.writing-colors button.active { outline: 3px solid var(--primary); }
.writing-width { display: flex; grid-auto-flow: column; align-items: center; gap: 7px; white-space: nowrap; }
.writing-width input { width: 110px; padding: 0; }
.writing-stage { min-height: 0; overflow: auto; position: relative; display: grid; place-items: start center; padding: 20px; background: #d8dce5; }
.writing-stage > img, .writing-stage > canvas { width: min(100%, 1280px); aspect-ratio: 16/9; grid-area: 1/1; border-radius: 4px; box-shadow: 0 8px 30px rgba(0,0,0,.20); }
.writing-stage > img { display: block; background: #fff; pointer-events: none; }
.writing-stage > canvas { touch-action: none; cursor: crosshair; }
.writing-readonly { grid-area: 1/1; align-self: start; justify-self: end; z-index: 4; margin: 12px; padding: 7px 10px; border-radius: 9px; background: rgba(17,24,43,.84); color: #fff; font-weight: 700; font-size: 12px; pointer-events: none; }
@media (max-width: 760px) {
    .writing-backdrop { padding: 0; }
    .writing-modal { height: 100vh; border-radius: 0; }
    .writing-toolbar { align-items: stretch; }
    .writing-stage { padding: 8px; }
    .material-pdf { height: 480px; }
}

.board-modal { grid-template-rows: auto auto minmax(0,1fr); }
.board-page-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--border); background: var(--input-bg); padding-right: 12px; }
.board-page-bar .writing-tabs { flex: 1; border-bottom: 0; background: transparent; min-width: 0; }
.board-content { min-height: 0; overflow: auto; display: flex; flex-direction: column; }
.board-settings { display: grid; grid-template-columns: minmax(220px,1fr) auto auto auto; gap: 10px; align-items: end; padding: 11px 13px; border-bottom: 1px solid var(--border); }
.board-settings .checkbox-row { align-self: center; margin-bottom: 7px; }
.board-view-label { padding: 10px 14px; color: var(--muted); border-bottom: 1px solid var(--border); }
.board-code-head { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 14px; align-items: end; padding: 12px 14px; }
.board-code-editor { flex: 1; min-height: 70vh; border-radius: 0; border-left: 0; border-right: 0; border-bottom: 0; font-family: "Cascadia Code", "JetBrains Mono", Consolas, monospace; font-size: 16px; line-height: 1.55; tab-size: 4; resize: vertical; white-space: pre; overflow: auto; }
.board-writing-toolbar { flex: 0 0 auto; }
.board-writing-stage { flex: 1; }
@media (max-width: 860px) {
    .board-page-bar { align-items: stretch; flex-direction: column; padding: 0 10px 10px; }
    .board-settings { grid-template-columns: 1fr; }
    .board-code-head { grid-template-columns: 1fr; }
}


/* Alpha 7: subject-centric navigation, role-aware administration, and persistent post-lesson work */
.button.context-primary, .button.subject-primary { background: var(--subject-accent, var(--event-color, var(--primary))); border-color: transparent; color: #fff; }
.button.context-primary:hover, .button.subject-primary:hover { filter: brightness(1.06); background: var(--subject-accent, var(--event-color, var(--primary))); border-color: transparent; }
.subject-card { border-top: 4px solid var(--subject-accent, var(--primary)); }
.subject-swatch { width: 18px; height: 18px; border-radius: 6px; background: var(--subject-accent, var(--primary)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--subject-accent, var(--primary)) 18%, transparent); }
.calendar-shell { display: grid; gap: 16px; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.calendar-navigation, .calendar-view-toggle { display: flex; align-items: center; gap: 9px; }
.calendar-period { color: var(--muted); font-weight: 800; margin-left: 4px; }
.calendar-view-toggle { border: 1px solid var(--border); border-radius: 13px; padding: 5px; background: var(--surface); }
.calendar-view-toggle button { min-width: 92px; border: 0; background: transparent; color: var(--muted); border-radius: 9px; padding: 10px 14px; cursor: pointer; font-weight: 800; }
.calendar-view-toggle button.active { background: var(--surface-3); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); }
.calendar-week, .calendar-month { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.calendar-weekday { color: var(--muted); font-size: 13px; font-weight: 850; text-transform: uppercase; padding: 0 12px; }
.calendar-day { min-width: 0; border: 1px solid var(--border); border-radius: 15px; background: var(--card-bg); padding: 13px; display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.calendar-week .calendar-day { min-height: 350px; }
.calendar-month .calendar-day { min-height: 132px; padding: 10px; }
.calendar-day.today { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0,153,255,.14); }
.calendar-day.outside { opacity: .48; }
.calendar-day-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.calendar-day-name { color: var(--muted); font-size: 12px; font-weight: 850; text-transform: uppercase; }
.calendar-day-number { font-size: 24px; font-weight: 900; }
.calendar-month .calendar-day-number { font-size: 15px; }
.calendar-events { display: grid; gap: 8px; min-height: 0; overflow: auto; }
.calendar-empty { color: var(--muted); opacity: .72; font-size: 13px; padding: 16px 2px; }
.calendar-event { --event-color: var(--primary); border: 1px solid color-mix(in srgb, var(--event-color) 34%, var(--border)); border-left: 4px solid var(--event-color); border-radius: 11px; padding: 10px; background: color-mix(in srgb, var(--event-color) 9%, var(--surface)); display: grid; gap: 5px; min-width: 0; }
.calendar-event strong { overflow: hidden; text-overflow: ellipsis; }
.calendar-event-time { color: var(--event-color); font-size: 12px; font-weight: 900; }
.calendar-event-meta { color: var(--muted); font-size: 12px; }
.calendar-event-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 3px; }
.calendar-month .calendar-event { padding: 7px; gap: 2px; }
.calendar-month .calendar-event-actions { display: none; }
.calendar-add-day { margin-top: auto; border: 1px dashed var(--border); background: transparent; color: var(--muted); border-radius: 9px; padding: 8px; cursor: pointer; }
.live-draft { border: 1px solid rgba(0,153,255,.32); border-left: 4px solid var(--primary); background: rgba(0,153,255,.08); border-radius: 0 12px 12px 0; padding: 13px 15px; margin: 14px 0; display: grid; gap: 7px; }
.live-draft-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 16px; line-height: 1.5; }
.workspace-toggle { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.seamless-writing { margin-top: 18px; display: grid; gap: 12px; }
.seamless-writing-head { position: sticky; top: 104px; z-index: 12; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--border); border-radius: 14px; background: var(--topbar-bg); backdrop-filter: blur(12px); }
.seamless-writing-toolbar { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.seamless-writing-toolbar .button.active { border-color: var(--subject-accent, var(--primary)); background: color-mix(in srgb, var(--subject-accent, var(--primary)) 13%, transparent); }
.seamless-document { display: grid; gap: 24px; padding: 22px; border-radius: 16px; background: #dfe3eb; border: 1px solid var(--border); }
.seamless-page { display: grid; gap: 8px; width: min(100%, 1280px); margin: 0 auto; }
.seamless-page-label { display: flex; justify-content: space-between; gap: 10px; color: #475569; font-size: 12px; font-weight: 800; }
.seamless-page-stage { display: grid; position: relative; width: 100%; aspect-ratio: 16 / 9; background: #fff; box-shadow: 0 8px 30px rgba(0,0,0,.18); }
.seamless-page-stage > img, .seamless-page-stage > canvas { grid-area: 1 / 1; width: 100%; height: 100%; display: block; }
.seamless-page-stage > img { pointer-events: none; }
.seamless-page-stage > canvas { touch-action: none; cursor: crosshair; }
.seamless-page.readonly .seamless-page-stage > canvas { cursor: default; }
.seamless-empty { min-height: 360px; display: grid; place-content: center; text-align: center; color: #64748b; }
.board-inline { display: grid; gap: 18px; }
.board-inline-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.board-code-page { border: 1px solid var(--border); border-radius: 16px; overflow: hidden; background: var(--surface); }
.board-code-page header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid var(--border); }
.board-code-page textarea { min-height: 520px; border: 0; border-radius: 0; font-family: "Cascadia Code", Consolas, monospace; line-height: 1.55; resize: vertical; }
@media (max-width: 1000px) {
    .calendar-week, .calendar-month { overflow-x: auto; grid-template-columns: repeat(7, minmax(190px, 1fr)); }
    .calendar-month { grid-template-columns: repeat(7, minmax(150px, 1fr)); }
    .seamless-writing-head { top: 0; position: relative; }
}

/* Alpha 9: consolidated dashboard navigation and immersive lesson workspace */
.app-shell, .sidebar { transition: grid-template-columns .22s ease, width .22s ease, padding .22s ease, opacity .18s ease; }
body.lesson-mode .page-content { max-width: none; }
body.lesson-mode .workspace { width: 100%; }
body.lesson-sidebar-collapsed .app-shell { grid-template-columns: 0 minmax(0,1fr); }
body.lesson-sidebar-collapsed .sidebar { width: 0; min-width: 0; padding-left: 0; padding-right: 0; border-right: 0; overflow: hidden; opacity: 0; pointer-events: none; }
body.lesson-sidebar-collapsed .page-content { padding-left: 22px; padding-right: 22px; }
body.lesson-sidebar-collapsed .lesson-layout { grid-template-columns: minmax(0,1fr) 360px; }
#appView:fullscreen { overflow: auto; background: radial-gradient(circle at 18% 0%, var(--body-glow) 0, transparent 34%), var(--bg); }
#appView:fullscreen .topbar { top: 0; }
.lesson-chrome-button span:first-child { font-size: 17px; line-height: 1; }
.calendar-event.is-completed { opacity: .9; }
.calendar-event-status { display: inline-flex; width: fit-content; margin-top: 5px; padding: 3px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.calendar-event-status.active { color: #7ce6bb; background: rgba(54,201,143,.14); }
.calendar-event-status.completed { color: var(--muted); background: var(--surface-2); }
.calendar-event-status.course { color: #b9a7ff; background: rgba(127,0,255,.14); }
@media (max-width: 760px) {
    body.lesson-sidebar-collapsed .app-shell { grid-template-columns: 1fr; }
    body.lesson-sidebar-collapsed .sidebar { display: none; }
    .lesson-chrome-button span:last-child { display: none; }
}

/* Alpha 7: lesson explorer, full writing toolbar, responsive history boards, and refined action hierarchy */
.lesson-explorer { border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: var(--card-bg); box-shadow: var(--shadow); }
.explorer-toolbar { min-height: 62px; padding: 12px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.breadcrumbs { display: flex; align-items: center; gap: 7px; min-width: 0; flex-wrap: wrap; }
.breadcrumbs button { border: 0; background: transparent; color: var(--primary); font-weight: 800; padding: 5px 3px; cursor: pointer; }
.breadcrumbs span { color: var(--muted); }
.explorer-header { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 15px; padding: 9px 18px; background: var(--surface-2); color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.explorer-body { display: grid; }
.explorer-row { min-height: 66px; border-bottom: 1px solid var(--border); display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 7px 13px; background: transparent; color: var(--text); text-align: left; }
.explorer-row:last-child { border-bottom: 0; }
.explorer-row:hover { background: var(--surface-2); }
.explorer-row.folder[data-folder-up] { width: 100%; border-top: 0; border-left: 0; border-right: 0; cursor: pointer; }
.explorer-main { display: grid; grid-template-columns: 46px minmax(0,1fr); align-items: center; gap: 12px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; min-width: 0; padding: 4px; }
.explorer-main span:last-child, .explorer-row > span:nth-child(2) { display: grid; min-width: 0; gap: 4px; }
.explorer-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.explorer-main small, .explorer-row small { color: var(--muted); }
.explorer-icon { width: 38px; height: 38px; display: grid; place-items: center; color: #f4b740; }
.explorer-icon.lesson-file { color: var(--subject-accent, var(--primary)); }
.explorer-icon svg, .icon-button svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.danger-icon { color: var(--danger); }
.member-manage-list { display: grid; gap: 8px; }
.member-manage-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; }
.member-manage-row > span { display: grid; gap: 3px; }
.member-manage-row small { color: var(--muted); }

.group-explorer { border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: var(--card-bg); }
.group-tree-node { border-bottom: 1px solid var(--border); }
.group-tree-node:last-child { border-bottom: 0; }
.group-tree-row { min-height: 64px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 10px 14px; }
.group-tree-row:hover { background: var(--surface-2); }
.group-tree-row.subject { border-left: 4px solid var(--tree-color, var(--primary)); background: color-mix(in srgb, var(--tree-color, var(--primary)) 7%, var(--surface)); }
.group-tree-row.group { padding-left: 36px; background: color-mix(in srgb, var(--surface-2) 55%, transparent); }
.group-tree-row.student { padding-left: 70px; min-height: 54px; }
.group-tree-main { min-width: 0; display: flex; align-items: center; gap: 11px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; padding: 5px; }
.group-tree-main.static { cursor: default; }
.group-tree-chevron { width: 22px; color: var(--muted); font-weight: 900; transition: transform .16s; }
.group-tree-main.open .group-tree-chevron { transform: rotate(90deg); }
.group-tree-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--tree-color, var(--primary)); background: color-mix(in srgb, var(--tree-color, var(--primary)) 13%, transparent); font-weight: 900; }
.group-tree-icon.design-entity-icon::before { content: ""; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--entity-icon) center / contain no-repeat; mask: var(--entity-icon) center / contain no-repeat; }
.group-tree-label { min-width: 0; display: grid; gap: 3px; }
.group-tree-label strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-tree-label small { color: var(--muted); }
.group-tree-children { border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent); }
.group-tree-empty { padding: 15px 70px; color: var(--muted); background: var(--surface); }
@media (max-width: 760px) {
    .group-tree-row { grid-template-columns: 1fr; }
    .group-tree-row.group { padding-left: 22px; }
    .group-tree-row.student { padding-left: 38px; }
    .group-tree-row .row-actions { justify-content: flex-start; padding-left: 44px; }
}

.admin-storage-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.admin-path { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; color: var(--muted); }
.admin-table-wrap { overflow: auto; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.admin-table { width: 100%; border-collapse: collapse; min-width: 780px; }
.admin-table th, .admin-table td { padding: 12px 14px; border-bottom: 1px solid var(--border); text-align: left; white-space: nowrap; }
.admin-table th { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .55px; background: var(--surface-2); position: sticky; top: 0; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-user-main { display: grid; gap: 3px; }
.admin-user-main small { color: var(--muted); }
.admin-storage-note { padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--info) 36%, var(--border)); background: color-mix(in srgb, var(--info) 8%, var(--surface)); border-radius: 14px; color: var(--muted); }
@media (max-width: 1050px) { .admin-storage-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .admin-storage-grid { grid-template-columns: 1fr; } }

.writing-editor-layout { display: grid; grid-template-columns: 62px minmax(0,1fr); gap: 12px; align-items: start; width: 100%; min-width: 0; }
.writing-editor-layout.no-toolbar { grid-template-columns: minmax(0,1fr); }
.board-inline, .board-inline > *, #attemptPanel, #attemptPanel > * { width: 100%; min-width: 0; }
.board-inline .seamless-writing, #attemptPanel .seamless-writing { width: 100%; min-width: 0; }
.board-inline .seamless-document, #attemptPanel .seamless-document { width: 100%; min-width: 0; }
.writing-icon-rail { position: sticky; top: 170px; z-index: 15; width: 62px; max-height: calc(100vh - 190px); overflow-y: auto; display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 7px; border: 1px solid var(--border); border-radius: 14px; background: var(--card-bg); box-shadow: 0 8px 24px rgba(0,0,0,.18); scrollbar-width: thin; }
.writing-tool-button { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--text); cursor: pointer; padding: 8px; transition: .15s; }
.writing-tool-button:hover { background: var(--surface-2); border-color: var(--border); }
.writing-tool-button.active { color: var(--subject-accent, var(--primary)); background: color-mix(in srgb, var(--subject-accent, var(--primary)) 13%, transparent); border-color: color-mix(in srgb, var(--subject-accent, var(--primary)) 45%, var(--border)); }
.writing-tool-button.danger { color: var(--danger); }
.writing-tool-button.add { margin-top: 2px; color: #fff; background: var(--subject-accent, var(--primary)); }
.writing-tool-button svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.writing-tool-separator { width: 34px; height: 1px; flex: 0 0 1px; background: var(--border); margin: 3px 0; }
.writing-color-control { width: 46px; display: grid; gap: 3px; place-items: center; }
.writing-color-control span { width: 31px; height: 8px; border-radius: 999px; background: var(--writing-current-color, #111111); border: 1px solid var(--border); }
.writing-color-control input { width: 46px; padding: 4px 2px; border-radius: 7px; text-align: center; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.writing-size-control { width: 44px; height: 70px; display: grid; place-items: center; overflow: hidden; }
.writing-size-control input { width: 64px; transform: rotate(-90deg); padding: 0; }
.writing-editor-layout .seamless-document { min-width: 0; overflow: auto; max-height: none; }
.seamless-page-stage { background-color: #fff; background-image: linear-gradient(#e3e7ed 1px, transparent 1px), linear-gradient(90deg, #e3e7ed 1px, transparent 1px); background-size: 28px 28px; }
.seamless-page-stage > img.template-failed { display: none; }
.seamless-page-stage > canvas { cursor: crosshair; }
.seamless-writing[data-active-tool="pointer"] canvas { cursor: default; }
.seamless-writing[data-active-tool="hand"] canvas { cursor: grab; }
.seamless-writing[data-active-tool="hand"] canvas:active { cursor: grabbing; }
.seamless-writing[data-active-tool="text"] canvas { cursor: text; }
.seamless-writing[data-active-tool="eraser"] canvas { cursor: cell; }

@media (max-width: 900px) {
    .writing-editor-layout { grid-template-columns: 1fr; }
    .writing-icon-rail { position: sticky; top: 0; width: 100%; height: auto; max-height: none; flex-direction: row; overflow-x: auto; overflow-y: hidden; justify-content: flex-start; border-radius: 12px; }
    .writing-tool-separator { width: 1px; height: 32px; flex: 0 0 1px; margin: 0 3px; }
    .writing-size-control { width: 76px; height: 44px; }
    .writing-size-control input { transform: none; width: 72px; }
    .explorer-row { grid-template-columns: minmax(0,1fr); }
    .explorer-row .row-actions { justify-content: flex-end; }
}

.stats-explorer { border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: var(--card-bg); }
.stats-folder-row, .stats-lesson-row { width: 100%; min-height: 70px; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 11px 15px; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.stats-folder-row:last-child, .stats-lesson-row:last-child { border-bottom: 0; }
.stats-folder-row:hover, .stats-lesson-row:hover { background: var(--surface-2); }
.stats-folder-icon { width: 40px; height: 34px; border-radius: 7px; display: grid; place-items: center; background: color-mix(in srgb, var(--folder-color, var(--primary)) 18%, transparent); color: var(--folder-color, var(--primary)); font-size: 24px; }
.stats-row-main { min-width: 0; display: grid; gap: 4px; }
.stats-row-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stats-row-main small { color: var(--muted); }
.stats-breadcrumbs { display: flex; align-items: center; gap: 8px; padding: 13px 15px; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.stats-breadcrumbs button { border: 0; background: transparent; color: var(--primary); font-weight: 850; cursor: pointer; padding: 3px; }
.session-log { display: grid; gap: 8px; }
.session-log-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 14px 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.session-log-main { min-width: 0; display: grid; gap: 5px; }
.session-log-main strong { font-size: 16px; }
.session-log-main span { color: var(--muted); font-size: 13px; }
.session-subject-mark { display: inline-block; width: 10px; height: 10px; border-radius: 3px; background: var(--subject-color, var(--primary)); margin-right: 7px; }
@media (max-width: 760px) {
    .stats-folder-row, .stats-lesson-row { grid-template-columns: 42px minmax(0,1fr); }
    .stats-folder-row .row-actions, .stats-lesson-row .row-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .session-log-row { grid-template-columns: 1fr; }
}
.course-explorer { display: grid; gap: 14px; }
.course-subject-block { border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: var(--card-bg); }
.course-subject-head { display: flex; align-items: center; gap: 12px; padding: 15px 17px; background: var(--surface-2); border-bottom: 1px solid var(--border); }
.course-subject-dot { width: 12px; height: 12px; border-radius: 4px; background: var(--course-color, var(--primary)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--course-color, var(--primary)) 14%, transparent); }
.course-list { display: grid; }
.course-row { border-bottom: 1px solid var(--border); }
.course-row:last-child { border-bottom: 0; }
.course-row-main { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 15px 17px; }
.course-row-info { min-width: 0; display: grid; gap: 5px; }
.course-row-info strong { font-size: 17px; }
.course-row-info small { color: var(--muted); }
.course-assignment-list { margin: 0 17px 16px; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.course-assignment-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--border); background: var(--input-bg); }
.course-assignment-row:last-child { border-bottom: 0; }
.course-assignment-row small { color: var(--muted); display: block; margin-top: 3px; }
.course-builder { display: grid; gap: 14px; }
.course-module-card { border: 1px solid var(--border); border-radius: 16px; overflow: hidden; background: var(--surface); }
.course-module-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; background: var(--surface-2); border-bottom: 1px solid var(--border); }
.course-module-body { padding: 14px; display: grid; gap: 12px; }
.course-module-body .form-grid { margin: 0; }
.course-template-note { padding: 13px 15px; border: 1px solid color-mix(in srgb, var(--primary) 30%, var(--border)); border-radius: 14px; background: color-mix(in srgb, var(--primary) 8%, var(--surface)); color: var(--muted); }
.course-activities { display: grid; gap: 12px; margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--border); }
.course-activities .section-header { margin: 0; align-items: flex-start; }
.course-activity-row { display: grid; gap: 10px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: var(--input-bg); }
.course-activity-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.course-activity-type { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.course-activity-type.theory { color: #6d36d8; background: rgba(127,0,255,.12); }
.course-activity-type.practice { color: #0079c9; background: rgba(0,153,255,.12); }
.course-activity-type.additional { color: #a75d00; background: rgba(255,153,0,.14); }
.form-grid.compact { gap: 10px; }
.course-student-list { display: grid; gap: 8px; margin-top: 12px; }
.course-student-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 11px 13px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
.course-student-row small { display: block; color: var(--muted); margin-top: 3px; }
@media (max-width:760px) {
    .course-row-main, .course-assignment-row, .course-student-row { grid-template-columns: 1fr; }
    .course-row-main .row-actions, .course-assignment-row .row-actions { justify-content: flex-start; }
}


/* Martynov Design System 1.0 — этап 1 интеграции */
:root {
    --bg: var(--mds-surface-canvas);
    --surface: var(--mds-surface-default);
    --surface-2: var(--mds-surface-subtle);
    --surface-3: var(--mds-surface-sunken);
    --border: var(--mds-border-default);
    --text: var(--mds-text-primary);
    --muted: var(--mds-text-secondary);
    --input-bg: var(--mds-surface-default);
    --sidebar-bg: var(--mds-surface-default);
    --card-bg: var(--mds-surface-default);
    --topbar-bg: color-mix(in srgb, var(--mds-surface-canvas) 88%, transparent);
    --empty-bg: var(--mds-surface-subtle);
    --badge-text: var(--mds-text-secondary);
    --body-glow: transparent;
    --code-bg: var(--mds-surface-subtle);
    --primary: var(--mds-action-primary);
    --success: var(--mds-success);
    --danger: var(--mds-danger);
    --warning: var(--mds-warning);
    --info: var(--mds-info);
    --shadow: var(--mds-shadow-lg);
    font-family: var(--mds-font-sans);
}
body { background: var(--mds-surface-canvas); color: var(--mds-text-primary); }
::selection { background: var(--mds-selection); }
:focus-visible { outline: 3px solid var(--mds-focus-ring); outline-offset: 2px; }
.brand-mark { background: var(--mds-action-primary-subtle); border: 1px solid color-mix(in srgb, var(--mds-action-primary) 26%, var(--mds-border-default)); box-shadow: var(--mds-shadow-sm); }
.brand-mark img { width: 72%; height: 72%; display: block; }
.brand-mark.small img { width: 74%; height: 74%; }
.auth-card, .card, .modal, .course-subject-block, .stats-explorer, .admin-table-wrap { background: var(--mds-surface-default); border-color: var(--mds-border-subtle); box-shadow: var(--mds-shadow-sm); }
.sidebar { width: 264px; background: var(--mds-surface-default); border-right-color: var(--mds-border-subtle); }
.app-shell { grid-template-columns: 264px minmax(0,1fr); }
.topbar { background: var(--topbar-bg); border-bottom-color: var(--mds-border-subtle); }
.button { min-height: var(--mds-control-md); border-radius: var(--mds-radius-md); border-color: var(--mds-border-default); background: var(--mds-action-secondary); color: var(--mds-text-primary); font-weight: 600; transition: background var(--mds-motion-normal) var(--mds-easing), border-color var(--mds-motion-normal) var(--mds-easing), transform var(--mds-motion-fast) var(--mds-easing); }
.button:hover { transform: none; background: var(--mds-action-secondary-hover); border-color: var(--mds-border-strong); }
.button:active { transform: translateY(1px); }
.button.primary { background: var(--mds-action-primary); border-color: var(--mds-action-primary); color: #fff; }
.button.primary:hover { background: var(--mds-action-primary-hover); border-color: var(--mds-action-primary-hover); }
.button.primary:active { background: var(--mds-action-primary-pressed); }
.button.ghost { background: transparent; color: var(--mds-text-secondary); }
.button.ghost:hover { background: var(--mds-action-ghost-hover); color: var(--mds-text-primary); }
.button.danger { background: var(--mds-danger-subtle); color: var(--mds-danger); border-color: color-mix(in srgb, var(--mds-danger) 35%, var(--mds-border-default)); }
.button.small { min-height: var(--mds-control-sm); border-radius: var(--mds-radius-sm); }
input, textarea, select { min-height: var(--mds-control-md); border-radius: var(--mds-radius-md); border-color: var(--mds-border-default); background: var(--mds-surface-default); color: var(--mds-text-primary); }
input:hover, textarea:hover, select:hover { border-color: var(--mds-border-strong); }
input:focus, textarea:focus, select:focus { border-color: var(--mds-border-focus); box-shadow: 0 0 0 3px var(--mds-focus-ring); }
.card { border-radius: var(--mds-radius-lg); }
.nav-button { min-height: var(--mds-control-md); border-radius: var(--mds-radius-md); color: var(--mds-text-secondary); }
.nav-button:hover { background: var(--mds-action-ghost-hover); color: var(--mds-text-primary); }
.nav-button.active { background: var(--mds-action-primary-subtle); color: var(--mds-action-primary); }
.badge { background: var(--mds-surface-subtle); color: var(--mds-text-secondary); border-color: var(--mds-border-subtle); }
.modal { border-radius: var(--mds-radius-xl); box-shadow: var(--mds-shadow-lg); }
.modal-backdrop { background: var(--mds-surface-overlay); }
.group-course-section { border-top: 1px solid var(--mds-border-subtle); border-bottom: 1px solid var(--mds-border-subtle); background: var(--mds-surface-default); }
.group-course-heading { padding: 10px 70px 6px; color: var(--mds-text-tertiary); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.group-course-row { min-height: 62px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 10px 14px 10px 70px; border-top: 1px solid var(--mds-border-subtle); }
.group-course-row:hover { background: var(--mds-action-ghost-hover); }
.group-course-main { min-width: 0; display: flex; align-items: center; gap: 11px; }
.group-course-empty { padding: 13px 70px; color: var(--mds-text-tertiary); border-top: 1px solid var(--mds-border-subtle); }
.course-assignment-editor-note { display: grid; gap: 5px; padding: var(--mds-space-3) var(--mds-space-4); border: 1px solid var(--mds-border-default); border-radius: var(--mds-radius-md); background: var(--mds-action-primary-subtle); }
.course-assignment-editor-note span { color: var(--mds-text-secondary); font-size: 13px; }
.theory-editor { display: grid; gap: var(--mds-space-4); margin-top: var(--mds-space-3); padding: var(--mds-space-4); border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); }
.theory-editor h5 { margin: 0; font-size: 15px; }
.theory-editor textarea { min-height: 86px; }
.theory-view { display: grid; gap: 22px; }
.theory-view-head { display: flex; flex-wrap: wrap; gap: 8px; }
.theory-text { padding: 20px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); font-size: 16px; line-height: 1.65; }
.theory-view section { display: grid; gap: 12px; }
.theory-view section h3 { margin: 0; }
.theory-links { display: grid; gap: 10px; }
.theory-link-card { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 12px; padding: 13px 14px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-md); background: var(--mds-surface-default); }
.theory-link-card:hover { border-color: var(--mds-border-focus); background: var(--mds-action-primary-subtle); }
.theory-link-card span:last-child { min-width: 0; display: grid; gap: 3px; }
.theory-link-card small { overflow: hidden; color: var(--mds-text-tertiary); text-overflow: ellipsis; white-space: nowrap; }
.theory-quiz { padding: 18px; border: 1px solid var(--mds-border-subtle); border-radius: var(--mds-radius-lg); background: var(--mds-surface-subtle); }
.theory-question { gap: 7px; }
.mc-icon { width: 22px; height: 22px; display: inline-block; background: currentColor; mask-repeat: no-repeat; mask-position: center; mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain; }
.mc-icon-play { mask-image: url('/design/icons/play.svg'); -webkit-mask-image: url('/design/icons/play.svg'); }
.mc-icon-document { mask-image: url('/design/icons/document.svg'); -webkit-mask-image: url('/design/icons/document.svg'); }

@media (max-width: 760px) {
    .mc-homework-review-v2 { grid-template-columns: 1fr; }
    .mc-submission-history { border-right: 0; border-bottom: 1px solid var(--mds-border-subtle); padding: 0 0 12px; }
    .mc-manual-score-grid { grid-template-columns: 1fr; }
    .mc-correction-callout, .mc-group-picker-actions, .mc-submission-review-summary { align-items: stretch; flex-direction: column; }
    .mc-submission-review-summary > div:last-child { justify-items: start; }
    .group-course-row { grid-template-columns: 1fr; padding-left: 38px; }
    .group-course-heading, .group-course-empty { padding-left: 38px; }
    .app-shell { grid-template-columns: 1fr; }
}

/* Alpha 27: stable calendars, subject accents and inline CloudText-style review */
.modal { display:flex; flex-direction:column; overflow:hidden; }
.modal-header, .modal-footer { flex:0 0 auto; background:var(--mds-surface-default); }
.modal-body { min-height:0; overflow:auto; }
.modal-footer { position:sticky; bottom:0; z-index:8; border-top:1px solid var(--mds-border-subtle); }
.calendar-month { display:grid !important; grid-template-columns:repeat(7,minmax(0,1fr)); align-items:stretch; width:100%; min-width:0; }
.calendar-month > * { min-width:0; }
.calendar-month .calendar-day { min-height:132px; overflow:hidden; }
.calendar-month .calendar-events { overflow:hidden; }
.calendar-month .calendar-event { min-width:0; }
.calendar-month .calendar-event-meta { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.calendar-month .calendar-event-actions { display:none; }
.subject-accent-scope { --subject-accent:#0099FF; }
.subject-accent-scope .mc-lesson-icon,
.subject-accent-scope .mc-preview-icon,
.subject-accent-scope .mc-subject-colored-icon,
.subject-accent-scope .mc-subject-value { color:var(--subject-accent); }
.subject-accent-scope .mc-lesson-icon,
.subject-accent-scope .mc-preview-icon { background:color-mix(in srgb,var(--subject-accent) 12%,var(--mds-surface-default)); }
.subject-accent-scope .mc-progress > i,
.subject-accent-scope .mc-progress > span,
.subject-accent-scope .progress-bar > span { background:var(--subject-accent) !important; }
.subject-accent-scope .mc-progress-circle { --progress-color:var(--subject-accent); }
.subject-accent-scope .mc-lesson-hero-icon { color:var(--subject-accent); background:color-mix(in srgb,var(--subject-accent) 12%,var(--mds-surface-default)); }
[data-theme="dark"] .explorer-icon,
[data-theme="dark"] .mc-preview-icon,
[data-theme="dark"] .mc-lesson-icon { color:var(--subject-accent,var(--mds-text-primary)); }
[data-theme="dark"] .explorer-icon:not(.lesson-file) { color:var(--mds-text-primary); }
.mc-submission-history-item { grid-template-columns:minmax(0,1fr) minmax(82px,auto); align-items:start; }
.mc-submission-history-item strong,.mc-submission-history-item b,.mc-submission-history-item small { overflow-wrap:anywhere; word-break:normal; }
.mc-submission-history-item > span:last-child { max-width:120px; }
.mc-homework-answer-photos { align-items:start; }
.mc-homework-answer-photos button,.mc-review-sheet-button { width:148px; display:grid; gap:6px; padding:7px; border:1px solid var(--mds-border-default); border-radius:var(--mds-radius-md); background:var(--mds-surface-default); color:var(--mds-text-secondary); font:inherit; text-align:left; cursor:pointer; }
.mc-homework-answer-photos button:hover,.mc-review-sheet-button:hover { border-color:var(--mds-border-focus); background:var(--mds-action-primary-subtle); }
.mc-homework-answer-photos button img { width:132px; height:96px; object-fit:cover; border-radius:var(--mds-radius-sm); background:var(--mds-surface-subtle); }
.mc-review-media-count { color:var(--mds-action-primary); font-size:11px; font-weight:700; }
.mc-review-sheet-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.mc-review-sheet-button { width:auto; min-width:180px; grid-template-columns:28px minmax(0,1fr); align-items:center; }
.mc-review-sheet-button svg { width:22px; height:22px; }
.mc-review-media-modal { width:min(1540px,97vw) !important; max-width:1540px !important; }
.mc-review-media-layout { min-height:650px; display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:16px; }
.mc-review-media-main { min-width:0; display:grid; grid-template-rows:auto minmax(0,1fr); gap:10px; }
.mc-review-media-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.mc-review-media-toolbar .button.active { background:var(--mds-action-primary-subtle); color:var(--mds-action-primary); border-color:var(--mds-border-focus); }
.mc-review-media-viewport { min-height:560px; position:relative; overflow:auto; display:grid; place-items:center; border:1px solid var(--mds-border-subtle); border-radius:var(--mds-radius-lg); background:color-mix(in srgb,var(--mds-surface-subtle) 86%,#7f8da3 14%); }
.mc-review-media-transform { position:relative; display:grid; width:min(100%,1100px); transform-origin:center; transition:transform .15s ease; }
.mc-review-media-transform.photo { width:max-content; max-width:100%; }
.mc-review-media-transform > img,.mc-review-writing-stage,.mc-review-media-overlay { grid-area:1/1; display:block; }
.mc-review-media-transform > img { max-width:min(1100px,100%); max-height:72vh; width:auto; height:auto; object-fit:contain; user-select:none; -webkit-user-drag:none; }
.mc-review-writing-stage { width:min(1100px,100%); aspect-ratio:16/9; display:grid; position:relative; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.18); }
.mc-review-writing-stage > img,.mc-review-writing-stage > canvas { grid-area:1/1; width:100%; height:100%; display:block; }
.mc-review-media-overlay { position:absolute; inset:0; width:100%; height:100%; overflow:visible; touch-action:none; }
.mc-review-media-overlay.annotating { cursor:crosshair; }
.mc-review-annotation-rect { fill:rgba(0,153,255,.10); stroke:var(--mds-action-primary); stroke-width:3; vector-effect:non-scaling-stroke; }
.mc-review-annotation-number-bg { fill:var(--mds-action-primary); }
.mc-review-annotation-number { fill:#fff; font-size:28px; font-weight:800; text-anchor:middle; dominant-baseline:middle; pointer-events:none; }
.mc-review-media-side { min-width:0; display:flex; flex-direction:column; gap:10px; }
.mc-review-media-side h3 { margin:0; }
.mc-review-annotation-list { display:grid; gap:8px; max-height:540px; overflow:auto; }
.mc-review-annotation-item { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:9px; align-items:start; padding:10px; border:1px solid var(--mds-border-subtle); border-radius:var(--mds-radius-md); background:var(--mds-surface-subtle); }
.mc-review-annotation-index { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--mds-action-primary); color:#fff; font-weight:800; }
.mc-review-annotation-item .math-content { min-width:0; overflow-wrap:anywhere; }
.mc-review-annotation-delete { border:0; background:transparent; color:var(--mds-danger); cursor:pointer; }
.mc-review-new-comment { display:grid; gap:8px; padding:11px; border:1px solid var(--mds-border-focus); border-radius:var(--mds-radius-md); background:var(--mds-action-primary-subtle); }
.mc-review-new-comment textarea { min-height:100px; }
.mc-review-media-empty { color:var(--mds-text-tertiary); padding:12px 0; }
.seamless-writing:empty { display:none; }
@media (max-width:1000px) {
  .mc-review-media-layout { grid-template-columns:1fr; }
  .mc-review-media-viewport { min-height:420px; }
  .mc-review-media-side { max-height:none; }
}

/* Alpha 27 student workspace refinement */
.mc-student-home-hero { min-height:150px; display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:16px; padding:26px 30px; overflow:hidden; border:1px solid var(--mds-border-subtle); border-radius:var(--mds-radius-xl); background:linear-gradient(120deg,color-mix(in srgb,var(--mds-action-primary) 7%,var(--mds-surface-default)),color-mix(in srgb,var(--mds-action-primary) 14%,var(--mds-surface-default))); box-shadow:var(--mc-panel-shadow); }
.mc-student-home-hero h1 { margin:0 0 8px; font-size:30px; line-height:1.1; }
.mc-student-home-hero p { margin:0; color:var(--mds-text-secondary); }
.mc-student-home-hero img { width:150px; max-height:116px; object-fit:contain; filter:drop-shadow(0 14px 22px rgba(0,115,255,.20)); }
.mc-student-home-primary { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr); gap:16px; margin-bottom:16px; }
.mc-student-home-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.mc-student-home-list { display:grid; }
.mc-student-home-row,.mc-student-result-row,.mc-student-past-row { width:100%; min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 0; border:0; border-bottom:1px solid var(--mds-border-subtle); background:transparent; color:var(--mds-text-primary); text-align:left; cursor:pointer; }
.mc-student-home-row:last-child,.mc-student-result-row:last-child,.mc-student-past-row:last-child { border-bottom:0; }
.mc-student-home-row > span:nth-child(2),.mc-student-result-row > span:nth-child(2),.mc-student-past-row > span:nth-child(2) { min-width:0; display:grid; gap:3px; }
.mc-student-home-row strong,.mc-student-result-row strong,.mc-student-past-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-student-home-row small,.mc-student-result-row small,.mc-student-past-row small { color:var(--mds-text-secondary); }
.mc-student-row-date { max-width:92px; color:var(--mds-text-secondary); font-size:11px; text-align:right; }
.mc-student-row-date.danger { color:var(--mds-danger); }
.mc-student-progress-row { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 0; border-bottom:1px solid var(--mds-border-subtle); }
.mc-student-progress-row:last-child { border-bottom:0; }
.mc-student-progress-row > span:nth-child(2) { min-width:0; display:grid; gap:7px; }
.mc-student-next-class { display:grid; grid-template-columns:112px minmax(0,1fr) auto; gap:18px; align-items:center; padding:8px 0 4px; }
.mc-student-next-time { min-height:86px; display:grid; align-content:center; justify-items:center; border-radius:var(--mds-radius-lg); background:color-mix(in srgb,var(--subject-accent,#0099FF) 9%,var(--mds-surface-subtle)); color:var(--subject-accent,#0099FF); }
.mc-student-next-time small { font-size:11px; }
.mc-student-next-time strong { font-size:27px; }
.mc-student-next-copy h3,.mc-student-video-continue h3 { margin:0 0 5px; }
.mc-student-next-copy p,.mc-student-video-continue p { margin:0 0 6px; color:var(--mds-text-secondary); }
.mc-student-video-continue { min-height:94px; display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:13px; align-items:center; }
.mc-student-video-continue .mc-progress { margin-top:10px; }
.mc-subject-button { border-color:color-mix(in srgb,var(--subject-accent,#0099FF) 38%,var(--mds-border-default)) !important; }
.subject-accent-scope .mc-subject-button.primary,.subject-accent-scope .mc-subject-button { color:var(--subject-accent); }
.subject-accent-scope .mc-subject-button.primary { background:var(--subject-accent) !important; border-color:var(--subject-accent) !important; color:#fff !important; }
.mc-student-home-week { margin-bottom:16px; }
.mc-student-join form { display:grid; grid-template-columns:auto minmax(180px,300px) auto; justify-content:start; }
.mc-student-sessions-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.mc-student-session-hero { min-height:142px; display:grid; grid-template-columns:100px 50px minmax(0,1fr) auto; gap:16px; align-items:center; margin-bottom:16px; padding:18px; border:1px solid color-mix(in srgb,var(--subject-accent,#0099FF) 28%,var(--mds-border-subtle)); border-radius:var(--mds-radius-lg); background:color-mix(in srgb,var(--subject-accent,#0099FF) 5%,var(--mds-surface-default)); }
.mc-student-session-hero > div:first-child { display:grid; gap:4px; }
.mc-student-session-hero > div:first-child > strong { color:var(--subject-accent); font-size:27px; }
.mc-student-session-hero h2 { margin:0 0 4px; font-size:18px; }
.mc-student-session-hero p { margin:0 0 4px; color:var(--mds-text-secondary); }
.mc-student-upcoming-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.mc-student-upcoming-card { min-width:0; display:grid; grid-template-columns:56px 38px minmax(0,1fr) auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--mds-border-subtle); border-radius:var(--mds-radius-md); background:var(--mds-surface-default); color:var(--mds-text-primary); text-align:left; cursor:pointer; }
.mc-student-upcoming-card:hover { border-color:color-mix(in srgb,var(--subject-accent,#0099FF) 55%,var(--mds-border-default)); background:color-mix(in srgb,var(--subject-accent,#0099FF) 4%,var(--mds-surface-default)); }
.mc-student-upcoming-card > span:nth-child(3) { min-width:0; display:grid; gap:3px; }
.mc-student-upcoming-card > span:nth-child(3) > strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-student-upcoming-card small { color:var(--mds-text-secondary); }
.mc-student-upcoming-date { display:grid; gap:2px; justify-items:center; color:var(--subject-accent); }
.mc-student-upcoming-date strong { font-size:20px; }
.mc-student-past-list { display:grid; }
.mc-student-past-row { grid-template-columns:38px minmax(0,1fr) auto auto; }
.mc-rail-big { display:block; margin:8px 0 3px; font-size:30px; }
.empty-state.compact { min-height:74px; padding:18px; }
@media(max-width:1180px){.mc-student-home-grid{grid-template-columns:1fr 1fr}.mc-student-home-grid>section:last-child{grid-column:1/-1}.mc-student-sessions-layout{grid-template-columns:1fr}.mc-student-sessions-layout>.mc-right-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.mc-student-upcoming-grid{grid-template-columns:1fr}}
@media(max-width:820px){.mc-student-home-primary,.mc-student-home-grid{grid-template-columns:1fr}.mc-student-home-grid>section:last-child{grid-column:auto}.mc-student-next-class,.mc-student-session-hero{grid-template-columns:1fr}.mc-student-next-time{width:112px}.mc-student-home-hero img{width:100px}.mc-student-sessions-layout>.mc-right-rail{grid-template-columns:1fr}.mc-student-join form{grid-template-columns:1fr}}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }




/* Alpha 28 — review editor, student layout and compact libraries */
.mc-review-annotation-rect { fill:color-mix(in srgb,var(--mds-action-primary) 5%,transparent); stroke:var(--mds-action-primary); stroke-width:1.35; vector-effect:non-scaling-stroke; cursor:move; }
.mc-review-annotation-rect.pending { fill:color-mix(in srgb,var(--mds-action-primary) 4%,transparent); stroke-dasharray:5 4; }
.mc-review-annotation-label { fill:var(--mds-action-primary); stroke:var(--mds-surface-default); stroke-width:1.2; vector-effect:non-scaling-stroke; }
.mc-review-annotation-number { fill:#fff; font-size:12px; font-weight:800; text-anchor:middle; dominant-baseline:middle; pointer-events:none; }
.mc-review-annotation-handle { fill:#fff; stroke:var(--mds-action-primary); stroke-width:1.5; vector-effect:non-scaling-stroke; cursor:nwse-resize; }
.mc-review-annotation-handle[data-handle="ne"],.mc-review-annotation-handle[data-handle="sw"] { cursor:nesw-resize; }
.mc-review-annotation-item { grid-template-columns:26px minmax(0,1fr) auto; }
.mc-review-annotation-index { width:24px; height:24px; font-size:12px; }
.mc-review-annotation-actions { display:flex; gap:4px; align-items:center; }
.mc-review-annotation-edit,.mc-review-annotation-delete { width:28px; height:28px; display:grid; place-items:center; border:0; border-radius:8px; background:transparent; cursor:pointer; }
.mc-review-annotation-edit:hover { background:var(--mds-action-primary-subtle); color:var(--mds-action-primary); }
.mc-review-comment-images { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.mc-review-comment-image { position:relative; width:92px; height:72px; overflow:hidden; border:1px solid var(--mds-border-subtle); border-radius:9px; background:var(--mds-surface-default); }
.mc-review-comment-image img { width:100%; height:100%; display:block; object-fit:cover; }
.mc-review-comment-image button { position:absolute; top:3px; right:3px; width:22px; height:22px; padding:0; border:0; border-radius:50%; background:rgba(0,0,0,.65); color:#fff; cursor:pointer; }
.mc-review-image-input { display:grid; gap:5px; margin-top:8px; color:var(--mds-text-secondary); font-size:12px; }
.mc-review-image-input input { font-size:12px; }
.mc-review-edit-box { display:grid; gap:8px; }
.mc-review-edit-box textarea { min-height:86px; }
.mc-inline-reviewed-pages { display:grid; gap:14px; margin-top:12px; }
.mc-inline-reviewed-page { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:14px; align-items:start; }
.mc-inline-reviewed-sheet { min-width:0; }
.mc-inline-reviewed-sheet .seamless-page { margin:0; }
.mc-inline-reviewed-stage { position:relative; }
.mc-inline-reviewed-stage .mc-review-media-overlay { z-index:3; }
.mc-inline-reviewed-comments { min-width:0; display:grid; align-content:start; gap:8px; padding:12px; border:1px solid var(--mds-border-subtle); border-radius:var(--mds-radius-md); background:var(--mds-surface-subtle); }
.mc-inline-reviewed-comments h4 { margin:0; }
.mc-inline-reviewed-comments .mc-review-annotation-list { max-height:520px; }
.mc-review-correction-selector { display:flex; align-items:center; gap:8px; margin-top:10px; padding:8px 10px; border:1px solid var(--mds-border-subtle); border-radius:10px; background:var(--mds-surface-subtle); }
.mc-review-batch-correction { position:sticky; bottom:8px; z-index:5; display:flex; justify-content:flex-end; gap:10px; margin-top:12px; padding:10px; border:1px solid var(--mds-border-subtle); border-radius:12px; background:color-mix(in srgb,var(--mds-surface-default) 94%,transparent); box-shadow:var(--mds-shadow-md); backdrop-filter:blur(10px); }
.mc-previous-answers { display:grid; gap:8px; margin-top:14px; padding:12px; border:1px solid var(--mds-border-subtle); border-radius:12px; background:var(--mds-surface-subtle); }
.mc-previous-answer { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:9px; align-items:start; padding:8px 0; border-bottom:1px solid var(--mds-border-subtle); }
.mc-previous-answer:last-child { border-bottom:0; }
.mc-previous-answer small { color:var(--mds-text-secondary); }
.mc-simple-add-sheet { display:flex; justify-content:flex-start; margin:8px 0 12px; }
.mc-simple-add-sheet .button { min-width:150px; }
.mc-homework-delete-modal { width:min(520px,92vw) !important; }
.mc-homework-delete-modal .modal-body { min-height:0; }
.mc-delete-homework { display:grid; gap:8px; }
.mc-delete-homework p { margin:0; }
.mc-folder-card.mc-homework-folder-card { position:relative; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:1fr; padding:0; overflow:hidden; cursor:default; }
.mc-homework-folder-main { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:10px; padding:12px; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.mc-homework-folder-actions { width:auto !important; height:auto !important; grid-row:auto !important; display:flex !important; gap:5px; padding:8px; border-radius:0 !important; background:transparent !important; color:inherit !important; }
.mc-homework-folder-actions .icon-button { width:34px; height:34px; }
.mc-group-card { overflow:hidden; position:relative; padding-top:21px !important; }
.mc-group-card::before { position:absolute !important; top:0; left:0; right:0; width:auto !important; height:3px; margin:0 !important; border-radius:13px 13px 0 0; }
.mc-student-home-primary,.mc-student-home-grid { align-items:stretch; }
.mc-student-home-primary > *,.mc-student-home-grid > * { min-width:0; height:100%; overflow:hidden; }
.mc-student-home-grid .mc-panel { display:flex; flex-direction:column; }
.mc-student-home-grid .mc-student-home-list { min-height:0; }
.mc-student-home-row,.mc-student-result-row { min-height:58px; }
.mc-student-home-hero { min-height:136px; }
.mc-student-home-hero img { width:132px; max-height:104px; }
.mc-stat-open-homework { white-space:nowrap; }
.mc-student-review-summary-comment { display:grid; gap:8px; margin:10px 0 14px; padding:12px 14px; border:1px solid var(--mds-border-subtle); border-radius:12px; background:var(--mds-surface-subtle); }
.mc-review-overall-comment { display:grid; gap:8px; margin-top:14px; padding:14px; border:1px solid var(--mds-border-subtle); border-radius:12px; background:var(--mds-surface-subtle); }
.mc-review-overall-comment textarea { min-height:100px; }
.mc-review-overall-comment.readonly { background:var(--mds-surface-default); }
.mc-review-comment-image-input { display:grid; gap:5px; color:var(--mds-text-secondary); font-size:12px; }
.mc-review-correction-selector input { width:17px; height:17px; accent-color:var(--mds-action-primary); }
.mc-folder-card.mc-homework-folder-card .mc-preview-icon,.mc-folder-card.mc-homework-folder-card .explorer-icon { color:var(--mds-action-primary); background:var(--mds-action-primary-subtle); border-radius:10px; display:grid; place-items:center; }
.mc-folder-card.mc-homework-folder-card .mc-preview-icon svg,.mc-folder-card.mc-homework-folder-card .explorer-icon svg { width:20px; height:20px; }
.mc-folder-card.mc-homework-folder-card .danger-icon { color:var(--mds-danger); }
@media(max-width:1100px){.mc-inline-reviewed-page{grid-template-columns:1fr}.mc-inline-reviewed-comments{max-height:none}.mc-review-batch-correction{position:static}}

/* Alpha 39 — unified content, course and task-bank studios */
.mc-studio-backdrop { position:fixed; inset:0; z-index:180; background:var(--mds-surface-subtle,#f6f8fb); color:var(--mds-text-primary,#10203a); }
.mc-studio { width:100%; height:100%; display:grid; grid-template-rows:68px minmax(0,1fr); overflow:hidden; }
.mc-studio-topbar { display:grid; grid-template-columns:minmax(260px,1fr) auto minmax(360px,1fr); align-items:center; gap:18px; padding:0 22px; border-bottom:1px solid var(--mds-border-subtle,#dfe5ef); background:var(--mds-surface-default,#fff); box-shadow:0 2px 10px rgba(22,35,55,.04); }
.mc-studio-title { min-width:0; display:flex; align-items:center; gap:12px; }
.mc-studio-title-copy { min-width:0; display:grid; gap:2px; }
.mc-studio-title-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
.mc-studio-title-copy small,.mc-studio-save-state { color:var(--mds-text-secondary,#70809a); font-size:12px; }
.mc-studio-view-switch { display:flex; align-items:center; gap:4px; padding:4px; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:12px; background:var(--mds-surface-subtle,#f6f8fb); }
.mc-studio-view-switch button { min-width:42px; height:34px; padding:0 11px; border:0; border-radius:8px; background:transparent; color:var(--mds-text-secondary,#70809a); cursor:pointer; font-size:13px; }
.mc-studio-view-switch button.active { background:var(--mds-surface-default,#fff); color:var(--mds-text-primary,#10203a); box-shadow:0 1px 5px rgba(22,35,55,.1); }
.mc-studio-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.mc-studio-body { min-height:0; display:grid; grid-template-columns:278px minmax(560px,1fr) 342px; }
.mc-studio-rail { min-width:0; min-height:0; overflow:auto; background:var(--mds-surface-default,#fff); }
.mc-studio-outline { border-right:1px solid var(--mds-border-subtle,#dfe5ef); }
.mc-studio-inspector { border-left:1px solid var(--mds-border-subtle,#dfe5ef); }
.mc-studio-rail-head { position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:56px; padding:12px 16px; border-bottom:1px solid var(--mds-border-subtle,#dfe5ef); background:color-mix(in srgb,var(--mds-surface-default,#fff) 95%,transparent); backdrop-filter:blur(10px); }
.mc-studio-rail-head h3 { margin:0; font-size:14px; }
.mc-studio-outline-list { display:grid; gap:6px; padding:12px; }
.mc-studio-outline-item { display:grid; grid-template-columns:24px 34px minmax(0,1fr) auto; align-items:center; gap:8px; width:100%; padding:8px; border:1px solid transparent; border-radius:11px; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.mc-studio-outline-item:hover { background:var(--mds-surface-subtle,#f6f8fb); }
.mc-studio-outline-item.active { border-color:color-mix(in srgb,var(--mds-action-primary,#0099ff) 28%,var(--mds-border-subtle,#dfe5ef)); background:var(--mds-action-primary-subtle,#eaf6ff); }
.mc-studio-outline-item.dragging { opacity:.45; }
.mc-studio-drag { color:var(--mds-text-tertiary,#97a4b8); font-size:16px; cursor:grab; letter-spacing:-3px; }
.mc-studio-block-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:var(--mds-surface-subtle,#f6f8fb); color:var(--mds-action-primary,#0099ff); font-size:12px; font-weight:800; }
.mc-studio-outline-copy { min-width:0; display:grid; gap:2px; }
.mc-studio-outline-copy strong,.mc-studio-outline-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-studio-outline-copy strong { font-size:13px; }
.mc-studio-outline-copy small { color:var(--mds-text-secondary,#70809a); font-size:11px; }
.mc-studio-outline-number { color:var(--mds-text-secondary,#70809a); font-size:12px; font-weight:700; }
.mc-studio-add { margin:2px 12px 16px; }
.mc-studio-add-menu { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:12px; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:13px; background:var(--mds-surface-subtle,#f6f8fb); }
.mc-studio-add-menu button { min-height:58px; display:grid; place-items:center; gap:3px; padding:8px; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:10px; background:var(--mds-surface-default,#fff); color:inherit; cursor:pointer; font-size:12px; }
.mc-studio-add-menu button:hover { border-color:var(--mds-action-primary,#0099ff); color:var(--mds-action-primary,#0099ff); }
.mc-studio-canvas { min-width:0; min-height:0; overflow:auto; padding:28px clamp(20px,4vw,64px) 70px; background:#eef2f7; }
.mc-studio-device { width:min(100%,980px); min-height:calc(100vh - 126px); margin:0 auto; border:1px solid #dce3ed; border-radius:18px; background:#fff; box-shadow:0 18px 55px rgba(28,43,65,.12); overflow:hidden; transition:width .2s; }
.mc-studio-device.tablet { width:min(760px,100%); }
.mc-studio-device.mobile { width:min(420px,100%); }
.mc-learner-page { color:#10203a; background:#fff; }
.mc-learner-page-head { padding:38px clamp(24px,5vw,64px) 24px; border-bottom:1px solid #e5eaf2; }
.mc-learner-page-head .mc-lesson-eyebrow { color:#718097; font-size:13px; font-weight:700; }
.mc-learner-page-head h1 { margin:8px 0 8px; font-size:clamp(27px,3vw,40px); letter-spacing:-.8px; }
.mc-learner-page-head p { max-width:760px; margin:0; color:#64738a; line-height:1.55; }
.mc-learner-content { display:grid; gap:0; max-width:900px; margin:0 auto; padding:32px clamp(20px,5vw,56px) 64px; }
.mc-learner-block { position:relative; padding:20px 0; border-bottom:1px solid #edf0f5; }
.mc-learner-block:last-child { border-bottom:0; }
.mc-learner-block.is-selected { margin-inline:-18px; padding-inline:18px; border-radius:12px; outline:2px solid rgba(0,153,255,.28); background:#fbfdff; }
.mc-learner-heading h2 { margin:0; font-size:26px; }
.mc-learner-text { color:#273750; font-size:16px; line-height:1.7; white-space:pre-wrap; }
.mc-learner-divider { height:1px; padding:0; margin:20px 0; background:#dfe5ee; }
.mc-learner-video { overflow:hidden; border:1px solid #dce3ed; border-radius:14px; background:#0b1220; }
.mc-learner-video-head { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; background:#fff; color:#10203a; }
.mc-learner-video-frame { width:100%; aspect-ratio:16/9; display:grid; place-items:center; border:0; background:linear-gradient(145deg,#111827,#202b3d); color:#fff; }
.mc-learner-video-frame iframe,.mc-learner-video-frame video { width:100%; height:100%; border:0; }
.mc-learner-image { max-width:100%; display:block; margin:auto; border-radius:12px; }
.mc-learner-pdf { width:100%; min-height:620px; border:1px solid #dce3ed; border-radius:12px; background:#f7f9fc; }
.mc-learner-file { display:flex; align-items:center; gap:12px; padding:14px; border:1px solid #dce3ed; border-radius:12px; background:#f8fafc; }
.mc-learner-task { display:grid; gap:14px; padding:22px; border:1px solid #dce3ed; border-radius:14px; background:#fff; }
.mc-learner-task-kicker { color:#718097; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.45px; }
.mc-learner-task h3 { margin:0; font-size:20px; }
.mc-learner-task-statement { line-height:1.65; white-space:pre-wrap; }
.mc-learner-task-options { display:grid; gap:8px; }
.mc-learner-task-option { display:flex; gap:10px; padding:11px 12px; border:1px solid #dfe5ee; border-radius:10px; }
.mc-learner-empty { padding:72px 28px; text-align:center; color:#718097; }
.mc-studio-inspector-body { display:grid; gap:18px; padding:16px; }
.mc-studio-inspector-section { display:grid; gap:11px; padding-bottom:18px; border-bottom:1px solid var(--mds-border-subtle,#dfe5ef); }
.mc-studio-inspector-section:last-child { border-bottom:0; }
.mc-studio-inspector-section h4 { margin:0; font-size:13px; }
.mc-studio-inspector textarea { min-height:112px; }
.mc-studio-inline-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.mc-studio-bank-picker { display:grid; gap:8px; }
.mc-studio-bank-picker select { min-width:0; }
.mc-studio-image-preview { position:relative; overflow:hidden; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:11px; background:var(--mds-surface-subtle,#f6f8fb); }
.mc-studio-image-preview img { width:100%; max-height:220px; object-fit:contain; display:block; }
.mc-studio-image-preview button { position:absolute; top:7px; right:7px; }
.mc-studio-preview-only .mc-studio-body { grid-template-columns:1fr; }
.mc-studio-preview-only .mc-studio-outline,.mc-studio-preview-only .mc-studio-inspector { display:none; }
.mc-studio-preview-only .mc-studio-canvas { padding-top:24px; }
.mc-studio-error { position:fixed; right:24px; bottom:24px; z-index:190; max-width:520px; }
.mc-pagination { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 4px 2px; }
.mc-pagination-info { color:var(--mds-text-secondary,#70809a); font-size:13px; }
.mc-pagination-pages { display:flex; align-items:center; gap:5px; }
.mc-pagination-pages button { min-width:36px; height:36px; padding:0 9px; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:9px; background:var(--mds-surface-default,#fff); color:inherit; cursor:pointer; }
.mc-pagination-pages button.active { border-color:var(--mds-action-primary,#0099ff); background:var(--mds-action-primary,#0099ff); color:#fff; }
.mc-pagination-pages button:disabled { opacity:.45; cursor:default; }
.mc-resource-explorer { display:grid; grid-template-columns:250px minmax(0,1fr); min-height:560px; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:16px; overflow:hidden; background:var(--mds-surface-default,#fff); }
.mc-folder-tree { padding:12px; border-right:1px solid var(--mds-border-subtle,#dfe5ef); background:var(--mds-surface-subtle,#f6f8fb); overflow:auto; }
.mc-folder-tree-row { display:grid; grid-template-columns:18px minmax(0,1fr) auto; align-items:center; gap:7px; min-height:38px; padding:5px 7px; border:1px solid transparent; border-radius:9px; cursor:pointer; }
.mc-folder-tree-row:hover,.mc-folder-tree-row.active { background:var(--mds-surface-default,#fff); }
.mc-folder-tree-row.active { border-color:color-mix(in srgb,var(--mds-action-primary,#0099ff) 24%,var(--mds-border-subtle,#dfe5ef)); color:var(--mds-action-primary,#0099ff); }
.mc-folder-tree-row.drag-over,.mc-resource-card.drag-over,.mc-lesson-library-head.drag-over { outline:2px solid var(--mds-action-primary,#0099ff); outline-offset:-2px; }
.mc-table tr[draggable="true"] { cursor:grab; }
.mc-student-teacher { display:flex; align-items:center; gap:9px; margin-top:14px; color:var(--mds-text-primary,#10203a); }
.mc-student-teacher-avatar { width:34px; height:34px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:var(--mds-action-primary,#0099ff); color:#fff; font-size:12px; font-weight:850; }
.mc-student-teacher-avatar img { width:100%; height:100%; object-fit:cover; }
.mc-student-teacher span:last-child { display:grid; gap:1px; }
.mc-student-teacher small { color:var(--mds-text-secondary,#70809a); font-size:11px; }
.mc-resource-main { min-width:0; padding:18px; overflow:auto; }
.mc-resource-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.mc-resource-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.mc-resource-card { display:grid; gap:12px; padding:14px; border:1px solid var(--mds-border-subtle,#dfe5ef); border-radius:13px; background:var(--mds-surface-default,#fff); cursor:default; }
.mc-resource-card[draggable="true"] { cursor:grab; }
.mc-resource-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.mc-resource-card-number { min-width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:var(--mds-action-primary-subtle,#eaf6ff); color:var(--mds-action-primary,#0099ff); font-size:12px; font-weight:850; }
.mc-resource-card p { margin:0; color:var(--mds-text-secondary,#70809a); line-height:1.5; }
.mc-resource-card-meta { display:flex; flex-wrap:wrap; gap:6px; color:var(--mds-text-secondary,#70809a); font-size:12px; }
.mc-course-studio-body { min-height:0; display:grid; grid-template-columns:300px minmax(620px,1fr) 320px; }
.mc-course-module-list { display:grid; gap:7px; padding:12px; }
.mc-course-module-row { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:8px; padding:10px; border:1px solid transparent; border-radius:11px; cursor:pointer; }
.mc-course-module-row.active { border-color:color-mix(in srgb,var(--mds-action-primary,#0099ff) 28%,var(--mds-border-subtle,#dfe5ef)); background:var(--mds-action-primary-subtle,#eaf6ff); }
.mc-course-module-row strong,.mc-course-module-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-course-module-row small { color:var(--mds-text-secondary,#70809a); }
.mc-course-workspace { min-width:0; overflow:auto; padding:24px clamp(20px,3vw,42px) 64px; background:#eef2f7; }
.mc-course-sheet { max-width:900px; min-height:calc(100vh - 130px); margin:auto; padding:28px; border:1px solid #dce3ed; border-radius:18px; background:#fff; box-shadow:0 18px 55px rgba(28,43,65,.1); }
.mc-course-activity-card { display:grid; gap:12px; margin-top:12px; padding:16px; border:1px solid #dfe5ee; border-radius:13px; background:#fff; }
.mc-course-activity-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mc-course-summary-list { display:grid; gap:10px; padding:16px; }
@media(max-width:1280px){.mc-studio-body{grid-template-columns:240px minmax(500px,1fr) 300px}.mc-course-studio-body{grid-template-columns:260px minmax(520px,1fr) 290px}}
@media(max-width:980px){.mc-studio-body,.mc-course-studio-body{grid-template-columns:220px minmax(0,1fr)}.mc-studio-inspector,.mc-course-studio-body>.mc-studio-inspector{display:none}.mc-studio-topbar{grid-template-columns:minmax(180px,1fr) auto}.mc-studio-view-switch{display:none}.mc-resource-explorer{grid-template-columns:1fr}.mc-folder-tree{border-right:0;border-bottom:1px solid var(--mds-border-subtle,#dfe5ef);max-height:220px}}

/* Alpha 40 — constructor recovery, inline content stages and student polish */
.mc-learner-task-statement { font-size:18px; line-height:1.72; color:#1b2b44; }
.mc-learner-task-option { align-items:flex-start; gap:12px; padding:14px 15px; font-size:16px; line-height:1.45; cursor:default; }
.mc-learner-task-option input[type="radio"],.mc-learner-task-option input[type="checkbox"] { width:20px!important; height:20px!important; min-width:20px; flex:0 0 20px; margin:1px 0 0; padding:0; accent-color:#0099ff; }
.mc-learner-task-option span { min-width:0; flex:1; }
.mc-learner-answer-key { display:grid; gap:8px; margin-top:4px; padding:15px 16px; border:1px solid #cfe1f4; border-radius:12px; background:#f5faff; font-size:15px; line-height:1.6; }
.mc-learner-answer-key.reference { border-color:#d8e7dc; background:#f6fbf7; }
.mc-learner-answer-key>span { color:#55718f; font-size:11px; font-weight:850; letter-spacing:.45px; text-transform:uppercase; }
.mc-validation-error { position:relative; border-radius:10px!important; outline:3px solid #e5484d!important; outline-offset:3px; background:#fff5f5!important; animation:mc-error-pulse .8s ease-in-out 3; }
@keyframes mc-error-pulse { 50% { outline-color:#ff8b8f; box-shadow:0 0 0 7px rgba(229,72,77,.12); } }
.mc-studio-outline-material { width:24px; height:24px; display:grid; place-items:center; color:#7e8da3; font-size:9px; }
.mc-drafts-folder { margin:0 0 16px; border:1px solid #d8e5f2; border-radius:14px; background:#f8fbff; box-shadow:var(--mc-panel-shadow,0 8px 26px rgba(21,49,82,.06)); }
.mc-drafts-folder>summary { min-height:52px; display:grid; grid-template-columns:34px auto 1fr; align-items:center; gap:8px; padding:10px 14px; cursor:pointer; list-style:none; }
.mc-drafts-folder>summary::-webkit-details-marker { display:none; }
.mc-drafts-folder>summary small { justify-self:end; color:#70809a; }
.mc-drafts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; padding:0 12px 12px; }
.mc-draft-card { min-width:0; display:grid; grid-template-columns:36px minmax(0,1fr) 34px; align-items:center; gap:9px; padding:10px; border:1px solid #dfe8f2; border-radius:11px; background:#fff; }
.mc-draft-card>button:not(.icon-button) { min-width:0; display:grid; gap:3px; padding:0; border:0; background:none; text-align:left; cursor:pointer; }
.mc-draft-card strong,.mc-draft-card small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-draft-card small { color:#70809a; }
.mc-inline-folder-select { max-width:150px; display:flex; align-items:center; gap:5px; padding:4px 6px; border:1px solid var(--mds-border-default); border-radius:9px; background:var(--mds-surface-default); color:var(--mds-text-primary); }
.mc-inline-folder-select svg { width:16px; height:16px; flex:0 0 auto; }
.mc-inline-folder-select select { min-width:0; width:104px; padding:4px; border:0; background:transparent; color:inherit; font-size:12px; }
.mc-inline-file-viewer { overflow:hidden; border:1px solid #dce5ef; border-radius:12px; background:#fff; }
.mc-inline-file-viewer>summary { border:0; border-radius:0; cursor:pointer; list-style:none; }
.mc-inline-file-viewer>summary::-webkit-details-marker { display:none; }
.mc-inline-file-viewer>summary b { margin-left:auto; color:#0099ff; font-size:12px; }
.mc-inline-file-frame { height:min(72vh,760px); border-top:1px solid #dce5ef; background:#f4f7fa; }
.mc-inline-file-frame iframe { width:100%; height:100%; border:0; background:#fff; }
.task-pill.material,.mc-homework-step.material { border-style:dashed; color:#52677f; background:#f5f8fb; font-size:11px; }
.task-pill.material.active,.mc-homework-step.material.active { border-style:solid; color:#fff; background:var(--subject-accent,#0099ff); }
.writing-editor-layout,.writing-editor-layout.no-toolbar { grid-template-columns:minmax(0,1fr); gap:10px; }
.writing-icon-rail { position:sticky; top:158px; z-index:35; width:100%; max-width:100%; height:auto; max-height:none; overflow:visible; flex-direction:row; flex-wrap:wrap; justify-content:center; gap:5px; padding:7px 10px; border-radius:13px; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.writing-tool-separator { width:1px; height:28px; }
.writing-shape-menu { position:relative; }
.writing-shape-menu>summary { display:grid; place-items:center; list-style:none; cursor:pointer; }
.writing-shape-menu>summary::-webkit-details-marker { display:none; }
.writing-shape-menu>div { position:absolute; z-index:50; top:calc(100% + 7px); left:50%; display:flex; gap:4px; padding:6px; border:1px solid var(--border); border-radius:11px; background:var(--card-bg); box-shadow:0 12px 30px rgba(14,31,53,.18); transform:translateX(-50%); }
.seamless-writing,.seamless-document,.seamless-page { max-width:100%; min-width:0; }
.link-button { min-height:32px; padding:6px 10px; border:1px solid #cfe1f4; border-radius:9px; background:#f4f9ff; color:#007ed6; font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.link-button:hover { border-color:#0099ff; background:#eaf6ff; }
.mc-student-home-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.mc-student-home-grid>.mc-panel { min-height:280px; }
.mc-student-home-hero { position:relative; padding-right:44px; }
.mc-student-home-hero img { width:124px; height:124px; object-fit:contain; transform:translateX(-6%); }
.mc-student-session-hero { grid-template-columns:118px 58px minmax(0,1fr) auto; padding:22px; }
.mc-student-session-hero .button,.mc-student-upcoming-row .button,.mc-stat-open-homework { min-height:38px; }
.mc-entity-tabs { gap:4px; padding:5px; border-radius:12px; background:#f4f7fb; scrollbar-width:thin; }
.mc-entity-tab { min-height:38px; padding:8px 13px; border-radius:9px; white-space:nowrap; }
.calendar-week { gap:14px; }
.calendar-week .calendar-day { min-height:500px; padding:17px; border-radius:17px; }
.calendar-day-name { font-size:14px; }
.calendar-day-number { font-size:28px; }
.calendar-day.today { border:2px solid #0099ff; background:linear-gradient(180deg,#eef8ff,#fff 36%); box-shadow:0 0 0 5px rgba(0,153,255,.14),0 14px 34px rgba(0,112,210,.10); }
.mc-class-week-head>div { min-height:50px; padding:8px; font-size:13px; }
.mc-class-week-head>div.today { border-radius:10px 10px 0 0; background:#0099ff; color:#fff; }
.mc-class-week-head>div.today strong { color:#fff; }
.mc-class-day { min-height:540px; padding:14px 10px; }
.mc-class-day.today { position:relative; border-left:2px solid #0099ff; border-right:2px solid #0099ff; background:#f2f9ff; box-shadow:inset 0 0 0 1px rgba(0,153,255,.10); }
.mc-class-event { padding:12px; font-size:13px; }
.mc-student-bank-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-bottom:16px; padding:14px; border:1px solid var(--mds-border-default); border-radius:13px; background:var(--mds-surface-default); color:var(--mds-text-primary); }
.mc-student-bank-toolbar label { min-width:190px; }
.mc-student-bank-toolbar .mc-search-field { flex:1; }
.mc-student-bank-statement,.mc-bank-practice-statement { font-size:17px; line-height:1.65; color:#1b2b44; }
.mc-student-bank-image { width:100%; max-height:220px; object-fit:contain; border-radius:10px; }
.mc-bank-practice { display:grid; gap:16px; }
@media(max-width:1180px){.mc-student-home-grid{grid-template-columns:1fr 1fr}.mc-student-home-grid>.mc-panel:last-child{grid-column:1/-1}.calendar-week{overflow-x:auto;grid-template-columns:repeat(7,minmax(220px,1fr))}}
@media(max-width:760px){.mc-student-home-grid{grid-template-columns:1fr}.mc-student-home-grid>.mc-panel:last-child{grid-column:auto}.writing-icon-rail{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.mc-drafts-grid{grid-template-columns:1fr}}
