:root {
    --bg: #eef5ff;
    --bg-deep: #dbeafe;
    --surface: rgba(255, 255, 255, 0.94);
    --surface-strong: #ffffff;
    --surface-soft: #f4faff;
    --navy-950: #081527;
    --navy-900: #0b1f3a;
    --navy-800: #10305b;
    --navy-700: #18437e;
    --sky-500: #2f9bff;
    --sky-400: #54b4ff;
    --sky-300: #8fd1ff;
    --text: #12233f;
    --text-soft: #5d6b86;
    --success: #0f9d74;
    --warning: #f59f19;
    --danger: #df5a5a;
    --border: rgba(17, 41, 79, 0.1);
    --border-strong: rgba(24, 67, 126, 0.18);
    --shadow-xs: 0 10px 24px rgba(8, 21, 39, 0.06);
    --shadow-sm: 0 16px 38px rgba(11, 31, 58, 0.1);
    --shadow-md: 0 24px 55px rgba(11, 31, 58, 0.14);
    --shadow-lg: 0 30px 80px rgba(8, 21, 39, 0.18);
    --gradient-main: linear-gradient(135deg, #0b1f3a 0%, #18437e 48%, #54b4ff 100%);
    --gradient-soft: linear-gradient(135deg, rgba(47, 155, 255, 0.18), rgba(143, 209, 255, 0.08));
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    min-height: 100%;
    margin: 0;
    color: var(--text);
    font-size: 0.95rem;
    font-family: "Manrope", sans-serif;
    background:
        radial-gradient(circle at top left, rgba(var(--theme-secondary-rgb), 0.16), transparent 28%),
        radial-gradient(circle at bottom right, rgba(var(--theme-primary-rgb), 0.1), transparent 30%),
        linear-gradient(180deg, #f8fbff 0%, var(--bg) 100%);
}

a {
    color: var(--navy-700);
}

.app-shell,
.auth-shell {
    min-height: 100vh;
}

.app-shell {
    position: relative;
}

.shell-grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    min-height: 100vh;
    transition: grid-template-columns 0.26s ease;
}

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 1.2rem 1rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),
        var(--sidebar-gradient);
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    border-right: 1px solid rgba(255, 255, 255, 0.06);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.sidebar::-webkit-scrollbar,
.console-sidebar::-webkit-scrollbar {
    width: 8px;
}

.sidebar::-webkit-scrollbar-thumb,
.console-sidebar::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
}

.sidebar > nav,
.console-sidebar > nav {
    flex: 1 0 auto;
    min-height: 0;
}

.sidebar-glow {
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    filter: blur(18px);
    opacity: 0.35;
    pointer-events: none;
}

.sidebar-glow-top {
    top: -80px;
    right: -70px;
    background: rgba(var(--theme-secondary-rgb), 0.35);
}

.sidebar-glow-bottom {
    bottom: -90px;
    left: -60px;
    background: rgba(var(--theme-secondary-rgb), 0.2);
}

.brand-card,
.auth-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.brand-mark,
.auth-brand-mark {
    width: 62px;
    height: 62px;
    border-radius: 20px;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.22), rgba(84, 180, 255, 0.15));
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 14px 32px rgba(0, 0, 0, 0.16);
    color: #fff;
    font-weight: 800;
    font-size: 1.3rem;
}

.brand-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.18s ease;
    will-change: transform;
}

.system-brand-logo {
    transform: translate(var(--system-logo-offset-x), var(--system-logo-offset-y));
}

.login-brand-logo {
    transform: translate(var(--login-logo-offset-x), var(--login-logo-offset-y));
}

.brand-title {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
}

.brand-subtitle {
    margin-top: 0.2rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.85rem;
}

.sidebar-highlight {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.95rem;
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(84, 180, 255, 0.08));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.sidebar-highlight-icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.14);
    font-size: 1.1rem;
}

.sidebar-highlight-label {
    font-weight: 800;
    font-size: 0.94rem;
}

.sidebar-highlight-text {
    margin-top: 0.15rem;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.68);
}

.nav-group {
    border-radius: 22px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px);
}

.nav-group.open {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(143, 209, 255, 0.22);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.12);
}

.nav-group-toggle {
    width: 100%;
    border: 0;
    background: transparent;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    text-align: left;
    padding: 0.88rem 1rem;
    font-weight: 700;
}

.nav-group-title {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
}

.nav-group-title i {
    font-size: 1rem;
    color: var(--sky-300);
}

.nav-group-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    transition: transform 0.24s ease;
}

.nav-group.open .nav-group-caret {
    transform: rotate(135deg);
}

.nav-group-menu {
    display: grid;
    gap: 0.45rem;
    max-height: 0;
    overflow: hidden;
    padding: 0 0.72rem;
    transition: max-height 0.3s ease, padding 0.3s ease;
}

.nav-group.open .nav-group-menu {
    padding: 0 0.72rem 0.72rem;
}

.nav-sublink {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.68rem 0.82rem;
    border-radius: 16px;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    font-size: 0.9rem;
    background: rgba(255, 255, 255, 0.02);
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.nav-sublink-icon {
    width: 28px;
    height: 28px;
    border-radius: 10px;
    display: inline-grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.09);
    font-size: 0.85rem;
}

.nav-sublink:hover,
.nav-sublink.active {
    color: #fff;
    transform: translateX(2px);
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.3), rgba(84, 180, 255, 0.14));
}

.sidebar-user {
    margin-top: auto;
    padding: 1rem;
    text-align: center;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.sidebar-user-avatar {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    margin: 0 auto 0.8rem;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, rgba(143, 209, 255, 0.25), rgba(255, 255, 255, 0.16));
    font-size: 1.2rem;
    font-weight: 800;
}

.sidebar-user-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.content {
    padding: 1.1rem 1.25rem 1.3rem;
    min-width: 0;
    transition: padding 0.22s ease;
}

.mobile-toolbar {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    margin-bottom: 1rem;
}

.page-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.sidebar-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    border-radius: 999px;
    font-weight: 800;
    box-shadow: var(--shadow-xs);
}

.sidebar-toggle-btn i {
    font-size: 0.95rem;
}

.floating-menu-toggle {
    position: fixed;
    right: 1rem;
    left: auto;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 1050;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.8rem 1rem;
    border: 1px solid rgba(17, 41, 79, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--navy-900);
    box-shadow: 0 18px 38px rgba(8, 21, 39, 0.16);
    backdrop-filter: blur(18px);
    font-weight: 800;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.floating-menu-toggle:hover,
.floating-menu-toggle:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 22px 46px rgba(8, 21, 39, 0.22);
    background: rgba(255, 255, 255, 0.98);
    outline: none;
}

.floating-menu-toggle i {
    font-size: 1rem;
}

.console-floating-menu-toggle {
    background: rgba(8, 21, 39, 0.92);
    color: #f8fbff;
    border-color: rgba(255, 255, 255, 0.12);
}

.console-floating-menu-toggle:hover,
.console-floating-menu-toggle:focus-visible {
    background: rgba(11, 31, 58, 0.98);
}

body[data-floating-menu-side="left"] .floating-menu-toggle {
    left: 1rem;
    right: auto;
}

body.sidebar-collapsed .shell-grid {
    grid-template-columns: 0 minmax(0, 1fr);
}

body.sidebar-collapsed .console-grid {
    grid-template-columns: 0 minmax(0, 1fr);
}

body.sidebar-collapsed .sidebar,
body.sidebar-collapsed .console-sidebar {
    opacity: 0;
    pointer-events: none;
    transform: translateX(-18px);
}

.page-header {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.15rem;
    animation: fadeUp 0.45s ease both;
}

.analytics-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1rem;
}

.analytics-summary-card {
    padding: 1rem 1.05rem;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 255, 0.94));
    border: 1px solid rgba(17, 41, 79, 0.08);
    box-shadow: var(--shadow-xs);
}

.analytics-summary-label {
    display: block;
    color: var(--text-soft);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.analytics-summary-value {
    display: block;
    margin-top: 0.45rem;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--navy-900);
}

.analytics-acta-form {
    display: block;
}

.analytics-acta-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 1rem;
    align-items: end;
}

.analytics-acta-toolbar-main,
.analytics-acta-toolbar-note {
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(247, 250, 255, 0.92);
}

.analytics-acta-toolbar-note {
    color: var(--text-soft);
    font-size: 0.92rem;
}

.analytics-acta-grid {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 1rem;
}

.analytics-acta-panel {
    box-shadow: none;
    border: 1px solid rgba(17, 41, 79, 0.08);
}

.analytics-acta-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.analytics-acta-status {
    padding: 0.9rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(47, 155, 255, 0.18);
    background: rgba(47, 155, 255, 0.08);
    color: var(--navy-900);
    font-size: 0.92rem;
}

.analytics-inline-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0.65rem;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}

.analytics-status-draft,
.analytics-status-pending {
    background: rgba(245, 159, 25, 0.12);
    color: #9a6700;
    border: 1px solid rgba(245, 159, 25, 0.18);
}

.analytics-status-approved {
    background: rgba(15, 157, 116, 0.12);
    color: #0f7f5f;
    border: 1px solid rgba(15, 157, 116, 0.18);
}

.analytics-status-closed {
    background: rgba(17, 41, 79, 0.12);
    color: #11294f;
    border: 1px solid rgba(17, 41, 79, 0.15);
}

.analytics-status-neutral {
    background: rgba(47, 155, 255, 0.1);
    color: #18437e;
    border: 1px solid rgba(47, 155, 255, 0.16);
}

.analytics-acta-footnote {
    padding: 0.95rem 1rem;
    border-radius: 18px;
    background: rgba(15, 157, 116, 0.08);
    border: 1px solid rgba(15, 157, 116, 0.14);
    color: var(--navy-900);
    font-size: 0.92rem;
}

.analytics-table th {
    white-space: nowrap;
}

.analytics-alert-card {
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--shadow-xs);
}

.analytics-alert-alta {
    border-left: 6px solid #f59f19;
}

.analytics-alert-critica {
    border-left: 6px solid #df5a5a;
}

.analytics-alert-media {
    border-left: 6px solid #2f9bff;
}

.analytics-alert-baja {
    border-left: 6px solid #0f9d74;
}

.print-shell {
    background: linear-gradient(180deg, #f7fbff 0%, #eef5ff 100%);
}

.print-toolbar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: rgba(255, 255, 255, 0.95);
    border-bottom: 1px solid rgba(17, 41, 79, 0.08);
    backdrop-filter: blur(16px);
}

.print-page {
    max-width: 1260px;
    margin: 0 auto;
    padding: 1.25rem;
}

.print-chart-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem;
}

.analytics-closing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem;
}

.analytics-notes-box {
    min-height: 280px;
}

.analytics-formal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.85rem;
}

.analytics-formal-field {
    min-height: 92px;
    border: 1px solid rgba(17, 41, 79, 0.12);
    border-radius: 18px;
    padding: 0.95rem 1rem;
    background: rgba(247, 250, 255, 0.92);
}

.analytics-formal-label {
    display: block;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-soft);
    margin-bottom: 0.75rem;
}

.analytics-formal-value {
    min-height: 2rem;
    display: flex;
    align-items: flex-end;
    padding-bottom: 0.2rem;
    border-bottom: 1px dashed rgba(17, 41, 79, 0.3);
    color: var(--navy-900);
    font-weight: 600;
}

.analytics-writing-space {
    display: grid;
    gap: 1rem;
    min-height: 190px;
}

.analytics-writing-space-filled {
    display: block;
}

.analytics-writing-line {
    min-height: 2.6rem;
    border-bottom: 1px dashed rgba(17, 41, 79, 0.28);
    color: var(--text-soft);
    font-size: 0.95rem;
    font-weight: 600;
    display: flex;
    align-items: flex-end;
    padding-bottom: 0.35rem;
}

.analytics-writing-paragraph {
    min-height: 190px;
    white-space: normal;
    color: var(--navy-900);
    line-height: 1.65;
}

.analytics-writing-line.numbered {
    padding-left: 1.75rem;
    position: relative;
}

.analytics-signature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
}

.analytics-signature-grid-detailed {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.analytics-signature-box {
    text-align: center;
    min-height: 128px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.analytics-signature-line {
    height: 58px;
    border-bottom: 1px solid rgba(17, 41, 79, 0.36);
    margin-bottom: 0.65rem;
}

.analytics-signature-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(247, 250, 255, 0.92);
}

.analytics-signature-role {
    margin: 0;
    font-size: 1rem;
}

.analytics-signature-name {
    font-weight: 700;
    color: var(--navy-900);
}

.analytics-signature-detail,
.analytics-signature-meta,
.analytics-signature-locked {
    color: var(--text-soft);
    font-size: 0.9rem;
}

.analytics-signature-meta {
    display: grid;
    gap: 0.3rem;
}

.analytics-signature-form {
    margin-top: auto;
}

.analytics-commitments-table tbody td {
    height: 3rem;
}

@media (max-width: 767.98px) {
    .analytics-summary-grid {
        grid-template-columns: 1fr 1fr;
    }

    .analytics-acta-toolbar,
    .analytics-acta-grid {
        grid-template-columns: 1fr;
    }

    .print-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .print-chart-grid {
        grid-template-columns: 1fr;
    }

    .analytics-closing-grid,
    .analytics-signature-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    body.print-shell {
        background: #fff;
    }

    .print-toolbar,
    .floating-menu-toggle,
    .sidebar-backdrop,
    .mobile-toolbar,
    .page-footer-note,
    .page-header-actions,
    .sidebar-toggle-btn {
        display: none !important;
    }

    .print-page {
        max-width: none;
        padding: 0;
    }

    .panel-card,
    .analytics-summary-card,
    .analytics-alert-card {
        box-shadow: none !important;
        break-inside: avoid;
    }

    canvas {
        max-height: 260px !important;
    }
}

.page-title-wrap {
    min-width: 0;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    text-transform: uppercase;
    font-size: 0.74rem;
    letter-spacing: 0.14em;
    color: var(--navy-700);
    font-weight: 800;
}

.page-title {
    margin: 0.3rem 0 0.55rem;
    font-size: clamp(1.55rem, 2.8vw, 2.15rem);
    line-height: 1.05;
    font-weight: 800;
}

.page-subtitle {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem 1rem;
    color: var(--text-soft);
    font-size: 0.88rem;
}

.page-subtitle span {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.header-card,
.panel-card,
.metric-card,
.auth-card,
.demo-card,
.auth-feature-card,
.demo-item {
    background: var(--surface);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    border-radius: 24px;
    backdrop-filter: blur(16px);
}

.header-card,
.panel-card,
.metric-card {
    padding: 1rem;
}

.header-card {
    min-width: 240px;
    display: flex;
    align-items: center;
    gap: 0.95rem;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(230, 244, 255, 0.94)),
        var(--surface);
}

.header-card-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.2rem;
    background: var(--gradient-main);
    box-shadow: var(--shadow-xs);
}

.header-pill,
.auth-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.52rem 0.88rem;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.12), rgba(84, 180, 255, 0.08));
    color: var(--navy-800);
    font-weight: 800;
    border: 1px solid rgba(47, 155, 255, 0.18);
}

.page-content {
    display: grid;
    gap: 1rem;
}

.page-content > *,
.module-section {
    min-width: 0;
    max-width: 100%;
}

.module-section,
.module-anchor {
    scroll-margin-top: 5rem;
    animation: fadeUp 0.48s ease both;
}

.nav-tabs {
    border-bottom: 1px solid rgba(17, 41, 79, 0.12);
    gap: 0.4rem;
}

.nav-tabs .nav-link {
    border: 0;
    border-radius: 16px 16px 0 0;
    color: var(--text-soft);
    font-weight: 700;
    padding: 0.7rem 1rem;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-link:hover {
    color: var(--navy-900);
    background: linear-gradient(180deg, rgba(47, 155, 255, 0.12), rgba(84, 180, 255, 0.04));
    box-shadow: inset 0 -2px 0 var(--sky-500);
}

.accordion-item {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-xs);
}

.accordion-button {
    font-weight: 800;
    color: var(--navy-900);
    background: rgba(255, 255, 255, 0.9);
}

.accordion-button:not(.collapsed) {
    color: var(--navy-900);
    background: linear-gradient(180deg, rgba(47, 155, 255, 0.1), rgba(255, 255, 255, 0.94));
    box-shadow: inset 0 -1px 0 rgba(17, 41, 79, 0.08);
}

.auth-layout {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 1.4rem);
    align-items: start;
}

.auth-hero {
    padding: 2rem;
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at top right, rgba(143, 209, 255, 0.18), transparent 28%),
        linear-gradient(160deg, #081527 0%, #0b1f3a 45%, #18437e 100%);
    box-shadow: var(--shadow-lg);
}

.auth-form-card {
    padding: 1.4rem;
    border-radius: 28px;
}

.auth-title {
    margin: 0;
    font-size: clamp(1.9rem, 4vw, 2.6rem);
    line-height: 1.02;
    font-weight: 800;
}

.auth-subtitle {
    margin-top: 0.9rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.98rem;
    line-height: 1.65;
}

.metric-grid,
.chart-grid,
.two-column-grid,
.auth-feature-grid {
    display: grid;
    gap: 1rem;
}

.metric-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.chart-grid,
.two-column-grid,
.auth-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.metric-card {
    min-height: 128px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 255, 0.96)),
        var(--surface);
}

.metric-card::after {
    content: "";
    position: absolute;
    top: -40px;
    right: -40px;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(84, 180, 255, 0.18), transparent 68%);
}

.metric-label {
    color: var(--text-soft);
    font-weight: 700;
    font-size: 0.9rem;
}

.metric-value {
    position: relative;
    z-index: 1;
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    line-height: 1;
    font-weight: 800;
    color: var(--navy-900);
}

.section-title {
    margin-bottom: 0.75rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--navy-900);
}

.panel-card {
    position: relative;
    overflow: hidden;
}

.panel-card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--navy-700), var(--sky-500), var(--sky-300));
    opacity: 0.9;
}

.avatar,
.avatar-lg {
    object-fit: cover;
    border-radius: 18px;
    box-shadow: var(--shadow-xs);
}

.avatar {
    width: 48px;
    height: 48px;
}

.avatar-lg {
    width: 78px;
    height: 78px;
}

.avatar-placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: var(--navy-700);
    font-weight: 800;
}

.lectionary-entry-actions {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(17, 41, 79, 0.1);
}

.lectionary-inline-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid rgba(17, 41, 79, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(248, 251, 255, 0.95), rgba(255, 255, 255, 0.95));
}

.lectionary-inline-form .form-select,
.lectionary-inline-form .form-control {
    min-width: min(100%, 220px);
}

.lectionary-inline-form .btn {
    white-space: nowrap;
}

.auth-shell {
    position: relative;
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
    padding: clamp(0.9rem, 2vw, 1.5rem);
    background:
        radial-gradient(circle at top left, rgba(var(--theme-secondary-rgb), 0.18), transparent 26%),
        radial-gradient(circle at bottom right, rgba(var(--theme-primary-rgb), 0.12), transparent 28%),
        linear-gradient(180deg, #f8fbff 0%, var(--bg) 100%);
}

.auth-shell::-webkit-scrollbar {
    width: 11px;
}

.auth-shell::-webkit-scrollbar-track {
    background: rgba(11, 31, 58, 0.05);
}

.auth-shell::-webkit-scrollbar-thumb {
    border-radius: 999px;
    border: 2px solid rgba(248, 251, 255, 0.95);
    background: linear-gradient(180deg, rgba(24, 67, 126, 0.72), rgba(84, 180, 255, 0.82));
}

.auth-shell-content {
    position: relative;
    z-index: 1;
    width: min(1240px, 100%);
    margin: 0 auto;
    display: grid;
    gap: 1rem;
    align-content: start;
    padding-block: 0.2rem 0.75rem;
}

.auth-grid-overlay {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(11, 31, 58, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11, 31, 58, 0.035) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: radial-gradient(circle at center, rgba(0, 0, 0, 0.78), transparent 88%);
    pointer-events: none;
    opacity: 0.52;
}

.auth-bg-shape {
    position: absolute;
    border-radius: 999px;
    filter: blur(20px);
    pointer-events: none;
    opacity: 0.65;
}

.auth-bg-shape-top {
    top: 0;
    left: 0;
    width: 260px;
    height: 260px;
    transform: translate(-32%, -32%);
    background: rgba(var(--theme-secondary-rgb), 0.24);
}

.auth-bg-shape-bottom {
    right: 0;
    bottom: 0;
    width: 280px;
    height: 280px;
    background: rgba(var(--theme-primary-rgb), 0.14);
}

.auth-panel {
    position: relative;
    z-index: 1;
    width: min(1220px, 100%);
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 1.35rem;
    align-items: stretch;
}

.auth-copy,
.auth-card {
    animation: fadeUp 0.55s ease both;
}

.auth-copy {
    display: grid;
    gap: 1.15rem;
    align-content: center;
}

.auth-hero-card {
    display: grid;
    gap: 1.2rem;
    padding: 1.45rem;
    border-radius: 30px;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.92), rgba(234, 245, 255, 0.78)),
        rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(17, 41, 79, 0.08);
    box-shadow: var(--shadow-lg);
    backdrop-filter: blur(18px);
}

.auth-hero-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.auth-system-badge,
.auth-period-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.48rem 0.82rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.auth-system-badge {
    background: rgba(11, 31, 58, 0.08);
    color: var(--navy-800);
}

.auth-period-pill {
    background: rgba(47, 155, 255, 0.12);
    color: var(--navy-700);
    border: 1px solid rgba(47, 155, 255, 0.16);
}

.auth-brand-hero {
    align-items: flex-start;
}

.auth-brand-mark-lg {
    width: 84px;
    height: 84px;
    border-radius: 26px;
}

.auth-brand-copy {
    display: grid;
    gap: 0.22rem;
}

.auth-system-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--sky-500);
}

.auth-hero-text {
    font-size: 1.02rem;
    line-height: 1.65;
}

.auth-highlight-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.auth-highlight-item {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    padding: 0.95rem 1rem;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(24, 67, 126, 0.08);
    box-shadow: 0 10px 22px rgba(8, 21, 39, 0.06);
}

.auth-highlight-icon,
.auth-role-icon,
.auth-support-icon {
    width: 42px;
    height: 42px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    background: var(--gradient-soft);
    color: var(--navy-700);
    flex: 0 0 auto;
    font-size: 1rem;
}

.auth-highlight-label {
    font-size: 0.78rem;
    color: var(--text-soft);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 800;
}

.auth-highlight-value {
    font-size: 0.94rem;
    font-weight: 800;
    color: var(--navy-900);
}

.auth-preview-window {
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(255, 255, 255, 0.84);
    box-shadow: 0 22px 48px rgba(8, 21, 39, 0.08);
}

.auth-preview-header {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.9rem 1rem;
    background: rgba(11, 31, 58, 0.045);
    border-bottom: 1px solid rgba(17, 41, 79, 0.08);
}

.auth-preview-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
}

.auth-preview-dot-danger { background: #ff6f6f; }
.auth-preview-dot-warning { background: #f6b23c; }
.auth-preview-dot-success { background: #2fcb87; }

.auth-preview-title {
    margin-left: 0.3rem;
    font-size: 0.85rem;
    color: var(--text-soft);
    font-weight: 700;
}

.auth-preview-body {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1rem;
    padding: 1rem;
}

.auth-preview-column {
    display: grid;
    gap: 0.85rem;
}

.auth-preview-card {
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 22px;
    border: 1px solid rgba(17, 41, 79, 0.08);
}

.auth-preview-card-primary {
    color: #fff;
    background: linear-gradient(145deg, #0b1f3a 0%, #18437e 62%, #2f9bff 100%);
    box-shadow: 0 18px 34px rgba(11, 31, 58, 0.22);
}

.auth-preview-card-primary span,
.auth-preview-card-primary .auth-preview-kicker {
    color: rgba(255, 255, 255, 0.8);
}

.auth-preview-kicker {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}

.auth-preview-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.auth-preview-mini,
.auth-role-item,
.auth-support-item {
    display: grid;
    gap: 0.3rem;
    padding: 0.95rem;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(17, 41, 79, 0.08);
}

.auth-preview-mini-label {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-soft);
    font-weight: 800;
}

.auth-role-grid {
    display: grid;
    gap: 0.75rem;
}

.auth-brand h1,
.auth-copy h1 {
    margin: 0;
    font-size: clamp(2rem, 4.6vw, 3.25rem);
    line-height: 1.03;
    font-weight: 800;
    color: var(--navy-900);
}

.auth-copy p {
    margin: 0;
    max-width: 44rem;
    color: var(--text-soft);
    font-size: 1rem;
}

.auth-feature-card {
    display: flex;
    gap: 0.8rem;
    align-items: flex-start;
    padding: 0.95rem;
}

.auth-feature-card i,
.demo-item-icon {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--gradient-soft);
    color: var(--navy-700);
    font-size: 1rem;
    flex: 0 0 auto;
}

.auth-card {
    padding: clamp(1.1rem, 2vw, 1.55rem);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 255, 0.97)),
        var(--surface);
    box-shadow: var(--shadow-lg);
}

.auth-card-enhanced {
    display: grid;
    gap: 1.1rem;
    padding: clamp(1.15rem, 2vw, 1.65rem);
}

.auth-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
}

.auth-login-seal {
    display: flex;
    align-items: flex-start;
    gap: 0.95rem;
}

.auth-login-seal-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.16), rgba(11, 31, 58, 0.08));
    color: var(--navy-800);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.auth-option-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.auth-option-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.78rem;
    border-radius: 999px;
    background: rgba(11, 31, 58, 0.05);
    color: var(--navy-800);
    font-size: 0.86rem;
    font-weight: 700;
}

.auth-submit {
    margin-top: 0.25rem;
    min-height: 56px;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.auth-alert {
    width: min(1220px, 100%);
    max-width: 1220px;
}

.demo-card {
    padding: 1.2rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(242, 248, 255, 0.92)),
        var(--surface);
}

.demo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.demo-item {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.9rem;
}

.input-icon-group {
    position: relative;
}

