:root {
    --portal-sidebar-bg: #12344f;
    --portal-sidebar-text: #ffffff;
    --portal-header-bg: #ffffff;
    --portal-header-text: #333333;
    --portal-content-bg: #f7f7fb;
    --portal-accent: #2ba9d6;
    --portal-border: #dcdfe4;
}
/* Header */
.rz-header {
    background-color: var(--portal-header-bg) !important;
    color: var(--portal-header-text) !important;
    border-bottom: 1px solid var(--portal-border);
}

/* Paleta de Radzen limitada al menú lateral del portal. */
.rz-sidebar.portal-sidebar {
    --rz-panel-menu-item-background-color: transparent;
    --rz-panel-menu-item-color: var(--portal-sidebar-text);
    --rz-panel-menu-icon-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-border: 1px solid rgba(255, 255, 255, 0.08);
    --rz-panel-menu-item-hover-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-hover-background-color: rgba(255, 255, 255, 0.08);
    --rz-panel-menu-item-active-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-active-background-color: rgba(43, 169, 214, 0.22);
    --rz-panel-menu-item-active-indicator: var(--portal-accent);
    --rz-panel-menu-item-2nd-level-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-2nd-level-background-color: transparent;
    --rz-panel-menu-item-2nd-level-hover-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-2nd-level-hover-background-color: rgba(255, 255, 255, 0.08);
    --rz-panel-menu-item-2nd-level-active-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-2nd-level-active-background-color: rgba(43, 169, 214, 0.22);
    --rz-panel-menu-item-2nd-level-offset: 3.25rem;
    --rz-panel-menu-item-3rd-level-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-3rd-level-background-color: transparent;
    --rz-panel-menu-item-3rd-level-hover-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-3rd-level-hover-background-color: rgba(255, 255, 255, 0.08);
    --rz-panel-menu-item-3rd-level-active-color: var(--portal-sidebar-text);
    --rz-panel-menu-item-3rd-level-active-background-color: rgba(43, 169, 214, 0.22);
    background-color: var(--portal-sidebar-bg);
    color: var(--portal-sidebar-text);
}

/* El fondo y los estados se pintan en el wrapper; el divisor, en el li. */
.portal-sidebar .rz-panel-menu .rz-navigation-item-link {
    background: transparent;
}

.portal-sidebar .rz-panel-menu .rz-navigation-menu {
    background-color: rgba(0, 0, 0, 0.10);
}

/* Toggle del Sidebar */
.rz-header .rz-sidebar-toggle {
    color: var(--portal-header-text) !important;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.page-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.5rem; }
