/* Fonts load from tbe-global.css (@import) — avoid duplicate requests. */

/* Full-bleed app shell (standalone plugin pages — no theme padding) */
html:has(#tbe-wrapper),
html:has(#tbe-dashboard) {
    margin-top: 0 !important;
}
body:has(#tbe-wrapper),
body:has(#tbe-dashboard) {
    overflow: hidden;
    margin: 0;
    padding: 0;
}

/* Os tokens de cor vivem em :root, via src/tbe-global.css (light overrides em tbe-theme.css).
   Aqui ficam só as medidas do shell, que mudam conforme a admin bar do WordPress. */
#tbe-wrapper,
#tbe-dashboard {
    --tbe-shell-top: 0px;
    --tbe-shell-height: 100dvh;

    position: fixed;
    inset: 0;
    width: 100%;
    height: var(--tbe-shell-height);
    min-height: 0;
    background-color: var(--tbe-canvas);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--tbe-text);
    overflow: hidden;
    z-index: 0;
}
body.admin-bar #tbe-wrapper,
body.admin-bar #tbe-dashboard {
    --tbe-shell-top: var(--wp-admin--admin-bar--height, 32px);
    --tbe-shell-height: calc(100dvh - var(--wp-admin--admin-bar--height, 32px));
    top: var(--tbe-shell-top);
    bottom: auto;
    height: var(--tbe-shell-height);
}
@media screen and (max-width: 782px) {
    body.admin-bar #tbe-wrapper,
    body.admin-bar #tbe-dashboard {
        --tbe-shell-top: var(--wp-admin--admin-bar--height, 46px);
        --tbe-shell-height: calc(100dvh - var(--wp-admin--admin-bar--height, 46px));
    }
}

#tbe-wrapper h1,
#tbe-wrapper h2,
#tbe-wrapper h3,
#tbe-wrapper .font-heading,
#tbe-dashboard h1,
#tbe-dashboard h2,
#tbe-dashboard h3,
#tbe-dashboard .font-heading {
    font-family: 'Figtree', sans-serif;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--tbe-text);
}

/* Long-form prose inside dashboard (optional utility) */
#tbe-wrapper .font-prose,
#tbe-dashboard .font-prose {
    font-family: 'Figtree', sans-serif;
    letter-spacing: normal;
    font-weight: 400;
}

/* Scrollbars — thin, token-colored (WebKit + Firefox) */
#tbe-wrapper,
#tbe-dashboard,
#tbe-wrapper .tbe-ins-scroll,
#tbe-dashboard .tbe-ins-scroll {
    scrollbar-width: thin;
    scrollbar-color: var(--tbe-border-strong) transparent;
}
@supports selector(::-webkit-scrollbar) {
    #tbe-wrapper ::-webkit-scrollbar,
    #tbe-dashboard ::-webkit-scrollbar { width: 5px; height: 5px; }
    #tbe-wrapper ::-webkit-scrollbar-track,
    #tbe-dashboard ::-webkit-scrollbar-track { background: transparent; }
    #tbe-wrapper ::-webkit-scrollbar-thumb,
    #tbe-dashboard ::-webkit-scrollbar-thumb { background: var(--tbe-border-strong); border-radius: 3px; }
    #tbe-wrapper ::-webkit-scrollbar-thumb:hover,
    #tbe-dashboard ::-webkit-scrollbar-thumb:hover { background: var(--tbe-indigo); }
}

/* Drawer Animation */
#tbe-profile-drawer { transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
#tbe-profile-drawer.open { transform: translateX(0); }

#tbe-global-loader {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: opacity 0.6s ease-out, visibility 0.6s;
}

/* --- NOVOS ESTILOS (SIDEBAR & TOUR) --- */
#main-sidebar {
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: fixed !important;
    top: var(--tbe-shell-top, 0px);
    left: 0;
    bottom: 0;
    height: var(--tbe-shell-height, 100dvh);
    z-index: 50;
}
#tbe-wrapper > main,
#tbe-wrapper #tbe-main-content,
#tbe-dashboard > main {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transition: margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#main-sidebar.tbe-collapsed { width: 5rem; }
#main-sidebar.tbe-collapsed .tbe-hide-collapsed { display: none !important; opacity: 0; }
#main-sidebar.tbe-collapsed .tbe-center-collapsed { justify-content: center !important; padding-left: 0 !important; padding-right: 0 !important; }
#main-sidebar.tbe-collapsed .tbe-logo-block { align-items: center !important; }
#main-sidebar.tbe-collapsed .tbe-logo-block > div,
#main-sidebar.tbe-collapsed .tbe-logo-block > div > div,
#main-sidebar.tbe-collapsed .tbe-logo-block a { display: flex !important; justify-content: center !important; align-items: center !important; width: 100% !important; }
#main-sidebar.tbe-collapsed #sidebar-logo-full { display: none !important; }
#main-sidebar.tbe-collapsed #sidebar-logo-icon { display: block !important; margin: 0 auto; flex-shrink: 0; }
#main-sidebar.tbe-collapsed #tbe-profile-trigger { justify-content: center; gap: 0; padding: 0.5rem; }
#main-sidebar.tbe-collapsed #tbe-profile-trigger .flex-1 { display: none; }
#main-sidebar.tbe-collapsed #tbe-profile-trigger > svg { display: none; }

#tbe-wrapper main.tbe-main-expanded,
#tbe-dashboard main.tbe-main-expanded { margin-left: 5rem !important; }

.tbe-kpi-card {
    background: var(--tbe-surface);
    border: 1px solid var(--tbe-border);
    border-radius: 8px;
    padding: 1.5rem;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.tbe-chart-card {
    background: var(--tbe-surface);
    border: 1px solid var(--tbe-border);
    border-radius: 8px;
    padding: 1.5rem;
    box-sizing: border-box;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.tbe-chart-card > [id^="chart-"] {
    flex: 1 1 auto;
    min-height: 200px;
}

/* ─────────────────────────────────────────────────────────────
   US-1.1 · Filtros de análise (toolbar compacta no page header)
   ───────────────────────────────────────────────────────────── */
.tbe-af {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.tbe-af-summary {
    display: none;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    max-width: min(42rem, 55vw);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.tbe-af-summary:not([hidden]) {
    display: none;
}

@media (min-width: 900px) {
    .tbe-af-summary:not([hidden]) { display: flex; }
}

.tbe-af-chip {
    display: inline-flex;
    align-items: center;
    max-width: 22ch;
    padding: 0.25rem 0.6rem;
    border: 1px solid rgba(99, 91, 255, 0.35);
    border-radius: 999px;
    background-color: rgba(99, 91, 255, 0.1);
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    color: var(--tbe-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

html[data-tbe-theme="light"] .tbe-af-chip { background-color: rgba(99, 91, 255, 0.08); }

.tbe-af-toggle { position: relative; flex-shrink: 0; }

.tbe-af-toggle[data-tbe-af-dirty="1"]::after {
    content: '';
    position: absolute;
    top: 4px;
    right: 4px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--tbe-indigo);
}

.tbe-af-popover {
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    z-index: 40;
    width: min(320px, calc(100vw - 2rem));
    padding: 1rem;
    border: 1px solid var(--tbe-border);
    border-radius: 8px;
    background-color: var(--tbe-surface);
}

.tbe-af-field { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.75rem; }
.tbe-af-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.tbe-af-picker { position: relative; }

.tbe-af-picker-btn {
    width: 100%;
    min-height: 40px;
    padding: 0.5rem 0.75rem;
    text-align: left;
    border: 1px solid var(--tbe-input-border);
    border-radius: 6px;
    background-color: var(--tbe-input-bg);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--tbe-text);
    cursor: pointer;
}

.tbe-af-picker-btn:hover { border-color: var(--tbe-indigo); }

.tbe-af-picker-panel {
    position: absolute;
    z-index: 5;
    top: calc(100% + 0.25rem);
    left: 0;
    width: 100%;
    max-height: 208px;
    overflow-y: auto;
    padding: 0.35rem;
    border: 1px solid var(--tbe-border);
    border-radius: 6px;
    background-color: var(--tbe-panel);
}

.tbe-af-opt {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 40px;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--tbe-text);
    cursor: pointer;
}

.tbe-af-opt:hover { background-color: rgba(255, 255, 255, 0.05); }
html[data-tbe-theme="light"] .tbe-af-opt:hover { background-color: rgba(0, 0, 0, 0.04); }
.tbe-af-opt span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tbe-af-opt small { color: var(--tbe-muted); font-family: 'Source Code Pro', monospace; font-size: 10px; }

.tbe-af-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--tbe-border);
}

.tbe-af-empty { margin: 0; padding: 0.5rem; font-size: 12px; color: var(--tbe-muted); }

/* ─────────────────────────────────────────────────────────────
   US-1.2 · Insights operacionais (churn / watchlist / ranking)
   ───────────────────────────────────────────────────────────── */
/* align-items:start impede que um card curto seja esticado pelo mais alto. */
.tbe-ins-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
}