.input-icon-group-auth .form-control {
    min-height: 58px;
    border-radius: 18px;
    border-color: rgba(24, 67, 126, 0.12);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.input-icon-group-auth .form-control:focus {
    border-color: rgba(47, 155, 255, 0.42);
    box-shadow: 0 0 0 0.25rem rgba(47, 155, 255, 0.12);
}

.input-icon {
    position: absolute;
    left: 0.95rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--navy-700);
    pointer-events: none;
    z-index: 1;
}

.input-icon-group .form-control {
    padding-left: 2.7rem;
}

.input-icon-group-password .form-control {
    padding-right: 3.2rem;
}

.auth-password-toggle {
    position: absolute;
    top: 50%;
    right: 0.7rem;
    transform: translateY(-50%);
    border: 0;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(11, 31, 58, 0.05);
    color: var(--navy-700);
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.auth-password-toggle:hover {
    background: rgba(47, 155, 255, 0.12);
    color: var(--navy-900);
}

.auth-form-note {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    background: rgba(11, 31, 58, 0.045);
    color: var(--text-soft);
    font-size: 0.87rem;
}

.auth-form-note i {
    color: var(--sky-500);
    margin-top: 0.05rem;
}

.auth-support-card {
    display: grid;
    gap: 0.85rem;
}

.auth-quick-access {
    display: grid;
    gap: 0.85rem;
    margin: 1.15rem 0;
}

.auth-quick-access-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--text-soft);
    font-size: 0.88rem;
    font-weight: 800;
}

.auth-quick-access-title::before,
.auth-quick-access-title::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(11, 31, 58, 0.10);
}

.auth-quick-access-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.auth-quick-access-card {
    border: 1px solid rgba(11, 31, 58, 0.10);
    background: #ffffff;
    color: var(--text-main);
    border-radius: 16px;
    padding: 0.85rem 0.55rem;
    display: grid;
    place-items: center;
    gap: 0.42rem;
    min-height: 82px;
    box-shadow: 0 12px 28px rgba(11, 31, 58, 0.045);
}

.auth-quick-access-card span {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgba(47, 155, 255, 0.10);
    color: var(--quick-accent, var(--sky-500));
    font-weight: 900;
}

.auth-quick-access-card strong {
    font-size: 0.78rem;
}

.auth-support-item {
    grid-template-columns: 42px 1fr;
    align-items: start;
    gap: 0.85rem;
}

.auth-footer-note {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    color: var(--text-soft);
    font-size: 0.82rem;
    font-weight: 700;
    text-align: center;
    padding-bottom: 0.4rem;
}

.table-responsive {
    border-radius: 18px;
}

.table {
    margin-bottom: 0;
    --bs-table-bg: transparent;
}

.table > :not(caption) > * > * {
    padding: 0.72rem 0.58rem;
    border-color: rgba(17, 41, 79, 0.08);
    vertical-align: middle;
}

.table thead th {
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--navy-700);
    background: rgba(84, 180, 255, 0.08);
}

.table tbody tr:hover {
    background: rgba(84, 180, 255, 0.05);
}

.form-control,
.form-select {
    min-height: 46px;
    padding: 0.62rem 0.78rem;
    border-radius: 14px;
    border: 1px solid rgba(17, 41, 79, 0.14);
    background: rgba(255, 255, 255, 0.94);
    color: var(--text);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(47, 155, 255, 0.38);
    box-shadow: 0 0 0 0.22rem rgba(47, 155, 255, 0.14);
}

.btn {
    border-radius: 14px;
    font-weight: 800;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-xs);
}

.btn-primary {
    border-color: transparent;
    background: var(--gradient-main);
}

.btn-outline-primary {
    color: var(--navy-700);
    border-color: rgba(24, 67, 126, 0.18);
    background: rgba(255, 255, 255, 0.88);
}

.btn-outline-secondary {
    color: var(--navy-800);
    border-color: rgba(17, 41, 79, 0.12);
    background: rgba(255, 255, 255, 0.88);
}

.btn-dark {
    background: linear-gradient(135deg, var(--navy-900), var(--navy-700));
    border-color: transparent;
}

.permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.role-access-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
}

.role-profile-card,
.role-access-stats-card,
.role-focus-card,
.permission-group-card,
.role-function-card {
    border: 1px solid var(--border);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
}

.role-profile-card,
.role-access-stats-card,
.role-focus-card {
    padding: 1.1rem 1.15rem;
}

.role-profile-card {
    background: linear-gradient(145deg, rgba(14, 116, 144, 0.08), rgba(255, 255, 255, 0.96));
}

.role-profile-eyebrow {
    font-size: 0.73rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate-500);
    font-weight: 700;
    margin-bottom: 0.45rem;
}

.role-profile-title {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--navy-900);
    margin-bottom: 0.25rem;
}

.role-profile-function {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.75rem;
    border-radius: 999px;
    background: rgba(15, 118, 110, 0.12);
    color: #0f766e;
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.65rem;
}

.role-profile-summary,
.permission-group-description {
    color: var(--slate-500);
    line-height: 1.5;
}

.role-access-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.role-access-stat {
    padding: 0.85rem 0.9rem;
    border-radius: 18px;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.role-access-stat-label {
    display: block;
    font-size: 0.78rem;
    color: var(--slate-500);
    margin-bottom: 0.2rem;
}

.role-access-stat-value {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--navy-900);
}

.role-route-summary {
    padding-top: 0.8rem;
    border-top: 1px solid rgba(148, 163, 184, 0.18);
}

.role-focus-chips,
.role-filter-strip,
.role-permission-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.role-focus-chip,
.role-filter-chip,
.permission-group-count {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: rgba(248, 250, 252, 0.96);
    color: var(--navy-800);
    font-size: 0.8rem;
    font-weight: 700;
}

.role-filter-chip {
    cursor: pointer;
    transition: 0.2s ease;
}

.role-filter-chip.active,
.role-filter-chip:hover {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.14), rgba(14, 116, 144, 0.14));
    border-color: rgba(37, 99, 235, 0.28);
    color: var(--navy-900);
}

.role-permission-workbench {
    display: grid;
    gap: 1rem;
}

.role-permission-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 1rem;
    align-items: end;
}

.role-permission-search {
    display: grid;
    gap: 0.35rem;
}

.role-function-presets {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.85rem;
}

.role-function-card {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.95rem 1rem;
    align-items: flex-start;
}

.role-function-copy {
    display: grid;
    gap: 0.25rem;
}

.permission-groups-board {
    display: grid;
    gap: 1rem;
}

.permission-group-card {
    padding: 1rem 1rem 1.05rem;
}

.permission-group-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 0.85rem;
}

.permission-group-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--navy-900);
    margin-bottom: 0.25rem;
}

.permission-group-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
}

.permission-grid-group {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.permission-item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.82rem 0.88rem;
    border-radius: 18px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.78);
}

.permission-item.permission-item-checked {
    border-color: rgba(37, 99, 235, 0.26);
    background: linear-gradient(145deg, rgba(37, 99, 235, 0.08), rgba(255, 255, 255, 0.96));
}

.permission-item.permission-item-default {
    box-shadow: inset 0 0 0 1px rgba(20, 184, 166, 0.18);
}

.permission-item.permission-item-disabled {
    opacity: 0.52;
    border-style: dashed;
    background: rgba(148, 163, 184, 0.14);
}

.permission-copy {
    display: grid;
    gap: 0.12rem;
}

.permission-title {
    font-weight: 700;
    color: var(--navy-900);
}

.permission-meta {
    color: var(--slate-500);
    font-size: 0.77rem;
    line-height: 1.35;
}

@media (max-width: 1199.98px) {
    .role-access-overview,
    .role-permission-toolbar {
        grid-template-columns: 1fr;
    }

    .permission-grid-group {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .role-access-stats,
    .permission-grid,
    .permission-grid-group {
        grid-template-columns: 1fr;
    }

    .permission-group-header,
    .role-function-card {
        flex-direction: column;
    }

    .permission-group-actions {
        justify-content: flex-start;
    }
}

.chart-canvas {
    width: 100%;
    min-height: 280px;
}

.signature-box {
    border-radius: 22px;
    border: 1px dashed rgba(24, 67, 126, 0.22);
    background: rgba(255, 255, 255, 0.95);
    padding: 0.8rem;
}

.signature-box canvas {
    width: 100%;
    height: 220px;
    background: #fff;
    border-radius: 16px;
}

.sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1030;
    border: 0;
    background: rgba(8, 21, 39, 0.45);
}

.admin-trimester-grid,
.category-board,
.attendance-sheet {
    display: grid;
    gap: 1rem;
}

.gradebook-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.95rem;
}

.gradebook-summary-card {
    display: grid;
    gap: 0.35rem;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid var(--border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 255, 0.95)),
        var(--surface);
    box-shadow: var(--shadow-xs);
}

.gradebook-summary-label,
.gradebook-summary-meta {
    color: var(--text-soft);
}

.gradebook-summary-label {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}

.gradebook-summary-value {
    font-size: 1.05rem;
    color: var(--navy-900);
}

.gradebook-summary-meta {
    font-size: 0.84rem;
}

.gradebook-workflow-strip,
.gradebook-focus-strip,
.gradebook-pedagogy-overview,
.gradebook-achievement-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.9rem;
}

.gradebook-workflow-card,
.gradebook-focus-card,
.gradebook-pedagogy-card,
.gradebook-achievement-card {
    display: grid;
    gap: 0.28rem;
    padding: 0.95rem 1rem;
    border-radius: 22px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--shadow-xs);
}

.gradebook-workflow-card span,
.gradebook-focus-card span,
.gradebook-pedagogy-card span {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-soft);
}

.gradebook-workflow-card strong,
.gradebook-focus-card strong,
.gradebook-pedagogy-card strong,
.gradebook-achievement-card .fw-semibold {
    color: var(--navy-900);
}

.gradebook-workflow-card small,
.gradebook-focus-card small,
.gradebook-pedagogy-card p {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.84rem;
}

.gradebook-create-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.gradebook-create-panel,
.gradebook-badge-assignment-card {
    padding: 1rem 1.05rem;
    border-radius: 24px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(248, 251, 255, 0.88);
}

.gradebook-create-title {
    margin: 0 0 0.85rem;
    font-size: 1rem;
    color: var(--navy-900);
}

.gradebook-create-hint {
    padding: 0.82rem 0.9rem;
    border-radius: 18px;
    background: rgba(47, 155, 255, 0.08);
    color: var(--text-secondary);
    font-size: 0.88rem;
}

.gradebook-inline-status {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.gradebook-tag-editor {
    display: grid;
    gap: 0.55rem;
}

.gradebook-tag-list,
.gradebook-inline-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.gradebook-tag-chip,
.gradebook-inline-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    padding: 0.42rem 0.72rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.10);
    color: #1d4ed8;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid rgba(37, 99, 235, 0.14);
}

.gradebook-inline-tag.is-light {
    color: #fff;
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.24);
}

.gradebook-tag-chip-remove {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    padding: 0;
}

.gradebook-student-selector {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.65rem;
}

.gradebook-student-selector-item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.78rem 0.85rem;
    border-radius: 18px;
    border: 1px solid rgba(17, 41, 79, 0.1);
    background: #fff;
}

.gradebook-student-selector-item span {
    display: grid;
}

.gradebook-student-selector-item small {
    color: var(--text-secondary);
}

.gradebook-chip-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.gradebook-chip {
    display: grid;
    gap: 0.18rem;
    padding: 0.75rem 0.9rem;
    min-width: 190px;
    border-radius: 18px;
    border: 1px solid rgba(24, 67, 126, 0.1);
    background: rgba(255, 255, 255, 0.84);
    box-shadow: 0 10px 20px rgba(8, 21, 39, 0.05);
}

.gradebook-chip span {
    font-size: 0.82rem;
    color: var(--text-soft);
}

.gradebook-classroom-shell {
    border-radius: 24px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(255, 255, 255, 0.74);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    overflow: hidden;
}

.gradebook-classroom-responsive {
    max-width: 100%;
    overflow: auto;
}

.gradebook-classroom-table {
    min-width: 1400px;
    border-collapse: separate;
    border-spacing: 0;
}

.gradebook-classroom-table thead th,
.gradebook-classroom-table tfoot td {
    background: rgba(248, 251, 255, 0.98);
}

.gradebook-classroom-table thead th {
    position: sticky;
    top: 0;
    z-index: 6;
}

.gradebook-group-header {
    text-align: center;
    vertical-align: middle;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--navy-800);
    border-bottom: 0;
    background: linear-gradient(180deg, rgba(11, 31, 58, 0.06), rgba(84, 180, 255, 0.08));
}

.gradebook-group-header-final {
    background: linear-gradient(180deg, rgba(24, 67, 126, 0.12), rgba(84, 180, 255, 0.1));
}

.gradebook-assessment-header,
.gradebook-summary-header {
    min-width: 110px;
    text-align: center;
    vertical-align: bottom;
    font-size: 0.84rem;
    color: var(--navy-900);
}

.gradebook-assessment-header.is-active {
    background: linear-gradient(180deg, rgba(47, 155, 255, 0.14), rgba(255, 255, 255, 0.98));
}

.gradebook-assessment-meta {
    margin-top: 0.2rem;
    font-size: 0.72rem;
    color: var(--text-soft);
}

.gradebook-sticky-code,
.gradebook-sticky-student {
    position: sticky;
    left: 0;
    z-index: 4;
    background: rgba(255, 255, 255, 0.98);
}

.gradebook-sticky-code {
    min-width: 110px;
    max-width: 110px;
}

.gradebook-sticky-student {
    left: 110px;
    min-width: 240px;
    max-width: 240px;
    z-index: 5;
    box-shadow: 10px 0 20px rgba(8, 21, 39, 0.04);
}

.gradebook-score-cell,
.gradebook-category-score,
.gradebook-final-score,
.gradebook-footer-score {
    text-align: center;
    vertical-align: middle;
}

.gradebook-score-cell.is-active {
    background: rgba(47, 155, 255, 0.05);
}

.gradebook-score-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    padding: 0.4rem 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(17, 41, 79, 0.1);
    background: rgba(255, 255, 255, 0.92);
    font-weight: 800;
    color: var(--navy-800);
}

.gradebook-score-chip.has-incident {
    border-color: rgba(223, 90, 90, 0.26);
    background: rgba(223, 90, 90, 0.08);
    color: #9f2f2f;
}

.gradebook-score-chip.is-changed {
    border-color: rgba(249, 115, 22, 0.36);
    background: #fff3df;
    color: #9a3412;
    gap: 0.3rem;
}

.gradebook-score-chip.is-changed::after {
    content: "Editada";
    border-radius: 999px;
    background: rgba(249, 115, 22, 0.14);
    color: #9a3412;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    padding: 0.05rem 0.35rem;
    text-transform: uppercase;
}

.gradebook-category-score,
.gradebook-footer-score {
    font-weight: 700;
    background: rgba(11, 31, 58, 0.035);
}

.gradebook-final-score {
    font-weight: 800;
    color: var(--navy-900);
    background: rgba(47, 155, 255, 0.09);
}

.gradebook-classroom-overview {
    display: grid;
    gap: 1.2rem;
}

.gradebook-classroom-task-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.gradebook-task-card {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border-radius: 24px;
    border: 1px solid rgba(16, 43, 82, 0.1);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 255, 0.96)),
        var(--surface);
    box-shadow: var(--shadow-xs);
    color: inherit;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.gradebook-task-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
    border-color: rgba(var(--theme-secondary-rgb), 0.28);
}

.gradebook-task-card.is-active {
    border-color: rgba(var(--theme-secondary-rgb), 0.46);
    box-shadow: 0 18px 38px rgba(10, 43, 82, 0.14);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(229, 244, 255, 0.98)),
        var(--surface);
}

.gradebook-task-card-top,
.gradebook-task-progress-label,
.gradebook-task-stats {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.gradebook-task-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.34rem 0.68rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--navy-900);
    background: rgba(var(--theme-secondary-rgb), 0.14);
}

.gradebook-task-date,
.gradebook-task-meta {
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.gradebook-task-title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.3;
    color: var(--navy-900);
}

.gradebook-task-progress {
    display: grid;
    gap: 0.45rem;
}

.gradebook-task-progress-bar {
    height: 0.55rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.22);
}

.gradebook-task-progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(16, 62, 122, 0.88), rgba(76, 183, 255, 0.92));
}

.gradebook-task-progress-label strong,
.gradebook-task-stats strong,
.gradebook-classroom-hero-badge strong,
.gradebook-classroom-hero-card strong,
.gradebook-student-stat strong {
    color: var(--navy-900);
    font-size: 1rem;
}

.gradebook-task-progress-label span,
.gradebook-task-stats span,
.gradebook-classroom-hero-badge span,
.gradebook-classroom-hero-card span,
.gradebook-student-stat span,
.gradebook-student-meta {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.gradebook-task-stats div,
.gradebook-classroom-hero-card,
.gradebook-student-stat {
    display: grid;
    gap: 0.2rem;
}

.gradebook-classroom-focus {
    display: grid;
    gap: 1.1rem;
}

.gradebook-classroom-support-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 1rem;
}

.gradebook-classroom-hero {
    display: grid;
    gap: 1rem;
    padding: 1.15rem;
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.97), rgba(27, 86, 157, 0.92));
    color: #fff;
    box-shadow: 0 22px 40px rgba(6, 28, 58, 0.22);
}

.gradebook-classroom-hero-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.gradebook-classroom-hero .gradebook-task-chip {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

.gradebook-classroom-hero-title {
    margin: 0.55rem 0 0.2rem;
    font-size: 1.35rem;
    line-height: 1.2;
    color: #fff;
}

.gradebook-classroom-hero .gradebook-task-meta,
.gradebook-classroom-hero .gradebook-classroom-hero-card span,
.gradebook-classroom-hero .gradebook-classroom-hero-badge span {
    color: rgba(232, 243, 255, 0.82);
}

.gradebook-classroom-hero-badge {
    min-width: 132px;
    padding: 0.85rem 0.95rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.1);
    text-align: right;
}

.gradebook-classroom-hero-badge strong,
.gradebook-classroom-hero-card strong {
    color: #fff;
}

.gradebook-classroom-hero-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.gradebook-classroom-hero-card {
    padding: 0.9rem 0.95rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.gradebook-student-board {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.gradebook-student-card {
    display: grid;
    gap: 0.95rem;
    padding: 1rem;
    border-radius: 24px;
    border: 1px solid rgba(16, 43, 82, 0.08);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 255, 0.95)),
        var(--surface);
    box-shadow: var(--shadow-xs);
}

.gradebook-student-card-head,
.gradebook-student-identity {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
}

.gradebook-student-identity {
    justify-content: flex-start;
}

.gradebook-student-avatar {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    object-fit: cover;
    background: rgba(148, 163, 184, 0.14);
    border: 1px solid rgba(148, 163, 184, 0.2);
}

.gradebook-student-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: var(--navy-900);
    background: linear-gradient(135deg, rgba(84, 180, 255, 0.22), rgba(18, 58, 112, 0.14));
}

.gradebook-student-name {
    font-weight: 700;
    color: var(--navy-900);
}

.gradebook-student-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.38rem 0.72rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
}

.gradebook-student-status.is-complete {
    color: #0c6c4b;
    background: rgba(16, 185, 129, 0.16);
}

.gradebook-student-status.is-pending {
    color: #9a5d00;
    background: rgba(245, 158, 11, 0.18);
}

.gradebook-student-status.is-progress {
    color: #0f4f9d;
    background: rgba(59, 130, 246, 0.16);
}

.gradebook-student-status.is-returned {
    color: #8a2240;
    background: rgba(244, 114, 182, 0.16);
}

.gradebook-student-card-body {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.gradebook-student-note {
    padding: 0.85rem 0.92rem;
    border-radius: 18px;
    background: rgba(243, 247, 255, 0.92);
    color: var(--text-secondary);
    font-size: 0.88rem;
    line-height: 1.5;
}

.gradebook-student-note-secondary {
    background: rgba(228, 241, 255, 0.9);
    color: var(--navy-900);
}

.gradebook-student-evidence {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.gradebook-delivery-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

.gradebook-delivery-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.34rem 0.68rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--navy-900);
    background: rgba(11, 31, 58, 0.06);
}

.gradebook-material-list {
    display: grid;
    gap: 0.85rem;
}

.gradebook-material-card {
    display: grid;
    gap: 0.55rem;
    padding: 0.92rem;
    border-radius: 20px;
    background: rgba(246, 250, 255, 0.92);
    border: 1px solid rgba(16, 43, 82, 0.08);
}

.gradebook-material-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
}

.gradebook-material-title {
    font-weight: 700;
    color: var(--navy-900);
}

.gradebook-material-meta {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.gradebook-material-note {
    color: var(--text-secondary);
    font-size: 0.88rem;
    line-height: 1.5;
}

.gradebook-rubric-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

.gradebook-rubric-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.38rem 0.72rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--navy-900);
    background: rgba(11, 31, 58, 0.06);
}

.gradebook-rubric-pill.is-required {
    color: #0f4f9d;
    background: rgba(59, 130, 246, 0.14);
}

.gradebook-rubric-pill.is-focus {
    color: #fff;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.92), rgba(27, 86, 157, 0.92));
}

.gradebook-rubric-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
    gap: 1rem;
}

.gradebook-rubric-column,
.gradebook-rubric-criteria-list {
    display: grid;
    gap: 0.9rem;
}

.gradebook-rubric-criterion-card,
.gradebook-feedback-card,
.gradebook-rubric-progress-card,
.gradebook-feedback-mini-card,
.gradebook-rubric-student-focus {
    padding: 0.95rem 1rem;
    border-radius: 22px;
    border: 1px solid rgba(16, 43, 82, 0.08);
    background: rgba(247, 250, 255, 0.96);
    box-shadow: var(--shadow-xs);
}

.gradebook-rubric-criterion-head,
.gradebook-feedback-card-head,
.gradebook-rubric-student-head,
.gradebook-feedback-mini-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
}

.gradebook-rubric-criterion-title {
    font-weight: 700;
    color: var(--navy-900);
}

.gradebook-rubric-criterion-meta {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.gradebook-rubric-criterion-description {
    margin-top: 0.55rem;
    color: var(--text-secondary);
    font-size: 0.88rem;
    line-height: 1.5;
}

.gradebook-rubric-progress-grid,
.gradebook-student-feedback-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.gradebook-rubric-progress-card span,
.gradebook-feedback-mini-card span {
    color: var(--text-secondary);
    font-size: 0.82rem;
}

.gradebook-rubric-progress-card strong,
.gradebook-feedback-mini-card strong {
    color: var(--navy-900);
    font-size: 1rem;
}

.gradebook-rubric-progress-bar {
    width: 100%;
    height: 9px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    overflow: hidden;
}

.gradebook-rubric-progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(15, 76, 92, 0.95), rgba(52, 160, 245, 0.92));
}

.gradebook-rubric-progress-bar.is-checklist span {
    background: linear-gradient(90deg, rgba(22, 163, 74, 0.92), rgba(74, 222, 128, 0.92));
}

.gradebook-student-feedback-list {
    display: grid;
    gap: 0.55rem;
}

.gradebook-student-feedback-item {
    display: grid;
    gap: 0.18rem;
    padding: 0.7rem 0.8rem;
    border-radius: 16px;
    background: rgba(238, 245, 255, 0.9);
    color: var(--text-secondary);
    font-size: 0.84rem;
}

.gradebook-student-feedback-item strong {
    color: var(--navy-900);
}

.rubric-check-toggle {
    min-height: 42px;
    display: flex;
    align-items: center;
    padding: 0.75rem 0.85rem;
    border-radius: 18px;
    border: 1px solid rgba(16, 43, 82, 0.08);
    background: rgba(246, 250, 255, 0.95);
}

.admin-trimester-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trimester-card,
.category-board-card,
.attendance-row,
.trimester-banner {
    border-radius: 22px;
    border: 1px solid var(--border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 250, 255, 0.94)),
        var(--surface);
    box-shadow: var(--shadow-xs);
}

.trimester-card {
    padding: 0.92rem;
    display: grid;
    gap: 0.95rem;
}

.trimester-card-new {
    border-style: dashed;
}

.trimester-meta,
.attendance-actions,
.evidence-stat-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
}

.trimester-meta {
    color: var(--text-soft);
    font-size: 0.86rem;
}

.trimester-banner {
    padding: 0.92rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background:
        linear-gradient(135deg, rgba(84, 180, 255, 0.12), rgba(143, 209, 255, 0.08)),
        var(--surface);
}

.module-inline-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.module-inline-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0.58rem 0.96rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    color: var(--navy-800);
    border: 1px solid rgba(17, 41, 79, 0.1);
    background: rgba(255, 255, 255, 0.88);
}

.module-inline-tab:hover,
.module-inline-tab.active {
    background: linear-gradient(135deg, rgba(84, 180, 255, 0.18), rgba(143, 209, 255, 0.1));
    border-color: rgba(47, 155, 255, 0.24);
    color: var(--navy-700);
}

.special-need-fields {
    border-radius: 20px;
}

.camera-card,
.guardian-card {
    border-radius: 22px;
    border: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 250, 255, 0.94));
    box-shadow: var(--shadow-xs);
    padding: 0.95rem;
}

.camera-card-header,
.guardian-card-title {
    margin-bottom: 0.75rem;
}

.guardian-card-title {
    font-weight: 800;
    color: var(--navy-900);
}

.camera-preview-shell {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    border: 1px dashed rgba(24, 67, 126, 0.22);
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.08), rgba(143, 209, 255, 0.06));
    min-height: 220px;
    display: grid;
    place-items: center;
}

.camera-preview,
.camera-video {
    width: 100%;
    min-height: 220px;
    max-height: 280px;
    object-fit: cover;
    border-radius: 18px;
}

.camera-controls {
    display: grid;
    gap: 0.65rem;
}

.guardian-priority-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.guardian-priority-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.82rem 0.9rem;
    border-radius: 18px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.78);
    font-weight: 700;
}

.category-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.category-board-card {
    padding: 0.92rem;
}

.evidence-stat-row {
    padding: 0.78rem 0;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
}

.evidence-stat-row:first-of-type {
    border-top: 0;
}

.attendance-actions .btn {
    min-width: 128px;
}

