.teacher-shell {
    --teacher-bg: #f3f5f7;
    --teacher-surface: #ffffff;
    --teacher-surface-muted: #f8f9fa;
    --teacher-navy: #0b2341;
    --teacher-text: #18263a;
    --teacher-muted: #667386;
    --teacher-line: #dfe4ea;
    --teacher-line-strong: #cdd5de;
    --teacher-gold: #c98b24;
    --teacher-gold-soft: #fbf4e6;
    --teacher-success: #2f7044;
    --teacher-success-soft: #edf7ef;
    --teacher-warning: #a66512;
    --teacher-warning-soft: #fff5e3;
    --teacher-danger: #b33f3f;
    --teacher-danger-soft: #fff0ef;
    --teacher-info: #355c8c;
    --teacher-info-soft: #eef4fb;
    --accent: var(--teacher-navy);
    --accent-strong: #06172d;
    --border: var(--teacher-line);
    --border-strong: var(--teacher-line-strong);
    --surface: var(--teacher-surface);
    --surface-muted: var(--teacher-surface-muted);
    --surface-soft: var(--teacher-surface-muted);
    --text: var(--teacher-text);
    --muted: var(--teacher-muted);
    --shadow: 0 10px 30px rgba(15, 35, 61, 0.055);
    min-width: 320px;
    overflow-x: hidden;
    background: var(--teacher-bg);
    color: var(--teacher-text);
}

.teacher-shell::before {
    display: none;
}

.teacher-shell .app-shell {
    display: grid;
    width: 100%;
    max-width: none;
    min-height: 100vh;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 0;
    padding: 0;
}

.teacher-shell .sidebar {
    position: sticky;
    top: 0;
    z-index: 80;
    display: grid;
    width: 100%;
    min-height: 84px;
    grid-template-columns: minmax(190px, 240px) minmax(0, 1fr) minmax(190px, 240px);
    align-items: center;
    gap: 20px;
    padding: 12px 30px;
    border: 0;
    border-bottom: 1px solid var(--teacher-line);
    border-radius: 0;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 4px 18px rgba(15, 35, 61, 0.035);
    backdrop-filter: blur(14px);
}

.teacher-shell .teacher-brand {
    display: grid;
    min-width: 0;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 0;
    border: 0;
}

.teacher-shell .teacher-brand .egetrack-mark {
    width: 46px;
    height: 46px;
    box-shadow: none;
}

.teacher-shell .teacher-brand .brand-title {
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.48rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
}