@media (min-width: 1100px) {
    .tbe-ins-grid {
        grid-template-columns: minmax(200px, 0.9fr) minmax(0, 1.15fr) minmax(0, 1.15fr);
    }
    .tbe-ins-card--rank { grid-column: auto; }
}

.tbe-ins-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.tbe-ins-scroll {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 280px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--tbe-border-strong) transparent;
}

.tbe-ins-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.75rem 0 0;
    padding-top: 0.75rem;
    border-top: 1px solid var(--tbe-border);
    font-size: 12px;
    color: var(--tbe-muted);
}

.tbe-ins-foot:empty { display: none; }

.tbe-ins-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.875rem;
}

.tbe-ins-title {
    margin: 0;
    font-family: 'Figtree', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tbe-muted);
}

.tbe-ins-aside { font-family: 'Source Code Pro', monospace; font-size: 11px; color: var(--tbe-muted); }

/* Churn */
.tbe-churn-value {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin: 0;
    font-family: 'Figtree', sans-serif;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: -0.03em;
    color: var(--tbe-text);
    line-height: 1;
}

.tbe-churn-trend {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-family: 'Source Code Pro', monospace;
    font-size: 12px;
    font-weight: 600;
}

.tbe-churn-trend--up { color: var(--tbe-fire); }
.tbe-churn-trend--down { color: var(--tbe-success); }
.tbe-churn-trend--flat { color: var(--tbe-muted); }

.tbe-churn-foot { margin: 0.5rem 0 0; font-size: 12px; color: var(--tbe-muted); }

.tbe-churn-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-top: 1rem;
}
.tbe-churn-stat {
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--tbe-border);
    border-radius: 6px;
    background-color: var(--tbe-interactive);
}
.tbe-churn-stat-val {
    display: block;
    font-family: 'Figtree', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--tbe-text);
    line-height: 1.1;
}
.tbe-churn-stat-lbl {
    display: block;
    margin-top: 0.2rem;
    font-size: 11px;
    color: var(--tbe-muted);
}

.tbe-churn-reasons { margin: 1rem 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.tbe-churn-reason { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 0.5rem; font-size: 12px; color: var(--tbe-muted); }
.tbe-churn-reason-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tbe-text); }
.tbe-churn-reason-count { font-family: 'Source Code Pro', monospace; font-size: 11px; }
.tbe-churn-empty { margin: 0; font-size: 12px; color: var(--tbe-muted); }

.tbe-ins-bar {
    grid-column: 1 / -1;
    height: 4px;
    border-radius: 2px;
    background-color: rgba(255, 255, 255, 0.06);
    overflow: hidden;
}

html[data-tbe-theme="light"] .tbe-ins-bar { background-color: rgba(0, 0, 0, 0.06); }
.tbe-ins-bar > span { display: block; height: 100%; border-radius: 2px; background-color: var(--tbe-indigo); }

/* Watchlist */
.tbe-watch-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.tbe-watch-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0;
    border-top: 1px solid var(--tbe-border);
}
.tbe-watch-row:first-child { border-top: 0; padding-top: 0; }

.tbe-watch-sev {
    flex: 0 0 3px;
    align-self: stretch;
    min-height: 28px;
    border-radius: 2px;
    background-color: var(--tbe-muted);
}
.tbe-watch-sev--alto { background-color: var(--tbe-fire); }
.tbe-watch-sev--medio { background-color: #F59E0B; }

.tbe-watch-main { flex: 1; min-width: 0; }
.tbe-watch-name {
    display: block;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--tbe-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tbe-watch-meta { display: block; margin-top: 0.1rem; font-size: 11px; color: var(--tbe-muted); }
.tbe-watch-actions { display: flex; gap: 0.35rem; flex-shrink: 0; }

/* Ranking */
.tbe-rank-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.tbe-rank-row {
    display: grid;
    grid-template-columns: 24px 32px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0;
    border-top: 1px solid var(--tbe-border);
}
.tbe-rank-row:first-child { border-top: 0; padding-top: 0; }

.tbe-rank-pos {
    font-family: 'Source Code Pro', monospace;
    font-size: 12px;
    font-weight: 700;
    color: var(--tbe-disabled);
    text-align: right;
}
.tbe-rank-row--podium .tbe-rank-pos { color: var(--tbe-indigo); }

.tbe-rank-avatar {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(99, 91, 255, 0.12);
    color: var(--tbe-indigo);
    font-family: 'Source Code Pro', monospace;
    font-size: 11px;
    font-weight: 700;
}

.tbe-rank-main { min-width: 0; }
.tbe-rank-name {
    display: block;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--tbe-text);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.tbe-rank-name:hover { color: var(--tbe-indigo); }
.tbe-rank-bar { margin-top: 0.3rem; }
.tbe-rank-score { display: flex; align-items: center; gap: 0.35rem; font-family: 'Source Code Pro', monospace; font-size: 12px; color: var(--tbe-muted); }
.tbe-rank-score strong { color: var(--tbe-text); font-weight: 600; }

/* Gestão de Alunos: o card não pode crescer além da coluna (min-width:auto em flex) */
#table-container {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

/* Tour Styles */
.tbe-tour-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.7); z-index: 9998; opacity: 0; transition: opacity 0.3s; pointer-events: none; }
.tbe-tour-active { pointer-events: auto; opacity: 1; }
.tbe-spotlight {
    position: relative;
    z-index: 9999 !important;
    box-shadow: 0 0 0 4px var(--tbe-indigo), 0 0 40px rgba(0, 0, 0, 0.35);
    background-color: var(--tbe-surface);
    border-radius: 8px;
}
.tbe-tooltip-box {
    position: absolute;
    z-index: 10000;
    width: 320px;
    background: var(--tbe-panel);
    border: 1px solid var(--tbe-border-strong);
    border-radius: 8px;
    padding: 20px;
    box-shadow: var(--tbe-shadow-indigo);
    color: var(--tbe-text);
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.3s;
    pointer-events: none;
}
.tbe-tooltip-box.active { opacity: 1; transform: translateY(0); pointer-events: auto; }
.tbe-check { width: 18px; height: 18px; border: 2px solid var(--tbe-indigo); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; flex-shrink: 0; }
.tbe-check.checked { background: var(--tbe-indigo); }
.tbe-check svg { opacity: 0; transform: scale(0.5); transition: all 0.2s; }
.tbe-check.checked svg { opacity: 1; transform: scale(1); }