.lectionary-assignment-panel {
    padding: 1rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 24px;
    background:
        radial-gradient(circle at top right, rgba(47, 155, 255, 0.12), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.92));
    box-shadow: 0 18px 44px rgba(10, 43, 82, 0.08);
}

.lectionary-assignment-panel h3 {
    color: var(--heading-color);
    font-size: 1.15rem;
    font-weight: 900;
}

.lectionary-assignment-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.85rem;
}

.lectionary-assignment-card {
    display: grid;
    gap: 0.32rem;
    min-height: 126px;
    padding: 1rem;
    color: var(--text-main);
    text-decoration: none;
    border: 1px solid rgba(10, 43, 82, 0.1);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 14px 30px rgba(10, 43, 82, 0.06);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.lectionary-assignment-card:hover,
.lectionary-assignment-card:focus-visible,
.lectionary-assignment-card.is-active {
    color: var(--text-main);
    border-color: rgba(47, 155, 255, 0.44);
    box-shadow: 0 18px 42px rgba(47, 155, 255, 0.14);
    transform: translateY(-2px);
    outline: none;
}

.lectionary-assignment-card span,
.lectionary-assignment-card em {
    color: rgba(10, 43, 82, 0.62);
    font-size: 0.74rem;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lectionary-assignment-card strong {
    color: var(--heading-color);
    font-size: 1.05rem;
    line-height: 1.2;
}

.lectionary-assignment-card small {
    color: rgba(10, 43, 82, 0.72);
    font-weight: 700;
}

.lectionary-assignment-card.is-active {
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.16), rgba(255, 255, 255, 0.94));
}

.lectionary-week-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
}

.lectionary-week-day {
    display: grid;
    gap: 0.28rem;
    padding: 0.85rem 0.9rem;
    border-radius: 20px;
    border: 1px solid rgba(17, 41, 79, 0.1);
    background: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    color: var(--navy-800);
    box-shadow: var(--shadow-xs);
}

.lectionary-week-day strong {
    font-size: 1.12rem;
    color: var(--navy-900);
}

.lectionary-week-day.active {
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.95), rgba(47, 155, 255, 0.92));
    color: #fff;
    border-color: transparent;
    box-shadow: 0 16px 32px rgba(24, 67, 126, 0.22);
}

.lectionary-week-day.active strong {
    color: #fff;
}

.lectionary-week-day.filled {
    border-color: rgba(47, 155, 255, 0.26);
    background: linear-gradient(135deg, rgba(84, 180, 255, 0.12), rgba(143, 209, 255, 0.08));
}

.attendance-row {
    padding: 0.82rem;
    display: grid;
    grid-template-columns: 1.25fr 1fr 0.82fr;
    gap: 0.88rem;
    align-items: center;
}

.attendance-row-problem {
    border-radius: 22px;
    border: 1px solid rgba(245, 159, 25, 0.24);
    background: linear-gradient(135deg, rgba(245, 159, 25, 0.08), rgba(255, 255, 255, 0.92));
}

.attendance-choices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

.attendance-choice {
    position: relative;
    margin: 0;
}

.attendance-choice input {
    position: absolute;
    inset: 0;
    opacity: 0;
}

.attendance-choice span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.62rem 0.45rem;
    border-radius: 16px;
    border: 1px solid rgba(17, 41, 79, 0.12);
    background: #fff;
    font-weight: 800;
    color: var(--navy-800);
    transition: all 0.2s ease;
}

.attendance-choice input:checked + span {
    background: var(--gradient-main);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 14px 28px rgba(24, 67, 126, 0.18);
}

.attendance-observation .form-control {
    min-height: 46px;
}

.lectionary-checklist,
.lectionary-student-grid,
.lectionary-history-report,
.lectionary-history-list {
    display: grid;
    gap: 0.85rem;
}

.lectionary-checklist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lectionary-check-item,
.lectionary-student-check {
    position: relative;
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.9rem 1rem;
    border-radius: 20px;
    border: 1px solid rgba(17, 41, 79, 0.1);
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--shadow-xs);
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.lectionary-check-item:hover,
.lectionary-student-check:hover {
    transform: translateY(-1px);
    border-color: rgba(47, 155, 255, 0.28);
    box-shadow: 0 12px 24px rgba(8, 21, 39, 0.08);
}

.lectionary-check-item input,
.lectionary-student-check input {
    width: 18px;
    height: 18px;
    margin-top: 0.18rem;
    accent-color: var(--sky-500);
    flex: 0 0 auto;
}

.lectionary-check-item span,
.lectionary-student-check span {
    display: grid;
    gap: 0.22rem;
}

.lectionary-check-item strong,
.lectionary-student-check strong,
.lectionary-history-entry strong,
.lectionary-history-day h3 {
    color: var(--navy-900);
}

.lectionary-check-item small,
.lectionary-student-check small,
.lectionary-history-topic span,
.lectionary-history-summary,
.lectionary-history-day p,
.lectionary-history-problem span {
    color: var(--text-soft);
}

.lectionary-problem-box,
.lectionary-history-problem {
    display: grid;
    gap: 0.35rem;
    padding: 0.95rem 1rem;
    border-radius: 20px;
    border: 1px solid rgba(17, 41, 79, 0.1);
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.08), rgba(255, 255, 255, 0.95));
}

.lectionary-student-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lectionary-history-day {
    display: grid;
    gap: 1rem;
    padding: 1.05rem;
    border-radius: 24px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 255, 0.94)),
        var(--surface);
    box-shadow: var(--shadow-xs);
}

.lectionary-history-day-head,
.lectionary-history-entry-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.lectionary-history-date {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.36rem 0.72rem;
    border-radius: 999px;
    background: rgba(47, 155, 255, 0.12);
    color: var(--navy-800);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lectionary-history-day h3 {
    margin: 0.5rem 0 0.2rem;
    font-size: 1.1rem;
    font-weight: 800;
}

.lectionary-history-day p,
.lectionary-history-problem p {
    margin: 0;
}

.lectionary-history-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
}

.lectionary-history-metrics span,
.lectionary-history-topic,
.lectionary-history-entry {
    padding: 0.85rem 0.95rem;
    border-radius: 18px;
}

.lectionary-history-metrics span {
    min-width: 138px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(17, 41, 79, 0.08);
    text-align: center;
    color: var(--text-soft);
    font-size: 0.82rem;
    box-shadow: var(--shadow-xs);
}

.lectionary-history-metrics strong,
.lectionary-history-hour {
    display: block;
    color: var(--navy-900);
    font-weight: 800;
}

.lectionary-history-entry {
    display: grid;
    gap: 0.8rem;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(255, 255, 255, 0.94);
}

.lectionary-history-hour {
    font-size: 0.86rem;
    color: var(--navy-700);
    margin-bottom: 0.28rem;
}

.lectionary-history-topic {
    display: grid;
    gap: 0.2rem;
    background: rgba(47, 155, 255, 0.06);
}

.lectionary-history-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.lectionary-history-summary {
    display: grid;
    gap: 0.45rem;
    font-size: 0.86rem;
}

.alert {
    border-radius: 18px;
    padding: 0.92rem 1rem;
}

.badge {
    border-radius: 999px;
    padding: 0.48rem 0.7rem;
    font-weight: 800;
}

.login-preview-card {
    height: 100%;
    padding: 1.25rem;
    border-radius: 24px;
    border: 1px solid var(--border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 255, 0.96)),
        var(--surface);
    box-shadow: var(--shadow-sm);
}

.theme-swatch-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.theme-swatch-card {
    display: grid;
    gap: 0.5rem;
    padding: 0.95rem;
    border-radius: 20px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.84);
    box-shadow: var(--shadow-xs);
}

.theme-swatch-label {
    font-size: 0.8rem;
    color: var(--text-soft);
    font-weight: 700;
}

.theme-swatch-chip {
    width: 100%;
    height: 50px;
    border-radius: 16px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), var(--shadow-xs);
}

.theme-swatch-chip-border {
    border: 1px solid var(--border);
}

.admin-nav-editor {
    border: 1px solid var(--border);
    border-radius: 20px !important;
    overflow: hidden;
    box-shadow: var(--shadow-xs);
}

.admin-nav-editor + .admin-nav-editor {
    margin-top: 0.9rem;
}

.admin-nav-editor .accordion-button {
    font-weight: 800;
    background: rgba(255, 255, 255, 0.9);
}

.admin-nav-editor .accordion-button:not(.collapsed) {
    background: rgba(47, 155, 255, 0.08);
    color: var(--navy-900);
    box-shadow: none;
}

.admin-nav-editor-child {
    padding-top: 0.25rem;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1200px) {
    .shell-grid {
        grid-template-columns: 276px 1fr;
    }

    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .chart-grid,
    .two-column-grid,
    .auth-feature-grid,
    .admin-trimester-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 992px) {
    .auth-panel {
        grid-template-columns: 1fr;
    }

    .auth-highlight-strip,
    .auth-preview-body {
        grid-template-columns: 1fr;
    }

    .permission-grid,
    .category-board,
    .gradebook-summary-grid,
    .gradebook-workflow-strip,
    .gradebook-focus-strip,
    .gradebook-pedagogy-overview,
    .gradebook-achievement-grid,
    .guardian-priority-grid,
    .lectionary-checklist,
    .lectionary-student-grid,
    .lectionary-week-strip {
        grid-template-columns: 1fr;
    }

    .attendance-row {
        grid-template-columns: 1fr;
    }

    .lectionary-history-metrics {
        justify-content: flex-start;
    }
}

@media (max-width: 991.98px) {
    .shell-grid {
        display: block;
    }

    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(88vw, 310px);
        z-index: 1040;
        transform: translateX(-104%);
        transition: transform 0.28s ease;
        overflow-y: auto;
    }

    body.sidebar-open .sidebar {
        transform: translateX(0);
    }

    body.sidebar-open .sidebar-backdrop {
        display: block;
    }

    .content,
    .auth-shell {
        padding: 0.78rem;
    }

    .mobile-toolbar {
        display: flex;
        position: sticky;
        top: 0.45rem;
        z-index: 30;
        padding: 0.45rem 0.55rem;
        border-radius: 18px;
        border: 1px solid var(--border);
        background: rgba(255, 255, 255, 0.92);
        backdrop-filter: blur(14px);
        box-shadow: var(--shadow-xs);
    }

    .floating-menu-toggle {
        right: 0.8rem;
        left: auto;
        bottom: calc(0.8rem + env(safe-area-inset-bottom, 0px));
        padding: 0.74rem 0.92rem;
    }

    body[data-floating-menu-side="left"] .floating-menu-toggle {
        left: 0.8rem;
        right: auto;
    }

    .page-header {
        flex-direction: column;
    }

    .header-card {
        width: 100%;
        min-width: 0;
    }

    .module-inline-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.1rem;
    }

    .module-inline-tab {
        white-space: nowrap;
    }

    .demo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lectionary-history-day-head,
    .lectionary-history-entry-top {
        flex-direction: column;
    }

    .lectionary-history-metrics span {
        min-width: 0;
        width: 100%;
    }

    .auth-hero-card,
    .auth-card-enhanced {
        padding: 1.15rem;
    }

    .auth-preview-row {
        grid-template-columns: 1fr;
    }

    .theme-swatch-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .metric-grid,
    .demo-grid {
        grid-template-columns: 1fr;
    }

    .auth-highlight-strip,
    .auth-role-grid {
        grid-template-columns: 1fr;
    }

    .page-title {
        font-size: 1.32rem;
    }

    .panel-card,
    .metric-card,
    .header-card,
    .auth-card,
    .demo-card,
    .auth-feature-card,
    .demo-item {
        border-radius: 20px;
    }

    .attendance-choice span {
        min-height: 40px;
        font-size: 0.85rem;
    }

    .btn,
    .form-control,
    .form-select {
        font-size: 0.93rem;
    }

    .auth-hero-topbar,
    .auth-card-header,
    .auth-login-seal {
        flex-direction: column;
        align-items: flex-start;
    }

    .auth-brand-mark-lg {
        width: 72px;
        height: 72px;
    }

    .auth-option-strip {
        gap: 0.45rem;
    }
}

@media (max-width: 991.98px) {
    .auth-layout {
        grid-template-columns: 1fr;
    }
}

.auth-layout-login {
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 440px);
}

.auth-login-hero {
    position: relative;
    display: grid;
    gap: 1.2rem;
    align-content: start;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(243, 249, 255, 0.96)),
        var(--surface);
}

.auth-login-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 0.52rem 0.88rem;
    border-radius: 999px;
    background: rgba(47, 155, 255, 0.12);
    color: var(--navy-800);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.auth-login-title {
    margin: 0;
    font-size: clamp(2rem, 2.6vw, 3rem);
    line-height: 1.08;
    color: var(--navy-900);
}

.auth-login-illustration {
    position: relative;
    border-radius: 32px;
    overflow: hidden;
    border: 1px solid rgba(24, 67, 126, 0.08);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(223, 240, 255, 0.92));
    box-shadow: var(--shadow-md);
}

.auth-login-illustration-image {
    display: block;
    width: 100%;
    height: auto;
    transform: translate(var(--login-secondary-offset-x), var(--login-secondary-offset-y));
    transition: transform 0.18s ease;
    will-change: transform;
}

.auth-login-points {
    display: grid;
    gap: 0.75rem;
}

.auth-login-point {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 0.8rem;
    align-items: center;
    padding: 0.82rem 0.9rem;
    border-radius: 20px;
    border: 1px solid rgba(17, 41, 79, 0.08);
    background: rgba(255, 255, 255, 0.82);
}

.auth-login-point-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--gradient-main);
    color: #fff;
    font-size: 1rem;
    box-shadow: 0 12px 28px rgba(24, 67, 126, 0.18);
}

.auth-login-card {
    align-content: center;
}

.auth-login-card .btn.btn-lg {
    min-height: 54px;
}

@media (max-width: 991.98px) {
    .auth-layout-login {
        grid-template-columns: 1fr;
    }

    .auth-login-hero,
    .auth-login-card {
        min-height: auto;
    }
}

.page-footer-note {
    margin-top: 1.5rem;
    padding: 0.95rem 1rem 0;
    border-top: 1px solid rgba(15, 43, 80, 0.08);
    color: rgba(15, 43, 80, 0.68);
    font-size: 0.82rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.internal-console-shell {
    background:
        radial-gradient(circle at top left, rgba(var(--theme-secondary-rgb), 0.12), transparent 34%),
        linear-gradient(180deg, #f6f9ff 0%, #ebf3ff 100%);
}

.auth-card-wide {
    width: min(1080px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(320px, 410px);
    gap: clamp(1rem, 2vw, 1.35rem);
    align-items: stretch;
}

.auth-card-medium {
    width: min(560px, 100%);
    margin: 0 auto;
}

.auth-showcase {
    display: grid;
    gap: 1rem;
    align-content: start;
    padding: clamp(1.05rem, 2vw, 1.35rem);
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(235, 244, 255, 0.68)),
        rgba(255, 255, 255, 0.64);
    border: 1px solid rgba(17, 41, 79, 0.08);
    box-shadow: 0 18px 36px rgba(8, 21, 39, 0.08);
}

.auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    width: fit-content;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    background: rgba(11, 31, 58, 0.08);
    color: var(--navy-800);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.auth-heading {
    margin: 0;
    font-size: clamp(1.85rem, 3vw, 2.8rem);
    line-height: 1.08;
    color: var(--navy-900);
}

.auth-points {
    display: grid;
    gap: 0.75rem;
}

.auth-point {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 0.75rem;
    align-items: start;
    padding: 0.8rem 0.95rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(17, 41, 79, 0.08);
}

.auth-point i {
    color: var(--success);
    font-size: 1rem;
    margin-top: 0.15rem;
}

.auth-form-panel {
    display: grid;
    gap: 1rem;
    align-content: start;
    padding: clamp(1.05rem, 2vw, 1.35rem);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(17, 41, 79, 0.08);
    box-shadow: 0 18px 36px rgba(8, 21, 39, 0.08);
}

.auth-panel-header {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.auth-panel-logo {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.94), rgba(47, 155, 255, 0.9));
    color: #fff;
    box-shadow: 0 16px 32px rgba(11, 31, 58, 0.18);
}

.auth-panel-label {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-weight: 800;
    color: var(--sky-500);
}

.auth-panel-title {
    margin: 0.2rem 0 0;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 800;
    color: var(--navy-900);
}

.console-grid {
    grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
}

.console-sidebar {
    position: sticky;
    top: 0;
    min-height: 100vh;
    height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 1.8rem 1.25rem;
    background: linear-gradient(180deg, rgba(7, 17, 34, 0.98) 0%, rgba(10, 28, 53, 0.98) 100%);
    color: #f5f8ff;
    display: flex;
    flex-direction: column;
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.console-brand,
.console-owner-card,
.console-side-footer {
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.05);
    border-radius: 24px;
    padding: 1rem 1.05rem;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18);
}

.console-brand {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 0.9rem;
    align-items: center;
}

.console-brand-badge,
.console-nav-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.24), rgba(255, 255, 255, 0.12));
    color: #f8fbff;
}

.console-brand-title {
    font-weight: 800;
    letter-spacing: -0.02em;
}

.console-brand-subtitle,
.console-owner-label {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.72);
}

.console-owner-card {
    margin-top: 1rem;
}

.console-nav-link {
    display: grid;
    grid-template-columns: 46px 1fr auto;
    align-items: center;
    gap: 0.85rem;
    padding: 0.78rem 0.85rem;
    border-radius: 20px;
    color: rgba(245, 248, 255, 0.82);
    text-decoration: none;
    transition: transform 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}

.console-nav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.18rem 0.42rem;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.2);
    color: #bbf7d0;
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.console-nav-link:hover,
.console-nav-link.active {
    color: #fff;
    transform: translateX(2px);
    background: rgba(255, 255, 255, 0.09);
}

.console-side-footer {
    margin-top: auto;
}

.console-content {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    padding-bottom: 2rem;
}

.console-header {
    margin-bottom: 1.2rem;
}

.console-cards-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    min-width: 0;
}

.internal-console-shell .page-content,
.internal-console-shell .panel-card,
.internal-console-shell .console-hero,
.internal-console-shell .console-metric-card,
.internal-console-shell .table-responsive,
.internal-console-shell .row,
.internal-console-shell .row > * {
    min-width: 0;
    max-width: 100%;
}

.internal-console-shell .page-content > .row,
.internal-console-shell .panel-card > .row,
.internal-console-shell .console-hero > .row {
    margin-right: 0;
    margin-left: 0;
}

.internal-console-shell .table-responsive {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.internal-console-shell .table-responsive > table {
    width: max-content;
    min-width: 100%;
    max-width: none;
}

.internal-console-shell .soft-stat strong,
.internal-console-shell .stacked-meta strong,
.internal-console-shell .console-metric-value,
.internal-console-shell .panel-card code,
.internal-console-shell .panel-card pre,
.internal-console-shell .table td,
.internal-console-shell .table th {
    overflow-wrap: anywhere;
}

.console-metric-card,
.panel-card {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 26px;
    box-shadow: 0 18px 36px rgba(10, 43, 82, 0.08);
}

.console-metric-card {
    padding: 1.1rem 1.15rem;
}

.console-metric-label {
    color: rgba(10, 43, 82, 0.62);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.65rem;
}

.console-metric-value {
    font-size: 1.6rem;
    font-weight: 800;
    color: #0b1f3a;
    letter-spacing: -0.03em;
}

.panel-card {
    padding: 1.2rem 1.25rem;
}

.panel-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.panel-card-header h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.status-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.36rem 0.72rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}

.status-chip.success {
    background: rgba(20, 148, 90, 0.12);
    color: #0c6d41;
}

.status-chip.danger {
    background: rgba(211, 47, 47, 0.12);
    color: #b42318;
}

.status-chip.warning {
    background: rgba(217, 119, 6, 0.14);
    color: #9a5510;
}

.status-chip.neutral {
    background: rgba(10, 43, 82, 0.08);
    color: #35516f;
}

.soft-stat,
.stacked-meta > div {
    padding: 0.85rem 0.95rem;
    border-radius: 18px;
    background: rgba(237, 244, 255, 0.8);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.soft-stat span,
.stacked-meta span {
    display: block;
    color: rgba(10, 43, 82, 0.58);
    font-size: 0.8rem;
    margin-bottom: 0.35rem;
}

.soft-stat strong,
.stacked-meta strong {
    color: #0b1f3a;
    font-size: 0.98rem;
}

.stacked-meta {
    display: grid;
    gap: 0.8rem;
}

.risk-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.8rem 0.9rem;
    border-radius: 16px;
    background: rgba(243, 247, 255, 0.95);
}

.console-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.console-checkbox-item {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.75rem 0.8rem;
    border-radius: 16px;
    background: rgba(243, 247, 255, 0.95);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.timeline-list {
    display: grid;
    gap: 1rem;
}

.timeline-item {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 0.9rem;
}

.timeline-dot {
    width: 12px;
    height: 12px;
    margin-top: 0.4rem;
    border-radius: 50%;
    background: var(--gradient-main);
    box-shadow: 0 0 0 6px rgba(var(--theme-secondary-rgb), 0.12);
}

.console-list {
    padding-left: 1rem;
}

.console-list li {
    margin-bottom: 0.42rem;
}

.console-auth-shell .auth-card {
    max-width: 1080px;
}

.console-auth-card .auth-form-panel {
    min-height: auto;
}

@media (max-width: 1199.98px) {
    .console-cards-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .auth-shell {
        padding: 0.8rem;
    }

    .console-grid {
        grid-template-columns: 1fr;
    }

    .console-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(88vw, 320px);
        min-height: 100vh;
        z-index: 1040;
        transform: translateX(-104%);
        overflow-y: auto;
        pointer-events: none;
    }

    body.sidebar-open .console-sidebar {
        transform: translateX(0);
        pointer-events: auto;
    }

    body.sidebar-open .sidebar-backdrop {
        display: block;
    }

    .console-cards-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .console-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .auth-card-wide {
        grid-template-columns: 1fr;
    }

    .console-auth-card .auth-form-panel {
        order: 1;
    }

    .console-auth-card .auth-showcase {
        order: 2;
    }

    .gradebook-sticky-code {
        min-width: 92px;
        max-width: 92px;
    }

    .gradebook-sticky-student {
        left: 92px;
        min-width: 180px;
        max-width: 180px;
    }

    .gradebook-classroom-hero-head {
        flex-direction: column;
    }

    .gradebook-classroom-hero-badge {
        min-width: 0;
        width: 100%;
        text-align: left;
    }

    .gradebook-classroom-hero-grid,
    .gradebook-student-board,
    .gradebook-student-card-body,
    .gradebook-create-grid,
    .gradebook-student-selector {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gradebook-classroom-support-grid {
        grid-template-columns: 1fr;
    }

    .gradebook-rubric-layout,
    .gradebook-rubric-progress-grid,
    .gradebook-student-feedback-overview {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .floating-menu-toggle {
        right: 0.75rem;
        left: auto;
        bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
        padding: 0.72rem 0.88rem;
        font-size: 0.88rem;
    }

    .floating-menu-toggle span {
        display: none;
    }

    body[data-floating-menu-side="left"] .floating-menu-toggle {
        left: 0.75rem;
        right: auto;
    }

    .auth-shell-content {
        gap: 0.8rem;
    }

    .auth-layout {
        gap: 0.9rem;
    }

    .auth-brand-mark-lg {
        width: 64px;
        height: 64px;
        border-radius: 20px;
    }

    .auth-login-title,
    .auth-heading,
    .auth-copy h1 {
        font-size: clamp(1.55rem, 7vw, 2.05rem);
        line-height: 1.12;
    }

    .auth-hero-text,
    .auth-copy p {
        font-size: 0.94rem;
        line-height: 1.55;
    }

    .auth-login-point,
    .auth-point,
    .auth-support-item {
        padding: 0.72rem 0.8rem;
        gap: 0.68rem;
    }

    .auth-option-strip {
        gap: 0.45rem;
    }

    .auth-option-pill {
        font-size: 0.8rem;
        padding: 0.4rem 0.68rem;
    }

    .auth-form-panel,
    .auth-showcase,
    .auth-card,
    .auth-card-enhanced,
    .auth-hero-card {
        padding: 1rem;
        border-radius: 22px;
    }

    .auth-login-illustration {
        border-radius: 24px;
    }

    .auth-footer-note {
        font-size: 0.75rem;
        gap: 0.22rem;
    }

    .console-cards-grid {
        grid-template-columns: 1fr;
    }

    .gradebook-classroom-task-strip,
    .gradebook-classroom-hero-grid,
    .gradebook-classroom-support-grid,
    .gradebook-rubric-layout,
    .gradebook-rubric-progress-grid,
    .gradebook-student-board,
    .gradebook-student-card-body,
    .gradebook-create-grid,
    .gradebook-student-selector,
    .gradebook-workflow-strip,
    .gradebook-focus-strip,
    .gradebook-pedagogy-overview,
    .gradebook-achievement-grid {
        grid-template-columns: 1fr;
    }

    .gradebook-task-card,
    .gradebook-classroom-hero,
    .gradebook-student-card {
        padding: 0.92rem;
        border-radius: 22px;
    }

    .gradebook-task-card-top,
    .gradebook-task-progress-label,
    .gradebook-task-stats,
    .gradebook-student-card-head,
    .gradebook-material-card-head,
    .gradebook-delivery-summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .gradebook-student-status {
        align-self: flex-start;
    }

    .gradebook-classroom-hero-title {
        font-size: 1.12rem;
    }
}

body {
    color: var(--text-main, var(--text));
    font-family: var(--font-family-base, "Manrope", sans-serif);
    background: var(--app-background);
}

body[data-theme-mode="dark"] {
    color-scheme: dark;
}

.app-shell {
    background: var(--app-background);
}

.auth-shell {
    background: var(--auth-background-desktop);
}

@media (max-width: 767.98px) {
    .auth-shell {
        background: var(--auth-background-mobile);
    }
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.panel-card-header h3,
.auth-login-title,
.console-brand-title {
    color: var(--heading-color);
}

.content,
.page-content,
.panel-card,
.metric-card,
.auth-card,
.header-card,
.console-metric-card {
    color: var(--text-main);
}

.sidebar,
.console-sidebar {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),
        var(--sidebar-gradient);
    color: var(--menu-text-color);
}

.brand-subtitle,
.sidebar-highlight-text,
.sidebar-user .text-secondary,
.console-brand-subtitle,
.console-owner-card .text-secondary,
.console-side-footer .text-secondary,
.nav-sublink,
.console-nav-link {
    color: var(--menu-muted-color);
}

.nav-group-toggle,
.nav-group-title,
.console-nav-link.active,
.console-nav-link {
    color: var(--menu-text-color);
}

.page-header,
.header-card,
.mobile-toolbar,
.console-header {
    color: var(--topbar-text);
}

.header-card,
.page-header .header-card {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(var(--theme-background-rgb), 0.86)),
        var(--topbar-bg);
}

.btn,
.btn-primary,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-danger,
.btn-success,
.btn-dark {
    border-radius: var(--button-radius);
}

.btn-primary,
.btn-success {
    color: var(--button-text-color);
}

.header-card,
.panel-card,
.metric-card,
.auth-card,
.demo-card,
.auth-feature-card,
.demo-item,
.console-metric-card {
    border-radius: var(--card-radius);
}

body[data-theme-mode="dark"] .panel-card,
body[data-theme-mode="dark"] .header-card,
body[data-theme-mode="dark"] .metric-card,
body[data-theme-mode="dark"] .auth-card,
body[data-theme-mode="dark"] .console-metric-card {
    background: rgba(9, 18, 34, 0.84);
    border-color: rgba(255, 255, 255, 0.08);
    color: #eef4ff;
}

body[data-theme-mode="dark"] .soft-stat,
body[data-theme-mode="dark"] .risk-row,
body[data-theme-mode="dark"] .appearance-workspace-toolbar,
body[data-theme-mode="dark"] .appearance-diff-card,
body[data-theme-mode="dark"] .appearance-template-card,
body[data-theme-mode="dark"] .appearance-toggle-card,
body[data-theme-mode="dark"] .appearance-upload-box,
body[data-theme-mode="dark"] .appearance-usage-card,
body[data-theme-mode="dark"] .appearance-drag-card,
body[data-theme-mode="dark"] .appearance-preview-selection,
body[data-theme-mode="dark"] .appearance-preview-location-badge,
body[data-theme-mode="dark"] .appearance-preview-map-item {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.08);
}