.teacher-shell .teacher-brand .brand-tagline {
    margin-top: 5px;
    color: var(--teacher-warning);
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.teacher-shell .teacher-menu {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: 2px;
    margin: 0;
    overflow: visible;
}

.teacher-shell .teacher-menu .menu-link {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 46px;
    align-items: center;
    gap: 8px;
    padding: 0 10px;
    border: 0;
    border-radius: 6px;
    color: #33445a;
    font-size: 0.83rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.teacher-shell .teacher-menu .menu-link::before {
    display: none;
}

.teacher-shell .teacher-menu .menu-link::after {
    content: "";
    position: absolute;
    right: 10px;
    bottom: -13px;
    left: 10px;
    height: 2px;
    border-radius: 2px;
    background: transparent;
}

.teacher-shell .teacher-menu .menu-link:hover {
    border: 0;
    background: #f6f7f9;
    color: var(--teacher-navy);
    transform: none;
}

.teacher-shell .teacher-menu .menu-link.is-active {
    border: 0;
    background: var(--teacher-gold-soft);
    color: var(--teacher-navy);
    box-shadow: none;
}

.teacher-shell .teacher-menu .menu-link.is-active::after {
    background: var(--teacher-gold);
}

.teacher-shell .teacher-menu .ui-icon {
    width: 19px;
    height: 19px;
}

.teacher-account-menu {
    position: relative;
    justify-self: end;
    min-width: 0;
}

.teacher-account-summary {
    display: grid;
    min-width: 196px;
    min-height: 54px;
    grid-template-columns: 34px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 10px;
    padding: 7px 11px;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    color: var(--teacher-navy);
    cursor: pointer;
    list-style: none;
}

.teacher-account-summary::-webkit-details-marker {
    display: none;
}

.teacher-account-summary::marker {
    content: "";
}

.teacher-account-avatar {
    width: 32px;
    height: 32px;
    padding: 6px;
    border: 1px solid var(--teacher-line);
    border-radius: 50%;
}

.teacher-account-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.teacher-account-copy strong,
.teacher-account-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.teacher-account-copy strong {
    font-size: 0.86rem;
    font-weight: 800;
}

.teacher-account-copy small {
    color: var(--teacher-muted);
    font-size: 0.73rem;
}

.teacher-account-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 100;
    display: grid;
    width: 196px;
    padding: 6px;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: 0 16px 36px rgba(15, 35, 61, 0.12);
}

.teacher-account-dropdown a,
.teacher-account-dropdown button {
    display: flex;
    width: 100%;
    min-height: 40px;
    align-items: center;
    padding: 0 11px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--teacher-text);
    font: inherit;
    font-size: 0.86rem;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.teacher-account-dropdown a:hover,
.teacher-account-dropdown button:hover {
    background: var(--teacher-surface-muted);
    color: var(--teacher-navy);
}

.teacher-shell .workspace {
    display: grid;
    width: min(1600px, 100%);
    justify-self: center;
    align-content: start;
    gap: 24px;
    padding: 0 30px 42px;
}

.teacher-shell .topbar {
    position: relative;
    display: flex;
    min-height: 126px;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    overflow: visible;
    padding: 34px 10px 18px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.teacher-shell .topbar::after {
    display: none;
}

.teacher-shell .topbar-main {
    display: grid;
    min-width: 0;
    gap: 6px;
}

.teacher-shell .eyebrow {
    display: none;
}

.teacher-shell .page-title {
    margin: 0;
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 3.25rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
}

.teacher-shell .page-subtitle {
    display: none !important;
}

.teacher-shell .topbar-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.teacher-shell .content-stack {
    display: grid;
    gap: 20px;
}

.teacher-shell .surface-card,
.teacher-shell .metric-card,
.teacher-shell .message,
.teacher-shell .catalog-card,
.teacher-shell .task-feed-card,
.teacher-shell .teacher-review-hero,
.teacher-shell .teacher-review-main,
.teacher-shell .teacher-review-block,
.teacher-shell .formset-card,
.teacher-shell .auth-card {
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-shell .surface-card {
    padding: 22px;
}

.teacher-shell .section-title,
.teacher-shell .metric-value,
.teacher-shell .ranking-score,
.teacher-shell .list-row strong {
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0;
}

.teacher-shell .section-title {
    font-size: 1.65rem;
    line-height: 1.15;
}

.teacher-shell .section-kicker,
.teacher-shell .metric-label,
.teacher-shell .meta-label {
    color: var(--teacher-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.teacher-shell .muted,
.teacher-shell .metric-hint,
.teacher-shell .surface-card p {
    color: var(--teacher-muted);
}

.teacher-shell .button,
.teacher-shell .ghost-button,
.teacher-shell button.button,
.teacher-shell button.ghost-button,
.teacher-shell .task-bank-topbar-action {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 16px;
    border-radius: 7px;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.teacher-shell .button,
.teacher-shell button.button,
.teacher-shell .task-bank-topbar-action {
    border: 1px solid var(--teacher-navy);
    background: var(--teacher-navy);
    color: #ffffff;
    box-shadow: none;
}

.teacher-shell .button:hover,
.teacher-shell button.button:hover,
.teacher-shell .task-bank-topbar-action:hover {
    border-color: var(--accent-strong);
    background: var(--accent-strong);
    color: #ffffff;
    transform: none;
}

.teacher-shell .ghost-button,
.teacher-shell button.ghost-button {
    border: 1px solid var(--teacher-line-strong);
    background: var(--teacher-surface);
    color: var(--teacher-navy);
}

.teacher-shell .ghost-button:hover,
.teacher-shell button.ghost-button:hover,
.teacher-shell .ghost-button.is-active {
    border-color: #b9c4d0;
    background: var(--teacher-surface-muted);
    color: var(--teacher-navy);
    transform: none;
}

.teacher-shell .badge,
.teacher-shell .chip,
.teacher-shell .status-chip,
.teacher-shell .status-pill {
    min-height: 28px;
    padding: 4px 9px;
    border: 1px solid var(--teacher-line);
    border-radius: 6px;
    background: var(--teacher-surface-muted);
    color: #536176;
    font-size: 0.74rem;
    font-weight: 750;
}

.teacher-shell :is(.badge, .chip, .status-chip, .status-pill).success,
.teacher-shell :is(.badge, .chip, .status-chip, .status-pill).is-success {
    border-color: #cfe3d3;
    background: var(--teacher-success-soft);
    color: var(--teacher-success);
}

.teacher-shell :is(.badge, .chip, .status-chip, .status-pill).warning,
.teacher-shell :is(.badge, .chip, .status-chip, .status-pill).is-warning {
    border-color: #ead7b4;
    background: var(--teacher-warning-soft);
    color: var(--teacher-warning);
}

.teacher-shell :is(.badge, .chip, .status-chip, .status-pill).danger,
.teacher-shell :is(.badge, .chip, .status-chip, .status-pill).is-danger {
    border-color: #efcdca;
    background: var(--teacher-danger-soft);
    color: var(--teacher-danger);
}

.teacher-shell .list-row,
.teacher-shell .status-row,
.teacher-shell .info-tile,
.teacher-shell .empty-state,
.teacher-shell .catalog-link,
.teacher-shell .task-feed-details,
.teacher-shell .review-file-card,
.teacher-shell .math-box {
    border-color: var(--teacher-line);
    border-radius: 7px;
    background: var(--teacher-surface);
}

.teacher-shell .list-row:hover {
    border-color: var(--teacher-line-strong);
    background: #fbfcfd;
    transform: none;
}

.teacher-shell table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
}

.teacher-shell th,
.teacher-shell td {
    padding: 13px 14px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-text);
    font-size: 0.86rem;
    line-height: 1.35;
    text-align: left;
    vertical-align: middle;
}

.teacher-shell th {
    color: var(--teacher-muted);
    background: #fbfcfd;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.teacher-shell tr:last-child td {
    border-bottom: 0;
}

.teacher-shell :is(input, select, textarea, .plain-input) {
    border-color: var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
    color: var(--teacher-text);
}

.teacher-shell :is(input, select, textarea, .plain-input):focus {
    border-color: #7b8da3;
    box-shadow: 0 0 0 3px rgba(53, 92, 140, 0.1);
    outline: none;
}

.teacher-shell .stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-shell .metric-card {
    min-height: 112px;
    padding: 18px 22px;
    border: 0;
    border-right: 1px solid var(--teacher-line);
    border-radius: 0;
    box-shadow: none;
}

.teacher-shell .metric-card:last-child {
    border-right: 0;
}

.teacher-shell .metric-value {
    margin-top: 8px;
    font-size: 2.45rem;
    line-height: 1;
}

.teacher-shell .split-actions,
.teacher-shell .inline-actions,
.teacher-shell .tag-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.teacher-shell .empty-state {
    display: grid;
    min-height: 116px;
    place-content: center;
    padding: 24px;
    border-style: dashed;
    color: var(--teacher-muted);
    text-align: center;
}

.teacher-shell .empty-state h2 {
    margin: 0;
    color: var(--teacher-navy);
    font-size: 1.05rem;
}

.teacher-shell .teacher-profile-tabs,
.teacher-shell .student-profile-tabs,
.teacher-shell .lesson-tabs {
    border-bottom-color: var(--teacher-line);
}

.teacher-shell .teacher-profile-tab,
.teacher-shell .student-profile-tab,
.teacher-shell .lesson-tab {
    border-radius: 0;
    color: var(--teacher-muted);
}

.teacher-shell .teacher-profile-tab.is-active,
.teacher-shell .student-profile-tab.is-active,
.teacher-shell .lesson-tab.is-active {
    color: var(--teacher-navy);
}

.teacher-shell .teacher-profile-tab.is-active::after,
.teacher-shell .student-profile-tab.is-active::after,
.teacher-shell .lesson-tab.is-active::after {
    background: var(--teacher-gold);
}

.ui-icon-home {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 9-8 9 8'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E");
}

.ui-icon-users {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
}

.ui-icon-clipboard {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M9 2h6v4H9z'/%3E%3Cpath d='M8 11h8'/%3E%3Cpath d='M8 15h6'/%3E%3C/svg%3E");
}

.ui-icon-database {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v6c0 1.7 4 3 9 3s9-1.3 9-3V5'/%3E%3Cpath d='M3 11v6c0 1.7 4 3 9 3s9-1.3 9-3v-6'/%3E%3C/svg%3E");
}

.ui-icon-graduation {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 10 10-5 10 5-10 5z'/%3E%3Cpath d='M6 12v5c3 2 9 2 12 0v-5'/%3E%3Cpath d='M22 10v6'/%3E%3C/svg%3E");
}

.ui-icon-chart {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m7 15 4-4 3 3 5-7'/%3E%3C/svg%3E");
}

.ui-icon-chevron-down {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

.ui-icon-search {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");
}

.ui-icon-clock {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.ui-icon-alert {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
}

.ui-icon-arrow-right {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E");
}

.ui-icon-info {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
}

.ui-icon-chevron-right {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
}

.ui-icon-chevron-left {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
}

.ui-icon-plus {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
}

.teacher-schedule-workspace {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-schedule-toolbar {
    display: flex;
    min-height: 76px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 20px;
    border-bottom: 1px solid var(--teacher-line);
}

.teacher-schedule-modes {
    display: grid;
    overflow: hidden;
    grid-template-columns: repeat(3, auto);
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
}

.teacher-schedule-mode {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border-right: 1px solid var(--teacher-line);
    color: var(--teacher-navy);
    font-size: 0.82rem;
    font-weight: 800;
}

.teacher-schedule-mode:last-child {
    border-right: 0;
}

.teacher-schedule-mode.is-active {
    background: var(--teacher-gold-soft);
    color: var(--teacher-navy);
}

.teacher-schedule-week-navigation {
    display: flex;
    align-items: center;
    gap: 8px;
}

.teacher-schedule-week-arrow {
    width: 42px;
    min-width: 42px;
    padding: 0;
}

.teacher-schedule-week-label {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    color: var(--teacher-navy);
    font-size: 0.83rem;
    font-weight: 750;
}

.teacher-schedule-filters {
    display: grid;
    grid-template-columns: minmax(170px, 220px) minmax(190px, 280px) auto;
    gap: 12px;
    align-items: end;
    padding: 15px 20px;
    border-bottom: 1px solid var(--teacher-line);
    background: #fbfcfd;
}

.teacher-schedule-layout {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
}

.teacher-schedule-layout.has-drafts {
    grid-template-columns: minmax(0, 1fr) minmax(250px, 310px);
}

.teacher-schedule-days {
    min-width: 0;
    padding: 4px 20px 18px;
}

.teacher-schedule-day {
    padding-top: 17px;
}

.teacher-schedule-day + .teacher-schedule-day {
    margin-top: 6px;
    border-top: 1px solid var(--teacher-line);
}

.teacher-schedule-day-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 0 4px 10px;
}

.teacher-schedule-day-header h2,
.teacher-schedule-day-header span {
    margin: 0;
}

.teacher-schedule-day-header h2 {
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.18rem;
    font-weight: 600;
}

.teacher-schedule-day-header span {
    color: var(--teacher-muted);
    font-size: 0.76rem;
}

.teacher-schedule-day.is-today .teacher-schedule-day-header h2::after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 8px;
    border-radius: 50%;
    background: var(--teacher-gold);
    vertical-align: middle;
}

.teacher-schedule-day-rows {
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
}

.teacher-schedule-row {
    display: grid;
    min-height: 74px;
    grid-template-columns: 90px minmax(170px, 1.1fr) minmax(250px, 1.6fr) minmax(145px, 0.8fr) auto;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--teacher-line);
}

.teacher-schedule-row:last-child {
    border-bottom: 0;
}

.teacher-schedule-row:hover {
    background: #fbfcfd;
}

.teacher-schedule-time,
.teacher-schedule-lesson {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.teacher-schedule-time time,
.teacher-schedule-lesson strong {
    color: var(--teacher-navy);
    font-weight: 800;
}

.teacher-schedule-time span,
.teacher-schedule-lesson span {
    color: var(--teacher-muted);
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

.teacher-schedule-composition,
.teacher-schedule-state {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: 6px;
}

.teacher-schedule-composition .badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.teacher-schedule-composition .ui-icon {
    width: 14px;
    height: 14px;
}

.teacher-schedule-row-action {
    min-width: 106px;
}

.teacher-schedule-drafts {
    min-width: 0;
    padding: 19px 16px;
    border-left: 1px solid var(--teacher-line);
    background: #fbfcfd;
}

.teacher-schedule-drafts-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.teacher-schedule-drafts-header h2 {
    margin: 0;
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.22rem;
}

.teacher-schedule-draft-list {
    display: grid;
    gap: 10px;
}

.teacher-schedule-draft {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
    background: var(--teacher-surface);
}

.teacher-schedule-draft-title {
    display: grid;
    min-width: 0;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
}

.teacher-schedule-draft-title > span:last-child {
    display: grid;
    gap: 3px;
}

.teacher-schedule-draft-title strong {
    overflow-wrap: anywhere;
    color: var(--teacher-navy);
    font-size: 0.84rem;
}

.teacher-schedule-draft-title small,
.teacher-schedule-draft-counts {
    color: var(--teacher-muted);
    font-size: 0.72rem;
}

.teacher-schedule-draft-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.teacher-schedule-empty {
    margin-top: 16px;
}

.teacher-overview-top-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 20px;
}

.teacher-overview-panel {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-overview-panel-heading {
    display: flex;
    min-height: 62px;
    align-items: center;
    gap: 10px;
    padding: 0 20px;
    border-bottom: 1px solid var(--teacher-line);
}

.teacher-overview-panel-heading h2 {
    margin: 0;
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.36rem;
    font-weight: 600;
}

.teacher-overview-panel-heading .ui-icon {
    width: 21px;
    height: 21px;
    color: var(--teacher-navy);
}

.teacher-overview-schedule-list,
.teacher-overview-action-list,
.teacher-overview-focus-list {
    display: grid;
}

.teacher-overview-schedule-row {
    display: grid;
    min-height: 78px;
    grid-template-columns: 58px 16px minmax(160px, 1fr) auto auto 18px;
    align-items: center;
    gap: 10px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-text);
}

.teacher-overview-schedule-row:last-child,
.teacher-overview-action-row:last-child,
.teacher-overview-focus-row:last-child {
    border-bottom: 0;
}

.teacher-overview-schedule-row:hover,
.teacher-overview-action-row:hover,
.teacher-overview-focus-row:hover {
    background: #fbfcfd;
}

.teacher-overview-schedule-row time {
    color: var(--teacher-navy);
    font-size: 0.92rem;
    font-weight: 850;
}

.teacher-overview-timeline-marker {
    position: relative;
    width: 12px;
    height: 12px;
    border: 2px solid #91a0b2;
    border-radius: 50%;
    background: var(--teacher-surface);
}

.teacher-overview-schedule-row.is-success .teacher-overview-timeline-marker {
    border-color: var(--teacher-success);
    background: var(--teacher-success-soft);
}

.teacher-overview-schedule-row.is-warning .teacher-overview-timeline-marker {
    border-color: var(--teacher-gold);
    background: var(--teacher-warning-soft);
}

.teacher-overview-lesson-copy {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.teacher-overview-lesson-copy strong,
.teacher-overview-lesson-copy small {
    overflow-wrap: anywhere;
}

.teacher-overview-lesson-copy strong {
    color: var(--teacher-navy);
    font-size: 0.9rem;
}

.teacher-overview-lesson-copy small {
    color: var(--teacher-muted);
    font-size: 0.76rem;
}

.teacher-overview-status {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 0 9px;
    border: 1px solid var(--teacher-line);
    border-radius: 6px;
    background: var(--teacher-surface-muted);
    color: var(--teacher-muted);
    font-size: 0.7rem;
    font-weight: 800;
}

.teacher-overview-status.is-success {
    border-color: #cfe3d3;
    background: var(--teacher-success-soft);
    color: var(--teacher-success);
}

.teacher-overview-status.is-warning {
    border-color: #ead7b4;
    background: var(--teacher-warning-soft);
    color: var(--teacher-warning);
}

.teacher-overview-row-action {
    color: var(--teacher-info);
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

.teacher-overview-action-row {
    display: grid;
    min-height: 78px;
    grid-template-columns: 40px minmax(0, 1fr) auto 18px;
    align-items: center;
    gap: 12px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-text);
}

.teacher-overview-action-icon {
    display: grid;
    width: 38px;
    height: 38px;
    padding: 9px;
    border-radius: 50%;
    background: var(--teacher-info-soft);
    color: var(--teacher-info);
}

.teacher-overview-action-row.is-danger .teacher-overview-action-icon {
    background: var(--teacher-danger-soft);
    color: var(--teacher-danger);
}

.teacher-overview-action-row.is-warning .teacher-overview-action-icon {
    background: var(--teacher-warning-soft);
    color: var(--teacher-warning);
}

.teacher-overview-action-row.is-success .teacher-overview-action-icon {
    background: var(--teacher-success-soft);
    color: var(--teacher-success);
}

.teacher-overview-action-copy {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.teacher-overview-action-copy strong {
    color: var(--teacher-navy);
    font-size: 0.86rem;
}

.teacher-overview-action-copy small {
    color: var(--teacher-muted);
    font-size: 0.74rem;
    overflow-wrap: anywhere;
}

.teacher-overview-focus-head,
.teacher-overview-focus-row {
    display: grid;
    grid-template-columns: minmax(170px, 0.9fr) minmax(250px, 1.7fr) minmax(130px, 0.8fr) auto 18px;
    align-items: center;
    gap: 14px;
}

.teacher-overview-focus-head {
    min-height: 42px;
    padding: 0 20px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-muted);
    background: #fbfcfd;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.teacher-overview-focus-row {
    min-height: 66px;
    padding: 10px 20px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-text);
}

.teacher-overview-student {
    display: grid;
    min-width: 0;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
}

.teacher-overview-avatar {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--teacher-info-soft);
    color: var(--teacher-info);
    font-size: 0.78rem;
    font-weight: 850;
}

.teacher-overview-student strong,
.teacher-overview-reason,
.teacher-overview-last-result {
    overflow-wrap: anywhere;
}

.teacher-overview-student strong {
    color: var(--teacher-navy);
    font-size: 0.86rem;
}

.teacher-overview-reason,
.teacher-overview-last-result {
    display: grid;
    gap: 2px;
    font-size: 0.78rem;
}

.teacher-overview-reason small,
.teacher-overview-last-result small {
    color: var(--teacher-muted);
    font-size: 0.7rem;
}

.teacher-overview-last-result.is-danger strong {
    color: var(--teacher-danger);
}

.teacher-overview-last-result.is-success strong {
    color: var(--teacher-success);
}

.teacher-overview-week {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(180px, 1fr));
    align-items: stretch;
}

.teacher-overview-week-period,
.teacher-overview-week-metric {
    display: flex;
    min-height: 96px;
    align-items: center;
    gap: 12px;
    padding: 16px 22px;
    border-right: 1px solid var(--teacher-line);
}

.teacher-overview-week-metric:last-child {
    border-right: 0;
}

.teacher-overview-week-period > span:last-child,
.teacher-overview-week-metric > span:last-child {
    display: grid;
    gap: 2px;
}

.teacher-overview-week-period strong,
.teacher-overview-week-metric > strong {
    color: var(--teacher-navy);
}

.teacher-overview-week-period small,
.teacher-overview-week-metric small {
    color: var(--teacher-muted);
    font-size: 0.72rem;
}

.teacher-overview-week-metric > strong {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 600;
}

.teacher-overview-week-icon {
    width: 24px;
    height: 24px;
    color: var(--teacher-info);
}

.teacher-overview-empty {
    display: grid;
    min-height: 110px;
    place-content: center;
    padding: 20px;
    color: var(--teacher-muted);
    font-size: 0.82rem;
    text-align: center;
}

.teacher-work-tabs {
    display: inline-grid;
    justify-self: start;
    overflow: hidden;
    grid-template-columns: repeat(4, auto);
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-work-tab {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 18px;
    border-right: 1px solid var(--teacher-line);
    color: var(--teacher-navy);
    font-size: 0.82rem;
    font-weight: 800;
}

.teacher-work-tab:last-child {
    border-right: 0;
}

.teacher-work-tab strong {
    display: inline-grid;
    min-width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 5px;
    background: var(--teacher-surface-muted);
    color: var(--teacher-muted);
    font-size: 0.72rem;
}

.teacher-work-tab.is-active {
    background: var(--teacher-gold-soft);
}

.teacher-work-tab.is-active strong {
    background: var(--teacher-surface);
    color: var(--teacher-warning);
}

.teacher-work-filter {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(170px, 250px) auto auto;
    gap: 10px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-work-search {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    color: var(--teacher-muted);
}

.teacher-work-search input,
.teacher-work-student-filter select {
    width: 100%;
    min-height: 42px;
}

.teacher-work-search input {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.teacher-work-search input:focus {
    box-shadow: none;
}

.teacher-work-filter-clear,
.teacher-work-template-link,
.teacher-work-row-action {
    color: var(--teacher-info);
    font-size: 0.8rem;
    font-weight: 800;
}

.teacher-work-section {
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-work-section-heading {
    display: flex;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 20px;
    border-bottom: 1px solid var(--teacher-line);
}

.teacher-work-section-heading h2 {
    margin: 0;
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.36rem;
    font-weight: 600;
}

.teacher-work-section-count {
    display: inline-grid;
    min-width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 6px;
    background: var(--teacher-warning-soft);
    color: var(--teacher-warning);
    font-size: 0.78rem;
    font-weight: 850;
}

.teacher-work-template-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.teacher-work-review-list {
    display: grid;
}

.teacher-work-review-row {
    display: grid;
    min-height: 72px;
    grid-template-columns: minmax(150px, 0.9fr) minmax(190px, 1.25fr) minmax(100px, 0.7fr) minmax(110px, 0.7fr) minmax(110px, 0.8fr) auto;
    align-items: center;
    gap: 14px;
    padding: 11px 20px;
    border-bottom: 1px solid var(--teacher-line);
}

.teacher-work-review-row:last-child {
    border-bottom: 0;
}

.teacher-work-review-row:hover {
    background: #fbfcfd;
}

.teacher-work-review-student {
    display: grid;
    min-width: 0;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
}

.teacher-work-avatar {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--teacher-info-soft);
    color: var(--teacher-info);
    font-size: 0.78rem;
    font-weight: 850;
}

.teacher-work-review-student strong,
.teacher-work-review-context strong {
    overflow-wrap: anywhere;
    color: var(--teacher-navy);
    font-size: 0.82rem;
}

.teacher-work-review-context {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.teacher-work-review-context small,
.teacher-work-review-row time,
.teacher-work-review-task,
.teacher-work-submission {
    color: var(--teacher-muted);
    font-size: 0.76rem;
}

.teacher-work-submission.is-file,
.teacher-work-submission.is-files {
    color: var(--teacher-info);
}

.teacher-work-table-wrap {
    overflow-x: auto;
}

.teacher-work-table {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.teacher-work-table th:first-child,
.teacher-work-table td:first-child {
    padding-left: 20px;
}

.teacher-work-table th:last-child,
.teacher-work-table td:last-child {
    padding-right: 20px;
}

.teacher-work-title {
    display: inline-block;
    max-width: 270px;
    color: var(--teacher-navy);
    font-weight: 800;
    overflow-wrap: anywhere;
}

.teacher-work-status,
.teacher-work-visibility {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 0 9px;
    border: 1px solid var(--teacher-line);
    border-radius: 6px;
    background: var(--teacher-surface-muted);
    color: var(--teacher-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.teacher-work-status.is-success,
.teacher-work-visibility.is-success {
    border-color: #cfe3d3;
    background: var(--teacher-success-soft);
    color: var(--teacher-success);
}

.teacher-work-status.is-warning,
.teacher-work-visibility.is-warning {
    border-color: #ead7b4;
    background: var(--teacher-warning-soft);
    color: var(--teacher-warning);
}

.teacher-work-status.is-danger,
.teacher-work-visibility.is-danger {
    border-color: #efcdca;
    background: var(--teacher-danger-soft);
    color: var(--teacher-danger);
}

.teacher-work-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    white-space: nowrap;
}

.teacher-work-more {
    position: relative;
}

.teacher-work-more summary {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid var(--teacher-line);
    border-radius: 6px;
    color: var(--teacher-navy);
    cursor: pointer;
    list-style: none;
}

.teacher-work-more summary::-webkit-details-marker {
    display: none;
}

.teacher-work-more-menu {
    position: absolute;
    right: 0;
    z-index: 20;
    display: grid;
    min-width: 190px;
    padding: 6px;
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
    background: var(--teacher-surface);
    box-shadow: 0 16px 36px rgba(15, 35, 61, 0.12);
}

.teacher-work-more-menu a {
    min-height: 38px;
    padding: 9px 10px;
    border-radius: 5px;
    color: var(--teacher-text);
    font-size: 0.78rem;
    font-weight: 700;
}

.teacher-work-more-menu a:hover {
    background: var(--teacher-surface-muted);
}

.teacher-work-empty {
    margin: 16px;
}

.teacher-library-workspace {
    display: grid;
    overflow: visible;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-library-workspace-header {
    display: flex;
    min-height: 68px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--teacher-line);
}

.teacher-library-workspace-context {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.teacher-library-workspace-context > span:not(.ui-icon) {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.teacher-library-workspace-context strong,
.teacher-library-workspace-context small {
    overflow-wrap: anywhere;
}

.teacher-library-workspace-context strong {
    color: var(--teacher-navy);
    font-size: 0.85rem;
}

.teacher-library-workspace-context small {
    color: var(--teacher-muted);
    font-size: 0.74rem;
}

.teacher-library-workspace-header-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 9px;
}

.teacher-library-workspace-create-menu {
    position: relative;
}

.teacher-library-workspace-create-menu > summary {
    list-style: none;
    cursor: pointer;
}

.teacher-library-workspace-create-menu > summary::-webkit-details-marker {
    display: none;
}

.teacher-library-workspace-create-popover {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    z-index: 30;
    display: grid;
    min-width: 220px;
    padding: 6px;
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
    background: var(--teacher-surface);
    box-shadow: 0 16px 36px rgba(15, 35, 61, 0.12);
}

.teacher-library-workspace-create-popover a {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: 9px;
    padding: 0 10px;
    border-radius: 5px;
    color: var(--teacher-text);
    font-size: 0.8rem;
    font-weight: 700;
}

.teacher-library-workspace-create-popover a:hover {
    background: var(--teacher-surface-muted);
}

.teacher-library-workspace-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(130px, 180px) minmax(150px, 200px) auto auto;
    gap: 10px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid var(--teacher-line);
    background: #fbfcfd;
}

.teacher-library-workspace-search {
    display: grid;
    min-width: 0;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
    color: var(--teacher-muted);
}

.teacher-library-workspace-search input {
    min-height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.teacher-library-workspace-filter select {
    width: 100%;
    min-height: 44px;
}

.teacher-library-workspace-tabs {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0;
    overflow-x: auto;
    border-bottom: 1px solid var(--teacher-line);
    scrollbar-width: thin;
}

.teacher-library-workspace-tab {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 52px;
    align-items: center;
    gap: 7px;
    padding: 0 16px;
    color: var(--teacher-muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.teacher-library-workspace-tab::after {
    content: "";
    position: absolute;
    right: 14px;
    bottom: 0;
    left: 14px;
    height: 2px;
    background: transparent;
}

.teacher-library-workspace-tab.is-active {
    color: var(--teacher-navy);
}

.teacher-library-workspace-tab.is-active::after {
    background: var(--teacher-gold);
}

.teacher-library-workspace-tab-count {
    color: var(--teacher-warning);
    font-size: 0.72rem;
}

.teacher-library-workspace-body {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.8fr);
}

.teacher-library-workspace-list-panel {
    min-width: 0;
    border-right: 1px solid var(--teacher-line);
}

.teacher-library-workspace-list-head,
.teacher-library-workspace-row {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(220px, 1.7fr) minmax(110px, 0.65fr) minmax(100px, 0.55fr) minmax(120px, 0.7fr) 18px;
    align-items: center;
    gap: 12px;
}

.teacher-library-workspace-list-head {
    min-height: 42px;
    padding: 0 16px;
    border-bottom: 1px solid var(--teacher-line);
    background: #fbfcfd;
    color: var(--teacher-muted);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.teacher-library-workspace-row {
    min-height: 68px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-text);
}

.teacher-library-workspace-row:last-child {
    border-bottom: 0;
}

.teacher-library-workspace-row:hover,
.teacher-library-workspace-row.is-selected {
    background: #fbfcfd;
}

.teacher-library-workspace-row.is-selected {
    box-shadow: inset 3px 0 0 var(--teacher-gold);
}

.teacher-library-workspace-row-main {
    display: grid;
    min-width: 0;
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.teacher-library-workspace-row-main > span:last-child {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.teacher-library-workspace-row-main strong {
    overflow-wrap: anywhere;
    color: var(--teacher-navy);
    font-size: 0.83rem;
}

.teacher-library-workspace-row-main small,
.teacher-library-workspace-row-type,
.teacher-library-workspace-row-exam,
.teacher-library-workspace-row time {
    color: var(--teacher-muted);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.teacher-library-workspace-row-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid var(--teacher-line);
    border-radius: 6px;
    background: var(--teacher-surface-muted);
    color: var(--teacher-info);
}

.teacher-library-workspace-row-icon .ui-icon {
    width: 17px;
    height: 17px;
}

.teacher-library-workspace-row-arrow {
    color: var(--teacher-info);
    font-size: 1rem;
}

.teacher-library-workspace-preview {
    min-width: 0;
    padding: 22px;
    background: #fbfcfd;
}

.teacher-library-workspace-preview-card {
    display: grid;
    gap: 16px;
}

.teacher-library-workspace-preview-card > h2,
.teacher-library-workspace-preview-card > p {
    margin: 0;
}

.teacher-library-workspace-preview-card > h2 {
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.65rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.teacher-library-workspace-preview-card > p {
    color: var(--teacher-muted);
    font-size: 0.8rem;
    line-height: 1.5;
}

.teacher-library-workspace-preview-meta {
    display: grid;
    gap: 4px;
    color: var(--teacher-muted);
    font-size: 0.72rem;
}

.teacher-library-workspace-preview-blocks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
    background: var(--teacher-line);
}

.teacher-library-workspace-preview-block {
    display: grid;
    min-width: 0;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    padding: 10px;
    background: var(--teacher-surface);
}

.teacher-library-workspace-preview-block:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.teacher-library-workspace-preview-block > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.teacher-library-workspace-preview-block small {
    color: var(--teacher-muted);
    font-size: 0.65rem;
}

.teacher-library-workspace-preview-block strong {
    color: var(--teacher-navy);
    font-size: 0.76rem;
    overflow-wrap: break-word;
    word-break: normal;
}

.teacher-library-workspace-composition {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--teacher-line);
}

.teacher-library-workspace-composition h3 {
    margin: 14px 0 6px;
    color: var(--teacher-navy);
    font-size: 0.83rem;
}

.teacher-library-workspace-composition-row {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--teacher-line);
    font-size: 0.76rem;
}

.teacher-library-workspace-composition-row small {
    color: var(--teacher-muted);
    text-align: right;
}

.teacher-library-workspace-preview-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding-top: 2px;
}

.teacher-library-workspace-preview-actions form,
.teacher-library-workspace-preview-actions .button,
.teacher-library-workspace-preview-actions .ghost-button {
    width: 100%;
}

.teacher-library-workspace-preview-empty {
    min-height: 260px;
    align-content: center;
    text-align: center;
}

.teacher-library-workspace-empty {
    margin: 16px;
}

.teacher-analytics-page .topbar {
    align-items: flex-end;
}

.teacher-analytics-page .topbar-actions {
    flex: 1 1 auto;
}

.analytics-scope-form,
.analytics-periods,
.analytics-student-control,
.analytics-metric-switcher {
    display: flex;
    align-items: center;
}

.analytics-scope-form {
    justify-content: flex-end;
    gap: 10px;
}

.analytics-periods,
.analytics-metric-switcher {
    overflow: hidden;
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
}

.analytics-segment,
.analytics-metric-option {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border-left: 1px solid var(--teacher-line);
    color: var(--teacher-navy);
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.analytics-segment:first-child,
.analytics-metric-option:first-child {
    border-left: 0;
}

.analytics-segment.is-active,
.analytics-metric-option.is-active {
    background: var(--teacher-navy);
    color: #ffffff;
}

.analytics-student-control {
    min-height: 44px;
    gap: 8px;
    padding: 0 11px;
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
}

.analytics-student-control .ui-icon {
    width: 18px;
    height: 18px;
}

.analytics-student-control select {
    max-width: 210px;
    min-height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--teacher-navy);
    font-size: 0.8rem;
    font-weight: 750;
}

.analytics-kpis {
    display: grid;
    overflow: hidden;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.analytics-kpi {
    display: grid;
    min-width: 0;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 116px;
    padding: 18px 22px;
    border-left: 1px solid var(--teacher-line);
}

.analytics-kpi:first-child {
    border-left: 0;
}

.analytics-kpi-icon {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
    background: var(--teacher-surface-muted);
    color: var(--teacher-navy);
}

.analytics-kpi-icon .ui-icon {
    width: 24px;
    height: 24px;
}

.analytics-kpi-copy {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.analytics-kpi-label,
.analytics-kpi-hint {
    color: var(--teacher-muted);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.analytics-kpi-label {
    font-weight: 800;
}

.analytics-kpi-value {
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 2.35rem;
    font-weight: 600;
    line-height: 1;
}

.analytics-main-grid {
    display: grid;
    grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.35fr);
    gap: 20px;
}

.analytics-panel,
.analytics-exam-panel {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.analytics-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.analytics-panel h2,
.analytics-exam-panel h2 {
    margin: 0;
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.38rem;
    font-weight: 600;
}

.analytics-panel-subtitle {
    margin: 4px 0 0;
    color: var(--teacher-muted);
    font-size: 0.76rem;
}

.analytics-attention-table {
    display: grid;
}

.analytics-attention-head,
.analytics-attention-row {
    display: grid;
    grid-template-columns: minmax(140px, 1.05fr) minmax(125px, 0.9fr) minmax(100px, 0.75fr) auto;
    gap: 10px;
    align-items: center;
}

.analytics-attention-head {
    padding-bottom: 9px;
    color: var(--teacher-muted);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.analytics-attention-row {
    min-height: 60px;
    padding: 9px 0;
    border-top: 1px solid var(--teacher-line);
}

.analytics-person {
    display: grid;
    min-width: 0;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
}

.analytics-person-avatar {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--teacher-info-soft);
    color: var(--teacher-info);
    font-size: 0.76rem;
    font-weight: 850;
}

.analytics-person strong,
.analytics-signal strong {
    overflow-wrap: anywhere;
    color: var(--teacher-navy);
    font-size: 0.78rem;
}

.analytics-signal {
    position: relative;
    padding-left: 14px;
}

.analytics-signal::before {
    content: "";
    position: absolute;
    top: 0.45em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--teacher-muted);
}

.analytics-signal.is-warning::before {
    background: var(--teacher-warning);
}

.analytics-signal.is-danger::before {
    background: var(--teacher-danger);
}

.analytics-attention-detail,
.analytics-attention-action {
    font-size: 0.76rem;
}

.analytics-attention-detail {
    color: var(--teacher-muted);
}

.analytics-attention-action {
    color: var(--teacher-info);
    font-weight: 800;
    white-space: nowrap;
}

.analytics-chart-wrap {
    position: relative;
    min-height: 250px;
}

.analytics-chart {
    display: block;
    width: 100%;
    min-height: 240px;
    overflow: visible;
}

.analytics-chart-grid {
    stroke: var(--teacher-line);
    stroke-width: 1;
}

.analytics-chart-axis {
    fill: var(--teacher-muted);
    font-family: Manrope, sans-serif;
    font-size: 12px;
}

.analytics-chart-current,
.analytics-chart-previous {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.analytics-chart-current {
    stroke: var(--teacher-navy);
    stroke-width: 4;
}

.analytics-chart-previous {
    stroke: #9ca8b6;
    stroke-width: 3;
    stroke-dasharray: 10 10;
}

.analytics-chart-point {
    fill: var(--teacher-surface);
    stroke: var(--teacher-navy);
    stroke-width: 2;
}

.analytics-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 4px;
    color: var(--teacher-muted);
    font-size: 0.72rem;
}

.analytics-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.analytics-legend-line {
    display: inline-block;
    width: 26px;
    height: 2px;
    background: var(--teacher-navy);
}

.analytics-legend-line.is-previous {
    height: 0;
    border-top: 2px dashed #9ca8b6;
    background: transparent;
}

.analytics-narrative {
    display: grid;
    gap: 6px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--teacher-line);
    color: var(--teacher-text);
    font-size: 0.78rem;
}

.analytics-narrative p {
    margin: 0;
}

.analytics-exam-group + .analytics-exam-group {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--teacher-line);
}

.analytics-exam-group-title {
    margin: 0 0 8px;
    color: var(--teacher-muted);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.analytics-exam-grid {
    display: grid;
    overflow: hidden;
    grid-template-columns: repeat(12, minmax(64px, 1fr));
    border: 1px solid var(--teacher-line);
    border-radius: 7px;
}

.analytics-exam-group.is-second .analytics-exam-grid {
    grid-template-columns: repeat(7, minmax(80px, 1fr));
}

.analytics-exam-cell {
    display: grid;
    min-height: 88px;
    align-content: center;
    justify-items: center;
    gap: 3px;
    padding: 8px 5px;
    border-left: 1px solid var(--teacher-line);
    background: var(--teacher-surface);
    text-align: center;
}

.analytics-exam-cell:first-child {
    border-left: 0;
}

.analytics-exam-cell.is-success {
    background: var(--teacher-success-soft);
}

.analytics-exam-cell.is-warning {
    background: var(--teacher-warning-soft);
}

.analytics-exam-cell.is-danger {
    background: var(--teacher-danger-soft);
}

.analytics-exam-number {
    color: var(--teacher-navy);
    font-size: 0.76rem;
    font-weight: 850;
}

.analytics-exam-accuracy {
    color: var(--teacher-navy);
    font-family: var(--font-heading);
    font-size: 1.22rem;
    font-weight: 600;
    line-height: 1;
}

.analytics-exam-attempts {
    color: var(--teacher-muted);
    font-size: 0.66rem;
}

.analytics-empty {
    display: grid;
    min-height: 150px;
    place-items: center;
    color: var(--teacher-muted);
    font-size: 0.8rem;
    text-align: center;
}

@media (max-width: 1180px) {
    .teacher-analytics-page .topbar {
        align-items: stretch;
    }

    .analytics-scope-form {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .analytics-main-grid {
        grid-template-columns: 1fr;
    }

    .analytics-exam-grid,
    .analytics-exam-group.is-second .analytics-exam-grid {
        grid-template-columns: repeat(4, minmax(90px, 1fr));
    }

    .analytics-exam-cell {
        border-top: 1px solid var(--teacher-line);
    }
}

@media (max-width: 760px) {
    .analytics-periods,
    .analytics-student-control,
    .analytics-apply {
        width: 100%;
    }

    .analytics-segment {
        flex: 1 1 0;
        padding-inline: 8px;
    }

    .analytics-student-control select {
        width: 100%;
        max-width: none;
    }

    .analytics-kpis {
        grid-template-columns: 1fr;
    }

    .analytics-kpi {
        border-top: 1px solid var(--teacher-line);
        border-left: 0;
    }

    .analytics-kpi:first-child {
        border-top: 0;
    }

    .analytics-panel,
    .analytics-exam-panel {
        padding: 15px;
    }

    .analytics-panel-header {
        align-items: stretch;
        flex-direction: column;
    }

    .analytics-metric-switcher {
        width: 100%;
    }

    .analytics-metric-option {
        flex: 1 1 0;
        padding-inline: 6px;
    }

    .analytics-attention-head {
        display: none;
    }

    .analytics-attention-row {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .analytics-signal,
    .analytics-attention-detail {
        grid-column: 1 / -1;
    }

    .analytics-exam-grid,
    .analytics-exam-group.is-second .analytics-exam-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .teacher-library-workspace-toolbar {
        grid-template-columns: minmax(240px, 1fr) repeat(2, minmax(140px, 0.5fr)) auto;
    }

    .teacher-library-workspace-toolbar > .ghost-button:last-child {
        grid-column: 1 / -1;
    }

    .teacher-library-workspace-body {
        grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
    }

    .teacher-library-workspace-list-head,
    .teacher-library-workspace-row {
        grid-template-columns: minmax(200px, 1.5fr) minmax(100px, 0.6fr) minmax(90px, 0.5fr) 18px;
    }

    .teacher-library-workspace-list-head > :nth-child(4),
    .teacher-library-workspace-row > time {
        display: none;
    }
}

@media (max-width: 820px) {
    .teacher-library-workspace-header {
        align-items: stretch;
        flex-direction: column;
    }

    .teacher-library-workspace-header-actions {
        align-items: stretch;
    }

    .teacher-library-workspace-header-actions > *,
    .teacher-library-workspace-header-actions .button,
    .teacher-library-workspace-header-actions .ghost-button {
        flex: 1 1 0;
        width: 100%;
    }

    .teacher-library-workspace-toolbar {
        grid-template-columns: 1fr;
    }

    .teacher-library-workspace-toolbar > .ghost-button:last-child {
        grid-column: auto;
    }

    .teacher-library-workspace-body {
        grid-template-columns: 1fr;
    }

    .teacher-library-workspace-list-panel {
        border-right: 0;
    }

    .teacher-library-workspace-preview {
        border-top: 1px solid var(--teacher-line);
    }
}

@media (max-width: 560px) {
    .teacher-library-workspace-header,
    .teacher-library-workspace-toolbar,
    .teacher-library-workspace-preview {
        padding-inline: 12px;
    }

    .teacher-library-workspace-header-actions {
        flex-direction: column;
    }

    .teacher-library-workspace-list-head {
        display: none;
    }

    .teacher-library-workspace-row {
        grid-template-columns: minmax(0, 1fr) 18px;
        gap: 7px;
        padding: 13px 12px;
    }

    .teacher-library-workspace-row-type,
    .teacher-library-workspace-row-exam {
        grid-column: 1;
        padding-left: 44px;
    }

    .teacher-library-workspace-row-arrow {
        grid-column: 2;
        grid-row: 1;
    }

    .teacher-library-workspace-preview-blocks {
        grid-template-columns: 1fr;
    }

    .teacher-library-workspace-preview-block {
        grid-column: auto;
    }
}

@media (max-width: 1080px) {
    .teacher-work-review-row {
        grid-template-columns: minmax(145px, 1fr) minmax(180px, 1.2fr) minmax(100px, 0.7fr) auto;
    }

    .teacher-work-review-task,
    .teacher-work-submission {
        display: none;
    }
}

@media (max-width: 760px) {
    .teacher-work-tabs {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .teacher-work-tab:nth-child(2) {
        border-right: 0;
    }

    .teacher-work-tab:nth-child(-n + 2) {
        border-bottom: 1px solid var(--teacher-line);
    }

    .teacher-work-filter {
        grid-template-columns: 1fr;
    }

    .teacher-work-filter-clear {
        text-align: center;
    }

    .teacher-work-review-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
        padding: 15px 16px;
    }

    .teacher-work-review-context,
    .teacher-work-review-row time {
        padding-left: 43px;
    }

    .teacher-work-review-action {
        width: 100%;
        margin-top: 4px;
    }

    .teacher-work-section-heading {
        align-items: flex-start;
        flex-direction: column;
        padding-block: 14px;
    }

    .teacher-work-template-link {
        min-height: 38px;
    }

    .teacher-work-table,
    .teacher-work-table tbody,
    .teacher-work-table tr,
    .teacher-work-table td {
        display: block;
        width: 100%;
    }

    .teacher-work-table thead {
        display: none;
    }

    .teacher-work-table tr {
        padding: 14px 16px;
        border-bottom: 1px solid var(--teacher-line);
    }

    .teacher-work-table tr:last-child {
        border-bottom: 0;
    }

    .teacher-work-table td,
    .teacher-work-table td:first-child,
    .teacher-work-table td:last-child {
        display: grid;
        min-height: 0;
        grid-template-columns: 116px minmax(0, 1fr);
        gap: 10px;
        padding: 6px 0;
        border: 0;
    }

    .teacher-work-table td::before {
        content: attr(data-label);
        color: var(--teacher-muted);
        font-size: 0.7rem;
        font-weight: 800;
        text-transform: uppercase;
    }

    .teacher-work-table .teacher-work-actions {
        display: flex;
        justify-content: flex-start;
        padding-top: 10px;
    }

    .teacher-work-table .teacher-work-actions::before {
        display: none;
    }
}

@media (max-width: 1050px) {
    .teacher-overview-top-grid {
        grid-template-columns: 1fr;
    }

    .teacher-overview-week {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .teacher-overview-week-period,
    .teacher-overview-week-metric {
        border-bottom: 1px solid var(--teacher-line);
    }

    .teacher-overview-week-metric:nth-child(2) {
        border-right: 0;
    }

    .teacher-overview-week-metric:nth-last-child(-n + 2) {
        border-bottom: 0;
    }
}

@media (max-width: 760px) {
    .teacher-overview-schedule-row {
        grid-template-columns: 48px 12px minmax(0, 1fr) 18px;
        padding-inline: 14px;
    }

    .teacher-overview-status,
    .teacher-overview-schedule-row .teacher-overview-row-action {
        display: none;
    }

    .teacher-overview-action-row {
        grid-template-columns: 36px minmax(0, 1fr) 18px;
        padding-inline: 14px;
    }

    .teacher-overview-action-row .teacher-overview-row-action {
        display: none;
    }

    .teacher-overview-focus-head {
        display: none;
    }

    .teacher-overview-focus-row {
        grid-template-columns: minmax(0, 1fr) 18px;
        gap: 8px;
        padding: 14px;
    }

    .teacher-overview-focus-row > :not(.teacher-overview-student):not(.ui-icon) {
        grid-column: 1;
        padding-left: 43px;
    }

    .teacher-overview-focus-row > .ui-icon {
        grid-column: 2;
        grid-row: 1;
    }

    .teacher-overview-focus-row .teacher-overview-row-action {
        display: none;
    }

    .teacher-overview-week {
        grid-template-columns: 1fr;
    }

    .teacher-overview-week-period,
    .teacher-overview-week-metric {
        min-height: 76px;
        border-right: 0;
        border-bottom: 1px solid var(--teacher-line) !important;
    }

    .teacher-overview-week-metric:last-child {
        border-bottom: 0 !important;
    }
}

@media (max-width: 1260px) {
    .teacher-schedule-layout.has-drafts {
        grid-template-columns: minmax(0, 1fr);
    }

    .teacher-schedule-drafts {
        border-top: 1px solid var(--teacher-line);
        border-left: 0;
    }

    .teacher-schedule-draft-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .teacher-schedule-row {
        grid-template-columns: 78px minmax(150px, 1fr) minmax(220px, 1.4fr) auto;
    }

    .teacher-schedule-state {
        display: none;
    }
}

@media (max-width: 840px) {
    .teacher-schedule-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .teacher-schedule-modes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .teacher-schedule-week-navigation {
        justify-content: space-between;
    }

    .teacher-schedule-filters {
        grid-template-columns: 1fr;
    }

    .teacher-schedule-row {
        grid-template-columns: 66px minmax(0, 1fr) auto;
    }

    .teacher-schedule-composition {
        grid-column: 2 / -1;
    }

    .teacher-schedule-row-action {
        grid-column: 3;
        grid-row: 1;
    }
}

@media (max-width: 560px) {
    .teacher-schedule-toolbar,
    .teacher-schedule-days,
    .teacher-schedule-drafts {
        padding-inline: 12px;
    }

    .teacher-schedule-mode {
        padding-inline: 8px;
        font-size: 0.75rem;
    }

    .teacher-schedule-row {
        grid-template-columns: 58px minmax(0, 1fr);
        gap: 10px;
        align-items: start;
    }

    .teacher-schedule-row-action,
    .teacher-schedule-composition {
        grid-column: 1 / -1;
    }

    .teacher-schedule-row-action {
        grid-row: auto;
        width: 100%;
    }

    .teacher-schedule-draft-list {
        grid-template-columns: 1fr;
    }
}

.teacher-roster {
    display: grid;
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--teacher-line);
    border-radius: 8px;
    background: var(--teacher-surface);
    box-shadow: var(--shadow);
}

.teacher-roster-heading {
    padding: 22px 24px 14px;
}

.teacher-roster-title-line {
    display: flex;
    align-items: center;
    gap: 12px;
}

.teacher-roster-title-line .section-title {
    margin: 0;
}

.teacher-roster-active-count {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    padding: 0 10px;
    border: 1px solid var(--teacher-line);
    border-radius: 6px;
    background: var(--teacher-surface-muted);
    color: var(--teacher-muted);
    font-size: 0.78rem;
    font-weight: 750;
}

.teacher-roster-controls {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto minmax(460px, auto);
    gap: 10px;
    align-items: center;
    padding: 14px 24px;
    border-top: 1px solid var(--teacher-line);
    border-bottom: 1px solid var(--teacher-line);
    background: #fbfcfd;
}

.teacher-roster-search {
    display: grid;
    min-width: 0;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
    color: var(--teacher-muted);
}

.teacher-roster-search input {
    width: 100%;
    min-height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.teacher-roster-search input:focus {
    box-shadow: none;
}

.teacher-roster-search-submit {
    min-height: 44px;
    padding: 0 15px;
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
    color: var(--teacher-navy);
    font-weight: 800;
    cursor: pointer;
}

.teacher-roster-state-tabs {
    display: grid;
    overflow: hidden;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--teacher-line-strong);
    border-radius: 7px;
    background: var(--teacher-surface);
}

.teacher-roster-state-tab {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 14px;
    border-right: 1px solid var(--teacher-line);
    color: var(--teacher-navy);
    font-size: 0.8rem;
    font-weight: 800;
    text-align: center;
}

.teacher-roster-state-tab:last-child {
    border-right: 0;
}

.teacher-roster-state-tab.is-active {
    background: var(--teacher-navy);
    color: #ffffff;
}

.teacher-roster-state-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--teacher-muted);
}

.teacher-roster-state-dot.is-attention {
    background: var(--teacher-gold);
}

.teacher-roster-state-dot.is-ok {
    background: var(--teacher-success);
}

.teacher-roster-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 13px 24px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-muted);
    font-size: 0.8rem;
}

.teacher-roster-summary .ui-icon {
    width: 17px;
    height: 17px;
}

.teacher-roster-table {
    min-width: 0;
}

.teacher-roster-columns,
.teacher-roster-row {
    display: grid;
    min-width: 0;
    grid-template-columns:
        minmax(170px, 1.2fr)
        minmax(150px, 1fr)
        minmax(120px, 0.8fr)
        minmax(170px, 1fr)
        minmax(140px, 0.9fr)
        minmax(145px, 0.9fr)
        24px;
    align-items: center;
    column-gap: 14px;
}

.teacher-roster-columns {
    min-height: 46px;
    padding: 0 24px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-muted);
    background: #fbfcfd;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.teacher-roster-row {
    min-height: 82px;
    padding: 13px 24px;
    border-bottom: 1px solid var(--teacher-line);
    color: var(--teacher-text);
}

.teacher-roster-row:last-child {
    border-bottom: 0;
}

.teacher-roster-row:hover {
    background: #fbfcfd;
}

.teacher-roster-student {
    display: grid;
    min-width: 0;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
}

.teacher-roster-student strong {
    overflow-wrap: anywhere;
    color: var(--teacher-navy);
    font-size: 0.92rem;
}

.teacher-roster-avatar {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 50%;
    background: var(--teacher-info-soft);
    color: var(--teacher-info);
    font-size: 0.8rem;
    font-weight: 850;
}

.teacher-roster-score,
.teacher-roster-focus {
    display: grid;
    min-width: 0;
    gap: 3px;
    color: #34465d;
    font-size: 0.8rem;
}

.teacher-roster-score .is-muted,
.teacher-roster-focus .is-muted {
    color: var(--teacher-muted);
}

.teacher-roster-next-lesson,
.teacher-roster-work,
.teacher-roster-status {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
}

.teacher-roster-next-lesson > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.teacher-roster-next-lesson strong,
.teacher-roster-next-lesson small {
    overflow-wrap: anywhere;
}

.teacher-roster-next-lesson small {
    color: var(--teacher-muted);
}

.teacher-roster-work .ui-icon,
.teacher-roster-status .ui-icon {
    width: 17px;
    height: 17px;
}

.teacher-roster-work.is-overdue,
.teacher-roster-status.is-attention {
    color: var(--teacher-danger);
}

.teacher-roster-work.is-pending,
.teacher-roster-status.is-no-lesson {
    color: var(--teacher-warning);
}

.teacher-roster-status.is-ok {
    color: var(--teacher-success);
}

.teacher-roster-chevron {
    color: var(--teacher-navy);
}

.teacher-roster-empty {
    display: grid;
    min-height: 240px;
    place-items: center;
    align-content: center;
    gap: 10px;
    padding: 28px;
    text-align: center;
}

.teacher-roster-empty h2,
.teacher-roster-empty p {
    margin: 0;
}

@media (max-width: 1180px) {
    .teacher-roster-controls {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .teacher-roster-state-tabs {
        grid-column: 1 / -1;
    }

    .teacher-roster-columns,
    .teacher-roster-row {
        grid-template-columns:
            minmax(170px, 1.25fr)
            minmax(145px, 1fr)
            minmax(155px, 1fr)
            minmax(130px, 0.85fr)
            24px;
    }

    .teacher-roster-columns > :nth-child(3),
    .teacher-roster-row > :nth-child(3),
    .teacher-roster-columns > :nth-child(6),
    .teacher-roster-row > :nth-child(6) {
        display: none;
    }
}

@media (max-width: 760px) {
    .teacher-roster-heading,
    .teacher-roster-controls,
    .teacher-roster-summary {
        padding-inline: 16px;
    }

    .teacher-roster-controls {
        grid-template-columns: minmax(0, 1fr);
    }

    .teacher-roster-search-submit {
        width: 100%;
    }

    .teacher-roster-state-tabs {
        grid-column: auto;
        grid-template-columns: 1fr;
    }

    .teacher-roster-state-tab {
        min-height: 40px;
        border-right: 0;
        border-bottom: 1px solid var(--teacher-line);
    }

    .teacher-roster-state-tab:last-child {
        border-bottom: 0;
    }

    .teacher-roster-summary > span[aria-hidden="true"] {
        display: none;
    }

    .teacher-roster-summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .teacher-roster-summary .ui-icon {
        display: none;
    }

    .teacher-roster-columns {
        display: none;
    }

    .teacher-roster-row {
        display: grid;
        min-height: 0;
        grid-template-columns: minmax(0, 1fr) 22px;
        gap: 12px;
        padding: 17px 16px;
    }

    .teacher-roster-row > :not(.teacher-roster-student):not(.teacher-roster-chevron) {
        grid-column: 1;
    }

    .teacher-roster-student {
        grid-column: 1;
    }

    .teacher-roster-score,
    .teacher-roster-focus,
    .teacher-roster-next-lesson,
    .teacher-roster-work,
    .teacher-roster-status {
        padding-left: 49px;
    }

    .teacher-roster-chevron {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }
}

@media (max-width: 1500px) {
    .teacher-shell .sidebar {
        grid-template-columns: minmax(175px, 205px) minmax(0, 1fr) 176px;
        gap: 8px;
        padding-inline: 14px;
    }

    .teacher-shell .teacher-menu .menu-link {
        gap: 5px;
        padding-inline: 6px;
        font-size: 0.73rem;
    }

    .teacher-shell .teacher-menu .ui-icon {
        width: 17px;
        height: 17px;
    }

    .teacher-account-summary {
        min-width: 176px;
    }
}

@media (max-width: 1280px) {
    .teacher-shell .sidebar {
        position: relative;
        grid-template-columns: minmax(0, 1fr) auto;
        padding-bottom: 10px;
    }

    .teacher-shell .teacher-menu {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-start;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 4px 0 2px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .teacher-shell .teacher-menu::-webkit-scrollbar {
        display: none;
    }

    .teacher-shell .teacher-menu .menu-link::after {
        bottom: -5px;
    }

    .teacher-shell .workspace {
        padding-inline: 20px;
    }
}

@media (max-width: 760px) {
    .teacher-shell.teacher-lesson-template-page .workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .teacher-shell.teacher-lesson-template-page .workspace > *,
    .teacher-shell.teacher-lesson-template-page .content-stack,
    .teacher-shell.teacher-lesson-template-page .content-stack > *,
    .teacher-shell.teacher-lesson-template-page .lesson-template-hero,
    .teacher-shell.teacher-lesson-template-page .lesson-template-grid,
    .teacher-shell.teacher-lesson-template-page .lesson-template-grid > *,
    .teacher-shell.teacher-lesson-template-page .lesson-material-add-panel,
    .teacher-shell.teacher-lesson-template-page .lesson-form-grid,
    .teacher-shell.teacher-lesson-template-page .inline-form-grid,
    .teacher-shell.teacher-lesson-template-page .form-row,
    .teacher-shell.teacher-lesson-template-page .form-row label {
        min-width: 0;
        max-width: 100%;
    }

    .teacher-shell.teacher-lesson-template-page .inline-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .teacher-shell.teacher-lesson-template-page .lesson-template-hero,
    .teacher-shell.teacher-lesson-template-page .lesson-template-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .teacher-shell.teacher-lesson-template-page
        .lesson-template-material-add-panel
        .lesson-quick-forms {
        grid-template-columns: minmax(0, 1fr);
    }

    .teacher-shell.teacher-lesson-template-page .lesson-quick-forms > * {
        min-width: 0;
        max-width: 100%;
    }

    .teacher-shell.teacher-lesson-template-page .form-row input,
    .teacher-shell.teacher-lesson-template-page .form-row select,
    .teacher-shell.teacher-lesson-template-page .form-row textarea {
        min-width: 0;
        max-width: 100%;
    }

    .teacher-shell.teacher-lesson-template-page .page-title {
        overflow-wrap: anywhere;
    }

    .teacher-shell .sidebar {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: auto;
        padding: 10px 12px 8px;
    }

    .teacher-shell .teacher-brand {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .teacher-shell .teacher-brand .egetrack-mark {
        width: 40px;
        height: 40px;
    }

    .teacher-shell .teacher-brand .brand-title {
        font-size: 1.25rem;
    }

    .teacher-shell .teacher-brand .brand-tagline {
        display: none;
    }

    .teacher-account-summary {
        min-width: 46px;
        grid-template-columns: 28px;
        padding: 7px;
    }

    .teacher-account-copy,
    .teacher-account-summary > .ui-icon:last-child {
        display: none;
    }

    .teacher-account-dropdown {
        width: 174px;
    }

    .teacher-shell .teacher-menu .menu-link {
        min-height: 42px;
        font-size: 0.78rem;
    }

    .teacher-shell .student-profile-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .teacher-shell .student-profile-tabs::-webkit-scrollbar {
        display: none;
    }

    .teacher-shell .student-profile-tab {
        flex: 0 0 auto;
    }

    .teacher-shell .workspace {
        gap: 14px;
        padding: 0 12px 28px;
    }

    .teacher-shell .topbar {
        min-height: 104px;
        align-items: start;
        flex-direction: column;
        gap: 14px;
        padding: 24px 2px 12px;
    }

    .teacher-shell .page-title {
        font-size: 2.25rem;
        line-height: 1.05;
    }

    .teacher-shell .topbar-actions,
    .teacher-shell .topbar-actions > *,
    .teacher-shell .topbar-actions .button,
    .teacher-shell .topbar-actions .ghost-button {
        width: 100%;
    }

    .teacher-shell .surface-card {
        padding: 16px;
    }

    .teacher-shell .stats-grid {
        grid-template-columns: 1fr;
    }

    .teacher-shell .metric-card {
        min-height: 92px;
        border-right: 0;
        border-bottom: 1px solid var(--teacher-line);
    }

    .teacher-shell .metric-card:last-child {
        border-bottom: 0;
    }

    .teacher-shell .button,
    .teacher-shell .ghost-button {
        max-width: 100%;
    }

    .teacher-shell .split-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .teacher-shell .split-actions > *,
    .teacher-shell .split-actions .button,
    .teacher-shell .split-actions .ghost-button {
        width: 100%;
    }
}
