/*
 * EasySchool frontend — clean premium base
 * Regra principal: sem cores presas. O frontend usa variáveis do Aspeto e,
 * quando só existe cor principal, deriva uma paleta coerente a partir dela.
 */

.es-front-wrap,
.es-front-wrap * {
    box-sizing: border-box;
}

.es-front-wrap {
    --es-front-base-primary: var(--es-front-primary, #111827);
    --es-front-base-text: var(--es-front-text, #111827);
    --es-front-base-muted: var(--es-front-muted, color-mix(in srgb, var(--es-front-base-text) 58%, #ffffff));
    --es-front-base-panel: var(--es-front-panel, #ffffff);
    --es-front-base-surface: color-mix(in srgb, var(--es-front-base-primary) 3%, #ffffff);
    --es-front-base-line: var(--es-front-line, color-mix(in srgb, var(--es-front-base-primary) 16%, #dfe6ef));
    --es-front-base-soft: var(--es-front-primary-soft, color-mix(in srgb, var(--es-front-base-primary) 6%, #ffffff));
    --es-front-base-focus: var(--es-front-input-focus, var(--es-front-base-primary));
    --es-front-base-shadow: 0 18px 52px rgba(15, 23, 42, .10);
    --es-front-soft-shadow: 0 10px 28px rgba(15, 23, 42, .065);
    --es-front-button-shadow: 0 12px 28px color-mix(in srgb, var(--es-front-base-primary) 18%, transparent);
    --es-front-button-main: var(--es-front-button-bg, var(--es-front-base-primary));
    --es-front-button-main-to: var(--es-front-button-gradient-to, transparent);
    --es-front-button-secondary: var(--es-front-secondary-button-bg, var(--es-front-base-soft));
    --es-front-button-secondary-to: var(--es-front-secondary-button-gradient-to, transparent);

    position: var(--es-front-wrap-position, static);
    left: var(--es-front-wrap-left, auto);
    width: var(--es-front-wrap-width, 100%);
    max-width: var(--es-front-wrap-max-width, var(--es-front-max-width, 1120px));
    margin: var(--es-front-top-margin, 44px) var(--es-front-wrap-margin-right, auto) var(--es-front-bottom-margin, 44px) var(--es-front-wrap-margin-left, auto);
    transform: var(--es-front-wrap-transform, none);
    padding-inline: var(--es-front-content-padding, 18px);
    background: var(--es-front-bg, transparent);
    color: var(--es-front-base-text);
    font-family: var(--es-front-font-family, inherit);
    font-size: var(--es-front-font-size, inherit);
    line-height: 1.55;
}

.es-front-wrap a {
    color: var(--es-front-base-primary);
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}

.es-front-wrap :where(h1, h2, h3, p) {
    margin-block: 0;
}

.es-front-wrap :where(h1, h2, h3, strong, label, button, .es-area-tab, .es-teacher-tab, .es-student-tab, .es-user-menu-trigger) {
    color: inherit;
}

.es-front-wrap :where(input, select, textarea, button) {
    font: inherit;
}

.es-front-wrap :where(.es-login-card, .es-workspace, .es-card, .es-stat-card, .es-security-card, .es-security-status-card, .es-criteria-assignment, .es-front-table-wrap, .es-secret-box, .es-qr-panel) {
    background: var(--es-front-evaluation-panel-bg, var(--es-front-card-bg, var(--es-front-base-panel)));
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-evaluation-radius, var(--es-front-card-radius, 0));
    box-shadow: var(--es-front-evaluation-shadow, var(--es-front-card-shadow, var(--es-front-soft-shadow)));
}

.es-front-wrap .es-login-card {
    width: 100%;
    max-width: var(--es-front-login-width, 460px);
    margin-inline: auto;
    margin-top: var(--es-front-login-margin-top, 0);
    padding: var(--es-front-login-padding, 32px);
    background: var(--es-front-login-bg, var(--es-front-base-panel));
    border-radius: var(--es-front-login-radius, 0);
    box-shadow: var(--es-front-login-shadow, var(--es-front-base-shadow));
    text-align: var(--es-front-login-text-align, left);
}

.es-front-wrap .es-login-brand {
    display: grid;
    gap: 12px;
}

.es-front-wrap .es-login-brand h1 {
    font-size: var(--es-front-login-title-size, 17px);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -.02em;
}

.es-front-wrap .es-login-brand p,
.es-front-wrap .es-form-help,
.es-front-wrap .es-card p,
.es-front-wrap .es-workspace-header p,
.es-front-wrap .es-section-title p,
.es-front-wrap .es-security-card p,
.es-front-wrap .es-security-status-card p,
.es-front-wrap .es-qr-panel small,
.es-front-wrap .es-secret-box small,
.es-front-wrap .es-password-rules,
.es-front-wrap .es-validated-user {
    color: var(--es-front-base-muted);
}

.es-front-wrap .es-login-brand p {
    font-size: var(--es-front-login-subtitle-size, 15px);
}

.es-front-wrap :where(.es-login-card form, .es-form, .es-security-password-form) {
    display: grid;
    gap: var(--es-front-form-gap, var(--es-front-density-gap, 12px));
    margin-top: 22px;
}

.es-front-wrap :where(.es-login-card label, .es-form label, .es-security-password-form label) {
    display: block;
    margin-bottom: 6px;
    color: var(--es-front-base-text);
    font-weight: var(--es-front-label-weight, 800);
}

.es-front-wrap :where(input, select, textarea) {
    width: 100%;
    min-height: var(--es-front-input-height, 46px);
    padding: 10px 12px;
    border: 1px solid var(--es-front-input-border, var(--es-front-base-line));
    border-radius: var(--es-front-input-radius, 0);
    background: var(--es-front-input-bg, #ffffff);
    color: var(--es-front-base-text);
    outline: 0;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}

.es-front-wrap :where(input, select, textarea):focus {
    border-color: var(--es-front-base-focus);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-front-base-focus) 18%, transparent);
}

/* Checkbox/radio base reset: never inherit full-width text-input sizing. */
.es-front-wrap input[type="checkbox"],
.es-front-wrap input[type="radio"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    padding: 0;
    margin: 0;
    flex: 0 0 18px;
    border-radius: 0;
    box-shadow: none;
    accent-color: var(--es-front-base-primary);
}

.es-front-wrap input[type="checkbox"]:focus,
.es-front-wrap input[type="radio"]:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-front-base-focus) 18%, transparent);
}

.es-front-wrap input.is-invalid {
    border-color: var(--es-front-danger, #b3261e);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-front-danger, #b3261e) 15%, transparent);
}

.es-front-wrap :where(button, .es-button-secondary, .es-logout, .es-criteria-add, .es-criteria-remove, .es-user-menu-trigger) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: var(--es-front-button-height, 42px);
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: var(--es-front-button-radius, 0);
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.es-front-wrap :where(.es-login-card button, .es-form button:not(.es-criteria-remove), .es-criteria-add) {
    background-color: var(--es-front-button-main);
    background-image: linear-gradient(135deg, transparent 0%, var(--es-front-button-main-to) 100%);
    border-color: color-mix(in srgb, var(--es-front-button-main) 86%, #000000);
    color: var(--es-front-button-color, #ffffff);
    box-shadow: var(--es-front-button-shadow);
}

.es-front-wrap :where(.es-login-card button, .es-form button:not(.es-criteria-remove), .es-criteria-add):hover {
    transform: translateY(-1px);
}

.es-front-wrap :where(.es-button-secondary, .es-logout, .es-user-menu-trigger) {
    background-color: var(--es-front-button-secondary);
    background-image: linear-gradient(135deg, transparent 0%, var(--es-front-button-secondary-to) 100%);
    border-color: var(--es-front-base-line);
    color: var(--es-front-secondary-button-color, var(--es-front-base-primary));
    box-shadow: var(--es-front-soft-shadow);
}

.es-front-wrap .es-user-menu-trigger {
    background: var(--es-front-user-button-bg, var(--es-front-button-secondary));
    border-color: var(--es-front-user-button-border, var(--es-front-base-line));
    color: var(--es-front-user-button-text, var(--es-front-secondary-button-color, var(--es-front-base-primary)));
    border-radius: var(--es-front-user-button-radius, var(--es-front-button-radius, 0));
}

.es-front-wrap .es-criteria-remove,
.es-front-wrap .es-form button.danger {
    min-width: 42px;
    padding-inline: 12px;
    background: var(--es-front-danger, #b3261e);
    border-color: var(--es-front-danger, #b3261e);
    color: #ffffff;
    box-shadow: 0 10px 22px color-mix(in srgb, var(--es-front-danger, #b3261e) 18%, transparent);
}

.es-front-wrap :where(button:disabled, .es-criteria-add:disabled) {
    opacity: .55;
    cursor: not-allowed;
    transform: none;
}

.es-front-wrap .es-workspace {
    width: 100%;
    max-width: var(--es-front-workspace-width, 100%);
    margin-inline: auto;
    padding: var(--es-front-workspace-padding, var(--es-front-density-padding, 24px));
    background: var(--es-front-workspace-bg, var(--es-front-base-panel));
    border-radius: var(--es-front-workspace-radius, 0);
    box-shadow: var(--es-front-workspace-shadow, var(--es-front-base-shadow));
    position: relative;
    overflow: hidden;
}

.es-front-wrap .es-workspace::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: var(--es-front-workspace-top-line-height, 3px);
    background: var(--es-front-workspace-top-line, var(--es-front-base-primary));
    pointer-events: none;
}

.es-front-wrap .es-teacher-dashboard,
.es-front-wrap .es-student-dashboard,
.es-front-wrap .es-teacher-security {
    display: grid;
    gap: 28px;
}

.es-front-wrap .es-area-topbar,
.es-front-wrap .es-teacher-topbar,
.es-front-wrap .es-student-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--es-front-topbar-gap, 16px);
    padding: var(--es-front-topbar-padding, var(--es-front-workspace-header-gap, 18px));
    background: var(--es-front-topbar-bg, var(--es-front-workspace-header-bg, linear-gradient(180deg, var(--es-front-base-soft) 0%, var(--es-front-base-panel) 100%)));
    border: 1px solid var(--es-front-topbar-border, var(--es-front-base-line));
    border-radius: var(--es-front-workspace-header-radius, 0);
    color: var(--es-front-topbar-text, var(--es-front-base-text));
    box-shadow: var(--es-front-topbar-shadow, var(--es-front-soft-shadow));
}

.es-front-wrap .es-area-tabs,
.es-front-wrap .es-teacher-tabs,
.es-front-wrap .es-student-tabs {
    display: flex;
    align-items: center;
    gap: var(--es-front-tab-gap, 6px);
    flex-wrap: wrap;
}

.es-front-wrap .es-area-tab,
.es-front-wrap .es-teacher-tab,
.es-front-wrap .es-student-tab {
    min-height: var(--es-front-button-height, 42px);
    padding: 11px 18px;
    border: 1px solid var(--es-front-tab-border, var(--es-front-base-line));
    border-radius: var(--es-front-tab-radius, var(--es-front-button-radius, 0));
    background: var(--es-front-tab-bg, var(--es-front-base-panel));
    color: var(--es-front-tab-text, var(--es-front-base-text));
    font-weight: 800;
    cursor: pointer;
    box-shadow: var(--es-front-tab-shadow, 0 1px 0 rgba(255,255,255,.75), 0 8px 22px rgba(15,23,42,.045));
    transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.es-front-wrap .es-area-tab:hover,
.es-front-wrap .es-teacher-tab:hover,
.es-front-wrap .es-student-tab:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--es-front-base-primary) 30%, var(--es-front-base-line));
}

.es-front-wrap .es-tab-radio {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    opacity: 0;
    pointer-events: none;
}

.es-front-wrap #es-tab-dashboard:checked ~ .es-area-topbar label[for="es-tab-dashboard"],
.es-front-wrap #es-tab-avaliacao:checked ~ .es-area-topbar label[for="es-tab-avaliacao"],
.es-front-wrap #es-tab-sala:checked ~ .es-area-topbar label[for="es-tab-sala"],
.es-front-wrap #es-tab-correcao:checked ~ .es-area-topbar label[for="es-tab-correcao"],
.es-front-wrap #es-tab-criterios:checked ~ .es-area-topbar label[for="es-tab-criterios"],
.es-front-wrap #es-tab-turmas:checked ~ .es-area-topbar label[for="es-tab-turmas"],
.es-front-wrap #es-tab-dashboard:checked ~ .es-teacher-topbar label[for="es-tab-dashboard"],
.es-front-wrap #es-tab-avaliacao:checked ~ .es-teacher-topbar label[for="es-tab-avaliacao"],
.es-front-wrap #es-tab-sala:checked ~ .es-teacher-topbar label[for="es-tab-sala"],
.es-front-wrap #es-tab-correcao:checked ~ .es-teacher-topbar label[for="es-tab-correcao"],
.es-front-wrap #es-tab-criterios:checked ~ .es-teacher-topbar label[for="es-tab-criterios"],
.es-front-wrap #es-tab-turmas:checked ~ .es-teacher-topbar label[for="es-tab-turmas"],
.es-front-wrap #es-tab-exames:checked ~ .es-area-topbar .es-teacher-exams-menu > summary,
.es-front-wrap #es-tab-exames:checked ~ .es-teacher-topbar .es-teacher-exams-menu > summary {
    background: var(--es-front-tab-active-bg, var(--es-front-base-primary));
    border-color: var(--es-front-tab-active-bg, var(--es-front-base-primary));
    color: var(--es-front-tab-active-text, #ffffff);
    box-shadow: var(--es-front-button-shadow);
}

.es-front-wrap .es-tab-panel {
    display: none;
}

.es-front-wrap #es-tab-dashboard:checked ~ .es-tab-dashboard-panel,
.es-front-wrap #es-tab-avaliacao:checked ~ .es-tab-avaliacao-panel,
.es-front-wrap #es-tab-sala:checked ~ .es-tab-sala-panel,
.es-front-wrap #es-tab-correcao:checked ~ .es-tab-correcao-panel,
.es-front-wrap #es-tab-criterios:checked ~ .es-tab-criterios-panel,
.es-front-wrap #es-tab-turmas:checked ~ .es-tab-turmas-panel,
.es-front-wrap #es-tab-exames:checked ~ .es-tab-exames-panel {
    display: block;
}

.es-front-wrap .es-user-menu {
    position: relative;
}

.es-front-wrap .es-user-menu > summary {
    list-style: none;
}

.es-front-wrap .es-user-menu > summary::-webkit-details-marker {
    display: none;
}

.es-front-wrap .es-user-menu-list {
    position: absolute;
    right: 0;
    z-index: 5;
    min-width: 190px;
    margin-top: 8px;
    padding: 6px;
    background: var(--es-front-base-panel);
    border: 1px solid var(--es-front-base-line);
    border-radius: var(--es-front-button-radius, 0);
    box-shadow: var(--es-front-card-shadow, var(--es-front-base-shadow));
}

.es-front-wrap .es-user-menu-list a {
    display: block;
    padding: 10px 12px;
    color: var(--es-front-base-text);
    text-decoration: none;
}

.es-front-wrap .es-user-menu-list a:hover {
    background: var(--es-front-base-soft);
    color: var(--es-front-base-primary);
}

.es-front-wrap .es-workspace-header {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    background: transparent;
}

.es-front-wrap .es-workspace-header span,
.es-front-wrap .es-section-title > div > span,
.es-front-wrap .es-security-card-title,
.es-front-wrap .es-security-status-card > span {
    display: block;
    color: var(--es-front-base-primary);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.es-front-wrap .es-workspace-header h1,
.es-front-wrap .es-section-title h2,
.es-front-wrap .es-card h2,
.es-front-wrap .es-security-card h2,
.es-front-wrap .es-security-status-card h2 {
    color: var(--es-front-base-text);
    font-weight: 800;
    letter-spacing: -.02em;
}

.es-front-wrap .es-workspace-header h1 {
    margin-top: 4px;
    font-size: 1.18rem;
}

.es-front-wrap .es-workspace-header p {
    margin-top: 14px;
}

.es-front-wrap .es-section-title {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-end;
    margin-bottom: 18px;
}

.es-front-wrap .es-section-title h2 {
    margin-top: 4px;
    font-size: 1.25rem;
}

.es-front-wrap .es-section-title p {
    margin-top: 8px;
}

.es-front-wrap .es-grid,
.es-front-wrap .es-stats-grid,
.es-front-wrap .es-security-summary,
.es-front-wrap .es-security-grid {
    display: grid;
    gap: var(--es-front-workspace-grid-gap, 18px);
}

.es-front-wrap .es-grid,
.es-front-wrap .es-security-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.es-front-wrap .es-stats-grid,
.es-front-wrap .es-security-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.es-front-wrap .es-stat-card {
    min-height: var(--es-front-card-min-height, 130px);
    padding: var(--es-front-card-padding, 22px);
    border-left: var(--es-front-card-accent-width, 4px) solid var(--es-front-card-accent, var(--es-front-base-primary));
    background-image: linear-gradient(180deg, var(--es-front-base-panel) 0%, var(--es-front-base-surface) 100%);
}

.es-front-wrap .es-stat-card strong {
    display: block;
    color: var(--es-front-card-number-color, var(--es-front-base-text));
    font-size: clamp(2rem, 3vw, 2.8rem);
    line-height: 1;
    font-weight: 800;
}

.es-front-wrap .es-stat-card span {
    display: block;
    margin-top: 10px;
    color: var(--es-front-card-label-color, var(--es-front-base-muted));
    font-weight: 700;
}

.es-front-wrap .es-card,
.es-front-wrap .es-security-card,
.es-front-wrap .es-security-status-card {
    padding: var(--es-front-card-padding, 22px);
}

.es-front-wrap .es-security-summary .es-security-status-card {
    border-left: var(--es-front-card-accent-width, 4px) solid var(--es-front-card-accent, var(--es-front-base-primary));
}

.es-front-wrap .es-security-ok,
.es-front-wrap .is-ok {
    color: var(--es-front-success, #1f7a48) !important;
}

.es-front-wrap .is-warning {
    color: var(--es-front-warning, #a16207) !important;
}



.es-front-wrap .es-evaluation-shell {
    display: grid;
    gap: 18px;
}

.es-front-wrap .es-evaluation-control {
    max-width: 520px;
}

.es-front-wrap .es-evaluation-control label {
    display: grid;
    gap: 7px;
    color: var(--es-front-base-text);
    font-weight: var(--es-front-label-weight, 800);
}

.es-front-wrap .es-evaluation-control label > span {
    font-size: .92rem;
}

.es-front-wrap .es-evaluation-toolbar {
    display: grid;
    grid-template-columns: minmax(280px, 520px) minmax(0, 1fr);
    gap: 18px;
    align-items: end;
}

.es-front-wrap .es-evaluation-rankings {
    min-width: 0;
}

.es-front-wrap .es-evaluation-ranking-assignment {
    display: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    min-width: 0;
}

.es-front-wrap .es-evaluation-ranking-assignment.is-active {
    display: grid;
}

.es-front-wrap .es-evaluation-ranking-group {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.es-front-wrap .es-evaluation-ranking-group > strong {
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: .82rem;
    line-height: 1.2;
}

.es-front-wrap .es-evaluation-ranking-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    min-width: 0;
}

.es-front-wrap .es-evaluation-ranking-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    min-width: 0;
    min-height: 54px;
    padding: 4px;
    background: var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-evaluation-radius, var(--es-front-card-radius, 0));
}

.es-front-wrap .es-evaluation-ranking-card img {
    display: block;
    width: 44px;
    height: 44px;
    object-fit: cover;
    object-position: center;
    background: var(--es-front-base-panel);
}

.es-front-wrap .es-evaluation-ranking-card > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.es-front-wrap .es-evaluation-ranking-card strong {
    color: var(--es-front-evaluation-student-text, var(--es-front-evaluation-text, var(--es-front-base-text)));
    font-size: .72rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.es-front-wrap .es-evaluation-ranking-card span {
    color: var(--es-front-primary, var(--es-front-base-primary));
    font-size: .76rem;
    font-weight: 900;
    line-height: 1.1;
}

.es-front-wrap .es-evaluation-ranking-empty {
    grid-column: 1 / -1;
    min-height: 54px;
    display: grid;
    place-items: center;
    padding: 8px;
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    border: 1px dashed var(--es-front-evaluation-border, var(--es-front-base-line));
    font-size: .78rem;
    text-align: center;
}

.es-front-wrap .es-evaluation-assignment {
    display: none;
}

.es-front-wrap .es-evaluation-assignment.is-active {
    display: block;
}

.es-front-wrap .es-evaluation-layout {
    display: grid;
    grid-template-columns: minmax(0, var(--es-front-evaluation-students-width, 75%)) minmax(var(--es-front-evaluation-side-min-width, 220px), 1fr);
    gap: var(--es-front-evaluation-gap, 18px);
    align-items: start;
}

.es-front-wrap .es-evaluation-students-panel,
.es-front-wrap .es-evaluation-side-panel {
    background: var(--es-front-evaluation-panel-bg, var(--es-front-card-bg, var(--es-front-base-panel)));
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-evaluation-radius, var(--es-front-card-radius, 0));
    box-shadow: var(--es-front-evaluation-shadow, var(--es-front-card-shadow, var(--es-front-soft-shadow)));
}

.es-front-wrap .es-evaluation-students-panel {
    padding: var(--es-front-evaluation-padding, 18px);
}

.es-front-wrap .es-evaluation-side-panel {
    display: grid;
    gap: var(--es-front-evaluation-gap, 18px);
    min-height: 220px;
    padding: var(--es-front-evaluation-padding, 18px);
}

.es-front-wrap .es-evaluation-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
}

.es-front-wrap .es-evaluation-panel-head div {
    display: grid;
    gap: 2px;
}

.es-front-wrap .es-evaluation-panel-head strong {
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: 1rem;
}

.es-front-wrap .es-evaluation-panel-head span,
.es-front-wrap .es-evaluation-empty,
.es-front-wrap .es-evaluation-side-empty {
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    font-size: .92rem;
}

.es-front-wrap .es-evaluation-student-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--es-front-evaluation-card-min-width, 104px), 1fr));
    gap: var(--es-front-evaluation-grid-gap, 16px);
}

.es-front-wrap .es-evaluation-student-item {
    display: grid;
    grid-template-rows: auto auto;
    align-content: start;
    min-width: 0;
    gap: 4px;
}

.es-front-wrap .es-evaluation-student-card {
    display: grid;
    gap: 0;
    justify-items: stretch;
    align-content: start;
    min-width: 0;
    padding: 0;
    overflow: hidden;
    background: var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-evaluation-radius, var(--es-front-card-radius, 0));
    text-align: center;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.es-front-wrap .es-evaluation-student-card:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--es-front-evaluation-text, var(--es-front-base-primary)) 18%, var(--es-front-evaluation-border, var(--es-front-base-line)));
    box-shadow: var(--es-front-soft-shadow);
}

.es-front-wrap .es-evaluation-student-card img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    border-radius: 0;
    box-shadow: none;
    object-fit: contain;
    object-position: center center;
    background: var(--es-front-base-panel);
}

.es-front-wrap .es-evaluation-student-card strong {
    display: block;
    width: 100%;
    padding: 9px 8px 10px;
    color: var(--es-front-evaluation-student-text, var(--es-front-evaluation-text, var(--es-front-base-text)));
    font-size: .88rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.es-front-wrap .es-evaluation-side-empty {
    min-height: 170px;
    display: grid;
    place-items: center;
    border: 1px dashed var(--es-front-evaluation-border, var(--es-front-base-line));
    background: var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft));
    padding: 18px;
    text-align: center;
}

.es-front-wrap .es-evaluation-launch {
    display: grid;
    gap: 12px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.es-front-wrap .es-evaluation-launch legend {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: 1rem;
    font-weight: 900;
}

.es-front-wrap .es-evaluation-launch p {
    margin: 0;
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    font-size: .92rem;
    line-height: 1.45;
}

.es-front-wrap .es-evaluation-launch-options {
    display: grid;
    grid-template-columns: repeat(var(--es-front-evaluation-launch-columns, 1), minmax(0, 1fr));
    gap: var(--es-front-evaluation-launch-gap, 10px);
}

.es-front-wrap .es-evaluation-launch-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    margin: 0;
    padding: var(--es-front-evaluation-launch-padding, 11px);
    cursor: pointer;
    background: var(--es-front-evaluation-launch-bg, var(--es-front-evaluation-criteria-bg, var(--es-front-base-soft)));
    border: 1px solid var(--es-front-evaluation-launch-border, var(--es-front-evaluation-criteria-border, var(--es-front-evaluation-border, var(--es-front-base-line))));
    border-radius: var(--es-front-evaluation-launch-radius, var(--es-front-evaluation-criteria-radius, var(--es-front-evaluation-radius, var(--es-front-card-radius, 0))));
    color: var(--es-front-evaluation-launch-text, var(--es-front-evaluation-criteria-text, var(--es-front-evaluation-text, var(--es-front-base-text))));
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.es-front-wrap .es-evaluation-launch-option:hover,
.es-front-wrap .es-evaluation-launch-option:focus-within {
    transform: translateY(-1px);
    border-color: var(--es-front-evaluation-launch-checked-border, var(--es-front-evaluation-launch-radio, var(--es-front-primary, var(--es-front-base-primary))));
    box-shadow: var(--es-front-soft-shadow);
}

.es-front-wrap .es-evaluation-launch-option:has(input:checked) {
    background: var(--es-front-evaluation-launch-checked-bg, var(--es-front-evaluation-launch-bg, var(--es-front-base-soft)));
    border-color: var(--es-front-evaluation-launch-checked-border, var(--es-front-evaluation-launch-radio, var(--es-front-primary, var(--es-front-base-primary))));
    color: var(--es-front-evaluation-launch-checked-text, var(--es-front-evaluation-launch-text, var(--es-front-evaluation-text, var(--es-front-base-text))));
}

.es-front-wrap .es-evaluation-launch-option input {
    width: var(--es-front-evaluation-criteria-checkbox-size, 18px);
    height: var(--es-front-evaluation-criteria-checkbox-size, 18px);
    margin: 0;
    accent-color: var(--es-front-evaluation-launch-radio, var(--es-front-evaluation-criteria-checkbox, var(--es-front-primary, var(--es-front-base-primary))));
}

.es-front-wrap .es-evaluation-launch-option span {
    color: var(--es-front-evaluation-launch-text, var(--es-front-evaluation-criteria-text, var(--es-front-evaluation-text, var(--es-front-base-text))));
    font-size: .94rem;
    line-height: 1.25;
    font-weight: 800;
}

.es-front-wrap .es-evaluation-launch-option:has(input:checked) span {
    color: var(--es-front-evaluation-launch-checked-text, var(--es-front-evaluation-launch-text, var(--es-front-evaluation-text, var(--es-front-base-text))));
}

.es-front-wrap .es-evaluation-criteria {
    display: grid;
    gap: 12px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.es-front-wrap .es-evaluation-criteria legend {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: 1rem;
    font-weight: 900;
}

.es-front-wrap .es-evaluation-criteria p {
    margin: 0;
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    font-size: .92rem;
    line-height: 1.45;
}

.es-front-wrap .es-evaluation-criteria-list {
    display: grid;
    grid-template-columns: repeat(var(--es-front-evaluation-criteria-columns, 1), minmax(0, 1fr));
    gap: var(--es-front-evaluation-criteria-gap, 10px);
}

.es-front-wrap .es-evaluation-criterion {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 0;
    padding: var(--es-front-evaluation-criteria-padding, 11px);
    cursor: pointer;
    background: var(--es-front-evaluation-criteria-bg, var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft)));
    border: 1px solid var(--es-front-evaluation-criteria-border, var(--es-front-evaluation-border, var(--es-front-base-line)));
    border-radius: var(--es-front-evaluation-criteria-radius, var(--es-front-evaluation-radius, var(--es-front-card-radius, 0)));
    color: var(--es-front-evaluation-criteria-text, var(--es-front-evaluation-text, var(--es-front-base-text)));
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.es-front-wrap .es-evaluation-criterion:hover,
.es-front-wrap .es-evaluation-criterion:focus-within {
    transform: translateY(-1px);
    border-color: var(--es-front-evaluation-criteria-checked-border, var(--es-front-evaluation-criteria-checkbox, var(--es-front-primary, var(--es-front-base-primary))));
    box-shadow: var(--es-front-soft-shadow);
}

.es-front-wrap .es-evaluation-criterion:has(input:checked) {
    background: var(--es-front-evaluation-criteria-checked-bg, var(--es-front-evaluation-criteria-bg, var(--es-front-base-soft)));
    border-color: var(--es-front-evaluation-criteria-checked-border, var(--es-front-evaluation-criteria-checkbox, var(--es-front-primary, var(--es-front-base-primary))));
}

.es-front-wrap .es-evaluation-criterion input {
    width: var(--es-front-evaluation-criteria-checkbox-size, 18px);
    height: var(--es-front-evaluation-criteria-checkbox-size, 18px);
    margin: 1px 0 0;
    accent-color: var(--es-front-evaluation-criteria-checkbox, var(--es-front-primary, var(--es-front-base-primary)));
}

.es-front-wrap .es-evaluation-criterion span {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.es-front-wrap .es-evaluation-criterion strong {
    color: var(--es-front-evaluation-criteria-text, var(--es-front-evaluation-text, var(--es-front-base-text)));
    font-size: .94rem;
    line-height: 1.25;
}

.es-front-wrap .es-evaluation-criterion small {
    color: var(--es-front-evaluation-criteria-weight-text, var(--es-front-evaluation-muted, var(--es-front-base-muted)));
    font-size: .82rem;
    font-weight: 800;
}

.es-front-wrap .es-evaluation-criterion:has(input:checked) strong {
    color: var(--es-front-evaluation-criteria-checked-text, var(--es-front-evaluation-criteria-text, var(--es-front-evaluation-text, var(--es-front-base-text))));
}

.es-front-wrap .es-evaluation-criterion:has(input:checked) small {
    color: var(--es-front-evaluation-criteria-checked-weight-text, var(--es-front-evaluation-criteria-weight-text, var(--es-front-evaluation-muted, var(--es-front-base-muted))));
}


.es-front-wrap .es-area-tab.is-disabled {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

.es-front-wrap .es-evaluation-student-card {
    appearance: none;
    width: 100%;
    font: inherit;
    cursor: pointer;
}

.es-front-wrap .es-evaluation-student-card.is-selected {
    background: var(--es-front-evaluation-student-selected-bg, color-mix(in srgb, var(--es-front-primary, var(--es-front-base-primary)) 9%, var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft))));
    border-color: var(--es-front-primary, var(--es-front-base-primary));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--es-front-primary, var(--es-front-base-primary)) 16%, transparent);
}

.es-front-wrap .es-evaluation-student-card.is-selected strong {
    color: var(--es-front-evaluation-student-selected-text, var(--es-front-evaluation-student-text, var(--es-front-evaluation-text, var(--es-front-base-text))));
}

.es-front-wrap .es-evaluation-student-grade {
    display: block;
    width: 100%;
    padding: 6px 8px;
    background: var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-evaluation-radius, var(--es-front-card-radius, 0));
    color: var(--es-front-primary, var(--es-front-base-primary));
    font-size: .82rem;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
}

.es-front-wrap .es-evaluation-criterion {
    position: relative;
    padding-right: 34px;
}

.es-front-wrap .es-evaluation-criterion-done {
    position: absolute;
    top: 50%;
    right: 10px;
    display: none;
    width: 18px;
    height: 18px;
    place-items: center;
    transform: translateY(-50%);
    border-radius: 50%;
    background: var(--es-front-success, #1f7a48);
    color: #fff;
    font-size: .72rem;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
}

.es-front-wrap .es-evaluation-criterion.is-assessed .es-evaluation-criterion-done {
    display: grid;
}

.es-front-wrap .es-evaluation-entry-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding-top: 4px;
}

.es-front-wrap .es-evaluation-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.es-front-wrap .es-evaluation-field-wide,
.es-front-wrap .es-evaluation-submit,
.es-front-wrap .es-evaluation-report-button,
.es-front-wrap .es-evaluation-feedback {
    grid-column: 1 / -1;
}

.es-front-wrap .es-evaluation-field > span {
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: .86rem;
    font-weight: 800;
}

.es-front-wrap .es-evaluation-field input,
.es-front-wrap .es-evaluation-field select {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 8px 10px;
    background: var(--es-front-input-bg, #fff);
    border: 1px solid var(--es-front-input-border, var(--es-front-evaluation-border, var(--es-front-base-line)));
    border-radius: var(--es-front-form-radius, 0);
    color: var(--es-front-input-text, var(--es-front-base-text));
}

.es-front-wrap .es-evaluation-field input.is-invalid {
    border-color: var(--es-front-danger, #b42318);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--es-front-danger, #b42318) 14%, transparent);
}

.es-front-wrap .es-evaluation-submit,
.es-front-wrap .es-evaluation-report-button,
.es-front-wrap .es-evaluation-delete {
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid var(--es-front-primary, var(--es-front-base-primary));
    border-radius: var(--es-front-button-radius, 0);
    background: var(--es-front-primary, var(--es-front-base-primary));
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}


.es-front-wrap .es-evaluation-report-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-button-radius, 0);
    background: var(--es-front-evaluation-panel, #fff);
    color: var(--es-front-primary, var(--es-front-base-primary));
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.es-front-wrap .es-evaluation-report-button:hover,
.es-front-wrap .es-evaluation-report-button:focus-visible {
    border-color: var(--es-front-primary, var(--es-front-base-primary));
    color: var(--es-front-primary, var(--es-front-base-primary));
    text-decoration: none;
}

.es-front-wrap .es-evaluation-delete {
    min-height: 36px;
    padding: 7px 12px;
    background: var(--es-front-danger, #b42318);
    border-color: var(--es-front-danger, #b42318);
}

.es-front-wrap .es-evaluation-submit:disabled,
.es-front-wrap .es-evaluation-delete:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.es-front-wrap .es-evaluation-feedback {
    min-height: 20px;
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    font-size: .84rem;
    font-weight: 700;
}

.es-front-wrap .es-evaluation-feedback.is-success {
    color: var(--es-front-success, #1f7a48);
}

.es-front-wrap .es-evaluation-feedback.is-error {
    color: var(--es-front-danger, #b42318);
}

.es-front-wrap .es-evaluation-assignment.is-saving {
    cursor: progress;
}

.es-front-wrap .es-evaluation-history {
    margin-top: var(--es-front-evaluation-gap, 18px);
    padding: var(--es-front-evaluation-padding, 18px);
    background: var(--es-front-evaluation-panel-bg, var(--es-front-base-panel));
    border: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    border-radius: var(--es-front-evaluation-radius, var(--es-front-card-radius, 0));
}

.es-front-wrap .es-evaluation-history-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.es-front-wrap .es-evaluation-history-head > div {
    display: grid;
    gap: 2px;
}

.es-front-wrap .es-evaluation-history-head strong {
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: 1rem;
}

.es-front-wrap .es-evaluation-history-head span,
.es-front-wrap .es-evaluation-history-empty {
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    font-size: .88rem;
}

.es-front-wrap .es-evaluation-history-empty {
    padding: 14px;
    border: 1px dashed var(--es-front-evaluation-border, var(--es-front-base-line));
    text-align: center;
}

.es-front-wrap .es-evaluation-history-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.es-front-wrap .es-evaluation-history-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--es-front-evaluation-text, var(--es-front-base-text));
    font-size: .88rem;
}

.es-front-wrap .es-evaluation-history-table th,
.es-front-wrap .es-evaluation-history-table td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    text-align: left;
    white-space: nowrap;
}

.es-front-wrap .es-evaluation-history-table th:first-child,
.es-front-wrap .es-evaluation-history-table td:first-child {
    width: 36px;
    text-align: center;
}

.es-front-wrap .es-evaluation-history-table input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: var(--es-front-primary, var(--es-front-base-primary));
}

.es-front-wrap .es-evaluation-history-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 12px;
}

.es-front-wrap .es-evaluation-history-page-size,
.es-front-wrap .es-evaluation-history-pager {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--es-front-evaluation-muted, var(--es-front-base-muted));
    font-size: .88rem;
}

.es-front-wrap .es-evaluation-history-page-size select {
    min-width: 72px;
    height: 34px;
    padding: 4px 28px 4px 8px;
    background: var(--es-front-form-bg, var(--es-front-base-panel));
    color: var(--es-front-form-text, var(--es-front-base-text));
    border: 1px solid var(--es-front-form-border, var(--es-front-base-line));
    border-radius: var(--es-front-form-radius, 0);
}