body[data-theme-mode="dark"] .text-secondary,
body[data-theme-mode="dark"] .soft-stat span,
body[data-theme-mode="dark"] .stacked-meta span,
body[data-theme-mode="dark"] .appearance-template-meta,
body[data-theme-mode="dark"] .appearance-preview-selection-copy,
body[data-theme-mode="dark"] .appearance-preview-location-badge span,
body[data-theme-mode="dark"] .appearance-preview-note {
    color: rgba(234, 241, 255, 0.72) !important;
}

body[data-theme-mode="dark"] .appearance-preview-location-badge strong,
body[data-theme-mode="dark"] .appearance-preview-selection-label {
    color: #eef4ff;
}

.appearance-console {
    display: grid;
    gap: 1.2rem;
}

.appearance-pro-header {
    position: sticky;
    top: 0.5rem;
    z-index: 24;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(10, 43, 82, 0.1);
    border-radius: 26px;
    background:
        radial-gradient(circle at top left, rgba(47, 155, 255, 0.13), transparent 26%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(242, 248, 255, 0.92));
    box-shadow: 0 20px 48px rgba(10, 43, 82, 0.11);
    backdrop-filter: blur(16px);
}

.appearance-pro-title {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.appearance-pro-title h2 {
    margin: 0;
    color: var(--heading-color);
    font-size: clamp(1.35rem, 2.4vw, 2rem);
    font-weight: 950;
}

.appearance-pro-title p {
    margin: 0.2rem 0 0;
    color: rgba(10, 43, 82, 0.66);
    font-weight: 650;
}

.appearance-pro-actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.console-section-dock {
    position: sticky;
    top: 0.75rem;
    z-index: 18;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 0.7rem 0.8rem;
    border-radius: 20px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(14px);
    box-shadow: 0 16px 32px rgba(10, 43, 82, 0.08);
    scrollbar-width: thin;
}

.console-section-dock a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex: 0 0 auto;
    padding: 0.55rem 0.82rem;
    border-radius: 999px;
    color: rgba(10, 43, 82, 0.82);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.console-section-dock a:hover,
.console-section-dock a:focus-visible {
    background: linear-gradient(135deg, rgba(47, 155, 255, 0.14), rgba(10, 43, 82, 0.08));
    color: var(--heading-color);
    box-shadow: 0 10px 24px rgba(47, 155, 255, 0.12);
    transform: translateY(-1px);
    outline: none;
}

.appearance-workspace-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    flex-wrap: wrap;
    padding: 0.95rem 1rem;
    border-radius: 22px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(235, 245, 255, 0.9));
    box-shadow: 0 16px 34px rgba(10, 43, 82, 0.08);
}

.appearance-workspace-actions,
.appearance-workspace-hint,
.appearance-preview-header-tools {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.appearance-control-panel {
    display: grid;
    grid-template-columns: minmax(240px, 1.2fr) minmax(260px, 0.9fr) minmax(280px, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 24px;
    background:
        radial-gradient(circle at top left, rgba(47, 155, 255, 0.15), transparent 32%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 247, 237, 0.82));
    box-shadow: 0 18px 42px rgba(10, 43, 82, 0.08);
}

.appearance-control-panel-title {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.appearance-control-panel-title h3 {
    margin: 0;
    color: var(--heading-color);
    font-size: 1.05rem;
    font-weight: 950;
}

.appearance-control-panel-title p {
    margin: 0.2rem 0 0;
    color: rgba(10, 43, 82, 0.62);
    font-size: 0.84rem;
    font-weight: 650;
}

.appearance-control-panel-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.appearance-control-panel-actions a {
    display: grid;
    place-items: center;
    gap: 0.35rem;
    min-height: 74px;
    padding: 0.65rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--heading-color);
    font-size: 0.8rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.appearance-control-panel-actions a:hover,
.appearance-control-panel-actions a:focus-visible {
    border-color: rgba(47, 155, 255, 0.46);
    box-shadow: 0 14px 28px rgba(47, 155, 255, 0.13);
    transform: translateY(-1px);
    outline: none;
}

.appearance-control-panel-actions i {
    color: #0369a1;
    font-size: 1.15rem;
}

.appearance-control-panel-notes {
    display: grid;
    gap: 0.42rem;
    color: rgba(10, 43, 82, 0.66);
    font-size: 0.82rem;
    font-weight: 700;
}

.appearance-control-panel-notes span {
    display: flex;
    align-items: flex-start;
    gap: 0.42rem;
}

.appearance-control-panel-notes span::before {
    content: "";
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.42rem;
    border-radius: 999px;
    background: #2f9bff;
}

.appearance-editor-grid {
    display: grid;
    grid-template-columns: minmax(230px, 270px) minmax(0, 1fr) minmax(390px, 36vw);
    gap: 1.2rem;
    align-items: start;
}

.appearance-component-sidebar {
    position: sticky;
    top: 6.2rem;
    display: grid;
    gap: 0.9rem;
    max-height: calc(100vh - 7rem);
    overflow: auto;
    padding: 1rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 18px 44px rgba(10, 43, 82, 0.08);
    scrollbar-width: thin;
}

.appearance-component-sidebar-head h3 {
    margin: 0.55rem 0 0.25rem;
    color: var(--heading-color);
    font-size: 1.08rem;
    font-weight: 950;
}

.appearance-component-sidebar-head p {
    margin: 0;
    color: rgba(10, 43, 82, 0.62);
    font-size: 0.86rem;
    font-weight: 650;
}

.appearance-component-search {
    border-radius: 16px;
    min-height: 42px;
}

.appearance-component-group {
    display: grid;
    gap: 0.55rem;
}

.appearance-component-group > span {
    color: rgba(10, 43, 82, 0.56);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.appearance-component-card {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 0.65rem;
    width: 100%;
    padding: 0.78rem;
    text-align: left;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    color: var(--text-main);
    box-shadow: 0 10px 22px rgba(10, 43, 82, 0.05);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.appearance-component-card:hover,
.appearance-component-card:focus-visible,
.appearance-component-card.is-active {
    border-color: rgba(47, 155, 255, 0.48);
    box-shadow: 0 16px 32px rgba(47, 155, 255, 0.13);
    transform: translateY(-1px);
    outline: none;
}

.appearance-component-card i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    grid-row: span 2;
    color: #0369a1;
    border-radius: 12px;
    background: #e0f2fe;
}

.appearance-component-card strong,
.appearance-component-card small {
    display: block;
}

.appearance-component-card strong {
    color: var(--heading-color);
    font-size: 0.9rem;
    font-weight: 950;
}

.appearance-component-card small {
    color: rgba(10, 43, 82, 0.62);
    font-size: 0.78rem;
    font-weight: 650;
}

.appearance-editor-main {
    display: grid;
    gap: 1.2rem;
}

.appearance-editor-main .panel-card {
    transition: box-shadow 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}

.appearance-editor-main .panel-card.is-component-focused {
    border-color: rgba(47, 155, 255, 0.48);
    box-shadow: 0 22px 54px rgba(47, 155, 255, 0.16);
    transform: translateY(-1px);
}

.appearance-preview-panel {
    display: grid;
    gap: 1.2rem;
    position: sticky;
    top: 0.75rem;
}

.appearance-properties-panel {
    background:
        radial-gradient(circle at top right, rgba(47, 155, 255, 0.13), transparent 30%),
        rgba(255, 255, 255, 0.96);
}

.appearance-properties-grid {
    display: grid;
    gap: 0.85rem;
}

.appearance-viewport-switch {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.35rem;
    padding: 0.35rem;
    border-radius: 16px;
    background: #eef6ff;
}

.appearance-viewport-switch button {
    min-height: 38px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: rgba(10, 43, 82, 0.68);
    font-size: 0.8rem;
    font-weight: 900;
}

.appearance-viewport-switch button.is-active {
    color: #fff;
    background: var(--gradient-main);
    box-shadow: 0 10px 24px rgba(47, 155, 255, 0.18);
}

.appearance-properties-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 0.9rem;
}

.appearance-properties-summary div {
    padding: 0.8rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 16px;
    background: rgba(248, 251, 255, 0.86);
}

.appearance-properties-summary span,
.appearance-properties-summary strong {
    display: block;
}

.appearance-properties-summary span {
    color: rgba(10, 43, 82, 0.58);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.appearance-properties-summary strong {
    color: var(--heading-color);
    font-size: 0.9rem;
    font-weight: 950;
}

.appearance-preview-stage {
    transition: max-width 0.22s ease, transform 0.22s ease;
}

.appearance-preview-stage[data-preview-size="tablet"] {
    max-width: 820px;
    margin-inline: auto;
}

.appearance-preview-stage[data-preview-size="mobile"] {
    max-width: 430px;
    margin-inline: auto;
}

.appearance-preview-stage[data-preview-size="mobile"] .appearance-preview-browser,
.appearance-preview-stage[data-preview-size="tablet"] .appearance-preview-browser {
    overflow: hidden;
}

.appearance-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.appearance-color-field {
    padding: 0.95rem;
    border-radius: 20px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(248, 251, 255, 0.92);
}

.appearance-color-control {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 0.75rem;
    align-items: center;
}

.appearance-color-control .form-control-color {
    width: 64px;
    min-width: 64px;
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(10, 43, 82, 0.14);
}

.appearance-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.appearance-toggle-card {
    display: flex;
    gap: 0.8rem;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(248, 251, 255, 0.92);
}

.appearance-toggle-card .form-check-input {
    margin-top: 0.2rem;
}

.appearance-toggle-card strong,
.appearance-toggle-card small {
    display: block;
}

.appearance-toggle-card small {
    color: rgba(10, 43, 82, 0.62);
    margin-top: 0.25rem;
}

.appearance-department-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.appearance-department-card {
    position: relative;
    border: 1px solid rgba(var(--theme-primary-rgb), 0.10);
    border-radius: 18px;
    padding: 0.95rem;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(var(--theme-background-rgb), 0.76));
}

.appearance-department-chip {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 10px;
    background: rgba(var(--theme-secondary-rgb), 0.12);
    color: var(--theme-primary);
    font-weight: 900;
    margin-bottom: 0.65rem;
}

.appearance-assets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem;
}

.appearance-asset-card {
    display: grid;
    gap: 0.95rem;
    padding: 1rem;
    border-radius: 22px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(248, 251, 255, 0.9);
}

.appearance-asset-card-head,
.appearance-history-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.8rem;
}

.appearance-asset-card h4,
.appearance-history-item strong {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 800;
}

.appearance-asset-card p {
    margin: 0.18rem 0 0;
    color: rgba(10, 43, 82, 0.62);
    font-size: 0.84rem;
}

.appearance-template-card {
    display: grid;
    gap: 0.8rem;
    padding: 0.85rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px dashed rgba(10, 43, 82, 0.16);
}

.appearance-template-visual {
    display: grid;
    place-items: center;
    border-radius: 18px;
    background:
        repeating-linear-gradient(45deg, rgba(var(--theme-secondary-rgb), 0.12), rgba(var(--theme-secondary-rgb), 0.12) 12px, rgba(var(--theme-secondary-rgb), 0.05) 12px, rgba(var(--theme-secondary-rgb), 0.05) 24px);
    border: 1px dashed rgba(10, 43, 82, 0.18);
    min-height: 120px;
}

.appearance-template-visual span {
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--heading-color);
}

.appearance-template-meta {
    display: grid;
    gap: 0.26rem;
    font-size: 0.82rem;
    color: rgba(10, 43, 82, 0.68);
}

.appearance-asset-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.appearance-asset-metric {
    display: grid;
    gap: 0.22rem;
    padding: 0.82rem 0.9rem;
    border-radius: 18px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(255, 255, 255, 0.88);
}

.appearance-asset-metric span {
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(10, 43, 82, 0.58);
}

.appearance-asset-metric strong {
    color: var(--heading-color);
    font-size: 0.9rem;
    word-break: break-word;
}

.appearance-usage-card,
.appearance-drag-card {
    display: grid;
    gap: 0.65rem;
    padding: 0.9rem;
    border-radius: 18px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(255, 255, 255, 0.88);
}

.appearance-location-guide-title {
    margin: 0.35rem 0 0.18rem;
    font-size: 0.79rem;
    font-weight: 700;
    color: rgba(10, 43, 82, 0.76);
}

.appearance-location-guide {
    display: grid;
    gap: 0.36rem;
    margin: 0.42rem 0 0.1rem;
    padding: 0.6rem;
    border-radius: 14px;
    background: rgba(11, 31, 58, 0.05);
    border: 1px dashed rgba(11, 31, 58, 0.18);
    font-size: 0.79rem;
}

.appearance-location-guide div {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

.appearance-location-guide code,
.appearance-preview-map code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.74rem;
}

.appearance-preview-map-item {
    display: grid;
    gap: 0.55rem;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(255, 255, 255, 0.84);
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.appearance-preview-map-item:hover,
.appearance-preview-map-item:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(47, 115, 255, 0.36);
}

.appearance-usage-head,
.appearance-drag-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.appearance-usage-card p,
.appearance-drag-card p {
    margin: 0;
    color: rgba(10, 43, 82, 0.64);
    font-size: 0.84rem;
}

.appearance-usage-list,
.appearance-drag-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.appearance-technical-meta {
    display: grid;
    gap: 0.3rem;
}

.appearance-technical-meta code {
    display: inline-block;
    padding: 0.3rem 0.55rem;
    border-radius: 12px;
    background: rgba(10, 43, 82, 0.06);
    color: #27415c;
    word-break: break-word;
}

.appearance-preview-map {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.appearance-preview-map-item.is-selected {
    outline: 2px dashed rgba(47, 115, 255, 0.48);
    outline-offset: 2px;
    box-shadow: 0 10px 28px rgba(47, 115, 255, 0.18);
}

.appearance-preview-map-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.appearance-preview-map-locations {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.appearance-upload-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px;
    gap: 0.85rem;
    align-items: start;
}

.appearance-upload-box {
    padding: 0.9rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.appearance-upload-help {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: rgba(10, 43, 82, 0.6);
}

.appearance-upload-preview-wrap {
    min-height: 116px;
    position: relative;
}

.appearance-upload-preview,
.appearance-upload-placeholder {
    width: 100%;
    height: 116px;
    border-radius: 18px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(255, 255, 255, 0.9);
}

.appearance-upload-preview {
    object-fit: cover;
}

.appearance-upload-preview-tag {
    position: absolute;
    inset: auto 0.55rem 0.55rem auto;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: rgba(12, 38, 73, 0.86);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}

.appearance-preview-click-zone:hover .appearance-upload-preview-tag,
.appearance-preview-click-zone:focus-visible .appearance-upload-preview-tag {
    opacity: 1;
}

.appearance-preview-click-zone {
    position: relative;
    cursor: pointer;
    border: 2px dashed transparent;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.appearance-preview-click-zone:hover,
.appearance-preview-click-zone:focus-visible {
    border-color: rgba(47, 115, 255, 0.42);
    box-shadow: 0 10px 24px rgba(47, 115, 255, 0.14);
    transform: translateY(-1px);
    outline: none;
}

.appearance-upload-placeholder {
    display: grid;
    place-items: center;
    gap: 0.45rem;
    color: rgba(10, 43, 82, 0.55);
    text-align: center;
    padding: 0.75rem;
}

.appearance-upload-placeholder i {
    font-size: 1.35rem;
}

.appearance-upload-feedback {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.appearance-remove-check {
    margin: 0;
}

.appearance-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.appearance-preview-card {
    overflow: hidden;
    position: relative;
}

.appearance-preview-selection {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-wrap: wrap;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: linear-gradient(135deg, rgba(47, 115, 255, 0.08), rgba(255, 255, 255, 0.92));
}

.appearance-preview-selection.has-selection {
    border-color: rgba(47, 115, 255, 0.24);
    box-shadow: 0 14px 28px rgba(47, 115, 255, 0.12);
}

.appearance-preview-selection-label {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 800;
    color: rgba(10, 43, 82, 0.72);
}

.appearance-preview-selection strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    background: rgba(8, 21, 39, 0.9);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
}

.appearance-preview-selection-copy {
    flex: 1 1 240px;
    color: rgba(10, 43, 82, 0.72);
    font-size: 0.82rem;
}

.appearance-preview-inspector {
    display: grid;
    gap: 0.9rem;
    padding: 1rem 1.05rem;
    border-radius: 20px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(235, 244, 255, 0.88));
    box-shadow: 0 16px 30px rgba(10, 43, 82, 0.08);
}

.appearance-preview-inspector-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
}

.appearance-preview-inspector-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    width: fit-content;
    padding: 0.32rem 0.62rem;
    border-radius: 999px;
    background: rgba(47, 155, 255, 0.12);
    color: var(--navy-800);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.appearance-preview-inspector-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.appearance-preview-inspector-grid div {
    display: grid;
    gap: 0.22rem;
    padding: 0.82rem 0.88rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.appearance-preview-inspector-grid span {
    font-size: 0.76rem;
    font-weight: 700;
    color: rgba(10, 43, 82, 0.62);
}

.appearance-preview-stage {
    display: grid;
    gap: 0.95rem;
    overflow: auto;
    max-height: 92vh;
    min-height: 560px;
    padding-right: 0.4rem;
    scrollbar-width: thin;
    scroll-behavior: smooth;
}

.appearance-preview-stage::-webkit-scrollbar {
    width: 7px;
}

.appearance-preview-stage::-webkit-scrollbar-thumb {
    background: rgba(10, 43, 82, 0.18);
    border-radius: 999px;
}

.appearance-preview-stage::-webkit-scrollbar-track {
    background: transparent;
}

.appearance-preview-browser {
    padding: 1rem;
    border-radius: 26px;
    background: rgba(8, 21, 39, 0.96);
    box-shadow: 0 18px 40px rgba(10, 43, 82, 0.18);
}

.appearance-preview-draggable-wrap {
    position: relative;
    display: grid;
    gap: 0.22rem;
    border-radius: 14px;
    overflow: visible;
}

.appearance-preview-draggable-wrap.is-selected {
    box-shadow: 0 0 0 2px rgba(47, 115, 255, 0.28);
}

.appearance-preview-draggable-wrap.is-dragging {
    z-index: 4;
}

.appearance-preview-draggable-wrap [data-draggable-asset] {
    cursor: grab;
}

.appearance-preview-draggable-wrap.is-dragging [data-draggable-asset] {
    cursor: grabbing;
}

.appearance-preview-layer-hint {
    position: absolute;
    right: 0.45rem;
    top: 0.45rem;
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    padding: 0.27rem 0.48rem;
    border-radius: 999px;
    background: rgba(8, 21, 39, 0.84);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}

.appearance-preview-draggable-wrap .appearance-preview-layer-hint {
    z-index: 3;
}

.appearance-preview-draggable-wrap:hover .appearance-preview-layer-hint,
.appearance-preview-draggable-wrap:focus-within .appearance-preview-layer-hint {
    opacity: 1;
}

.appearance-preview-draggable-wrap .appearance-preview-click-zone {
    border-radius: 12px;
}

.appearance-preview-location-badge {
    position: absolute;
    left: 0.55rem;
    bottom: 0.55rem;
    z-index: 3;
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    padding: 0.45rem 0.62rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(10, 43, 82, 0.08);
    box-shadow: 0 14px 28px rgba(8, 21, 39, 0.12);
}

.appearance-preview-location-badge strong,
.appearance-preview-location-badge span {
    display: block;
    line-height: 1.2;
}

.appearance-preview-location-badge strong {
    font-size: 0.74rem;
    color: var(--heading-color);
    font-weight: 800;
}

.appearance-preview-location-badge span {
    font-size: 0.7rem;
    color: rgba(10, 43, 82, 0.66);
}

.appearance-drag-hit {
    position: absolute;
    left: 0.55rem;
    top: 0.55rem;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    padding: 0.4rem 0.62rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    background: rgba(8, 21, 39, 0.88);
    color: #fff;
    box-shadow: 0 12px 24px rgba(8, 21, 39, 0.18);
    cursor: grab;
    touch-action: none;
    font-size: 0.72rem;
    font-weight: 800;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.appearance-drag-hit:hover,
.appearance-drag-hit:focus-visible,
.appearance-preview-draggable-wrap.is-selected .appearance-drag-hit {
    background: linear-gradient(135deg, rgba(24, 67, 126, 0.95), rgba(47, 155, 255, 0.95));
    box-shadow: 0 16px 30px rgba(24, 67, 126, 0.26);
    transform: translateY(-1px);
    outline: none;
}

.appearance-drag-hit:active {
    cursor: grabbing;
}

.appearance-preview-map-meta {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    color: rgba(10, 43, 82, 0.68);
    font-size: 0.78rem;
}

.appearance-preview-browser-bar {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.appearance-preview-browser-bar span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
}

.appearance-login-preview,
.appearance-app-preview,
.appearance-preview-mobile-frame {
    overflow: hidden;
    border-radius: 22px;
    background: var(--surface);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.appearance-login-preview {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(220px, 0.86fr);
    min-height: 340px;
    background: var(--auth-background-desktop);
}

.appearance-login-preview-side {
    display: grid;
    align-content: start;
    gap: 0.95rem;
    padding: 1.15rem;
    color: #f8fbff;
}

.appearance-login-preview-badge {
    display: inline-flex;
    width: fit-content;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.76rem;
    font-weight: 700;
}

.appearance-login-preview-brand {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.appearance-login-preview-brand strong,
.appearance-login-preview-brand span,
.appearance-preview-mobile-header strong {
    display: block;
}

.appearance-login-preview-brand span {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.72);
}

.appearance-login-preview-logo {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    padding: 0.4rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
}

.appearance-login-preview-logo img,
.appearance-preview-mobile-header img,
.appearance-app-preview-brand img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.12s ease;
    will-change: transform;
}

.appearance-login-preview-side h4,
.appearance-preview-mobile-card h5 {
    margin: 0;
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: 800;
}

.appearance-login-preview-side p {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.55;
}

.appearance-preview-points {
    display: grid;
    gap: 0.55rem;
}

.appearance-preview-points div {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.82rem;
}

.appearance-login-preview-panel {
    padding: 1rem;
    display: grid;
    place-items: center;
}

.appearance-login-preview-form {
    width: 100%;
    display: grid;
    gap: 0.8rem;
    padding: 1rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--text-main);
}

.appearance-login-preview-image {
    width: 100%;
    height: 120px;
    border-radius: 20px;
    overflow: hidden;
    background: rgba(var(--theme-secondary-rgb), 0.08);
}

.appearance-login-preview-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.12s ease;
    will-change: transform;
}

.appearance-login-input {
    height: 40px;
    border-radius: 14px;
    background: rgba(var(--theme-background-rgb), 0.88);
    border: 1px solid rgba(var(--theme-primary-rgb), 0.08);
}

.appearance-preview-button {
    border: 0;
    padding: 0.8rem 1rem;
    border-radius: var(--button-radius);
    background: var(--gradient-main);
    color: var(--button-text-color);
    font-weight: 800;
}

.appearance-login-preview-form small {
    color: rgba(10, 43, 82, 0.66);
}

.appearance-login-quick-title {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: rgba(10, 43, 82, 0.58);
    font-size: 0.78rem;
    font-weight: 800;
}

.appearance-login-quick-title::before,
.appearance-login-quick-title::after {
    content: "";
    height: 1px;
    flex: 1;
    background: rgba(var(--theme-primary-rgb), 0.12);
}

.appearance-login-quick-grid,
.appearance-mobile-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
}

.appearance-login-quick-card {
    min-height: 58px;
    border: 1px solid rgba(var(--theme-primary-rgb), 0.12);
    border-radius: 14px;
    background: #ffffff;
    display: grid;
    place-items: center;
    gap: 0.18rem;
    padding: 0.42rem;
    color: rgba(10, 43, 82, 0.74);
}