/* Count badges (student totals, etc.) — token-based, not bg-tbe-border utility */
#tbe-wrapper .tbe-count-badge,
#tbe-dashboard .tbe-count-badge,
#tbe-wrapper #total-badge.tbe-count-badge,
#tbe-dashboard #total-badge.tbe-count-badge {
    display: inline-block;
    font-family: 'Source Code Pro', monospace;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25;
    padding: 0.125rem 0.5rem;
    border-radius: 0.5rem;
    background-color: rgb(42, 45, 53);
    color: var(--tbe-muted);
    border: 1px solid transparent;
}

[data-tbe-theme="light"] #tbe-wrapper .tbe-count-badge,
[data-tbe-theme="light"] #tbe-dashboard .tbe-count-badge,
[data-tbe-theme="light"] #tbe-wrapper #total-badge.tbe-count-badge,
[data-tbe-theme="light"] #tbe-dashboard #total-badge.tbe-count-badge {
    background-color: rgba(99, 91, 255, 0.1) !important;
    color: #635bff !important;
    border-color: rgba(99, 91, 255, 0.2) !important;
}

/* Add Teacher/Aluno — gold outline (explicit; do not rely on Tailwind safelist / arbitrary utilities) */
#tbe-wrapper .tbe-btn-add-teacher,
#tbe-dashboard .tbe-btn-add-teacher {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    height: 36px;
    padding: 0 1.1rem;
    border-radius: 6px;
    font-size: 12px !important;
    font-weight: 600 !important;
    font-family: 'Source Code Pro', monospace !important;
    letter-spacing: 0.04em !important;
    color: #fff;
    background: transparent;
    border: 1px solid rgb(212, 175, 55) !important;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    white-space: nowrap;
}
#tbe-wrapper .tbe-btn-add-teacher:hover,
#tbe-dashboard .tbe-btn-add-teacher:hover {
    background: rgba(212, 175, 55, 0.08);
    border-color: rgb(230, 200, 100);
}
#tbe-wrapper .tbe-btn-add-teacher:focus-visible,
#tbe-dashboard .tbe-btn-add-teacher:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.35);
}
#tbe-wrapper .tbe-btn-add-teacher svg,
#tbe-dashboard .tbe-btn-add-teacher svg {
    flex-shrink: 0;
    width: 0.95rem;
    height: 0.95rem;
    color: rgb(212, 175, 55);
}

/* Add Teacher modal — keep student checklist scroll inside right panel (no Tailwind dependency) */
#tbe-add-teacher-modal > .tbe-form-modal-card {
    display: flex;
    flex-direction: column;
    max-height: min(92vh, 800px);
    overflow: hidden;
    box-sizing: border-box;
}

#tbe-add-teacher-modal .tbe-form-modal-head,
#tbe-add-teacher-modal .tbe-form-modal-lead {
    flex-shrink: 0;
}

#tbe-add-teacher-modal #tbe-add-teacher-form {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

#tbe-add-teacher-modal .tbe-teacher-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    align-items: stretch;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

@media (min-width: 1024px) {
    #tbe-add-teacher-modal .tbe-teacher-form-grid {
        grid-template-columns: 1fr 1fr;
    }
}

#teacher-link-students-wrap {
    display: flex;
    flex-direction: column;
    min-height: 12rem;
    max-height: min(48vh, 400px);
    overflow: hidden;
    box-sizing: border-box;
}

#teacher-link-students-wrap > label,
#teacher-link-students-wrap > input,
#teacher-link-students-wrap > p {
    flex-shrink: 0;
}

#teacher-link-students-list {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}

#tbe-add-teacher-modal .tbe-teacher-form-actions {
    flex-shrink: 0;
}

/* ── WCAG-safe dashboard table & controls (theme-token based) ── */
#tbe-wrapper .tbe-table-row {
    transition: background-color 0.15s ease;
}
#tbe-wrapper .tbe-table-row:hover {
    background-color: var(--tbe-interactive);
}

#tbe-wrapper .tbe-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
    border-radius: 6px;
    border: 1px solid var(--tbe-border);
    color: var(--tbe-muted);
    background: transparent;
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
#tbe-wrapper .tbe-icon-btn:hover {
    color: var(--tbe-text);
    background: var(--tbe-interactive);
}
#tbe-wrapper .tbe-icon-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(99, 91, 255, 0.45);
}
#tbe-wrapper .tbe-icon-btn--purple:hover {
    color: var(--tbe-indigo);
    background: rgba(99, 91, 255, 0.1);
    border-color: rgba(99, 91, 255, 0.25);
}
#tbe-wrapper .tbe-icon-btn--danger:hover {
    color: #e63946;
    background: rgba(230, 57, 70, 0.08);
    border-color: rgba(230, 57, 70, 0.25);
}
#tbe-wrapper .tbe-icon-btn--success:hover {
    color: #059669;
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.25);
}
#tbe-wrapper .tbe-icon-btn--edit {
    color: #ffffff;
    background: var(--tbe-indigo);
    border-color: var(--tbe-indigo);
}
#tbe-wrapper .tbe-icon-btn--edit:hover {
    color: #ffffff;
    background: var(--tbe-indigo-hover);
    border-color: var(--tbe-indigo-hover);
}
#tbe-wrapper .tbe-icon-btn--solid-danger {
    color: #ffffff;
    background: #e63946;
    border-color: #e63946;
}
#tbe-wrapper .tbe-icon-btn--solid-danger:hover {
    background: #dc2626;
    border-color: #dc2626;
}
#tbe-wrapper .tbe-icon-btn--solid-success {
    color: #ffffff;
    background: #059669;
    border-color: #059669;
}
#tbe-wrapper .tbe-icon-btn--solid-success:hover {
    background: #047857;
    border-color: #047857;
}

#tbe-wrapper .tbe-btn-page {
    padding: 0.25rem 0.75rem;
    background: var(--tbe-surface);
    border: 1px solid var(--tbe-border);
    border-radius: 8px;
    color: var(--tbe-text);
    font-size: 0.75rem;
    line-height: 1.4;
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
#tbe-wrapper .tbe-btn-page:hover:not(:disabled) {
    background: var(--tbe-interactive);
    border-color: var(--tbe-border-strong);
}
#tbe-wrapper .tbe-btn-page:disabled {
    opacity: 1 !important;
    color: var(--tbe-disabled);
    background: transparent;
    cursor: not-allowed;
    border-color: var(--tbe-border);
}

#tbe-wrapper .tbe-badge-neutral {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: 1px solid var(--tbe-border);
    background: var(--tbe-interactive);
    color: var(--tbe-muted);
}

/* Never use opacity for disabled controls — kills contrast (WCAG usability) */
#tbe-wrapper button:disabled,
#tbe-wrapper button[disabled],
#tbe-dashboard button:disabled,
#tbe-dashboard button[disabled] {
    opacity: 1 !important;
}

/*
 * Site-wide: botão é prosa, não dado — Figtree na escala .tbe-btn--sm.
 * Era Source Code Pro 10px, o que colocava monoespaçada em todo botão do
 * produto e é a origem da "hierarquia tipográfica" apontada na auditoria.
 * O :not(.tbe-btn) deixa a primitiva passar na sua escala de 14px.
 */
