/* Blooming English · Global UI consistency layer
   Loaded after portal-specific styles so shared rules stay consistent site-wide. */

:root {
    --be-control-height: 46px;
}

/* All factual/data numbers use the body sans-serif family. */
:is(
    .stat-card > strong,
    .admin-stat-card > strong,
    .admin-mini-grid strong,
    .admin-storage-summary > strong,
    .storage-summary strong,
    .soft-count,
    .student-number,
    .score,
    .score-row strong,
    .score-field input,
    .score-chip strong,
    .report-number,
    .overview-metrics,
    .video-file-facts,
    .student-class-meta,
    .class-card-meta,
    .admin-table,
    .table-wrap table,
    time,
    [data-number]
) {
    font-family: var(--be-font-body) !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: normal;
}

input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="time"] {
    font-family: var(--be-font-body) !important;
    font-variant-numeric: tabular-nums;
}

/* Shared form language. */
input,
select,
textarea {
    border-radius: 12px;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select {
    min-height: var(--be-control-height);
}

input:focus,
select:focus,
textarea:focus {
    outline: 0;
    border-color: var(--be-blue) !important;
    box-shadow: 0 0 0 4px rgba(144,169,214,.14);
}

/* Tables should read like application data, not display typography. */
table,
thead,
tbody,
th,
td {
    font-family: var(--be-font-body);
    font-variant-numeric: tabular-nums;
}

th {
    color: var(--be-text-soft);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .035em;
}

/* Shared interactive motion/focus. */
:is(.button,.secondary-button,.logout,.top-account-link,.auth-primary,.account-back,.account-logout,.public-button,.public-login-button) {
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

/* Keep data labels and status pills compact and sans. */
:is(.badge,.status,.role-pill,.status-pill,.video-unavailable-badge) {
    font-family: var(--be-font-body);
    font-variant-numeric: tabular-nums;
}

/* Mobile touch targets. */
@media (max-width: 720px) {
    :is(.button,.secondary-button,.logout,.top-account-link,.account-back,.account-logout) {
        min-height: 42px;
    }
}