.appearance-login-quick-card span {
    width: 24px;
    height: 24px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: rgba(var(--theme-secondary-rgb), 0.10);
    color: var(--quick-accent, var(--theme-secondary));
    font-size: 0.72rem;
    font-weight: 900;
}

.appearance-login-quick-card strong {
    font-size: 0.68rem;
    text-align: center;
}

.appearance-mobile-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.25rem;
}

.appearance-mobile-quick-grid span {
    border-radius: 10px;
    background: rgba(var(--theme-secondary-rgb), 0.10);
    color: rgba(10, 43, 82, 0.72);
    padding: 0.35rem;
    font-size: 0.66rem;
    font-weight: 800;
    text-align: center;
}

.appearance-app-preview {
    display: grid;
    grid-template-columns: 200px 1fr;
    min-height: 280px;
    background: var(--app-background);
}

.appearance-app-preview-sidebar {
    display: grid;
    align-content: start;
    gap: 0.9rem;
    padding: 1rem;
    background: var(--sidebar-gradient);
    color: var(--menu-text-color);
}

.appearance-app-preview-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.appearance-app-preview-brand img {
    width: 42px;
    height: 42px;
    padding: 0.28rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.9);
}

.appearance-app-preview-brand span {
    display: block;
    font-size: 0.76rem;
    color: var(--menu-muted-color);
}

.appearance-app-preview-menu {
    display: grid;
    gap: 0.5rem;
}

.appearance-app-preview-menu span {
    padding: 0.7rem 0.8rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--menu-text-color);
    font-size: 0.84rem;
}

.appearance-app-preview-menu span.active {
    background: rgba(255, 255, 255, 0.14);
}

.appearance-app-preview-main {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    align-content: start;
    position: relative;
}

.appearance-app-preview-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 20px;
    background: var(--topbar-bg);
    color: var(--topbar-text);
    box-shadow: 0 12px 24px rgba(10, 43, 82, 0.08);
}

.appearance-app-preview-banner {
    height: 100px;
    border-radius: 20px;
    overflow: hidden;
    background: rgba(var(--theme-secondary-rgb), 0.08);
}

.appearance-app-preview-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.12s ease;
    will-change: transform;
}

[data-draggable-asset] {
    cursor: grab;
    touch-action: none;
    user-select: none;
}

[data-draggable-asset].is-dragging {
    cursor: grabbing;
}

[data-draggable-asset].is-selected {
    outline: 2px dashed rgba(47, 115, 255, 0.48);
    outline-offset: 4px;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(47, 115, 255, 0.18);
}

[data-draggable-asset].is-selected.is-dragging {
    outline-style: solid;
}

.appearance-app-preview-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.appearance-app-preview-card,
.appearance-preview-mobile-card {
    min-height: 82px;
    border-radius: var(--card-radius);
    background: var(--surface);
    border: 1px solid var(--border);
    box-shadow: 0 14px 28px rgba(10, 43, 82, 0.08);
}

.appearance-preview-mobile {
    display: flex;
    justify-content: center;
}

.appearance-preview-mobile-frame {
    width: min(280px, 100%);
    min-height: 360px;
    padding: 0.85rem;
    display: grid;
    align-content: start;
    gap: 0.85rem;
    background: var(--auth-background-mobile);
    position: relative;
}

.appearance-preview-floating-button {
    position: absolute;
    right: 0.8rem;
    left: auto;
    bottom: 0.8rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    padding: 0.5rem 0.78rem;
    border: 1px solid rgba(17, 41, 79, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--heading-color);
    box-shadow: 0 14px 30px rgba(8, 21, 39, 0.14);
    font-size: 0.76rem;
    font-weight: 800;
    pointer-events: none;
}

.appearance-preview-floating-button-mobile {
    bottom: 0.65rem;
}

.appearance-preview-stage[data-floating-menu-side="left"] .appearance-preview-floating-button {
    left: 0.8rem;
    right: auto;
}

.appearance-preview-mobile-header {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.85rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.88);
    color: var(--heading-color);
}

.appearance-preview-mobile-header img {
    width: 36px;
    height: 36px;
}

.appearance-preview-mobile-card {
    padding: 1rem;
    display: grid;
    gap: 0.8rem;
    background: rgba(255, 255, 255, 0.9);
}

.appearance-preview-note {
    margin-top: 0.9rem;
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    font-size: 0.82rem;
    color: rgba(10, 43, 82, 0.64);
}

.appearance-diff-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.appearance-diff-card {
    display: grid;
    gap: 0.25rem;
    padding: 0.95rem 1rem;
    border-radius: 18px;
    background: rgba(248, 251, 255, 0.92);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.appearance-diff-card span,
.appearance-diff-card small {
    color: rgba(10, 43, 82, 0.62);
}

.appearance-history-item {
    display: grid;
    gap: 0.3rem;
}

.mailers-hero {
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(47, 155, 255, 0.15), transparent 32%),
        radial-gradient(circle at bottom left, rgba(233, 79, 134, 0.10), transparent 28%),
        rgba(255, 255, 255, 0.96);
}

.mailers-hero-logo {
    width: 5.2rem;
    height: 5.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.45rem;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.08), rgba(47, 155, 255, 0.12));
    border: 1px solid rgba(10, 43, 82, 0.1);
    box-shadow: 0 18px 36px rgba(10, 43, 82, 0.10);
}

.mailers-hero-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.75rem;
}

.mailers-hero-logo span {
    font-weight: 900;
    font-size: 2rem;
    color: #0B1F3A;
}

.mailers-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.9rem;
    margin-top: 1rem;
}

.mailers-kpi-card {
    display: grid;
    gap: 0.3rem;
    min-height: 6rem;
    padding: 1rem;
    border-radius: 1.15rem;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid rgba(10, 43, 82, 0.08);
    box-shadow: 0 14px 32px rgba(10, 43, 82, 0.07);
}

.mailers-kpi-card span {
    font-size: 0.8rem;
    color: rgba(10, 43, 82, 0.64);
    font-weight: 800;
}

.mailers-kpi-card strong {
    font-size: 1.45rem;
    color: #0B1F3A;
    line-height: 1.1;
}

.mailers-kpi-card.success {
    background: linear-gradient(135deg, rgba(220, 252, 231, 0.92), rgba(255, 255, 255, 0.92));
}

.mailers-kpi-card.danger {
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.94), rgba(255, 255, 255, 0.92));
}

.mailers-kpi-card.info {
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.94), rgba(255, 255, 255, 0.92));
}

.mailers-kpi-card.muted {
    background: linear-gradient(135deg, rgba(241, 245, 249, 0.96), rgba(255, 255, 255, 0.92));
}

.mail-settings-logo-card {
    height: 100%;
    padding: 1rem;
    border-radius: 1.35rem;
    background: linear-gradient(180deg, rgba(247, 250, 255, 0.96), rgba(255, 255, 255, 0.96));
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.mail-settings-logo-preview {
    width: 10rem;
    height: 10rem;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2rem;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.06), rgba(47, 155, 255, 0.12));
    border: 1px solid rgba(10, 43, 82, 0.1);
}

.mail-settings-logo-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 1rem;
}

.mail-settings-logo-preview span {
    font-size: 3rem;
    font-weight: 900;
    color: #0B1F3A;
}

.mailers-mini-table {
    max-height: 16rem;
    overflow: auto;
}

.mail-template-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.mail-template-flow-step {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.2rem 0.75rem;
    align-items: center;
    padding: 0.9rem;
    border-radius: 1.25rem;
    background: linear-gradient(135deg, rgba(247, 250, 255, 0.95), rgba(255, 255, 255, 0.92));
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.mail-template-flow-step span {
    grid-row: span 2;
    width: 2.2rem;
    height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(47, 155, 255, 0.14);
    color: #0B1F3A;
    font-weight: 900;
}

.mail-template-flow-step strong {
    color: #0B1F3A;
}

.mail-template-flow-step small {
    color: rgba(10, 43, 82, 0.62);
}

.mail-module-picker {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at top left, rgba(47, 155, 255, 0.16), transparent 32%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 255, 0.92));
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.mail-module-picker-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.mail-module-picker-head h4 {
    margin: 0 0 0.25rem;
    color: #0B1F3A;
    font-size: 1.05rem;
}

.mail-module-picker-search {
    position: relative;
    min-width: min(100%, 360px);
}

.mail-module-picker-search i {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(10, 43, 82, 0.5);
    pointer-events: none;
}

.mail-module-picker-search .form-control {
    padding-left: 2.35rem;
    border-radius: 999px;
}

.mail-module-picker-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    max-height: 24rem;
    overflow: auto;
    padding-right: 0.25rem;
}

.mail-module-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    width: 100%;
    text-align: left;
    padding: 0.85rem;
    border-radius: 1.15rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: rgba(255, 255, 255, 0.92);
    color: #0B1F3A;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.mail-module-card:hover,
.mail-module-card.is-active {
    transform: translateY(-1px);
    border-color: rgba(47, 155, 255, 0.42);
    background: #fff;
    box-shadow: 0 16px 30px rgba(10, 43, 82, 0.09);
}

.mail-module-card.is-active {
    outline: 3px solid rgba(47, 155, 255, 0.14);
}

.mail-module-card[hidden] {
    display: none;
}

.mail-module-card-icon {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(233, 79, 134, 0.14), rgba(47, 155, 255, 0.14));
    color: #0B1F3A;
    font-weight: 900;
}

.mail-module-card-copy {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.mail-module-card-copy strong,
.mail-module-card-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-module-card-copy small {
    color: rgba(10, 43, 82, 0.58);
    font-size: 0.78rem;
}

.mail-template-selected-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    padding: 1rem;
    border-radius: 1.35rem;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.06), rgba(47, 155, 255, 0.10));
    border: 1px solid rgba(47, 155, 255, 0.16);
}

.mail-template-selected-summary div {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.mail-template-selected-summary span {
    color: rgba(10, 43, 82, 0.58);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.mail-template-selected-summary strong {
    color: #0B1F3A;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-template-selected-summary small {
    color: rgba(10, 43, 82, 0.62);
}

.mail-template-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 1rem;
    align-items: start;
}

.mail-template-form-card {
    padding: 1rem;
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at top right, rgba(47, 155, 255, 0.10), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 255, 0.96));
    border: 1px solid rgba(10, 43, 82, 0.08);
    box-shadow: 0 18px 38px rgba(10, 43, 82, 0.07);
}

.mail-template-token-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.mail-template-token-button {
    border: 0;
    cursor: pointer;
}

.mail-template-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
}

.mail-template-structure-panel {
    display: grid;
    grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
    gap: 0.85rem;
    align-items: stretch;
    margin-bottom: 0.75rem;
    padding: 0.85rem;
    border-radius: 1.25rem;
    background: linear-gradient(135deg, rgba(11, 31, 58, 0.05), rgba(47, 155, 255, 0.09));
    border: 1px solid rgba(47, 155, 255, 0.14);
}

.mail-template-structure-copy {
    display: grid;
    align-content: center;
    gap: 0.25rem;
}

.mail-template-structure-copy strong {
    color: #0B1F3A;
    line-height: 1.25;
}

.mail-template-structure-copy small {
    color: rgba(10, 43, 82, 0.66);
    line-height: 1.45;
}

.mail-template-structure-actions {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
}

.mail-template-structure-button {
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    min-height: 5.25rem;
    padding: 0.7rem 0.55rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.92);
    color: #0B1F3A;
    font-size: 0.78rem;
    font-weight: 900;
    text-align: center;
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.mail-template-structure-button i {
    width: 2.1rem;
    height: 2.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.85rem;
    background: rgba(47, 155, 255, 0.12);
    color: #0B77E8;
    font-size: 1rem;
}

.mail-template-structure-button:hover {
    transform: translateY(-1px);
    border-color: rgba(47, 155, 255, 0.34);
    box-shadow: 0 12px 24px rgba(10, 43, 82, 0.08);
}

.mail-template-code-editor {
    min-height: 17rem;
    border-radius: 1rem;
    background: #FCFEFF;
    border-color: rgba(10, 43, 82, 0.12);
    line-height: 1.55;
}

.mail-template-editor-hint {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    margin-top: 0.65rem;
    padding: 0.7rem 0.8rem;
    border-radius: 1rem;
    background: rgba(236, 253, 245, 0.9);
    border: 1px solid rgba(16, 185, 129, 0.16);
    color: #0F5132;
    font-size: 0.84rem;
    line-height: 1.45;
}

.mail-template-editor-hint code {
    color: #0B5ED7;
}

.mail-template-preview-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    justify-content: flex-end;
}

.mail-template-preview-card {
    position: sticky;
    top: 0.75rem;
    display: grid;
    gap: 0.85rem;
}

.mail-template-preview-shell {
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: #EDF5FB;
    box-shadow: 0 22px 42px rgba(10, 43, 82, 0.08);
    padding: 0.8rem;
}

.mail-template-preview-shell[data-mail-preview-size="mobile"] {
    max-width: 390px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 32px;
}

.mail-template-preview-card.is-disabled .mail-template-preview-shell {
    opacity: 0.7;
    filter: saturate(0.78);
}

.mail-template-preview-header {
    display: grid;
    gap: 0.25rem;
    padding: 1rem 1.1rem;
    color: #fff;
    border-radius: 20px 20px 0 0;
}

.mail-template-preview-header span {
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    opacity: 0.9;
}

.mail-template-preview-header strong {
    font-size: 1.1rem;
    line-height: 1.2;
}

.mail-template-preview-header small {
    opacity: 0.88;
}

.mail-template-preview-body {
    display: grid;
    gap: 1rem;
    padding: 1.05rem 1.1rem 1.15rem;
    background: #fff;
    border-radius: 0 0 20px 20px;
}

.mail-template-preview-subject {
    display: grid;
    gap: 0.24rem;
    padding: 0.85rem 0.9rem;
    border-radius: 18px;
    background: rgba(241, 246, 255, 0.9);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.mail-template-preview-subject span {
    font-size: 0.76rem;
    font-weight: 800;
    color: rgba(10, 43, 82, 0.58);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mail-template-preview-message {
    min-height: 220px;
    padding: 0.95rem 1rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(10, 43, 82, 0.08);
    color: var(--text-main);
    line-height: 1.65;
    white-space: pre-wrap;
}

.mail-template-preview-message table {
    max-width: 100%;
}

.mail-template-preview-preheader {
    padding: 0.75rem 0.9rem;
    border-radius: 16px;
    background: rgba(47, 155, 255, 0.10);
    color: #0B1F3A;
    font-size: 0.86rem;
    font-weight: 700;
}

.mail-template-preview-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    border-radius: 999px;
    padding: 0.75rem 1.15rem;
    color: #fff;
    text-decoration: none;
    font-weight: 900;
    box-shadow: 0 12px 24px rgba(233, 79, 134, 0.22);
}

.mail-template-preview-button:hover {
    color: #fff;
    transform: translateY(-1px);
}

.mail-template-preview-footer {
    padding-top: 0.8rem;
    border-top: 1px solid rgba(10, 43, 82, 0.08);
    color: rgba(10, 43, 82, 0.68);
    font-size: 0.84rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

.mail-template-preview-global-footer {
    padding: 0.85rem 0.9rem;
    border-radius: 16px;
    background: rgba(241, 246, 255, 0.9);
    color: rgba(10, 43, 82, 0.65);
    font-size: 0.82rem;
    line-height: 1.5;
}

.mail-template-preview-warning {
    padding: 0.8rem 0.9rem;
    border-radius: 16px;
    background: #FFF7ED;
    color: #9A3412;
    border: 1px solid #FED7AA;
    font-size: 0.84rem;
    font-weight: 800;
}

.mailers-version-list {
    display: grid;
    gap: 0.7rem;
}

.mailers-version-row {
    display: grid;
    gap: 0.2rem;
    padding: 0.9rem;
    border-radius: 1rem;
    background: rgba(247, 250, 255, 0.92);
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.mailers-version-row strong {
    color: #0B1F3A;
}

.mailers-version-row span,
.mailers-version-row small {
    color: rgba(10, 43, 82, 0.62);
}

.mail-template-table code {
    font-size: 0.78rem;
}

.mail-template-color-swatch {
    display: inline-flex;
    width: 18px;
    height: 18px;
    margin-right: 0.45rem;
    border-radius: 999px;
    border: 1px solid rgba(10, 43, 82, 0.12);
    vertical-align: middle;
}

@media (max-width: 1199.98px) {
    .mailers-dashboard-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mail-template-flow,
    .mail-module-picker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mail-template-structure-panel {
        grid-template-columns: 1fr;
    }

    .mail-template-structure-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .mailers-dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mailers-hero-logo {
        width: 4.4rem;
        height: 4.4rem;
    }

    .mail-template-flow,
    .mail-module-picker-grid,
    .mail-template-selected-summary,
    .mail-template-structure-actions {
        grid-template-columns: 1fr;
    }

    .mail-module-picker-head {
        flex-direction: column;
    }

    .mail-module-picker-search {
        width: 100%;
    }
}

@media (max-width: 1399.98px) {
    .appearance-control-panel {
        grid-template-columns: 1fr;
    }

    .appearance-editor-grid {
        grid-template-columns: 1fr;
    }

    .appearance-component-sidebar,
    .appearance-preview-panel {
        position: relative;
        top: 0;
    }

    .appearance-component-sidebar {
        max-height: none;
    }

    .appearance-preview-panel {
        order: -1;
    }

    .mail-template-grid {
        grid-template-columns: 1fr;
    }

    .mail-template-preview-card {
        position: relative;
        top: 0;
    }
}

@media (max-width: 991.98px) {
    .auth-quick-access-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .appearance-control-panel-actions {
        grid-template-columns: 1fr;
    }

    .appearance-assets-grid,
    .appearance-toggle-grid,
    .appearance-department-grid,
    .appearance-diff-grid,
    .appearance-color-grid {
        grid-template-columns: 1fr;
    }

    .appearance-asset-metrics,
    .appearance-preview-inspector-grid,
    .appearance-preview-map {
        grid-template-columns: 1fr;
    }

    .appearance-login-preview,
    .appearance-app-preview {
        grid-template-columns: 1fr;
    }

    .appearance-app-preview-cards {
        grid-template-columns: 1fr;
    }

    .appearance-preview-stage {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(300px, 86vw);
        overflow-x: auto;
        overflow-y: hidden;
        max-height: none;
        min-height: 0;
        padding-bottom: 0.45rem;
        scroll-snap-type: x proximity;
    }

    .appearance-preview-browser,
    .appearance-preview-mobile {
        scroll-snap-align: start;
    }
}

@media (max-width: 575.98px) {
    .console-section-dock {
        top: 0.55rem;
        padding: 0.58rem 0.62rem;
        gap: 0.45rem;
    }

    .console-section-dock a {
        padding: 0.48rem 0.7rem;
        font-size: 0.78rem;
    }

    .appearance-upload-row,
    .appearance-color-control {
        grid-template-columns: 1fr;
    }

    .appearance-actions {
        flex-direction: column;
    }

    .appearance-preview-browser,
    .appearance-asset-card,
    .appearance-color-field,
    .appearance-toggle-card,
    .appearance-workspace-toolbar,
    .appearance-preview-selection {
        padding: 0.85rem;
        border-radius: 18px;
    }

    .appearance-preview-mobile-frame {
        width: 100%;
    }

    .appearance-drag-hit {
        left: 0.45rem;
        top: 0.45rem;
        padding: 0.36rem 0.55rem;
    }

    .appearance-preview-location-badge {
        left: 0.45rem;
        right: 0.45rem;
        bottom: 0.45rem;
    }
}

.appointments-board {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.95fr);
    gap: 1rem;
}

.appointments-calendar {
    display: grid;
    gap: 0.9rem;
}

.appointments-calendar-weekdays,
.appointments-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.6rem;
}

.appointments-calendar-weekdays span {
    text-align: center;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--text-soft);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.appointments-day-card {
    min-height: 118px;
    padding: 0.9rem 0.85rem;
    border-radius: 20px;
    border: 1px solid rgba(15, 43, 80, 0.12);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(242, 249, 255, 0.92)),
        var(--surface);
    color: inherit;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.appointments-day-card:hover,
.appointments-day-card:focus {
    transform: translateY(-2px);
    border-color: rgba(47, 155, 255, 0.42);
    box-shadow: var(--shadow-xs);
}

.appointments-day-card.is-selected {
    border-color: rgba(47, 155, 255, 0.68);
    box-shadow: 0 18px 38px rgba(47, 155, 255, 0.14);
}

.appointments-day-card.is-muted {
    opacity: 0.55;
}

.appointments-day-number {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--navy-900);
}

.appointments-day-meta {
    font-size: 0.76rem;
    color: var(--text-soft);
}

.appointments-day-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
}

.appointments-slot-list,
.appointments-timeline {
    display: grid;
    gap: 0.75rem;
}

.appointments-slot-card,
.appointments-timeline-card,
.appointments-selected-slot {
    width: 100%;
    border-radius: 20px;
    border: 1px solid rgba(15, 43, 80, 0.12);
    background: rgba(255, 255, 255, 0.94);
    padding: 0.95rem 1rem;
}

.appointments-slot-card {
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

button.appointments-slot-card {
    cursor: pointer;
}

button.appointments-slot-card:hover:not(:disabled),
button.appointments-slot-card:focus-visible:not(:disabled),
.appointments-timeline-card:hover {
    transform: translateY(-2px);
    border-color: rgba(47, 155, 255, 0.45);
    box-shadow: var(--shadow-xs);
}

.appointments-slot-card.is-available {
    background: linear-gradient(180deg, rgba(236, 253, 245, 0.98), rgba(245, 252, 255, 0.94));
}

.appointments-slot-card.is-occupied {
    background: linear-gradient(180deg, rgba(255, 248, 248, 0.98), rgba(252, 246, 246, 0.94));
}

.appointments-timeline-card {
    color: inherit;
    text-decoration: none;
}

.appointments-timeline-card.is-event {
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.98), rgba(255, 255, 255, 0.94));
}

.appointments-selected-slot {
    min-height: 56px;
    display: flex;
    align-items: center;
    color: var(--text-soft);
    font-weight: 700;
}

.appointments-selected-slot.is-filled {
    color: var(--navy-900);
    border-color: rgba(47, 155, 255, 0.46);
    background: linear-gradient(180deg, rgba(235, 245, 255, 0.98), rgba(255, 255, 255, 0.94));
}

.appointments-selected-slot.is-error {
    color: #9f1239;
    border-color: rgba(225, 29, 72, 0.3);
    background: rgba(255, 241, 242, 0.96);
}

@media (max-width: 1199.98px) {
    .appointments-board {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .appointments-calendar-weekdays,
    .appointments-calendar-grid,
    .appointments-day-columns {
        grid-template-columns: 1fr;
    }

    .appointments-calendar-weekdays {
        display: none;
    }

    .appointments-day-card {
        min-height: 0;
    }
}

.btn-google-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    background: rgba(255, 255, 255, 0.98);
    color: #0f172a;
    font-weight: 700;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.btn-google-login:hover,
.btn-google-login:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(66, 133, 244, 0.28);
    box-shadow: 0 18px 42px rgba(66, 133, 244, 0.12);
    color: #0f172a;
}

.btn-google-login-mark {
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-google-login-mark svg {
    width: 100%;
    height: 100%;
    display: block;
}

.connectivity-url-list {
    display: grid;
    gap: 0.85rem;
}

.connectivity-url-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: rgba(248, 250, 252, 0.92);
    padding: 0.9rem 1rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    word-break: break-word;
}

.connectivity-check-item {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.9);
    padding: 0.95rem 1rem;
}

.connectivity-guide-list {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.65rem;
    color: var(--color-text-muted, #475569);
}

.connectivity-guide-list li {
    line-height: 1.45;
}

@media (max-width: 768px) {
    .connectivity-url-card,
    .connectivity-check-item {
        padding: 0.85rem 0.9rem;
    }

    .connectivity-guide-list {
        gap: 0.5rem;
    }
}

.gradebook-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
}

.gradebook-check-card {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.95));
}

.gradebook-check-card strong,
.gradebook-check-card small,
.gradebook-check-card span {
    display: block;
}

.gradebook-check-card small {
    color: #64748b;
    line-height: 1.3;
}

.gradebook-custom-badge-builder,
.gradebook-template-only-table {
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 1.25rem;
    padding: 1.1rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(255, 255, 255, 0.96));
}

.gradebook-template-workflow,
.gradebook-evidence-guide {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.9rem;
}

.gradebook-template-step,
.gradebook-evidence-guide-card {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: rgba(255, 255, 255, 0.95);
}

.gradebook-template-step > span {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #0f4c5c;
    color: #fff;
    font-weight: 700;
}

.gradebook-template-step strong,
.gradebook-template-step small,
.gradebook-evidence-guide-card span,
.gradebook-evidence-guide-card strong,
.gradebook-evidence-guide-card p {
    display: block;
}

.gradebook-template-step small,
.gradebook-evidence-guide-card p,
.gradebook-evidence-guide-card span {
    color: #64748b;
    line-height: 1.35;
}

.gradebook-evidence-guide-card strong {
    color: #0f172a;
}

.gradebook-consolidated-switcher {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.gradebook-inline-tag.is-type {
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    border-color: rgba(37, 99, 235, 0.18);
}

.gradebook-inline-tag.is-emphasis {
    background: rgba(15, 118, 110, 0.12);
    color: #0f766e;
    border-color: rgba(15, 118, 110, 0.22);
}

@media (max-width: 768px) {
    .gradebook-check-grid,
    .gradebook-template-workflow,
    .gradebook-evidence-guide {
        grid-template-columns: 1fr;
    }
}

.gradebook-module-hero {
    padding: 1.4rem 1.5rem;
    border-radius: 1.5rem;
    border: 1px solid rgba(191, 219, 254, 0.7);
    background:
        radial-gradient(circle at top left, rgba(96, 165, 250, 0.22), transparent 32%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.96));
}

.gradebook-module-hero-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.gradebook-module-eyebrow {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2f7bf6;
    margin-bottom: 0.35rem;
}

.gradebook-module-title {
    font-size: 1.55rem;
    margin: 0 0 0.35rem;
    color: #0f172a;
}

.gradebook-module-description {
    max-width: 64rem;
    color: #475569;
}

.gradebook-module-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    justify-content: flex-end;
}