#tbe-wrapper button:not(.tbe-btn),
#tbe-dashboard button:not(.tbe-btn),
#tbe-wrapper a.tbe-admin-btn-primary,
#tbe-wrapper a.tbe-admin-btn-secondary,
#tbe-wrapper a.tbe-admin-btn-ghost,
#tbe-wrapper .tbe-admin-btn-primary,
#tbe-wrapper .tbe-admin-btn-secondary,
#tbe-wrapper .tbe-admin-btn-ghost,
#tbe-wrapper .tbe-admin-btn-danger,
#tbe-dashboard .tbe-admin-btn-primary,
#tbe-dashboard .tbe-admin-btn-secondary,
#tbe-dashboard .tbe-admin-btn-ghost,
#tbe-wrapper .tbe-btn-page,
#tbe-dashboard .tbe-btn-page {
    font-family: 'Figtree', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
}

#tbe-wrapper thead th[data-sort-key] {
    color: var(--tbe-muted);
    white-space: nowrap;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
}
#tbe-wrapper thead th[data-sort-key]:hover {
    color: var(--tbe-indigo);
}
#tbe-wrapper thead th[data-sort-key] .tbe-sort-label {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(255, 255, 255, 0.22);
}
#tbe-wrapper thead th[data-sort-key]:hover .tbe-sort-label,
#tbe-wrapper thead th[data-sort-key].text-tbe-purple .tbe-sort-label {
    text-decoration-color: currentColor;
}
#tbe-wrapper .tbe-sort-indicator {
    display: inline-block;
    margin-left: 0.2rem;
    font-size: 8px;
    line-height: 1;
    vertical-align: middle;
    opacity: 0.85;
}
#tbe-wrapper .tbe-sort-indicator:empty {
    display: none;
    margin-left: 0;
}
/* Compact numeric columns (Aulas / Repos.) — labels wrap instead of colliding */
#tbe-wrapper thead th#tbe-th-col4,
#tbe-wrapper thead th#tbe-th-col5,
#tbe-dashboard thead th#tbe-th-col4,
#tbe-dashboard thead th#tbe-th-col5 {
    padding-left: 0.4rem;
    padding-right: 0.4rem;
    text-align: center;
    white-space: normal;
    line-height: 1.25;
    min-width: 3.25rem;
}
#tbe-wrapper thead th#tbe-th-col4 .tbe-sort-label,
#tbe-wrapper thead th#tbe-th-col5 .tbe-sort-label,
#tbe-dashboard thead th#tbe-th-col4 .tbe-sort-label,
#tbe-dashboard thead th#tbe-th-col5 .tbe-sort-label {
    white-space: normal;
    display: inline-block;
    max-width: 4.2rem;
}

/* Gestão: a tabela cabe na largura do card */
#tbe-wrapper .tbe-students-table-wrap,
#tbe-dashboard .tbe-students-table-wrap {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}
#tbe-wrapper .tbe-students-table,
#tbe-dashboard .tbe-students-table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
}
#tbe-wrapper .tbe-students-table th,
#tbe-wrapper .tbe-students-table td,
#tbe-dashboard .tbe-students-table th,
#tbe-dashboard .tbe-students-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}
#tbe-wrapper .tbe-students-table th:first-child,
#tbe-wrapper .tbe-students-table td:first-child,
#tbe-dashboard .tbe-students-table th:first-child,
#tbe-dashboard .tbe-students-table td:first-child {
    padding-left: 1.25rem;
}
#tbe-wrapper .tbe-students-table th:last-child,
#tbe-wrapper .tbe-students-table td:last-child,
#tbe-dashboard .tbe-students-table th:last-child,
#tbe-dashboard .tbe-students-table td:last-child {
    padding-right: 1.25rem;
}
#tbe-wrapper .tbe-students-table td[data-label="Ações"],
#tbe-dashboard .tbe-students-table td[data-label="Ações"] {
    overflow: hidden;
    min-width: 0;
}
#tbe-wrapper .tbe-students-table td[data-label="Ações"] .inline-flex,
#tbe-dashboard .tbe-students-table td[data-label="Ações"] .inline-flex {
    max-width: 100%;
    flex-wrap: nowrap;
    justify-content: flex-end;
}
#tbe-wrapper .tbe-students-table td[data-label="Ações"] .tbe-icon-btn,
#tbe-dashboard .tbe-students-table td[data-label="Ações"] .tbe-icon-btn {
    width: 32px;
    height: 32px;
    min-width: 32px;
    padding: 0.3rem;
    flex-shrink: 0;
}

/* Teacher: a coluna Professor é sempre o próprio — some para caber Aulas/Repos. */
#tbe-wrapper .tbe-students-table--own col:nth-child(5),
#tbe-wrapper .tbe-students-table--own thead th:nth-child(5),
#tbe-wrapper .tbe-students-table--own tbody td:nth-child(5),
#tbe-wrapper .tbe-students-table--own tbody td[data-label="Professor"],
#tbe-dashboard .tbe-students-table--own col:nth-child(5),
#tbe-dashboard .tbe-students-table--own thead th:nth-child(5),
#tbe-dashboard .tbe-students-table--own tbody td:nth-child(5),
#tbe-dashboard .tbe-students-table--own tbody td[data-label="Professor"] {
    display: none !important;
}

/* Gestão table — skeleton loader (transform sweep; reliable in light + dark) */
@keyframes tbe-skeleton-sweep {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}
#tbe-wrapper .tbe-skeleton,
#tbe-dashboard .tbe-skeleton {
    position: relative;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.06);
    border-radius: 4px;
    isolation: isolate;
}
#tbe-wrapper .tbe-skeleton::after,
#tbe-dashboard .tbe-skeleton::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.06) 42%,
        rgba(255, 255, 255, 0.14) 50%,
        rgba(255, 255, 255, 0.06) 58%,
        transparent 100%
    );
    transform: translateX(-100%);
    animation: tbe-skeleton-sweep 1.4s ease-in-out infinite;
    pointer-events: none;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-skeleton,
[data-tbe-theme="light"] #tbe-dashboard .tbe-skeleton {
    background-color: #d1d5db !important;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-skeleton::after,
[data-tbe-theme="light"] #tbe-dashboard .tbe-skeleton::after {
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.5) 42%,
        rgba(255, 255, 255, 0.95) 50%,
        rgba(255, 255, 255, 0.5) 58%,
        transparent 100%
    ) !important;
}
#tbe-table-body.tbe-table-loading {
    min-height: calc(64px * 5);
}
#tbe-wrapper .tbe-skeleton-row > td,
#tbe-dashboard .tbe-skeleton-row > td,
#tbe-wrapper .tbe-skeleton-cell,
#tbe-dashboard .tbe-skeleton-cell {
    padding: 0.875rem 1.5rem;
    vertical-align: middle;
}
#tbe-wrapper .tbe-skeleton-line,
#tbe-dashboard .tbe-skeleton-line {
    height: 14px;
    max-width: 100%;
}

/* ─────────────────────────────────────────────────────────────
   Topo do dashboard do professor: próxima aula + 7 dias
   ───────────────────────────────────────────────────────────── */
/* :not(.hidden) so the Tailwind `hidden` utility still wins while the panel loads. */
.tbe-teach-top:not(.hidden) { display: flex; }
.tbe-teach-top { flex-direction: column; gap: 1.5rem; align-items: stretch; }