.es-front-wrap .es-evaluation-history-pager button {
    min-height: 34px;
    padding: 5px 12px;
    background: var(--es-front-button-secondary-bg, var(--es-front-base-panel));
    color: var(--es-front-button-secondary-text, var(--es-front-base-text));
    border: 1px solid var(--es-front-button-secondary-border, var(--es-front-base-line));
    border-radius: var(--es-front-button-radius, 0);
    cursor: pointer;
}

.es-front-wrap .es-evaluation-history-pager button:disabled {
    opacity: .45;
    cursor: default;
}

@media (max-width: 640px) {
    .es-front-wrap .es-evaluation-history-pagination,
    .es-front-wrap .es-evaluation-history-pager {
        width: 100%;
    }

    .es-front-wrap .es-evaluation-history-pager {
        justify-content: space-between;
    }
}

.es-front-wrap .is-hidden {
    display: none !important;
}

.es-front-wrap .es-criteria-list {
    display: grid;
    grid-template-columns: repeat(var(--es-front-criteria-columns, 2), minmax(min(var(--es-front-criteria-min-width, 520px), 100%), 1fr));
    gap: var(--es-front-criteria-gap, 18px);
    align-items: start;
}

.es-front-wrap .es-criteria-assignment {
    overflow: hidden;
    background: var(--es-front-criteria-panel-bg, var(--es-front-card-bg, var(--es-front-base-panel)));
    border-color: var(--es-front-criteria-border, var(--es-front-base-line));
    border-radius: var(--es-front-criteria-radius, var(--es-front-card-radius, 0));
    box-shadow: var(--es-front-criteria-shadow, var(--es-front-soft-shadow));
}

.es-front-wrap .es-criteria-assignment > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 14px var(--es-front-criteria-padding, 18px);
    cursor: pointer;
    list-style: none;
    background: var(--es-front-criteria-header-bg, var(--es-front-base-soft));
    border-bottom: 1px solid transparent;
    color: var(--es-front-criteria-text, var(--es-front-base-text));
}

.es-front-wrap .es-criteria-assignment[open] > summary {
    border-bottom-color: var(--es-front-criteria-border, var(--es-front-base-line));
}

.es-front-wrap .es-criteria-assignment > summary::-webkit-details-marker {
    display: none;
}

.es-front-wrap .es-criteria-assignment > summary::after {
    content: "⌄";
    color: var(--es-front-criteria-text, var(--es-front-base-text));
    font-weight: 900;
    transition: transform .22s ease;
}

.es-front-wrap .es-criteria-assignment[open] > summary::after {
    transform: rotate(180deg);
}

.es-front-wrap .es-criteria-assignment > summary span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 800;
}

.es-front-wrap .es-criteria-assignment > summary strong,
.es-front-wrap .es-criteria-total-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    min-height: 34px;
    padding: 7px 12px;
    background: var(--es-front-criteria-total-bg, var(--es-front-success, #1f7a48));
    color: var(--es-front-criteria-total-text, #ffffff) !important;
    font-weight: 900;
    line-height: 1;
}

.es-front-wrap .es-criteria-assignment > summary strong.is-warning,
.es-front-wrap .es-criteria-total-box.is-warning {
    background: var(--es-front-warning, #a16207);
}

.es-front-wrap .es-criteria-body {
    padding: var(--es-front-criteria-padding, 18px);
    color: var(--es-front-criteria-text, var(--es-front-base-text));
}

.es-front-wrap .es-criteria-form {
    display: grid;
    gap: var(--es-front-form-gap, 12px);
}

.es-front-wrap .es-criteria-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--es-front-criteria-header-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-criteria-border, var(--es-front-base-line));
    border-radius: var(--es-front-criteria-row-radius, 0);
}

.es-front-wrap .es-criteria-toolbar strong {
    display: block;
    color: var(--es-front-criteria-text, var(--es-front-base-text));
    font-size: .98rem;
}

.es-front-wrap .es-criteria-toolbar span {
    display: block;
    margin-top: 2px;
    color: var(--es-front-criteria-muted, var(--es-front-base-muted));
    font-size: .92rem;
}

.es-front-wrap .es-criteria-rows {
    display: grid;
    gap: 10px;
}

.es-front-wrap .es-criteria-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 116px 26px 42px;
    gap: 10px;
    align-items: end;
    padding: 10px;
    background: var(--es-front-criteria-row-bg, var(--es-front-base-panel));
    border: 1px solid var(--es-front-criteria-border, var(--es-front-base-line));
    border-radius: var(--es-front-criteria-row-radius, 0);
}

.es-front-wrap .es-criteria-row label {
    margin-bottom: 5px;
    color: var(--es-front-criteria-text, var(--es-front-base-text));
    font-size: .92rem;
}


.es-front-wrap .es-criteria-row.is-locked {
    background: color-mix(in srgb, var(--es-front-criteria-row-bg, var(--es-front-base-panel)) 92%, var(--es-front-base-muted));
}

.es-front-wrap .es-criteria-row.is-locked input[readonly] {
    opacity: .78;
    cursor: not-allowed;
}

.es-front-wrap .es-criteria-lock {
    display: grid;
    place-items: center;
    align-self: center;
    width: 26px;
    min-height: 38px;
    font-size: .9rem;
}

.es-front-wrap .es-criteria-lock[hidden] {
    display: grid !important;
    visibility: hidden;
}