.gradebook-local-tabs {
    display: flex;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.gradebook-local-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.7rem 1rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(148, 163, 184, 0.22);
    color: #4b5563;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}

.gradebook-local-tab:hover,
.gradebook-local-tab.is-active {
    color: #0f172a;
    background: #e0ecff;
    border-color: rgba(47, 123, 246, 0.3);
    box-shadow: 0 10px 24px rgba(47, 123, 246, 0.12);
}

.gradebook-option-panel {
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 1.25rem;
    padding: 0.85rem;
}

.gradebook-option-panel-head {
    align-items: center;
    display: flex;
    gap: 0.85rem;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.gradebook-option-panel-head strong,
.gradebook-option-panel-head span {
    display: block;
}

.gradebook-option-panel-head strong {
    color: #0f172a;
    font-weight: 900;
}

.gradebook-option-panel-head span {
    color: #64748b;
    font-size: 0.86rem;
}

.gradebook-option-search {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 999px;
    display: inline-flex;
    gap: 0.45rem;
    min-width: min(100%, 280px);
    padding: 0.48rem 0.75rem;
}

.gradebook-option-search input {
    border: 0;
    color: #0f172a;
    font-size: 0.9rem;
    outline: 0;
    width: 100%;
}

.gradebook-option-grid {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.gradebook-option-card {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 1rem;
    color: #0f172a;
    display: flex;
    gap: 0.75rem;
    min-height: 84px;
    padding: 0.75rem;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.gradebook-option-card:hover,
.gradebook-option-card.is-active {
    border-color: rgba(47, 123, 246, 0.35);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.1);
    transform: translateY(-2px);
}

.gradebook-option-card.is-active {
    background: linear-gradient(135deg, #eaf4ff, #ffffff);
}

.gradebook-option-card[hidden] {
    display: none;
}

.gradebook-option-icon {
    align-items: center;
    background: #eaf4ff;
    border-radius: 0.85rem;
    color: #1d4ed8;
    display: inline-flex;
    flex: 0 0 42px;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.gradebook-option-copy strong,
.gradebook-option-copy small {
    display: block;
}

.gradebook-option-copy strong {
    font-size: 0.94rem;
    line-height: 1.15;
}

.gradebook-option-copy small {
    color: #64748b;
    font-size: 0.78rem;
    line-height: 1.25;
    margin-top: 0.2rem;
}

.gradebook-history-filters {
    align-items: end;
    background: #f8fbff;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 1rem;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    padding: 0.85rem;
}

.gradebook-history-filters label span {
    color: #475569;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.25rem;
}

.gradebook-history-table-wrap {
    overflow-x: auto;
}

.gradebook-history-table {
    min-width: 1040px;
}

.gradebook-history-score {
    border-radius: 999px;
    display: inline-flex;
    font-weight: 900;
    min-width: 44px;
    padding: 0.15rem 0.5rem;
}

.gradebook-history-score.old {
    background: #fef2f2;
    color: #991b1b;
}

.gradebook-history-score.new {
    background: #ecfdf3;
    color: #166534;
}

.planning-module-hero {
    border-color: rgba(var(--theme-primary-rgb), 0.12);
    background:
        radial-gradient(circle at top left, rgba(var(--theme-secondary-rgb), 0.14), transparent 38%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 250, 255, 0.92));
}

.planning-local-tabs .gradebook-local-tab {
    gap: 0.45rem;
}

.planning-class-card {
    border-color: rgba(var(--theme-primary-rgb), 0.12);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.planning-class-card:hover {
    transform: translateY(-2px);
    border-color: rgba(var(--theme-primary-rgb), 0.28);
    box-shadow: 0 18px 38px rgba(15, 43, 80, 0.11);
}

.gradebook-settlement-banner,
.gradebook-book-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    border-radius: 1.25rem;
    border: 1px solid rgba(191, 219, 254, 0.72);
    background: linear-gradient(180deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.98));
}

.gradebook-settlement-banner-metrics,
.gradebook-book-banner-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.gradebook-settlement-banner-metrics > div,
.gradebook-book-banner-meta > span {
    min-width: 7rem;
}

.gradebook-settlement-banner-metrics span,
.gradebook-book-banner-meta span {
    display: block;
    font-size: 0.78rem;
    color: #64748b;
}

.gradebook-settlement-banner-metrics strong {
    display: block;
    font-size: 1.05rem;
    color: #0f172a;
}

.gradebook-eva-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 0.8fr;
    gap: 1rem;
}

.gradebook-eva-highlight {
    padding: 1.45rem;
    border-radius: 1.35rem;
    background: linear-gradient(135deg, #ff7a00, #ff9d00);
    color: #fff;
    min-height: 100%;
}

.gradebook-eva-label {
    display: block;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.88rem;
    margin-bottom: 0.45rem;
}

.gradebook-eva-value {
    display: block;
    font-size: 2.45rem;
    line-height: 1;
    margin-bottom: 0.7rem;
}

.gradebook-eva-progress {
    margin-top: auto;
}

.gradebook-eva-progress-bar {
    height: 0.55rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.34);
}

.gradebook-eva-progress-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: rgba(255, 255, 255, 0.92);
}

.gradebook-eva-progress-meta {
    margin-top: 0.55rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.85rem;
}

.gradebook-eva-card {
    padding: 1.1rem;
}

.gradebook-eva-card-value {
    display: block;
    margin-top: 0.15rem;
    font-size: 1.9rem;
    line-height: 1;
    color: #0f172a;
}

.gradebook-eva-secondary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr);
    gap: 1rem;
}

.gradebook-ranking-list {
    display: grid;
    gap: 0.85rem;
}

.gradebook-ranking-item {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    padding: 0.85rem 0.9rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(248, 250, 252, 0.9);
}

.gradebook-ranking-order {
    font-weight: 700;
    color: #334155;
    width: 1.5rem;
    text-align: center;
}

.gradebook-ranking-avatar,
.gradebook-student-analytics-avatar {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(47, 123, 246, 0.12);
    color: #1d4ed8;
    font-weight: 700;
}

.gradebook-ranking-copy strong,
.gradebook-ranking-copy small {
    display: block;
}

.gradebook-ranking-copy small {
    color: #64748b;
}

.gradebook-ranking-score {
    text-align: right;
}

.gradebook-ranking-score strong,
.gradebook-ranking-score small {
    display: block;
}

.gradebook-ranking-score small {
    color: #64748b;
}

.gradebook-student-analytics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.9rem;
}

.gradebook-student-analytics-card {
    padding: 1rem;
    border-radius: 1.1rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(255, 255, 255, 0.96);
}

.gradebook-student-analytics-card.is-danger {
    border-color: rgba(220, 38, 38, 0.26);
}

.gradebook-student-analytics-card.is-warning {
    border-color: rgba(245, 158, 17, 0.3);
}

.gradebook-student-analytics-card.is-info {
    border-color: rgba(37, 99, 235, 0.22);
}

.gradebook-student-analytics-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.gradebook-student-analytics-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.8rem;
}

.gradebook-student-analytics-stats span,
.gradebook-student-analytics-stats strong {
    display: block;
}

.gradebook-student-analytics-stats span {
    font-size: 0.75rem;
    color: #64748b;
}

.gradebook-student-analytics-stats strong {
    color: #0f172a;
}

.gradebook-alert-stack {
    display: grid;
    gap: 0.8rem;
}

.gradebook-alert-card {
    padding: 1rem 1.05rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(248, 250, 252, 0.92);
}

.gradebook-alert-card.is-critica,
.gradebook-alert-card.is-alta {
    border-color: rgba(220, 38, 38, 0.24);
}

.gradebook-alert-card.is-media {
    border-color: rgba(245, 158, 17, 0.26);
}

.gradebook-alert-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 0.45rem;
}

.gradebook-settlement-table td,
.gradebook-settlement-table th {
    vertical-align: middle;
}

.status-chip.info {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.status-chip.primary {
    background: rgba(59, 130, 246, 0.14);
    color: #1d4ed8;
}

@media (max-width: 1024px) {
    .gradebook-eva-grid,
    .gradebook-eva-secondary-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .gradebook-module-hero-head,
    .gradebook-option-panel-head,
    .gradebook-settlement-banner,
    .gradebook-book-banner,
    .gradebook-student-analytics-head,
    .gradebook-ranking-item {
        grid-template-columns: 1fr;
        display: grid;
    }

    .gradebook-module-hero-actions,
    .gradebook-local-tabs,
    .gradebook-settlement-banner-metrics,
    .gradebook-book-banner-meta {
        justify-content: flex-start;
    }

    .gradebook-student-analytics-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gradebook-ranking-score {
        text-align: left;
    }
}

.tutor-board-table-wrap {
    overflow-x: auto;
}

.tutor-board-table {
    min-width: 1280px;
}

.tutor-board-annual-table {
    min-width: 1080px;
}

.tutor-board-table thead th {
    background: #f3f7ff;
    color: #10233f;
    font-size: 0.82rem;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.tutor-board-table tbody td {
    font-size: 0.84rem;
    text-align: center;
    vertical-align: middle;
}

.tutor-board-table tbody td:first-child,
.tutor-board-table thead th:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #ffffff;
}

.tutor-board-table thead th:first-child {
    z-index: 3;
    background: #ecf4ff;
}

.tutor-absence-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
}

.tutor-absence-card {
    border: 1px solid #d7e4f8;
    border-radius: 18px;
    padding: 1rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 12px 30px rgba(8, 28, 58, 0.06);
}

.tutor-absence-metric {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: #4c5f7c;
}

.tutor-absence-metric strong {
    font-size: 1.15rem;
    color: #0f2546;
}

.tutor-improvement-table textarea {
    min-width: 180px;
}

@media (max-width: 991.98px) {
    .tutor-absence-grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }

    .tutor-board-table,
    .tutor-board-annual-table {
        min-width: 980px;
    }
}

.schedule-hero-card {
    background: linear-gradient(135deg, rgba(18, 67, 126, 0.08), rgba(47, 155, 255, 0.06));
}

.schedule-status-stack {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-end;
}

.schedule-professional-metric {
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.95));
    padding: 1rem;
    min-height: 94px;
    box-shadow: 0 16px 35px rgba(15, 23, 42, 0.06);
}

.schedule-professional-metric span {
    display: block;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.schedule-professional-metric strong {
    display: block;
    color: #0f172a;
    font-size: 1.8rem;
    line-height: 1.1;
    margin-top: 0.45rem;
}

.schedule-filter-form .form-label,
.schedule-generator-form .form-label {
    font-weight: 600;
}

.schedule-readonly-note {
    border: 1px solid rgba(24, 67, 126, 0.12);
    border-radius: 18px;
    padding: 1rem 1.1rem;
    background: rgba(24, 67, 126, 0.04);
    color: #23415f;
}

.schedule-summary-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
}

.schedule-summary-list div {
    border: 1px solid rgba(8, 21, 39, 0.08);
    border-radius: 20px;
    padding: 0.95rem 1rem;
    background: rgba(255, 255, 255, 0.82);
}

.schedule-summary-list span {
    display: block;
    font-size: 0.8rem;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.schedule-summary-list strong {
    color: #0f172a;
    font-size: 0.98rem;
}

.schedule-issue-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.85rem;
}

.schedule-issue-list li {
    border: 1px solid rgba(223, 90, 90, 0.16);
    background: rgba(223, 90, 90, 0.05);
    border-radius: 18px;
    padding: 0.9rem 1rem;
}

.schedule-issue-list strong {
    display: block;
    color: #991b1b;
}

.schedule-issue-list span {
    display: block;
    color: #7c2d12;
    font-size: 0.88rem;
    margin-bottom: 0.35rem;
}

.schedule-issue-list p {
    margin: 0;
    color: #475569;
    font-size: 0.92rem;
}

.schedule-matrix-table,
.schedule-general-table,
.schedule-rules-table {
    min-width: 920px;
}

.schedule-matrix-table thead th,
.schedule-general-table thead th,
.schedule-rules-table thead th {
    background: rgba(8, 21, 39, 0.04);
    color: #0f172a;
    font-weight: 700;
    vertical-align: middle;
    white-space: nowrap;
}

.schedule-slot-cell {
    min-width: 150px;
    background: rgba(248, 250, 252, 0.9);
}

.schedule-entry-card {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    border-radius: 18px;
    border: 1px solid rgba(24, 67, 126, 0.12);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(232, 242, 255, 0.75));
    padding: 0.8rem 0.9rem;
    min-width: 130px;
}

.schedule-entry-card strong {
    color: #0f172a;
    font-size: 0.93rem;
}

.schedule-entry-card span,
.schedule-entry-card small {
    color: #475569;
    font-size: 0.82rem;
}

.schedule-empty-cell {
    color: #94a3b8;
    font-size: 0.85rem;
    padding: 0.9rem 0.2rem;
    text-align: center;
}

.schedule-break-row td {
    background: rgba(245, 158, 11, 0.06);
}

.schedule-break-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    background: rgba(245, 158, 11, 0.14);
    color: #9a3412;
    font-size: 0.82rem;
    font-weight: 700;
}

.schedule-builder-hero {
    background:
        radial-gradient(circle at top left, rgba(14, 165, 233, 0.2), transparent 34%),
        radial-gradient(circle at 82% 8%, rgba(251, 113, 133, 0.13), transparent 28%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.94));
    border: 1px solid rgba(14, 116, 144, 0.12);
    overflow: hidden;
    position: relative;
}

.schedule-builder-hero::before {
    background:
        linear-gradient(90deg, rgba(14, 165, 233, 0.16) 1px, transparent 1px),
        linear-gradient(180deg, rgba(14, 165, 233, 0.1) 1px, transparent 1px);
    background-size: 32px 32px;
    content: "";
    inset: 0;
    opacity: 0.28;
    pointer-events: none;
    position: absolute;
}

.schedule-builder-hero > * {
    position: relative;
    z-index: 1;
}

.schedule-builder-command {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}

.schedule-builder-command-copy {
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 28px;
    padding: 1.25rem;
}

.schedule-kicker {
    background: linear-gradient(90deg, #0f4c81, #0ea5e9);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 0.75rem;
    padding: 0.35rem 0.72rem;
    text-transform: uppercase;
}

.schedule-builder-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.schedule-builder-quick-actions .btn {
    border-color: rgba(15, 23, 42, 0.08);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    font-weight: 700;
}

.schedule-builder-progress-card {
    align-content: space-between;
    background: linear-gradient(145deg, rgba(15, 76, 129, 0.95), rgba(14, 165, 233, 0.88));
    border-radius: 28px;
    box-shadow: 0 22px 45px rgba(15, 76, 129, 0.22);
    color: #fff;
    display: grid;
    gap: 0.85rem;
    min-height: 210px;
    padding: 1.25rem;
}

.schedule-ring-meter {
    align-items: center;
    background: conic-gradient(#fff var(--schedule-progress), rgba(255, 255, 255, 0.18) 0);
    border-radius: 999px;
    display: grid;
    height: 112px;
    justify-self: center;
    place-items: center;
    position: relative;
    width: 112px;
}

.schedule-ring-meter::after {
    background: #0f4c81;
    border-radius: inherit;
    content: "";
    inset: 10px;
    position: absolute;
}

.schedule-ring-meter span {
    font-size: 1.1rem;
    font-weight: 900;
    position: relative;
    z-index: 1;
}

.schedule-builder-status-line {
    display: grid;
    gap: 0.35rem;
}

.schedule-builder-status-line span {
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.34rem 0.65rem;
}

.schedule-builder-status-line .is-ok {
    background: rgba(34, 197, 94, 0.24);
}

.schedule-builder-status-line .is-warn {
    background: rgba(245, 158, 11, 0.24);
}

.schedule-builder-metric-grid {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.schedule-builder-metric {
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.06);
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
}

.schedule-builder-metric span {
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
}

.schedule-builder-metric strong {
    color: #0f4c81;
    font-size: 2rem;
    line-height: 1;
}

.schedule-builder-metric small {
    color: #64748b;
}

.schedule-builder-metric.is-alert {
    background: linear-gradient(135deg, rgba(255, 241, 242, 0.95), rgba(255, 255, 255, 0.92));
    border-color: rgba(251, 113, 133, 0.32);
}

.schedule-builder-metric.is-alert strong {
    color: #be123c;
}

.schedule-manual-draft-form {
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.72);
    padding: 1rem;
}

.schedule-selected-card-label {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 16px;
    background: rgba(248, 250, 252, 0.9);
    color: #334155;
    font-weight: 700;
    padding: 0.72rem 0.9rem;
    min-height: 42px;
}

.schedule-builder-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: start;
}

.schedule-card-tray,
.schedule-builder-board {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
    padding: 1rem;
}

.schedule-card-tray {
    position: static;
}

.schedule-card-tray-head {
    align-items: flex-start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.schedule-live-selection {
    background: #e0f2fe;
    border: 1px solid rgba(14, 165, 233, 0.25);
    border-radius: 999px;
    color: #075985;
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 800;
    max-width: 190px;
    padding: 0.35rem 0.65rem;
}

.schedule-card-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 0.75rem;
    max-height: none;
    overflow: visible;
    padding-right: 0;
}

.schedule-load-card {
    width: 100%;
    border: 1px solid rgba(37, 99, 235, 0.13);
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.85));
    color: #0f172a;
    display: grid;
    gap: 0.45rem;
    padding: 0.85rem;
    text-align: left;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.schedule-card-pick {
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: grid;
    gap: 0.45rem;
    padding: 0;
    text-align: left;
    width: 100%;
}

.schedule-card-pick:disabled {
    cursor: not-allowed;
}

.schedule-load-card:hover,
.schedule-load-card.is-selected {
    border-color: rgba(37, 99, 235, 0.5);
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.14);
    transform: translateY(-1px);
}

.schedule-load-card[data-disabled="1"] .schedule-card-pick {
    filter: grayscale(0.15);
    opacity: 0.68;
}

.schedule-load-card[data-card-state="missing_teacher"] {
    border-color: rgba(220, 38, 38, 0.26);
    background: linear-gradient(135deg, rgba(255, 241, 242, 0.95), rgba(255, 255, 255, 0.88));
}

.schedule-load-card[data-card-state="complete"] {
    border-color: rgba(22, 163, 74, 0.25);
    background: linear-gradient(135deg, rgba(240, 253, 244, 0.95), rgba(255, 255, 255, 0.9));
}

.schedule-card-topline,
.schedule-card-meta,
.schedule-card-rules {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
}

.schedule-card-topline strong {
    font-size: 0.95rem;
    line-height: 1.2;
}

.schedule-card-teacher,
.schedule-card-meta,
.schedule-card-rules {
    color: #64748b;
    font-size: 0.8rem;
}

.schedule-card-rules {
    justify-content: flex-start;
    flex-wrap: wrap;
}

.schedule-card-progress {
    display: block;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.2);
}

.schedule-card-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0ea5e9, #2563eb);
}

.schedule-card-edit {
    border-top: 1px dashed rgba(15, 23, 42, 0.12);
    margin-top: 0.25rem;
    padding-top: 0.45rem;
}

.schedule-card-edit summary {
    color: #0f4c81;
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 900;
    list-style: none;
}

.schedule-card-edit summary::-webkit-details-marker {
    display: none;
}

.schedule-card-edit summary::after {
    content: "+";
    float: right;
}

.schedule-card-edit[open] summary::after {
    content: "-";
}

.schedule-card-edit-grid {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0.7rem;
}

.schedule-card-edit-grid label {
    display: grid;
    gap: 0.25rem;
}

.schedule-card-edit-grid label span {
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 800;
}

.schedule-card-edit-wide,
.schedule-card-switch {
    grid-column: 1 / -1;
}

.schedule-card-switch {
    align-items: center;
    display: flex !important;
    gap: 0.45rem !important;
    grid-template-columns: none !important;
}

.schedule-bulk-card-form {
    display: grid;
    gap: 0.85rem;
}

.schedule-bulk-card-actions {
    align-items: center;
    background: linear-gradient(135deg, rgba(15, 76, 129, 0.96), rgba(14, 165, 233, 0.9));
    border-radius: 22px;
    box-shadow: 0 18px 34px rgba(15, 76, 129, 0.18);
    color: #fff;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.85rem 1rem;
}

.schedule-bulk-card-actions strong,
.schedule-bulk-card-actions span {
    display: block;
}

.schedule-bulk-card-actions span {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.8rem;
}

.schedule-bulk-card-actions .btn {
    background: #fff;
    border-color: #fff;
    color: #0f4c81;
    font-weight: 900;
}

.schedule-builder-table td {
    padding: 0.48rem;
    vertical-align: middle;
}

.schedule-builder-board {
    min-width: 0;
}

.schedule-builder-board .table-responsive {
    border-radius: 18px;
    max-width: 100%;
    overflow-x: auto;
}

.schedule-builder-table {
    min-width: 920px;
}

.schedule-cell-target {
    background: rgba(14, 165, 233, 0.08) !important;
    outline: 2px dashed rgba(14, 165, 233, 0.45);
    outline-offset: -6px;
    cursor: pointer;
}

.schedule-cell-target:hover {
    background: rgba(14, 165, 233, 0.16) !important;
}

.schedule-cell-occupied {
    background: rgba(248, 250, 252, 0.72);
}

.schedule-builder-compact-shell {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, 0.08);
    overflow: visible;
    padding: 0.9rem;
}

.schedule-builder-compact-shell::before {
    content: none;
}

.schedule-builder-compact-shell .schedule-builder-command {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
    margin-bottom: 0.75rem;
}

.schedule-builder-compact-shell .schedule-builder-command-copy,
.schedule-builder-compact-shell .schedule-builder-progress-card,
.schedule-builder-compact-shell .schedule-builder-metric,
.schedule-builder-compact-shell .schedule-manual-draft-form,
.schedule-builder-compact-shell .schedule-card-tray,
.schedule-builder-compact-shell .schedule-builder-board {
    border-radius: 14px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
}

.schedule-builder-compact-shell .schedule-builder-command-copy,
.schedule-builder-compact-shell .schedule-card-tray,
.schedule-builder-compact-shell .schedule-builder-board {
    background: #fff;
    padding: 0.8rem;
}

.schedule-builder-compact-shell .schedule-kicker {
    border-radius: 8px;
    font-size: 0.68rem;
    letter-spacing: 0;
    margin-bottom: 0.45rem;
    padding: 0.25rem 0.55rem;
}

.schedule-builder-compact-shell .section-title {
    font-size: 1.12rem;
}

.schedule-builder-actionbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.schedule-builder-actionbar form {
    margin: 0;
}

.schedule-builder-reset-form {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
}

.schedule-builder-reset-form .btn {
    white-space: nowrap;
}

.schedule-builder-reset-form .schedule-reset-all {
    border-style: dashed;
}

.schedule-builder-reset-form .btn-danger {
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.16);
}

.schedule-draft-status {
    align-items: center;
    border: 1px solid rgba(148, 163, 184, 0.34);
    border-radius: 999px;
    color: #334155;
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 800;
    min-height: 31px;
    padding: 0.3rem 0.68rem;
}

.schedule-draft-status[data-state="pending"],
.schedule-draft-status[data-state="warning"] {
    background: #fffbeb;
    border-color: rgba(245, 158, 11, 0.35);
    color: #92400e;
}

.schedule-draft-status[data-state="saving"] {
    background: #eff6ff;
    border-color: rgba(37, 99, 235, 0.28);
    color: #1d4ed8;
}

.schedule-draft-status[data-state="saved"],
.schedule-draft-status[data-state="clean"] {
    background: #ecfdf5;
    border-color: rgba(16, 185, 129, 0.3);
    color: #047857;
}

.schedule-draft-status[data-state="error"] {
    background: #fef2f2;
    border-color: rgba(239, 68, 68, 0.32);
    color: #b91c1c;
}

.schedule-builder-compact-shell .schedule-builder-progress-card {
    background: #0f4c81;
    min-height: auto;
    padding: 0.8rem;
}

.schedule-builder-compact-shell .schedule-ring-meter {
    height: 76px;
    width: 76px;
}

.schedule-builder-compact-shell .schedule-ring-meter::after {
    inset: 7px;
}

.schedule-builder-compact-shell .schedule-ring-meter span {
    font-size: 0.86rem;
}

.schedule-builder-compact-shell .schedule-builder-status-line {
    gap: 0.25rem;
}

.schedule-builder-compact-shell .schedule-builder-status-line span {
    border-radius: 8px;
    font-size: 0.7rem;
    padding: 0.22rem 0.45rem;
}

.schedule-builder-compact-shell .schedule-builder-metric-grid {
    gap: 0.55rem;
    margin-bottom: 0.65rem !important;
}

.schedule-builder-compact-shell .schedule-builder-metric {
    gap: 0.15rem;
    padding: 0.62rem 0.75rem;
}

.schedule-builder-compact-shell .schedule-builder-metric strong {
    font-size: 1.35rem;
}

.schedule-builder-conflict-panel {
    align-items: center;
    background: #f0fdf4;
    border: 1px solid rgba(22, 163, 74, 0.18);
    border-radius: 12px;
    color: #14532d;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    padding: 0.55rem 0.75rem;
}

.schedule-builder-conflict-panel.has-issues {
    background: #fff7ed;
    border-color: rgba(249, 115, 22, 0.24);
    color: #9a3412;
}

.schedule-builder-conflict-panel strong,
.schedule-builder-conflict-panel span {
    display: block;
}

.schedule-builder-conflict-panel span,
.schedule-builder-conflict-panel li {
    font-size: 0.8rem;
}

.schedule-builder-conflict-panel ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.schedule-builder-conflict-panel li {
    background: rgba(255, 255, 255, 0.62);
    border-radius: 999px;
    padding: 0.25rem 0.5rem;
}

.schedule-builder-runtime-alert {
    background: #fef2f2;
    border: 1px solid rgba(220, 38, 38, 0.26);
    border-radius: 12px;
    color: #991b1b;
    display: grid;
    gap: 0.15rem;
    margin: -0.35rem 0 0.85rem;
    padding: 0.58rem 0.75rem;
}

.schedule-builder-runtime-alert[hidden] {
    display: none !important;
}