.tbe-freq-warn {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.85rem 1.1rem;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--tbe-fire, #E63946) 40%, transparent);
    background: color-mix(in srgb, var(--tbe-fire, #E63946) 12%, transparent);
    color: var(--tbe-text);
}
.tbe-freq-warn.hidden,
.tbe-freq-warn[hidden] { display: none !important; }
.tbe-freq-warn:not(.hidden):not([hidden]) { display: flex !important; }
.tbe-freq-warn-text { margin: 0; font-size: 13px; line-height: 1.45; font-family: Figtree, sans-serif; }

.tbe-nextclass {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid rgba(99, 91, 255, 0.3);
    border-radius: 8px;
    background-color: rgba(99, 91, 255, 0.07);
}

.tbe-nextclass--empty {
    border-color: var(--tbe-border);
    background-color: var(--tbe-surface);
}

.tbe-nextclass-when {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-right: 1.5rem;
    border-right: 1px solid var(--tbe-border);
}

@media (max-width: 639px) {
    .tbe-nextclass-when { padding-right: 0; border-right: 0; }
}

.tbe-nextclass-label {
    font-family: 'Source Code Pro', monospace;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tbe-muted);
}

.tbe-nextclass-time {
    font-family: 'Figtree', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--tbe-text);
    line-height: 1.1;
}

.tbe-nextclass-day { font-size: 12px; color: var(--tbe-muted); }
.tbe-nextclass-main { flex: 1 1 220px; min-width: 0; }

.tbe-nextclass-title {
    margin: 0;
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--tbe-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tbe-nextclass-meta { margin: 0.25rem 0 0; font-size: 13px; color: var(--tbe-muted); }
.tbe-nextclass-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; flex-shrink: 0; }

.tbe-week-strip {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.tbe-week-pill {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    min-height: 62px;
    padding: 0.5rem 0.25rem;
    border: 1px solid var(--tbe-border);
    border-radius: 6px;
    background-color: transparent;
    color: var(--tbe-muted);
    font-family: 'Figtree', sans-serif;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.tbe-week-pill:hover { border-color: rgba(99, 91, 255, 0.35); background-color: var(--tbe-interactive); }
.tbe-week-pill:focus-visible { outline: 2px solid var(--tbe-indigo); outline-offset: 2px; }

.tbe-week-pill[aria-selected="true"] {
    border-color: rgba(99, 91, 255, 0.45);
    background-color: rgba(99, 91, 255, 0.12);
    color: var(--tbe-text);
    box-shadow: inset 0 -2px 0 var(--tbe-indigo);
}

.tbe-week-pill--skeleton {
    background-color: rgba(255, 255, 255, 0.04);
    cursor: default;
}

html[data-tbe-theme="light"] .tbe-week-pill--skeleton { background-color: rgba(0, 0, 0, 0.04); }

.tbe-week-pill-dow {
    font-family: 'Source Code Pro', monospace;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.tbe-week-pill-num { font-size: 16px; font-weight: 600; color: var(--tbe-text); line-height: 1.1; }
.tbe-week-pill--today .tbe-week-pill-num { color: var(--tbe-indigo); }

.tbe-week-pill-count {
    font-family: 'Source Code Pro', monospace;
    font-size: 10px;
    color: var(--tbe-muted);
    min-height: 12px;
}

.tbe-week-pill-count--none { color: var(--tbe-disabled); }
.tbe-week-pill--has .tbe-week-pill-count { color: var(--tbe-indigo); }

.tbe-week-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }

.tbe-week-item {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.7rem 0;
    border-top: 1px solid var(--tbe-border);
}

.tbe-week-item:first-child { border-top: 0; padding-top: 0; }

.tbe-week-item-time {
    flex: 0 0 auto;
    font-family: 'Source Code Pro', monospace;
    font-size: 13px;
    font-weight: 600;
    color: var(--tbe-text);
}

.tbe-week-item-main { flex: 1; min-width: 0; }

.tbe-week-item-title {
    display: block;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--tbe-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tbe-week-item-meta { display: block; margin-top: 0.1rem; font-size: 11px; color: var(--tbe-muted); }

/* Teacher dashboard schedule (student calendar look) */
#tbe-teacher-schedule.tbe-teach-schedule .sp-schedule-card {
    background: #1A1D27;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 1.25rem;
    height: 100%;
}
#tbe-teacher-schedule .sp-schedule-title {
    margin: 0 0 1rem;
    font-size: 1rem;
    font-weight: 600;
    color: #F3F4F6;
    font-family: Figtree, sans-serif;
}
#tbe-teacher-schedule .sp-schedule-month-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.65rem;
    margin-bottom: 0.85rem;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
}
#tbe-teacher-schedule .sp-schedule-month-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: #9CA3AF;
    font-size: 1.1rem;
    cursor: pointer;
    line-height: 1;
}
#tbe-teacher-schedule .sp-schedule-month-btn:hover {
    background: rgba(255, 255, 255, 0.05);
    color: #F3F4F6;
}
#tbe-teacher-schedule .sp-schedule-month-label {
    font-family: Figtree, sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #F3F4F6;
    text-align: center;
    flex: 1;
}
#tbe-teacher-schedule .sp-schedule-dow {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 0.35rem;
}
#tbe-teacher-schedule .sp-schedule-dow-cell {
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9CA3AF;
    padding: 0.15rem 0;
}
#tbe-teacher-schedule .sp-schedule-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
#tbe-teacher-schedule .sp-schedule-cal-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0;
}
#tbe-teacher-schedule .sp-schedule-cal-cell.other { opacity: 0.3; }
#tbe-teacher-schedule .sp-schedule-cal-day {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 50%;
    font-family: Figtree, sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #D1D5DB;
    cursor: pointer;
    line-height: 1;
}
#tbe-teacher-schedule .sp-schedule-cal-day:hover { background: rgba(255, 255, 255, 0.05); }
#tbe-teacher-schedule .sp-schedule-cal-day.is-today:not(.is-selected) {
    border: 1px solid rgba(99, 91, 255, 0.5);
}
#tbe-teacher-schedule .sp-schedule-cal-day.has-events:not(.is-selected) {
    background: rgba(99, 91, 255, 0.15);
    box-shadow: 0 0 12px rgba(99, 91, 255, 0.35);
}
#tbe-teacher-schedule .sp-schedule-cal-day.is-selected {
    background: #635BFF;
    color: #fff;
    box-shadow: none;
}
#tbe-teacher-schedule .sp-schedule-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.06);
    margin: 1rem 0;
}
#tbe-teacher-schedule .sp-schedule-day-head {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0 0 0.85rem;
    background: none;
    border: none;
    text-align: left;
    font-family: Figtree, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #F3F4F6;
    cursor: default;
}
#tbe-teacher-schedule .sp-schedule-timeline-empty {
    font-size: 13px;
    color: #9CA3AF;
    padding: 0.5rem 0;
}
#tbe-teacher-schedule .sp-schedule-slot {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 0.65rem;
    position: relative;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}