/* Mantener columnas legibles y desplazar solamente el contenido de la tabla. */
.alumnos-grid { width:100%; min-width:0; max-width:100%; }
.alumnos-grid .rz-data-grid-data { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.alumnos-grid .rz-grid-table { min-width:1300px; }
.alumnos-grid .rz-cell-data { white-space:normal; overflow-wrap:anywhere; }
.alumnos-scroll-hint { color:#64748b; font-size:.85rem; margin:0 0 .75rem; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.login-shell { min-height:100dvh; display:grid; place-items:center; background:linear-gradient(135deg,#12344f,#2ba9d6); padding:1.5rem; }
.login-card { width:min(100%,440px); padding:2rem; border-radius:16px; }
.login-container { width:min(100%,440px); }
.login-card h1 { margin:1.5rem 0 .5rem; font-size:1.75rem; }
.dashboard-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; margin-bottom:2rem; }
@media(max-width:700px) { .form-grid { grid-template-columns:1fr; } .page-toolbar { align-items:flex-start; } }

/* Tablero de academia: lectura y acciones de cobranza */
.academy-dashboard { max-width:1600px; margin:auto; color:#24324b; }
.dashboard-heading,.panel-title { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.dashboard-heading h1 { font-size:clamp(1.8rem,3vw,2.65rem); letter-spacing:-.045em; margin:.4rem 0; font-weight:700; }
.eyebrow { font-size:.72rem; font-weight:750; letter-spacing:.14em; color:#6265a6; }
.quick-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin:1rem 0; }
.last-update { color:#6b7280; font-size:.8rem; margin:1rem 0; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin:1.4rem 0; }
.kpi { text-align:left; background:white; border:1px solid #e5e8f1; border-top:4px solid #7774d6; border-radius:14px; padding:1.4rem; box-shadow:0 4px 15px #20345806; color:#24324b; transition:transform .15s; }
.kpi:hover { transform:translateY(-3px); box-shadow:0 7px 20px #20345812; }
.kpi span,.kpi small { display:block; }
.kpi span { font-weight:650; font-size:.9rem; }
.kpi strong { display:block; font-size:clamp(1.7rem,2.5vw,2.5rem); margin:.45rem 0; letter-spacing:-.04em; }
.kpi small { color:#68738a; font-size:.75rem; }
.kpi.red { border-top-color:#dc5866; } .kpi.amber { border-top-color:#d6a337; } .kpi.teal { border-top-color:#229c88; }
.dashboard-columns { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); gap:1.2rem; margin-bottom:1.2rem; }
.dashboard-columns.equal { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dashboard-panel { border:1px solid #e5e8f1; border-radius:14px; padding:1.4rem; background:white; min-width:0; box-shadow:0 3px 14px #20345804; }
.dashboard-panel h2 { font-size:1.12rem; font-weight:700; margin:0 0 .5rem; }
.dashboard-panel a { color:#6154bd; font-weight:600; font-size:.85rem; text-decoration:none; }
.muted,.empty-state { color:#6c7588; font-size:.8rem; line-height:1.5; }
.empty-state { padding:1.5rem 0; }
.pill { background:#f1f2f9; color:#5a6480; border-radius:20px; padding:.3rem .7rem; font-size:.75rem; white-space:nowrap; }
.progress-number { font-size:2rem; font-weight:700; margin:1.2rem 0 .3rem; }
.progress-number span { font-size:.8rem; color:#788196; font-weight:400; }
progress { width:100%; height:10px; border-radius:10px; accent-color:#7770d5; }
.status-links { display:grid; gap:.5rem; margin:1.2rem 0; }
.status-links button { border:0; background:none; display:flex; align-items:center; gap:.5rem; font-size:.82rem; text-align:left; padding:.3rem 0; color:#46516a; }
.status-links b { margin-left:auto; }
.dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.dot.verde { background:#299678; }.dot.amarillo{background:#d5a024;}.dot.gris{background:#8a93a6;}
.money-list { display:grid; grid-template-columns:1fr auto; border-top:1px solid #edf0f5; padding-top:1rem; gap:.6rem; font-size:.82rem; }
.money-list dt { font-weight:400; }.money-list dd { font-weight:650; margin:0; }
.bar-row { width:100%; display:block; text-align:left; border:0; background:none; padding:.8rem 0; color:#43516a; }
.bar-row>span:first-child { display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; }
.bar-row small { font-size:.73rem; color:#778297; }
.bar-track { display:block; height:7px; background:#f0f1f8; border-radius:6px; margin:.5rem 0; overflow:hidden; }
.bar-track>span { display:block; height:100%; background:#9690dc; border-radius:6px; }.teal-bar .bar-track>span{background:#5aaf9f;}
.birthday-count { font-size:2rem; font-weight:700; color:#8c60a9; }
.birthday-row { display:flex; align-items:center; gap:.8rem; margin:1rem 0; font-size:.85rem; }
.date-tile { text-align:center; border-radius:10px; background:#f7effb; color:#8656a7; min-width:45px; padding:.4rem; font-weight:700; }
.date-tile small { display:block; font-size:.62rem; text-transform:uppercase; }
.data-links { display:flex; flex-wrap:wrap; gap:1rem; }.data-links a { display:flex; align-items:center; gap:.5rem; padding:.5rem .8rem; background:#f6f7fb; border-radius:8px; }
.traffic { border-radius:12px; padding:.25rem .55rem; display:inline-flex; gap:.3rem; font-size:.73rem; font-weight:650; white-space:normal; }
.traffic.verde { background:#e7f5ee; color:#226a4f; }.traffic.amarillo { background:#fff3d5; color:#805800; }.traffic.rojo { background:#fce9ec; color:#a03042; }.traffic.gris { background:#edf0f5; color:#546176; }
.deadline { color:#9a6b00; font-size:.72rem; margin-top:.3rem; }
.academy-grid td { white-space:normal !important; }.academy-grid .rz-cell-data { white-space:normal; overflow-wrap:anywhere; }
.boolean-value { display:inline-flex; align-items:center; gap:.4rem; }.boolean-value input { accent-color:#7463c8; }
.photo-picker { display:inline-block; padding:.6rem 1rem; background:#f0edf8; color:#6154aa; border-radius:7px; cursor:pointer; }.photo-picker:focus-within{outline:2px solid #6154aa;}
@media(max-width:1200px) { .kpi-grid {grid-template-columns:repeat(2,minmax(0,1fr));}.dashboard-columns{grid-template-columns:1fr;} }
@media(max-width:700px) { .dashboard-columns.equal{grid-template-columns:1fr;}.dashboard-panel{padding:1rem;}.kpi{padding:1rem;}.kpi strong{font-size:1.7rem;}.quick-actions .rz-button{flex-grow:1;} }
.collection-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid #e8edf4}.collection-person{display:grid;gap:.3rem;min-width:0}.collection-person strong{overflow-wrap:anywhere}.collection-person small{color:#64748b}.collection-actions{display:grid;gap:.6rem;flex-shrink:0;font-size:.85rem}.collection-pay{background:#6200ee;color:white!important;border-radius:6px;padding:.5rem .7rem;text-decoration:none}.academy-dashboard progress{accent-color:#177c70}@media(max-width:550px){.collection-row{align-items:flex-start;flex-direction:column}.collection-actions{display:flex;align-items:center}}