.schedule-builder-runtime-alert[data-state="warning"] {
    background: #fffbeb;
    border-color: rgba(217, 119, 6, 0.26);
    color: #92400e;
}

.schedule-builder-runtime-alert strong {
    font-size: 0.82rem;
}

.schedule-builder-runtime-alert span {
    font-size: 0.8rem;
}

.schedule-builder-orphan-panel {
    background: #fff7ed;
    border: 1px solid rgba(249, 115, 22, 0.24);
    border-radius: 12px;
    color: #7c2d12;
    display: grid;
    gap: 0.55rem;
    margin: -0.35rem 0 0.85rem;
    padding: 0.68rem 0.78rem;
}

.schedule-builder-orphan-panel strong {
    color: #9a3412;
}

.schedule-builder-orphan-panel span,
.schedule-builder-orphan-panel small {
    color: #9a3412;
    font-size: 0.78rem;
}

.schedule-builder-orphan-panel ul {
    display: grid;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    max-height: 150px;
    overflow: auto;
    padding: 0;
}

.schedule-builder-orphan-panel li {
    display: grid;
    gap: 0.12rem;
}

.schedule-builder-scope-panel {
    align-items: center;
    border-radius: 12px;
    display: flex;
    gap: 0.65rem;
    justify-content: space-between;
    margin: 0.75rem 0;
    padding: 0.65rem 0.78rem;
}

.schedule-builder-scope-panel strong,
.schedule-builder-scope-panel span {
    display: block;
}

.schedule-builder-scope-panel span {
    font-size: 0.8rem;
}

.schedule-builder-scope-panel.is-institutional {
    background: #ecfdf5;
    border: 1px solid rgba(16, 185, 129, 0.28);
    color: #047857;
}

.schedule-builder-scope-panel.is-limited {
    background: #fff7ed;
    border: 1px solid rgba(249, 115, 22, 0.24);
    color: #9a3412;
}

.schedule-builder-compact-shell .schedule-manual-draft-form {
    background: #fff;
    margin-bottom: 0.75rem !important;
    padding: 0.7rem;
}

.schedule-builder-compact-shell .schedule-selected-card-label {
    border-radius: 10px;
    min-height: 34px;
    padding: 0.45rem 0.6rem;
}

.schedule-builder-compact-shell .schedule-builder-layout {
    grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
}

.schedule-builder-compact-shell .schedule-card-tray {
    max-height: calc(100vh - 150px);
    overflow: auto;
    position: sticky;
    top: 0.75rem;
}

.schedule-builder-compact-shell .schedule-card-tray-head {
    align-items: center;
    gap: 0.45rem;
}

.schedule-builder-compact-shell .schedule-card-tray-head .h5 {
    font-size: 0.96rem;
}

.schedule-builder-compact-shell .schedule-live-selection {
    border-radius: 8px;
    max-width: 150px;
}

.schedule-builder-compact-shell .schedule-card-list {
    gap: 0.5rem;
    grid-template-columns: 1fr;
    max-height: none;
    overflow: visible;
}

.schedule-builder-compact-shell .schedule-load-card {
    background: #fff;
    border-left: 4px solid var(--schedule-card-color, #2563eb);
    border-radius: 12px;
    gap: 0.3rem;
    padding: 0.55rem;
}

.schedule-builder-compact-shell .schedule-load-card .badge {
    border-color: color-mix(in srgb, var(--schedule-card-color, #2563eb) 26%, #e2e8f0) !important;
}

.schedule-builder-compact-shell .schedule-card-pick {
    gap: 0.28rem;
}

.schedule-builder-compact-shell .schedule-card-topline strong {
    font-size: 0.84rem;
}

.schedule-builder-compact-shell .schedule-card-teacher,
.schedule-builder-compact-shell .schedule-card-meta,
.schedule-builder-compact-shell .schedule-card-rules {
    font-size: 0.72rem;
}

.schedule-builder-compact-shell .schedule-card-progress {
    background: rgba(148, 163, 184, 0.18);
    height: 5px;
}

.schedule-builder-compact-shell .schedule-card-progress i {
    background: var(--schedule-card-color, #2563eb);
}

.schedule-builder-compact-shell .schedule-card-edit-grid {
    grid-template-columns: 1fr 1fr;
}

.schedule-removed-tray {
    background: #f8fafc;
    border: 1px dashed rgba(100, 116, 139, 0.34);
    border-radius: 12px;
    color: #475569;
    display: grid;
    gap: 0.28rem;
    margin-top: 0.75rem;
    padding: 0.55rem;
}

.schedule-removed-tray strong {
    color: #0f172a;
    font-size: 0.82rem;
}

.schedule-removed-tray span {
    font-size: 0.76rem;
}

.schedule-removed-chip {
    background: #fff;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 999px;
    color: #334155;
    display: inline-flex;
    font-weight: 800;
    margin-top: 0.25rem;
    padding: 0.22rem 0.5rem;
}

.schedule-builder-compact-shell .schedule-builder-board .table-responsive {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    max-height: calc(100vh - 160px);
}

.schedule-builder-compact-shell .schedule-builder-table {
    font-size: 0.82rem;
    margin-bottom: 0;
    min-width: 980px;
}

.schedule-builder-compact-shell .schedule-builder-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.schedule-builder-compact-shell .schedule-builder-table td,
.schedule-builder-compact-shell .schedule-builder-table th {
    padding: 0.32rem;
}

.schedule-builder-compact-shell .schedule-slot-cell {
    min-width: 112px;
}

.schedule-builder-compact-shell .schedule-entry-card {
    border-left: 4px solid var(--schedule-card-color, #2563eb);
    border-radius: 10px;
    gap: 0.08rem;
    min-width: 112px;
    padding: 0.42rem 0.48rem;
}

.schedule-builder-compact-shell .schedule-entry-card strong {
    color: var(--schedule-card-color, #2563eb);
}

.schedule-builder-compact-shell .schedule-entry-card strong {
    font-size: 0.78rem;
}

.schedule-builder-compact-shell .schedule-entry-card span,
.schedule-builder-compact-shell .schedule-entry-card small {
    font-size: 0.68rem;
}

.schedule-builder-compact-shell .schedule-entry-card form {
    margin-top: 0.25rem !important;
}

.schedule-builder-compact-shell .schedule-entry-card .btn {
    border-radius: 999px;
    font-size: 0.68rem;
    padding: 0.12rem 0.42rem;
}

.schedule-builder-compact-shell .schedule-empty-cell {
    border: 1px dashed rgba(148, 163, 184, 0.28);
    border-radius: 10px;
    padding: 0.55rem 0.15rem;
}

.schedule-load-card.is-dragging,
.schedule-entry-card.is-dragging {
    opacity: 0.55;
}

.schedule-entry-card.is-selected,
.schedule-load-card.is-selected {
    outline: 2px solid rgba(37, 99, 235, 0.38);
    outline-offset: 2px;
}

.schedule-entry-card.is-saving,
[data-schedule-cell].is-saving {
    opacity: 0.72;
}

[data-schedule-cell].is-drop-hover,
[data-schedule-cell].schedule-cell-target {
    background: rgba(14, 165, 233, 0.1) !important;
    outline: 2px dashed rgba(14, 165, 233, 0.5);
    outline-offset: -5px;
}

[data-schedule-cell].schedule-cell-blocked {
    background: rgba(248, 250, 252, 0.6) !important;
    cursor: not-allowed;
    opacity: 0.66;
}

[data-schedule-cell].schedule-cell-blocked::after {
    color: #94a3b8;
    content: "No disponible";
    display: block;
    font-size: 0.66rem;
    font-weight: 800;
    text-align: center;
}

.schedule-card-list.schedule-cell-target,
.schedule-card-list.is-drop-hover {
    background: rgba(14, 165, 233, 0.08);
    border: 2px dashed rgba(14, 165, 233, 0.38);
    border-radius: 12px;
    padding: 0.45rem;
}

[data-schedule-cell].is-error {
    background: rgba(254, 242, 242, 0.88) !important;
    outline: 2px solid rgba(239, 68, 68, 0.35);
    outline-offset: -5px;
}

.schedule-generator-form,
.schedule-filter-form {
    row-gap: 1rem;
}

@media (max-width: 991.98px) {
    .schedule-status-stack {
        align-items: flex-start;
    }

    .schedule-builder-command,
    .schedule-builder-metric-grid {
        grid-template-columns: 1fr;
    }

    .schedule-summary-list {
        grid-template-columns: 1fr;
    }

    .schedule-builder-layout {
        grid-template-columns: 1fr;
    }

    .schedule-builder-compact-shell .schedule-builder-command,
    .schedule-builder-compact-shell .schedule-builder-layout,
    .schedule-builder-compact-shell .schedule-builder-metric-grid {
        grid-template-columns: 1fr;
    }

    .schedule-builder-compact-shell .schedule-card-tray {
        max-height: 36vh;
        overflow: auto;
        position: sticky;
        top: 0.5rem;
        z-index: 6;
    }

    .schedule-builder-compact-shell .schedule-card-list {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }

    .schedule-builder-compact-shell .schedule-builder-board .table-responsive {
        max-height: 58vh;
    }

    .schedule-card-tray {
        position: static;
    }

    .schedule-card-list {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        max-height: none;
        overflow: visible;
    }
}

@media (max-width: 575.98px) {
    .schedule-card-tray-head {
        display: grid;
    }

    .schedule-live-selection {
        max-width: none;
        width: 100%;
    }

    .schedule-card-edit-grid {
        grid-template-columns: 1fr;
    }

    .schedule-bulk-card-actions {
        align-items: stretch;
        display: grid;
    }
}

.google-drive-metric-grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.google-drive-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.9fr);
    gap: 1.25rem;
    align-items: start;
}

.google-drive-panel {
    box-shadow: 0 18px 40px rgba(12, 31, 58, 0.07);
}

.google-drive-side-column {
    display: grid;
    gap: 1rem;
}

.google-drive-guide-list li + li {
    margin-top: 0.45rem;
}

.google-drive-status-list {
    display: grid;
    gap: 0.85rem;
}

.google-drive-status-list div {
    display: grid;
    gap: 0.15rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.google-drive-status-list div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.google-drive-status-list dt {
    margin: 0;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
}

.google-drive-status-list dd {
    margin: 0;
    color: #0f172a;
    word-break: break-word;
}

@media (max-width: 1100px) {
    .google-drive-layout {
        grid-template-columns: 1fr;
    }
}

.install-card {
    max-width: 1180px;
}

.install-form {
    display: grid;
    gap: 1rem;
}

.install-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.install-step {
    display: grid;
    gap: 0.35rem;
    justify-items: center;
    padding: 0.9rem 0.75rem;
    border-radius: 20px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255, 255, 255, 0.78);
    color: #64748b;
}

.install-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    font-weight: 800;
}

.install-step small {
    font-size: 0.74rem;
    text-align: center;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.install-step.active {
    border-color: rgba(47, 155, 255, 0.35);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(226, 240, 255, 0.92));
    color: #0f172a;
}

.install-step.active span,
.install-step.completed span {
    background: linear-gradient(135deg, #2f9bff, #0f766e);
    color: #fff;
}

.install-step.completed {
    border-color: rgba(15, 118, 110, 0.24);
    background: rgba(240, 253, 250, 0.92);
    color: #0f172a;
}

.install-panel {
    min-height: 520px;
}

.install-final-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

@media (max-width: 767.98px) {
    .install-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.mail-template-preview-brand {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.9rem;
}

.mail-template-preview-logo,
.mail-template-preview-logo-fallback {
    width: 4.1rem;
    height: 4.1rem;
    border-radius: 1.1rem;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.mail-template-preview-logo {
    padding: 0.55rem;
}

.mail-template-preview-logo-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    font-size: 1.35rem;
}

.mail-template-preview-brand-copy {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.mail-template-preview-note {
    padding: 0 0.2rem;
}

.mail-template-test-box {
    display: grid;
    gap: 1rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    border-radius: 1.25rem;
    background: linear-gradient(180deg, rgba(247, 250, 255, 0.96), rgba(255, 255, 255, 0.96));
}

.mail-template-test-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.mail-template-test-head h4 {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.admin-preview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    gap: 1rem;
    align-items: start;
}

.admin-document-preview {
    position: sticky;
    top: 0.75rem;
}

.admin-document-sheet,
.admin-report-sheet {
    border-radius: 1.5rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 255, 0.96));
    box-shadow: 0 22px 42px rgba(10, 43, 82, 0.08);
    padding: 1.15rem;
    display: grid;
    gap: 1rem;
}

.admin-document-letterhead,
.admin-report-header {
    display: grid;
    gap: 0.9rem;
    align-items: center;
}

.admin-document-letterhead {
    grid-template-columns: auto minmax(0, 1fr);
}

.admin-document-logo,
.admin-report-logo,
.admin-document-logo-fallback,
.admin-report-logo-fallback {
    width: 5rem;
    height: 5rem;
    border-radius: 1.2rem;
    object-fit: contain;
    background: rgba(15, 23, 42, 0.04);
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-document-logo,
.admin-report-logo {
    padding: 0.55rem;
}

.admin-document-logo-fallback,
.admin-report-logo-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.5rem;
    color: var(--navy-900);
}

.admin-document-head-copy,
.admin-report-header-copy {
    display: grid;
    gap: 0.2rem;
}

.admin-document-head-copy strong,
.admin-report-header-copy strong {
    font-size: 1.05rem;
    color: var(--navy-900);
}

.admin-document-head-copy span,
.admin-report-header-copy span,
.admin-report-header-copy small {
    color: var(--text-soft);
}

.admin-document-body h3 {
    margin: 0 0 0.4rem;
    font-size: 1rem;
}

.admin-document-body p {
    margin: 0;
    color: var(--text-soft);
    line-height: 1.6;
}

.admin-document-footer,
.admin-report-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(10, 43, 82, 0.08);
    color: var(--text-soft);
    font-size: 0.86rem;
}

.admin-report-sheet {
    --report-preview-primary: #0b1f3a;
    --report-preview-secondary: #2f9bff;
}

.admin-report-topline {
    height: 0.38rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--report-preview-primary), var(--report-preview-secondary));
}

.admin-report-header[data-logo-position="center"] {
    justify-items: center;
    text-align: center;
}

.admin-report-header[data-logo-position="right"] {
    grid-template-columns: minmax(0, 1fr) auto;
}

.admin-report-header[data-logo-position="right"] .admin-report-logo,
.admin-report-header[data-logo-position="right"] .admin-report-logo-fallback {
    order: 2;
}

.admin-report-header[data-logo-position="right"] .admin-report-header-copy {
    order: 1;
}

.admin-report-summary {
    display: grid;
    gap: 0.18rem;
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(47, 155, 255, 0.24);
    background: rgba(47, 155, 255, 0.08);
}

.admin-report-summary span {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-soft);
    font-weight: 700;
}

.admin-report-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border-radius: 1rem;
    border: 1px solid rgba(10, 43, 82, 0.08);
}

.admin-report-table th,
.admin-report-table td {
    padding: 0.85rem 0.9rem;
    border-bottom: 1px solid rgba(10, 43, 82, 0.08);
    text-align: left;
}

.admin-report-table thead.is-solid {
    background: var(--report-preview-primary);
    color: #fff;
}

.admin-report-table thead.is-soft {
    background: rgba(47, 155, 255, 0.08);
    color: var(--report-preview-primary);
}

.admin-report-table tbody tr:last-child td {
    border-bottom: 0;
}

.admin-report-table.is-striped tbody tr:nth-child(even) td {
    background: rgba(47, 155, 255, 0.05);
}

.admin-report-table.is-compact th,
.admin-report-table.is-compact td {
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}

.admin-report-table.is-airy th,
.admin-report-table.is-airy td {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

@media (max-width: 767.98px) {
    .mail-template-preview-brand {
        grid-template-columns: 1fr;
    }

    .mail-template-test-head {
        flex-direction: column;
    }

    .admin-preview-grid {
        grid-template-columns: 1fr;
    }

    .admin-document-preview {
        position: relative;
        top: 0;
    }

    .admin-document-letterhead,
    .admin-report-header,
    .admin-report-header[data-logo-position="right"] {
        grid-template-columns: 1fr;
        justify-items: start;
    }
}

.console-repair-card {
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 22px;
    padding: 1rem 1.05rem;
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.08), transparent 42%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(244, 248, 255, 0.92));
    box-shadow: 0 18px 32px rgba(15, 23, 42, 0.06);
}

.console-repair-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: .65rem;
}

.console-repair-stats div,
.console-chart-orb,
.console-module-bar,
.console-bar-row {
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(148, 163, 184, 0.15);
}

.console-repair-stats div {
    padding: .65rem .75rem;
}