#tbe-teacher-schedule .sp-schedule-slot:first-child {
    border-top: none;
    padding-top: 0;
}
#tbe-teacher-schedule .sp-schedule-slot-time {
    font-size: 11px;
    font-weight: 500;
    color: #9CA3AF;
    text-align: right;
    padding-top: 0.15rem;
    font-family: 'Source Code Pro', monospace;
}
#tbe-teacher-schedule .sp-schedule-slot-body {
    position: relative;
    padding-left: 0.75rem;
    border-left: 1px solid rgba(255, 255, 255, 0.06);
}
#tbe-teacher-schedule .sp-schedule-slot.is-first .sp-schedule-slot-body::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 0;
    width: 2px;
    height: 12px;
    background: #635BFF;
    transform: translateX(-0.5px);
}
#tbe-teacher-schedule .sp-schedule-task {
    position: relative;
    padding: 0.75rem 0.85rem;
    margin-bottom: 0.5rem;
    background: linear-gradient(135deg, rgba(99, 91, 255, 0.10) 0%, rgba(26, 29, 39, 0.95) 60%);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
}
#tbe-teacher-schedule .sp-schedule-task:last-child { margin-bottom: 0; }
#tbe-teacher-schedule .sp-schedule-task-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}
#tbe-teacher-schedule .sp-kind-tag {
    display: inline-block;
    font-family: 'Source Code Pro', monospace;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #C4B5FD;
    border: 1px solid rgba(99, 91, 255, 0.35);
    background: rgba(99, 91, 255, 0.1);
    border-radius: 6px;
    padding: 0.15rem 0.4rem;
}
#tbe-teacher-schedule .sp-schedule-task-title {
    margin: 0;
    font-family: Figtree, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #F3F4F6;
    line-height: 1.35;
}
#tbe-teacher-schedule .sp-schedule-task-desc {
    margin: 0;
    font-size: 12px;
    color: #9CA3AF;
    line-height: 1.4;
}
#tbe-teacher-schedule .sp-schedule-timeline {
    max-height: 280px;
    overflow-y: auto;
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-card {
    background: #FFFFFF;
    border-color: rgba(0, 0, 0, 0.08);
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-title,
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-month-label,
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-day-head {
    color: #111827;
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-month-bar {
    background: rgba(0, 0, 0, 0.04);
    border-color: rgba(0, 0, 0, 0.08);
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-month-btn { color: #374151; }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-month-btn:hover {
    background: rgba(0, 0, 0, 0.06);
    color: #111827;
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-dow-cell { color: #6B7280; }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-cal-day { color: #374151; }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-cal-day:hover { background: rgba(0, 0, 0, 0.05); }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-cal-day.has-events:not(.is-selected) {
    background: rgba(99, 91, 255, 0.12);
    box-shadow: none;
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-cal-day.is-selected {
    background: rgba(99, 91, 255, 0.12);
    color: #635BFF;
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-cal-day.is-today.is-selected {
    background: #635BFF;
    color: #FFFFFF;
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-divider { background: rgba(0, 0, 0, 0.08); }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-slot { border-top-color: rgba(0, 0, 0, 0.06); }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-slot-time { color: #6B7280; }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-slot-body { border-left-color: rgba(0, 0, 0, 0.08); }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-task {
    background: #FFFFFF;
    border-color: rgba(0, 0, 0, 0.08);
}
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-task-title { color: #111827; }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-task-desc,
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-schedule-timeline-empty { color: #6B7280; }
html[data-tbe-theme="light"] #tbe-teacher-schedule .sp-kind-tag {
    color: #4F46E5;
    border-color: rgba(99, 91, 255, 0.35);
    background: rgba(99, 91, 255, 0.08);
}

/* Student roster — keep ATIVO + DONNA on one line */
#tbe-wrapper .tbe-status-badges,
#tbe-dashboard .tbe-status-badges {
    flex-wrap: nowrap;
    white-space: nowrap;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-badge-donna,
[data-tbe-theme="light"] #tbe-dashboard .tbe-badge-donna {
    color: #4F46E5 !important;
    background: rgba(99, 91, 255, 0.08) !important;
    border-color: rgba(99, 91, 255, 0.35) !important;
}

/* Roster: no-login cue — gold in dark, brand blue in light */
#tbe-wrapper .tbe-access-warn,
#tbe-dashboard .tbe-access-warn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    color: var(--tbe-gold, #d4af37);
    cursor: help;
}
html[data-tbe-theme="light"] #tbe-wrapper .tbe-access-warn,
html[data-tbe-theme="light"] #tbe-dashboard .tbe-access-warn {
    color: var(--tbe-indigo, #635bff);
}

/* Student roster — card layout on tablet/phone */
@media (max-width: 960px) {
    #tbe-wrapper .tbe-students-table-wrap,
    #tbe-dashboard .tbe-students-table-wrap {
        overflow-x: visible;
    }
    #tbe-wrapper .tbe-students-table,
    #tbe-dashboard .tbe-students-table {
        table-layout: auto !important;
        width: 100%;
    }
    #tbe-wrapper .tbe-students-table colgroup,
    #tbe-dashboard .tbe-students-table colgroup {
        display: none;
    }
    #tbe-wrapper .tbe-students-table thead,
    #tbe-dashboard .tbe-students-table thead {
        display: none;
    }
    #tbe-wrapper .tbe-students-table tbody,
    #tbe-dashboard .tbe-students-table tbody {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        padding: 0.75rem;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.55rem 0.75rem;
        height: auto !important;
        padding: 0.85rem 1rem;
        border: 1px solid rgba(255, 255, 255, 0.06);
        border-radius: 8px;
        background: #1A1D27;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    }
    [data-tbe-theme="light"] #tbe-wrapper .tbe-students-table tr.tbe-table-row,
    [data-tbe-theme="light"] #tbe-dashboard .tbe-students-table tr.tbe-table-row {
        background: #FFFFFF;
        border-color: rgba(0, 0, 0, 0.08) !important;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
        padding: 0 !important;
        width: auto !important;
        min-width: 0;
        overflow: visible !important;
        white-space: normal !important;
        text-align: left !important;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td::before,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td::before {
        content: attr(data-label);
        font-family: 'Source Code Pro', monospace;
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: #9CA3AF;
    }
    [data-tbe-theme="light"] #tbe-wrapper .tbe-students-table tr.tbe-table-row > td::before,
    [data-tbe-theme="light"] #tbe-dashboard .tbe-students-table tr.tbe-table-row > td::before {
        color: #6B7280;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Aluno"],
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Aluno"],
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Professor"],
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Professor"] {
        grid-column: 1 / -1;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Aluno"]::before,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Aluno"]::before,
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Professor"]::before,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Professor"]::before {
        display: none;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Status"],
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Status"],
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Tipo"],
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Tipo"] {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.35rem;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Ações"],
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Ações"] {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
        gap: 0.5rem;
        padding-top: 0.5rem !important;
        border-top: 1px solid rgba(255, 255, 255, 0.06);
        margin-top: 0.25rem;
    }
    [data-tbe-theme="light"] #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Ações"],
    [data-tbe-theme="light"] #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Ações"] {
        border-top-color: rgba(0, 0, 0, 0.08);
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row > td[data-label="Ações"]::before,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row > td[data-label="Ações"]::before {
        margin-right: auto;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-table-row .tbe-icon-btn,
    #tbe-dashboard .tbe-students-table tr.tbe-table-row .tbe-icon-btn {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
    }
    #tbe-wrapper .tbe-students-table tr.tbe-filler-row,
    #tbe-dashboard .tbe-students-table tr.tbe-filler-row,
    #tbe-wrapper .tbe-students-table tr.tbe-skeleton-row,
    #tbe-dashboard .tbe-students-table tr.tbe-skeleton-row {
        display: none;
    }
}