.es-front-wrap .es-criteria-row input,
.es-front-wrap .es-criteria-copy-controls select {
    background: var(--es-front-criteria-select-bg, var(--es-front-input-bg, #ffffff));
    border-color: var(--es-front-criteria-select-border, var(--es-front-input-border, var(--es-front-base-line)));
    color: var(--es-front-criteria-select-text, var(--es-front-base-text));
}

.es-front-wrap .es-criteria-weight-field input {
    text-align: right;
}

.es-front-wrap .es-criteria-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding-top: 4px;
}

.es-front-wrap .es-criteria-footer p {
    color: var(--es-front-criteria-muted, var(--es-front-base-muted));
    font-size: .92rem;
}

.es-front-wrap .es-criteria-total-box span {
    display: none;
}

.es-front-wrap .es-criteria-total-box strong {
    color: inherit !important;
}

.es-front-wrap .es-criteria-save,
.es-front-wrap .es-criteria-copy-submit,
.es-front-wrap .es-criteria-add {
    background-color: var(--es-front-criteria-save-bg, var(--es-front-button-main));
    background-image: none !important;
    border-color: var(--es-front-criteria-save-bg, var(--es-front-button-main));
    color: var(--es-front-criteria-save-text, var(--es-front-button-color, #ffffff));
    box-shadow: var(--es-front-button-shadow);
}

.es-front-wrap .es-criteria-copy-panel {
    margin-top: 14px;
    padding: 14px;
    background: var(--es-front-criteria-copy-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-criteria-border, var(--es-front-base-line));
    border-radius: var(--es-front-criteria-row-radius, 0);
}

.es-front-wrap .es-criteria-copy-panel strong {
    color: var(--es-front-criteria-text, var(--es-front-base-text));
}

.es-front-wrap .es-criteria-copy-panel span {
    color: var(--es-front-criteria-muted, var(--es-front-base-muted));
}

.es-front-wrap .es-criteria-copy-controls {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 10px;
    align-items: end;
    margin-top: 10px;
}

.es-front-wrap .es-criteria-copy-controls select {
    min-width: 0;
}


.es-front-wrap .es-ai-lab {
    display: grid;
    gap: 14px;
    padding: 22px;
    border: 1px solid var(--es-exam-line);
    background: color-mix(in srgb, var(--es-exam-primary) 3%, var(--es-exam-surface));
}
.es-front-wrap .es-ai-lab-head { padding-bottom: 3px; }
.es-front-wrap .es-ai-lab-grid { display: grid; grid-template-columns: minmax(280px, .62fr) minmax(0, 1.38fr); gap: 14px; align-items: start; }
.es-front-wrap .es-ai-lab-connection { position: sticky; top: 12px; }
.es-front-wrap .es-ai-lab-connection-form { display: grid; gap: 12px; margin-top: 18px; }
.es-front-wrap .es-ai-lab-connection-form .es-button-primary { min-height: 42px; }
.es-front-wrap .es-button-primary:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.es-front-wrap .es-ai-lab-result { display: grid; gap: 9px; margin-top: 16px; padding: 14px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-lab-result.is-success { border-left: 4px solid #277748; }
.es-front-wrap .es-ai-lab-result.is-error { border-left: 4px solid #a33a32; background: #fff7f6; }
.es-front-wrap .es-ai-lab-result p { margin: 0; }
.es-front-wrap .es-ai-lab-metrics { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; }
.es-front-wrap .es-ai-lab-metrics span { display: grid; gap: 2px; padding: 8px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); font-weight: 800; overflow-wrap: anywhere; }
.es-front-wrap .es-ai-lab-metrics small { color: var(--es-exam-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.es-front-wrap .es-ai-lab-grading-form { display: grid; gap: 16px; margin-top: 18px; }
.es-front-wrap .es-ai-lab-grading-form .es-field small { color: var(--es-exam-muted); font-weight: 500; }
.es-front-wrap .es-ai-lab-rubrics { display: grid; gap: 10px; }
.es-front-wrap .es-ai-lab-rubrics-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-lab-rubrics-head > div { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.es-front-wrap .es-ai-lab-rubrics-head span { color: var(--es-exam-muted); font-size: 12px; }
.es-front-wrap .es-ai-lab-rubric-list { display: grid; gap: 9px; }
.es-front-wrap .es-ai-lab-rubric-row { display: grid; gap: 7px; padding: 11px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-lab-rubric-main { display: grid; grid-template-columns: minmax(0,1fr) 90px 34px; gap: 7px; }
.es-front-wrap .es-ai-lab-rubric-row input,
.es-front-wrap .es-ai-lab-rubric-row textarea { width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid var(--es-exam-line); border-radius: var(--es-front-input-radius, 0); background: var(--es-exam-surface); color: var(--es-exam-text); outline: none; }
.es-front-wrap .es-ai-lab-rubric-row textarea { min-height: 62px; resize: vertical; }
.es-front-wrap .es-ai-lab-rubric-row input:focus,
.es-front-wrap .es-ai-lab-rubric-row textarea:focus { border-color: var(--es-exam-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-exam-primary) 10%, transparent); }
.es-front-wrap .es-ai-lab-rubric-main button { border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); color: #9b2c2c; font-size: 18px; cursor: pointer; }
.es-front-wrap .es-ai-grade-result { display: grid; gap: 14px; margin-top: 18px; padding: 16px; border: 1px solid #7bb697; border-left: 4px solid #277748; background: #f7fcf9; }
.es-front-wrap .es-ai-grade-result.needs-review { border-color: #d5ad66; border-left-color: #a36519; background: #fffaf0; }
.es-front-wrap .es-ai-grade-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.es-front-wrap .es-ai-grade-summary > div { display: grid; gap: 3px; padding: 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-ai-grade-summary span { color: var(--es-exam-muted); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.es-front-wrap .es-ai-grade-summary strong { overflow-wrap: anywhere; }
.es-front-wrap .es-ai-review-reason { margin: 0; padding: 10px; border: 1px solid #d5ad66; background: #fff; }
.es-front-wrap .es-ai-grade-criteria { display: grid; gap: 8px; }
.es-front-wrap .es-ai-grade-criteria article { padding: 12px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-ai-grade-criteria article p { margin: 8px 0 0; color: var(--es-exam-text); }
.es-front-wrap .es-ai-grade-criteria article small { display: block; margin-top: 8px; color: var(--es-exam-muted); }

.es-front-wrap .es-ai-grade-summary small { display: block; margin-top: 2px; color: var(--es-exam-muted); font-size: 10px; font-weight: 700; }
.es-front-wrap .es-ai-grade-penalties { display: grid; gap: 8px; padding-top: 4px; }
.es-front-wrap .es-ai-grade-penalties h4 { margin: 0 0 2px; font-size: 14px; }
.es-front-wrap .es-ai-grade-penalties article { padding: 12px; border: 1px solid #d5ad66; background: #fffdf7; }
.es-front-wrap .es-ai-grade-penalties article p { margin: 8px 0 0; }
.es-front-wrap .es-ai-grade-penalties article small { display: block; margin-top: 8px; color: var(--es-exam-muted); }
.es-front-wrap .es-ai-grade-criterion-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.es-front-wrap .es-ai-grade-criterion-head > div { display: grid; gap: 2px; }
.es-front-wrap .es-ai-grade-criterion-head span { color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-ai-grade-criterion-head b { white-space: nowrap; font-size: 17px; }
.es-front-wrap .es-ai-lab-usage { display: flex; gap: 8px; flex-wrap: wrap; color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-ai-lab-usage span { padding: 5px 7px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }


/* Exames 0.11.57 — gerador de questões por IA */
.es-front-wrap .es-ai-question-generator { border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); box-shadow: 0 10px 28px rgba(15,23,42,.04); }
.es-front-wrap .es-ai-question-generator > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; cursor: pointer; list-style: none; }
.es-front-wrap .es-ai-question-generator > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-ai-question-generator > summary > span:first-child { display: grid; gap: 3px; }
.es-front-wrap .es-ai-question-generator > summary strong { font-size: 16px; color: var(--es-exam-text); }
.es-front-wrap .es-ai-question-generator > summary small { color: var(--es-exam-muted); font-size: 12px; }
.es-front-wrap .es-ai-question-generator > summary > span:last-child { color: var(--es-exam-primary); font-weight: 900; }
.es-front-wrap .es-ai-question-generator[open] > summary { border-bottom: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-question-generator-body { display: grid; gap: 18px; padding: 18px; }
.es-front-wrap .es-ai-generator-warning, .es-front-wrap .es-ai-generator-error { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--es-exam-line); border-left: 4px solid #a36519; background: var(--es-exam-soft); }
.es-front-wrap .es-ai-generator-error { border-left-color: #9f2f2f; }
.es-front-wrap .es-ai-generator-warning span, .es-front-wrap .es-ai-generator-error span { color: var(--es-exam-muted); }
.es-front-wrap .es-ai-generator-form { display: grid; gap: 16px; }
.es-front-wrap .es-ai-generator-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.es-front-wrap .es-ai-generator-intro > div:first-child { display: grid; gap: 3px; }
.es-front-wrap .es-ai-generator-intro > div:first-child > span, .es-front-wrap .es-ai-generated-head > div > span { color: var(--es-exam-muted); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.es-front-wrap .es-ai-generator-intro h4, .es-front-wrap .es-ai-generated-head h4 { margin: 0; font-size: 19px; }
.es-front-wrap .es-ai-generator-intro p, .es-front-wrap .es-ai-generated-head p { margin: 2px 0 0; color: var(--es-exam-muted); }
.es-front-wrap .es-ai-generator-model { padding: 8px 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); white-space: nowrap; }
.es-front-wrap .es-ai-generator-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.es-front-wrap .es-ai-generator-settings { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding: 12px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-generator-settings small { color: var(--es-exam-muted); font-size: 10px; }
.es-front-wrap .es-ai-generator-difficulty { display: grid; grid-template-columns: minmax(220px,1fr) repeat(3,150px); gap: 10px; align-items: end; padding: 12px; border: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-generator-difficulty > div { display: grid; gap: 2px; }
.es-front-wrap .es-ai-generator-difficulty > div span { color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-ai-generator-difficulty label { display: grid; grid-template-columns: 1fr 68px 18px; gap: 6px; align-items: center; }
.es-front-wrap .es-ai-generator-difficulty label span { font-size: 11px; font-weight: 800; }
.es-front-wrap .es-ai-generator-difficulty label input { min-width: 0; }
.es-front-wrap .es-ai-generator-types { display: grid; gap: 10px; }
.es-front-wrap .es-ai-generator-auto { padding: 11px 12px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-generator-auto > span { display: grid; gap: 2px; }
.es-front-wrap .es-ai-generator-auto small { color: var(--es-exam-muted); font-weight: 400; }
.es-front-wrap .es-ai-generator-types details { border: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-generator-types details > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; cursor: pointer; list-style: none; font-weight: 800; }
.es-front-wrap .es-ai-generator-types details > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-ai-generator-types details.is-disabled { opacity: .48; }
.es-front-wrap .es-ai-generator-type-actions { display: flex; gap: 7px; padding: 10px 12px 0; }
.es-front-wrap .es-ai-generator-type-actions button { min-height: 30px; padding: 5px 9px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); color: var(--es-exam-text); cursor: pointer; font-size: 11px; font-weight: 800; }
.es-front-wrap .es-ai-generator-type-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 12px; }
.es-front-wrap .es-ai-generator-type-group { display: grid; gap: 7px; align-content: start; padding: 10px; border: 1px solid color-mix(in srgb, var(--es-exam-line) 80%, transparent); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-generator-type-group > strong { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.es-front-wrap .es-ai-generator-type-group > div { display: grid; gap: 5px; }
.es-front-wrap .es-ai-generator-type-group label { display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 7px; align-items: center; font-size: 11px; cursor: pointer; }
.es-front-wrap .es-ai-generator-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.es-front-wrap .es-ai-generator-options .es-checkbox-field { padding: 11px 12px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-generator-options .es-checkbox-field > span { display: grid; gap: 2px; }
.es-front-wrap .es-ai-generator-options small { color: var(--es-exam-muted); font-weight: 400; }
.es-front-wrap .es-ai-generator-submit { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 4px; }
.es-front-wrap .es-ai-generator-submit > span { color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-ai-generator-submit button[disabled] { opacity: .5; cursor: not-allowed; }
.es-front-wrap .es-ai-generated-proposal { display: grid; gap: 14px; padding-top: 18px; border-top: 2px solid var(--es-exam-line); }
.es-front-wrap .es-ai-generated-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.es-front-wrap .es-ai-generated-head > div:first-child { display: grid; gap: 3px; }
.es-front-wrap .es-ai-generated-usage { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.es-front-wrap .es-ai-generated-usage span { padding: 6px 8px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); font-size: 10px; font-weight: 800; }
.es-front-wrap .es-ai-generated-list { display: grid; gap: 12px; }
.es-front-wrap .es-ai-generated-question { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-ai-generated-question-top { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.es-front-wrap .es-ai-generated-select { display: inline-flex; align-items: center; gap: 6px; margin-right: 4px; font-size: 11px; font-weight: 900; cursor: pointer; }
.es-front-wrap .es-question-type-badge, .es-front-wrap .es-difficulty-badge, .es-front-wrap .es-ai-generated-ai-badge, .es-front-wrap .es-ai-generated-manual-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 8px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); font-size: 10px; font-weight: 900; }
.es-front-wrap .es-ai-generated-ai-badge { color: var(--es-exam-primary); }
.es-front-wrap .es-ai-generated-manual-badge { border-color: #b57920; color: #8a5a16; }
.es-front-wrap .es-ai-generated-edit-grid { display: grid; grid-template-columns: 150px 180px minmax(0,1fr); gap: 10px; }
.es-front-wrap .es-ai-generated-edit-grid .es-field-full { grid-column: 1 / -1; }
.es-front-wrap .es-ai-generated-details { border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-generated-details > summary { display: flex; justify-content: space-between; gap: 10px; padding: 9px 11px; cursor: pointer; list-style: none; font-size: 11px; font-weight: 900; }
.es-front-wrap .es-ai-generated-details > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-ai-generated-details > div { display: grid; gap: 10px; padding: 11px; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-generated-answer-block, .es-front-wrap .es-ai-generated-rubrics, .es-front-wrap .es-ai-generated-penalties, .es-front-wrap .es-ai-generated-manual { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-ai-generated-answer-block > span { padding: 5px 7px; border: 1px solid color-mix(in srgb, var(--es-exam-line) 78%, transparent); }
.es-front-wrap .es-ai-generated-answer-block > span.is-correct { box-shadow: inset 3px 0 #277748; }
.es-front-wrap .es-ai-generated-answer-block p, .es-front-wrap .es-ai-generated-rubrics p, .es-front-wrap .es-ai-generated-manual p { margin: 0; line-height: 1.5; }
.es-front-wrap .es-ai-generated-rubrics > div { display: grid; gap: 3px; padding: 8px 0; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-generated-rubrics > div:first-of-type { border-top: 0; }
.es-front-wrap .es-ai-generated-rubrics > div > div { display: flex; justify-content: space-between; gap: 10px; }
.es-front-wrap .es-ai-generated-rubrics small { color: var(--es-exam-muted); }
.es-front-wrap .es-ai-generated-penalties span { color: var(--es-exam-muted); }
.es-front-wrap .es-ai-generated-manual { border-left: 3px solid #b57920; }
.es-front-wrap .es-ai-generated-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 4px; }
.es-front-wrap .es-ai-generated-actions span { color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-ai-generated-clear { display: flex; justify-content: flex-end; margin: 0; }
.es-front-wrap .es-ai-generated-clear button { border: 0; background: transparent; color: var(--es-exam-muted); text-decoration: underline; cursor: pointer; font-size: 11px; }

@media (max-width: 1180px) {
    .es-front-wrap .es-criteria-list {
        grid-template-columns: 1fr;
    }
}

.es-front-wrap .es-front-table-wrap {
    overflow: auto;
}

.es-front-wrap .es-front-table,
.es-front-wrap table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--es-front-table-font-size, inherit);
}

.es-front-wrap .es-front-table th,
.es-front-wrap .es-front-table td,
.es-front-wrap table th,
.es-front-wrap table td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--es-front-evaluation-border, var(--es-front-base-line));
    text-align: left;
    vertical-align: middle;
}

.es-front-wrap .es-front-table thead th,
.es-front-wrap table thead th {
    background: var(--es-front-table-header-bg, var(--es-front-base-soft));
    color: var(--es-front-base-text);
    font-weight: 800;
}

.es-front-wrap .es-front-table tbody tr,
.es-front-wrap table tbody tr {
    background: var(--es-front-table-row-bg, #ffffff);
    min-height: var(--es-front-row-height, auto);
}

.es-front-wrap .es-front-table tbody tr:nth-child(even),
.es-front-wrap table tbody tr:nth-child(even) {
    background: var(--es-front-table-alt-bg, color-mix(in srgb, var(--es-front-base-primary) 3%, #ffffff));
}

.es-front-wrap .es-front-table tbody tr:hover,
.es-front-wrap table tbody tr:hover {
    background: var(--es-front-table-hover-bg, color-mix(in srgb, var(--es-front-base-primary) 7%, #ffffff));
}

.es-front-wrap .es-validated-user,
.es-front-wrap .es-password-rules,
.es-front-wrap .es-security-note,
.es-front-wrap .es-secret-box,
.es-front-wrap .es-qr-panel {
    padding: 16px;
    border: 1px solid var(--es-front-base-line);
    background: var(--es-front-base-soft);
}

.es-front-wrap .es-validated-user {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}

.es-front-wrap .es-validated-user strong {
    color: var(--es-front-base-text);
}

.es-front-wrap .es-qr-panel {
    display: grid;
    justify-items: center;
    gap: 12px;
    margin: 18px 0;
    background: var(--es-front-qr-bg, var(--es-front-base-soft));
    border-radius: var(--es-front-qr-radius, 0);
    text-align: center;
}

.es-front-wrap .es-qr-panel img,
.es-front-wrap .es-qr-render .es-qr-svg {
    display: block;
    width: var(--es-front-qr-size, 245px);
    height: var(--es-front-qr-size, 245px);
    max-width: 100%;
    border: 10px solid #ffffff;
    border-radius: var(--es-front-qr-radius, 0);
    box-shadow: var(--es-front-photo-shadow, var(--es-front-soft-shadow));
}

.es-front-wrap .es-secret-box {
    margin: 18px 0;
    background: var(--es-front-secret-bg, var(--es-front-base-soft));
    border-radius: var(--es-front-secret-radius, 0);
}

.es-front-wrap .es-secret-box code {
    display: block;
    margin-top: 8px;
    overflow-wrap: anywhere;
    white-space: normal;
}

.es-front-wrap .easyschool-status-pill,
.es-front-wrap .es-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 12px;
    border-radius: var(--es-front-status-radius, 6px);
    color: #ffffff;
    font-weight: 800;
}

.es-front-wrap .easyschool-status-pill.is-active,
.es-front-wrap .es-status-pill.is-active {
    background: var(--es-front-status-active-bg, var(--es-front-success, #1f7a48));
}

.es-front-wrap .easyschool-status-pill.is-inactive,
.es-front-wrap .es-status-pill.is-inactive {
    background: var(--es-front-status-inactive-bg, var(--es-front-danger, #b3261e));
}

.es-front-wrap .es-front-photo-thumb {
    width: var(--es-front-thumb-width, 80px);
    height: var(--es-front-thumb-height, 107px);
    border-radius: var(--es-front-photo-radius, 0);
    box-shadow: var(--es-front-photo-shadow, var(--es-front-soft-shadow));
    object-fit: contain;
    object-position: center center;
    background: var(--es-front-base-panel);
}

.es-front-wrap .es-front-profile-photo {
    width: var(--es-front-photo-width, 202px);
    height: var(--es-front-photo-height, 269px);
    border-radius: var(--es-front-photo-radius, 0);
    box-shadow: var(--es-front-photo-shadow, var(--es-front-soft-shadow));
    object-fit: contain;
    object-position: center center;
    background: var(--es-front-base-panel);
}

.es-front-wrap .easyschool-mini-bar {
    height: var(--es-front-progress-height, 10px);
    background: var(--es-front-base-primary);
}

@media (max-width: 1280px) {
    .es-front-wrap .es-evaluation-toolbar {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .es-front-wrap .es-evaluation-control {
        max-width: none;
    }
}

@media (max-width: 900px) {
    .es-front-wrap .es-stats-grid,
    .es-front-wrap .es-security-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .es-front-wrap .es-grid,
    .es-front-wrap .es-security-grid,
    .es-front-wrap .es-evaluation-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .es-front-wrap .es-evaluation-ranking-assignment {
        grid-template-columns: 1fr;
    }

    .es-front-wrap .es-evaluation-ranking-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .es-front-wrap .es-evaluation-ranking-card {
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .es-front-wrap .es-evaluation-ranking-card img {
        width: 38px;
        height: 38px;
    }

    .es-front-wrap {
        padding-inline: min(var(--es-front-content-padding, 18px), 14px);
    }

    .es-front-wrap .es-area-topbar,
    .es-front-wrap .es-teacher-topbar,
    .es-front-wrap .es-workspace-header,
    .es-front-wrap .es-section-title,
    .es-front-wrap .es-criteria-toolbar,
    .es-front-wrap .es-validated-user {
        align-items: stretch;
        flex-direction: column;
    }

    .es-front-wrap .es-criteria-footer,
    .es-front-wrap .es-criteria-copy-controls {
        grid-template-columns: 1fr;
    }

    .es-front-wrap .es-stats-grid,
    .es-front-wrap .es-security-summary {
        grid-template-columns: 1fr;
    }

    .es-front-wrap .es-criteria-row {
        grid-template-columns: 1fr;
    }

    .es-front-wrap .es-user-menu-list {
        left: 0;
        right: auto;
    }
}


/* Tabelas de Correção */
.es-front-wrap .es-correction-shell {
    display: grid;
    gap: var(--es-front-correction-gap, 16px);
}

.es-front-wrap .es-correction-assignment-control,
.es-front-wrap .es-correction-manager,
.es-front-wrap .es-correction-students-panel,
.es-front-wrap .es-correction-score-panel {
    background: var(--es-front-correction-panel-bg, var(--es-front-evaluation-panel-bg, var(--es-front-base-panel)));
    border: 1px solid var(--es-front-correction-border, var(--es-front-evaluation-border, var(--es-front-base-line)));
    border-radius: var(--es-front-correction-radius, var(--es-front-evaluation-radius, 0));
    box-shadow: var(--es-front-correction-shadow, var(--es-front-evaluation-shadow, var(--es-front-soft-shadow)));
}

.es-front-wrap .es-correction-assignment-control {
    display: grid;
    gap: 6px;
    max-width: 560px;
    padding: var(--es-front-correction-padding, 14px);
}

.es-front-wrap .es-correction-assignment-control label,
.es-front-wrap .es-correction-table-selector label,
.es-front-wrap .es-correction-title-field,
.es-front-wrap .es-correction-item-main label,
.es-front-wrap .es-correction-item-select-wrap,
.es-front-wrap .es-correction-other-value label {
    display: grid;
    gap: 5px;
    color: var(--es-front-correction-text, var(--es-front-evaluation-text, var(--es-front-base-text)));
    font-weight: 700;
}

.es-front-wrap .es-correction-assignment {
    display: none;
    gap: var(--es-front-correction-gap, 16px);
}

.es-front-wrap .es-correction-assignment.is-active {
    display: grid;
}

.es-front-wrap .es-correction-manager {
    display: grid;
    gap: 14px;
    padding: var(--es-front-correction-padding, 14px);
}

.es-front-wrap .es-correction-manager-head,
.es-front-wrap .es-correction-items-head,
.es-front-wrap .es-correction-score-head,
.es-front-wrap .es-correction-copy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.es-front-wrap .es-correction-manager-head > div,
.es-front-wrap .es-correction-items-head > div,
.es-front-wrap .es-correction-copy > div,
.es-front-wrap .es-correction-score-head > div {
    display: grid;
    gap: 3px;
}

.es-front-wrap .es-correction-manager-head strong,
.es-front-wrap .es-correction-items-head strong,
.es-front-wrap .es-correction-copy strong,
.es-front-wrap .es-correction-score-head strong {
    color: var(--es-front-correction-text, var(--es-front-evaluation-text, var(--es-front-base-text)));
}

.es-front-wrap .es-correction-manager-head span,
.es-front-wrap .es-correction-items-head span,
.es-front-wrap .es-correction-copy span,
.es-front-wrap .es-correction-score-head span {
    color: var(--es-front-correction-muted, var(--es-front-evaluation-muted, var(--es-front-base-muted)));
}

.es-front-wrap .es-correction-table-selector {
    display: grid;
    grid-template-columns: minmax(240px, 640px);
    gap: 12px;
}

.es-front-wrap .es-correction-manager-head-actions,
.es-front-wrap .es-correction-existing-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.es-front-wrap .es-correction-builder {
    display: grid;
    gap: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--es-front-correction-border, var(--es-front-base-line));
}

.es-front-wrap .es-correction-title-field {
    max-width: 720px;
}

.es-front-wrap .es-correction-existing-actions {
    padding-top: 2px;
}

.es-front-wrap .es-correction-items {
    display: grid;
    gap: 10px;
}

.es-front-wrap .es-correction-item-row {
    display: grid;
    gap: 7px;
    padding: 8px;
    background: var(--es-front-correction-item-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-correction-item-border, var(--es-front-correction-border, var(--es-front-base-line)));
    border-radius: var(--es-front-correction-item-radius, var(--es-front-correction-radius, 0));
}

.es-front-wrap .es-correction-item-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(90px, 125px) 36px;
    gap: 7px;
    align-items: end;
}

.es-front-wrap .es-correction-item-main input,
.es-front-wrap .es-correction-title-field input,
.es-front-wrap .es-correction-table-selector input,
.es-front-wrap .es-correction-table-selector select,
.es-front-wrap .es-correction-assignment-control select,
.es-front-wrap .es-correction-copy select,
.es-front-wrap .es-correction-item-select-wrap select,
.es-front-wrap .es-correction-other-value input {
    width: 100%;
    min-height: 36px;
    border: 1px solid var(--es-front-input-border, var(--es-front-base-line));
    border-radius: var(--es-front-input-radius, 0);
    background: var(--es-front-input-bg, #fff);
    color: var(--es-front-correction-text, var(--es-front-base-text));
    padding: 8px 10px;
}


.es-front-wrap .es-correction-item-criteria {
    display: grid;
    grid-template-columns: repeat(var(--es-front-correction-criterion-columns, 6), minmax(0, 1fr));
    gap: var(--es-front-correction-criterion-gap, 6px);
}

.es-front-wrap .es-correction-item-criteria label {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: var(--es-front-correction-criterion-height, 36px);
    padding: var(--es-front-correction-criterion-padding, 6px);
    background: var(--es-front-correction-criterion-bg, var(--es-front-evaluation-criteria-bg, #fff));
    border: 1px solid var(--es-front-correction-criterion-border, var(--es-front-correction-item-border, var(--es-front-base-line)));
    border-radius: var(--es-front-correction-criterion-radius, 0);
    color: var(--es-front-correction-criterion-text, var(--es-front-correction-text, var(--es-front-base-text)));
    font-weight: 650;
    cursor: pointer;
}

.es-front-wrap .es-correction-item-criteria label:has(input:checked) {
    background: var(--es-front-correction-criterion-selected-bg, #f7ecec);
    border-color: var(--es-front-correction-criterion-selected-border, var(--es-front-base-primary));
    color: var(--es-front-correction-criterion-selected-text, var(--es-front-base-primary));
}

.es-front-wrap .es-correction-item-criteria input[type="checkbox"] {
    inline-size: var(--es-front-correction-criterion-checkbox-size, 16px) !important;
    block-size: var(--es-front-correction-criterion-checkbox-size, 16px) !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    flex: 0 0 var(--es-front-correction-criterion-checkbox-size, 16px);
    margin: 0;
    padding: 0;
    accent-color: var(--es-front-correction-criterion-checkbox, var(--es-front-evaluation-criteria-checkbox, var(--es-front-base-primary)));
}

.es-front-wrap .es-correction-item-criteria label > span {
    min-width: 0;
    font-size: var(--es-front-correction-criterion-font-size, 14px);
    line-height: 1.2;
}


.es-front-wrap .es-correction-item-remove {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
}
.es-front-wrap .es-correction-item-remove,
.es-front-wrap .es-correction-remove,
.es-front-wrap .es-correction-clear-value {
    background: var(--es-front-danger, #b42318);
    color: #fff;
    border-color: var(--es-front-danger, #b42318);
}

.es-front-wrap .es-correction-manager-actions,
.es-front-wrap .es-correction-copy-controls,
.es-front-wrap .es-correction-other-value {
    display: flex;
    align-items: end;
    gap: 8px;
    flex-wrap: wrap;
}

.es-front-wrap .es-correction-builder-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 4px;
}

.es-front-wrap .es-correction-total-points {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-height: 36px;
    padding: 7px 10px;
    background: var(--es-front-correction-item-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-correction-item-border, var(--es-front-correction-border, var(--es-front-base-line)));
    color: var(--es-front-correction-text, var(--es-front-base-text));
}

.es-front-wrap .es-correction-total-points span {
    color: var(--es-front-correction-muted, var(--es-front-base-muted));
}

.es-front-wrap .es-correction-total-points strong {
    font-size: 1.05em;
}

.es-front-wrap .es-correction-copy {
    padding-top: 12px;
    border-top: 1px solid var(--es-front-correction-border, var(--es-front-base-line));
}

.es-front-wrap .es-correction-copy-controls select {
    min-width: 260px;
}

.es-front-wrap .es-correction-feedback {
    min-height: 20px;
    color: var(--es-front-danger, #b42318);
    font-size: .92em;
}

.es-front-wrap .es-correction-feedback.is-success {
    color: var(--es-front-success, #067647);
}

.es-front-wrap .es-correction-workspace {
    display: grid;
    grid-template-columns: minmax(0, var(--es-front-correction-students-width, 68%)) minmax(var(--es-front-correction-side-min-width, 310px), 1fr);
    gap: var(--es-front-correction-gap, 16px);
}

.es-front-wrap .es-correction-launch {
    grid-column: 1 / -1;
    display: grid;
    gap: 8px;
    padding: var(--es-front-correction-padding, 14px);
    background: var(--es-front-correction-panel-bg, var(--es-front-evaluation-panel-bg, var(--es-front-base-panel)));
    border: 1px solid var(--es-front-correction-border, var(--es-front-base-line));
    border-radius: var(--es-front-correction-radius, 0);
    box-shadow: var(--es-front-correction-shadow, var(--es-front-soft-shadow));
}

.es-front-wrap .es-correction-launch-head {
    display: grid;
    gap: 2px;
}

.es-front-wrap .es-correction-launch-head strong {
    color: var(--es-front-correction-text, var(--es-front-base-text));
}

.es-front-wrap .es-correction-launch-head span {
    color: var(--es-front-correction-muted, var(--es-front-base-muted));
}

.es-front-wrap .es-correction-launch-options {
    display: grid;
    grid-template-columns: repeat(var(--es-front-correction-mode-columns, 3), minmax(150px, 220px));
    justify-content: start;
    gap: var(--es-front-correction-mode-gap, 6px);
}

.es-front-wrap .es-correction-launch-options label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: flex-start;
    min-height: var(--es-front-correction-mode-height, 36px);
    padding: 6px 10px;
    background: var(--es-front-correction-mode-bg, var(--es-front-evaluation-launch-bg, #fff));
    color: var(--es-front-correction-mode-text, var(--es-front-evaluation-launch-text, var(--es-front-base-text)));
    border: 1px solid var(--es-front-correction-mode-border, var(--es-front-evaluation-launch-border, var(--es-front-base-line)));
    border-radius: var(--es-front-correction-mode-radius, var(--es-front-evaluation-launch-radius, 0));
    cursor: pointer;
    font-weight: 750;
}

.es-front-wrap .es-correction-launch-options label:has(input:checked) {
    background: var(--es-front-correction-mode-selected-bg, var(--es-front-evaluation-launch-checked-bg, var(--es-front-base-primary)));
    color: var(--es-front-correction-mode-selected-text, var(--es-front-evaluation-launch-checked-text, #fff));
    border-color: var(--es-front-correction-mode-selected-border, var(--es-front-evaluation-launch-checked-border, var(--es-front-base-primary)));
}

.es-front-wrap .es-correction-launch-options input[type="radio"] {
    inline-size: var(--es-front-correction-mode-control-size, 16px) !important;
    block-size: var(--es-front-correction-mode-control-size, 16px) !important;
    min-inline-size: 0 !important;
    min-block-size: 0 !important;
    flex: 0 0 var(--es-front-correction-mode-control-size, 16px);
    margin: 0;
    padding: 0;
    accent-color: var(--es-front-correction-mode-selected-bg, var(--es-front-base-primary));
}

.es-front-wrap .es-correction-launch-options label > span {
    min-width: 0;
    font-size: .9rem;
    line-height: 1.2;
    white-space: nowrap;
}

.es-front-wrap .es-correction-students-panel,
.es-front-wrap .es-correction-score-panel {
    padding: var(--es-front-correction-padding, 14px);
}

.es-front-wrap .es-correction-student-card {
    background: var(--es-front-correction-student-bg, var(--es-front-evaluation-student-card-bg, var(--es-front-base-soft)));
    color: var(--es-front-correction-student-text, var(--es-front-evaluation-student-text, var(--es-front-base-text)));
}

.es-front-wrap .es-correction-student-card strong {
    color: inherit;
}

.es-front-wrap .es-correction-student-card.is-selected {
    background: var(--es-front-correction-student-selected-bg, var(--es-front-evaluation-student-selected-bg, var(--es-front-base-primary)));
    color: var(--es-front-correction-student-selected-text, var(--es-front-evaluation-student-selected-text, #fff));
}

.es-front-wrap .es-correction-student-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    margin-top: 4px;
    border: 1px solid var(--es-front-correction-border, var(--es-front-base-line));
    background: var(--es-front-correction-progress-bg, #fff);
    color: var(--es-front-correction-progress-text, var(--es-front-correction-muted, var(--es-front-base-muted)));
    font-size: 12px;
    font-weight: 700;
}

.es-front-wrap .es-correction-student-progress.is-complete {
    color: var(--es-front-correction-progress-complete-text, var(--es-front-success, #067647));
    border-color: var(--es-front-correction-progress-complete-text, var(--es-front-success, #067647));
    background: var(--es-front-correction-progress-complete-bg, #f0f9f4);
}

.es-front-wrap .es-correction-score-panel {
    display: grid;
    align-content: start;
    gap: 12px;
}

.es-front-wrap .es-correction-score-empty {
    color: var(--es-front-correction-muted, var(--es-front-base-muted));
    border: 1px dashed var(--es-front-correction-border, var(--es-front-base-line));
    padding: 18px;
}

.es-front-wrap .es-correction-score-content {
    display: grid;
    gap: 13px;
}

.es-front-wrap .es-correction-score-layout {
    display: grid;
    grid-template-columns: minmax(104px, max-content) minmax(0, 1fr);
    align-items: start;
    gap: 14px;
}

.es-front-wrap .es-correction-score-aside {
    display: grid;
    align-content: start;
    justify-items: start;
    gap: 5px;
    min-width: 0;
    position: sticky;
    top: 12px;
    align-self: start;
    z-index: 2;
}

.es-front-wrap .es-correction-score-main {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.es-front-wrap .es-correction-score-question {
    color: var(--es-front-correction-text, var(--es-front-base-text));
    font-size: .9rem;
    line-height: 1.2;
}

.es-front-wrap .es-correction-score-position {
    color: var(--es-front-correction-muted, var(--es-front-base-muted));
    font-size: .86rem;
    line-height: 1.25;
    white-space: nowrap;
}

.es-front-wrap .es-correction-score-identification {
    display: grid;
    justify-items: start;
    gap: 8px;
}

.es-front-wrap .es-correction-score-student-card {
    width: var(--es-front-evaluation-card-min-width, 104px);
    max-width: 140px;
    min-width: var(--es-front-evaluation-card-min-width, 104px);
    cursor: default;
    pointer-events: none;
}

.es-front-wrap .es-correction-score-student-card:hover {
    transform: none;
    box-shadow: none;
}

.es-front-wrap .es-correction-score-student-card img {
    width: 100%;
}

.es-front-wrap .es-correction-item-select-wrap {
    display: grid;
    gap: 5px;
}

.es-front-wrap .es-correction-item-list {
    width: 100%;
    min-height: var(--es-front-correction-question-list-height, 160px);
    padding: 4px;
    overflow-y: auto;
    background: var(--es-front-correction-question-bg, var(--es-front-input-bg, #fff));
    color: var(--es-front-correction-question-text, var(--es-front-correction-text, var(--es-front-base-text)));
    border: 1px solid var(--es-front-correction-question-border, var(--es-front-input-border, var(--es-front-base-line)));
    border-radius: var(--es-front-correction-question-radius, var(--es-front-input-radius, 0));
}

.es-front-wrap .es-correction-item-list option {
    padding: 6px 8px;
    min-height: var(--es-front-correction-question-row-height, 30px);
    background: var(--es-front-correction-question-bg, var(--es-front-input-bg, #fff));
    color: var(--es-front-correction-question-text, var(--es-front-correction-text, var(--es-front-base-text)));
    font-size: var(--es-front-correction-question-font-size, 14px);
}

.es-front-wrap .es-correction-item-list option:checked {
    background: var(--es-front-correction-question-selected-bg, var(--es-front-base-primary));
    color: var(--es-front-correction-question-selected-text, #fff);
}

.es-front-wrap .es-correction-current-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.es-front-wrap .es-correction-current-meta > div {
    display: grid;
    gap: 4px;
    padding: 10px;
    background: var(--es-front-correction-item-bg, var(--es-front-base-soft));
    border: 1px solid var(--es-front-correction-item-border, var(--es-front-base-line));
}

.es-front-wrap .es-correction-current-meta span,
.es-front-wrap .es-correction-quick-title {
    color: var(--es-front-correction-muted, var(--es-front-base-muted));
    font-size: .86em;
    font-weight: 700;
}

.es-front-wrap .es-correction-current-criteria {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.es-front-wrap .es-correction-current-criteria span {
    padding: 5px 8px;
    background: var(--es-front-correction-criterion-bg, var(--es-front-evaluation-criteria-bg, var(--es-front-base-soft)));
    border: 1px solid var(--es-front-correction-border, var(--es-front-base-line));
    font-size: .84em;
    font-weight: 700;
}

.es-front-wrap .es-correction-student-summary {
    display: grid;
    gap: 8px;
    padding: 10px;
    background: var(--es-front-correction-summary-bg, var(--es-front-base-soft));
    color: var(--es-front-correction-summary-text, var(--es-front-correction-text, var(--es-front-base-text)));
    border: 1px solid var(--es-front-correction-summary-border, var(--es-front-correction-border, var(--es-front-base-line)));
    border-radius: var(--es-front-correction-summary-radius, 0);
}

.es-front-wrap .es-correction-student-summary.is-complete {
    border-color: var(--es-front-correction-summary-accent, var(--es-front-success, #067647));
}

.es-front-wrap .es-correction-summary-total {
    font-size: .94rem;
    line-height: 1.35;
}

.es-front-wrap .es-correction-summary-total b {
    color: var(--es-front-correction-summary-accent, var(--es-front-success, #067647));
}

.es-front-wrap .es-correction-summary-criteria {
    display: grid;
    grid-template-columns: repeat(var(--es-front-correction-summary-columns, 2), minmax(0, 1fr));
    gap: 6px;
}

.es-front-wrap .es-correction-summary-criterion {
    display: grid;
    gap: 2px;
    min-width: 0;
    padding: 7px 8px;
    background: color-mix(in srgb, var(--es-front-correction-summary-bg, #f7f8fa) 72%, #fff);
    border: 1px solid var(--es-front-correction-summary-border, var(--es-front-correction-border, var(--es-front-base-line)));
}

.es-front-wrap .es-correction-summary-criterion strong,
.es-front-wrap .es-correction-summary-criterion span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.es-front-wrap .es-correction-summary-criterion span {
    color: var(--es-front-correction-summary-accent, var(--es-front-base-primary));
    font-weight: 800;
}

.es-front-wrap .es-correction-quick-values {
    display: grid;
    grid-template-columns: repeat(var(--es-front-correction-quick-columns, 5), minmax(54px, 1fr));
    gap: var(--es-front-correction-quick-gap, 6px);
}

.es-front-wrap .es-correction-quick-values button,
.es-front-wrap .es-correction-quick-custom button {
    min-height: var(--es-front-correction-quick-height, 42px);
    background: var(--es-front-correction-quick-bg, var(--es-front-button-secondary-bg, #fff));
    color: var(--es-front-correction-quick-text, var(--es-front-button-secondary-color, var(--es-front-base-text)));
    border: 1px solid var(--es-front-correction-quick-border, var(--es-front-base-line));
    border-radius: var(--es-front-correction-quick-radius, var(--es-front-button-radius, 0));
    font-weight: 800;
    font-size: var(--es-front-correction-quick-font-size, 14px);
    cursor: pointer;
}

.es-front-wrap .es-correction-quick-values button:hover,
.es-front-wrap .es-correction-quick-values button.is-current,
.es-front-wrap .es-correction-quick-custom button:hover,
.es-front-wrap .es-correction-quick-custom button.is-current {
    background: var(--es-front-correction-quick-active-bg, var(--es-front-primary, var(--es-front-base-primary)));
    color: var(--es-front-correction-quick-active-text, #fff);
    border-color: var(--es-front-correction-quick-active-bg, var(--es-front-primary, var(--es-front-base-primary)));
}

.es-front-wrap .es-correction-quick-values .is-wrong,
.es-front-wrap .es-correction-quick-values .is-wrong:hover,
.es-front-wrap .es-correction-quick-values .is-wrong.is-current {
    background: var(--es-front-correction-quick-wrong-bg, #ef2929);
    color: var(--es-front-correction-quick-wrong-text, #fff);
    border-color: var(--es-front-correction-quick-wrong-bg, #ef2929);
}

.es-front-wrap .es-correction-quick-values .is-correct,
.es-front-wrap .es-correction-quick-values .is-correct:hover,
.es-front-wrap .es-correction-quick-values .is-correct.is-current {
    background: var(--es-front-correction-quick-correct-bg, #22b94f);
    color: var(--es-front-correction-quick-correct-text, #fff);
    border-color: var(--es-front-correction-quick-correct-bg, #22b94f);
}

.es-front-wrap .es-correction-quick-custom {
    display: grid;
    grid-template-columns: repeat(var(--es-front-correction-quick-columns, 5), minmax(54px, 1fr));
    gap: var(--es-front-correction-quick-gap, 6px);
    align-items: stretch;
}

.es-front-wrap .es-correction-quick-custom input {
    width: 100%;
    min-width: 0;
    min-height: var(--es-front-correction-quick-height, 42px);
    padding: 6px 10px;
    background: var(--es-front-input-bg, #fff);
    color: var(--es-front-correction-text, var(--es-front-base-text));
    border: 1px solid var(--es-front-correction-quick-border, var(--es-front-base-line));
    border-radius: var(--es-front-correction-quick-radius, var(--es-front-button-radius, 0));
    font-size: var(--es-front-correction-quick-font-size, 14px);
}

.es-front-wrap .es-correction-quick-custom .es-correction-clear-value {
    background: var(--es-front-danger, #b42318);
    color: #fff;
    border-color: var(--es-front-danger, #b42318);
}

.es-front-wrap .es-correction-assignment.is-saving {
    opacity: .72;
    pointer-events: none;
}

@media (max-width: 1100px) {
    .es-front-wrap .es-correction-workspace,
    .es-front-wrap .es-correction-table-selector {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .es-front-wrap .es-correction-manager-head,
    .es-front-wrap .es-correction-items-head,
    .es-front-wrap .es-correction-copy,
    .es-front-wrap .es-correction-score-head {
        align-items: stretch;
        flex-direction: column;
    }
    .es-front-wrap .es-correction-score-layout {
        grid-template-columns: 1fr;
    }
    .es-front-wrap .es-correction-score-aside {
        grid-template-columns: max-content 1fr;
        align-items: end;
        column-gap: 10px;
        position: static;
        top: auto;
        z-index: auto;
    }
    .es-front-wrap .es-correction-score-question,
    .es-front-wrap .es-correction-score-position {
        grid-column: 2;
    }
    .es-front-wrap .es-correction-item-main {
        grid-template-columns: 1fr;
    }
    .es-front-wrap .es-correction-item-main .es-correction-item-remove {
        width: 100%;
    }
    .es-front-wrap .es-correction-quick-values,
    .es-front-wrap .es-correction-quick-custom {
        grid-template-columns: repeat(3, minmax(54px, 1fr));
    }
    .es-front-wrap .es-correction-launch-options {
        grid-template-columns: 1fr;
    }
    .es-front-wrap .es-correction-summary-criteria,
    .es-front-wrap .es-correction-item-criteria {
        grid-template-columns: 1fr;
    }
}

/* v0.11.38: ações de sessão por POST com aspeto de ligação */
.es-front-wrap .es-link-button {
    min-height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
}
.es-front-wrap .es-inline-action {
    display: inline-flex;
    margin: 0;
}
.es-front-wrap .es-user-menu-form { margin: 0; }
.es-front-wrap .es-user-menu-logout {
    display: block;
    width: 100%;
    min-height: auto;
    padding: 10px 12px;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--es-front-base-text);
    text-align: left;
    font: inherit;
    font-weight: 400;
}
.es-front-wrap .es-user-menu-logout:hover {
    background: var(--es-front-base-soft);
    color: var(--es-front-base-primary);
}

/* Formulário auxiliar: não interfere com o submit por Enter do login. */
.es-hidden-form { display: none !important; }

/* v0.11.46 — Tabelas de Correção: nota global e sticky real do aluno */
.es-front-wrap .es-workspace.es-teacher-dashboard:has(#es-tab-correcao:checked) {
    overflow: visible;
}

.es-front-wrap .es-correction-score-aside {
    top: 16px;
}

.es-front-wrap .es-correction-score-global-grade {
    display: grid;
    justify-items: center;
    width: 100%;
    min-width: var(--es-front-evaluation-card-min-width, 104px);
    padding: 5px 7px;
    background: var(--es-front-correction-progress-bg, #fff);
    border: 1px solid var(--es-front-correction-border, var(--es-front-base-line));
    color: var(--es-front-correction-progress-text, var(--es-front-correction-muted, var(--es-front-base-muted)));
    line-height: 1.15;
}

.es-front-wrap .es-correction-score-global-grade span {
    font-size: 10px;
    font-weight: 650;
}

.es-front-wrap .es-correction-score-global-grade strong {
    margin-top: 2px;
    color: var(--es-front-correction-progress-complete-text, var(--es-front-success, #067647));
    font-size: 13px;
    font-weight: 800;
}

@media (max-width: 680px) {
    .es-front-wrap .es-correction-score-aside {
        top: auto;
    }
}

/* v0.11.47 — Notas globais e notas de testes apresentadas com duas casas decimais */

/* ========================================================================
   EasySchool 0.11.48 — Exames
   v0.11.50 — navegação persistente e correção do overflow vertical do submenu
   ======================================================================== */
.es-front-wrap .es-tab-exames-panel {
    min-width: 0;
}

.es-front-wrap .es-exams-shell {
    --es-exam-surface: var(--es-front-base-panel, #fff);
    --es-exam-soft: var(--es-front-base-soft, #f6f8fb);
    --es-exam-line: var(--es-front-base-line, #dbe2ea);
    --es-exam-text: var(--es-front-base-text, #172033);
    --es-exam-muted: var(--es-front-base-muted, #667085);
    --es-exam-primary: var(--es-front-base-primary, #1f5f8b);
    display: grid;
    gap: 18px;
}

.es-front-wrap .es-exams-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.es-front-wrap .es-exams-title-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.es-front-wrap .es-button-primary,
.es-front-wrap .es-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    text-decoration: none;
    font-weight: 800;
    border: 1px solid var(--es-exam-primary);
    border-radius: var(--es-front-button-radius, 0);
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.es-front-wrap .es-button-primary {
    background: var(--es-exam-primary);
    color: #fff;
}

.es-front-wrap .es-button-secondary {
    background: var(--es-exam-surface);
    color: var(--es-exam-primary);
}

.es-front-wrap .es-button-primary:hover,
.es-front-wrap .es-button-secondary:hover {
    transform: translateY(-1px);
    text-decoration: none;
}

/* Exames: navegação secundária integrada no menu principal. */
.es-front-wrap .es-teacher-exams-menu {
    position: relative;
    z-index: 40;
}

.es-front-wrap .es-teacher-exams-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    list-style: none;
    user-select: none;
}

.es-front-wrap .es-teacher-exams-trigger::-webkit-details-marker {
    display: none;
}

.es-front-wrap .es-teacher-exams-caret {
    font-size: .72em;
    line-height: 1;
    transition: transform .18s ease;
}

.es-front-wrap .es-teacher-exams-menu[open] .es-teacher-exams-caret {
    transform: rotate(180deg);
}

.es-front-wrap .es-teacher-exams-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 250px;
    padding: 7px;
    border: 1px solid var(--es-front-tab-border, var(--es-front-base-line));
    border-radius: var(--es-front-tab-radius, var(--es-front-button-radius, 0));
    background: var(--es-front-topbar-bg, var(--es-front-base-panel));
    box-shadow: 0 18px 42px rgba(15, 23, 42, .16);
}

.es-front-wrap .es-teacher-exams-dropdown a {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 12px;
    color: var(--es-front-base-text);
    text-decoration: none;
    font-weight: 750;
    border: 1px solid transparent;
}

.es-front-wrap .es-teacher-exams-dropdown a:hover,
.es-front-wrap .es-teacher-exams-dropdown a:focus-visible {
    color: var(--es-front-base-primary);
    background: color-mix(in srgb, var(--es-front-base-primary) 6%, var(--es-front-base-panel));
    outline: none;
}

.es-front-wrap .es-teacher-exams-dropdown a.is-active {
    color: var(--es-front-tab-active-text, #fff);
    background: var(--es-front-tab-active-bg, var(--es-front-base-primary));
    border-color: var(--es-front-tab-active-bg, var(--es-front-base-primary));
}

@media (max-width: 760px) {
    .es-front-wrap .es-teacher-exams-dropdown {
        min-width: min(280px, calc(100vw - 32px));
        max-width: calc(100vw - 32px);
    }
}

.es-front-wrap .es-exams-section {
    display: grid;
    gap: 18px;
}

.es-front-wrap .es-exams-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.es-front-wrap .es-exams-kpis article {
    display: grid;
    gap: 4px;
    padding: 20px;
    min-height: 104px;
    align-content: center;
    background: var(--es-exam-surface);
    border: 1px solid var(--es-exam-line);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.es-front-wrap .es-exams-kpis article.needs-attention {
    border-left: 4px solid #b26a00;
}

.es-front-wrap .es-exams-kpis strong {
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1;
    color: var(--es-exam-text);
}

.es-front-wrap .es-exams-kpis span {
    color: var(--es-exam-muted);
    font-weight: 700;
}

.es-front-wrap .es-exams-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.es-front-wrap .es-exams-feature-card,
.es-front-wrap .es-exams-card,
.es-front-wrap .es-exams-pipeline-card,
.es-front-wrap .es-exam-builder-sidebar,
.es-front-wrap .es-exam-bank-picker {
    background: var(--es-exam-surface);
    border: 1px solid var(--es-exam-line);
    box-shadow: 0 12px 34px rgba(15, 23, 42, .05);
}

.es-front-wrap .es-exams-feature-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px 16px;
    padding: 22px;
}

.es-front-wrap .es-exams-feature-card h3,
.es-front-wrap .es-exams-card h3,
.es-front-wrap .es-exams-pipeline-card h3,
.es-front-wrap .es-exam-builder-hero h3 {
    margin: 0;
    color: var(--es-exam-text);
    font-size: 20px;
}

.es-front-wrap .es-exams-feature-card p,
.es-front-wrap .es-exams-card p,
.es-front-wrap .es-exams-pipeline-card p {
    margin: 7px 0 0;
    color: var(--es-exam-muted);
}

.es-front-wrap .es-exams-feature-card > a {
    grid-column: 2;
    width: max-content;
    color: var(--es-exam-primary);
    font-weight: 800;
    text-decoration: none;
}

.es-front-wrap .es-exams-feature-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    background: color-mix(in srgb, var(--es-exam-primary) 9%, var(--es-exam-surface));
    border: 1px solid color-mix(in srgb, var(--es-exam-primary) 25%, var(--es-exam-line));
    color: var(--es-exam-primary);
    font-weight: 900;
}

.es-front-wrap .es-exams-pipeline-card,
.es-front-wrap .es-exams-card {
    padding: 22px;
}

.es-front-wrap .es-exams-card-head,
.es-front-wrap .es-question-special-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.es-front-wrap .es-exams-card-head > div > span,
.es-front-wrap .es-exam-builder-hero > div > span,
.es-front-wrap .es-ai-status-card > div > span {
    display: block;
    margin-bottom: 5px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    color: var(--es-exam-primary);
}

.es-front-wrap .es-exams-card-head a {
    color: var(--es-exam-primary);
    font-weight: 800;
    text-decoration: none;
}

.es-front-wrap .es-exams-pipeline {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.es-front-wrap .es-exams-pipeline span,
.es-front-wrap .es-ai-flow span {
    padding: 9px 12px;
    background: var(--es-exam-soft);
    border: 1px solid var(--es-exam-line);
    font-weight: 800;
    color: var(--es-exam-text);
}

.es-front-wrap .es-exams-pipeline b,
.es-front-wrap .es-ai-flow b {
    color: var(--es-exam-primary);
}

.es-front-wrap .es-exams-list {
    display: grid;
    margin-top: 15px;
    border-top: 1px solid var(--es-exam-line);
}

.es-front-wrap .es-exams-list-row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 13px 4px;
    border-bottom: 1px solid var(--es-exam-line);
    color: var(--es-exam-text);
    text-decoration: none;
}

.es-front-wrap .es-exams-list-row > div {
    display: grid;
    gap: 3px;
}

.es-front-wrap .es-exams-list-row small {
    color: var(--es-exam-muted);
}

.es-front-wrap .es-exams-status {
    display: inline-flex;
    align-items: center;
    width: max-content;
    min-width: 82px;
    justify-content: center;
    padding: 5px 8px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-soft);
    color: var(--es-exam-muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.es-front-wrap .es-exams-status.is-published,
.es-front-wrap .es-exams-status.is-active {
    border-color: #7bb697;
    background: #f0faf4;
    color: #20623c;
}

.es-front-wrap .es-exams-empty {
    display: grid;
    gap: 5px;
    padding: 30px 18px;
    margin-top: 14px;
    text-align: center;
    border: 1px dashed var(--es-exam-line);
    background: var(--es-exam-soft);
    color: var(--es-exam-muted);
}

.es-front-wrap .es-exams-empty strong {
    color: var(--es-exam-text);
}

.es-front-wrap .es-question-type-library {
    background: var(--es-exam-surface);
    border: 1px solid var(--es-exam-line);
}

.es-front-wrap .es-question-type-library > summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 17px 20px;
    cursor: pointer;
    list-style: none;
}

.es-front-wrap .es-question-type-library > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-question-type-library > summary > span:first-child { display: grid; gap: 2px; }
.es-front-wrap .es-question-type-library > summary small { color: var(--es-exam-muted); }
.es-front-wrap .es-question-type-library-body { padding: 4px 20px 22px; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-question-type-category { margin-top: 18px; }
.es-front-wrap .es-question-type-category h4 { margin: 0 0 9px; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--es-exam-muted); }
.es-front-wrap .es-question-type-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.es-front-wrap .es-question-type-card {
    min-height: 92px;
    padding: 13px;
    text-align: left;
    background: var(--es-exam-soft);
    border: 1px solid var(--es-exam-line);
    color: var(--es-exam-text);
    cursor: pointer;
}
.es-front-wrap .es-question-type-card:hover { border-color: var(--es-exam-primary); background: color-mix(in srgb, var(--es-exam-primary) 5%, var(--es-exam-surface)); }
.es-front-wrap .es-question-type-card strong { display: block; margin-bottom: 5px; }
.es-front-wrap .es-question-type-card span { display: block; color: var(--es-exam-muted); font-size: 12px; line-height: 1.35; }

.es-front-wrap .es-question-form,
.es-front-wrap .es-exam-create-form {
    display: grid;
    gap: 18px;
    margin-top: 20px;
}

.es-front-wrap .es-question-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px 15px;
}

.es-front-wrap .es-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.es-front-wrap .es-field > span {
    font-weight: 800;
    color: var(--es-exam-text);
    font-size: 13px;
}

.es-front-wrap .es-field-full { grid-column: 1 / -1; }
.es-front-wrap .es-field-wide { grid-column: span 1; }

.es-front-wrap .es-field input,
.es-front-wrap .es-field select,
.es-front-wrap .es-field textarea,
.es-front-wrap .es-exams-search,
.es-front-wrap .es-exam-bank-picker > input,
.es-front-wrap .es-exam-group-form input,
.es-front-wrap .es-exam-bank-picker select,
.es-front-wrap .es-option-row input,
.es-front-wrap .es-pair-row input,
.es-front-wrap .es-rubric-row input,
.es-front-wrap .es-rubric-row textarea {
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid var(--es-exam-line);
    border-radius: var(--es-front-input-radius, 0);
    background: var(--es-exam-surface);
    color: var(--es-exam-text);
    outline: none;
}

.es-front-wrap .es-field textarea,
.es-front-wrap .es-rubric-row textarea { resize: vertical; min-height: 72px; }

.es-front-wrap .es-field input:focus,
.es-front-wrap .es-field select:focus,
.es-front-wrap .es-field textarea:focus,
.es-front-wrap .es-exams-search:focus,
.es-front-wrap .es-exam-bank-picker > input:focus,
.es-front-wrap .es-option-row input:focus,
.es-front-wrap .es-pair-row input:focus,
.es-front-wrap .es-rubric-row input:focus,
.es-front-wrap .es-rubric-row textarea:focus {
    border-color: var(--es-exam-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-exam-primary) 12%, transparent);
}

.es-front-wrap .es-question-special {
    display: grid;
    gap: 14px;
    padding: 17px;
    background: var(--es-exam-soft);
    border: 1px solid var(--es-exam-line);
}

.es-front-wrap .es-question-special[hidden] { display: none !important; }
.es-front-wrap .es-question-special-head strong { display: block; color: var(--es-exam-text); }
.es-front-wrap .es-question-special-head span { display: block; margin-top: 2px; color: var(--es-exam-muted); font-size: 12px; }

.es-front-wrap .es-mini-button,
.es-front-wrap .es-icon-action,
.es-front-wrap .es-option-remove,
.es-front-wrap .es-pair-row button,
.es-front-wrap .es-rubric-row button {
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-surface);
    color: var(--es-exam-primary);
    font-weight: 800;
    cursor: pointer;
}

.es-front-wrap .es-icon-action,
.es-front-wrap .es-option-remove,
.es-front-wrap .es-pair-row button,
.es-front-wrap .es-rubric-row button {
    min-width: 34px;
    color: #8c2f2f;
}

.es-front-wrap .es-option-editor { display: grid; gap: 8px; }
.es-front-wrap .es-option-row { display: grid; grid-template-columns: 58px minmax(180px, 1fr) 82px 78px 38px; gap: 8px; align-items: center; }
.es-front-wrap .es-option-correct { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; }
.es-front-wrap .es-option-correct input { width: 16px; min-height: 16px; }

.es-front-wrap .es-pair-row { display: grid; grid-template-columns: 1fr auto 1fr 38px; gap: 8px; align-items: center; margin-top: 8px; }
.es-front-wrap .es-checkbox-field { display: flex; align-items: center; gap: 9px; min-height: 42px; font-weight: 700; color: var(--es-exam-text); }
.es-front-wrap .es-checkbox-field input { width: 17px; height: 17px; }
.es-front-wrap .es-question-editor-note { margin: 0; padding: 10px 12px; border-left: 3px solid var(--es-exam-primary); background: var(--es-exam-surface); }

.es-front-wrap .es-ai-rubric-editor { border-left: 4px solid var(--es-exam-primary); }
.es-front-wrap .es-ai-enable-row { padding: 10px 12px; background: var(--es-exam-surface); border: 1px solid var(--es-exam-line); }
.es-front-wrap .es-rubric-total { display: flex; align-items: center; gap: 7px; padding: 10px 12px; width: max-content; background: var(--es-exam-surface); border: 1px solid var(--es-exam-line); }
.es-front-wrap .es-rubric-total strong { font-size: 18px; }
.es-front-wrap .es-rubric-total strong.is-ok { color: #277748; }
.es-front-wrap .es-rubric-list { display: grid; gap: 10px; }
.es-front-wrap .es-rubric-row { display: grid; gap: 9px; padding: 13px; background: var(--es-exam-surface); border: 1px solid var(--es-exam-line); }
.es-front-wrap .es-rubric-row-head { display: grid; grid-template-columns: 1fr 110px 38px; gap: 8px; }
.es-front-wrap .es-rubric-row-extra { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }

.es-front-wrap .es-rubric-levels { display: grid; gap: 8px; padding: 11px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-rubric-levels-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.es-front-wrap .es-rubric-levels-head > div { display: grid; gap: 2px; }
.es-front-wrap .es-rubric-levels-head strong { color: var(--es-exam-text); font-size: 12px; }
.es-front-wrap .es-rubric-levels-head span { color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-rubric-level-list { display: grid; gap: 9px; }
.es-front-wrap .es-compact-field { display: grid; gap: 5px; min-width: 0; align-content: start; }
.es-front-wrap .es-compact-field > span { color: var(--es-exam-text); font-size: 10px; line-height: 1.25; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.es-front-wrap .es-rubric-level-row { display: grid; grid-template-columns: minmax(150px,.55fr) 100px minmax(280px,1.45fr) 38px; gap: 10px; align-items: end; padding: 10px; border: 1px solid color-mix(in srgb, var(--es-exam-line) 82%, transparent); background: var(--es-exam-surface); }
.es-front-wrap .es-rubric-level-row input,
.es-front-wrap .es-rubric-level-row textarea,
.es-front-wrap .es-penalty-row input,
.es-front-wrap .es-penalty-row select,
.es-front-wrap .es-penalty-row textarea { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--es-exam-line); border-radius: var(--es-front-input-radius, 0); background: var(--es-exam-surface); color: var(--es-exam-text); line-height: 1.35; outline: none; }
.es-front-wrap .es-rubric-level-row select,
.es-front-wrap .es-penalty-row select { padding-right: 34px; white-space: nowrap; text-overflow: ellipsis; }
.es-front-wrap .es-rubric-level-row textarea,
.es-front-wrap .es-penalty-row textarea { min-height: 78px; resize: vertical; overflow-y: auto; }
.es-front-wrap .es-rubric-level-row button,
.es-front-wrap .es-remove-structure { width: 38px; min-width: 38px; height: 44px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); color: #8c2f2f; font-weight: 900; cursor: pointer; align-self: end; }
.es-front-wrap .es-penalty-editor { display: grid; gap: 11px; margin-top: 2px; padding-top: 14px; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-penalty-list { display: grid; gap: 12px; }
.es-front-wrap .es-penalty-row { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-penalty-row-main { display: grid; grid-template-columns: minmax(160px,.7fr) minmax(260px,1.25fr) minmax(210px,.9fr) 38px; gap: 12px; align-items: end; }
.es-front-wrap .es-penalty-description { width: 100%; }
.es-front-wrap .es-penalty-deduction { display: grid; grid-template-columns: 160px 160px minmax(240px,1fr); gap: 12px; align-items: end; padding-top: 12px; border-top: 1px solid color-mix(in srgb, var(--es-exam-line) 78%, transparent); }
.es-front-wrap .es-penalty-deduction p { margin: 0 0 10px; color: var(--es-exam-muted); font-size: 11px; line-height: 1.4; }
.es-front-wrap .es-penalty-row input.is-readonly { background: var(--es-exam-soft); color: var(--es-exam-muted); }
.es-front-wrap .es-penalty-row input:focus,
.es-front-wrap .es-penalty-row select:focus,
.es-front-wrap .es-penalty-row textarea:focus,
.es-front-wrap .es-rubric-level-row input:focus,
.es-front-wrap .es-rubric-level-row textarea:focus { border-color: var(--es-exam-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-exam-primary) 10%, transparent); }

.es-front-wrap .es-question-form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 4px;
}
.es-front-wrap .es-question-form-actions > span { color: var(--es-exam-muted); font-size: 12px; }

.es-front-wrap .es-exams-main-head { align-items: end; }
.es-front-wrap .es-exams-search { width: min(320px, 100%); }
.es-front-wrap .es-question-bank-list { display: grid; margin-top: 14px; }
.es-front-wrap .es-question-bank-row {
    display: grid;
    grid-template-columns: 34px 150px minmax(0, 1fr) 120px minmax(250px, auto);
    gap: 14px;
    align-items: center;
    padding: 14px 3px;
    border-top: 1px solid var(--es-exam-line);
}
.es-front-wrap .es-question-bank-type { display: grid; gap: 3px; }
.es-front-wrap .es-question-bank-type span { color: var(--es-exam-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.es-front-wrap .es-question-bank-type strong { color: var(--es-exam-primary); }
.es-front-wrap .es-question-bank-main { min-width: 0; }
.es-front-wrap .es-question-bank-main > strong { color: var(--es-exam-text); }
.es-front-wrap .es-question-bank-main p { margin: 3px 0; white-space: normal; }
.es-front-wrap .es-question-bank-main small { color: var(--es-exam-muted); }
.es-front-wrap .es-question-bank-meta { display: grid; gap: 3px; justify-items: end; }
.es-front-wrap .es-question-bank-meta em { font-style: normal; font-size: 11px; font-weight: 800; color: var(--es-exam-primary); }
.es-front-wrap .es-question-bank-row > form { margin: 0; }
.es-front-wrap .es-question-bank-card { overflow: visible; }
.es-front-wrap .es-question-bank-head { align-items: flex-start; }
.es-front-wrap .es-question-bank-head p { margin: 5px 0 0; color: var(--es-exam-muted); }
.es-front-wrap .es-question-bank-filters { display: grid; grid-template-columns: minmax(240px,1.5fr) minmax(180px,.8fr) minmax(140px,.55fr) minmax(140px,.55fr); gap: 10px; margin: 14px 0 4px; padding: 12px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-question-bank-filters .es-exams-search { width: 100%; }
.es-front-wrap .es-question-bank-entry { border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-question-bank-entry > .es-question-bank-row { border-top: 0; }
.es-front-wrap .es-question-bank-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.es-front-wrap .es-question-bank-actions form { margin: 0; }
.es-front-wrap .es-question-bank-actions .es-mini-button { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; white-space: nowrap; }
.es-front-wrap .es-question-bank-actions .es-icon-action { min-height: 34px; }
.es-front-wrap .es-question-preview { margin: 0 3px 14px; padding: 16px; border: 1px solid var(--es-exam-line); border-left: 3px solid var(--es-exam-primary); background: var(--es-exam-soft); }
.es-front-wrap .es-question-preview[hidden] { display: none !important; }
.es-front-wrap .es-question-preview-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding-bottom: 10px; border-bottom: 1px solid var(--es-exam-line); }
.es-front-wrap .es-question-preview-head span { color: var(--es-exam-muted); font-size: 10px; letter-spacing: .06em; font-weight: 800; }
.es-front-wrap .es-question-preview-head h4 { margin: 2px 0 0; font-size: 17px; }
.es-front-wrap .es-question-preview-stem { padding: 14px 0; line-height: 1.55; }
.es-front-wrap .es-question-preview-options { display: grid; gap: 6px; }
.es-front-wrap .es-question-preview-options > div { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: center; padding: 8px 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-question-preview-options > div.is-correct { box-shadow: inset 3px 0 #277748; }
.es-front-wrap .es-question-preview-options em { font-size: 10px; font-style: normal; font-weight: 800; color: #277748; }
.es-front-wrap .es-question-preview-pairs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.es-front-wrap .es-question-preview-pairs span { padding: 7px 9px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-question-preview-answer, .es-front-wrap .es-question-preview-rubrics, .es-front-wrap .es-question-preview-penalties { display: grid; gap: 7px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-question-preview-rubrics > div { padding: 9px 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-question-preview-rubrics p { margin: 4px 0; }
.es-front-wrap .es-question-preview-rubrics small, .es-front-wrap .es-question-preview-penalties span { color: var(--es-exam-muted); }


.es-front-wrap .es-exam-builder-layout {
    display: grid;
    grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.es-front-wrap .es-exam-builder-sidebar { padding: 17px; position: sticky; top: 10px; }
.es-front-wrap .es-exam-new-link { display: block; margin-top: 12px; padding: 10px; border: 1px solid var(--es-exam-line); color: var(--es-exam-primary); text-decoration: none; font-weight: 800; }
.es-front-wrap .es-exam-new-link.is-active { background: color-mix(in srgb, var(--es-exam-primary) 8%, var(--es-exam-surface)); border-color: var(--es-exam-primary); }
.es-front-wrap .es-exam-sidebar-list { display: grid; margin-top: 10px; }
.es-front-wrap .es-exam-sidebar-list a { display: grid; gap: 3px; padding: 11px 9px; border-top: 1px solid var(--es-exam-line); text-decoration: none; color: var(--es-exam-text); }
.es-front-wrap .es-exam-sidebar-list a.is-active { background: var(--es-exam-soft); box-shadow: inset 3px 0 var(--es-exam-primary); }
.es-front-wrap .es-exam-sidebar-list span { color: var(--es-exam-muted); font-size: 11px; }
.es-front-wrap .es-exam-builder-main { min-width: 0; display: grid; gap: 14px; }

.es-front-wrap .es-exam-options-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
}
.es-front-wrap .es-exam-options-grid > label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-soft);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    cursor: pointer;
    user-select: none;
}
.es-front-wrap .es-exam-options-grid > label:has(input[type="checkbox"]:checked) {
    border-color: color-mix(in srgb, var(--es-exam-primary) 55%, var(--es-exam-line));
    background: color-mix(in srgb, var(--es-exam-primary) 7%, var(--es-exam-surface));
}
.es-front-wrap .es-exam-options-grid input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    flex: 0 0 18px;
}
.es-front-wrap .es-exam-options-grid input[type="number"] {
    width: 68px;
    min-width: 68px;
    min-height: 32px;
    height: 32px;
    padding: 5px 8px;
    text-align: center;
}
.es-front-wrap .es-exam-options-grid > label:last-child {
    cursor: default;
}

.es-front-wrap .es-exam-builder-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--es-exam-primary) 8%, var(--es-exam-surface)), var(--es-exam-surface));
    border: 1px solid var(--es-exam-line);
}
.es-front-wrap .es-exam-builder-hero p { margin: 5px 0 0; color: var(--es-exam-muted); }
.es-front-wrap .es-exam-builder-numbers { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.es-front-wrap .es-exam-builder-numbers span { display: grid; justify-items: center; min-width: 82px; padding: 8px 11px; background: var(--es-exam-surface); border: 1px solid var(--es-exam-line); font-size: 11px; color: var(--es-exam-muted); }
.es-front-wrap .es-exam-builder-numbers strong { font-size: 18px; color: var(--es-exam-text); }
.es-front-wrap .es-exam-builder-columns { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); gap: 14px; align-items: start; }
.es-front-wrap .es-exam-bank-picker { padding: 17px; }
.es-front-wrap .es-exam-bank-picker > input { margin: 12px 0; }
.es-front-wrap .es-exam-group-form { display: grid; grid-template-columns: minmax(170px, 1fr) 80px auto minmax(160px, 1fr) auto; gap: 7px; align-items: center; margin: 14px 0; }
.es-front-wrap .es-exam-group-form label { display: flex; align-items: center; gap: 5px; font-size: 11px; }
.es-front-wrap .es-exam-groups-line { display: flex; gap: 7px; flex-wrap: wrap; margin: 10px 0 14px; }
.es-front-wrap .es-exam-groups-line span { padding: 6px 9px; background: var(--es-exam-soft); border: 1px solid var(--es-exam-line); font-size: 11px; }
.es-front-wrap .es-exam-item-list { display: grid; }
.es-front-wrap .es-exam-item { display: grid; grid-template-columns: 36px minmax(0,1fr) 70px minmax(168px, auto); gap: 10px; align-items: center; padding: 12px 0; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-exam-item-number { display: grid; place-items: center; width: 32px; height: 32px; background: var(--es-exam-soft); border: 1px solid var(--es-exam-line); font-weight: 900; }
.es-front-wrap .es-exam-item > div { min-width: 0; }
.es-front-wrap .es-exam-item small { display: block; color: var(--es-exam-primary); font-weight: 800; }
.es-front-wrap .es-exam-item strong { display: block; margin-top: 2px; }
.es-front-wrap .es-exam-item p { margin: 3px 0 0; font-size: 12px; }
.es-front-wrap .es-exam-item-points { text-align: right; font-weight: 900; }
.es-front-wrap .es-exam-item-entry { border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-exam-item-entry > .es-exam-item { border-top: 0; }
.es-front-wrap .es-exam-item-actions { display: flex; justify-content: flex-end; gap: 5px; }
.es-front-wrap .es-exam-item-actions form { margin: 0; }
.es-front-wrap .es-exam-item-actions .es-icon-action:disabled { opacity: .28; cursor: default; }
.es-front-wrap .es-exam-item-group-form { display: flex; justify-content: flex-end; align-items: end; gap: 7px; padding: 0 0 10px 46px; }
.es-front-wrap .es-exam-item-group-form label { display: grid; gap: 3px; min-width: 220px; }
.es-front-wrap .es-exam-item-group-form label > span { color: var(--es-exam-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.es-front-wrap .es-exam-item-group-form select { min-height: 34px; }
.es-front-wrap .es-exam-snapshot-preview { margin-left: 46px; margin-right: 0; }
.es-front-wrap .es-exam-builder-numbers span.is-warning { border-color: #b57920; box-shadow: inset 0 -3px #b57920; }
.es-front-wrap .es-exam-settings-card { border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-exam-settings-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; cursor: pointer; list-style: none; }
.es-front-wrap .es-exam-settings-card > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-exam-settings-card > summary > span:first-child { display: grid; gap: 2px; }
.es-front-wrap .es-exam-settings-card > summary small { color: var(--es-exam-muted); font-weight: 400; }
.es-front-wrap .es-exam-settings-card > summary > span:last-child { color: var(--es-exam-primary); font-weight: 800; }
.es-front-wrap .es-exam-settings-card[open] > summary { border-bottom: 1px solid var(--es-exam-line); }
.es-front-wrap .es-exam-edit-form { padding: 16px; }

.es-front-wrap .es-exam-bank-picker-list { display: grid; max-height: 850px; overflow: auto; }
.es-front-wrap .es-exam-bank-picker-list > article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 11px 0; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-exam-bank-picker-list > article > div { display: grid; gap: 2px; min-width: 0; }
.es-front-wrap .es-exam-bank-picker-list small { color: var(--es-exam-muted); }
.es-front-wrap .es-exam-bank-picker-list form { display: grid; gap: 5px; }
.es-front-wrap .es-exam-bank-picker-list select { min-height: 32px; padding: 4px 6px; font-size: 11px; }

.es-front-wrap .es-ai-status-card {
    display: grid;
    grid-template-columns: 64px minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 22px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-surface);
    box-shadow: 0 12px 34px rgba(15,23,42,.05);
}
.es-front-wrap .es-ai-status-card.is-ready { border-left: 4px solid #277748; }
.es-front-wrap .es-ai-status-card.is-off { border-left: 4px solid #a36519; }
.es-front-wrap .es-ai-orb { display: grid; place-items: center; width: 60px; height: 60px; border: 1px solid color-mix(in srgb, var(--es-exam-primary) 30%, var(--es-exam-line)); background: color-mix(in srgb, var(--es-exam-primary) 8%, var(--es-exam-surface)); color: var(--es-exam-primary); font-size: 20px; font-weight: 900; }
.es-front-wrap .es-ai-status-card h3 { margin: 0; }
.es-front-wrap .es-ai-status-card p { margin: 5px 0 0; color: var(--es-exam-muted); }
.es-front-wrap .es-ai-status-card dl { display: flex; gap: 8px; margin: 0; }
.es-front-wrap .es-ai-status-card dl > div { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-status-card dt { font-size: 10px; color: var(--es-exam-muted); text-transform: uppercase; }
.es-front-wrap .es-ai-status-card dd { margin: 0; font-weight: 900; }
.es-front-wrap .es-exams-ai-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.es-front-wrap .es-ai-example { margin-top: 16px; padding: 14px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-ai-example > div:first-child, .es-front-wrap .es-ai-score-line { display: flex; justify-content: space-between; gap: 10px; }
.es-front-wrap .es-ai-score-line { padding-top: 10px; margin-top: 10px; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-ai-checklist { display: grid; gap: 8px; margin: 15px 0 0; padding: 0; list-style: none; }
.es-front-wrap .es-ai-checklist li::before { content: '✓'; margin-right: 8px; color: #277748; font-weight: 900; }
.es-front-wrap .es-ai-flow { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 16px; }
.es-front-wrap .es-ai-capability-grid { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.es-front-wrap .es-ai-capability-grid span { padding: 7px 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); font-weight: 700; font-size: 12px; }

@media (max-width: 1180px) {
    .es-front-wrap .es-exams-kpis { grid-template-columns: repeat(3, 1fr); }
    .es-front-wrap .es-question-type-grid { grid-template-columns: repeat(3, 1fr); }
    .es-front-wrap .es-exam-builder-columns { grid-template-columns: 1fr; }
    .es-front-wrap .es-exams-ai-grid { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-lab-grid { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-lab-connection { position: static; }
    .es-front-wrap .es-ai-grade-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .es-front-wrap .es-ai-status-card { grid-template-columns: 60px 1fr; }
    .es-front-wrap .es-ai-status-card dl { grid-column: 1 / -1; }
    .es-front-wrap .es-ai-generator-settings { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .es-front-wrap .es-ai-generator-difficulty { grid-template-columns: 1fr repeat(3,130px); }
    .es-front-wrap .es-ai-generator-type-groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
    .es-front-wrap .es-exams-title { align-items: flex-start; flex-direction: column; }
    .es-front-wrap .es-exams-kpis { grid-template-columns: repeat(2, 1fr); }
    .es-front-wrap .es-exams-overview-grid { grid-template-columns: 1fr; }
    .es-front-wrap .es-question-type-grid { grid-template-columns: repeat(2, 1fr); }
    .es-front-wrap .es-question-form-grid { grid-template-columns: 1fr; }
    .es-front-wrap .es-field-full, .es-front-wrap .es-field-wide { grid-column: auto; }
    .es-front-wrap .es-rubric-row-extra { grid-template-columns: 1fr; }
    .es-front-wrap .es-rubric-level-row { grid-template-columns: minmax(0,1fr) 100px 38px; }
    .es-front-wrap .es-rubric-level-row .es-level-description { grid-column: 1 / -1; }
    .es-front-wrap .es-rubric-level-row > button { grid-column: 3; grid-row: 1; }
    .es-front-wrap .es-penalty-row-main { grid-template-columns: 1fr 1fr 38px; }
    .es-front-wrap .es-penalty-name { grid-column: 1 / -1; grid-row: 2; }
    .es-front-wrap .es-penalty-row-main > button { grid-column: 3; grid-row: 1; }
    .es-front-wrap .es-penalty-deduction { grid-template-columns: 1fr 1fr; }
    .es-front-wrap .es-penalty-deduction p { grid-column: 1 / -1; }
    .es-front-wrap .es-question-bank-row { grid-template-columns: 34px 120px minmax(0,1fr) 100px; }
    .es-front-wrap .es-question-bank-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .es-front-wrap .es-question-bank-filters { grid-template-columns: 1fr 1fr; }
    .es-front-wrap .es-exam-builder-layout { grid-template-columns: 1fr; }
    .es-front-wrap .es-exam-builder-sidebar { position: static; }
    .es-front-wrap .es-exam-group-form { grid-template-columns: 1fr 90px auto; }
    .es-front-wrap .es-exam-group-form input[name="instructions"] { grid-column: 1 / -1; }
    .es-front-wrap .es-exam-builder-hero { align-items: flex-start; flex-direction: column; }
    .es-front-wrap .es-exam-builder-numbers { justify-content: flex-start; }
    .es-front-wrap .es-ai-generator-grid, .es-front-wrap .es-ai-generator-options { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-generator-difficulty { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-generator-difficulty label { grid-template-columns: 1fr 90px 20px; }
    .es-front-wrap .es-ai-generated-head, .es-front-wrap .es-ai-generator-intro { flex-direction: column; }
    .es-front-wrap .es-ai-generated-usage { justify-content: flex-start; }
}

@media (max-width: 640px) {
    .es-front-wrap .es-exams-kpis { grid-template-columns: 1fr 1fr; }
    .es-front-wrap .es-question-type-grid { grid-template-columns: 1fr; }
    .es-front-wrap .es-exams-list-row { grid-template-columns: 1fr auto; }
    .es-front-wrap .es-exams-list-row .es-exams-status { grid-column: 1; }
    .es-front-wrap .es-exams-list-row > div { grid-column: 1 / -1; }
    .es-front-wrap .es-option-row { grid-template-columns: 48px 1fr 38px; }
    .es-front-wrap .es-option-correct, .es-front-wrap .es-option-weight { grid-row: 2; }
    .es-front-wrap .es-option-correct { grid-column: 1 / 3; }
    .es-front-wrap .es-option-weight { grid-column: 3; }
    .es-front-wrap .es-pair-row { grid-template-columns: 1fr 30px; }
    .es-front-wrap .es-pair-row span { display: none; }
    .es-front-wrap .es-pair-row input:nth-of-type(2) { grid-column: 1; }
    .es-front-wrap .es-rubric-row-head { grid-template-columns: 1fr 90px 38px; }
    .es-front-wrap .es-question-form-actions { align-items: stretch; flex-direction: column; }
    .es-front-wrap .es-question-bank-row { grid-template-columns: 34px minmax(0,1fr) auto; }
    .es-front-wrap .es-question-bank-select { grid-column: 1; grid-row: 1; }
    .es-front-wrap .es-question-bank-type, .es-front-wrap .es-question-bank-main { grid-column: 2 / -1; }
    .es-front-wrap .es-question-bank-meta { grid-column: 2; }
    .es-front-wrap .es-question-bank-actions { grid-column: 2 / -1; }
    .es-front-wrap .es-question-bank-filters { grid-template-columns: 1fr; }
    .es-front-wrap .es-question-bank-meta { justify-items: start; }
    .es-front-wrap .es-ai-status-card { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-orb { width: 48px; height: 48px; }
    .es-front-wrap .es-ai-status-card dl { display: grid; grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-lab { padding: 14px; }
    .es-front-wrap .es-ai-lab-metrics, .es-front-wrap .es-ai-grade-summary { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-lab-rubric-main { grid-template-columns: 1fr 80px 34px; }
    .es-front-wrap .es-rubric-level-row { grid-template-columns: 1fr 86px 38px; }
    .es-front-wrap .es-rubric-level-row .es-level-description { grid-column: 1 / -1; }
    .es-front-wrap .es-penalty-row-main, .es-front-wrap .es-penalty-deduction { grid-template-columns: 1fr; }
    .es-front-wrap .es-penalty-name, .es-front-wrap .es-penalty-row-main > button, .es-front-wrap .es-penalty-deduction p { grid-column: auto; grid-row: auto; }
    .es-front-wrap .es-penalty-row-main > button { justify-self: end; }
    .es-front-wrap .es-ai-grade-criterion-head { flex-direction: column; }
    .es-front-wrap .es-exam-item { grid-template-columns: 32px 1fr; }
    .es-front-wrap .es-exam-item-points { grid-column: 2; text-align: left; }
    .es-front-wrap .es-exam-item-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .es-front-wrap .es-exam-item-group-form { padding-left: 0; justify-content: flex-start; flex-wrap: wrap; }
    .es-front-wrap .es-exam-snapshot-preview { margin-left: 0; }
    .es-front-wrap .es-ai-generator-settings, .es-front-wrap .es-ai-generator-type-groups, .es-front-wrap .es-ai-generated-edit-grid { grid-template-columns: 1fr; }
    .es-front-wrap .es-ai-generator-submit, .es-front-wrap .es-ai-generated-actions { align-items: stretch; flex-direction: column; }
    .es-front-wrap .es-ai-generator-submit button, .es-front-wrap .es-ai-generated-actions button { width: 100%; }
}

/* Exames 0.11.58 — adição fluida de questões ao rascunho */
.es-front-wrap .es-exam-builder-anchor {
    position: relative;
    top: -10px;
    height: 0;
    scroll-margin-top: 18px;
}

.es-front-wrap .es-exam-builder-notice {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--es-exam-line);
    border-left-width: 4px;
    background: var(--es-exam-surface);
    font-size: 13px;
    line-height: 1.4;
}

.es-front-wrap .es-exam-builder-notice.is-success {
    border-left-color: #2c8b57;
    background: #f5fbf7;
}

.es-front-wrap .es-exam-builder-notice.is-warning {
    border-left-color: #b57920;
    background: #fffaf0;
}

.es-front-wrap .es-exam-builder-notice.is-error {
    border-left-color: #a42020;
    background: #fff7f7;
}

.es-front-wrap .es-exam-bank-picker .es-exams-card-head p {
    margin: 4px 0 0;
    color: var(--es-exam-muted);
    font-size: 11px;
    line-height: 1.35;
}

.es-front-wrap .es-exam-bank-empty {
    display: grid;
    gap: 5px;
    margin-top: 12px;
    padding: 18px 12px;
    border: 1px dashed var(--es-exam-line);
    background: var(--es-exam-surface-soft, #f7f8fa);
    text-align: center;
}

.es-front-wrap .es-exam-bank-empty span {
    color: var(--es-exam-muted);
    font-size: 12px;
    line-height: 1.45;
}


/* EasySchool 0.11.60 — construtor sem refresh, pré-visualizações do Banco e do aluno */
.es-front-wrap [data-es-builder-live] { position: relative; }
.es-front-wrap [data-es-builder-live].is-loading::after {
    content: 'A atualizar…';
    position: absolute;
    z-index: 20;
    top: 10px;
    right: 10px;
    padding: 7px 10px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-surface);
    box-shadow: 0 6px 20px rgba(15,23,42,.10);
    font-size: 11px;
    font-weight: 800;
}
.es-front-wrap [data-es-builder-live].is-loading { cursor: progress; }
.es-front-wrap [data-es-builder-live].is-loading .es-exam-builder-columns { opacity: .72; pointer-events: none; }

.es-front-wrap .es-exam-builder-hero-right { display: grid; justify-items: end; gap: 10px; }
.es-front-wrap .es-exam-student-preview-button { min-width: 205px; }
.es-front-wrap .es-exam-student-preview-button:disabled { opacity: .45; cursor: not-allowed; }

.es-front-wrap .es-exam-bank-actions { display: grid; grid-template-columns: auto minmax(92px,auto); gap: 6px; align-items: end; }
.es-front-wrap .es-exam-bank-actions > .es-mini-button { align-self: end; }
.es-front-wrap .es-exam-bank-actions form { min-width: 92px; }
.es-front-wrap .es-builder-bank-preview { grid-column: 1 / -1; margin: 4px 0 2px; }
.es-front-wrap .es-exam-bank-picker-list > article:has(.es-builder-bank-preview:not([hidden])) { background: color-mix(in srgb, var(--es-exam-primary) 3%, transparent); }

html.es-student-preview-open,
body.es-student-preview-open { overflow: hidden !important; }
/* A pré-visualização é portada para <body> ao abrir. Regras não ficam dependentes
   de transform/overflow de contentores do template ou do EasySchool. */
.es-student-preview-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f7f8fa;
    overflow: hidden !important;
}
.es-student-preview-modal[hidden] { display: none !important; }
.es-student-preview-dialog {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    display: grid;
    grid-template-rows: auto auto auto minmax(0,1fr) auto;
    overflow: hidden;
    background: #fff;
    border: 0;
    box-shadow: none;
}
.es-student-preview-topbar {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto 42px;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid #dfe4ea;
    background: #fff;
}
.es-student-preview-topbar > div:first-child { display: grid; gap: 2px; }
.es-student-preview-topbar small { font-size: 10px; letter-spacing: .12em; color: #687386; }
.es-student-preview-topbar strong { font-size: 20px; color: #111827; }
.es-student-preview-topbar span { color: #657083; font-size: 12px; }
.es-student-preview-timer { min-width: 102px; padding: 8px 12px; border: 1px solid #cfd6df; text-align: center; }
.es-student-preview-timer small { display: block; }
.es-student-preview-timer strong { font-size: 20px; font-variant-numeric: tabular-nums; }
.es-student-preview-close { width: 40px; height: 40px; border: 1px solid #cfd6df; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.es-student-preview-instructions { padding: 14px 22px; border-bottom: 1px solid #e2e7ed; background: #f8fafc; }
.es-student-preview-instructions p { margin: 5px 0 0; color: #4b5563; }
.es-student-preview-progress { padding: 11px 22px 13px; border-bottom: 1px solid #e2e7ed; }
.es-student-preview-progress > div:first-child { display: flex; justify-content: space-between; gap: 14px; margin-bottom: 7px; font-size: 11px; color: #687386; }
.es-student-preview-progress > div:first-child span:first-child { font-weight: 800; color: #111827; }
.es-student-preview-progress-bar { height: 5px; background: #e8ecf1; overflow: hidden; }
.es-student-preview-progress-bar i { display: block; height: 100%; background: var(--es-exam-primary); transition: width .18s ease; }
.es-student-preview-body { overflow: auto; padding: 28px clamp(20px,5vw,72px); background: #f7f8fa; }
.es-student-preview-question { max-width: 820px; margin: 0 auto; padding: 26px; border: 1px solid #d8dee6; background: #fff; box-shadow: 0 10px 28px rgba(15,23,42,.05); }
.es-student-question-meta { display: flex; justify-content: space-between; gap: 14px; color: #697386; font-size: 11px; font-weight: 700; }
.es-student-preview-question h2 { margin: 10px 0 12px; font-size: 24px; }
.es-student-question-stem { font-size: 16px; line-height: 1.65; color: #111827; }
.es-student-question-howto { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px; align-items: start; margin-top: 16px; padding: 10px 12px; border-left: 3px solid var(--es-exam-primary); background: #f6f8fb; color: #465264; font-size: 13px; line-height: 1.45; }
.es-student-question-howto strong { color: #111827; white-space: nowrap; }
.es-student-question-howto span { min-width: 0; }
.es-student-answer-area { margin-top: 24px; }
.es-student-choice-list { display: grid; gap: 9px; }
.es-student-choice-list label { display: grid; grid-template-columns: 20px 28px minmax(0,1fr); gap: 10px; align-items: center; min-height: 48px; padding: 10px 13px; border: 1px solid #d8dee6; cursor: pointer; }
.es-student-choice-list label:has(input:checked) { border-color: var(--es-exam-primary); background: color-mix(in srgb, var(--es-exam-primary) 5%, #fff); }
.es-student-choice-list input,
.es-student-review-flag input,
.es-student-matrix-list input { width: 18px !important; height: 18px !important; min-height: 18px !important; margin: 0; }
.es-student-text-answer,
.es-student-inline-inputs input,
.es-student-select-answer select,
.es-student-matching-list select { width: 100%; min-height: 46px; padding: 9px 11px; border: 1px solid #cfd6df; background: #fff; }
.es-student-inline-inputs { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 10px; }
.es-student-select-answer { display: grid; gap: 6px; }
.es-student-matrix-list { display: grid; gap: 8px; }
.es-student-matrix-list > div { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 14px; align-items: center; padding: 11px 12px; border: 1px solid #d8dee6; }
.es-student-matrix-list label { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.es-student-matching-list { display: grid; gap: 9px; }
.es-student-matching-list label { display: grid; grid-template-columns: minmax(160px,.8fr) minmax(220px,1fr); gap: 12px; align-items: center; }
.es-student-order-list { display: grid; gap: 7px; }
.es-student-order-list > div { display: grid; grid-template-columns: 24px 1fr; gap: 8px; padding: 10px 12px; border: 1px solid #d8dee6; background: #fff; }
.es-student-resource-placeholder { display: grid; place-items: center; gap: 7px; min-height: 260px; padding: 25px; border: 1px dashed #aeb8c5; background: #f8fafc; text-align: center; color: #647084; }
.es-student-resource-placeholder.is-drawing { min-height: 330px; background-image: linear-gradient(#e8edf2 1px, transparent 1px), linear-gradient(90deg,#e8edf2 1px,transparent 1px); background-size: 22px 22px; }
.es-student-upload { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px dashed #aeb8c5; }
.es-student-record-button { min-height: 46px; padding: 9px 16px; border: 1px solid #b42318; background: #fff; color: #b42318; font-weight: 800; }
.es-student-long-answer,
.es-student-code-answer { width: 100%; min-height: 180px; padding: 12px; border: 1px solid #cfd6df; resize: vertical; }
.es-student-code-answer { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.es-student-review-flag { display: flex; align-items: center; gap: 8px; margin-top: 20px; color: #5d6877; font-size: 12px; }
.es-student-preview-footer { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 14px 22px; border-top: 1px solid #dfe4ea; background: #fff; }
.es-student-preview-footer > span { text-align: center; color: #697386; font-size: 11px; }

@media (max-width: 760px) {
    .es-front-wrap .es-exam-builder-hero { align-items: flex-start; flex-direction: column; }
    .es-front-wrap .es-exam-builder-hero-right { width: 100%; justify-items: stretch; }
    .es-front-wrap .es-exam-builder-numbers { justify-content: flex-start; }
    .es-front-wrap .es-exam-student-preview-button { width: 100%; }
    .es-front-wrap .es-exam-bank-actions { grid-template-columns: 1fr; }
    .es-student-preview-modal { padding: 0; }
    .es-student-preview-dialog { min-height: 100vh; }
    .es-student-preview-topbar { grid-template-columns: 1fr auto; padding: 14px; }
    .es-student-preview-timer { grid-row: 2; grid-column: 1 / -1; justify-self: start; }
    .es-student-preview-close { grid-column: 2; grid-row: 1; }
    .es-student-preview-body { padding: 14px; }
    .es-student-preview-question { padding: 18px; }
    .es-student-question-howto { grid-template-columns: 1fr; gap: 3px; }
    .es-student-matrix-list > div,
    .es-student-matching-list label { grid-template-columns: 1fr; }
    .es-student-preview-footer { grid-template-columns: 1fr 1fr; }
    .es-student-preview-footer > span { grid-column: 1 / -1; grid-row: 1; }
}


/* EasySchool 0.11.62 — preview do exame em fullscreen real */
.es-student-preview-topbar {
    position: relative;
    z-index: 2;
}
.es-student-preview-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    font-size: 28px;
    font-weight: 400;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.es-student-preview-close:hover,
.es-student-preview-close:focus-visible {
    background: #111827;
    border-color: #111827;
    color: #fff;
    outline: none;
}
.es-student-preview-body {
    min-height: 0;
    overscroll-behavior: contain;
}
.es-student-preview-question {
    width: min(900px, 100%);
}
@supports (height: 100dvh) {
    .es-student-preview-modal { height: 100dvh !important; }
}

/* EasySchool 0.11.61 — ícone de olho nas pré-visualizações de questões */
.es-front-wrap .es-preview-eye {
    width: 36px;
    min-width: 36px;
    height: 36px;
    min-height: 36px;
    padding: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--es-exam-primary);
}
.es-front-wrap .es-preview-eye:hover,
.es-front-wrap .es-preview-eye:focus-visible {
    background: var(--es-exam-soft);
    border-color: var(--es-exam-primary);
}
.es-front-wrap .es-preview-eye .es-eye-svg {
    width: 19px;
    height: 19px;
    display: block;
}

/* EasySchool 0.11.63 — preview baralhado + navegação própria do fullscreen */
.es-front-wrap .es-exam-options-grid > label:has(.es-exam-option-help) {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 9px;
    row-gap: 2px;
    align-items: start;
    max-width: 300px;
    padding: 9px 12px;
}
.es-front-wrap .es-exam-options-grid > label:has(.es-exam-option-help) > input[type="checkbox"] {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin-top: 1px;
}
.es-front-wrap .es-exam-options-grid > label:has(.es-exam-option-help) > span {
    grid-column: 2;
    grid-row: 1;
}
.es-front-wrap .es-exam-option-help {
    grid-column: 2;
    grid-row: 2;
    display: block;
    margin: 0;
    color: var(--es-exam-muted);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.35;
}

.es-student-preview-nav {
    min-width: 142px;
    min-height: 46px;
    padding: 10px 18px;
    border: 1px solid #c8d0da;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease, opacity .16s ease;
}
.es-student-preview-nav.is-prev {
    background: #fff;
    color: #172033;
}
.es-student-preview-nav.is-next {
    background: var(--es-exam-primary, #172033);
    border-color: var(--es-exam-primary, #172033);
    color: #fff;
}
.es-student-preview-nav:not(:disabled):hover,
.es-student-preview-nav:not(:disabled):focus-visible {
    transform: translateY(-1px);
    outline: none;
}
.es-student-preview-nav.is-prev:not(:disabled):hover,
.es-student-preview-nav.is-prev:not(:disabled):focus-visible {
    border-color: var(--es-exam-primary, #172033);
    color: var(--es-exam-primary, #172033);
}
.es-student-preview-nav.is-next:not(:disabled):hover,
.es-student-preview-nav.is-next:not(:disabled):focus-visible {
    filter: brightness(.92);
}
.es-student-preview-nav:disabled {
    opacity: .35;
    cursor: not-allowed;
    transform: none;
}
.es-student-preview-nav > span[aria-hidden="true"] {
    font-size: 18px;
    line-height: .8;
}
@media (max-width: 760px) {
    .es-front-wrap .es-exam-options-grid > label:has(.es-exam-option-help) { max-width: none; width: 100%; }
    .es-student-preview-nav { min-width: 0; width: 100%; }
}

/* EasySchool 0.11.64 — revisão integral da pré-visualização e recursos das questões */
/* O fullscreen passa a ter scroll vertical próprio e visível. */
.es-student-preview-modal {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}
.es-student-preview-dialog {
    height: auto !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    display: flex !important;
    flex-direction: column;
    overflow: visible !important;
}
.es-student-preview-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
}
.es-student-preview-progress {
    position: sticky;
    top: 93px;
    z-index: 18;
    background: #fff;
}
.es-student-preview-body {
    flex: 1 0 auto;
    overflow: visible !important;
    min-height: 0;
}
.es-student-preview-footer {
    position: sticky;
    bottom: 0;
    z-index: 20;
    box-shadow: 0 -8px 24px rgba(15,23,42,.06);
}

/* Recurso anexado à questão. */
.es-front-wrap .es-question-resource-editor { margin: 18px 0; border: 1px solid var(--es-exam-line); background: var(--es-exam-surface); }
.es-front-wrap .es-question-resource-editor > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 15px; padding: 14px 16px; }
.es-front-wrap .es-question-resource-editor > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-question-resource-editor > summary > span:first-child { display: grid; gap: 3px; }
.es-front-wrap .es-question-resource-editor > summary small { color: var(--es-exam-muted); font-weight: 500; }
.es-front-wrap .es-question-resource-body { padding: 0 16px 16px; }
.es-front-wrap .es-question-media-current { display: grid; grid-template-columns: minmax(120px,220px) 1fr; gap: 16px; align-items: center; margin-bottom: 14px; padding: 12px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-question-media-current img { display: block; width: 100%; max-height: 150px; object-fit: contain; background: #fff; }
.es-front-wrap .es-question-media-current > div { display: grid; gap: 5px; }
.es-front-wrap .es-question-media-current label { display: flex; align-items: center; gap: 7px; font-size: 12px; }
.es-front-wrap .es-question-media-current input[type="checkbox"] { width: 18px !important; height: 18px !important; min-height: 18px !important; }

.es-student-question-resource { margin: 18px 0 4px; }
.es-student-question-resource img,
.es-student-question-resource video { display: block; width: auto; max-width: 100%; max-height: 460px; margin: 0 auto; object-fit: contain; }
.es-student-question-resource audio { width: 100%; }
.es-student-resource-link { display: inline-flex; min-height: 42px; padding: 9px 14px; align-items: center; border: 1px solid #cfd6df; background: #fff; color: #172033; font-weight: 800; text-decoration: none; }

/* Ordenação / drag. */
.es-student-order-help { margin: 0 0 9px; color: #697386; font-size: 12px; }
.es-student-order-list > div { grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; cursor: grab; user-select: none; }
.es-student-order-list > div.is-dragging { opacity: .45; }
.es-student-order-list > div.is-drag-over { border-color: var(--es-exam-primary, #172033); box-shadow: inset 0 2px 0 var(--es-exam-primary, #172033); }
.es-order-drag { width: 30px; height: 30px; border: 0; background: transparent; cursor: grab; font-size: 18px; color: #667085; }
.es-order-buttons { display: inline-flex; gap: 5px; }
.es-order-buttons button { width: 34px; height: 34px; border: 1px solid #ccd3dd; background: #fff; color: #172033; font-weight: 900; cursor: pointer; }
.es-order-buttons button:hover { border-color: var(--es-exam-primary, #172033); }

/* Associação múltipla. */
.es-student-many-list { display: grid; gap: 12px; }
.es-student-many-list fieldset { margin: 0; padding: 13px; border: 1px solid #d8dee6; }
.es-student-many-list legend { padding: 0 6px; font-weight: 800; }
.es-student-many-list fieldset > div { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.es-student-many-list label { display: inline-flex; align-items: center; gap: 7px; }
.es-student-many-list input { width: 18px !important; height: 18px !important; min-height: 18px !important; }

/* Tabela e vários espaços. */
.es-student-table-answer { overflow-x: auto; }
.es-student-table-answer table { width: 100%; border-collapse: collapse; }
.es-student-table-answer th,
.es-student-table-answer td { padding: 9px; border: 1px solid #d8dee6; text-align: left; }
.es-student-table-answer input { width: 100%; min-height: 40px; padding: 7px 9px; border: 1px solid #cfd6df; }
.es-student-multi-blank { display: grid; gap: 9px; }
.es-student-multi-blank label { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 10px; align-items: center; }

/* Imagem interativa. */
.es-student-image-interaction { position: relative; display: grid; gap: 8px; }
.es-student-image-interaction > img { display: block; max-width: 100%; max-height: 520px; margin: 0 auto; object-fit: contain; border: 1px solid #d8dee6; cursor: crosshair; }
.es-student-image-interaction > div[data-es-image-markers] { position: absolute; inset: 0; pointer-events: none; }
.es-image-answer-marker { position: absolute; width: 22px; height: 22px; margin: -11px 0 0 -11px; border: 3px solid #fff; border-radius: 50%; background: var(--es-exam-primary, #9b0000); box-shadow: 0 0 0 2px var(--es-exam-primary, #9b0000), 0 2px 8px rgba(0,0,0,.25); pointer-events: auto; cursor: pointer; }
.es-student-image-interaction small { color: #697386; }

/* Desenho/gráfico. */
.es-student-drawing-wrap { display: grid; gap: 9px; justify-items: start; }
.es-student-drawing-canvas { display: block; width: 100%; max-width: 760px; height: 360px; border: 1px solid #cfd6df; background-color: #fff; background-image: linear-gradient(#eef1f5 1px, transparent 1px), linear-gradient(90deg,#eef1f5 1px,transparent 1px); background-size: 22px 22px; touch-action: none; cursor: crosshair; }
.es-mini-action { min-height: 38px; padding: 7px 13px; border: 1px solid #cfd6df; background: #fff; color: #172033; font-weight: 800; cursor: pointer; }

/* Gravador. */
.es-student-recorder { display: grid; gap: 9px; justify-items: start; }
.es-student-recorder > span { color: #697386; font-size: 12px; }
.es-student-recorder audio,
.es-student-recorder video { max-width: min(100%, 520px); }
.es-student-record-button.is-recording { background: #b42318; color: #fff; }

@media (max-width: 760px) {
    .es-student-preview-progress { top: 112px; }
    .es-front-wrap .es-question-media-current { grid-template-columns: 1fr; }
    .es-student-order-list > div { grid-template-columns: 30px minmax(0,1fr); }
    .es-order-buttons { grid-column: 1 / -1; justify-self: end; }
    .es-student-multi-blank label { grid-template-columns: 1fr; }
}
.es-front-wrap .es-question-preview-media { margin: 12px 0; }
.es-front-wrap .es-question-preview-media img { display: block; max-width: min(100%, 680px); max-height: 360px; object-fit: contain; border: 1px solid var(--es-exam-line); background: #fff; }
.es-front-wrap .es-question-preview-media a { font-weight: 800; }

/* EasySchool 0.11.64 — editor visual e interações sobre imagem */
.es-front-wrap .es-image-key-editor {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-soft);
}
.es-front-wrap .es-image-key-stage {
    position: relative;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    background: #fff;
    border: 1px solid var(--es-exam-line);
    cursor: crosshair;
}
.es-front-wrap .es-image-key-stage > img {
    display: block;
    max-width: 100%;
    max-height: 560px;
    object-fit: contain;
}
.es-front-wrap .es-image-key-markers {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.es-front-wrap .es-image-key-marker {
    position: absolute;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    margin: -14px 0 0 -14px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--es-exam-primary);
    color: #fff;
    box-shadow: 0 0 0 2px var(--es-exam-primary), 0 3px 10px rgba(0,0,0,.22);
    font-size: 12px;
    font-weight: 900;
    line-height: 24px;
    text-align: center;
    cursor: pointer;
    pointer-events: auto;
}
.es-front-wrap .es-image-key-empty {
    padding: 28px 18px;
    border: 1px dashed var(--es-exam-line);
    background: #fff;
    color: var(--es-exam-muted);
    text-align: center;
}
.es-front-wrap .es-image-key-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
    color: var(--es-exam-muted);
    font-size: 12px;
}

/* O layer de hotspots tem exatamente o tamanho da imagem, não o da card. */
.es-student-image-interaction { align-items: center; justify-items: center; }
.es-student-image-stage {
    position: relative;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
}
.es-student-image-stage > img {
    display: block;
    max-width: 100%;
    max-height: 520px;
    object-fit: contain;
    border: 1px solid #d8dee6;
    cursor: crosshair;
}
.es-student-image-stage > div[data-es-image-markers] {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/* Etiquetas/objetos arrastáveis sobre imagem. */
.es-student-image-label-task { display: grid; gap: 14px; }
.es-student-image-label-stage {
    position: relative;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
}
.es-student-image-label-stage > img {
    display: block;
    max-width: 100%;
    max-height: 540px;
    object-fit: contain;
    border: 1px solid #d8dee6;
}
.es-student-image-label-targets { position: absolute; inset: 0; pointer-events: none; }
.es-image-label-target {
    position: absolute;
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: -17px 0 0 -17px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: rgba(23,32,51,.82);
    color: #fff;
    box-shadow: 0 0 0 2px #172033, 0 3px 12px rgba(0,0,0,.22);
    font-weight: 900;
    cursor: pointer;
    pointer-events: auto;
    transition: transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.es-image-label-target.is-drag-over { transform: scale(1.18); box-shadow: 0 0 0 4px rgba(23,32,51,.2); }
.es-image-label-target.is-filled { background: #16794b; box-shadow: 0 0 0 2px #16794b, 0 3px 12px rgba(0,0,0,.22); }
.es-image-label-palette { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; border: 1px solid #d8dee6; background: #fff; }
.es-image-label-palette > button {
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid #cfd6df;
    background: #fff;
    color: #172033;
    font: inherit;
    font-weight: 750;
    cursor: grab;
}
.es-image-label-palette > button.is-selected { border-color: var(--es-exam-primary,#172033); box-shadow: inset 0 0 0 1px var(--es-exam-primary,#172033); }
.es-image-label-palette > button.is-used { opacity: .55; }
.es-image-label-palette > button.is-dragging { opacity: .35; }
.es-image-label-answers { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 7px; }
.es-image-label-answers > div { display: flex; gap: 8px; padding: 7px 9px; border: 1px solid #e0e5eb; background: #fafbfc; font-size: 12px; }
.es-image-label-answers b { white-space: nowrap; }
.es-image-label-answers span { overflow-wrap: anywhere; }

/* Scrollbar explícita no fullscreen para questões maiores do que o viewport. */
.es-student-preview-modal { scrollbar-gutter: stable; }
.es-student-preview-modal::-webkit-scrollbar { width: 12px; }
.es-student-preview-modal::-webkit-scrollbar-track { background: #eef1f5; }
.es-student-preview-modal::-webkit-scrollbar-thumb { background: #a7b0bd; border: 3px solid #eef1f5; border-radius: 8px; }
.es-student-preview-modal::-webkit-scrollbar-thumb:hover { background: #7d8795; }
.es-front-wrap .es-question-resource-editor.is-recommended { border-left: 3px solid var(--es-exam-primary); }
.es-front-wrap .es-question-resource-editor.is-recommended > summary strong::after { content: ' · recomendado/necessário para este tipo'; color: var(--es-exam-primary); font-size: 11px; font-weight: 800; }
.es-student-preview-modal { overflow-y: scroll !important; }
.es-front-wrap .es-option-row .es-option-expected {
    grid-column: 2 / -1;
    width: 100%;
    min-height: 38px;
    padding: 7px 9px;
    border: 1px solid var(--es-exam-line);
    background: #fff;
}
.es-front-wrap .es-option-row .es-option-expected[hidden] { display: none !important; }
.es-student-upload { flex-wrap: wrap; }
.es-student-upload > small { flex-basis: 100%; color: #697386; font-size: 11px; }
.es-student-code-wrap { display: grid; gap: 7px; }
.es-student-code-wrap > small { color: #697386; font-weight: 700; }

/* Exames 0.11.67 — Banco de Questões em acordeão + paginação de 20 */
.es-front-wrap .es-question-section-accordion {
    background: var(--es-exam-surface);
    border: 1px solid var(--es-exam-line);
    box-shadow: 0 10px 28px rgba(15,23,42,.035);
}
.es-front-wrap .es-question-section-accordion > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 64px;
    padding: 15px 18px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.es-front-wrap .es-question-section-accordion > summary::-webkit-details-marker { display: none; }
.es-front-wrap .es-question-section-accordion > summary > span:first-child { display: grid; gap: 3px; min-width: 0; }
.es-front-wrap .es-question-section-accordion > summary strong { color: var(--es-exam-text); font-size: 16px; }
.es-front-wrap .es-question-section-accordion > summary small { color: var(--es-exam-muted); font-size: 12px; font-weight: 500; }
.es-front-wrap .es-question-section-accordion > summary > span:last-child {
    color: var(--es-exam-primary);
    font-weight: 900;
    transition: transform .18s ease;
}
.es-front-wrap .es-question-section-accordion[open] > summary {
    border-bottom: 1px solid var(--es-exam-line);
    background: color-mix(in srgb, var(--es-exam-primary) 3%, var(--es-exam-surface));
}
.es-front-wrap .es-question-section-accordion[open] > summary > span:last-child { transform: rotate(180deg); }
.es-front-wrap .es-question-section-body { padding: 18px; }
.es-front-wrap .es-question-editor-body .es-question-form { margin: 0; }
.es-front-wrap .es-question-editor-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    padding: 10px 12px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-soft);
    color: var(--es-exam-muted);
    font-size: 12px;
}
.es-front-wrap .es-question-bank-accordion .es-question-bank-filters { margin-top: 0; }
.es-front-wrap .es-question-bank-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 16px;
    margin-top: 8px;
    border-top: 1px solid var(--es-exam-line);
}
.es-front-wrap .es-question-bank-pagination > span {
    color: var(--es-exam-muted);
    font-size: 12px;
    font-weight: 700;
}
.es-front-wrap .es-question-bank-pagination nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    flex-wrap: wrap;
}
.es-front-wrap .es-question-bank-pagination button {
    min-width: 36px;
    height: 36px;
    padding: 0 9px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-surface);
    color: var(--es-exam-text);
    font-weight: 800;
    cursor: pointer;
}
.es-front-wrap .es-question-bank-pagination button:hover:not(:disabled),
.es-front-wrap .es-question-bank-pagination button:focus-visible {
    border-color: var(--es-exam-primary);
    color: var(--es-exam-primary);
}
.es-front-wrap .es-question-bank-pagination button.is-active {
    border-color: var(--es-exam-primary);
    background: var(--es-exam-primary);
    color: #fff;
}
.es-front-wrap .es-question-bank-pagination button:disabled { opacity: .4; cursor: default; }
.es-front-wrap .es-question-bank-pagination .es-pagination-ellipsis { padding: 0 3px; color: var(--es-exam-muted); }
.es-front-wrap .es-question-bank-no-results {
    margin-top: 14px;
    padding: 24px 18px;
    border: 1px dashed var(--es-exam-line);
    background: var(--es-exam-soft);
    color: var(--es-exam-muted);
    text-align: center;
}
@media (max-width: 720px) {
    .es-front-wrap .es-question-section-accordion > summary { padding: 14px; }
    .es-front-wrap .es-question-section-body { padding: 14px; }
    .es-front-wrap .es-question-bank-pagination { align-items: flex-start; flex-direction: column; }
    .es-front-wrap .es-question-bank-pagination nav { justify-content: flex-start; }
    .es-front-wrap .es-question-editor-toolbar { align-items: flex-start; flex-direction: column; }
}

/* Exames 0.11.68 — gestão em massa e filtros completos no construtor */
.es-front-wrap .es-exam-builder-hero-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.es-front-wrap .es-exam-builder-hero-actions form { margin: 0; }
.es-front-wrap .es-button-danger {
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #a61b1b;
    background: #fff;
    color: #9b1111;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
.es-front-wrap .es-button-danger:hover,
.es-front-wrap .es-button-danger:focus-visible { background: #9b1111; color: #fff; }
.es-front-wrap .es-mini-danger { border-color: #a61b1b !important; color: #9b1111 !important; background: #fff !important; }
.es-front-wrap .es-mini-danger:not(:disabled):hover { background: #9b1111 !important; color: #fff !important; }

.es-front-wrap .es-builder-bulk-toolbar {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin: 10px 0 12px;
    padding: 9px 10px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-soft);
}
.es-front-wrap .es-builder-bulk-toolbar > label:not(.es-builder-bulk-group) {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.es-front-wrap .es-builder-bulk-toolbar button { margin-left: auto; }
.es-front-wrap .es-builder-bulk-toolbar button:disabled { opacity: .45; cursor: not-allowed; }
.es-front-wrap .es-builder-bulk-group { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.es-front-wrap .es-builder-bulk-group > span { font-size: 10px; font-weight: 800; text-transform: uppercase; color: var(--es-exam-muted); }
.es-front-wrap .es-builder-bulk-group select { min-height: 34px; max-width: 190px; }
.es-front-wrap .es-builder-bulk-group + button { margin-left: 0; }

.es-front-wrap .es-exam-item {
    grid-template-columns: 24px 36px minmax(0,1fr) 70px minmax(168px, auto);
}
.es-front-wrap .es-exam-item-select,
.es-front-wrap .es-bank-question-select {
    display: grid;
    place-items: center;
    margin: 0;
}
.es-front-wrap .es-exam-item-select input,
.es-front-wrap .es-bank-question-select input { margin: 0; }
.es-front-wrap .es-exam-item-group-form { padding-left: 70px; }
.es-front-wrap .es-exam-snapshot-preview { margin-left: 70px; }

.es-front-wrap .es-exam-bank-head { align-items: center; }
.es-front-wrap .es-exam-bank-head .es-mini-button { white-space: nowrap; }
.es-front-wrap .es-builder-bank-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 7px;
    margin: 12px 0 8px;
}
.es-front-wrap .es-builder-bank-filters .es-builder-search-field { grid-column: 1 / -1; }
.es-front-wrap .es-builder-bank-filters .es-compact-field:nth-child(2) { grid-column: 1 / -1; }
.es-front-wrap .es-builder-bank-filters input,
.es-front-wrap .es-builder-bank-filters select { min-height: 38px; width: 100%; }
.es-front-wrap .es-exam-bank-picker-list > article {
    grid-template-columns: 24px minmax(0,1fr) auto;
}
.es-front-wrap .es-exam-bank-picker-list > article > .es-builder-bank-preview { grid-column: 1 / -1; }
.es-front-wrap .es-exam-bank-actions { align-items: center; }

@media (max-width: 760px) {
    .es-front-wrap .es-exam-item { grid-template-columns: 24px 32px 1fr; }
    .es-front-wrap .es-exam-item-points { grid-column: 3; text-align: left; }
    .es-front-wrap .es-exam-item-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .es-front-wrap .es-exam-item-group-form { padding-left: 0; }
    .es-front-wrap .es-exam-snapshot-preview { margin-left: 0; }
    .es-front-wrap .es-builder-bank-filters { grid-template-columns: 1fr; }
    .es-front-wrap .es-builder-bank-filters .es-builder-search-field,
    .es-front-wrap .es-builder-bank-filters .es-compact-field:nth-child(2) { grid-column: auto; }
    .es-front-wrap .es-builder-bulk-toolbar,
    .es-front-wrap .es-builder-bulk-group { align-items: stretch; flex-direction: column; }
    .es-front-wrap .es-builder-bulk-toolbar button,
    .es-front-wrap .es-builder-bulk-group { width: 100%; margin-left: 0; }
    .es-front-wrap .es-builder-bulk-group select { max-width: none; width: 100%; }
    .es-front-wrap .es-exam-bank-picker-list > article { grid-template-columns: 24px minmax(0,1fr); }
    .es-front-wrap .es-exam-bank-actions { grid-column: 1 / -1; padding-left: 32px; }
    .es-front-wrap .es-exam-builder-hero-actions { justify-content: flex-start; width: 100%; }
}


/* Exames 0.11.69 — publicação e leitura congelada */
.es-front-wrap .es-button-publish { min-height: 42px; padding: 0 18px; border: 1px solid #166534; background: #166534; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.es-front-wrap .es-button-publish:hover:not(:disabled), .es-front-wrap .es-button-publish:focus-visible:not(:disabled) { background: #14532d; border-color: #14532d; }
.es-front-wrap .es-button-publish:disabled { cursor: not-allowed; opacity: .48; }
.es-front-wrap .es-exam-published-lock { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; padding: 12px 16px; border-left: 3px solid #166534; border-top: 1px solid var(--es-exam-line); border-bottom: 1px solid var(--es-exam-line); background: #f2f8f4; }
.es-front-wrap .es-exam-published-lock strong { color: #14532d; }
.es-front-wrap .es-exam-published-lock span { color: var(--es-exam-muted); }
.es-front-wrap .es-exam-builder-columns.is-readonly { grid-template-columns: minmax(0,1fr); }

/* Exames 0.11.70 — ligação das questões aos critérios de Avaliação */
.es-front-wrap .es-exam-item-assessment { margin: 0 0 10px 46px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-exam-item-assessment.is-complete { border-left: 3px solid #2f8f5b; }
.es-front-wrap .es-exam-item-assessment.is-incomplete { border-left: 3px solid #b65332; }
.es-front-wrap .es-exam-item-assessment-summary { display: flex; align-items: center; gap: 12px; padding: 10px 12px; }
.es-front-wrap .es-exam-item-assessment-summary > strong { flex: 0 0 auto; font-size: 12px; }
.es-front-wrap .es-exam-item-criterion-chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.es-front-wrap .es-exam-item-criterion-chips > span { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 4px 8px; border: 1px solid var(--es-exam-line); background: #fff; font-size: 12px; font-weight: 700; }
.es-front-wrap .es-exam-item-criterion-chips > span small { color: var(--es-exam-muted); font-size: 10px; font-weight: 800; }
.es-front-wrap .es-exam-item-criterion-chips > em { color: #8d3c25; font-size: 12px; font-style: normal; font-weight: 800; }
.es-front-wrap .es-exam-item-criteria-editor { border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-exam-item-criteria-editor > summary { padding: 9px 12px; cursor: pointer; font-size: 12px; font-weight: 900; user-select: none; }
.es-front-wrap .es-exam-item-criteria-editor > form { padding: 0 12px 12px; }
.es-front-wrap .es-exam-item-criteria-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.es-front-wrap .es-exam-item-criteria-options label { display: flex; align-items: flex-start; gap: 9px; min-height: 48px; padding: 9px; border: 1px solid var(--es-exam-line); background: #fff; cursor: pointer; }
.es-front-wrap .es-exam-item-criteria-options input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; }
.es-front-wrap .es-exam-item-criteria-options label > span { display: grid; gap: 2px; min-width: 0; }
.es-front-wrap .es-exam-item-criteria-options label strong { margin: 0; font-size: 12px; }
.es-front-wrap .es-exam-item-criteria-options label small { color: var(--es-exam-muted); font-size: 10px; }
.es-front-wrap .es-exam-item-criteria-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 10px; }
.es-front-wrap .es-exam-item-criteria-actions > small { color: var(--es-exam-muted); line-height: 1.45; }
.es-front-wrap .es-exam-item-no-criteria { padding: 9px 12px; border-top: 1px solid var(--es-exam-line); color: #8d3c25; font-size: 12px; font-weight: 700; }
.es-front-wrap .es-exam-item-no-criteria a { text-decoration: underline; }
.es-front-wrap .es-question-preview-criteria { display: grid; gap: 6px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--es-exam-line); }
.es-front-wrap .es-question-preview-criteria > span { font-size: 12px; }

@media (max-width: 800px) {
    .es-front-wrap .es-exam-item-assessment { margin-left: 0; }
    .es-front-wrap .es-exam-item-assessment-summary { align-items: flex-start; flex-direction: column; }
    .es-front-wrap .es-exam-item-criteria-options { grid-template-columns: 1fr; }
    .es-front-wrap .es-exam-item-criteria-actions { align-items: stretch; flex-direction: column; }
}

/* EasySchool v0.11.77 — eliminação definitiva no Banco de Questões. */
.es-front-wrap .es-delete-question {
    color: #9b0000;
}
.es-front-wrap .es-delete-question svg {
    width: 17px;
    height: 17px;
    display: block;
}
.es-front-wrap .es-delete-question:hover,
.es-front-wrap .es-delete-question:focus-visible {
    color: #fff;
    background: #9b0000;
    border-color: #9b0000;
}

/* EasySchool v0.11.78 — seleção e eliminação em massa no Banco de Questões. */
.es-front-wrap .es-question-bank-select {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    cursor: pointer;
}
.es-front-wrap .es-question-bank-select input { margin: 0; }
.es-front-wrap .es-question-bank-bulk {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 10px 0 4px;
    padding: 10px 12px;
    border: 1px solid var(--es-exam-line);
    background: var(--es-exam-surface);
}
.es-front-wrap .es-question-bank-bulk-selectors { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.es-front-wrap .es-question-bank-bulk-selectors label { display: inline-flex; align-items: center; gap: 7px; margin: 0; cursor: pointer; font-weight: 700; font-size: 12px; }
.es-front-wrap .es-question-bank-bulk form { margin: 0; }
.es-front-wrap .es-question-bulk-delete:disabled { opacity: .45; cursor: default; }
@media (max-width: 720px) {
    .es-front-wrap .es-question-bank-bulk { align-items: stretch; flex-direction: column; }
    .es-front-wrap .es-question-bank-bulk form,
    .es-front-wrap .es-question-bank-bulk form button { width: 100%; }
}


/* EasySchool v0.11.79 — Modo Monitorizado dos Exames. */
.es-front-wrap .es-exam-monitor-panel { margin: 18px 0 0; padding: 18px; border: 1px solid #c8d0da; background: #f8fafc; }
.es-front-wrap .es-exam-monitor-panel legend { padding: 0 8px; font-weight: 800; font-size: 15px; color: #111827; }
.es-front-wrap .es-monitor-settings[hidden] { display: none !important; }
.es-front-wrap .es-monitor-settings { display: grid; gap: 16px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #d8dee7; }
.es-front-wrap .es-monitor-threshold-grid { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 12px; }
.es-front-wrap .es-monitor-threshold-field { grid-template-rows: minmax(34px, auto) 44px minmax(38px, auto); align-content: start; }
.es-front-wrap .es-monitor-threshold-field > input,
.es-front-wrap .es-monitor-threshold-field > select { min-height: 44px; height: 44px; box-sizing: border-box; }
.es-front-wrap .es-monitor-threshold-field > small { display: block; min-height: 38px; margin: 0; line-height: 1.45; color: var(--es-exam-muted); }
.es-front-wrap .es-monitor-toggle-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 9px 14px; }
.es-front-wrap .es-monitor-toggle-grid > label { display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 9px 11px; border: 1px solid #d4dbe4; background: #fff; cursor: pointer; }
.es-front-wrap .es-monitor-toggle-grid input[type=checkbox] { flex: 0 0 18px; }
.es-front-wrap .es-monitor-note { margin: 0; padding: 11px 13px; border-left: 3px solid #315b89; background: #eef4fa; color: #435267; font-size: 12px; line-height: 1.55; }
.es-student-monitor-strip { position: sticky; top: 164px; z-index: 12; display: grid; grid-template-columns: auto auto 1fr; gap: 14px; align-items: center; padding: 9px 22px; border-bottom: 1px solid #d7b46b; background: #fff8e6; color: #654b16; font-size: 11px; }
.es-student-monitor-strip strong { font-size: 12px; color: #4d360d; }
.es-student-monitor-strip [data-es-monitor-message] { text-align: right; }
.es-student-monitor-strip.is-warning { background: #fff0e6; border-color: #c96828; color: #7a3210; }
.es-student-monitor-strip.is-limit { background: #fdecec; border-color: #b42318; color: #7a1610; }
@media (max-width: 1100px) { .es-front-wrap .es-monitor-threshold-grid { grid-template-columns: repeat(2, minmax(180px,1fr)); } .es-front-wrap .es-monitor-toggle-grid { grid-template-columns: repeat(2,minmax(180px,1fr)); } }
@media (max-width: 700px) { .es-front-wrap .es-monitor-threshold-grid, .es-front-wrap .es-monitor-toggle-grid { grid-template-columns: 1fr; } .es-student-monitor-strip { grid-template-columns: 1fr; gap: 3px; top: 190px; } .es-student-monitor-strip [data-es-monitor-message] { text-align: left; } }

/* EasySchool v0.11.80 — Banco partilhado por Grupo de Recrutamento. */
.es-front-wrap .es-recruitment-share-field { margin-top: 2px; padding: 12px 14px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); }
.es-front-wrap .es-recruitment-share-field > span { display: grid; gap: 3px; }
.es-front-wrap .es-recruitment-share-field small { color: var(--es-exam-muted); font-weight: 400; line-height: 1.45; }
.es-front-wrap .es-recruitment-share-field.is-disabled { opacity: .6; }
.es-front-wrap .es-shared-group-badge { display: inline-flex; align-items: center; width: max-content; padding: 3px 6px; border: 1px solid #b8c7d8; background: #eef4fa; color: #234f7c !important; }
.es-front-wrap .es-group-bank-intro { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding: 12px 14px; border-left: 3px solid var(--es-exam-primary); background: var(--es-exam-soft); }
.es-front-wrap .es-group-bank-intro span { color: var(--es-exam-muted); font-size: 12px; max-width: 760px; line-height: 1.5; }
.es-front-wrap .es-group-question-bank-row { grid-template-columns: 150px minmax(0, 1fr) 120px minmax(250px, auto); }
.es-front-wrap .es-group-question-own { display: inline-flex; align-items: center; min-height: 34px; padding: 0 10px; border: 1px solid var(--es-exam-line); background: var(--es-exam-soft); color: var(--es-exam-muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
@media (max-width: 1120px) {
    .es-front-wrap .es-group-question-bank-row { grid-template-columns: 120px minmax(0,1fr) 100px; }
    .es-front-wrap .es-group-question-bank-row .es-question-bank-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 720px) {
    .es-front-wrap .es-group-bank-intro { flex-direction: column; gap: 5px; }
    .es-front-wrap .es-group-question-bank-row { grid-template-columns: minmax(0,1fr) auto; }
    .es-front-wrap .es-group-question-bank-row .es-question-bank-type,
    .es-front-wrap .es-group-question-bank-row .es-question-bank-main { grid-column: 1 / -1; }
    .es-front-wrap .es-group-question-bank-row .es-question-bank-meta { grid-column: 1; justify-items: start; }
    .es-front-wrap .es-group-question-bank-row .es-question-bank-actions { grid-column: 1 / -1; }
}

/* EasySchool 0.11.82 - limites monitorizados com tolerância zero e campos alinhados. */

/* ========================================================================
   EasySchool 0.11.85 — Aspeto dedicado do módulo Exames
   ======================================================================== */
.es-front-wrap .es-exams-shell {
    gap: var(--es-exam-gap, 18px);
}

.es-front-wrap .es-exams-feature-card,
.es-front-wrap .es-exams-card,
.es-front-wrap .es-exams-pipeline-card,
.es-front-wrap .es-exam-builder-sidebar,
.es-front-wrap .es-exam-bank-picker,
.es-front-wrap .es-question-section-accordion,
.es-front-wrap .es-exam-settings-card,
.es-front-wrap .es-ai-status-card,
.es-front-wrap .es-ai-grade-result {
    border-radius: var(--es-exam-radius, 0);
    box-shadow: var(--es-exam-shadow, 0 12px 34px rgba(15,23,42,.05));
}

.es-front-wrap .es-exams-feature-card,
.es-front-wrap .es-exams-card,
.es-front-wrap .es-exams-pipeline-card {
    padding: var(--es-exam-card-padding, 22px);
}

.es-front-wrap .es-question-section-accordion > summary {
    background: var(--es-exam-accordion-bg, var(--es-exam-surface));
}
.es-front-wrap .es-question-section-accordion[open] > summary {
    background: var(--es-exam-accordion-open-bg, var(--es-exam-soft));
}
.es-front-wrap .es-question-bank-filters {
    background: var(--es-exam-bank-filter-bg, var(--es-exam-soft));
}
.es-front-wrap .es-question-bank-row {
    background: var(--es-exam-bank-row-bg, transparent);
}
.es-front-wrap .es-question-bank-entry:hover > .es-question-bank-row,
.es-front-wrap .es-group-question-bank-row:hover {
    background: var(--es-exam-bank-row-hover-bg, color-mix(in srgb, var(--es-exam-primary) 3%, transparent));
}
.es-front-wrap .es-shared-group-badge,
.es-front-wrap .es-exams-status {
    background: var(--es-exam-badge-bg, var(--es-exam-soft));
    color: var(--es-exam-badge-text, var(--es-exam-muted));
}

.es-front-wrap .es-exam-builder-main,
.es-front-wrap .es-exam-builder-hero {
    background-color: var(--es-exam-builder-bg, transparent);
}
.es-front-wrap .es-exam-bank-picker {
    background: var(--es-exam-builder-bank-bg, var(--es-exam-surface));
}
.es-front-wrap .es-exam-builder-columns {
    gap: var(--es-exam-builder-gap, 14px);
}
.es-front-wrap .es-exam-item-entry {
    background: var(--es-exam-item-bg, transparent);
    border: 1px solid var(--es-exam-item-border, transparent);
    border-radius: var(--es-exam-item-radius, 0);
    margin-top: 4px;
}
.es-front-wrap .es-exam-item-entry > .es-exam-item {
    padding: var(--es-exam-item-padding, 12px) 0;
}

.es-front-wrap .es-exams-status:not(.is-published):not(.is-active) {
    background: var(--es-exam-status-draft-bg, var(--es-exam-soft));
    color: var(--es-exam-status-draft-text, var(--es-exam-muted));
}
.es-front-wrap .es-exams-status.is-published,
.es-front-wrap .es-exams-status.is-active {
    background: var(--es-exam-status-published-bg, #f0faf4);
    color: var(--es-exam-status-published-text, #20623c);
}
.es-front-wrap .es-exam-item-assessment.is-incomplete,
.es-front-wrap .es-exam-builder-numbers span.is-warning {
    background: var(--es-exam-status-incomplete-bg, transparent);
    color: var(--es-exam-status-incomplete-text, inherit);
}
.es-front-wrap .es-ai-grade-result.needs-review {
    background: var(--es-exam-status-review-bg, #fffaf0);
    color: var(--es-exam-status-review-text, inherit);
}
.es-front-wrap .es-ai-status-card,
.es-front-wrap .es-ai-grade-result {
    background: var(--es-exam-ai-card-bg, var(--es-exam-surface));
}
.es-front-wrap .es-ai-grade-criteria article,
.es-front-wrap .es-question-preview-rubrics > div {
    background: var(--es-exam-ai-criterion-bg, var(--es-exam-surface));
}
.es-front-wrap .es-question-preview-penalties,
.es-front-wrap .es-ai-grade-penalties article {
    background: var(--es-exam-ai-penalty-bg, transparent);
}

.es-student-preview-body {
    background: var(--es-exam-preview-bg, #f7f8fa);
    font-size: var(--es-exam-preview-text-size, inherit);
}
.es-student-preview-question {
    max-width: var(--es-exam-preview-question-width, 820px);
    padding: var(--es-exam-preview-question-padding, 26px);
    border-radius: var(--es-exam-preview-question-radius, 0);
    background: var(--es-exam-preview-question-bg, #fff);
}
.es-student-preview-question h2 {
    font-size: var(--es-exam-preview-title-size, 24px);
}
.es-student-question-howto {
    background: var(--es-exam-preview-help-bg, #f6f8fb);
    border-left-color: var(--es-exam-preview-help-border, var(--es-exam-primary));
}
.es-student-preview-progress-bar i {
    background: var(--es-exam-preview-progress, var(--es-exam-primary));
}
.es-student-preview-nav {
    min-height: var(--es-exam-preview-nav-height, 44px);
    border-radius: var(--es-exam-preview-nav-radius, 0);
    background: var(--es-exam-preview-nav-bg, #111827);
    color: var(--es-exam-preview-nav-text, #fff);
}
.es-student-preview-nav.is-prev,
.es-student-preview-nav.is-next {
    background: var(--es-exam-preview-nav-bg, var(--es-exam-primary, #172033));
    border-color: var(--es-exam-preview-nav-bg, var(--es-exam-primary, #172033));
    color: var(--es-exam-preview-nav-text, #fff);
}
.es-student-preview-nav.is-prev:not(:disabled):hover,
.es-student-preview-nav.is-prev:not(:disabled):focus-visible,
.es-student-preview-nav.is-next:not(:disabled):hover,
.es-student-preview-nav.is-next:not(:disabled):focus-visible {
    color: var(--es-exam-preview-nav-text, #fff);
}


/* ========================================================================
   EasySchool 0.11.86 — Sala de Aula competitiva
   ======================================================================== */
.es-front-wrap .es-classroom-titlebar {
    align-items: end;
}

.es-front-wrap .es-classroom-title-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.es-front-wrap .es-classroom-shell {
    display: grid;
    gap: 18px;
}

.es-front-wrap .es-classroom-config,
.es-front-wrap .es-classroom-scoreboard,
.es-front-wrap .es-classroom-launchbar {
    border: 1px solid var(--es-front-base-line);
    background: var(--es-front-base-panel);
    box-shadow: var(--es-front-soft-shadow);
}

.es-front-wrap .es-classroom-config {
    padding: 20px;
}

.es-front-wrap .es-classroom-config-head,
.es-front-wrap .es-classroom-scoreboard-head,
.es-front-wrap .es-classroom-config-actions,
.es-front-wrap .es-classroom-launchbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.es-front-wrap .es-classroom-config-head {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--es-front-base-line);
}

.es-front-wrap .es-classroom-config-head > div:first-child,
.es-front-wrap .es-classroom-scoreboard-head > div:first-child {
    display: grid;
    gap: 2px;
}

.es-front-wrap .es-classroom-config-head span,
.es-front-wrap .es-classroom-scoreboard-head > div:first-child > span {
    color: var(--es-front-base-muted);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.es-front-wrap .es-classroom-config-head h3,
.es-front-wrap .es-classroom-scoreboard-head h3 {
    margin: 0;
    color: var(--es-front-base-text);
    font-size: 1.25rem;
}

.es-front-wrap .es-classroom-session-status {
    padding: 8px 12px;
    border: 1px solid var(--es-front-base-line);
    background: var(--es-front-base-soft);
    color: var(--es-front-base-muted);
    font-size: .82rem;
    font-weight: 800;
}

.es-front-wrap .es-classroom-session-status.is-live {
    border-color: color-mix(in srgb, #16a34a 42%, var(--es-front-base-line));
    background: color-mix(in srgb, #16a34a 8%, var(--es-front-base-panel));
    color: #166534;
}

.es-front-wrap .es-classroom-session-status.is-launched {
    border-color: color-mix(in srgb, #2563eb 40%, var(--es-front-base-line));
    background: color-mix(in srgb, #2563eb 7%, var(--es-front-base-panel));
    color: #1d4ed8;
}

.es-front-wrap .es-classroom-config-grid {
    display: grid;
    grid-template-columns: minmax(210px, 1.35fr) minmax(190px, 1fr) minmax(210px, 1.1fr) minmax(170px, .8fr) minmax(140px, .55fr);
    gap: 14px;
    align-items: start;
}

.es-front-wrap .es-classroom-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.es-front-wrap .es-classroom-field > span,
.es-front-wrap .es-classroom-mode legend,
.es-front-wrap .es-classroom-possible-mode legend {
    color: var(--es-front-base-text);
    font-size: .82rem;
    font-weight: 900;
}

.es-front-wrap .es-classroom-field select,
.es-front-wrap .es-classroom-field input {
    width: 100%;
    min-height: 44px;
}

.es-front-wrap .es-classroom-field small {
    color: var(--es-front-base-muted);
    font-size: .75rem;
    line-height: 1.35;
}

.es-front-wrap .es-classroom-options-row {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(460px, 1.3fr);
    gap: 16px;
    margin-top: 18px;
}

.es-front-wrap .es-classroom-mode,
.es-front-wrap .es-classroom-possible-mode {
    margin: 0;
    padding: 14px;
    border: 1px solid var(--es-front-base-line);
    background: var(--es-front-base-soft);
}

.es-front-wrap .es-classroom-mode legend,
.es-front-wrap .es-classroom-possible-mode legend {
    padding: 0 6px;
}

.es-front-wrap .es-classroom-mode {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.es-front-wrap .es-classroom-mode label,
.es-front-wrap .es-classroom-possible-mode label {
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--es-front-base-line);
    background: var(--es-front-base-panel);
    cursor: pointer;
}

.es-front-wrap .es-classroom-mode input,
.es-front-wrap .es-classroom-possible-mode input,
.es-front-wrap .es-classroom-launch-options input,
.es-front-wrap .es-classroom-absent-toggle input {
    width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    flex: 0 0 18px;
}

.es-front-wrap .es-classroom-mode label:has(input:checked).is-add {
    border-color: #16a34a;
    background: color-mix(in srgb, #16a34a 8%, var(--es-front-base-panel));
}

.es-front-wrap .es-classroom-mode label:has(input:checked).is-remove {
    border-color: #dc2626;
    background: color-mix(in srgb, #dc2626 7%, var(--es-front-base-panel));
}

.es-front-wrap .es-classroom-mode label span {
    font-size: .92rem;
    font-weight: 900;
}

.es-front-wrap .es-classroom-possible-mode {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.es-front-wrap .es-classroom-possible-mode label span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.es-front-wrap .es-classroom-possible-mode label strong {
    color: var(--es-front-base-text);
    font-size: .88rem;
}

.es-front-wrap .es-classroom-possible-mode label small {
    color: var(--es-front-base-muted);
    font-size: .75rem;
    line-height: 1.35;
}

.es-front-wrap .es-classroom-possible-mode.is-disabled {
    opacity: .45;
    pointer-events: none;
}

.es-front-wrap .es-classroom-config-actions {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--es-front-base-line);
}

.es-front-wrap .es-classroom-config-hint {
    color: var(--es-front-base-muted);
    font-size: .82rem;
    text-align: right;
}

.es-front-wrap .es-classroom-notice {
    padding: 13px 16px;
    border-left: 4px solid var(--es-front-base-primary);
    background: var(--es-front-base-soft);
    color: var(--es-front-base-text);
    font-weight: 750;
}

.es-front-wrap .es-classroom-notice.is-success {
    border-left-color: #16a34a;
    background: color-mix(in srgb, #16a34a 7%, var(--es-front-base-panel));
}

.es-front-wrap .es-classroom-notice.is-error {
    border-left-color: #dc2626;
    background: color-mix(in srgb, #dc2626 7%, var(--es-front-base-panel));
}

.es-front-wrap .es-classroom-scoreboard {
    padding: 20px;
    background:
        radial-gradient(circle at 50% -20%, color-mix(in srgb, #22c55e 10%, transparent), transparent 45%),
        var(--es-front-classroom-panel-bg, var(--es-front-base-panel));
}

.es-front-wrap .es-classroom-scoreboard-head {
    margin-bottom: 16px;
}

.es-front-wrap .es-classroom-live-stats {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.es-front-wrap .es-classroom-live-stats > div {
    min-width: 88px;
    padding: 8px 10px;
    border: 1px solid var(--es-front-base-line);
    background: var(--es-front-base-soft);
    text-align: center;
}

.es-front-wrap .es-classroom-live-stats strong,
.es-front-wrap .es-classroom-live-stats span {
    display: block;
}

.es-front-wrap .es-classroom-live-stats strong {
    color: var(--es-front-base-text);
    font-size: 1.05rem;
}

.es-front-wrap .es-classroom-live-stats span {
    color: var(--es-front-base-muted);
    font-size: .68rem;
}

.es-front-wrap .es-classroom-leader-announcement {
    margin: 0 0 16px;
    padding: 10px 14px;
    border: 1px solid color-mix(in srgb, #eab308 52%, var(--es-front-base-line));
    background: color-mix(in srgb, #facc15 12%, var(--es-front-base-panel));
    color: #854d0e;
    text-align: center;
    font-weight: 900;
    animation: esClassroomLeader .75s ease both;
}

@keyframes esClassroomLeader {
    0% { transform: scale(.97); opacity: 0; }
    55% { transform: scale(1.015); opacity: 1; }
    100% { transform: scale(1); }
}

.es-front-wrap .es-classroom-podium {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    justify-content: center;
    align-items: stretch;
    gap: 12px;
    margin: 8px auto 24px;
    min-height: 112px;
}

.es-front-wrap .es-classroom-podium.is-waiting {
    display: flex;
    align-items: center;
    min-height: 112px;
    margin-bottom: 18px;
}

.es-front-wrap .es-classroom-podium-waiting {
    display: grid;
    justify-items: center;
    gap: 5px;
    padding: 20px 28px;
    color: var(--es-front-base-muted);
    text-align: center;
}

.es-front-wrap .es-classroom-podium-waiting strong {
    color: var(--es-front-base-text);
    font-size: 1rem;
}

.es-front-wrap .es-classroom-podium-waiting span {
    font-size: .82rem;
}

.es-front-wrap .es-classroom-podium-place {
    display: grid;
    grid-template-columns: minmax(58px, auto) var(--es-front-classroom-podium-photo-width, 82px) minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 108px;
    padding: 10px 12px;
    border: 1px solid var(--es-front-classroom-podium-border, var(--es-front-base-line));
    background: var(--es-front-classroom-podium-card-bg, var(--es-front-base-soft));
    text-align: left;
    transition: transform .22s ease, opacity .22s ease;
}

.es-front-wrap .es-classroom-podium-place.is-empty {
    opacity: .35;
}

.es-front-wrap .es-classroom-podium-place.is-first {
    min-height: 108px;
    background: linear-gradient(90deg, var(--es-front-classroom-podium-leader-bg, #fff8d8), var(--es-front-classroom-podium-card-bg, var(--es-front-base-soft)));
    border-color: var(--es-front-classroom-card-leader-border, #eab308);
}

.es-front-wrap .es-classroom-podium-place.is-second,
.es-front-wrap .es-classroom-podium-place.is-third {
    min-height: 108px;
}

.es-front-wrap .es-classroom-podium-place img,
.es-front-wrap .es-classroom-podium-place.is-first img {
    width: var(--es-front-classroom-podium-photo-width, 82px);
    height: var(--es-front-classroom-podium-photo-height, 88px);
    max-width: 100%;
    object-fit: contain;
    object-position: center center;
    border-radius: var(--es-front-classroom-podium-photo-radius, 4px);
    border: 2px solid var(--es-front-base-panel);
    box-shadow: 0 0 0 1px var(--es-front-classroom-podium-border, var(--es-front-base-line));
    background: var(--es-front-classroom-podium-photo-bg, var(--es-front-base-panel));
}

.es-front-wrap .es-classroom-podium-rank {
    min-width: 1.35em;
    color: var(--es-front-classroom-podium-rank-2-color, #64748B);
    font-size: var(--es-front-classroom-podium-rank-size, 56px);
    font-weight: 1000;
    line-height: .9;
    letter-spacing: -.065em;
    text-align: center;
    white-space: nowrap;
}

.es-front-wrap .es-classroom-podium-place.is-first .es-classroom-podium-rank {
    color: var(--es-front-classroom-podium-rank-1-color, #D6A800);
}

.es-front-wrap .es-classroom-podium-place.is-third .es-classroom-podium-rank {
    color: var(--es-front-classroom-podium-rank-3-color, #B56A32);
}

.es-front-wrap .es-classroom-podium-place strong {
    min-width: 0;
    color: var(--es-front-classroom-podium-name-color, var(--es-front-base-text));
    font-size: var(--es-front-classroom-podium-name-size, 15px);
    line-height: 1.15;
    white-space: normal;
    overflow-wrap: anywhere;
}

.es-front-wrap .es-classroom-podium-place > span:last-child {
    color: var(--es-front-classroom-podium-score-color, #166534);
    font-size: var(--es-front-classroom-podium-score-size, 15px);
    font-weight: 900;
    white-space: nowrap;
}

.es-front-wrap .es-classroom-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.es-front-wrap .es-classroom-student {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--es-front-classroom-card-border, var(--es-front-base-line));
    background: var(--es-front-classroom-card-bg, var(--es-front-base-panel));
    box-shadow: 0 5px 16px rgba(15,23,42,.055);
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease, border-color .18s ease;
}

.es-front-wrap .es-classroom-student:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15,23,42,.09);
}

.es-front-wrap .es-classroom-student.is-leader {
    border-color: var(--es-front-classroom-card-leader-border, #eab308);
    box-shadow: 0 0 0 2px color-mix(in srgb, #facc15 17%, transparent), 0 12px 28px rgba(15,23,42,.11);
}

.es-front-wrap .es-classroom-student.is-new-leader {
    animation: esClassroomNewLeader 1.45s ease;
}

@keyframes esClassroomNewLeader {
    0%, 100% { transform: translateY(0) scale(1); }
    30% { transform: translateY(-4px) scale(1.025); box-shadow: 0 0 0 4px color-mix(in srgb, #facc15 26%, transparent), 0 16px 36px rgba(234,179,8,.18); }
    62% { transform: translateY(-1px) scale(1.01); }
}

.es-front-wrap .es-classroom-student.is-absent {
    opacity: .42;
    filter: grayscale(.65);
}

.es-front-wrap .es-classroom-progress {
    position: relative;
    height: 13px;
    background: color-mix(in srgb, #16a34a 10%, var(--es-front-base-soft));
    overflow: hidden;
    border-bottom: 1px solid color-mix(in srgb, #16a34a 17%, var(--es-front-base-line));
}

.es-front-wrap .es-classroom-progress > span {
    display: block;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, #22c55e, #15803d);
    transition: width .34s cubic-bezier(.2,.8,.2,1);
}

.es-front-wrap .es-classroom-rank {
    position: absolute;
    z-index: 3;
    top: 18px;
    left: 8px;
    min-width: 31px;
    height: 31px;
    display: grid;
    place-items: center;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--es-front-classroom-rank-bg, rgba(15,23,42,.82));
    color: var(--es-front-classroom-rank-text, #fff);
    font-size: var(--es-front-classroom-rank-size, 12px);
    font-weight: 900;
    backdrop-filter: blur(5px);
}

.es-front-wrap .es-classroom-crown {
    position: absolute;
    z-index: 4;
    top: 14px;
    right: 8px;
    font-size: 1.35rem;
    filter: drop-shadow(0 2px 3px rgba(0,0,0,.2));
}

.es-front-wrap .es-classroom-photo-button {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.es-front-wrap .es-classroom-photo-button:disabled {
    cursor: default;
}

.es-front-wrap .es-classroom-photo-button img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    object-position: center center;
    background: var(--es-front-classroom-photo-bg, var(--es-front-base-soft));
}

.es-front-wrap .es-classroom-student.is-scored .es-classroom-photo-button::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 3px solid color-mix(in srgb, #16a34a 55%, transparent);
    pointer-events: none;
}

.es-front-wrap .es-classroom-student-body {
    display: grid;
    gap: 8px;
    padding: 10px;
}

.es-front-wrap .es-classroom-student-name {
    min-height: 2.35em;
    color: var(--es-front-classroom-name-color, var(--es-front-base-text));
    font-size: var(--es-front-classroom-name-size, 14px);
    font-weight: 900;
    line-height: 1.18;
    text-align: center;
}

.es-front-wrap .es-classroom-points {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 5px;
}

.es-front-wrap .es-classroom-points strong {
    color: var(--es-front-classroom-score-color, #166534);
    font-size: var(--es-front-classroom-score-size, 28px);
    line-height: 1;
    font-weight: 1000;
}

.es-front-wrap .es-classroom-points span {
    color: var(--es-front-base-muted);
    font-size: .72rem;
    font-weight: 800;
}

.es-front-wrap .es-classroom-absent-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 5px 8px;
    border-radius: 6px;
    background: var(--es-front-classroom-absence-bg, var(--es-front-base-soft));
    color: var(--es-front-classroom-absence-text, var(--es-front-base-muted));
    font-size: var(--es-front-classroom-absence-size, 12px);
    cursor: pointer;
}

.es-front-wrap .es-classroom-score-pop {
    position: absolute;
    z-index: 8;
    top: 44%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.75rem;
    font-weight: 1000;
    pointer-events: none;
    animation: esClassroomPop .78s ease both;
}

.es-front-wrap .es-classroom-score-pop.is-add { color: #15803d; }
.es-front-wrap .es-classroom-score-pop.is-remove { color: #b91c1c; }

@keyframes esClassroomPop {
    0% { opacity: 0; transform: translate(-50%, -10%) scale(.75); }
    35% { opacity: 1; transform: translate(-50%, -55%) scale(1.15); }
    100% { opacity: 0; transform: translate(-50%, -110%) scale(.95); }
}

.es-front-wrap .es-classroom-launchbar {
    position: sticky;
    bottom: 8px;
    z-index: 15;
    padding: 14px 16px;
    box-shadow: 0 10px 30px rgba(15,23,42,.12);
}

.es-front-wrap .es-classroom-launch-options {
    display: grid;
    gap: 5px;
}

.es-front-wrap .es-classroom-launch-options label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--es-front-base-text);
    font-weight: 850;
    cursor: pointer;
}

.es-front-wrap .es-classroom-launch-options > span {
    color: var(--es-front-base-muted);
    font-size: .78rem;
}

.es-front-wrap .es-classroom-launch-button {
    min-width: 190px;
}

.es-classroom-projector-body {
    margin: 0;
    min-height: 100vh;
    background: #07111f;
    color: #f8fafc;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

@media (max-width: 1380px) {
    .es-front-wrap .es-classroom-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
    .es-front-wrap .es-classroom-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .es-front-wrap .es-classroom-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .es-front-wrap .es-classroom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1180px) {
    .es-front-wrap .es-classroom-config-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .es-front-wrap .es-classroom-options-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .es-front-wrap .es-classroom-config,
    .es-front-wrap .es-classroom-scoreboard {
        padding: 14px;
    }
    .es-front-wrap .es-classroom-config-head,
    .es-front-wrap .es-classroom-scoreboard-head,
    .es-front-wrap .es-classroom-config-actions,
    .es-front-wrap .es-classroom-launchbar {
        align-items: stretch;
        flex-direction: column;
    }
    .es-front-wrap .es-classroom-config-grid,
    .es-front-wrap .es-classroom-mode,
    .es-front-wrap .es-classroom-possible-mode {
        grid-template-columns: 1fr;
    }
    .es-front-wrap .es-classroom-podium {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .es-front-wrap .es-classroom-podium-place {
        grid-template-columns: minmax(52px, auto) minmax(58px, var(--es-front-classroom-podium-photo-width, 82px)) minmax(0, 1fr) auto;
        min-height: 92px;
    }
    .es-front-wrap .es-classroom-podium-place img,
    .es-front-wrap .es-classroom-podium-place.is-first img {
        width: min(72px, var(--es-front-classroom-podium-photo-width, 82px));
        height: min(78px, var(--es-front-classroom-podium-photo-height, 88px));
    }
    .es-front-wrap .es-classroom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .es-front-wrap .es-classroom-launch-button {
        width: 100%;
    }
}

/* ========================================================================== 
   EasySchool 0.12.2 — AIR UI
   Nova linguagem visual do frontend docente: clara, ampla e minimalista.
   Mantém a estrutura/funcionalidade existente e normaliza a apresentação.
   ========================================================================== */

.es-front-wrap {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    margin-inline: auto;
    font-family: "Segoe UI Variable", "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.es-front-wrap .es-teacher-dashboard {
    --es-air-canvas: var(--es-app-bg, #f6f8fc);
    --es-air-surface: var(--es-app-surface, #ffffff);
    --es-air-surface-soft: var(--es-app-surface-2, #f7f9fc);
    --es-air-text: var(--es-app-text, #10213d);
    --es-air-muted: var(--es-app-muted, #617089);
    --es-air-line: var(--es-app-line-strong, #e3e8f0);
    --es-air-line-soft: var(--es-app-line, #edf0f5);
    --es-air-accent: var(--es-app-accent, #b21616);
    --es-air-positive: var(--es-app-positive, #16965c);
    --es-air-danger: var(--es-app-danger, #d83d46);
    --es-air-radius-sm: 10px;
    --es-air-radius: max(12px, var(--es-app-radius, 14px));
    --es-air-radius-lg: calc(max(12px, var(--es-app-radius, 14px)) + 6px);
    --es-air-shadow: 0 12px 35px rgba(17, 31, 54, .055);
    --es-air-shadow-hover: 0 18px 42px rgba(17, 31, 54, .10);

    width: 100%;
    max-width: none;
    padding: 0 0 48px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--es-air-text);
}

.es-front-wrap .es-teacher-dashboard :where(h1,h2,h3,h4,h5,h6,strong,legend,label,th) { color: var(--es-air-text); }
.es-front-wrap .es-teacher-dashboard :where(p,small,.es-muted,.es-form-help,.es-field-help) { color: var(--es-air-muted); }
.es-front-wrap .es-teacher-dashboard a { color: inherit; }

/* --------------------------------------------------------------------------
   APP BAR
   -------------------------------------------------------------------------- */
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar {
    position: sticky;
    top: 10px;
    z-index: 90;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    min-height: 72px;
    margin: 0 0 34px;
    padding: 10px 14px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 18px;
    background: color-mix(in srgb, var(--es-air-surface) 94%, transparent);
    box-shadow: 0 8px 32px rgba(15, 31, 54, .075);
    backdrop-filter: blur(18px) saturate(1.15);
}

.es-front-wrap .es-app-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 190px;
    padding: 0 2px;
}
.es-front-wrap .es-app-brand-mark {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    flex: 0 0 46px;
    border: 0;
    border-radius: 13px;
    background: linear-gradient(145deg, color-mix(in srgb, var(--es-air-accent) 88%, #ff4e57 12%), var(--es-air-accent));
    color: #fff;
    box-shadow: 0 9px 22px color-mix(in srgb, var(--es-air-accent) 24%, transparent);
    font-size: .86rem;
    font-weight: 850;
    letter-spacing: -.03em;
}
.es-front-wrap .es-app-brand-copy { display: grid; gap: 1px; min-width: 0; }
.es-front-wrap .es-app-brand-copy strong { color: var(--es-air-text); font-size: 1rem; font-weight: 800; letter-spacing: -.035em; }
.es-front-wrap .es-app-brand-copy small { color: var(--es-air-muted); font-size: .64rem; font-weight: 750; letter-spacing: .085em; text-transform: uppercase; }

.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tabs {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    padding: 0;
    overflow-x: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    scrollbar-width: none;
}
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tabs::-webkit-scrollbar { display: none; }
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 auto;
    min-height: 42px;
    padding: 9px 12px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: color-mix(in srgb, var(--es-air-text) 82%, var(--es-air-muted));
    box-shadow: none;
    font-size: .82rem;
    font-weight: 720;
    letter-spacing: -.012em;
    white-space: nowrap;
    cursor: pointer;
    transition: background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.es-front-wrap .es-nav-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab:hover {
    background: var(--es-air-surface-soft);
    color: var(--es-air-text);
}
.es-front-wrap #es-tab-dashboard:checked ~ .es-teacher-topbar label[for="es-tab-dashboard"],
.es-front-wrap #es-tab-turmas:checked ~ .es-teacher-topbar label[for="es-tab-turmas"],
.es-front-wrap #es-tab-criterios:checked ~ .es-teacher-topbar label[for="es-tab-criterios"],
.es-front-wrap #es-tab-avaliacao:checked ~ .es-teacher-topbar label[for="es-tab-avaliacao"],
.es-front-wrap #es-tab-sala:checked ~ .es-teacher-topbar label[for="es-tab-sala"],
.es-front-wrap #es-tab-correcao:checked ~ .es-teacher-topbar label[for="es-tab-correcao"],
.es-front-wrap #es-tab-exames:checked ~ .es-teacher-topbar label[for="es-tab-exames"] {
    background: var(--es-air-accent);
    color: #fff;
    box-shadow: 0 8px 22px color-mix(in srgb, var(--es-air-accent) 25%, transparent);
}
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab.is-disabled { opacity: .38; pointer-events: none; }

.es-front-wrap .es-user-menu { position: relative; }
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-user-menu-trigger {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 176px;
    min-height: 48px;
    padding: 6px 9px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 14px;
    background: var(--es-air-surface);
    color: var(--es-air-text);
    box-shadow: none;
    cursor: pointer;
    list-style: none;
}
.es-front-wrap .es-user-menu-trigger::-webkit-details-marker { display: none; }
.es-front-wrap .es-user-avatar {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    flex: 0 0 34px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--es-air-accent) 10%, #fff);
    color: var(--es-air-accent);
    font-size: .72rem;
    font-weight: 850;
}
.es-front-wrap .es-user-copy { display: grid; min-width: 0; line-height: 1.05; }
.es-front-wrap .es-user-copy strong { overflow: hidden; color: var(--es-air-text); font-size: .78rem; font-weight: 780; text-overflow: ellipsis; white-space: nowrap; }
.es-front-wrap .es-user-copy small { margin-top: 3px; color: var(--es-air-muted); font-size: .64rem; }
.es-front-wrap .es-user-caret { margin-left: auto; color: var(--es-air-muted); }
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-user-menu-list {
    right: 0;
    left: auto;
    min-width: 205px;
    margin-top: 8px;
    padding: 7px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 14px;
    background: var(--es-air-surface);
    box-shadow: var(--es-air-shadow-hover);
}
.es-front-wrap .es-user-menu-list :where(a,button) { border-radius: 9px; color: var(--es-air-text); }
.es-front-wrap .es-user-menu-list :where(a,button):hover { background: var(--es-air-surface-soft); }

/* A identificação antiga deixa de ocupar um segundo cabeçalho. */
.es-front-wrap .es-teacher-dashboard > .es-teacher-dashboard-header { display: none !important; }

/* --------------------------------------------------------------------------
   CONTEÚDO / TITULOS
   -------------------------------------------------------------------------- */
.es-front-wrap .es-teacher-dashboard .es-tab-panel { margin-top: 0; }
.es-front-wrap .es-teacher-dashboard .es-section-title {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 18px;
    padding: 0 2px;
}
.es-front-wrap .es-teacher-dashboard .es-section-title > div > span,
.es-front-wrap .es-dashboard-eyebrow {
    display: inline-block;
    margin-bottom: 6px;
    color: var(--es-air-positive);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.es-front-wrap .es-teacher-dashboard .es-section-title h2 {
    margin: 0;
    color: var(--es-air-text);
    font-size: clamp(1.65rem, 2.15vw, 2.15rem);
    font-weight: 720;
    line-height: 1.05;
    letter-spacing: -.045em;
}
.es-front-wrap .es-teacher-dashboard .es-section-title p {
    max-width: 780px;
    margin: 8px 0 0;
    color: var(--es-air-muted);
    font-size: .9rem;
    line-height: 1.5;
}

/* --------------------------------------------------------------------------
   DASHBOARD
   -------------------------------------------------------------------------- */
.es-front-wrap .es-dashboard-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin: 0 0 22px;
    padding: 4px 2px 0;
}
.es-front-wrap .es-dashboard-hero h2 {
    margin: 0;
    color: var(--es-air-text);
    font-size: clamp(1.8rem, 2.4vw, 2.45rem);
    font-weight: 760;
    letter-spacing: -.055em;
}
.es-front-wrap .es-dashboard-hero p { margin: 7px 0 0; color: var(--es-air-muted); font-size: .92rem; }

.es-front-wrap .es-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}
.es-front-wrap .es-dashboard-stat {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 15px;
    min-height: 132px;
    padding: 20px;
    overflow: hidden;
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
    background: var(--es-air-surface);
    box-shadow: var(--es-air-shadow);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.es-front-wrap .es-dashboard-stat:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--es-air-accent) 16%, var(--es-air-line)); box-shadow: var(--es-air-shadow-hover); }
.es-front-wrap .es-dashboard-stat-icon {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 18px;
}
.es-front-wrap .es-dashboard-stat-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.es-front-wrap .es-dashboard-stat.is-red .es-dashboard-stat-icon { background: #fff0f2; color: #d52b41; }
.es-front-wrap .es-dashboard-stat.is-blue .es-dashboard-stat-icon { background: #edf4ff; color: #2868c7; }
.es-front-wrap .es-dashboard-stat.is-green .es-dashboard-stat-icon { background: #edf9f2; color: #14945a; }
.es-front-wrap .es-dashboard-stat.is-amber .es-dashboard-stat-icon { background: #fff7e8; color: #d48700; }
.es-front-wrap .es-dashboard-stat > div { display: grid; gap: 2px; }
.es-front-wrap .es-dashboard-stat > div strong { color: var(--es-air-text); font-size: 1.75rem; font-weight: 820; letter-spacing: -.05em; }
.es-front-wrap .es-dashboard-stat > div span { color: var(--es-air-text); font-size: .82rem; font-weight: 760; }
.es-front-wrap .es-dashboard-stat > div small { color: var(--es-air-muted); font-size: .7rem; }
.es-front-wrap .es-dashboard-stat-arrow {
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 9px;
    color: var(--es-air-muted);
    cursor: pointer;
}
.es-front-wrap .es-dashboard-stat-arrow:hover { color: var(--es-air-accent); border-color: color-mix(in srgb, var(--es-air-accent) 35%, var(--es-air-line)); }

.es-front-wrap .es-dashboard-columns {
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(340px,.95fr);
    gap: 20px;
    margin-bottom: 20px;
}
.es-front-wrap .es-dashboard-card {
    padding: 22px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
    background: var(--es-air-surface);
    box-shadow: var(--es-air-shadow);
}
.es-front-wrap .es-dashboard-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 17px; }
.es-front-wrap .es-dashboard-card-head span { display: block; margin-bottom: 3px; color: var(--es-air-muted); font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.es-front-wrap .es-dashboard-card-head h3 { margin: 0; color: var(--es-air-text); font-size: 1rem; font-weight: 790; letter-spacing: -.02em; }
.es-front-wrap .es-dashboard-card-head > label { color: var(--es-air-accent); font-size: .76rem; font-weight: 760; cursor: pointer; }

.es-front-wrap .es-dashboard-class-list,
.es-front-wrap .es-dashboard-actions { display: grid; gap: 10px; }
.es-front-wrap .es-dashboard-class-row {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 13px;
    padding: 13px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 14px;
    background: var(--es-air-surface-soft);
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.es-front-wrap .es-dashboard-class-row:hover { transform: translateX(2px); border-color: color-mix(in srgb, var(--es-air-accent) 18%, var(--es-air-line)); background: var(--es-air-surface); }
.es-front-wrap .es-dashboard-class-badge { display: grid; min-width: 54px; height: 54px; place-items: center; padding: 0 8px; border-radius: 16px; font-size: .82rem; font-weight: 850; text-align: center; }
.es-front-wrap .es-dashboard-class-row.is-red .es-dashboard-class-badge { background: #fff0f2; color: #c92438; }
.es-front-wrap .es-dashboard-class-row.is-blue .es-dashboard-class-badge { background: #edf4ff; color: #245fb2; }
.es-front-wrap .es-dashboard-class-row.is-green .es-dashboard-class-badge { background: #edf9f2; color: #128451; }
.es-front-wrap .es-dashboard-class-copy { display: grid; min-width: 0; gap: 2px; }
.es-front-wrap .es-dashboard-class-copy strong { font-size: .92rem; font-weight: 800; }
.es-front-wrap .es-dashboard-class-copy small { color: var(--es-air-muted); font-size: .76rem; }
.es-front-wrap .es-dashboard-class-copy em { color: var(--es-air-muted); font-size: .67rem; font-style: normal; }
.es-front-wrap .es-dashboard-class-arrow { color: var(--es-air-muted); font-size: 1.2rem; }

.es-front-wrap .es-dashboard-action {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 11px 13px;
    border: 1px solid transparent;
    border-radius: 14px;
    cursor: pointer;
    transition: transform .16s ease, filter .16s ease;
}
.es-front-wrap .es-dashboard-action:hover { transform: translateX(3px); filter: saturate(1.08); }
.es-front-wrap .es-dashboard-action > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; background: rgba(255,255,255,.72); font-size: 1.05rem; font-weight: 850; }
.es-front-wrap .es-dashboard-action > div { display: grid; gap: 2px; }
.es-front-wrap .es-dashboard-action strong { font-size: .82rem; font-weight: 800; }
.es-front-wrap .es-dashboard-action small { font-size: .7rem; }
.es-front-wrap .es-dashboard-action b { font-size: 1.25rem; font-weight: 500; }
.es-front-wrap .es-dashboard-action.is-red { background: #fff2f4; color: #b92335; }
.es-front-wrap .es-dashboard-action.is-blue { background: #f0f5ff; color: #245fae; }
.es-front-wrap .es-dashboard-action.is-green { background: #eff9f3; color: #148451; }
.es-front-wrap .es-dashboard-action.is-amber { background: #fff8e9; color: #b87400; }
.es-front-wrap .es-dashboard-action.is-disabled { opacity: .4; pointer-events: none; }

.es-front-wrap .es-dashboard-tip {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 13px;
    padding: 15px 18px;
    border: 1px solid #dce8fa;
    border-radius: 16px;
    background: linear-gradient(90deg, #f2f7ff, #f8fbff);
}
.es-front-wrap .es-dashboard-tip-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; background: #e5efff; color: #356fc3; }
.es-front-wrap .es-dashboard-tip > div { display: grid; gap: 1px; }
.es-front-wrap .es-dashboard-tip strong { color: #23589f; font-size: .78rem; }
.es-front-wrap .es-dashboard-tip span { color: #607089; font-size: .72rem; }
.es-front-wrap .es-dashboard-tip-link { min-height: 38px; padding: 9px 12px; border: 1px solid #d6e2f5; border-radius: 10px; background: #fff; color: #3569ad; font-size: .72rem; font-weight: 760; cursor: pointer; }

/* --------------------------------------------------------------------------
   BASE DE COMPONENTES
   -------------------------------------------------------------------------- */
.es-front-wrap .es-teacher-dashboard :where(
    .es-card,.es-stat-card,.es-front-table-wrap,.es-criteria-assignment,
    .es-evaluation-toolbar,.es-evaluation-students-panel,.es-evaluation-side-panel,
    .es-evaluation-history,.es-classroom-config,.es-classroom-scoreboard,
    .es-classroom-launchbar,.es-correction-assignment-control,.es-correction-manager,
    .es-correction-builder,.es-correction-workspace,.es-exams-card,.es-exams-feature-card,
    .es-exams-pipeline-card,.es-question-type-library,.es-ai-question-generator
) {
    border-color: var(--es-air-line-soft);
    background: var(--es-air-surface);
    color: var(--es-air-text);
    box-shadow: var(--es-air-shadow);
}

.es-front-wrap .es-teacher-dashboard :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
    border: 1px solid var(--es-air-line);
    border-radius: 11px;
    background: var(--es-air-surface-soft);
    color: var(--es-air-text);
    box-shadow: none;
    outline: none;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.es-front-wrap .es-teacher-dashboard :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus {
    border-color: color-mix(in srgb, var(--es-air-accent) 45%, var(--es-air-line));
    background: var(--es-air-surface);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--es-air-accent) 10%, transparent);
}
.es-front-wrap .es-teacher-dashboard :where(input,select,textarea)::placeholder { color: color-mix(in srgb, var(--es-air-muted) 72%, transparent); }

.es-front-wrap .es-teacher-dashboard :where(.es-button,.es-button-primary,.es-evaluation-submit,.es-classroom-launch-button) {
    border-radius: 11px;
    font-weight: 780;
    box-shadow: none;
}
.es-front-wrap .es-teacher-dashboard :where(.es-button-primary,.es-evaluation-submit,.es-classroom-launch-button) {
    border-color: var(--es-air-accent);
    background: var(--es-air-accent);
    color: #fff;
}
.es-front-wrap .es-teacher-dashboard :where(.es-button-secondary,.es-evaluation-report-button) {
    border: 1px solid var(--es-air-line);
    background: var(--es-air-surface);
    color: var(--es-air-text);
}

/* --------------------------------------------------------------------------
   TURMAS / TABELAS
   -------------------------------------------------------------------------- */
.es-front-wrap .es-teacher-dashboard .es-front-table-wrap {
    overflow: hidden;
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
}
.es-front-wrap .es-teacher-dashboard .es-front-table { border-collapse: separate; border-spacing: 0; background: var(--es-air-surface); color: var(--es-air-text); }
.es-front-wrap .es-teacher-dashboard .es-front-table thead th {
    padding: 14px 16px;
    border-bottom: 1px solid var(--es-air-line-soft);
    background: #fafbfd;
    color: #687890;
    font-size: .68rem;
    font-weight: 820;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.es-front-wrap .es-teacher-dashboard .es-front-table tbody tr { background: var(--es-air-surface); }
.es-front-wrap .es-teacher-dashboard .es-front-table tbody tr:nth-child(even) { background: #fbfcfe; }
.es-front-wrap .es-teacher-dashboard .es-front-table tbody tr:hover { background: color-mix(in srgb, var(--es-air-accent) 3.5%, #fff); }
.es-front-wrap .es-teacher-dashboard .es-front-table tbody td { padding: 15px 16px; border-bottom: 1px solid var(--es-air-line-soft); color: var(--es-air-text); }

/* --------------------------------------------------------------------------
   CRITÉRIOS
   -------------------------------------------------------------------------- */
.es-front-wrap .es-criteria-list { gap: 16px; }
.es-front-wrap .es-criteria-assignment {
    overflow: hidden;
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
}
.es-front-wrap .es-criteria-assignment > summary {
    min-height: 62px;
    padding: 14px 16px;
    border: 0;
    background: var(--es-air-surface);
    color: var(--es-air-text);
}
.es-front-wrap .es-criteria-assignment[open] > summary { border-bottom: 1px solid var(--es-air-line-soft); }
.es-front-wrap .es-criteria-form { padding: 16px; background: var(--es-air-surface); }
.es-front-wrap .es-criteria-row,
.es-front-wrap .es-criteria-copy-panel {
    border: 1px solid var(--es-air-line-soft);
    border-radius: 13px;
    background: var(--es-air-surface-soft);
}
.es-front-wrap .es-criteria-total { border-radius: 9px; }

/* --------------------------------------------------------------------------
   AVALIAÇÃO
   -------------------------------------------------------------------------- */
.es-front-wrap .es-evaluation-shell { display: grid; gap: 16px; }
.es-front-wrap .es-evaluation-toolbar {
    display: grid;
    grid-template-columns: minmax(320px,.75fr) minmax(0,1.8fr);
    gap: 18px;
    padding: 16px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
    box-shadow: var(--es-air-shadow);
}
.es-front-wrap .es-evaluation-control > label > span { margin-bottom: 8px; color: var(--es-air-muted); font-size: .69rem; font-weight: 820; letter-spacing: .06em; text-transform: uppercase; }
.es-front-wrap .es-evaluation-rankings { gap: 10px; }
.es-front-wrap .es-evaluation-ranking-group {
    padding: 9px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 13px;
    background: var(--es-air-surface-soft);
}
.es-front-wrap .es-evaluation-ranking-group > span { color: var(--es-air-muted); font-size: .67rem; font-weight: 760; }
.es-front-wrap .es-evaluation-ranking-card {
    border: 1px solid var(--es-air-line-soft);
    border-radius: 10px;
    background: var(--es-air-surface);
    color: var(--es-air-text);
}
.es-front-wrap .es-evaluation-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(330px,.72fr); gap: 16px; }
.es-front-wrap .es-evaluation-students-panel,
.es-front-wrap .es-evaluation-side-panel {
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
    box-shadow: var(--es-air-shadow);
}
.es-front-wrap .es-evaluation-students-panel { padding: 16px; }
.es-front-wrap .es-evaluation-side-panel { position: sticky; top: 102px; align-self: start; padding: 14px; }
.es-front-wrap .es-evaluation-panel-head { padding-bottom: 13px; border-bottom: 1px solid var(--es-air-line-soft); }
.es-front-wrap .es-evaluation-student-grid { gap: 10px; }
.es-front-wrap .es-evaluation-student-item { overflow: hidden; border: 1px solid var(--es-air-line-soft); border-radius: 14px; background: var(--es-air-surface); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.es-front-wrap .es-evaluation-student-item:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--es-air-accent) 20%, var(--es-air-line)); box-shadow: 0 10px 22px rgba(17,31,54,.075); }
.es-front-wrap .es-evaluation-student-card { overflow: hidden; border: 0; border-radius: 0; background: var(--es-air-surface); color: var(--es-air-text); box-shadow: none; }
.es-front-wrap .es-evaluation-student-card img { background: var(--es-app-photo-bg, #eef1f5); object-fit: contain; }
.es-front-wrap .es-evaluation-student-grade { border: 0; border-top: 1px solid var(--es-air-line-soft); background: #fbfcfe; color: var(--es-air-positive); font-weight: 800; }
.es-front-wrap .es-evaluation-student-card[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--es-air-accent); }
.es-front-wrap .es-evaluation-launch,
.es-front-wrap .es-evaluation-criteria,
.es-front-wrap .es-evaluation-entry-form { border-color: var(--es-air-line-soft); background: transparent; }
.es-front-wrap .es-evaluation-launch-option,
.es-front-wrap .es-evaluation-criterion { border: 1px solid var(--es-air-line-soft); border-radius: 11px; background: var(--es-air-surface-soft); color: var(--es-air-text); }
.es-front-wrap .es-evaluation-launch-option:has(input:checked),
.es-front-wrap .es-evaluation-criterion:has(input:checked) { border-color: color-mix(in srgb, var(--es-air-accent) 45%, var(--es-air-line)); background: color-mix(in srgb, var(--es-air-accent) 5%, #fff); }

/* --------------------------------------------------------------------------
   SALA DE AULA NORMAL
   -------------------------------------------------------------------------- */
.es-front-wrap .es-classroom-titlebar { align-items: center; }
.es-front-wrap .es-classroom-shell { display: grid; gap: 16px; }
.es-front-wrap .es-classroom-config,
.es-front-wrap .es-classroom-scoreboard,
.es-front-wrap .es-classroom-launchbar {
    border: 1px solid var(--es-air-line-soft);
    border-radius: var(--es-air-radius-lg);
    background: var(--es-air-surface);
    box-shadow: var(--es-air-shadow);
}
.es-front-wrap .es-classroom-config,
.es-front-wrap .es-classroom-scoreboard { padding: 18px; }
.es-front-wrap .es-classroom-config-head,
.es-front-wrap .es-classroom-scoreboard-head { border-color: var(--es-air-line-soft); }
.es-front-wrap .es-classroom-field > span,
.es-front-wrap .es-classroom-mode legend,
.es-front-wrap .es-classroom-possible-mode legend { color: var(--es-air-muted); }
.es-front-wrap .es-classroom-mode,
.es-front-wrap .es-classroom-possible-mode { border: 1px solid var(--es-air-line-soft); border-radius: 14px; background: var(--es-air-surface-soft); }
.es-front-wrap .es-classroom-mode label,
.es-front-wrap .es-classroom-possible-mode label { border-color: var(--es-air-line-soft); background: var(--es-air-surface); color: var(--es-air-text); }
.es-front-wrap .es-classroom-mode label:has(input:checked),
.es-front-wrap .es-classroom-possible-mode label:has(input:checked) { border-color: color-mix(in srgb, var(--es-air-positive) 45%, var(--es-air-line)); background: color-mix(in srgb, var(--es-air-positive) 7%, #fff); }
.es-front-wrap .es-classroom-live-stats > div { border: 1px solid var(--es-air-line-soft); border-radius: 12px; background: var(--es-air-surface-soft); }
.es-front-wrap .es-classroom-live-stats strong,
.es-front-wrap .es-classroom-points strong { color: var(--es-air-positive); }
.es-front-wrap .es-classroom-podium-place { border: 1px solid var(--es-air-line-soft); border-radius: 14px; background: var(--es-air-surface); box-shadow: none; }
.es-front-wrap .es-classroom-student { overflow: hidden; border: 1px solid var(--es-air-line-soft); border-radius: 14px; background: var(--es-air-surface); color: var(--es-air-text); box-shadow: none; }
.es-front-wrap .es-classroom-photo-button { background: var(--es-app-photo-bg, #eef1f5); }
.es-front-wrap .es-classroom-student-body { background: var(--es-air-surface); }
.es-front-wrap .es-classroom-student-name { color: var(--es-air-text); }
.es-front-wrap .es-classroom-absent-toggle { border-color: var(--es-air-line-soft); background: var(--es-air-surface-soft); color: var(--es-air-muted); }
.es-front-wrap .es-classroom-launchbar { position: sticky; bottom: 10px; z-index: 30; padding: 12px 14px; background: color-mix(in srgb, var(--es-air-surface) 94%, transparent); backdrop-filter: blur(16px); }

/* --------------------------------------------------------------------------
   TABELAS DE CORREÇÃO
   -------------------------------------------------------------------------- */
.es-front-wrap .es-correction-shell { display: grid; gap: 16px; }
.es-front-wrap .es-correction-assignment-control,
.es-front-wrap .es-correction-manager,
.es-front-wrap .es-correction-builder,
.es-front-wrap .es-correction-workspace,
.es-front-wrap .es-correction-score-main,
.es-front-wrap .es-correction-score-aside { color: var(--es-air-text); }
.es-front-wrap .es-correction-table-selector,
.es-front-wrap .es-correction-title-field,
.es-front-wrap .es-correction-items-head,
.es-front-wrap .es-correction-builder-footer,
.es-front-wrap .es-correction-copy-panel,
.es-front-wrap .es-correction-question-row,
.es-front-wrap .es-correction-summary-total,
.es-front-wrap .es-correction-summary-criteria,
.es-front-wrap .es-correction-item-list {
    border-color: var(--es-air-line-soft);
    background: var(--es-air-surface-soft);
    color: var(--es-air-text);
}
.es-front-wrap .es-correction-manager,
.es-front-wrap .es-correction-builder,
.es-front-wrap .es-correction-workspace { border: 1px solid var(--es-air-line-soft); border-radius: var(--es-air-radius-lg); background: var(--es-air-surface); box-shadow: var(--es-air-shadow); }

/* --------------------------------------------------------------------------
   EXAMES
   -------------------------------------------------------------------------- */
.es-front-wrap .es-exams-shell { display: grid; gap: 16px; }
.es-front-wrap .es-exams-section-nav {
    display: flex;
    flex-wrap: nowrap;
    gap: 24px;
    padding: 0 2px;
    overflow-x: auto;
    border: 0;
    border-bottom: 1px solid var(--es-air-line-soft);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    scrollbar-width: none;
}
.es-front-wrap .es-exams-section-nav::-webkit-scrollbar { display: none; }
.es-front-wrap .es-exams-section-link {
    position: relative;
    flex: 0 0 auto;
    min-height: 46px;
    padding: 13px 0 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--es-air-muted);
    text-decoration: none;
    font-size: .8rem;
    font-weight: 760;
}
.es-front-wrap .es-exams-section-link::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; border-radius: 2px; background: transparent; }
.es-front-wrap .es-exams-section-link:hover { background: transparent; color: var(--es-air-text); }
.es-front-wrap .es-exams-section-link.is-active { background: transparent; color: var(--es-air-accent); box-shadow: none; }
.es-front-wrap .es-exams-section-link.is-active::after { background: var(--es-air-accent); }
.es-front-wrap .es-exams-kpis { gap: 14px; }
.es-front-wrap .es-exams-kpis article,
.es-front-wrap .es-exams-feature-card,
.es-front-wrap .es-exams-card,
.es-front-wrap .es-exams-pipeline-card { border: 1px solid var(--es-air-line-soft); border-radius: var(--es-air-radius-lg); background: var(--es-air-surface); box-shadow: var(--es-air-shadow); }
.es-front-wrap .es-teacher-dashboard :where(
    .es-exams-list-row,.es-exams-pipeline,.es-exams-empty,.es-exams-form,
    .es-exams-question-card,.es-exams-question-row,.es-ai-lab-rubric-row,
    .es-ai-generator-settings,.es-ai-generator-auto,.es-ai-generator-type-group,
    .es-ai-generator-options .es-checkbox-field,.es-ai-generated-details,
    .es-ai-generated-answer-block,.es-ai-generated-rubrics,.es-ai-generated-penalties,
    .es-ai-generated-manual,.es-question-type-library > summary,.es-ai-question-generator > summary
) { border-color: var(--es-air-line-soft); background: var(--es-air-surface); color: var(--es-air-text); }

/* --------------------------------------------------------------------------
   FEEDBACK / VAZIOS
   -------------------------------------------------------------------------- */
.es-front-wrap .es-teacher-dashboard :where(.es-empty-state,.es-evaluation-empty,.es-correction-score-empty,.es-exams-empty) {
    border: 1px dashed var(--es-air-line);
    border-radius: 13px;
    background: var(--es-air-surface-soft);
    color: var(--es-air-muted);
}

/* --------------------------------------------------------------------------
   TEMA ESCURO OPCIONAL: mantém a mesma composição Air, apenas troca tokens.
   -------------------------------------------------------------------------- */
.es-front-wrap .es-teacher-dashboard[style*="color-scheme: dark"] .es-dashboard-stat.is-red .es-dashboard-stat-icon,
.es-front-wrap .es-teacher-dashboard[style*="color-scheme: dark"] .es-dashboard-action.is-red { background: color-mix(in srgb, #d52b41 18%, var(--es-air-surface)); }

/* --------------------------------------------------------------------------
   RESPONSIVO
   -------------------------------------------------------------------------- */
@media (max-width: 1260px) {
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar { gap: 12px; }
    .es-front-wrap .es-app-brand { min-width: 150px; }
    .es-front-wrap .es-app-brand-copy small { display: none; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab { padding-inline: 9px; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab span { display: none; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab { width: 42px; }
    .es-front-wrap .es-nav-icon { width: 19px; height: 19px; flex-basis: 19px; }
}

@media (max-width: 1020px) {
    .es-front-wrap .es-dashboard-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .es-front-wrap .es-dashboard-columns { grid-template-columns: 1fr; }
    .es-front-wrap .es-evaluation-toolbar,
    .es-front-wrap .es-evaluation-layout { grid-template-columns: 1fr; }
    .es-front-wrap .es-evaluation-side-panel { position: static; }
}

@media (max-width: 760px) {
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar {
        grid-template-columns: auto auto;
        gap: 8px;
        top: 4px;
        padding: 8px;
        border-radius: 14px;
    }
    .es-front-wrap .es-app-brand { min-width: 0; }
    .es-front-wrap .es-app-brand-copy { display: none; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tabs { grid-column: 1 / -1; order: 3; justify-content: flex-start; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab span { display: inline; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab { width: auto; }
    .es-front-wrap .es-user-copy { display: none; }
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-user-menu-trigger { min-width: 52px; }
    .es-front-wrap .es-dashboard-stats { grid-template-columns: 1fr; }
    .es-front-wrap .es-dashboard-stat { min-height: 110px; }
    .es-front-wrap .es-dashboard-tip { grid-template-columns: auto 1fr; }
    .es-front-wrap .es-dashboard-tip-link { grid-column: 1 / -1; text-align: center; }
}



/* ========================================================================== 
   EasySchool v0.12.3 — Teacher top navigation refinement
   Goal: integrate the menu with the rest of the light layout, remove the
   floating/overlay feel, keep the Exams submenu visible and remove the hated
   red top line from the teacher workspace.
   ========================================================================== */
.es-front-wrap .es-teacher-dashboard::before {
    display: none;
}

.es-front-wrap .es-teacher-dashboard {
    gap: 22px;
}

.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar {
    position: relative;
    top: auto;
    z-index: 10;
    gap: 18px;
    min-height: 0;
    margin: 0 0 10px;
    padding: 2px 0 18px;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--es-air-line-soft);
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.es-front-wrap .es-app-brand {
    min-width: 205px;
}

.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tabs {
    justify-content: flex-start;
    gap: 7px;
    padding: 6px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 18px;
    background: var(--es-air-surface);
    box-shadow: 0 8px 20px rgba(17, 31, 54, .045);
}

.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab {
    min-height: 40px;
    padding: 9px 13px;
    border-radius: 12px;
    color: color-mix(in srgb, var(--es-air-text) 80%, var(--es-air-muted));
}

.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tab:hover {
    background: color-mix(in srgb, var(--es-air-accent) 4%, #ffffff);
    color: var(--es-air-text);
}

.es-front-wrap #es-tab-dashboard:checked ~ .es-teacher-topbar label[for="es-tab-dashboard"],
.es-front-wrap #es-tab-turmas:checked ~ .es-teacher-topbar label[for="es-tab-turmas"],
.es-front-wrap #es-tab-criterios:checked ~ .es-teacher-topbar label[for="es-tab-criterios"],
.es-front-wrap #es-tab-avaliacao:checked ~ .es-teacher-topbar label[for="es-tab-avaliacao"],
.es-front-wrap #es-tab-sala:checked ~ .es-teacher-topbar label[for="es-tab-sala"],
.es-front-wrap #es-tab-correcao:checked ~ .es-teacher-topbar label[for="es-tab-correcao"],
.es-front-wrap #es-tab-exames:checked ~ .es-teacher-topbar label[for="es-tab-exames"] {
    box-shadow: 0 10px 24px color-mix(in srgb, var(--es-air-accent) 16%, transparent);
}

.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-user-menu-trigger {
    min-width: 170px;
    min-height: 46px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 16px;
    box-shadow: 0 8px 18px rgba(17, 31, 54, .035);
}

.es-front-wrap .es-teacher-dashboard .es-section-title {
    margin-top: 2px;
}

.es-front-wrap .es-exams-shell {
    gap: 18px;
}

.es-front-wrap .es-exams-section-nav {
    gap: 10px;
    padding: 6px;
    border: 1px solid var(--es-air-line-soft);
    border-radius: 18px;
    background: var(--es-air-surface);
    box-shadow: 0 8px 20px rgba(17, 31, 54, .04);
}

.es-front-wrap .es-exams-section-link {
    min-height: 40px;
    padding: 10px 14px;
    border-radius: 12px;
    font-size: .82rem;
}
.es-front-wrap .es-exams-section-link::after {
    display: none;
}
.es-front-wrap .es-exams-section-link:hover {
    background: color-mix(in srgb, var(--es-air-accent) 4%, #ffffff);
}
.es-front-wrap .es-exams-section-link.is-active {
    background: color-mix(in srgb, var(--es-air-accent) 10%, #ffffff);
    color: var(--es-air-accent);
}

@media (max-width: 1260px) {
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar {
        gap: 14px;
        padding-bottom: 14px;
    }

    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tabs {
        justify-content: flex-start;
    }
}

@media (max-width: 1020px) {
    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar {
        padding-bottom: 12px;
    }

    .es-front-wrap .es-teacher-dashboard > .es-teacher-topbar .es-teacher-tabs {
        grid-column: 1 / -1;
        order: 3;
        width: 100%;
    }

    .es-front-wrap .es-user-menu {
        justify-self: end;
    }
}


/* ========================================================================== 
   EasySchool v0.12.4 — Sala de Aula contrast tune
   Improves visibility of empty-state / helper text in the light layout.
   ========================================================================== */
.es-front-wrap .es-classroom-scoreboard,
.es-front-wrap .es-classroom-config,
.es-front-wrap .es-classroom-launchbar {
    color: var(--es-air-text);
}

.es-front-wrap .es-classroom-config-head span,
.es-front-wrap .es-classroom-scoreboard-head > div:first-child > span {
    color: color-mix(in srgb, var(--es-air-text) 68%, #ffffff);
}

.es-front-wrap .es-classroom-config-hint,
.es-front-wrap .es-classroom-scoreboard .es-classroom-active-mode,
.es-front-wrap .es-classroom-live-stats span {
    color: var(--es-air-muted);
}

.es-front-wrap .es-classroom-scoreboard h3,
.es-front-wrap .es-classroom-config h3,
.es-front-wrap .es-classroom-live-stats strong,
.es-front-wrap .es-classroom-podium-place strong,
.es-front-wrap .es-classroom-student-name {
    color: var(--es-air-text);
}

.es-front-wrap .es-classroom-podium.is-waiting {
    justify-content: center;
}

.es-front-wrap .es-classroom-podium-waiting {
    width: 100%;
    max-width: 760px;
    gap: 8px;
    padding: 18px 24px 22px;
    color: var(--es-air-muted);
}

.es-front-wrap .es-classroom-podium-waiting strong {
    color: var(--es-air-text);
    font-size: 1.18rem;
    font-weight: 820;
    letter-spacing: -.02em;
}

.es-front-wrap .es-classroom-podium-waiting span {
    color: color-mix(in srgb, var(--es-air-text) 70%, #ffffff);
    font-size: .96rem;
    font-weight: 560;
}

.es-front-wrap .es-classroom-leader-announcement {
    color: #7a4b0c;
}

/* ========================================================================== 
   EasySchool v0.12.7 — Dashboard: atividade de lançamentos
   ========================================================================== */
.es-front-wrap .es-dashboard-activity-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin: 2px 2px 12px;
}
.es-front-wrap .es-dashboard-activity-head > div {
    display: grid;
    gap: 1px;
}
.es-front-wrap .es-dashboard-activity-head span {
    color: var(--es-air-positive);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.es-front-wrap .es-dashboard-activity-head strong {
    color: var(--es-air-text);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -.02em;
}
.es-front-wrap .es-dashboard-activity-head small {
    color: var(--es-air-muted);
    font-size: .72rem;
}
.es-front-wrap .es-dashboard-launch-stats {
    margin-bottom: 22px;
}
.es-front-wrap .es-dashboard-launch-stats .es-dashboard-stat {
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 118px;
    padding-block: 18px;
}
.es-front-wrap .es-dashboard-launch-stats .es-dashboard-stat > div strong {
    white-space: nowrap;
}
.es-front-wrap .es-dashboard-launch-stats .es-dashboard-stat.is-text-value > div strong {
    overflow: hidden;
    font-size: clamp(1.05rem, 1.45vw, 1.5rem);
    line-height: 1.12;
    text-overflow: ellipsis;
}
.es-front-wrap .es-dashboard-launch-stats .es-dashboard-stat.is-text-value > div small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 720px) {
    .es-front-wrap .es-dashboard-activity-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }
}

/* ========================================================================== 
   EasySchool 0.13.0 — Mensagens internas
   ========================================================================== */
.es-front-wrap #es-tab-mensagens:checked ~ .es-tab-mensagens-panel{display:block}
.es-front-wrap .es-message-nav-button{position:relative;display:grid;width:46px;height:46px;place-items:center;flex:0 0 46px;border:1px solid var(--es-air-line-soft);border-radius:15px;background:var(--es-air-surface);color:var(--es-air-text);text-decoration:none;box-shadow:0 8px 18px rgba(17,31,54,.035);transition:.16s}
.es-front-wrap .es-message-nav-button:hover,.es-front-wrap .es-message-nav-button.is-active{border-color:color-mix(in srgb,var(--es-air-accent) 30%,var(--es-air-line-soft));background:color-mix(in srgb,var(--es-air-accent) 5%,#fff);color:var(--es-air-accent);transform:translateY(-1px)}
.es-front-wrap .es-message-nav-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.es-front-wrap .es-message-nav-badge{position:absolute;top:-6px;right:-7px;display:grid;min-width:21px;height:21px;padding:0 5px;place-items:center;border:2px solid #fff;border-radius:999px;background:#d92d20;color:#fff;font-size:.65rem;font-weight:900;line-height:1}
.es-front-wrap .es-messages-shell{display:grid;gap:20px}
.es-front-wrap .es-messages-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:4px 2px 0}
.es-front-wrap .es-messages-header>div>span{display:block;margin-bottom:6px;color:var(--es-air-positive);font-size:.69rem;font-weight:850;letter-spacing:.13em}
.es-front-wrap .es-messages-header h2{margin:0;color:var(--es-air-text);font-size:clamp(1.8rem,2.4vw,2.4rem);font-weight:740;letter-spacing:-.05em}
.es-front-wrap .es-messages-header p{margin:7px 0 0;color:var(--es-air-muted)}
.es-front-wrap .es-message-compose{position:relative;z-index:15}.es-front-wrap .es-message-compose>summary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border:0;border-radius:12px;background:var(--es-air-accent);color:#fff;font-size:.82rem;font-weight:800;list-style:none;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--es-air-accent) 20%,transparent)}
.es-front-wrap .es-message-compose>summary::-webkit-details-marker{display:none}
.es-front-wrap .es-message-compose-card{position:absolute;top:54px;right:0;width:min(580px,calc(100vw - 50px));display:grid;gap:13px;padding:20px;border:1px solid var(--es-air-line-soft);border-radius:18px;background:#fff;box-shadow:0 26px 70px rgba(15,23,42,.18)}
.es-front-wrap .es-message-compose-head strong,.es-front-wrap .es-message-compose-head span{display:block}.es-front-wrap .es-message-compose-head strong{font-size:1.1rem}.es-front-wrap .es-message-compose-head span{margin-top:3px;color:var(--es-air-muted);font-size:.8rem}
.es-front-wrap .es-message-compose-card label{display:grid;gap:5px;color:var(--es-air-text);font-size:.77rem;font-weight:750}.es-front-wrap .es-message-compose-card label>span{color:var(--es-air-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.es-front-wrap .es-message-compose-card :where(input,select,textarea){width:100%;border:1px solid var(--es-air-line);border-radius:11px;background:#fbfcfe;color:var(--es-air-text);padding:10px 11px;outline:0}.es-front-wrap .es-message-compose-card :where(input,select,textarea):focus{border-color:color-mix(in srgb,var(--es-air-accent) 55%,var(--es-air-line));box-shadow:0 0 0 3px color-mix(in srgb,var(--es-air-accent) 10%,transparent)}.es-front-wrap .es-message-compose-card textarea{resize:vertical}.es-front-wrap .es-message-compose-card label small{color:var(--es-air-muted);font-weight:500}.es-front-wrap .es-message-compose-actions{display:flex;justify-content:flex-end}.es-front-wrap .es-message-compose-actions button,.es-front-wrap .es-message-reply button{min-height:40px;padding:0 16px;border:0;border-radius:11px;background:var(--es-air-accent);color:#fff;font-weight:800}
.es-front-wrap .es-messages-workspace{display:grid;grid-template-columns:190px minmax(280px,390px) minmax(0,1fr);min-height:600px;overflow:hidden;border:1px solid var(--es-air-line-soft);border-radius:20px;background:#fff;box-shadow:var(--es-air-shadow)}
.es-front-wrap .es-message-folders{padding:16px;border-right:1px solid var(--es-air-line-soft);background:#fbfcfe}.es-front-wrap .es-message-folders>a{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:9px;min-height:44px;margin-bottom:5px;padding:0 11px;border-radius:11px;color:var(--es-air-muted);text-decoration:none;font-size:.82rem;font-weight:750}.es-front-wrap .es-message-folders>a:hover,.es-front-wrap .es-message-folders>a.is-active{background:color-mix(in srgb,var(--es-air-accent) 6%,#fff);color:var(--es-air-accent)}.es-front-wrap .es-message-folders svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.es-front-wrap .es-message-folders>a b{display:grid;min-width:22px;height:22px;padding:0 5px;place-items:center;border-radius:999px;background:#d92d20;color:#fff;font-size:.65rem}
.es-front-wrap .es-message-profile-chip{display:flex;flex-wrap:wrap;gap:5px;margin-top:22px;padding-top:16px;border-top:1px solid var(--es-air-line-soft)}.es-front-wrap .es-message-profile-chip small{width:100%;margin-bottom:3px;color:var(--es-air-muted);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.es-front-wrap .es-message-profile-chip span{padding:5px 7px;border:1px solid var(--es-air-line-soft);border-radius:8px;background:#fff;color:#475569;font-size:.68rem;font-weight:700}
.es-front-wrap .es-message-list{min-width:0;border-right:1px solid var(--es-air-line-soft);background:#fff}.es-front-wrap .es-message-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;height:58px;padding:0 15px;border-bottom:1px solid var(--es-air-line-soft)}.es-front-wrap .es-message-list-head strong{font-size:.9rem}.es-front-wrap .es-message-list-head span{color:var(--es-air-muted);font-size:.72rem}.es-front-wrap .es-message-list-form{margin:0}.es-front-wrap .es-message-list-item{position:relative;width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:start;padding:13px 14px;border:0;border-bottom:1px solid var(--es-air-line-soft);background:#fff;color:var(--es-air-text);text-align:left;cursor:pointer}.es-front-wrap .es-message-list-item:hover,.es-front-wrap .es-message-list-item.is-selected{background:#f8fafc}.es-front-wrap .es-message-list-item.is-unread{background:color-mix(in srgb,var(--es-air-accent) 3.5%,#fff)}.es-front-wrap .es-message-sender-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:#eef2f7;color:#334155;font-size:.76rem;font-weight:850}.es-front-wrap .es-message-list-item.is-unread .es-message-sender-avatar{background:color-mix(in srgb,var(--es-air-accent) 10%,#fff);color:var(--es-air-accent)}.es-front-wrap .es-message-list-copy{display:grid;min-width:0;gap:2px}.es-front-wrap .es-message-list-copy strong,.es-front-wrap .es-message-list-copy em,.es-front-wrap .es-message-list-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.es-front-wrap .es-message-list-copy strong{font-size:.8rem}.es-front-wrap .es-message-list-copy em{color:#475569;font-size:.72rem;font-style:normal}.es-front-wrap .es-message-list-copy small{color:var(--es-air-muted);font-size:.7rem}.es-front-wrap .es-message-list-item time{color:var(--es-air-muted);font-size:.63rem}.es-front-wrap .es-message-list-item>i{position:absolute;right:12px;bottom:12px;width:7px;height:7px;border-radius:50%;background:#d92d20}.es-front-wrap .es-message-empty{display:grid;place-items:center;gap:4px;padding:54px 20px;color:var(--es-air-muted);text-align:center}.es-front-wrap .es-message-empty strong{color:var(--es-air-text)}
.es-front-wrap .es-message-reader{min-width:0;display:flex;flex-direction:column;background:#fcfdff}.es-front-wrap .es-message-reader-empty{display:grid;place-items:center;align-content:center;height:100%;padding:40px;color:var(--es-air-muted);text-align:center}.es-front-wrap .es-message-reader-empty>span{display:grid;width:58px;height:58px;place-items:center;margin-bottom:12px;border-radius:18px;background:#eef3f9;font-size:1.5rem}.es-front-wrap .es-message-reader-empty strong{color:var(--es-air-text);font-size:1rem}.es-front-wrap .es-message-reader-empty p{margin:5px 0 0}.es-front-wrap .es-message-reader-head{padding:18px 20px;border-bottom:1px solid var(--es-air-line-soft);background:#fff}.es-front-wrap .es-message-reader-head small{color:var(--es-air-muted);font-size:.65rem;font-weight:850;letter-spacing:.1em}.es-front-wrap .es-message-reader-head h3{margin:3px 0 0;font-size:1.15rem;letter-spacing:-.02em}.es-front-wrap .es-message-thread{display:flex;flex-direction:column;gap:12px;flex:1;padding:20px;overflow:auto}.es-front-wrap .es-message-bubble{align-self:flex-start;width:min(82%,700px);padding:12px 14px;border:1px solid var(--es-air-line-soft);border-radius:14px 14px 14px 4px;background:#fff}.es-front-wrap .es-message-bubble.is-mine{align-self:flex-end;border-color:color-mix(in srgb,var(--es-air-accent) 14%,var(--es-air-line-soft));border-radius:14px 14px 4px 14px;background:color-mix(in srgb,var(--es-air-accent) 5%,#fff)}.es-front-wrap .es-message-bubble>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.es-front-wrap .es-message-bubble strong{font-size:.76rem}.es-front-wrap .es-message-bubble time{color:var(--es-air-muted);font-size:.64rem}.es-front-wrap .es-message-bubble p{margin:7px 0 0;color:#334155;white-space:normal;overflow-wrap:anywhere}.es-front-wrap .es-message-reply{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border-top:1px solid var(--es-air-line-soft);background:#fff}.es-front-wrap .es-message-reply textarea{min-height:76px;padding:10px 12px;border:1px solid var(--es-air-line);border-radius:12px;resize:vertical;outline:0}.es-front-wrap .es-message-reply button{align-self:end;height:42px}
@media(max-width:1100px){.es-front-wrap .es-messages-workspace{grid-template-columns:150px minmax(260px,340px) minmax(0,1fr)}}
@media(max-width:850px){.es-front-wrap .es-messages-header{flex-direction:column}.es-front-wrap .es-message-compose{width:100%}.es-front-wrap .es-message-compose>summary{width:100%}.es-front-wrap .es-message-compose-card{position:fixed;top:70px;right:12px;left:12px;width:auto;max-height:calc(100vh - 90px);overflow:auto}.es-front-wrap .es-messages-workspace{grid-template-columns:1fr;overflow:visible}.es-front-wrap .es-message-folders{display:flex;gap:6px;border-right:0;border-bottom:1px solid var(--es-air-line-soft)}.es-front-wrap .es-message-folders>a{margin:0}.es-front-wrap .es-message-profile-chip{display:none}.es-front-wrap .es-message-list{border-right:0;border-bottom:1px solid var(--es-air-line-soft)}.es-front-wrap .es-message-reader{min-height:420px}}
.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar{grid-template-columns:auto minmax(0,1fr) auto auto}
@media(max-width:1020px){.es-front-wrap .es-message-nav-button{justify-self:end}.es-front-wrap .es-teacher-dashboard > .es-teacher-topbar{grid-template-columns:auto 1fr auto auto}}

/* ========================================================================== 
   EasySchool 0.13.3 — O meu horário
   ========================================================================== */
.es-front-wrap #es-tab-horario:checked ~ .es-teacher-topbar label[for="es-tab-horario"]{background:var(--es-front-tab-active-bg,var(--es-front-base-primary));border-color:var(--es-front-tab-active-bg,var(--es-front-base-primary));color:var(--es-front-tab-active-text,#fff);box-shadow:var(--es-front-button-shadow)}
.es-front-wrap #es-tab-horario:checked ~ .es-tab-horario-panel{display:block}
.es-front-wrap .es-timetable-shell{display:grid;gap:20px}.es-front-wrap .es-timetable-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.es-front-wrap .es-timetable-header span{display:block;margin-bottom:5px;color:var(--es-air-accent);font-size:.7rem;font-weight:900;letter-spacing:.12em}.es-front-wrap .es-timetable-header h2{margin:0;color:var(--es-air-text);font-size:clamp(1.8rem,2.5vw,2.5rem);letter-spacing:-.045em}.es-front-wrap .es-timetable-header p{margin:5px 0 0;color:var(--es-air-muted)}.es-front-wrap .es-timetable-print{min-height:42px;padding:0 16px;border:1px solid var(--es-air-line);border-radius:12px;background:#fff;color:var(--es-air-text);font-weight:800;cursor:pointer}.es-front-wrap .es-timetable-summary{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px}.es-front-wrap .es-timetable-summary>div{padding:15px 16px;border:1px solid var(--es-air-line-soft);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(17,31,54,.035)}.es-front-wrap .es-timetable-summary small,.es-front-wrap .es-timetable-summary strong{display:block}.es-front-wrap .es-timetable-summary small{margin-bottom:4px;color:var(--es-air-muted);font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.es-front-wrap .es-timetable-summary strong{color:var(--es-air-text);font-size:1rem}.es-front-wrap .es-timetable-week{display:grid;grid-template-columns:repeat(5,minmax(190px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:4px}.es-front-wrap .es-timetable-day{min-width:190px;overflow:hidden;border:1px solid var(--es-air-line-soft);border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(17,31,54,.04)}.es-front-wrap .es-timetable-day>h3{margin:0;padding:13px 14px;border-bottom:1px solid var(--es-air-line-soft);background:#f8fafc;color:var(--es-air-text);font-size:.83rem;font-weight:850}.es-front-wrap .es-timetable-empty{margin:0;padding:18px 14px;color:var(--es-air-muted);font-size:.78rem}.es-front-wrap .es-timetable-slot{display:grid;grid-template-columns:55px minmax(0,1fr);gap:8px;padding:12px 13px;border-bottom:1px solid var(--es-air-line-soft)}.es-front-wrap .es-timetable-slot:last-child{border-bottom:0}.es-front-wrap .es-timetable-time strong,.es-front-wrap .es-timetable-time span,.es-front-wrap .es-timetable-class strong,.es-front-wrap .es-timetable-class span{display:block}.es-front-wrap .es-timetable-time strong{color:var(--es-air-accent);font-size:.74rem}.es-front-wrap .es-timetable-time span{margin-top:3px;color:var(--es-air-muted);font-size:.64rem;line-height:1.25}.es-front-wrap .es-timetable-class strong{color:var(--es-air-text);font-size:.78rem;line-height:1.25}.es-front-wrap .es-timetable-class span{margin-top:3px;color:var(--es-air-muted);font-size:.7rem}.es-front-wrap .es-timetable-meta{grid-column:2;display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}.es-front-wrap .es-timetable-meta span{padding:3px 6px;border-radius:7px;background:#f1f5f9;color:#475569;font-size:.62rem;font-weight:750}.es-front-wrap .es-timetable-totals{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--es-air-line-soft);border-radius:15px;background:#fff}.es-front-wrap .es-timetable-totals>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.es-front-wrap .es-timetable-totals span{padding:6px 9px;border-radius:9px;background:#f8fafc;color:#475569;font-size:.74rem}.es-front-wrap .es-timetable-totals b{color:var(--es-air-text);margin-right:4px}
@media(max-width:1050px){.es-front-wrap .es-timetable-summary{grid-template-columns:repeat(2,1fr)}.es-front-wrap .es-timetable-week{grid-template-columns:repeat(5,210px)}}@media(max-width:620px){.es-front-wrap .es-timetable-header{flex-direction:column}.es-front-wrap .es-timetable-summary{grid-template-columns:1fr 1fr}.es-front-wrap .es-timetable-totals{flex-direction:column}.es-front-wrap .es-timetable-totals>div{justify-content:flex-start}}
@media print{body *{visibility:hidden!important}#es-teacher-timetable-print,#es-teacher-timetable-print *{visibility:visible!important}#es-teacher-timetable-print{position:absolute;inset:0 auto auto 0;width:100%;padding:0;background:#fff}.es-front-wrap .es-timetable-print{display:none!important}.es-front-wrap .es-timetable-week{grid-template-columns:repeat(5,1fr);gap:6px;overflow:visible}.es-front-wrap .es-timetable-day{min-width:0;box-shadow:none}.es-front-wrap .es-timetable-summary>div,.es-front-wrap .es-timetable-totals{box-shadow:none}.es-front-wrap .es-timetable-slot{padding:7px 8px;grid-template-columns:45px minmax(0,1fr)}.es-front-wrap .es-timetable-day>h3{padding:8px;font-size:.72rem}.es-front-wrap .es-timetable-time span{font-size:.55rem}.es-front-wrap .es-timetable-class strong{font-size:.65rem}.es-front-wrap .es-timetable-meta span{font-size:.52rem}}

/* EasySchool v0.13.7 — visualização administrativa da área do docente */
.es-front-wrap .es-teacher-preview-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:0 0 14px;
    padding:13px 16px;
    border:1px solid #f0b429;
    border-radius:14px;
    background:#fff8db;
    color:#5c4300;
    box-shadow:0 8px 22px rgba(92,67,0,.06);
}
.es-front-wrap .es-teacher-preview-banner>div{display:grid;gap:2px;min-width:0}
.es-front-wrap .es-teacher-preview-banner strong{font-size:.86rem;font-weight:900;color:#3f2e00}
.es-front-wrap .es-teacher-preview-banner span{font-size:.76rem;line-height:1.35;color:#6b550d}
.es-front-wrap .es-teacher-preview-banner form{margin:0;flex:0 0 auto}
.es-front-wrap .es-teacher-preview-banner button{
    min-height:38px;
    padding:0 14px;
    border:1px solid #8b6400;
    border-radius:10px;
    background:#fff;
    color:#5c4300;
    font-size:.75rem;
    font-weight:850;
    cursor:pointer;
}
.es-front-wrap .es-user-menu-preview-note{display:block;padding:10px 12px;color:#7c5a00;font-size:.7rem;line-height:1.3;background:#fff8db}
@media(max-width:720px){.es-front-wrap .es-teacher-preview-banner{align-items:flex-start;flex-direction:column}.es-front-wrap .es-teacher-preview-banner form,.es-front-wrap .es-teacher-preview-banner button{width:100%}}
.es-front-wrap .es-message-preview-link{display:block;color:inherit;text-decoration:none}
.es-front-wrap .es-message-preview-link .es-message-list-item{width:100%;box-sizing:border-box}

/* ========================================================================== 
   EasySchool 0.13.11 — Horário docente em grelha oficial
   ========================================================================== */
.es-front-wrap .es-official-timetable{overflow:hidden;border:1px solid var(--es-air-line-soft);border-radius:18px;background:#fff;box-shadow:0 12px 32px rgba(17,31,54,.045)}
.es-front-wrap .es-official-head{display:grid;grid-template-columns:110px minmax(0,1fr) 120px;align-items:center;gap:14px;padding:18px 20px 10px}
.es-front-wrap .es-official-logo{display:flex;align-items:center;min-height:54px}.es-front-wrap .es-official-logo img{display:block;max-width:96px;max-height:54px;object-fit:contain}
.es-front-wrap .es-official-school{text-align:center;color:var(--es-air-text);font-size:1.05rem;letter-spacing:.015em}
.es-front-wrap .es-official-year{text-align:right}.es-front-wrap .es-official-year small,.es-front-wrap .es-official-year strong{display:block}.es-front-wrap .es-official-year small{color:var(--es-air-muted);font-size:.62rem;font-weight:850}.es-front-wrap .es-official-year strong{margin-top:3px;color:var(--es-air-text);font-size:.9rem}
.es-front-wrap .es-official-teacher-row{display:grid;grid-template-columns:minmax(0,1fr) 190px 280px;gap:10px;padding:0 20px 14px}
.es-front-wrap .es-official-teacher-row>div{display:flex;align-items:baseline;gap:7px;min-width:0;border-bottom:1px solid #94a3b8;padding:5px 0}.es-front-wrap .es-official-teacher-row small{flex:0 0 auto;color:#475569;font-size:.65rem;font-weight:900}.es-front-wrap .es-official-teacher-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#0f172a;font-size:.78rem}
.es-front-wrap .es-official-grid-wrap{overflow:auto;border-top:1px solid var(--es-air-line-soft);border-bottom:1px solid var(--es-air-line-soft)}
.es-front-wrap .es-official-grid{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed;color:#0f172a;font-size:.69rem}
.es-front-wrap .es-official-grid th,.es-front-wrap .es-official-grid td{border:1px solid #cbd5e1;padding:6px 5px;vertical-align:middle}.es-front-wrap .es-official-grid thead th{background:#9f0d0d;color:#fff;text-align:center;font-size:.66rem;font-weight:900}.es-front-wrap .es-official-grid .is-time{width:95px;text-align:center;font-weight:850}.es-front-wrap .es-official-grid .is-room{width:42px;text-align:center}.es-front-wrap .es-official-grid tbody .is-room{background:#fff5ed;font-weight:800}.es-front-wrap .es-official-grid .is-service{text-align:center;font-weight:760;line-height:1.18}.es-front-wrap .es-official-grid .is-service>div+div,.es-front-wrap .es-official-grid .is-room>div+div{margin-top:3px;padding-top:3px;border-top:1px dashed #cbd5e1}
.es-front-wrap .es-official-grid .is-merged-block{vertical-align:middle!important}.es-front-wrap .es-official-grid .is-service.is-merged-block{font-weight:850}.es-front-wrap .es-official-grid .is-room.is-merged-block{font-weight:900}
.es-front-wrap .es-official-dates{display:flex;justify-content:space-between;gap:20px;padding:7px 20px;border-bottom:1px solid var(--es-air-line-soft);color:#334155;font-size:.66rem}
.es-front-wrap .es-official-bottom{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;padding:12px 20px 0}.es-front-wrap .es-official-observations,.es-front-wrap .es-official-totals{border:1px solid #cbd5e1}.es-front-wrap .es-official-observations h4,.es-front-wrap .es-official-activities h4{margin:0;padding:5px 8px;background:#9f0d0d;color:#fff;text-align:center;font-size:.63rem}.es-front-wrap .es-official-observations p{margin:0;padding:8px;font-size:.66rem}
.es-front-wrap .es-official-totals{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.61rem}.es-front-wrap .es-official-totals th,.es-front-wrap .es-official-totals td{border:1px solid #cbd5e1;padding:4px 6px}.es-front-wrap .es-official-totals th{background:#9f0d0d;color:#fff}.es-front-wrap .es-official-totals td{position:relative}.es-front-wrap .es-official-totals td b{float:right}.es-front-wrap .es-official-totals .is-total td{font-weight:800}
.es-front-wrap .es-official-activities{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;padding:12px 20px}.es-front-wrap .es-official-activity-list,.es-front-wrap .es-official-legend{border:1px solid #cbd5e1}.es-front-wrap .es-official-activity-list table{width:100%;border-collapse:collapse;font-size:.62rem}.es-front-wrap .es-official-activity-list th,.es-front-wrap .es-official-activity-list td{border:1px solid #dbe3ec;padding:3px 6px}.es-front-wrap .es-official-activity-list th:last-child,.es-front-wrap .es-official-activity-list td:last-child{width:74px;text-align:center}.es-front-wrap .es-official-legend p{margin:5px 8px;font-size:.62rem}
.es-front-wrap .es-official-signature{display:grid;justify-items:center;gap:18px;padding:2px 20px 10px;font-size:.67rem}.es-front-wrap .es-official-signature span{display:block;width:250px;border-top:1px solid #64748b}.es-front-wrap .es-official-footer{padding:6px 20px 10px;border-top:1px solid #e2e8f0;text-align:center;color:#64748b;font-size:.58rem}
@media(max-width:860px){.es-front-wrap .es-official-head{grid-template-columns:80px 1fr}.es-front-wrap .es-official-year{grid-column:1/-1;text-align:left}.es-front-wrap .es-official-teacher-row{grid-template-columns:1fr}.es-front-wrap .es-official-bottom,.es-front-wrap .es-official-activities{grid-template-columns:1fr}.es-front-wrap .es-official-dates{flex-direction:column;gap:4px}}

@media print{
  @page{size:A4 portrait;margin:6mm}
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  #es-teacher-timetable-print{position:static!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  #es-teacher-timetable-print .es-no-print{display:none!important}
  .es-front-wrap .es-official-timetable{border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
  .es-front-wrap .es-official-head{grid-template-columns:78px minmax(0,1fr) 90px;gap:8px;padding:0 0 3mm}
  .es-front-wrap .es-official-logo{min-height:11mm}.es-front-wrap .es-official-logo img{max-width:25mm;max-height:11mm}
  .es-front-wrap .es-official-school{font-size:10pt}.es-front-wrap .es-official-year small{font-size:5.8pt}.es-front-wrap .es-official-year strong{font-size:7.5pt}
  .es-front-wrap .es-official-teacher-row{grid-template-columns:minmax(0,1fr) 36mm 48mm;gap:3mm;padding:0 0 2mm}.es-front-wrap .es-official-teacher-row>div{padding:1mm 0}.es-front-wrap .es-official-teacher-row small{font-size:5.6pt}.es-front-wrap .es-official-teacher-row strong{font-size:6.8pt}
  .es-front-wrap .es-official-grid-wrap{overflow:visible!important;border:0!important}.es-front-wrap .es-official-grid{min-width:0!important;width:100%!important;font-size:5.6pt}.es-front-wrap .es-official-grid th,.es-front-wrap .es-official-grid td{padding:1.2mm .8mm;border-color:#333!important}.es-front-wrap .es-official-grid thead th{font-size:5.6pt;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#9f0d0d!important;color:#fff!important}.es-front-wrap .es-official-grid .is-time{width:22mm}.es-front-wrap .es-official-grid .is-room{width:8mm}.es-front-wrap .es-official-grid tbody .is-room{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff0e5!important}
  .es-front-wrap .es-official-dates{padding:1.2mm 0;font-size:5.4pt}.es-front-wrap .es-official-bottom{grid-template-columns:42mm minmax(0,1fr);gap:2mm;padding:2mm 0 0}.es-front-wrap .es-official-observations h4,.es-front-wrap .es-official-activities h4{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#9f0d0d!important;color:#fff!important;font-size:5.2pt;padding:1mm}.es-front-wrap .es-official-observations p{font-size:5.2pt;padding:1mm}.es-front-wrap .es-official-totals{font-size:4.8pt}.es-front-wrap .es-official-totals th,.es-front-wrap .es-official-totals td{padding:.8mm}.es-front-wrap .es-official-totals th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#9f0d0d!important;color:#fff!important}
  .es-front-wrap .es-official-activities{grid-template-columns:minmax(0,1fr) 42mm;gap:2mm;padding:2mm 0}.es-front-wrap .es-official-activity-list table,.es-front-wrap .es-official-legend p{font-size:4.9pt}.es-front-wrap .es-official-activity-list th,.es-front-wrap .es-official-activity-list td{padding:.6mm 1mm}.es-front-wrap .es-official-legend p{margin:1mm}.es-front-wrap .es-official-signature{gap:5mm;padding:1mm 0 2mm;font-size:5.2pt}.es-front-wrap .es-official-signature span{width:55mm}.es-front-wrap .es-official-footer{padding:1mm 0 0;font-size:4.7pt}
}

/* ========================================================================== 
   EasySchool 0.13.12 — Horário docente: fidelidade VBA e A4 numa página
   ========================================================================== */
@media print{
  @page{size:A4 portrait;margin:4mm}
  #es-teacher-timetable-print,.es-front-wrap .es-official-timetable{page-break-inside:avoid!important;break-inside:avoid-page!important}
  .es-front-wrap .es-official-head{grid-template-columns:25mm minmax(0,1fr) 20mm;gap:2mm;padding:0 0 1.4mm!important}
  .es-front-wrap .es-official-logo{min-height:10mm!important}.es-front-wrap .es-official-logo img{max-width:24mm!important;max-height:10mm!important}
  .es-front-wrap .es-official-school{font-size:8pt!important;line-height:1.05!important}.es-front-wrap .es-official-year small{font-size:4.7pt!important}.es-front-wrap .es-official-year strong{font-size:6.2pt!important;margin-top:.5mm!important}
  .es-front-wrap .es-official-teacher-row{grid-template-columns:minmax(0,1fr) 33mm 48mm!important;gap:2mm!important;padding:0 0 1.2mm!important}.es-front-wrap .es-official-teacher-row>div{padding:.45mm 0!important}.es-front-wrap .es-official-teacher-row small{font-size:4.7pt!important}.es-front-wrap .es-official-teacher-row strong{font-size:5.8pt!important}
  .es-front-wrap .es-official-grid{font-size:4.45pt!important;line-height:1!important}.es-front-wrap .es-official-grid thead th{font-size:4.45pt!important;padding:.65mm .35mm!important}.es-front-wrap .es-official-grid th,.es-front-wrap .es-official-grid td{padding:.35mm .28mm!important;line-height:1.02!important}
  .es-front-wrap .es-official-grid tbody tr{height:5.25mm!important;page-break-inside:avoid!important;break-inside:avoid!important}
  .es-front-wrap .es-official-grid .is-time{width:18mm!important;font-size:4.55pt!important;white-space:nowrap!important}.es-front-wrap .es-official-grid .is-room{width:6.8mm!important;white-space:nowrap!important}
  .es-front-wrap .es-official-grid .is-service{font-size:4.4pt!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}.es-front-wrap .es-official-grid .is-service>div,.es-front-wrap .es-official-grid .is-room>div{margin:0!important;padding:0!important;border:0!important;white-space:nowrap!important}
  .es-front-wrap .es-official-dates{padding:.65mm 0!important;font-size:4.55pt!important;line-height:1!important}
  .es-front-wrap .es-official-bottom{grid-template-columns:34mm minmax(0,1fr)!important;gap:1mm!important;padding:1mm 0 0!important;page-break-inside:avoid!important;break-inside:avoid!important}
  .es-front-wrap .es-official-observations h4,.es-front-wrap .es-official-activities h4{font-size:4.25pt!important;padding:.55mm!important}.es-front-wrap .es-official-observations p{font-size:4.25pt!important;padding:.65mm!important}
  .es-front-wrap .es-official-totals{font-size:4.05pt!important;line-height:1!important}.es-front-wrap .es-official-totals th,.es-front-wrap .es-official-totals td{padding:.42mm .55mm!important}.es-front-wrap .es-official-totals th{font-size:4.1pt!important}
  .es-front-wrap .es-official-activities{grid-template-columns:minmax(0,1fr) 37mm!important;gap:1mm!important;padding:1mm 0!important;page-break-inside:avoid!important;break-inside:avoid!important}.es-front-wrap .es-official-activity-list table,.es-front-wrap .es-official-legend p{font-size:4pt!important;line-height:1!important}.es-front-wrap .es-official-activity-list th,.es-front-wrap .es-official-activity-list td{padding:.3mm .55mm!important}.es-front-wrap .es-official-legend p{margin:.55mm!important}
  .es-front-wrap .es-official-signature{gap:2.5mm!important;padding:.5mm 0 .8mm!important;font-size:4.25pt!important}.es-front-wrap .es-official-signature span{width:48mm!important}.es-front-wrap .es-official-footer{padding:.5mm 0 0!important;font-size:3.8pt!important}
}


/* ========================================================================== 
   EasySchool 0.13.13 — Horário docente: impressão A4 e horas numa linha
   ========================================================================== */
/* No ecrã, a coluna das horas é sempre uma única linha. */
.es-front-wrap .es-official-grid .is-time{
  width:112px;
  min-width:112px;
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
  font-variant-numeric:tabular-nums;
}

@media print{
  @page{size:A4 portrait;margin:7mm 7mm 6mm}

  /* O antigo position:static fazia todo o conteúdo invisível anterior ocupar
     a primeira folha. O horário volta a ser colocado na origem da página. */
  #es-teacher-timetable-print{
    position:absolute!important;
    top:0!important;
    left:0!important;
    right:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    break-before:auto!important;
    page-break-before:auto!important;
    break-inside:auto!important;
    page-break-inside:auto!important;
  }
  #es-teacher-timetable-print .es-no-print{display:none!important}
  .es-front-wrap .es-official-timetable{
    width:100%!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    break-inside:auto!important;
    page-break-inside:auto!important;
    font-family:Arial,Helvetica,sans-serif!important;
  }

  /* Cabeçalho semelhante ao impresso do VBA, sem desperdiçar largura/altura. */
  .es-front-wrap .es-official-head{
    grid-template-columns:28mm minmax(0,1fr) 22mm!important;
    gap:3mm!important;
    padding:0 0 2mm!important;
  }
  .es-front-wrap .es-official-logo{min-height:13mm!important}
  .es-front-wrap .es-official-logo img{max-width:27mm!important;max-height:13mm!important}
  .es-front-wrap .es-official-school{font-size:11pt!important;line-height:1.05!important}
  .es-front-wrap .es-official-year small{font-size:6pt!important}
  .es-front-wrap .es-official-year strong{font-size:8pt!important;margin-top:.6mm!important}

  .es-front-wrap .es-official-teacher-row{
    grid-template-columns:minmax(0,1fr) 36mm 50mm!important;
    gap:3mm!important;
    padding:0 0 1.8mm!important;
  }
  .es-front-wrap .es-official-teacher-row>div{padding:.7mm 0!important}
  .es-front-wrap .es-official-teacher-row small{font-size:6pt!important}
  .es-front-wrap .es-official-teacher-row strong{font-size:7.2pt!important}

  /* Grelha ocupa a largura útil do A4 e mantém leitura confortável. */
  .es-front-wrap .es-official-grid-wrap{overflow:visible!important;border:0!important}
  .es-front-wrap .es-official-grid{
    min-width:0!important;
    width:100%!important;
    table-layout:fixed!important;
    font-size:6.25pt!important;
    line-height:1.08!important;
  }
  .es-front-wrap .es-official-grid thead th{
    font-size:6.1pt!important;
    padding:1.05mm .45mm!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-grid th,
  .es-front-wrap .es-official-grid td{
    padding:.75mm .45mm!important;
    line-height:1.08!important;
    border-color:#333!important;
  }
  .es-front-wrap .es-official-grid tbody tr{
    height:6.2mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-grid .is-time{
    width:21mm!important;
    min-width:21mm!important;
    font-size:6.2pt!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    font-variant-numeric:tabular-nums!important;
  }
  .es-front-wrap .es-official-grid .is-room{
    width:7.2mm!important;
    min-width:7.2mm!important;
    font-size:6.1pt!important;
    white-space:nowrap!important;
  }
  .es-front-wrap .es-official-grid tbody .is-room{
    background:#fff0e5!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-grid .is-service{
    font-size:6.05pt!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  .es-front-wrap .es-official-grid .is-service>div,
  .es-front-wrap .es-official-grid .is-room>div{
    margin:0!important;
    padding:0!important;
    border:0!important;
    white-space:nowrap!important;
  }

  .es-front-wrap .es-official-dates{
    padding:1mm 0!important;
    font-size:5.8pt!important;
    line-height:1.05!important;
  }

  /* Blocos inferiores usam o espaço disponível sem miniaturizar o texto. */
  .es-front-wrap .es-official-bottom{
    grid-template-columns:43mm minmax(0,1fr)!important;
    gap:1.5mm!important;
    padding:1.5mm 0 0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-observations h4,
  .es-front-wrap .es-official-activities h4{
    font-size:5.6pt!important;
    padding:.8mm!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-observations p{font-size:5.7pt!important;padding:1mm!important}
  .es-front-wrap .es-official-totals{font-size:5.45pt!important;line-height:1.05!important}
  .es-front-wrap .es-official-totals th,
  .es-front-wrap .es-official-totals td{padding:.65mm .8mm!important}
  .es-front-wrap .es-official-totals th{
    font-size:5.5pt!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  .es-front-wrap .es-official-activities{
    grid-template-columns:minmax(0,1fr) 39mm!important;
    gap:1.5mm!important;
    padding:1.5mm 0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-activity-list table,
  .es-front-wrap .es-official-legend p{font-size:5.35pt!important;line-height:1.05!important}
  .es-front-wrap .es-official-activity-list th,
  .es-front-wrap .es-official-activity-list td{padding:.48mm .8mm!important}
  .es-front-wrap .es-official-legend p{margin:.8mm!important}

  .es-front-wrap .es-official-signature{
    gap:4mm!important;
    padding:1.2mm 0 1.5mm!important;
    font-size:5.7pt!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-signature span{width:55mm!important}
  .es-front-wrap .es-official-footer{padding:.8mm 0 0!important;font-size:5pt!important}
}

/* ========================================================================== 
   EasySchool 0.13.14 — Horário docente: impressão fiel ao VBA
   ========================================================================== */
.es-front-wrap .es-official-totals col.is-value{width:42px}
.es-front-wrap .es-official-totals td.is-value{
    width:42px;
    text-align:center;
    font-weight:900;
    white-space:nowrap;
    background:#fff5ed;
}
.es-front-wrap .es-official-totals td.is-total-label{font-weight:900;text-align:right}
.es-front-wrap .es-official-totals td.is-nc{background:#8f8f8f;color:#fff}
.es-front-wrap .es-official-totals td.is-grand-total{background:#111;color:#fff}

@media print{
  @page{size:A4 portrait;margin:6mm}
  html,body{
    margin:0!important;
    padding:0!important;
    width:100%!important;
    min-width:0!important;
    background:#fff!important;
  }
  .es-front-wrap{
    position:static!important;
    left:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    background:#fff!important;
  }
  #es-teacher-timetable-print{
    position:fixed!important;
    top:0!important;
    left:0!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    background:#fff!important;
  }
  body.es-timetable-print-only #es-teacher-timetable-print{
    position:static!important;
    top:auto!important;
    left:auto!important;
  }
  body.es-timetable-print-only .es-front-wrap{
    margin:0!important;
    padding:0!important;
  }
  .es-front-wrap .es-official-timetable{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    break-inside:avoid-page!important;
    page-break-inside:avoid!important;
    font-family:Arial,Helvetica,sans-serif!important;
  }

  .es-front-wrap .es-official-head{
    grid-template-columns:30mm minmax(0,1fr) 24mm!important;
    gap:3mm!important;
    padding:0 0 2.2mm!important;
    align-items:center!important;
  }
  .es-front-wrap .es-official-logo{min-height:15mm!important}
  .es-front-wrap .es-official-logo img{max-width:29mm!important;max-height:15mm!important}
  .es-front-wrap .es-official-school{font-size:12.5pt!important;line-height:1.05!important}
  .es-front-wrap .es-official-year small{font-size:6.7pt!important}
  .es-front-wrap .es-official-year strong{font-size:9pt!important;margin-top:.6mm!important}

  .es-front-wrap .es-official-teacher-row{
    grid-template-columns:minmax(0,1fr) 38mm 54mm!important;
    gap:3mm!important;
    padding:0 0 2mm!important;
  }
  .es-front-wrap .es-official-teacher-row>div{padding:.8mm 0!important}
  .es-front-wrap .es-official-teacher-row small{font-size:6.8pt!important}
  .es-front-wrap .es-official-teacher-row strong{font-size:8pt!important}

  .es-front-wrap .es-official-grid-wrap{overflow:visible!important;border:0!important}
  .es-front-wrap .es-official-grid{
    min-width:0!important;
    width:100%!important;
    table-layout:fixed!important;
    font-size:7.35pt!important;
    line-height:1.08!important;
  }
  .es-front-wrap .es-official-grid thead th{
    font-size:7.1pt!important;
    padding:1.15mm .45mm!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-grid th,
  .es-front-wrap .es-official-grid td{
    padding:.8mm .45mm!important;
    line-height:1.08!important;
    border-color:#222!important;
    vertical-align:middle!important;
  }
  .es-front-wrap .es-official-grid tbody tr{
    height:7.35mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-grid .is-time{
    width:22mm!important;
    min-width:22mm!important;
    font-size:7.25pt!important;
    white-space:nowrap!important;
    font-variant-numeric:tabular-nums!important;
  }
  .es-front-wrap .es-official-grid .is-room{
    width:7.5mm!important;
    min-width:7.5mm!important;
    font-size:7.2pt!important;
    white-space:nowrap!important;
  }
  .es-front-wrap .es-official-grid tbody .is-room{
    background:#fff0e5!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-grid .is-service{
    font-size:7.2pt!important;
    font-weight:800!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  .es-front-wrap .es-official-grid .is-service>div,
  .es-front-wrap .es-official-grid .is-room>div{
    margin:0!important;
    padding:0!important;
    border:0!important;
    white-space:nowrap!important;
  }

  .es-front-wrap .es-official-dates{
    padding:1mm 0 1.2mm!important;
    font-size:6.5pt!important;
    line-height:1.05!important;
  }

  .es-front-wrap .es-official-bottom{
    grid-template-columns:50mm minmax(0,1fr)!important;
    gap:1.5mm!important;
    padding:1.2mm 0 0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-observations h4,
  .es-front-wrap .es-official-activities h4{
    font-size:6.25pt!important;
    padding:.85mm!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-observations p{
    font-size:6.4pt!important;
    line-height:1.15!important;
    padding:1.1mm!important;
  }
  .es-front-wrap .es-official-totals{
    table-layout:fixed!important;
    font-size:6.15pt!important;
    line-height:1.05!important;
  }
  .es-front-wrap .es-official-totals col.is-value{width:7mm!important}
  .es-front-wrap .es-official-totals th,
  .es-front-wrap .es-official-totals td{
    padding:.7mm .65mm!important;
    vertical-align:middle!important;
  }
  .es-front-wrap .es-official-totals th{
    font-size:6.25pt!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-totals td.is-value{
    width:7mm!important;
    font-size:6.8pt!important;
    text-align:center!important;
    font-weight:900!important;
    background:#fff0e5!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .es-front-wrap .es-official-totals td.is-total-label{font-weight:900!important;text-align:right!important}
  .es-front-wrap .es-official-totals td.is-nc{background:#8f8f8f!important;color:#fff!important}
  .es-front-wrap .es-official-totals td.is-grand-total{background:#111!important;color:#fff!important}

  .es-front-wrap .es-official-activities{
    grid-template-columns:minmax(0,1fr) 42mm!important;
    gap:1.5mm!important;
    padding:1.5mm 0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-activity-list table,
  .es-front-wrap .es-official-legend p{
    font-size:6.05pt!important;
    line-height:1.05!important;
  }
  .es-front-wrap .es-official-activity-list th,
  .es-front-wrap .es-official-activity-list td{padding:.5mm .8mm!important}
  .es-front-wrap .es-official-legend p{margin:.85mm!important}

  .es-front-wrap .es-official-signature{
    gap:4.5mm!important;
    padding:1.5mm 0 1.7mm!important;
    font-size:6.4pt!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .es-front-wrap .es-official-signature span{width:58mm!important}
  .es-front-wrap .es-official-footer{padding:1mm 0 0!important;font-size:5.5pt!important}
}

/* ========================================================================== 
   EasySchool 0.13.15 — Horário docente: escala A4 e leitura fiel ao impresso VBA
   ========================================================================== */
.es-front-wrap .es-official-grid .is-time{
    width:112px;
    min-width:112px;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
.es-front-wrap .es-official-grid .is-time,
.es-front-wrap .es-official-grid .is-time *{
    white-space:nowrap;
}

@media print{
  @page{size:A4 portrait;margin:5mm}

  body.es-timetable-print-only,
  body.es-timetable-print-only .es-front-wrap,
  body.es-timetable-print-only #es-teacher-timetable-print{
    margin:0!important;
    padding:0!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    background:#fff!important;
  }
  body.es-timetable-print-only #es-teacher-timetable-print{
    position:static!important;
    inset:auto!important;
  }
  body.es-timetable-print-only .es-official-timetable{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    border-radius:0!important;
    overflow:visible!important;
    font-family:Arial,Helvetica,sans-serif!important;
  }

  /* Cabeçalho maior: o modelo VBA usa bem a largura e começa no topo. */
  body.es-timetable-print-only .es-official-head{
    grid-template-columns:32mm minmax(0,1fr) 25mm!important;
    gap:3mm!important;
    min-height:18mm!important;
    padding:0 0 2.4mm!important;
    align-items:center!important;
  }
  body.es-timetable-print-only .es-official-logo{min-height:17mm!important}
  body.es-timetable-print-only .es-official-logo img{max-width:31mm!important;max-height:17mm!important}
  body.es-timetable-print-only .es-official-school{font-size:13.4pt!important;line-height:1.05!important}
  body.es-timetable-print-only .es-official-year small{font-size:7.2pt!important}
  body.es-timetable-print-only .es-official-year strong{font-size:9.8pt!important;margin-top:.7mm!important}

  body.es-timetable-print-only .es-official-teacher-row{
    grid-template-columns:minmax(0,1fr) 40mm 55mm!important;
    gap:3mm!important;
    padding:0 0 2.2mm!important;
  }
  body.es-timetable-print-only .es-official-teacher-row>div{padding:.9mm 0!important}
  body.es-timetable-print-only .es-official-teacher-row small{font-size:7.25pt!important}
  body.es-timetable-print-only .es-official-teacher-row strong{font-size:8.45pt!important}

  /* Grelha: dimensão próxima do impresso VBA e sem quebras nas horas. */
  body.es-timetable-print-only .es-official-grid-wrap{overflow:visible!important;border:0!important}
  body.es-timetable-print-only .es-official-grid{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    font-size:8.15pt!important;
    line-height:1.05!important;
  }
  body.es-timetable-print-only .es-official-grid thead th{
    font-size:7.75pt!important;
    padding:1.25mm .42mm!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.es-timetable-print-only .es-official-grid th,
  body.es-timetable-print-only .es-official-grid td{
    padding:.85mm .42mm!important;
    border-color:#111!important;
    line-height:1.05!important;
    vertical-align:middle!important;
  }
  body.es-timetable-print-only .es-official-grid tbody tr{
    height:8.75mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.es-timetable-print-only .es-official-grid .is-time{
    width:23mm!important;
    min-width:23mm!important;
    font-size:8pt!important;
    white-space:nowrap!important;
    font-variant-numeric:tabular-nums!important;
  }
  body.es-timetable-print-only .es-official-grid .is-room{
    width:7.2mm!important;
    min-width:7.2mm!important;
    font-size:7.9pt!important;
    white-space:nowrap!important;
  }
  body.es-timetable-print-only .es-official-grid tbody .is-room{
    background:#fff0e5!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.es-timetable-print-only .es-official-grid .is-service{
    font-size:7.85pt!important;
    font-weight:800!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  body.es-timetable-print-only .es-official-grid .is-service>div,
  body.es-timetable-print-only .es-official-grid .is-room>div{
    margin:0!important;
    padding:0!important;
    border:0!important;
    white-space:nowrap!important;
  }

  body.es-timetable-print-only .es-official-dates{
    padding:1.1mm 0 1.4mm!important;
    font-size:7pt!important;
    line-height:1.05!important;
  }

  /* Quadro de serviço: proporções e células numéricas semelhantes ao VBA. */
  body.es-timetable-print-only .es-official-bottom{
    grid-template-columns:52mm minmax(0,1fr)!important;
    gap:1.4mm!important;
    padding:1.2mm 0 0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.es-timetable-print-only .es-official-observations h4,
  body.es-timetable-print-only .es-official-activities h4{
    font-size:6.8pt!important;
    padding:.9mm!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.es-timetable-print-only .es-official-observations p{
    font-size:7pt!important;
    line-height:1.12!important;
    padding:1.1mm!important;
  }
  body.es-timetable-print-only .es-official-totals{
    width:100%!important;
    table-layout:fixed!important;
    font-size:6.75pt!important;
    line-height:1.02!important;
  }
  body.es-timetable-print-only .es-official-totals col.is-value{width:7.2mm!important}
  body.es-timetable-print-only .es-official-totals th,
  body.es-timetable-print-only .es-official-totals td{
    padding:.72mm .7mm!important;
    vertical-align:middle!important;
  }
  body.es-timetable-print-only .es-official-totals th{
    font-size:6.9pt!important;
    background:#9f0d0d!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body.es-timetable-print-only .es-official-totals td.is-value{
    width:7.2mm!important;
    font-size:7.25pt!important;
    text-align:center!important;
    font-weight:900!important;
    background:#fff0e5!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  body.es-timetable-print-only .es-official-activities{
    grid-template-columns:minmax(0,1fr) 43mm!important;
    gap:1.4mm!important;
    padding:1.6mm 0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.es-timetable-print-only .es-official-activity-list table,
  body.es-timetable-print-only .es-official-legend p{
    font-size:6.65pt!important;
    line-height:1.02!important;
  }
  body.es-timetable-print-only .es-official-activity-list th,
  body.es-timetable-print-only .es-official-activity-list td{padding:.55mm .8mm!important}
  body.es-timetable-print-only .es-official-legend p{margin:.9mm!important}

  body.es-timetable-print-only .es-official-signature{
    gap:5mm!important;
    padding:2mm 0 2.2mm!important;
    font-size:7pt!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.es-timetable-print-only .es-official-signature span{width:62mm!important}
  body.es-timetable-print-only .es-official-footer{padding:1mm 0 0!important;font-size:6pt!important}
}


/* EasySchool 0.13.35 — Horário docente: ligação direta à Sala de Aula */
.es-front-wrap .es-official-grid .is-service.is-clickable{padding:0}
.es-front-wrap .es-official-grid .es-timetable-classroom-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:100%;padding:6px 5px;box-sizing:border-box;color:inherit;text-decoration:none;border-radius:7px;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.es-front-wrap .es-official-grid .is-service:not(.is-merged-block) .es-timetable-classroom-link{display:inline-flex;width:auto;min-height:0;padding:3px 6px}
.es-front-wrap .es-official-grid .es-timetable-classroom-link:hover,.es-front-wrap .es-official-grid .es-timetable-classroom-link:focus-visible{background:color-mix(in srgb,var(--es-air-accent,#a30d0d) 10%,#fff);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--es-air-accent,#a30d0d) 24%,transparent);outline:0}
.es-front-wrap .es-official-grid .es-timetable-classroom-link:active{transform:translateY(1px)}
@media print{.es-front-wrap .es-official-grid .es-timetable-classroom-link{display:block!important;padding:0!important;color:inherit!important;text-decoration:none!important;background:transparent!important;box-shadow:none!important}}
body.es-timetable-print-only .es-official-grid .es-timetable-classroom-link{display:block!important;padding:0!important;color:inherit!important;text-decoration:none!important;background:transparent!important;box-shadow:none!important}

.es-front-wrap .es-official-grid .is-service.is-clickable{cursor:pointer}
.es-front-wrap .es-official-grid .is-service.is-clickable:hover{background:color-mix(in srgb,var(--es-air-accent,#a30d0d) 7%,#fff)}
.es-front-wrap .es-official-grid .is-service.is-clickable .es-timetable-classroom-link::after{content:'↗';font-size:.68em;margin-left:.35em;opacity:.48}
@media print{.es-front-wrap .es-official-grid .is-service.is-clickable .es-timetable-classroom-link::after{content:''}}
body.es-timetable-print-only .es-official-grid .is-service.is-clickable .es-timetable-classroom-link::after{content:''}

/* EasySchool 0.13.37 — Dicas rotativas no topo da área do docente */
.es-front-wrap .es-teacher-dashboard > .es-dashboard-smart-tip {
    margin-top: -6px;
    border-color: color-mix(in srgb, var(--es-air-accent, #a30d0d) 14%, #dce8fa);
    background: linear-gradient(120deg, #f7fbff 0%, #ffffff 48%, color-mix(in srgb, var(--es-air-accent, #a30d0d) 5%, #ffffff) 100%);
    box-shadow: 0 14px 34px rgba(17, 31, 54, .06);
}
.es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-copy {
    min-width: 0;
}
.es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-copy strong,
.es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-copy span {
    transition: opacity .18s ease, transform .18s ease;
}
.es-front-wrap .es-dashboard-smart-tip.is-changing .es-dashboard-tip-copy strong,
.es-front-wrap .es-dashboard-smart-tip.is-changing .es-dashboard-tip-copy span {
    opacity: .18;
    transform: translateY(2px);
}
.es-front-wrap .es-dashboard-tip-dots {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
}
.es-front-wrap .es-dashboard-tip-dot {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--es-air-muted, #607089) 32%, #ffffff);
    cursor: pointer;
    transition: width .16s ease, background-color .16s ease, transform .16s ease;
}
.es-front-wrap .es-dashboard-tip-dot:hover,
.es-front-wrap .es-dashboard-tip-dot:focus-visible {
    transform: scale(1.2);
    outline: 0;
}
.es-front-wrap .es-dashboard-tip-dot.is-active {
    width: 18px;
    background: var(--es-air-accent, #a30d0d);
}
.es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-link {
    text-decoration: none;
    white-space: nowrap;
}
.es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-link:hover,
.es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-link:focus-visible {
    border-color: color-mix(in srgb, var(--es-air-accent, #a30d0d) 26%, #d6e2f5);
    color: var(--es-air-accent, #a30d0d);
    outline: 0;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--es-air-accent, #a30d0d) 10%, transparent);
}
@media (max-width: 760px) {
    .es-front-wrap .es-teacher-dashboard > .es-dashboard-smart-tip {
        margin-top: -2px;
    }
    .es-front-wrap .es-dashboard-tip-dots {
        grid-column: 1 / -1;
        justify-content: center;
    }
}
@media (prefers-reduced-motion: reduce) {
    .es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-copy strong,
    .es-front-wrap .es-dashboard-smart-tip .es-dashboard-tip-copy span,
    .es-front-wrap .es-dashboard-tip-dot {
        transition: none !important;
    }
}


/* EasySchool 0.13.38 — navegação horizontal das dicas rotativas do docente */
.es-front-wrap .es-dashboard-smart-tip {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
}
.es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
}
.es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-copy {
    grid-column: 2;
    grid-row: 1;
}
.es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-link {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
}
.es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-dots {
    display: flex !important;
    grid-column: 2;
    grid-row: 2;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    width: auto;
    min-width: 0;
    min-height: 10px;
    margin-top: 8px;
}
.es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-dots .es-dashboard-tip-dot {
    appearance: none;
    -webkit-appearance: none;
    display: block !important;
    flex: 0 0 8px;
    width: 8px !important;
    min-width: 8px !important;
    max-width: 8px;
    height: 8px !important;
    min-height: 8px !important;
    max-height: 8px;
    padding: 0 !important;
    margin: 0;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    line-height: 0;
    font-size: 0;
    color: transparent;
    background: color-mix(in srgb, var(--es-air-muted, #607089) 32%, #ffffff);
}
.es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-dots .es-dashboard-tip-dot.is-active {
    flex-basis: 24px;
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px;
    height: 8px !important;
    min-height: 8px !important;
    max-height: 8px;
    background: var(--es-air-accent, #a30d0d);
}

@media (max-width: 760px) {
    .es-front-wrap .es-dashboard-smart-tip {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto auto;
    }
    .es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-icon {
        grid-column: 1;
        grid-row: 1 / span 2;
    }
    .es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-copy {
        grid-column: 2;
        grid-row: 1;
    }
    .es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-dots {
        grid-column: 2;
        grid-row: 2;
        justify-content: flex-start;
    }
    .es-front-wrap .es-dashboard-smart-tip > .es-dashboard-tip-link {
        grid-column: 1 / -1;
        grid-row: 3;
        width: 100%;
        text-align: center;
        margin-top: 6px;
    }
}

/* EasySchool 0.13.40 — legibilidade dos botões primários dos Exames.
   Alguns templates Joomla aplicam cor própria às hiperligações e podiam
   sobrepor-se ao botão "+ Novo exame". Mantém o texto sempre branco sobre
   o fundo vermelho institucional. */
.es-front-wrap .es-exams-title-actions .es-button-primary,
.es-front-wrap .es-exams-title-actions .es-button-primary:link,
.es-front-wrap .es-exams-title-actions .es-button-primary:visited,
.es-front-wrap .es-exams-title-actions .es-button-primary:hover,
.es-front-wrap .es-exams-title-actions .es-button-primary:focus,
.es-front-wrap .es-exams-title-actions .es-button-primary:active {
    color: #fff !important;
}
.es-front-wrap .es-exams-title-actions .es-button-primary svg,
.es-front-wrap .es-exams-title-actions .es-button-primary i,
.es-front-wrap .es-exams-title-actions .es-button-primary span {
    color: inherit !important;
}