.console-repair-stats span,
.console-chart-kicker,
.console-chart-caption {
    display: block;
    font-size: .76rem;
    color: #64748b;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.console-repair-stats strong,
.console-chart-big {
    display: block;
    margin-top: .2rem;
    color: #0f172a;
    font-weight: 800;
}

.console-chart-big {
    font-size: 2rem;
}

.console-chart-orb {
    min-height: 170px;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 1rem;
    background:
        radial-gradient(circle at center, rgba(59, 130, 246, 0.18), transparent 58%),
        radial-gradient(circle at top left, rgba(16, 185, 129, 0.12), transparent 44%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(241, 245, 249, 0.92));
}

.console-sparkline {
    width: 100%;
    min-height: 52px;
}

.console-bar-stack {
    display: grid;
    gap: .7rem;
}

.console-bar-row {
    display: grid;
    grid-template-columns: minmax(90px, 1fr) minmax(120px, 2fr) auto;
    align-items: center;
    gap: .8rem;
    padding: .72rem .8rem;
}

.console-bar-row span {
    font-size: .88rem;
    color: #1e293b;
}

.console-bar-row strong {
    color: #0f172a;
    font-size: .92rem;
}

.console-bar-track,
.console-mix-track {
    position: relative;
    height: 10px;
    border-radius: 999px;
    background: rgba(203, 213, 225, 0.42);
    overflow: hidden;
}

.console-bar-fill,
.console-mix-fill {
    height: 100%;
    border-radius: 999px;
}

.console-bar-fill {
    background: linear-gradient(90deg, #2563eb, #60a5fa);
}

.console-mix-track {
    display: flex;
}

.console-mix-fill.success {
    background: linear-gradient(90deg, #10b981, #34d399);
}

.console-mix-fill.danger {
    background: linear-gradient(90deg, #ef4444, #f97316);
}

.console-module-bars {
    display: grid;
    gap: .85rem;
}

.console-module-bar {
    padding: .8rem .9rem;
}

body[data-theme-mode="dark"] .console-repair-card,
body[data-theme-mode="dark"] .console-repair-stats div,
body[data-theme-mode="dark"] .console-chart-orb,
body[data-theme-mode="dark"] .console-module-bar,
body[data-theme-mode="dark"] .console-bar-row {
    background: rgba(15, 23, 42, 0.84);
    border-color: rgba(148, 163, 184, 0.16);
}

body[data-theme-mode="dark"] .console-repair-stats strong,
body[data-theme-mode="dark"] .console-chart-big,
body[data-theme-mode="dark"] .console-bar-row span,
body[data-theme-mode="dark"] .console-bar-row strong {
    color: #e2e8f0;
}

body[data-theme-mode="dark"] .console-chart-kicker,
body[data-theme-mode="dark"] .console-chart-caption,
body[data-theme-mode="dark"] .console-repair-stats span {
    color: #94a3b8;
}

/* Login institucional configurable desde consola */
body.auth-shell {
    width: 100%;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
}

.institutional-login-shell {
    width: min(var(--login-page-max-width, 1320px), calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    margin: 0 auto;
    min-height: min(760px, calc(100vh - 8rem));
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.96fr);
    overflow: hidden;
    border-radius: var(--login-card-radius, 28px);
    background: var(--login-surface, #ffffff);
    border: 1px solid rgba(11, 31, 58, 0.08);
    box-shadow: 0 32px 90px color-mix(in srgb, var(--login-shadow-color, #0b1f3a) 15%, transparent);
}

.institutional-login-shell,
.institutional-login-shell * {
    box-sizing: border-box;
}

.institutional-login-shell.single-panel {
    grid-template-columns: minmax(360px, 560px);
    justify-content: center;
}

.institutional-login-visual {
    position: relative;
    min-width: 0;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 1.25rem;
    min-height: 680px;
    padding: var(--login-visual-padding, clamp(2rem, 5vw, 4rem));
    text-align: center;
    overflow: hidden;
    background: linear-gradient(135deg, color-mix(in srgb, var(--login-visual-bg, #fbe7ef) 82%, white), color-mix(in srgb, var(--login-accent, #e95584) 16%, white) 54%, color-mix(in srgb, var(--login-secondary, #2f9bff) 12%, white));
}

.institutional-login-visual::after {
    content: "";
    position: absolute;
    inset: auto 0 0 auto;
    width: 38%;
    height: 38%;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(47, 155, 255, 0.16), transparent 68%);
    pointer-events: none;
}

.login-orbit {
    position: relative;
    width: min(var(--login-visual-image-size, 330px), 72vw);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 50%;
    padding: 12px;
    background: linear-gradient(135deg, var(--login-accent, #e95584), var(--login-secondary, #2f9bff));
    box-shadow: 0 26px 80px rgba(11, 31, 58, 0.14);
}

.login-orbit-inner {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.76);
    overflow: hidden;
}

.login-orbit-inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.login-visual-copy h1 {
    margin: 0;
    color: var(--login-primary, #0b1f3a);
    font-size: clamp(2.1rem, 3.3vw, 3.9rem);
    font-weight: 500;
    letter-spacing: 0.04em;
}

.login-visual-copy p {
    margin: -0.15rem 0 0;
    color: var(--login-accent, #e95584);
    font-size: clamp(1.55rem, 2.3vw, 2.8rem);
    font-style: italic;
    font-weight: 700;
}

.login-phrase-card {
    position: relative;
    width: min(540px, 100%);
    max-width: 100%;
    min-width: 0;
    padding: 1.6rem 2rem;
    border-radius: var(--login-quote-radius, 24px);
    background: color-mix(in srgb, var(--login-quote-bg, #ffffff) 82%, transparent);
    box-shadow: 0 20px 70px rgba(11, 31, 58, 0.12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.login-quote-mark {
    position: absolute;
    top: -0.9rem;
    left: 50%;
    transform: translateX(-50%);
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--login-accent, #e95584);
    color: white;
    font-size: 2.4rem;
    line-height: 1;
}

.login-phrase-card p {
    margin: 0.85rem 0 0.95rem;
    color: var(--login-primary, #0b1f3a);
    font-size: 1.08rem;
    line-height: 1.6;
}

.login-phrase-card strong {
    color: var(--login-accent, #e95584);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.78rem;
}

.login-progress-dots {
    display: inline-flex;
    gap: 0.9rem;
}

.login-progress-dots span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.72);
}

.login-progress-dots span:first-child {
    background: var(--login-accent, #e95584);
}

.institutional-login-form-panel {
    position: relative;
    min-width: 0;
    display: grid;
    align-content: center;
    gap: var(--login-panel-gap, 1.7rem);
    min-height: 680px;
    padding: clamp(2rem, 5vw, var(--login-form-padding, 4rem));
    background: radial-gradient(circle at 92% 10%, rgba(47, 155, 255, 0.08), transparent 32%), var(--login-form-bg, var(--login-surface, #ffffff));
}

.login-language-pill {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.72rem 0.95rem;
    border-radius: 14px;
    background: #ffffff;
    color: var(--login-primary, #0b1f3a);
    box-shadow: 0 10px 24px rgba(11, 31, 58, 0.08);
    font-weight: 800;
}

.login-form-brand {
    display: flex;
    align-items: center;
    gap: var(--login-brand-gap, 1.15rem);
    min-width: 0;
}

.login-form-mark {
    width: var(--login-logo-size, 82px);
    height: var(--login-logo-size, 82px);
    border-radius: 26px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--login-accent, #e95584), color-mix(in srgb, var(--login-accent, #e95584) 62%, white));
    box-shadow: 0 16px 40px rgba(233, 85, 132, 0.18);
    overflow: hidden;
}

.login-form-mark img {
    width: 70%;
    height: 70%;
    object-fit: contain;
}

.login-form-brand h2 {
    margin: 0;
    color: var(--login-primary, #0b1f3a);
    font-size: var(--login-title-size, clamp(2rem, 2.8vw, 3rem));
    font-weight: 900;
    overflow-wrap: anywhere;
}

.login-form-brand p {
    margin: 0.35rem 0 0;
    color: var(--login-text, #5b667a);
    text-transform: uppercase;
    letter-spacing: 0.075em;
    font-weight: 800;
    font-size: var(--login-subtitle-size, 1rem);
}

.login-form-intro {
    margin: 0;
    text-align: center;
    color: var(--login-text, #5b667a);
    font-size: var(--login-message-size, 1.08rem);
}

.institutional-login-form {
    display: grid;
    gap: 1.1rem;
}

.login-input-wrap {
    min-height: var(--login-input-height, 62px);
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0 1.15rem;
    border: 1px solid var(--login-input-border, rgba(11, 31, 58, 0.12));
    border-radius: var(--login-input-radius, 17px);
    background: var(--login-input-bg, #ffffff);
    color: var(--login-text, #5b667a);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.login-input-wrap:focus-within {
    border-color: color-mix(in srgb, var(--login-secondary, #2f9bff) 52%, white);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--login-secondary, #2f9bff) 12%, transparent);
}

.login-input-wrap > span {
    color: var(--login-accent, #e95584);
    font-size: 1.35rem;
}

.login-input-wrap input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--login-primary, #0b1f3a);
    font-size: 1rem;
}

.login-password-toggle {
    border: 0;
    background: transparent;
    color: #98a2b3;
    padding: 0.35rem;
}

.login-form-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    color: var(--login-text, #5b667a);
    flex-wrap: wrap;
}

.login-form-row a {
    color: var(--login-accent, #e95584);
    text-decoration: none;
    font-weight: 700;
}

.login-remember {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.login-main-button,
.login-google-button {
    min-height: var(--login-button-height, 60px);
    border-radius: var(--login-button-radius, 14px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
}

.login-main-button {
    border: 0;
    color: var(--login-button-text, #ffffff);
    background: linear-gradient(135deg, var(--login-accent, #e95584), color-mix(in srgb, var(--login-accent, #e95584) 82%, var(--login-secondary, #2f9bff)));
    box-shadow: 0 18px 38px color-mix(in srgb, var(--login-accent, #e95584) 24%, transparent);
}

.login-google-button {
    border: 1px solid rgba(11, 31, 58, 0.12);
    background: #ffffff;
    color: var(--login-primary, #0b1f3a);
}

.login-quick-access {
    display: grid;
    gap: 1rem;
}

.login-quick-title {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: var(--login-text, #5b667a);
    justify-content: center;
}

.login-quick-title::before,
.login-quick-title::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #e5e9f1;
}

.login-quick-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(112px, 100%), 1fr));
    gap: 0.85rem;
}

.login-quick-card {
    min-width: 0;
    min-height: var(--login-quick-card-height, 92px);
    border: 1px solid rgba(11, 31, 58, 0.10);
    border-radius: 15px;
    display: grid;
    gap: 0.5rem;
    place-items: center;
    background: var(--login-quick-bg, #ffffff);
    color: var(--login-text, #5b667a);
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.login-quick-card:hover,
.login-quick-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(11, 31, 58, 0.10);
    color: var(--login-primary, #0b1f3a);
    outline: none;
}

.login-quick-card span {
    width: var(--login-quick-icon-size, 36px);
    height: var(--login-quick-icon-size, 36px);
    border-radius: 14px;
    display: grid;
    place-items: center;
    color: var(--quick-accent, var(--login-secondary, #2f9bff));
    background: color-mix(in srgb, var(--quick-accent, #2f9bff) 12%, white);
    font-size: 1.25rem;
}

.login-quick-card strong {
    font-size: 0.82rem;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: center;
}

.login-form-footer {
    display: grid;
    gap: 0.35rem;
    text-align: center;
    color: #8b95a7;
}

.login-form-footer small {
    color: #8b95a7;
}

@media (max-width: 1080px) {
    .institutional-login-shell {
        grid-template-columns: 1fr;
        width: min(100%, calc(100vw - 1.25rem));
        max-width: calc(100vw - 1.25rem);
    }

    .institutional-login-visual,
    .institutional-login-form-panel {
        min-height: auto;
    }

    .institutional-login-visual {
        padding-block: 2.5rem;
    }
}

@supports (height: 100dvh) {
    .institutional-login-shell {
        min-height: min(760px, calc(100dvh - 8rem));
    }
}

@supports (-webkit-touch-callout: none) {
    body.auth-shell {
        min-height: 100svh;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
    }

    .institutional-login-shell {
        max-width: calc(100vw - 1rem);
    }

    .institutional-login-visual,
    .institutional-login-form-panel,
    .login-form-brand,
    .login-quick-card {
        min-width: 0;
    }
}

@media (max-width: 620px) {
    .institutional-login-shell {
        width: min(100%, calc(100% - 1rem));
        border-radius: 22px;
    }

    .institutional-login-form-panel {
        padding: 2rem 1.25rem;
    }

    .login-form-brand {
        align-items: flex-start;
    }

    .login-form-brand h2 {
        font-size: 1.75rem;
    }

    .login-language-pill {
        position: static;
        justify-self: end;
    }

    .login-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.student-export-shell {
    background:
        radial-gradient(circle at top left, rgba(47, 155, 255, 0.12), transparent 32%),
        linear-gradient(145deg, #ffffff 0%, #f7fbff 100%);
}

.export-card {
    border: 1px solid rgba(15, 60, 104, 0.12);
    border-radius: 24px;
    padding: 1.25rem;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 16px 42px rgba(8, 40, 74, 0.08);
}

.export-card h3 {
    margin: 0 0 1rem;
    color: #08284a;
    font-size: 1rem;
    font-weight: 800;
}

.export-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.export-radio,
.export-check {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    min-height: 72px;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 60, 104, 0.14);
    border-radius: 18px;
    background: #ffffff;
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.export-radio:hover,
.export-check:hover {
    transform: translateY(-1px);
    border-color: rgba(47, 155, 255, 0.42);
    box-shadow: 0 14px 30px rgba(8, 40, 74, 0.08);
}

.export-radio input,
.export-check input {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: #0f3c68;
}

.export-radio span {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    color: #08284a;
    font-weight: 800;
}

.export-radio i {
    color: #2f9bff;
    font-size: 1.2rem;
}

.export-check span {
    display: grid;
    gap: 0.18rem;
}

.export-check strong {
    color: #08284a;
}

.export-check small {
    color: #64748b;
    line-height: 1.35;
}

.export-check.disabled {
    cursor: not-allowed;
    opacity: 0.62;
    background: #f3f6fb;
}

.export-summary-box {
    display: grid;
    gap: 0.45rem;
    height: 100%;
    padding: 1rem;
    border-radius: 18px;
    background: #edf5ff;
    color: #42526f;
}

.export-summary-box strong {
    color: #08284a;
}

.student-export-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(15, 60, 104, 0.12);
    box-shadow: 0 16px 42px rgba(8, 40, 74, 0.08);
}

@media (max-width: 720px) {
    .export-option-grid {
        grid-template-columns: 1fr;
    }

    .student-export-actions {
        align-items: stretch;
    }

    .student-export-actions .btn {
        width: 100%;
    }
}

.secretariat-export-builder {
    border: 1px solid rgba(47, 155, 255, 0.16);
}

.export-step-title {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.export-step-title > span {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 12px;
    background: linear-gradient(135deg, #0f3c68, #2f9bff);
    color: #fff;
    font-weight: 900;
}

.export-step-title h3 {
    margin-bottom: 0.12rem;
}

.export-step-title small {
    color: #64748b;
}

.secretariat-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.85rem;
    max-height: 390px;
    overflow: auto;
    padding-right: 0.25rem;
}

.secretariat-course-card,
.secretariat-student-row,
.secretariat-detail-check {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    border: 1px solid rgba(15, 60, 104, 0.12);
    background: rgba(255, 255, 255, 0.92);
    border-radius: 18px;
    padding: 0.85rem;
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.secretariat-course-card:hover,
.secretariat-student-row:hover,
.secretariat-detail-check:hover {
    transform: translateY(-1px);
    border-color: rgba(47, 155, 255, 0.42);
    box-shadow: 0 14px 30px rgba(8, 40, 74, 0.08);
}

.secretariat-course-card input,
.secretariat-student-row input,
.secretariat-detail-check input {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: #0f3c68;
}

.course-card-icon {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 14px;
    background: #edf5ff;
    color: #0f3c68;
}

.secretariat-course-card span:last-child,
.secretariat-student-row span,
.secretariat-detail-check span {
    display: grid;
    gap: 0.12rem;
}

.secretariat-course-card strong,
.secretariat-student-row strong,
.secretariat-detail-check strong {
    color: #08284a;
    font-weight: 900;
}

.secretariat-course-card small,
.secretariat-student-row small,
.secretariat-detail-check small {
    color: #64748b;
    line-height: 1.35;
}

.secretariat-student-list {
    display: grid;
    gap: 0.65rem;
    max-height: 500px;
    overflow: auto;
    padding-right: 0.25rem;
}

.secretariat-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.75rem;
}

.export-approval-stack {
    display: grid;
    gap: 1rem;
}

.export-approval-stack.compact .export-approval-card {
    box-shadow: none;
}

.export-approval-card {
    border: 1px solid rgba(15, 60, 104, 0.12);
    background:
        radial-gradient(circle at top right, rgba(47, 155, 255, 0.08), transparent 28%),
        #fff;
    border-radius: 24px;
    padding: 1rem;
    box-shadow: 0 16px 36px rgba(8, 40, 74, 0.08);
}

.export-approval-card h3 {
    color: #08284a;
    font-size: 1.05rem;
    font-weight: 900;
    margin: 0.2rem 0 0.35rem;
}

.export-approval-box {
    height: 100%;
    border-radius: 18px;
    border: 1px solid rgba(15, 60, 104, 0.1);
    background: #f8fbff;
    padding: 0.85rem;
}

.export-approval-box strong {
    color: #08284a;
}

.export-approval-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 0.85rem;
}

.export-approval-meta span {
    border-radius: 999px;
    background: #edf5ff;
    color: #31506f;
    font-size: 0.8rem;
    padding: 0.35rem 0.65rem;
}

.approval-action-form {
    border: 1px solid rgba(15, 60, 104, 0.1);
    border-radius: 18px;
    background: rgba(248, 251, 255, 0.88);
    padding: 0.85rem;
}

.lectionary-modern-panel {
    overflow: hidden;
}

.lectionary-day-header {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.lectionary-day-header > div {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: linear-gradient(135deg, #f8fbff, #eef6ff);
    padding: 0.95rem 1rem;
}

.lectionary-day-header span,
.lectionary-slot-time span {
    display: block;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lectionary-day-header strong {
    color: #0f2f56;
    font-size: 1rem;
}

.lectionary-day-list {
    display: grid;
    gap: 0.85rem;
}

.lectionary-day-slot {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.1rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(15, 23, 42, 0.06);
    padding: 0.85rem;
}

.lectionary-slot-time {
    border-radius: 0.95rem;
    background: #eef7ff;
    color: #0f2f56;
    padding: 0.85rem;
}

.lectionary-slot-time strong {
    display: block;
    margin-bottom: 0.25rem;
}

.lectionary-slot-body h3,
.lectionary-teacher-card h3 {
    color: #102a43;
    font-size: 1.05rem;
    margin: 0 0 0.25rem;
}

.lectionary-slot-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.lectionary-teacher-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.lectionary-teacher-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.15rem;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.07);
    padding: 1rem;
}

@media (max-width: 768px) {
    .lectionary-day-header,
    .lectionary-day-slot {
        grid-template-columns: 1fr;
    }

    .lectionary-slot-actions {
        justify-content: flex-start;
    }
}

/* Ajuste visual del menu lateral: evita cortes en pantallas altas/angostas y centra mejor el contenido. */
.sidebar,
.console-sidebar {
    isolation: isolate;
    min-width: 0;
    padding-inline: clamp(0.85rem, 1.4vw, 1.1rem);
    padding-bottom: max(1.6rem, calc(1.6rem + env(safe-area-inset-bottom, 0px)));
    scroll-padding-block: 1.2rem 7rem;
}

.sidebar > nav,
.console-sidebar > nav {
    display: grid;
    gap: 0.7rem;
    padding-bottom: 1rem;
}

.brand-card {
    min-width: 0;
    padding-inline: 0.1rem;
}

.brand-card > div:last-child {
    min-width: 0;
}

.brand-title {
    overflow-wrap: anywhere;
    word-break: normal;
}

.brand-mark {
    flex: 0 0 auto;
}

.sidebar-highlight {
    min-width: 0;
}

.sidebar-highlight > div:last-child {
    min-width: 0;
}

.sidebar-highlight-label,
.sidebar-highlight-text,
.nav-group-title span,
.nav-sublink span:last-child {
    overflow-wrap: anywhere;
}

.nav-group-toggle {
    min-height: 4.15rem;
}

.nav-group-title {
    min-width: 0;
    flex: 1 1 auto;
}

.nav-group-title i,
.nav-sublink-icon {
    flex: 0 0 auto;
}

.nav-group-caret {
    flex: 0 0 auto;
}

.nav-sublink {
    min-height: 3rem;
}

.active-work-mode {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(15, 33, 59, 0.11);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 0% 0%, rgba(246, 211, 218, 0.38), transparent 32%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(240, 251, 253, 0.88));
    box-shadow: 0 14px 34px rgba(15, 33, 59, 0.08);
}

.active-work-mode > div:first-child {
    min-width: 0;
    display: grid;
    gap: 0.18rem;
}

.active-work-mode-badge {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.62rem;
    border-radius: 999px;
    color: #0d7180;
    background: #e9fbfb;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.active-work-mode strong {
    color: #10213b;
    font-size: 1rem;
}

.active-work-mode small {
    color: #64748b;
    line-height: 1.35;
}

.active-work-mode-actions {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.sidebar-user {
    flex: 0 0 auto;
    margin-top: 0.8rem;
}

@media (max-width: 991.98px) {
    .sidebar {
        width: min(92vw, 336px);
        height: 100dvh;
        max-height: 100dvh;
        padding-top: max(0.95rem, env(safe-area-inset-top, 0px));
        padding-bottom: calc(6.25rem + env(safe-area-inset-bottom, 0px));
    }

    .sidebar-highlight {
        display: none;
    }

    .brand-card {
        align-items: center;
        border-radius: 1.35rem;
        justify-content: flex-start;
        padding: 0.35rem 0.4rem 0.85rem;
    }

    .brand-mark {
        width: 46px;
        height: 46px;
        border-radius: 16px;
    }

    .brand-title {
        font-size: 0.98rem;
        line-height: 1.16;
    }

    .brand-subtitle {
        font-size: 0.8rem;
    }

    .nav-group {
        border-radius: 1.25rem;
    }

    .nav-group-toggle {
        gap: 0.65rem;
        padding: 0.82rem 0.9rem;
    }

    .nav-sublink {
        padding: 0.72rem 0.78rem;
    }

    .sidebar-user {
        margin-top: 0.4rem;
    }

    .active-work-mode {
        align-items: stretch;
        flex-direction: column;
    }

    .active-work-mode-actions {
        justify-content: flex-start;
    }

body:not(.sidebar-open) .sidebar .sidebar-glow {
        display: none;
    }
}

.schedule-workload-overview,
.schedule-workload-compact-panel,
.schedule-workload-editor-card {
    border-radius: 12px;
    overflow: visible;
}

.schedule-workload-filter-panel {
    border-left: 4px solid #0f4c81;
    padding: 0.9rem 1rem;
}

.schedule-workload-filter-panel .form-label,
.schedule-workload-settings-form .form-label,
.schedule-workload-new-form .form-label {
    color: #475569;
    font-size: 0.74rem;
    font-weight: 850;
    margin-bottom: 0.25rem;
}

.schedule-workload-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.schedule-workload-overview {
    padding: 1rem;
}

.schedule-workload-overview-main {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.schedule-workload-export-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.schedule-workload-kpi-row {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(4, minmax(130px, 1fr));
    margin-top: 0.8rem;
}

.schedule-workload-kpi {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
}

.schedule-workload-kpi span {
    color: #64748b;
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.2;
}

.schedule-workload-kpi strong {
    color: #0f2f57;
    display: block;
    font-size: 1.12rem;
    line-height: 1.15;
    margin-top: 0.15rem;
}

.schedule-workload-card-head {
    align-items: center;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    display: flex;
    gap: 0.85rem;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    padding-bottom: 0.65rem;
}

.schedule-workload-card-kicker {
    color: #0f4c81;
    display: block;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.schedule-workload-new-box {
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    padding: 0.75rem;
}

.schedule-workload-check-cell {
    align-items: flex-end;
    display: flex;
    min-height: 54px;
}

.schedule-workload-check-cell .form-check {
    margin-bottom: 0.18rem;
}

.schedule-workload-settings-form .form-control-sm,
.schedule-workload-settings-form .form-select-sm,
.schedule-workload-new-form .form-control-sm,
.schedule-workload-new-form .form-select-sm {
    min-height: 32px;
}

.schedule-workload-fold {
    background: #f8fafc;
    border: 1px solid rgba(15, 76, 129, 0.1);
    border-radius: 8px;
    padding: 0.6rem 0.7rem;
}

.schedule-workload-fold + .schedule-workload-fold {
    margin-top: 0.85rem;
}

.schedule-workload-fold > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 0.9rem;
    justify-content: space-between;
    list-style: none;
}

.schedule-workload-fold > summary::-webkit-details-marker {
    display: none;
}

.schedule-workload-fold > summary strong {
    color: #0f2f57;
    display: block;
    font-size: 0.98rem;
    font-weight: 900;
}

.schedule-workload-fold > summary small {
    color: #64748b;
    display: block;
    font-size: 0.78rem;
    line-height: 1.25;
}

.schedule-workload-fold > summary em {
    background: #ffffff;
    border: 1px solid rgba(15, 76, 129, 0.12);
    border-radius: 8px;
    color: #0f4c81;
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-style: normal;
    font-weight: 800;
    padding: 0.45rem 0.7rem;
}

.schedule-workload-limit-line {
    align-items: center;
    color: #0f4c81;
    display: flex;
    flex-wrap: wrap;
    font-size: 0.82rem;
    font-weight: 800;
    gap: 0.45rem;
}

.schedule-workload-settings-form,
.schedule-workload-new-form {
    margin-top: 0.85rem;
}

.schedule-workload-toolbar {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    display: flex;
    gap: 0.85rem;
    justify-content: space-between;
    padding: 0.6rem 0.7rem;
}

.schedule-workload-toolbar small {
    color: #64748b;
    display: block;
    margin-top: 0.18rem;
}

.schedule-workload-toolbar small[data-tone="success"] {
    color: #047857;
}

.schedule-workload-toolbar small[data-tone="warning"] {
    color: #b45309;
}

.schedule-workload-toolbar small[data-tone="danger"] {
    color: #b91c1c;
}

.schedule-workload-pending-pill {
    background: #0f4c81;
    border-radius: 8px;
    color: #ffffff;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    padding: 0.42rem 0.72rem;
}

.schedule-workload-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.schedule-workload-table-wrap {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    max-height: 72vh;
    overflow: auto;
}

.schedule-workload-table-wrap .schedule-rules-table {
    font-size: 0.84rem;
    margin-bottom: 0;
    min-width: 1080px;
}

.schedule-workload-table-wrap.is-teacher-filtered .schedule-rules-table {
    min-width: 920px;
}

.schedule-workload-table-wrap .schedule-rules-table th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.schedule-workload-table-wrap .schedule-rules-table td,
.schedule-workload-table-wrap .schedule-rules-table th {
    padding: 0.36rem 0.42rem;
    vertical-align: middle;
}

.schedule-workload-table-wrap .form-control-sm,
.schedule-workload-table-wrap .form-select-sm {
    min-height: 31px;
    padding-bottom: 0.25rem;
    padding-top: 0.25rem;
}

.schedule-workload-number {
    min-width: 76px;
}

.schedule-workload-table-wrap tr.is-dirty {
    background: rgba(254, 243, 199, 0.46);
    box-shadow: inset 4px 0 0 #f59e0b;
}

.schedule-workload-table-wrap tr.is-saving {
    background: rgba(219, 234, 254, 0.52);
    box-shadow: inset 4px 0 0 #2563eb;
}

.schedule-workload-table-wrap tr.is-saved {
    background: rgba(220, 252, 231, 0.48);
    box-shadow: inset 4px 0 0 #16a34a;
}

.schedule-workload-table-wrap tr.is-error {
    background: rgba(254, 226, 226, 0.62);
    box-shadow: inset 4px 0 0 #dc2626;
}

.schedule-workload-state {
    background: rgba(15, 23, 42, 0.05);
    border-radius: 8px;
    color: #475569;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 850;
    padding: 0.32rem 0.54rem;
    white-space: nowrap;
}

tr.is-dirty .schedule-workload-state {
    background: rgba(245, 158, 11, 0.16);
    color: #92400e;
}

tr.is-saving .schedule-workload-state {
    background: rgba(37, 99, 235, 0.14);
    color: #1d4ed8;
}

tr.is-saved .schedule-workload-state {
    background: rgba(22, 163, 74, 0.14);
    color: #047857;
}

tr.is-error .schedule-workload-state {
    background: rgba(220, 38, 38, 0.14);
    color: #b91c1c;
}

.schedule-workload-row-error {
    color: #b91c1c;
    display: block;
    font-size: 0.72rem;
    line-height: 1.2;
    margin-top: 0.25rem;
    max-width: 180px;
}

@media (max-width: 991.98px) {
    .schedule-workload-overview-main,
    .schedule-workload-card-head,
    .schedule-workload-toolbar,
    .schedule-workload-fold > summary {
        align-items: stretch;
        flex-direction: column;
    }

    .schedule-workload-export-actions,
    .schedule-workload-filter-actions,
    .schedule-workload-toolbar-actions {
        justify-content: flex-start;
    }

    .schedule-workload-kpi-row {
        grid-template-columns: repeat(2, minmax(130px, 1fr));
    }
}

@media (max-width: 575.98px) {
    .schedule-workload-kpi-row {
        grid-template-columns: 1fr;
    }
}

.schedule-profile-studio {
    border-top: 3px solid #0ea5e9;
}

.schedule-profile-hero,
.schedule-profile-hero-actions,
.schedule-profile-current,
.schedule-profile-tools,
.schedule-profile-copy-panel,
.schedule-profile-copy-days,
.schedule-profile-new-slot > summary {
    align-items: center;
    display: flex;
    gap: 0.75rem;
}

.schedule-profile-hero {
    justify-content: space-between;
    margin-bottom: 0.9rem;
}

.schedule-profile-hero-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.schedule-profile-picker {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.schedule-profile-card {
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    color: inherit;
    display: block;
    min-height: 112px;
    padding: 0.9rem;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.schedule-profile-card:hover,
.schedule-profile-card.is-active {
    border-color: rgba(14, 165, 233, 0.55);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
}

.schedule-profile-card.is-active {
    background: #eef6ff;
}

.schedule-profile-layout {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
}

.schedule-profile-main-form .form-label,
.schedule-profile-blocks .form-label {
    color: #475569;
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.25rem;
}

.schedule-profile-main-form textarea {
    min-height: 76px;
}

.schedule-profile-current {
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.55rem 0.75rem;
}

.schedule-profile-current strong {
    color: #0f4c81;
    font-size: 0.88rem;
}

.schedule-profile-current span {
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 700;
}

.schedule-profile-level-grid {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.schedule-profile-level-chip {
    align-items: center;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    display: flex;
    gap: 0.42rem;
    margin-bottom: 0;
    min-height: 32px;
    padding: 0.36rem 0.5rem;
}

.schedule-profile-level-chip .form-check-input {
    margin-left: 0;
    margin-top: 0;
}

.schedule-profile-level-chip .form-check-label {
    color: #334155;
    font-size: 0.78rem;
    font-weight: 800;
}

.schedule-profile-tools {
    align-items: stretch;
    flex-direction: column;
    margin-bottom: 0.85rem;
}

.schedule-profile-copy-panel,
.schedule-profile-new-slot {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    padding: 0.7rem;
}

.schedule-profile-copy-panel {
    flex-wrap: wrap;
    justify-content: space-between;
}

.schedule-profile-copy-panel strong,
.schedule-profile-new-slot strong {
    color: #0f2f57;
    display: block;
    font-size: 0.9rem;
    font-weight: 900;
}

.schedule-profile-copy-panel small,
.schedule-profile-new-slot small {
    color: #64748b;
    display: block;
    font-size: 0.76rem;
}

.schedule-profile-copy-days {
    flex-wrap: wrap;
    gap: 0.45rem 0.7rem;
}

.schedule-profile-copy-days .form-check,
.schedule-profile-replace-check {
    margin-bottom: 0;
    min-height: auto;
}

.schedule-profile-new-slot > summary {
    cursor: pointer;
    justify-content: space-between;
    list-style: none;
}

.schedule-profile-new-slot > summary::-webkit-details-marker {
    display: none;
}

.schedule-profile-slots-table {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 8px;
    max-height: 68vh;
    overflow: auto;
}

.schedule-profile-slots-table .schedule-rules-table {
    font-size: 0.82rem;
    margin-bottom: 0;
    min-width: 940px;
}

.schedule-profile-slots-table .schedule-rules-table th {
    background: #f8fafc;
    position: sticky;
    top: 0;
    z-index: 2;
}

.schedule-profile-slots-table .schedule-rules-table th,
.schedule-profile-slots-table .schedule-rules-table td {
    padding: 0.34rem 0.42rem;
    vertical-align: middle;
}

.schedule-profile-slots-table .form-control-sm,
.schedule-profile-slots-table .form-select-sm {
    min-height: 30px;
    padding-bottom: 0.2rem;
    padding-top: 0.2rem;
}

.schedule-profile-slots-table tr.is-muted {
    opacity: 0.58;
}

.schedule-profile-order-input {
    min-width: 72px;
}

.schedule-profile-label-input {
    min-width: 140px;
}

.schedule-profile-row-form {
    margin: 0;
    white-space: nowrap;
}

.schedule-profile-row-actions {
    align-items: center;
    display: flex;
    gap: 0.35rem;
}

.schedule-profile-assignment {
    border-left: 3px solid #22c55e;
}

.schedule-profile-assignment-form .form-select,
.schedule-profile-assignment-form .form-control {
    min-height: 34px;
}

@media (max-width: 1199.98px) {
    .schedule-profile-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .schedule-profile-hero,
    .schedule-profile-copy-panel,
    .schedule-profile-new-slot > summary {
        align-items: stretch;
        flex-direction: column;
    }

    .schedule-profile-hero-actions,
    .schedule-profile-copy-days {
        justify-content: flex-start;
    }

    .schedule-profile-level-grid {
        grid-template-columns: 1fr;
    }
}
/* Login security challenge shared by every SaaS/login surface. */
.login-security-challenge {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) 92px;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin: 10px 0;
    padding: 10px;
    border: 1px solid rgba(14, 165, 233, .24);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(240, 249, 255, .95), rgba(236, 253, 245, .92));
    color: #0f2f4a;
    box-shadow: 0 12px 28px rgba(8, 33, 63, .08);
}
.login-security-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #e0f2fe;
    color: #0369a1;
}
.login-security-body {
    min-width: 0;
    display: grid;
    gap: 2px;
    font-size: 12px;
    line-height: 1.35;
}
.login-security-body strong {
    font-size: 13px;
    color: #082f49;
}
.login-security-body span {
    color: #496277;
}
.login-security-answer {
    width: 100%;
    min-height: 38px;
    border: 1px solid rgba(14, 116, 144, .22);
    border-radius: 12px;
    text-align: center;
    font-weight: 900;
    color: #082f49;
    background: #fff;
}
.login-security-answer:focus {
    outline: 3px solid rgba(14, 165, 233, .18);
    border-color: #0ea5e9;
}
@media (max-width: 560px) {
    .login-security-challenge {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .login-security-answer {
        grid-column: 1 / -1;
    }
}