/* Shared card-stack for admin / billing tables on phone+tablet */
@media (max-width: 960px) {
    .tbe-mobile-cards-wrap {
        overflow-x: visible !important;
        max-height: none !important;
        overflow-y: visible !important;
    }
    .tbe-mobile-cards thead {
        display: none;
    }
    .tbe-mobile-cards tbody {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        padding: 0.75rem;
    }
    .tbe-mobile-cards tbody > tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.55rem 0.75rem;
        height: auto !important;
        padding: 0.85rem 1rem;
        border: 1px solid rgba(255, 255, 255, 0.06);
        border-radius: 8px;
        background: #1A1D27;
    }
    [data-tbe-theme="light"] .tbe-mobile-cards tbody > tr {
        background: #FFFFFF;
        border-color: rgba(0, 0, 0, 0.08);
    }
    .tbe-mobile-cards tbody > tr > td {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
        padding: 0 !important;
        width: auto !important;
        min-width: 0;
        overflow: visible !important;
        white-space: normal !important;
        text-align: left !important;
    }
    .tbe-mobile-cards tbody > tr > td::before {
        content: attr(data-label);
        font-family: 'Source Code Pro', monospace;
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: #9CA3AF;
    }
    [data-tbe-theme="light"] .tbe-mobile-cards tbody > tr > td::before {
        color: #6B7280;
    }
    .tbe-mobile-cards tbody > tr > td[data-label="Nome"],
    .tbe-mobile-cards tbody > tr > td[data-label="Professor"],
    .tbe-mobile-cards tbody > tr > td[data-label="Partner"] {
        grid-column: 1 / -1;
    }
    .tbe-mobile-cards tbody > tr > td[data-label="Nome"]::before,
    .tbe-mobile-cards tbody > tr > td[data-label="Professor"]::before,
    .tbe-mobile-cards tbody > tr > td[data-label="Partner"]::before {
        display: none;
    }
    .tbe-mobile-cards tbody > tr > td[data-label="Ações"] {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        gap: 0.5rem;
        padding-top: 0.5rem !important;
        border-top: 1px solid rgba(255, 255, 255, 0.06);
        margin-top: 0.25rem;
    }
    [data-tbe-theme="light"] .tbe-mobile-cards tbody > tr > td[data-label="Ações"] {
        border-top-color: rgba(0, 0, 0, 0.08);
    }
    .tbe-mobile-cards tbody > tr > td[data-label="Ações"]::before {
        margin-right: auto;
    }
    .tbe-mobile-cards .tbe-admin-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 0.5rem;
    }
}

/* Mobile polish — filters, headers, toolbars */
@media (max-width: 767px) {
    #tbe-wrapper .tbe-page-header,
    #tbe-dashboard .tbe-page-header {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
        gap: 0.5rem;
    }
    #tbe-wrapper .tbe-page-header__actions,
    #tbe-dashboard .tbe-page-header__actions {
        min-width: 0;
        max-width: 55%;
    }
    #tbe-wrapper .tbe-search,
    #tbe-dashboard .tbe-search {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    #tbe-status-filter,
    #tbe-table-tabs {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    #tbe-status-filter::-webkit-scrollbar,
    #tbe-table-tabs::-webkit-scrollbar {
        display: none;
    }
    #tbe-status-filter button,
    #tbe-table-tabs button {
        flex-shrink: 0;
        min-height: 32px;
    }
    #table-container > .p-5 {
        padding: 1rem !important;
    }
}

/* ── Shared form primitives (match admin.html Adicionar Cliente) ── */
#tbe-wrapper .tbe-admin-input,
#tbe-dashboard .tbe-admin-input {
    background-color: rgba(0, 0, 0, 0.2) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 6px !important;
    color: #F3F4F6 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    height: 40px !important;
    padding: 0 0.75rem !important;
    outline: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    font-family: 'Figtree', sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
#tbe-wrapper select.tbe-admin-input,
#tbe-dashboard select.tbe-admin-input {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-color: rgba(0, 0, 0, 0.2) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.25' d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.7rem center !important;
    background-size: 14px 14px !important;
    padding-right: 2.25rem !important;
    cursor: pointer;
}
#tbe-wrapper .tbe-admin-input:focus,
#tbe-dashboard .tbe-admin-input:focus {
    border-color: #635BFF !important;
    box-shadow: 0 0 0 2px rgba(99, 91, 255, 0.2);
}
#tbe-wrapper .tbe-admin-input::placeholder,
#tbe-dashboard .tbe-admin-input::placeholder {
    color: #4B5563 !important;
}
#tbe-wrapper .tbe-admin-label,
#tbe-dashboard .tbe-admin-label {
    display: block;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9CA3AF !important;
    margin-bottom: 0.35rem;
    font-family: 'Figtree', sans-serif !important;
}
#tbe-wrapper .tbe-admin-btn-primary,
#tbe-dashboard .tbe-admin-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 1.1rem;
    border: none;
    border-radius: 6px;
    font-size: 13px !important;
    font-weight: 500 !important;
    font-family: 'Figtree', sans-serif !important;
    letter-spacing: normal !important;
    color: #FFFFFF !important;
    background: #635BFF !important;
    box-shadow: 0 4px 14px rgba(99, 91, 255, 0.2);
    cursor: pointer;
    transition: background-color 0.15s ease;
    white-space: nowrap;
    box-sizing: border-box;
    text-transform: none;
}
#tbe-wrapper .tbe-admin-btn-primary:hover,
#tbe-dashboard .tbe-admin-btn-primary:hover {
    background: #4F46E5 !important;
}
#tbe-wrapper .tbe-admin-btn-primary:disabled,
#tbe-dashboard .tbe-admin-btn-primary:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
#tbe-wrapper .tbe-admin-btn-secondary,
#tbe-dashboard .tbe-admin-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 1rem;
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: rgba(255, 255, 255, 0.05) !important;
    color: #F3F4F6 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    font-family: 'Figtree', sans-serif !important;
    letter-spacing: normal !important;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    white-space: nowrap;
    box-sizing: border-box;
    text-transform: none;
}
#tbe-wrapper .tbe-admin-btn-secondary:hover,
#tbe-dashboard .tbe-admin-btn-secondary:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
}
#tbe-wrapper .tbe-admin-btn-ghost,
#tbe-dashboard .tbe-admin-btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    padding: 0 0.75rem;
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    background: rgba(255, 255, 255, 0.03) !important;
    color: #D1D5DB !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    font-family: 'Figtree', sans-serif !important;
    letter-spacing: normal !important;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    box-sizing: border-box;
    text-transform: none;
}
#tbe-wrapper .tbe-admin-btn-ghost:hover,
#tbe-dashboard .tbe-admin-btn-ghost:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: #F3F4F6 !important;
}

/* Dashboard form modals — shell matching admin Cliente modal */
#tbe-wrapper .tbe-form-modal,
#tbe-dashboard .tbe-form-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(11, 13, 20, 0.78);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    backdrop-filter: blur(4px);
}
/* Superfície, largura e raio vêm de tbe-global.css (.tbe-form-modal-card) */
#tbe-wrapper .tbe-form-modal-card,
#tbe-dashboard .tbe-form-modal-card {
    max-height: min(92vh, 720px);
    overflow: hidden;
    padding: 1.1rem 1.25rem 1.15rem;
    display: flex;
    flex-direction: column;
    position: relative;
}
#tbe-wrapper .tbe-form-modal-head,
#tbe-dashboard .tbe-form-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    flex-shrink: 0;
}
/* Form copy stays Figtree even if a page still has #tbe-wrapper * { Source Code Pro }. */
#tbe-wrapper .tbe-label,
#tbe-dashboard .tbe-label,
#tbe-wrapper .tbe-hint,
#tbe-wrapper .tbe-input,
#tbe-wrapper .tbe-select,
#tbe-wrapper .tbe-textarea,
#tbe-dashboard .tbe-input,
#tbe-dashboard .tbe-select,
#tbe-dashboard .tbe-textarea {
    font-family: 'Figtree', sans-serif !important;
    letter-spacing: normal;
}
#tbe-wrapper .tbe-search > .tbe-input,
#tbe-dashboard .tbe-search > .tbe-input {
    padding-left: 2.125rem !important;
}
/* Título: ver .tbe-form-modal-title em tbe-global.css */
#tbe-wrapper .tbe-form-modal-lead,
#tbe-dashboard .tbe-form-modal-lead {
    margin: 0 0 0.75rem;
    font-size: 12px !important;
    color: #9CA3AF !important;
    font-family: 'Figtree', sans-serif !important;
    line-height: 1.45;
}
#tbe-wrapper .tbe-form-modal-body,
#tbe-dashboard .tbe-form-modal-body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 0;
    flex: 1;
}
#tbe-wrapper .tbe-form-fields,
#tbe-dashboard .tbe-form-fields {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
    flex: 1;
    overflow-y: auto;
}
/* Rodapé: ver .tbe-form-footer em tbe-global.css */
#tbe-wrapper .tbe-form-footer,
#tbe-dashboard .tbe-form-footer {
    flex-shrink: 0;
}
#tbe-wrapper .tbe-form-panel,
#tbe-dashboard .tbe-form-panel {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.2);
    padding: 0.75rem;
}
#tbe-wrapper .tbe-form-panel-title,
#tbe-dashboard .tbe-form-panel-title {
    display: block;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #F3F4F6 !important;
    font-family: 'Figtree', sans-serif !important;
}
#tbe-wrapper .tbe-form-hint,
#tbe-dashboard .tbe-form-hint {
    font-size: 11px !important;
    color: #9CA3AF !important;
    font-family: 'Figtree', sans-serif !important;
    line-height: 1.45;
    margin: 0.25rem 0 0;
}
#tbe-wrapper .tbe-plan-wd,
#tbe-dashboard .tbe-plan-wd,
#tbe-wrapper .tbe-plan-wd *,
#tbe-dashboard .tbe-plan-wd * {
    font-family: 'Figtree', sans-serif !important;
    letter-spacing: normal;
}
#tbe-wrapper .tbe-plan-wd-toggle,
#tbe-dashboard .tbe-plan-wd-toggle {
    font-size: 13px !important;
    font-weight: 500;
    color: var(--tbe-text) !important;
}
#tbe-wrapper .tbe-plan-wd-help,
#tbe-dashboard .tbe-plan-wd-help {
    font-size: 11px !important;
    font-weight: 400 !important;
    color: var(--tbe-muted) !important;
    line-height: 1.45 !important;
}
#tbe-wrapper .tbe-plan-wd-row > span,
#tbe-dashboard .tbe-plan-wd-row > span {
    font-size: 12px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    color: var(--tbe-muted) !important;
}
#tbe-wrapper .tbe-form-row-2,
#tbe-dashboard .tbe-form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
}
#tbe-wrapper #teacher-link-students-wrap.tbe-form-panel,
#tbe-dashboard #teacher-link-students-wrap.tbe-form-panel {
    border-radius: 6px;
}
#tbe-wrapper #teacher-link-students-list,
#tbe-dashboard #teacher-link-students-list {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 0.5rem;
    font-size: 12px;
    color: #F3F4F6;
    font-family: 'Figtree', sans-serif;
}

[data-tbe-theme="light"] #tbe-wrapper .tbe-admin-input,
[data-tbe-theme="light"] #tbe-dashboard .tbe-admin-input {
    background-color: #ffffff !important;
    border-color: rgba(0, 0, 0, 0.12) !important;
    color: #111827 !important;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-admin-input:focus,
[data-tbe-theme="light"] #tbe-dashboard .tbe-admin-input:focus {
    border-color: #635BFF !important;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-form-modal-card,
[data-tbe-theme="light"] #tbe-dashboard .tbe-form-modal-card {
    background: #ffffff;
    border-color: rgba(0, 0, 0, 0.1);
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-form-modal-title,
[data-tbe-theme="light"] #tbe-dashboard .tbe-form-modal-title {
    color: #111827 !important;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-form-panel,
[data-tbe-theme="light"] #tbe-dashboard .tbe-form-panel {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.1);
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-form-panel-title,
[data-tbe-theme="light"] #tbe-dashboard .tbe-form-panel-title {
    color: #111827 !important;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-admin-btn-secondary,
[data-tbe-theme="light"] #tbe-dashboard .tbe-admin-btn-secondary {
    background: rgba(0, 0, 0, 0.04) !important;
    border-color: rgba(0, 0, 0, 0.12) !important;
    color: #111827 !important;
}
[data-tbe-theme="light"] #tbe-wrapper .tbe-admin-btn-ghost,
[data-tbe-theme="light"] #tbe-dashboard .tbe-admin-btn-ghost {
    background: rgba(0, 0, 0, 0.03) !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    color: #374151 !important;
}

.tbe-week-item--alert {
    background: rgba(212, 175, 55, 0.1);
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 8px;
    padding: 0.7rem 0.85rem;
    margin-top: 0.45rem;
}
.tbe-week-pill--alert {
    border-color: rgba(212, 175, 55, 0.5);
    background: rgba(212, 175, 55, 0.12);
}
.tbe-week-pill--alert .tbe-week-pill-count {
    color: #D4AF37;
}
.freq-table tr.freq-row--resched td {
    background: rgba(212, 175, 55, 0.08);
}
.freq-row--resched .freq-student {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}
.tbe-week-item--alert:first-child { border-top: 1px solid rgba(212, 175, 55, 0.35); padding-top: 0.7rem; }

.tbe-resched-inbox {
    margin: 0 0 1.25rem;
    padding: 1.1rem 1.15rem 1.15rem;
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 8px;
    background: rgba(212, 175, 55, 0.1);
}
.tbe-resched-inbox-kicker {
    margin: 0 0 0.25rem;
    font-family: 'Source Code Pro', monospace;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #D4AF37;
}
.tbe-resched-inbox-title {
    margin: 0 0 0.35rem;
    font-family: Figtree, sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--tbe-text);
}
.tbe-resched-inbox-lead {
    margin: 0 0 0.85rem;
    font-size: 13px;
    line-height: 1.5;
    color: var(--tbe-muted);
}
.tbe-resched-inbox-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.tbe-resched-inbox-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.85rem 0.95rem;
    border-radius: 8px;
    border: 1px solid var(--tbe-border);
    background: var(--tbe-surface);
}
.tbe-resched-inbox-item-body { min-width: 0; flex: 1; }
.tbe-resched-inbox-name {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--tbe-text);
}
.tbe-resched-inbox-reason {
    margin: 0.3rem 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--tbe-text);
    overflow-wrap: anywhere;
}
.tbe-resched-inbox-meta {
    margin: 0.35rem 0 0;
    font-size: 12px;
    color: var(--tbe-muted);
}
#ev-reschedule-banner {
    margin: 0 0 0.9rem;
    padding: 0.8rem 0.9rem;
    border-radius: 8px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    background: rgba(212, 175, 55, 0.1);
}
#ev-reschedule-banner[hidden] { display: none !important; }
#ev-reschedule-banner p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--tbe-text); }
#ev-reschedule-banner .ev-resched-kicker {
    margin: 0 0 0.25rem;
    font-family: 'Source Code Pro', monospace;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #D4AF37;
}

html[data-tbe-theme="light"] .tbe-resched-inbox,
html[data-tbe-theme="light"] #ev-reschedule-banner,
html[data-tbe-theme="light"] .tbe-week-item--alert,
html[data-tbe-theme="light"] .tbe-week-pill--alert,
html[data-tbe-theme="light"] .freq-table tr.freq-row--resched td {
    background: rgba(212, 175, 55, 0.12);
    border-color: rgba(180, 140, 30, 0.35);
}
html[data-tbe-theme="light"] .tbe-resched-inbox-item {
    background: #FFFFFF;
    border-color: rgba(0, 0, 0, 0.10);
}
