:root {
    --blue: #0b57d0;
    --blue-dark: #073b92;
    --blue-soft: #eaf2ff;
    --navy: #0c1f3f;
    --text: #172033;
    --muted: #667085;
    --line: #e4e7ec;
    --surface: #ffffff;
    --canvas: #f6f8fb;
    --sidebar-width: 264px;
    --shadow: 0 10px 30px rgba(16, 24, 40, .07);
    --radius: 12px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-height: 100%; color: var(--text); background: var(--canvas); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }

.brand { display: flex; align-items: center; gap: 11px; min-width: 0; }
.brand__mark { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px; color: #fff; background: linear-gradient(145deg, #1674ed, #0945ad); font-size: 22px; font-weight: 800; font-style: italic; box-shadow: 0 5px 12px rgba(11, 87, 208, .23); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 18px; letter-spacing: -.35px; }
.brand small { margin-top: 1px; color: #8b96a9; font-size: 12px; font-weight: 500; }
.brand--light { color: #fff; }
.brand--light .brand__mark { color: var(--blue); background: #fff; box-shadow: 0 8px 22px rgba(0, 0, 0, .18); }
.brand--light small { color: rgba(255,255,255,.65); }

/* Acceso */
.login-page { background: #fff; }
.login-shell { display: grid; grid-template-columns: minmax(440px, 42%) 1fr; min-height: 100vh; }
.login-brand { position: relative; display: flex; flex-direction: column; overflow: hidden; padding: 42px 9%; color: #fff; background: linear-gradient(145deg, #073b92 0%, #0b57d0 56%, #2388f5 100%); }
.login-brand::before, .login-brand::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.login-brand::before { width: 520px; height: 520px; right: -260px; top: -145px; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.02); }
.login-brand::after { width: 380px; height: 380px; left: -245px; bottom: -190px; box-shadow: 0 0 0 70px rgba(255,255,255,.025); }
.login-brand > * { position: relative; z-index: 1; }
.login-brand__content { margin: auto 0; max-width: 510px; padding: 70px 0; }
.eyebrow { display: inline-block; margin-bottom: 14px; color: rgba(255,255,255,.75); font-size: 12px; font-weight: 800; letter-spacing: 1.35px; text-transform: uppercase; }
.eyebrow--blue { color: var(--blue); }
.login-brand h1 { margin: 0 0 24px; font-size: clamp(42px, 4vw, 64px); line-height: 1.05; letter-spacing: -2.7px; }
.login-brand__content p { max-width: 480px; margin: 0; color: rgba(255,255,255,.72); font-size: 17px; line-height: 1.7; }
.login-brand__footer { color: rgba(255,255,255,.52); font-size: 12px; }
.login-panel { display: grid; place-items: center; padding: 50px; }
.login-card { width: min(100%, 430px); }
.login-card__mobile-brand { display: none; align-items: center; gap: 10px; margin-bottom: 44px; font-size: 19px; }
.login-card h2 { margin: 0 0 9px; font-size: 32px; line-height: 1.2; letter-spacing: -1px; }
.muted { margin: 0; color: var(--muted); line-height: 1.6; }
.login-form { display: grid; gap: 20px; margin-top: 31px; }
.login-form > label { display: grid; gap: 8px; font-weight: 650; font-size: 13px; }
.input-wrap { display: flex; align-items: center; height: 48px; overflow: hidden; border: 1px solid #d7dce4; border-radius: 9px; background: #fff; transition: .2s; }
.input-wrap:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11,87,208,.11); }
.input-icon { width: 42px; flex: 0 0 42px; color: #8c96a7; text-align: center; font-size: 17px; }
.input-wrap input { width: 100%; height: 100%; padding: 0 8px 0 0; border: 0; outline: 0; color: var(--text); background: transparent; }
.input-action { align-self: stretch; padding: 0 14px; border: 0; background: transparent; color: var(--blue); font-size: 12px; font-weight: 700; cursor: pointer; }
.form-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.check { display: flex !important; grid-auto-flow: column; justify-content: start; align-items: center; gap: 8px !important; color: var(--muted); font-weight: 500 !important; cursor: pointer; }
.check input { accent-color: var(--blue); }
.link-button { padding: 0; border: 0; color: var(--blue); background: none; font-size: 12px; font-weight: 650; cursor: pointer; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 12px; min-height: 39px; padding: 0 16px; border: 1px solid transparent; border-radius: 8px; font-weight: 700; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; }
.button:hover { transform: translateY(-1px); }
.button--primary { color: #fff; background: var(--blue); box-shadow: 0 6px 15px rgba(11,87,208,.18); }
.button--primary:hover { background: #094ebd; box-shadow: 0 8px 18px rgba(11,87,208,.25); }
.button--secondary { border-color: #d9dee7; background: #fff; }
.button--danger { color: #fff; background: #b42318; box-shadow: 0 6px 15px rgba(180,35,24,.16); }
.button--danger-soft { border-color: #fecdca; color: #b42318; background: #fff; }
.button:disabled { opacity: .48; pointer-events: none; transform: none; box-shadow: none; }
.button--compact { min-height: 32px; padding: 0 11px; font-size: 12px; }
.button--large { width: 100%; min-height: 50px; font-size: 14px; }
.button--large span { margin-left: auto; font-size: 18px; }
.demo-note { margin-top: 30px; padding: 13px 15px; border: 1px solid #dce8fb; border-radius: 9px; color: #506078; background: #f5f9ff; font-size: 12px; line-height: 1.6; }
.demo-note code { padding: 2px 5px; border-radius: 4px; color: var(--blue-dark); background: #e5efff; }
.alert { margin-top: 22px; padding: 12px 14px; border-radius: 8px; line-height: 1.45; }
.alert--error { border: 1px solid #ffc9c9; color: #9d2525; background: #fff5f5; }
.alert--success { margin-bottom: 18px; border: 1px solid #abefc6; color: #067647; background: #ecfdf3; }
.toast { position: fixed; z-index: 100; right: 24px; bottom: 24px; display: grid; grid-template-columns: 28px minmax(0, 1fr) 28px; align-items: center; gap: 10px; width: min(390px, calc(100vw - 32px)); min-height: 58px; padding: 10px 11px; border: 1px solid; border-radius: 11px; background: #fff; box-shadow: 0 16px 38px rgba(16,24,40,.18); animation: toast-enter .24s ease-out both; }
.toast--success { border-color: #abefc6; color: #067647; }.toast--error { border-color: #fecdca; color: #b42318; }
.toast__icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-size: 13px; font-weight: 800; }.toast--success .toast__icon { background: #dcfae6; }.toast--error .toast__icon { background: #fee4e2; }
.toast__message { color: #344054; font-size: 13px; font-weight: 650; line-height: 1.4; }.toast__close { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 7px; color: #667085; background: transparent; font-size: 18px; cursor: pointer; }.toast__close:hover { background: #f2f4f7; }
.toast.is-leaving { pointer-events: none; animation: toast-leave .22s ease-in both; }
@keyframes toast-enter { from { opacity: 0; transform: translate3d(0, 14px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes toast-leave { to { opacity: 0; transform: translate3d(12px, 0, 0); } }

/* Aplicación */
.app-shell { display: flex; min-height: 100vh; }
.sidebar { position: fixed; z-index: 30; inset: 0 auto 0 0; display: flex; flex-direction: column; width: var(--sidebar-width); border-right: 1px solid var(--line); background: var(--surface); transition: width .22s, transform .22s; }
.sidebar__header { display: flex; align-items: center; justify-content: space-between; min-height: 68px; padding: 0 17px; border-bottom: 1px solid var(--line); }
.sidebar-collapse { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #fff; cursor: pointer; }
.sidebar__context { display: flex; align-items: center; gap: 9px; margin: 13px 12px 3px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fafbfc; }
.context-logo { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 7px; color: #fff; background: var(--navy); font-size: 12px; font-weight: 800; }
.sidebar__context > span:nth-child(2) { min-width: 0; }
.sidebar__context small, .sidebar__context strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar__context small { margin-bottom: 2px; color: var(--muted); font-size: 12px; }
.sidebar__context strong { font-size: 12px; }
.context-chevron { margin-left: auto; color: var(--muted); }
.sidebar__nav { flex: 1; overflow-x: hidden; overflow-y: auto; padding: 9px 10px 22px; scrollbar-width: thin; }
.nav-heading { display: block; margin: 19px 10px 7px; color: #9aa3b2; font-size: 12px; font-weight: 800; letter-spacing: 1.1px; text-transform: uppercase; }
.nav-link { display: flex; align-items: center; min-height: 40px; gap: 10px; padding: 0 10px; border-radius: 7px; color: #4c586b; font-size: 13.5px; font-weight: 590; cursor: pointer; list-style: none; transition: .15s; }
.nav-link::-webkit-details-marker { display: none; }
.nav-link:hover { color: var(--blue); background: #f3f7fd; }
.nav-link.is-active { color: var(--blue); background: var(--blue-soft); font-weight: 720; }
.nav-icon { width: 19px; flex: 0 0 19px; color: #637083; text-align: center; font-size: 16px; }
.nav-link.is-active .nav-icon { color: var(--blue); }
.nav-chevron { margin-left: auto; color: #9ca5b4; font-size: 18px; transition: transform .2s; }
.nav-group[open] > summary .nav-chevron { transform: rotate(90deg); }
.nav-submenu { position: relative; display: grid; gap: 1px; margin: 3px 0 5px 29px; padding-left: 14px; }
.nav-submenu::before { content: ""; position: absolute; inset: 2px auto 2px 0; width: 1px; background: #e1e5eb; }
.nav-submenu a { overflow: hidden; padding: 8px; border-radius: 6px; color: #6c7686; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.nav-submenu a:hover { color: var(--blue); background: #f5f8fc; }
.nav-submenu a.is-active { color: var(--blue); background: var(--blue-soft); font-weight: 720; }
.sidebar__footer { padding: 12px; border-top: 1px solid var(--line); }
.sidebar-help { display: flex; align-items: center; gap: 9px; padding: 9px; border-radius: 8px; color: inherit; background: #f5f8fd; text-decoration: none; }
.sidebar-help:hover { background: #eaf2ff; }
.sidebar-help > span:first-child { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--blue); background: var(--blue-soft); font-weight: 800; }
.sidebar-help strong, .sidebar-help small { display: block; }
.sidebar-help strong { font-size: 12px; }
.sidebar-help small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.app-main { display: flex; flex-direction: column; width: calc(100% - var(--sidebar-width)); min-height: 100vh; margin-left: var(--sidebar-width); transition: width .22s, margin .22s; }
.topbar { position: sticky; z-index: 20; top: 0; display: flex; justify-content: space-between; align-items: center; min-height: 68px; padding: 0 28px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.94); backdrop-filter: blur(12px); }
.topbar__left, .topbar__actions { display: flex; align-items: center; gap: 10px; }
.breadcrumbs { display: flex; align-items: center; gap: 8px; color: #98a2b3; font-size: 13px; }
.breadcrumbs strong { color: #344054; }
.topbar-search { display: flex; align-items: center; gap: 8px; width: 220px; height: 34px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: #8b95a5; background: #f9fafb; font-size: 12px; cursor: pointer; }
.topbar-search kbd { margin-left: auto; padding: 2px 5px; border: 1px solid #dfe3e8; border-radius: 4px; color: #98a2b3; background: #fff; font-size: 12px; }
.icon-button { position: relative; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 8px; color: inherit; background: #fff; text-decoration: none; cursor: pointer; }
.notification-button > span { position: absolute; top: 7px; right: 8px; width: 5px; height: 5px; border: 1px solid #fff; border-radius: 50%; background: #f04438; }
.user-menu { display: flex; align-items: center; gap: 9px; margin-left: 3px; padding-left: 13px; border-left: 1px solid var(--line); }
.avatar { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #304c7a, #102446); font-size: 12px; font-weight: 800; }
.user-menu__copy strong, .user-menu__copy small { display: block; }
.user-menu__copy strong { font-size: 12.5px; }
.user-menu__copy small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.logout-link { padding: 7px; color: #8791a2; }
.mobile-menu { display: none; }
.content { flex: 1; width: min(100%, 1450px); margin: 0 auto; padding: 34px 38px 42px; }
.content--wide { width: 100%; max-width: none; padding-right: 24px; padding-left: 24px; }
.content--list { padding-top: 20px; padding-bottom: 18px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 27px; }
.page-heading .eyebrow { margin-bottom: 8px; }
.page-heading h1 { margin: 0 0 8px; font-size: 27px; line-height: 1.2; letter-spacing: -.7px; }
.page-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.page-actions { display: flex; gap: 9px; }
.list-page-heading { align-items: center; margin-bottom: 14px; }
.list-page-heading h1 { margin-bottom: 4px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 16px; }
.stat-card { display: flex; align-items: center; gap: 14px; min-height: 112px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 2px 7px rgba(16,24,40,.025); }
.stat-card__icon { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 10px; font-size: 19px; }
.stat-card__icon--blue { color: #175cd3; background: #eaf2ff; }
.stat-card__icon--green { color: #067647; background: #e8f8f0; }
.stat-card__icon--orange { color: #b54708; background: #fff2e6; }
.stat-card__icon--violet { color: #6941c6; background: #f1ecff; }
.stat-card small, .stat-card strong, .stat-card span { display: block; }
.stat-card small { margin-bottom: 4px; color: var(--muted); font-size: 12px; font-weight: 650; }
.stat-card strong { margin-bottom: 5px; font-size: 22px; }
.stat-card .neutral { color: #98a2b3; font-size: 12px; }
.card { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 2px 8px rgba(16,24,40,.025); }
@keyframes table-return-highlight { 0%,35% { background: #eaf2ff; } 100% { background: #fff; } }
.data-table tr.table-row--return-highlight > td { animation: table-return-highlight 5.5s ease-out; }
@media (prefers-reduced-motion: reduce) { .data-table tr.table-row--return-highlight > td { animation-duration: .01ms; background: #eaf2ff; } }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, .8fr); gap: 16px; }
.stat-card--attention strong { color: #b54708; }
.dashboard-overview-grid { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(520px,1.5fr); gap: 16px; margin-bottom: 16px; }
.dashboard-donut-card,.dashboard-groups-card { min-height: 350px; overflow: hidden; }
.dashboard-donut-body { display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 24px; min-height: 274px; padding: 24px 28px; }
.dashboard-donut { display: grid; width: 164px; height: 164px; place-items: center; border-radius: 50%; background: conic-gradient(var(--blue) calc(var(--chart-value) * 1%),#dfe6ef 0); }
.dashboard-donut::before { content: ""; grid-area: 1/1; width: 112px; height: 112px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px #edf0f4; }
.dashboard-donut > span { z-index: 1; grid-area: 1/1; text-align: center; }.dashboard-donut strong,.dashboard-donut small { display: block; }.dashboard-donut strong { font-size: 28px; line-height: 1; }.dashboard-donut small { margin-top: 6px; color: var(--muted); font-size: 12px; }
.dashboard-legend { display: grid; gap: 19px; }.dashboard-legend > div { display: flex; align-items: center; gap: 11px; }.dashboard-legend i { width: 10px; height: 10px; flex: 0 0 10px; border-radius: 3px; }.dashboard-legend i.is-blue { background: var(--blue); }.dashboard-legend i.is-gray { background: #dfe6ef; }.dashboard-legend b,.dashboard-legend small { display: block; }.dashboard-legend b { margin-bottom: 4px; font-size: 13px; }.dashboard-legend small { color: var(--muted); font-size: 12px; }
.dashboard-groups-card .card-header .inline-link { margin-top: 2px; white-space: nowrap; }.dashboard-bars { display: grid; gap: 0; padding: 7px 20px 14px; }.dashboard-bars a { display: grid; grid-template-columns: minmax(190px,1.1fr) minmax(150px,1fr) 34px; align-items: center; gap: 15px; min-height: 48px; padding: 6px 3px; border-bottom: 1px solid #f0f2f5; }.dashboard-bars a:last-child { border-bottom: 0; }.dashboard-bars a:hover strong { color: var(--blue); }.dashboard-bars strong,.dashboard-bars small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.dashboard-bars strong { font-size: 12.5px; }.dashboard-bars small { margin-top: 3px; color: var(--muted); font-size: 11px; }.dashboard-bars > a > b { color: #344054; text-align: right; font-size: 13px; }.dashboard-bar { height: 9px; overflow: hidden; border-radius: 999px; background: #edf2f8; }.dashboard-bar i { display: block; min-width: 3px; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#8eb4f6,var(--blue)); }.dashboard-empty { padding: 60px 20px; color: var(--muted); text-align: center; }
.dashboard-readiness-card { margin-bottom: 16px; overflow: hidden; }.dashboard-readiness-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }.dashboard-readiness-grid a { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 11px; min-height: 105px; padding: 19px 21px; border-right: 1px solid #edf0f3; }.dashboard-readiness-grid a:last-child { border-right: 0; }.dashboard-readiness-grid a:hover { background: #fafcff; }.dashboard-readiness-grid span strong,.dashboard-readiness-grid span small { display: block; }.dashboard-readiness-grid span strong { margin-bottom: 5px; font-size: 13px; }.dashboard-readiness-grid span small { color: var(--muted); font-size: 12px; }.dashboard-readiness-grid > a > b { color: var(--blue); font-size: 15px; }.dashboard-readiness-grid > a > i { grid-column: 1/-1; height: 7px; overflow: hidden; border-radius: 999px; background: #edf2f8; }.dashboard-readiness-grid em { display: block; height: 100%; border-radius: inherit; background: var(--blue); }
.module-card, .activity-card { min-height: 390px; }
.card-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 20px 22px 17px; border-bottom: 1px solid #edf0f3; }
.card-header h2 { margin: 0 0 5px; font-size: 15px; }
.card-header p { margin: 0; color: var(--muted); font-size: 12px; }
.more-button { border: 0; color: #98a2b3; background: none; cursor: pointer; }
.module-grid { display: grid; grid-template-columns: 1fr 1fr; padding: 9px 14px 16px; }
.module-grid a { display: flex; align-items: center; gap: 12px; min-height: 92px; padding: 15px 10px; border-bottom: 1px solid #edf0f3; }
.module-grid a:nth-last-child(-n+2) { border-bottom: 0; }
.module-grid a:nth-child(odd) { padding-right: 20px; border-right: 1px solid #edf0f3; }
.module-grid a:nth-child(even) { padding-left: 20px; }
.module-grid a:hover strong { color: var(--blue); }
.module-grid a:hover b { transform: translateX(2px); }
.module-icon { display: grid; place-items: center; width: 39px; height: 39px; flex: 0 0 39px; border-radius: 9px; font-size: 17px; }
.module-icon.blue { color: #175cd3; background: #eaf2ff; }.module-icon.cyan { color: #087e8b; background: #e6f7f8; }.module-icon.violet { color: #6941c6; background: #f1ecff; }.module-icon.green { color: #067647; background: #e8f8f0; }.module-icon.orange { color: #b54708; background: #fff2e6; }.module-icon.rose { color: #c01048; background: #fff0f4; }
.module-grid a > span:nth-child(2) { min-width: 0; }
.module-grid strong, .module-grid small { display: block; }
.module-grid strong { margin-bottom: 5px; font-size: 12px; transition: .15s; }
.module-grid small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.module-grid b { margin-left: auto; color: #a0a8b5; font-size: 18px; transition: .15s; }
.activity-empty { display: grid; justify-items: center; align-content: center; min-height: 305px; padding: 30px; color: var(--muted); text-align: center; }
.activity-empty > span { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 14px; border-radius: 50%; color: var(--blue); background: var(--blue-soft); font-size: 21px; }
.activity-empty strong { margin-bottom: 7px; color: #344054; font-size: 12px; }
.activity-empty p { max-width: 200px; margin: 0; font-size: 12px; line-height: 1.6; }
.progress-card { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 16px; padding: 18px 22px; background: linear-gradient(90deg, #fff, #f7faff); }
.progress-card > div:first-child { display: flex; align-items: center; gap: 14px; }
.progress-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 10px; color: var(--blue); background: var(--blue-soft); }
.progress-card h2 { margin: 0 0 5px; font-size: 13px; }.progress-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.progress-copy { text-align: right; white-space: nowrap; }.progress-copy span, .progress-copy strong { display: block; }.progress-copy span { margin-bottom: 3px; color: var(--muted); font-size: 12px; }.progress-copy strong { color: var(--blue); font-size: 12px; }
.empty-state { display: grid; justify-items: center; max-width: 720px; margin: 70px auto; padding: 60px 30px; text-align: center; }
.empty-state__icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 18px; border-radius: 14px; color: var(--blue); background: var(--blue-soft); font-size: 25px; }
.empty-state h2 { margin: 0 0 9px; font-size: 20px; }.empty-state p { max-width: 490px; margin: 0 0 22px; color: var(--muted); line-height: 1.7; }
.help-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }.help-topic-card { display: flex; align-items: center; gap: 13px; min-height: 105px; padding: 18px; color: var(--text); text-decoration: none; }.help-topic-card:hover { border-color: #b9d2ff; box-shadow: 0 8px 24px rgba(16,24,40,.06); }.help-topic-card__icon { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 10px; color: var(--blue); background: var(--blue-soft); font-weight: 850; }.help-topic-card > span:nth-child(2) { min-width: 0; }.help-topic-card strong,.help-topic-card small { display: block; }.help-topic-card small { margin-top: 5px; color: var(--muted); line-height: 1.45; }.help-topic-card b { margin-left: auto; color: #98a2b3; font-size: 20px; }.help-planned { margin-top: 18px; padding: 0 20px 20px; }.help-planned > p { color: var(--muted); }.help-planned__items { display: flex; flex-wrap: wrap; gap: 8px; }.help-planned__items span { padding: 7px 10px; border-radius: 7px; color: #667085; background: #f2f4f7; font-size: 12px; }.help-layout { display: grid; grid-template-columns: 235px minmax(0,1fr); align-items: start; gap: 18px; }.help-nav { position: sticky; top: 84px; display: grid; gap: 4px; padding: 12px; }.help-nav > strong { padding: 8px 10px 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .45px; }.help-nav a { padding: 9px 10px; border-radius: 7px; color: #475467; text-decoration: none; }.help-nav a:hover,.help-nav a.is-active { color: var(--blue); background: var(--blue-soft); font-weight: 750; }.help-article { display: grid; gap: 16px; }.help-section { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 15px; padding: 22px; }.help-section h2 { margin: 2px 0 15px; font-size: 18px; }.help-section ol,.help-section ul { display: grid; gap: 11px; margin: 0; padding-left: 20px; color: #475467; line-height: 1.6; }.help-footer-note { display: flex; align-items: center; gap: 10px; padding: 15px 17px; border: 1px solid #dbe7fb; border-radius: 10px; color: #475467; background: #f7faff; }.help-footer-note span { flex: 1; }.help-footer-note a { color: var(--blue); font-weight: 750; text-decoration: none; }
.help-section__intro { margin: -5px 0 17px; color: #667085; line-height: 1.65; }.help-detailed-list { list-style: none; padding-left: 0!important; }.help-detailed-list li { display: grid; grid-template-columns: minmax(125px,180px) minmax(0,1fr); gap: 12px; padding: 11px 0; border-bottom: 1px solid #edf0f3; }.help-detailed-list li:last-child { border-bottom: 0; }.help-detailed-list strong { color: var(--text); }.help-warning { display: flex; align-items: flex-start; gap: 10px; margin-top: 17px; padding: 13px 14px; border: 1px solid #f6d79b; border-radius: 8px; color: #7a4d06; background: #fffaf0; line-height: 1.55; }.help-warning strong { flex: 0 0 auto; }
.help-page-index { padding: 18px 20px; }.help-page-index > strong { display: block; margin-bottom: 12px; font-size: 14px; }.help-page-index > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 14px; }.help-page-index a { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 7px; color: #475467; text-decoration: none; }.help-page-index a:hover { color: var(--blue); background: var(--blue-soft); }.help-page-index a span { display: grid; place-items: center; width: 23px; height: 23px; flex: 0 0 23px; border-radius: 6px; color: var(--blue); background: var(--blue-soft); font-size: 11px; font-weight: 800; }.help-section--detailed { scroll-margin-top: 82px; }

/* Alumnos */
.student-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.student-stats article { position: relative; min-height: 86px; padding: 17px 19px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.student-stats span, .student-stats strong { display: block; }.student-stats span { margin-bottom: 7px; color: var(--muted); font-size: 12px; font-weight: 650; }.student-stats strong { font-size: 24px; }
.student-stats .status-dot { position: absolute; top: 18px; right: 18px; width: 7px; height: 7px; border-radius: 50%; }.status-dot--green { background: #12b76a; }.status-dot--gray { background: #98a2b3; }
.data-card { overflow: hidden; }
.filters { position: relative; z-index: 4; display: flex; align-items: center; gap: 9px; padding: 15px 18px; border-bottom: 1px solid var(--line); background: #fff; }
.content--list .filters { display: grid; grid-template-columns: minmax(250px, 1.25fr) 140px minmax(190px, 1fr) minmax(190px, 1fr) auto auto; padding: 12px 14px; }
.content--list .filter-search { width: 100%; }
.filters select, .filter-search { height: 38px; border: 1px solid #d9dee7; border-radius: 8px; background: #fff; }
.filters select { min-width: 135px; padding: 0 30px 0 11px; color: #475467; font-size: 12.5px; }
.filter-search { display: flex; align-items: center; width: min(330px, 35%); }
.filter-search span { width: 37px; color: #98a2b3; text-align: center; }.filter-search input { width: 100%; height: 100%; padding: 0 10px 0 0; border: 0; outline: 0; background: transparent; font-size: 12.5px; }
.filters__clear { color: var(--blue); font-size: 12px; font-weight: 650; }
.filters.filters--bulk { display: flex; justify-content: space-between; }
.filters--bulk .filter-search { width: min(430px, 42%); }
.bulk-actions { display: flex; align-items: center; gap: 9px; margin-left: auto; }
.bulk-actions [data-selection-count] { min-width: 160px; color: #667085; font-size: 12px; text-align: right; }
.bulk-actions .button { min-height: 38px; }
.select-column { width: 46px; padding-right: 6px !important; padding-left: 15px !important; text-align: center; }
.select-column input { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); cursor: pointer; }
.table-secondary { display: block; margin-top: 4px; color: #98a2b3; font-size: 12px; }
.family-filters { grid-template-columns: minmax(320px,1.4fr) 150px minmax(220px,.8fr) auto auto !important; }
.family-child-link { display: block; color: #344054; font-weight: 650; }.family-child-link + .family-child-link { margin-top: 7px; }.family-child-link small { display: block; margin-top: 2px; color: #98a2b3; font-size: 11px; font-weight: 400; }
.family-children-card { margin-top: 18px; }.family-children-card .table-scroll { max-height: 360px; }.catalog-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.permission-groups { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }.permission-group { padding: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfe; }.permission-group h3 { margin: 0 0 10px; font-size: 13px; }.permission-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.permission-option { display: flex; align-items: flex-start; gap: 9px; min-height: 48px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; }.permission-option + .permission-option { margin-top: 7px; }.permission-grid .permission-option + .permission-option { margin-top: 0; }.permission-option input { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 2px; accent-color: var(--blue); }.permission-option strong,.permission-option small { display: block; }.permission-option strong { color: var(--text); font-size: 12.5px; }.permission-option small { margin-top: 3px; color: #98a2b3; font-size: 11.5px; }
.table-scroll { height: calc(100vh - 430px); min-height: 360px; max-height: 650px; overflow: auto; scrollbar-gutter: stable; }
.educator-history .table-scroll { height: auto; min-height: 0; max-height: 320px; }
.content--list .table-scroll { height: calc(100vh - 330px); min-height: 420px; max-height: none; }
.data-table { width: 100%; border-collapse: separate; border-spacing: 0; text-align: left; white-space: nowrap; }
.data-table th { position: sticky; z-index: 3; top: 0; height: 47px; padding: 0 15px; border-bottom: 1px solid var(--line); color: #667085; background: #f9fafb; font-size: 12px; font-weight: 750; letter-spacing: .35px; text-transform: uppercase; box-shadow: 0 1px 0 var(--line); }
.data-table td { height: 69px; padding: 8px 15px; border-bottom: 1px solid #edf0f3; color: #475467; background: #fff; font-size: 12.5px; }
.data-table tbody tr:hover { background: #fbfcfe; }.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover td { background: #fbfcfe; }
.table-sort { display: inline-flex; align-items: center; gap: 7px; min-height: 46px; padding: 0; border: 0; color: inherit; background: transparent; font: inherit; font-weight: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }.table-sort span { color: #a6aebb; font-size: 13px; }.data-table th[aria-sort="ascending"] .table-sort, .data-table th[aria-sort="descending"] .table-sort { color: var(--blue); }
.person-cell { display: flex; align-items: center; gap: 10px; color: var(--text); }.person-avatar { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 9px; color: #175cd3; background: #eaf2ff; font-size: 12px; font-weight: 800; }
.person-avatar--photo { overflow: hidden; border: 1px solid var(--line); background: #fff; }.person-avatar--photo img { width: 100%; height: 100%; object-fit: cover; }
.person-cell strong, .person-cell small { display: block; }.person-cell strong { margin-bottom: 4px; font-size: 12.5px; }.person-cell small { color: #98a2b3; font-size: 12px; }
.badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 20px; font-size: 12px; font-weight: 750; }.badge--success { color: #067647; background: #ecfdf3; }.badge--neutral { color: #475467; background: #f2f4f7; }.badge--blue { color: #175cd3; background: #eaf2ff; }.badge--danger { color: #b42318; background: #fef3f2; }.badge--warning { color: #b54708; background: #fff2e6; }
.table-edit-link { display: inline-flex; min-height: 30px; align-items: center; padding: 0 10px; border: 1px solid #d9dee7; border-radius: 7px; color: var(--blue); font-size: 12px; font-weight: 700; }.table-edit-link:hover { border-color: #b9cdf3; background: var(--blue-soft); }
.activity-list { padding: 8px 18px; }.activity-list__item { display: flex; align-items: center; gap: 10px; min-height: 54px; border-bottom: 1px solid #edf0f3; }.activity-list__item:last-child { border-bottom: 0; }.activity-list__item strong,.activity-list__item small { display: block; }.activity-list__item strong { color: var(--text); font-size: 12.5px; }.activity-list__item small { margin-top: 3px; color: #98a2b3; font-size: 11.5px; }.activity-list__status { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; font-size: 12px; font-weight: 800; }.activity-list__status.is-success { color: #067647; background: #ecfdf3; }.activity-list__status.is-error { color: #b42318; background: #fef3f2; }
.row-action { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; color: #667085; font-size: 18px; }.row-action:hover { color: var(--blue); background: var(--blue-soft); }
.table-empty { padding: 45px; color: var(--muted); text-align: center; }.table-footer { display: flex; justify-content: space-between; padding: 13px 18px; border-top: 1px solid var(--line); color: #7f8999; background: #fafbfc; font-size: 12px; }
.compact-heading { align-items: flex-start; }.back-link { display: inline-block; margin-bottom: 13px; color: var(--blue); font-size: 12px; font-weight: 650; }
.student-form { max-width: 1150px; margin: 0 auto; }.form-steps { position: sticky; z-index: 10; top: 79px; display: flex; justify-content: center; gap: 5px; overflow-x: auto; margin-bottom: 16px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.95); backdrop-filter: blur(10px); }
.form-steps a { display: flex; align-items: center; gap: 6px; min-height: 31px; padding: 0 10px; border-radius: 7px; color: #667085; font-size: 12px; font-weight: 650; white-space: nowrap; }.form-steps a:hover { color: var(--blue); background: var(--blue-soft); }.form-steps span { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: var(--blue); background: var(--blue-soft); font-size: 12px; }
.form-section { margin-bottom: 15px; padding: 24px; scroll-margin-top: 130px; }.form-section__heading { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding-bottom: 17px; border-bottom: 1px solid #edf0f3; }.form-section__heading--action { align-items: center; }.form-section__heading--action .button { margin-left: auto; }
.section-number { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px; color: var(--blue); background: var(--blue-soft); font-size: 12px; font-weight: 800; }.form-section__heading h2 { margin: 0 0 4px; font-size: 14px; }.form-section__heading p { margin: 0; color: var(--muted); font-size: 12px; }
.form-grid { display: grid; gap: 17px 15px; }.form-grid--4 { grid-template-columns: repeat(4, 1fr); }.form-grid--3 { grid-template-columns: repeat(3, 1fr); }.form-grid--2 { grid-template-columns: repeat(2, 1fr); }.field--span-2 { grid-column: span 2; }
.field { display: grid; align-content: start; gap: 7px; color: #344054; font-size: 12px; font-weight: 650; }.field > span small { margin-left: 4px; color: #98a2b3; font-size: 12px; font-weight: 500; }.field input, .field select, .field textarea { width: 100%; border: 1px solid #d9dee7; border-radius: 8px; outline: none; color: var(--text); background: #fff; font-size: 13px; transition: .15s; }.field input, .field select { height: 42px; padding: 0 11px; }.field textarea { resize: vertical; padding: 10px 11px; line-height: 1.55; }.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11,87,208,.1); }
.switch-grid { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #edf0f3; }.switch-field { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 11px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }.switch-field input { position: absolute; opacity: 0; }.switch-field > span { position: relative; width: 27px; height: 16px; border-radius: 20px; background: #d0d5dd; transition: .2s; }.switch-field > span::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; transition: .2s; }.switch-field input:checked + span { background: var(--blue); }.switch-field input:checked + span::after { left: 13px; }.switch-field b { font-size: 12px; font-weight: 650; }
.consent-box { display: grid; gap: 11px; margin-top: 20px; padding: 16px; border: 1px solid #dce8fb; border-radius: 9px; background: #f8fbff; }.consent-box > strong { font-size: 12px; }.check-line { display: flex; align-items: flex-start; gap: 8px; color: #475467; font-size: 12px; line-height: 1.45; }.check-line input { accent-color: var(--blue); }
.tutor-card { margin: 0 0 16px; padding: 19px; border: 1px solid var(--line); border-radius: 10px; }.tutor-card:last-child { margin-bottom: 0; }.tutor-card legend { padding: 0 7px; color: #344054; font-size: 12px; font-weight: 750; }.tutor-card legend span { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 6px; border-radius: 50%; color: var(--blue); background: var(--blue-soft); font-size: 12px; }
.billing-validity { display: grid; grid-template-columns: minmax(210px,280px) minmax(250px,1fr); align-items: end; gap: 16px; margin-bottom: 17px; }.billing-total { display: flex; min-height: 66px; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid #fecdca; border-radius: 9px; color: #912018; background: #fff7f6; }.billing-total > span { font-size: 12px; font-weight: 700; }.billing-total strong { margin-left: auto; font-size: 18px; }.billing-total small { color: inherit; font-size: 11.5px; }.billing-total.is-valid { border-color: #abefc6; color: #067647; background: #ecfdf3; }.billing-recipients { display: grid; gap: 13px; }.billing-recipient-card { margin: 0; padding: 17px; border: 1px solid var(--line); border-radius: 10px; background: #fafbfc; transition: .15s; }.billing-recipient-card.is-selected { border-color: #b9cdf3; background: #f8fbff; }.billing-recipient-card legend { padding: 0 7px; }.billing-recipient-card legend .check-line { color: #344054; font-weight: 750; }.billing-recipient-card:not(.is-selected) .form-grid { opacity: .5; }.input-suffix { position: relative; }.input-suffix input { padding-right: 34px; }.input-suffix > span { position: absolute; top: 50%; right: 12px; color: #667085; transform: translateY(-50%); }.billing-current-note { margin: 14px 0 0; color: var(--muted); font-size: 12px; }.billing-history { margin-top: 17px; border-top: 1px solid #edf0f3; }.billing-history summary { padding: 15px 0 0; color: var(--blue); font-size: 12px; font-weight: 700; cursor: pointer; }.billing-history__list { display: grid; gap: 8px; margin-top: 12px; }.billing-history__list article { display: grid; grid-template-columns: 190px 1fr; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; color: #475467; background: #fafbfc; font-size: 12px; }.billing-history__list article span { line-height: 1.5; }
.authorized-list { display: grid; gap: 10px; }.authorized-row { display: grid; grid-template-columns: 1.5fr 1fr 1fr 32px; align-items: end; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: #fafbfc; }.remove-row { display: grid; place-items: center; width: 32px; height: 40px; border: 0; border-radius: 7px; color: #b42318; background: #fef3f2; font-size: 17px; cursor: pointer; }
.form-actions { position: sticky; z-index: 9; bottom: 0; display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; padding: 14px 0; border-top: 1px solid var(--line); background: rgba(246,248,251,.94); backdrop-filter: blur(8px); }
.student-profile-heading { margin-bottom: 22px; }.student-profile-heading__main { display: flex; align-items: center; gap: 14px; }.profile-avatar { display: grid; place-items: center; width: 55px; height: 55px; flex: 0 0 55px; border-radius: 14px; color: #175cd3; background: #eaf2ff; font-size: 16px; font-weight: 800; }.profile-title { display: flex; align-items: center; gap: 9px; }.profile-title h1 { margin: 0; font-size: 25px; letter-spacing: -.5px; }.student-profile-heading__main p { margin: 5px 0 0; color: var(--muted); font-size: 12.5px; }.profile-actions { display: flex; gap: 8px; margin-left: auto; }
.profile-avatar--photo { overflow: hidden; background: #fff; border: 1px solid var(--line); }.profile-avatar--photo img { width: 100%; height: 100%; object-fit: cover; }
.table-entity { display: flex; align-items: center; gap: 10px; }.table-entity > img { width: 38px; height: 30px; flex: 0 0 38px; object-fit: contain; border: 1px solid var(--line); border-radius: 7px; background: #fff; }.table-entity .table-secondary { display: block; }
.image-settings-card { margin-bottom: 15px; padding: 22px 24px; }.image-upload-field { display: flex; align-items: center; gap: 20px; margin-bottom: 24px; }.image-settings-card .image-upload-field { margin-bottom: 0; }.image-upload-preview { display: grid; place-items: center; width: 150px; height: 92px; flex: 0 0 150px; overflow: hidden; border: 1px dashed #cfd8e6; border-radius: 12px; color: var(--muted); background: #f8fafc; font-size: 12px; font-weight: 800; }.image-upload-preview--person { width: 92px; height: 92px; flex-basis: 92px; border-radius: 18px; }.image-upload-preview img { width: 100%; height: 100%; object-fit: contain; background: #fff; }.image-upload-preview--person img { object-fit: cover; }.image-upload-copy { min-width: 0; }.image-upload-copy > strong { display: block; margin-bottom: 4px; font-size: 13px; }.image-upload-copy > p { margin: 0 0 12px; color: var(--muted); font-size: 12px; }.image-upload-copy .button { position: relative; overflow: hidden; vertical-align: middle; cursor: pointer; }.image-upload-copy .button input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }.image-upload-copy .button + .button { margin-left: 8px; }.check-line--compact { display: inline-flex; margin: 0 0 0 12px; vertical-align: middle; }
.profile-tabs { display: flex; gap: 22px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }.profile-tabs a { position: relative; padding: 0 2px 12px; color: var(--muted); font-size: 12px; font-weight: 650; }.profile-tabs a.is-active { color: var(--blue); }.profile-tabs a.is-active::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--blue); }
.profile-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .8fr); gap: 15px; }.profile-main, .profile-side { display: grid; align-content: start; gap: 15px; }.detail-card { overflow: hidden; }.detail-card__header { display: flex; justify-content: space-between; align-items: center; min-height: 54px; padding: 0 19px; border-bottom: 1px solid #edf0f3; }.detail-card__header h2 { margin: 0; font-size: 14px; }.detail-card__header span { color: #98a2b3; font-size: 12px; }.detail-list { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; padding: 8px 19px 19px; }.detail-list div { padding: 14px 0; border-bottom: 1px solid #edf0f3; }.detail-list div:nth-last-child(-n+2) { border-bottom: 0; }.detail-list dt, .side-list dt { margin-bottom: 5px; color: #8490a2; font-size: 12px; font-weight: 700; text-transform: uppercase; }.detail-list dd, .side-list dd { margin: 0; color: #344054; font-size: 12.5px; font-weight: 600; }
.contact-list article { display: flex; align-items: center; gap: 11px; min-height: 68px; padding: 10px 19px; border-bottom: 1px solid #edf0f3; }.contact-list article:last-child { border-bottom: 0; }.contact-avatar { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 9px; color: #6941c6; background: #f1ecff; font-size: 12px; font-weight: 800; }.contact-avatar--soft { color: #067647; background: #ecfdf3; }.contact-list strong, .contact-list small { display: block; }.contact-list strong { margin-bottom: 4px; font-size: 12.5px; }.contact-list small { color: var(--muted); font-size: 12px; }.contact-list .badge { margin-left: auto; }.padded-copy { padding: 10px 19px; font-size: 12px; }
.side-list { display: grid; gap: 0; margin: 0; padding: 8px 19px 17px; }.side-list div { padding: 12px 0; border-bottom: 1px solid #edf0f3; }.side-list div:last-child { border-bottom: 0; }.service-list { display: flex; flex-wrap: wrap; gap: 7px; padding: 16px 19px; }.service-list span { padding: 7px 9px; border-radius: 6px; color: #98a2b3; background: #f2f4f7; font-size: 12px; font-weight: 650; }.service-list span.is-on { color: #067647; background: #ecfdf3; }.note-list { padding: 8px 19px 17px; }.note-list div { padding: 11px 0; border-bottom: 1px solid #edf0f3; }.note-list div:last-child { border-bottom: 0; }.note-list strong { font-size: 12px; }.note-list p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.billing-layout { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(0, 1.5fr); gap: 15px; }
.billing-form { padding: 20px; }.billing-form h2 { margin: 0 0 5px; font-size: 16px; }.billing-form > p { margin: 0 0 20px; color: var(--muted); line-height: 1.5; }
.billing-form .form-grid { margin-bottom: 17px; }.billing-form__actions { display: flex; justify-content: flex-end; padding-top: 17px; border-top: 1px solid var(--line); }
.tariff-notice { margin-bottom: 16px; padding: 12px 14px; border: 1px solid #dce8fb; border-radius: 8px; color: #344054; background: #f8fbff; line-height: 1.5; }.tariff-notice strong { color: var(--blue); }
.fiscal-heading-status { margin-left: auto; }.fiscal-status { display: flex; align-items: center; gap: 12px; margin-top: 17px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 9px; }.fiscal-status strong,.fiscal-status span { display: block; }.fiscal-status span { color: var(--muted); }.fiscal-status--warning { border-color: #fedf89; background: #fffaeb; }.fiscal-status--warning strong { color: #b54708; }.fiscal-status--success { border-color: #abefc6; background: #ecfdf3; }.fiscal-status--success strong { color: #067647; }.fiscal-company-picker { max-width: 440px; margin-bottom: 18px; }.fiscal-context { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 18px; padding: 13px 15px; border-radius: 9px; background: #f8fafc; }.fiscal-context span,.field-help { color: var(--muted); font-size: 11.5px; }.fiscal-guided-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px 15px; }.fiscal-guided-grid [data-fiscal-field][hidden] { display: none!important; }.field-help--warning { color: #854a0e; }.link-button { padding: 0; border: 0; color: var(--blue); background: transparent; font: inherit; font-weight: 750; cursor: pointer; }.link-button:hover { text-decoration: underline; }.fiscal-live-summary { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 14px 16px; border: 1px solid #b9cdf3; border-radius: 9px; color: #344054; background: #f8fbff; }.fiscal-live-summary strong { color: var(--blue); }.fiscal-live-summary span { line-height: 1.45; }.fiscal-advanced { margin-top: 15px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 9px; background: #fafbfc; }.fiscal-advanced summary { color: #475467; font-weight: 750; cursor: pointer; }.fiscal-advanced .form-grid { margin-top: 15px; }.form-actions--inside { margin-top: 18px; }.fiscal-history { margin-top: 22px; border-top: 1px solid var(--line); }.fiscal-history h3 { margin: 18px 0 8px; font-size: 13px; }.fiscal-history article { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid #edf0f3; }.fiscal-history article strong,.fiscal-history article span { display: block; }.fiscal-history article div > span { margin-top: 3px; color: var(--muted); font-size: 11.5px; }.price-mode-select { min-width: 160px; height: 35px; border: 1px solid #d9dee7; border-radius: 7px; color: var(--text); background: #fff; font-size: 12px; }
.fiscal-price-preview { display: grid; grid-template-columns: repeat(3,minmax(130px,1fr)) minmax(220px,1.2fr); gap: 10px; margin-top: 18px; padding: 13px; border: 1px solid #d9e4f5; border-radius: 10px; background: #f8fbff; }.fiscal-price-preview article { padding: 9px 12px; border-right: 1px solid #d9e4f5; }.fiscal-price-preview article span,.fiscal-price-preview article strong { display: block; }.fiscal-price-preview article span { color: var(--muted); font-size: 11px; }.fiscal-price-preview article strong { margin-top: 5px; font-size: 16px; }.fiscal-price-preview .field { margin: 0; }.fiscal-price-preview [hidden] { display: none!important; }.fiscal-profile-dates { align-items: end; margin-top: 18px; }.fiscal-history-card { margin-top: 22px; }.fiscal-history-card .fiscal-history { margin-top: 0; border-top: 0; }
.billing-table .table-scroll { height: calc(100vh - 325px); min-height: 390px; max-height: none; }
.billing-table .data-table td { height: 59px; }
.inline-form { display: flex; align-items: center; gap: 7px; }.inline-form input[type="date"] { width: 135px; height: 32px; padding: 0 7px; border: 1px solid #d9dee7; border-radius: 7px; font-size: 12px; }
.plan-close-form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 9px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.plan-proposal-generator { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }.plan-proposal-generator h2 { margin: 0 0 5px; }.plan-proposal-generator > p { margin: 0 0 15px; color: var(--muted); line-height: 1.5; }.plan-proposal-generator form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 9px; }.plan-proposal-generator .inline-link { display: inline-block; margin-top: 12px; color: var(--blue); font-size: 12px; font-weight: 700; }
.proposal-filters { grid-template-columns: minmax(300px,1fr) 170px 160px auto auto; }.filter-month { height: 39px; padding: 0 10px; border: 1px solid #d9dee7; border-radius: 8px; color: var(--text); background: #fff; }.proposal-heading .eyebrow { display: block; margin: 0 0 7px; }.proposal-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }.proposal-summary { min-width: 0; padding: 16px 18px; }.proposal-summary span,.proposal-summary strong,.proposal-summary small { display: block; }.proposal-summary span { margin-bottom: 8px; color: #8490a2; font-size: 11px; font-weight: 750; text-transform: uppercase; }.proposal-summary strong { overflow: hidden; margin-bottom: 5px; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }.proposal-summary small { color: var(--muted); font-size: 11.5px; }.proposal-summary--total { border-color: #b9cdf3; background: #f8fbff; }.proposal-summary--total strong { color: var(--blue); font-size: 20px; }.proposal-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 17px 18px; border-bottom: 1px solid var(--line); }.proposal-card-heading h2,.proposal-add-line h2 { margin: 0 0 4px; font-size: 15px; }.proposal-card-heading p,.proposal-add-line p { margin: 0; color: var(--muted); }.proposal-lines-card .table-scroll { max-height: 520px; }.proposal-lines-table { min-width: 1420px; }.proposal-lines-table th { white-space: nowrap; }.proposal-lines-table td { padding: 9px 7px; }.proposal-input { height: 35px; padding: 0 8px; border: 1px solid #d9dee7; border-radius: 7px; color: var(--text); background: #fff; font-size: 12px; }.proposal-input:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px rgba(11,87,208,.08); }.proposal-input:disabled { border-color: transparent; background: transparent; }.proposal-input--description { width: 280px; }.proposal-input--number { width: 82px; }.proposal-input--money { width: 105px; }.proposal-input--tax { width: 130px; }.proposal-totals { display: flex; justify-content: flex-end; gap: 22px; padding: 15px 18px; border-top: 1px solid var(--line); background: #fafbfc; }.proposal-totals span { color: var(--muted); font-size: 12px; }.proposal-totals strong { margin-left: 5px; color: var(--text); }.proposal-totals__grand { color: var(--text)!important; font-weight: 750; }.proposal-totals__grand strong { color: var(--blue); font-size: 16px; }.proposal-observations { margin-top: 14px; padding: 18px; }.proposal-add-line { display: grid; grid-template-columns: 260px 1fr; gap: 24px; margin-top: 14px; padding: 20px; }.proposal-add-line__form { display: grid; grid-template-columns: repeat(5,minmax(120px,1fr)) auto; align-items: end; gap: 12px; }.proposal-add-line__form .field--span-2 { grid-column: span 2; }
.proposal-period-summary { display: grid; grid-template-columns: repeat(3,minmax(110px,1fr)) minmax(190px,1.35fr); margin-bottom: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 2px 7px rgba(16,24,40,.025); }.proposal-period-summary article { min-width: 0; padding: 12px 16px; border-right: 1px solid #edf0f3; }.proposal-period-summary article:last-child { border-right: 0; }.proposal-period-summary span,.proposal-period-summary strong,.proposal-period-summary small { display: block; }.proposal-period-summary span { margin-bottom: 4px; color: var(--muted); font-size: 11px; font-weight: 700; }.proposal-period-summary strong { font-size: 18px; }.proposal-period-summary small { margin-top: 2px; color: #98a2b3; font-size: 10.5px; }.proposal-period-summary__amount strong { color: var(--blue); }.proposal-filters { grid-template-columns: minmax(260px,1fr) 145px 200px 210px auto auto auto; }.period-filter { display: grid; grid-template-columns: 35px 1fr 35px; align-items: center; }.period-filter .filter-month { width: 100%; border-radius: 0; }.period-filter__step { display: grid; height: 39px; place-items: center; border: 1px solid #d9dee7; color: var(--blue); background: #fff; font-size: 19px; font-weight: 750; }.period-filter__step:first-child { border-radius: 8px 0 0 8px; }.period-filter__step:last-child { border-radius: 0 8px 8px 0; }.period-filter__step.is-disabled { color: #c5cad3; pointer-events: none; }.proposal-card-actions { display: flex; align-items: center; gap: 8px; }.proposal-line-delete { padding: 5px 7px; border: 0; color: #b42318; background: transparent; font-size: 11px; font-weight: 700; cursor: pointer; }.proposal-line-delete:hover { text-decoration: underline; }
.list-context-banner { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; padding: 10px 14px; border: 1px solid #b9cdf3; border-radius: 9px; color: #344054; background: #f8fbff; }.list-context-banner a { color: var(--blue); font-weight: 700; }.batch-selector { margin-bottom: 14px; padding: 18px; }.batch-selector form { align-items: end; }.batch-context { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 14px; }.batch-context div { padding: 15px 18px; border-right: 1px solid #edf0f3; }.batch-context div:last-child { border-right: 0; }.batch-context span,.batch-context strong { display: block; }.batch-context span { margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }.batch-preview-grid,.batch-result-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }.batch-preview-grid article,.batch-result-grid article { padding: 14px 16px; }.batch-preview-grid span,.batch-preview-grid strong,.batch-result-grid span,.batch-result-grid strong { display: block; }.batch-preview-grid span,.batch-result-grid span { margin-bottom: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }.batch-preview-grid strong,.batch-result-grid strong { font-size: 21px; }.batch-preview-grid__new { border-color: #abefc6; background: #f6fef9; }.batch-preview-grid__new strong { color: #067647; }.batch-preview-grid__warning { border-color: #fedf89; background: #fffcf5; }.batch-preview-grid__warning strong { color: #b54708; }.batch-incidents-card { margin-bottom: 14px; }.batch-incidents-card .table-scroll { max-height: 360px; }.batch-confirm { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; border: 1px solid #b9cdf3; border-radius: 10px; background: #f8fbff; }.batch-confirm strong,.batch-confirm span { display: block; }.batch-confirm span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.funding-notice { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding: 12px 15px; border: 1px solid #b9cdf3; border-radius: 9px; color: #344054; background: #f8fbff; }.funding-notice strong { color: var(--blue); }.funding-layout { display: grid; grid-template-columns: minmax(330px,.72fr) minmax(0,1.55fr); gap: 14px; }.funding-form { padding: 19px; }.funding-form h2 { margin: 0 0 5px; font-size: 16px; }.funding-form > p { margin: 0 0 18px; color: var(--muted); }.funding-switches { display: grid; gap: 8px; margin-top: 16px; }.funding-list .table-scroll { max-height: calc(100vh - 285px); }.funding-end-link { display: block; margin-top: 5px; padding: 0; border: 0; color: #b54708; background: transparent; font-size: 11px; font-weight: 700; cursor: pointer; }.funding-end-link:hover { text-decoration: underline; }[data-funding-fixed][hidden],[data-funding-percentage][hidden] { display: none; }
.proposal-summary--funding,.batch-preview-grid__funding { border-color: #a6f4c5; background: #f6fef9; }.proposal-summary--funding strong,.batch-preview-grid__funding strong,.proposal-line-funding { color: #067647; }.proposal-funding-card { margin-bottom: 14px; }.proposal-funding-list { display: grid; }.proposal-funding-list article { display: grid; grid-template-columns: minmax(260px,1fr) minmax(260px,.8fr); align-items: center; gap: 18px; padding: 14px 18px; border-bottom: 1px solid var(--line); }.proposal-funding-list article:last-child { border-bottom: 0; }.proposal-funding-list strong,.proposal-funding-list small,.proposal-funding-list span { display: block; }.proposal-funding-list small { margin-top: 4px; color: var(--muted); }.proposal-funding-list article > div:last-child { text-align: right; }.proposal-funding-list article > div:last-child strong { margin-top: 4px; color: #067647; font-size: 17px; }
.catalog-form { max-width: 980px; margin: 0 auto; }.price-input { width: 105px; height: 34px; padding: 0 8px; border: 1px solid #d9dee7; border-radius: 7px; font-size: 12.5px; }.price-input:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px rgba(11,87,208,.1); }.price-row-actions { display: flex; align-items: center; gap: 8px; }
.direct-invoice-search { position: relative; }.direct-invoice-results { position: absolute; z-index: 20; top: 70px; left: 0; right: 0; max-height: 360px; overflow-y: auto; padding: 6px; border: 1px solid #d9e0ea; border-radius: 10px; background: #fff; box-shadow: 0 14px 32px rgba(16,35,65,.14); }.direct-invoice-result { display: grid; width: 100%; gap: 3px; padding: 12px 14px; border: 0; border-bottom: 1px solid #edf0f3; background: transparent; color: var(--text); text-align: left; text-decoration: none; cursor: pointer; }.direct-invoice-result:last-child { border-bottom: 0; }.direct-invoice-result:hover,.direct-invoice-result:focus { border-radius: 7px; outline: 0; background: var(--blue-soft); }.direct-invoice-result strong { font-size: 13px; }.direct-invoice-result span,.direct-invoice-result small { color: var(--muted); font-size: 12px; }.direct-invoice-result small { color: #344e73; }.direct-invoice-result--unavailable { background: #fffbf4; }.direct-invoice-result--unavailable small { color: #b54708; font-weight: 700; }.direct-invoice-results__message { margin: 0; padding: 15px; color: var(--muted); font-size: 12px; }.direct-invoice-selection { margin-top: 14px; padding: 16px; border: 1px solid #cfe0fb; border-radius: 10px; background: #f7faff; }.direct-invoice-selection > strong,.direct-invoice-selection > small { display: block; }.direct-invoice-selection > small,.direct-invoice-selection__recipient small,.direct-invoice-selection__context { color: var(--muted); font-size: 12px; }.direct-invoice-selection__recipient { display: grid; gap: 2px; margin: 13px 0; padding-top: 13px; border-top: 1px solid #dfe8f6; }.direct-invoice-selection__recipient > span { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }.direct-invoice-selection__context { margin-bottom: 12px; }.direct-invoice-period { margin-top: 18px; }
.group-heading { margin-bottom: 18px; }.group-heading p { margin: 7px 0 0; color: var(--muted); }.group-members-card .table-scroll { height: calc(100vh - 340px); min-height: 390px; max-height: none; }.group-member-filters { grid-template-columns: minmax(260px,1fr) 150px auto; }.group-member-filters .bulk-actions { flex-wrap: wrap; }
.app-dialog { width: min(560px,calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 13px; color: var(--text); background: #fff; box-shadow: 0 24px 80px rgba(16,24,40,.24); }.app-dialog--wide { width: min(980px,calc(100vw - 32px)); }.app-dialog::backdrop { background: rgba(12,31,63,.42); backdrop-filter: blur(2px); }.app-dialog form { display: flex; max-height: calc(100vh - 40px); flex-direction: column; }.dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px 22px 17px; border-bottom: 1px solid var(--line); }.dialog-header h2 { margin: 0 0 5px; font-size: 19px; }.dialog-header p { margin: 0; color: var(--muted); line-height: 1.45; }.dialog-close { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 31px; border: 0; border-radius: 7px; color: #667085; background: #f2f4f7; font-size: 20px; cursor: pointer; }.dialog-body { overflow-y: auto; padding: 20px 22px; }.dialog-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 14px 22px; border-top: 1px solid var(--line); background: #fafbfc; }.dialog-actions [data-selection-count] { margin-right: auto; color: var(--muted); }.dialog-tools { display: grid; grid-template-columns: minmax(240px,1fr) 220px 190px; align-items: end; gap: 12px; margin-bottom: 14px; }.dialog-tools > select { height: 39px; padding: 0 10px; border: 1px solid #d9dee7; border-radius: 8px; color: var(--text); background: #fff; }.dialog-date input { height: 39px; }.dialog-table-scroll { max-height: 420px; overflow-y: auto; border: 1px solid var(--line); border-radius: 9px; }.dialog-table-scroll .data-table td { height: 52px; }.operation-summary { margin: 18px 0 0; padding: 13px 14px; border: 1px solid #dce8fb; border-radius: 8px; color: #344054; background: #f8fbff; font-weight: 650; line-height: 1.5; }
.delete-warning { margin: 0 0 14px; padding: 13px 14px; border: 1px solid #fecdca; border-radius: 8px; color: #912018; background: #fff7f6; }.delete-warning strong { color: #7a271a; }
.app-footer { display: flex; justify-content: space-between; padding: 15px 38px; border-top: 1px solid var(--line); color: #98a2b3; background: #fff; font-size: 12px; }
.sidebar-overlay { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; margin: -1px; padding: 0; border: 0; clip: rect(0, 0, 0, 0); white-space: nowrap; }

body.sidebar-mini .sidebar { width: 72px; }
body.sidebar-mini .app-main { width: calc(100% - 72px); margin-left: 72px; }
body.sidebar-mini .sidebar .brand > span:last-child, body.sidebar-mini .sidebar__context > span:not(.context-logo), body.sidebar-mini .nav-heading, body.sidebar-mini .nav-link > span:not(.nav-icon), body.sidebar-mini .nav-submenu, body.sidebar-mini .sidebar-help > span:last-child { display: none; }
body.sidebar-mini .sidebar__header { padding: 0 12px; } body.sidebar-mini .sidebar-collapse { position: absolute; right: -13px; background: #fff; transform: rotate(180deg); }
body.sidebar-mini .sidebar__context { justify-content: center; padding: 8px; } body.sidebar-mini .nav-link { justify-content: center; padding: 0; } body.sidebar-mini .nav-icon { width: auto; }
body.sidebar-mini .sidebar-help { justify-content: center; padding: 7px; }

@media (max-width: 1100px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .dashboard-grid { grid-template-columns: 1fr; }
    .dashboard-overview-grid { grid-template-columns: 1fr; }.dashboard-groups-card { min-height: 0; }
    .activity-card { min-height: 260px; }.activity-empty { min-height: 180px; }
    .form-grid--4 { grid-template-columns: repeat(2, 1fr); }.profile-grid { grid-template-columns: 1fr; }
    .content--list .filters { grid-template-columns: minmax(220px, 1fr) 130px 1fr 1fr auto; }.content--list .filters__clear { grid-column: 1 / -1; }.billing-layout { grid-template-columns: 1fr; }.billing-table .table-scroll { height: 480px; min-height: 360px; }
    .help-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .proposal-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.proposal-add-line { grid-template-columns: 1fr; }.proposal-add-line__form { grid-template-columns: repeat(3,minmax(120px,1fr)); }.content--list .proposal-filters { grid-template-columns: minmax(250px,1fr) 150px 1fr 210px auto; }.batch-preview-grid,.batch-result-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.funding-layout { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
    .login-shell { grid-template-columns: 1fr; }.login-brand { display: none; }.login-panel { min-height: 100vh; padding: 30px 22px; }.login-card__mobile-brand { display: flex; }
    .sidebar { transform: translateX(-100%); }.app-main { width: 100%; margin-left: 0; }.mobile-menu { display: grid; }
    body.menu-open .sidebar { transform: translateX(0); } body.menu-open .sidebar-overlay { position: fixed; z-index: 25; inset: 0; display: block; background: rgba(12,31,63,.28); backdrop-filter: blur(2px); }
    .topbar { padding: 0 18px; }.topbar-search { display: none; }.content { padding: 27px 20px 35px; }.content--list { padding: 18px 14px; }.user-menu__copy { display: none; }.page-heading--actions { align-items: flex-start; flex-direction: column; }
    .sidebar-collapse { display: none; }
    .student-stats { grid-template-columns: repeat(2, 1fr); }.filters { align-items: stretch; flex-wrap: wrap; }.content--list .filters { display: flex; }.filter-search { width: 100%; }.filters select { flex: 1; }.content--list .table-scroll { height: calc(100vh - 390px); min-height: 360px; }.form-steps { top: 76px; justify-content: flex-start; }.form-grid--3 { grid-template-columns: 1fr 1fr; }.authorized-row { grid-template-columns: 1fr 1fr; }.authorized-row .remove-row { align-self: end; }.profile-actions { width: 100%; margin: 14px 0 0; }.student-profile-heading__main { flex-wrap: wrap; }
    .filters--bulk .filter-search { width: 100%; }.bulk-actions { width: 100%; flex-wrap: wrap; margin-left: 0; }.bulk-actions [data-selection-count] { min-width: 0; flex: 1; text-align: left; }.group-member-filters { display: flex; }.group-members-card .table-scroll { height: calc(100vh - 430px); }.dialog-tools { grid-template-columns: 1fr; }
    .permission-groups,.permission-grid { grid-template-columns: 1fr; }
    .dashboard-readiness-grid { grid-template-columns: 1fr; }.dashboard-readiness-grid a { border-right: 0; border-bottom: 1px solid #edf0f3; }.dashboard-readiness-grid a:last-child { border-bottom: 0; }
    .proposal-totals { flex-wrap: wrap; justify-content: flex-start; }.proposal-add-line__form { grid-template-columns: repeat(2,minmax(120px,1fr)); }.proposal-add-line__form .button { min-height: 42px; }.period-filter { min-width: 210px; }.proposal-period-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }.proposal-period-summary article:nth-child(2) { border-right: 0; }.proposal-period-summary article:nth-child(-n+2) { border-bottom: 1px solid #edf0f3; }.batch-confirm { align-items: stretch; flex-direction: column; }.batch-confirm .button { width: 100%; }.list-context-banner,.funding-notice { align-items: flex-start; flex-direction: column; }
    .help-layout { grid-template-columns: 1fr; }.help-nav { position: static; grid-template-columns: repeat(3,minmax(0,1fr)); }.help-nav > strong { grid-column: 1 / -1; }
}
@media (max-width: 580px) {
    .breadcrumbs span, .breadcrumbs a { display: none; }.stats-grid { grid-template-columns: 1fr; }.module-grid { grid-template-columns: 1fr; }.module-grid a, .module-grid a:nth-child(odd), .module-grid a:nth-child(even) { min-height: 78px; padding: 12px 8px; border-right: 0; border-bottom: 1px solid #edf0f3; }.module-grid a:last-child { border-bottom: 0; }
    .page-actions { width: 100%; }.page-actions .button { flex: 1; }.progress-card { align-items: flex-start; flex-direction: column; }.progress-copy { text-align: left; }.app-footer { gap: 8px; flex-direction: column; padding: 15px 20px; }.toast { right: 16px; bottom: 16px; }
    .dashboard-donut-body { grid-template-columns: 1fr; justify-items: center; }.dashboard-legend { width: 100%; grid-template-columns: 1fr 1fr; }.dashboard-bars a { grid-template-columns: minmax(130px,1fr) 80px 28px; gap: 8px; }
    .form-grid--4, .form-grid--3, .form-grid--2 { grid-template-columns: 1fr; }.field--span-2 { grid-column: auto; }.form-section { padding: 18px 15px; }.form-section__heading--action { align-items: flex-start; flex-wrap: wrap; }.form-section__heading--action .button { margin: 4px 0 0 46px; }.authorized-row { grid-template-columns: 1fr; }.billing-validity,.billing-history__list article { grid-template-columns: 1fr; }.billing-total { align-items: flex-start; flex-wrap: wrap; }.billing-total strong { margin-left: 0; }.student-stats { grid-template-columns: 1fr 1fr; }.profile-actions .button { flex: 1; }.detail-list { grid-template-columns: 1fr; }.detail-list div:nth-last-child(2) { border-bottom: 1px solid #edf0f3; }.image-upload-field { align-items: flex-start; flex-direction: column; }.image-upload-copy .button { margin-bottom: 8px; }.image-upload-copy .button + .button, .check-line--compact { margin-left: 0; }
    .help-grid,.help-nav,.help-page-index > div { grid-template-columns: 1fr; }.help-topic-card { min-height: 92px; }.help-detailed-list li { grid-template-columns: 1fr; gap: 4px; }.help-warning,.help-footer-note { align-items: flex-start; flex-direction: column; }
    .proposal-summary-grid,.proposal-add-line__form,.batch-preview-grid,.batch-result-grid,.batch-context,.fiscal-guided-grid,.fiscal-price-preview { grid-template-columns: 1fr; }.fiscal-price-preview article { border-right: 0; border-bottom: 1px solid #d9e4f5; }.proposal-add-line__form .field--span-2 { grid-column: auto; }.proposal-card-heading { align-items: flex-start; flex-direction: column; }.proposal-card-actions { width: 100%; flex-wrap: wrap; }.proposal-card-actions .button { flex: 1; }.plan-proposal-generator form { grid-template-columns: 1fr; }.batch-context div { border-right: 0; border-bottom: 1px solid #edf0f3; }.batch-context div:last-child { border-bottom: 0; }.proposal-funding-list article { grid-template-columns: 1fr; }.proposal-funding-list article > div:last-child { text-align: left; }
}

.emission-readiness { margin: 14px 0; overflow: hidden; }.emission-readiness--ready { border-color: #abefc6; }.emission-readiness--blocked { border-color: #fedf89; }.emission-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin: 0; padding: 8px 18px 16px; list-style: none; }.emission-checklist li { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 42px; padding: 8px 10px; border-bottom: 1px solid #edf0f3; }.emission-checklist li:nth-last-child(-n+2) { border-bottom: 0; }.emission-checklist__icon { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 800; }.emission-checklist .is-ok .emission-checklist__icon { color: #067647; background: #dcfae6; }.emission-checklist .is-missing .emission-checklist__icon { color: #b54708; background: #fef0c7; }.emission-checklist .is-missing > span:nth-child(2) { color: #713b12; font-weight: 650; }.emission-checklist a { color: var(--blue); font-size: 11.5px; font-weight: 700; white-space: nowrap; }.emission-readiness__note { margin: 0 18px 18px; padding: 12px 14px; border-radius: 8px; color: #854a0e; background: #fffaeb; font-size: 12px; }.emission-preview-errors { margin: 0; padding-left: 18px; color: #b42318; font-size: 11.5px; line-height: 1.45; }.emission-preview-errors li + li { margin-top: 4px; }.button:disabled { cursor: not-allowed; opacity: .55; }

/* En los borradores, la edición de líneas es la tarea principal. */
.proposal-fiscal-alert { margin: 10px 0; padding: 10px 13px; }
.proposal-context-strip { display: grid; grid-template-columns: 1.1fr 1.1fr 1.25fr .8fr; margin: 0 0 12px; overflow: hidden; }
.proposal-context-strip > div { min-width: 0; padding: 11px 15px; border-right: 1px solid var(--line); }
.proposal-context-strip > div:last-child { border-right: 0; }
.proposal-context-strip span,.proposal-context-strip strong,.proposal-context-strip small { display: block; }
.proposal-context-strip span { margin-bottom: 4px; color: #8490a2; font-size: 10px; font-weight: 750; letter-spacing: .02em; text-transform: uppercase; }
.proposal-context-strip strong { overflow: hidden; color: var(--text); font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-context-strip small { overflow: hidden; margin-top: 3px; color: var(--muted); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-context-strip__total { background: #f8fbff; }
.proposal-context-strip__total strong { color: var(--blue); font-size: 17px; }
.emission-readiness--compact { margin: 12px 0; }
.emission-readiness__summary { display: grid; grid-template-columns: 28px minmax(0,1fr) auto 18px; align-items: center; gap: 10px; padding: 11px 15px; cursor: pointer; list-style: none; }
.emission-readiness__summary::-webkit-details-marker,.proposal-document-details > summary::-webkit-details-marker { display: none; }
.emission-readiness__summary strong,.emission-readiness__summary small,.proposal-document-details > summary strong,.proposal-document-details > summary small { display: block; }
.emission-readiness__summary small,.proposal-document-details > summary small { margin-top: 2px; color: var(--muted); font-size: 11px; font-weight: 400; }
.emission-readiness__summary-icon { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: 12px; font-weight: 800; }
.emission-readiness--ready .emission-readiness__summary-icon { color: #067647; background: #dcfae6; }
.emission-readiness--blocked .emission-readiness__summary-icon { color: #b54708; background: #fef0c7; }
.details-chevron { color: #8490a2; font-size: 18px; transition: transform .18s ease; }
details[open] > summary .details-chevron { transform: rotate(180deg); }
.emission-readiness__body { border-top: 1px solid var(--line); }
.proposal-document-details { margin: 12px 0 0; overflow: hidden; }
.proposal-document-details > summary { display: grid; grid-template-columns: minmax(0,1fr) 18px; align-items: center; gap: 10px; padding: 12px 15px; cursor: pointer; list-style: none; }
.proposal-document-details__body { padding: 14px; border-top: 1px solid var(--line); background: #fafbfc; }
.proposal-document-details__body .proposal-summary-grid { margin-bottom: 0; }
.proposal-document-details__body .proposal-summary { box-shadow: none; }
.proposal-document-details__body .proposal-funding-card { margin-top: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
@media (max-width: 1100px) { .proposal-context-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }.proposal-context-strip > div:nth-child(2) { border-right: 0; }.proposal-context-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); } }
@media (max-width: 620px) { .proposal-context-strip { grid-template-columns: 1fr; }.proposal-context-strip > div { border-right: 0; border-bottom: 1px solid var(--line); }.proposal-context-strip > div:last-child { border-bottom: 0; }.emission-readiness__summary { grid-template-columns: 28px minmax(0,1fr) 18px; }.emission-readiness__summary .badge { display: none; }.emission-checklist { grid-template-columns: 1fr; }.emission-checklist li:nth-last-child(-n+2) { border-bottom: 1px solid #edf0f3; }.emission-checklist li:last-child { border-bottom: 0; } }

@media (max-width: 760px) { .emission-checklist { grid-template-columns: 1fr; }.emission-checklist li:nth-last-child(-n+2) { border-bottom: 1px solid #edf0f3; }.emission-checklist li:last-child { border-bottom: 0; } }

.payment-plan-filters { grid-template-columns: minmax(250px,1.25fr) repeat(4,minmax(150px,1fr)) auto auto!important; }.selection-strip { display: flex; align-items: center; gap: 18px; min-height: 50px; padding: 8px 14px; border-bottom: 1px solid var(--line); background: #fafbfc; color: var(--muted); font-size: 11.5px; }.selection-strip [data-selection-count] { color: var(--text); font-weight: 750; }.selection-strip>.button { margin-left: auto; }.selection-strip__actions { display:flex;align-items:center;gap:8px;margin-left:auto; }.selection-strip__actions .button { margin-left:0; }.payment-assignments-card .table-scroll { height: calc(100vh - 455px); min-height: 360px; max-height: none; }.payment-template-card .table-scroll { height: calc(100vh - 300px); min-height: 420px; max-height: none; }.assignment-result { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 12px; padding: 13px 16px; }.assignment-result strong,.assignment-result span { display: block; }.assignment-result span { margin-top: 3px; color: var(--muted); font-size: 11.5px; }.assignment-result details { max-width: 60%; }.assignment-result summary { color: var(--blue); font-weight: 750; cursor: pointer; }.assignment-result ul { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 11.5px; }

@media (max-width: 1100px) { .payment-plan-filters { display: flex!important; flex-wrap: wrap; }.payment-plan-filters .filter-search { flex: 1 1 100%; }.payment-plan-filters select { flex: 1 1 180px; } }
@media (max-width: 760px) { .selection-strip { align-items: stretch; flex-direction: column; gap: 7px; }.selection-strip .button { width: 100%; margin-left: 0; }.selection-strip__actions { flex-direction:column;width:100%;margin-left:0; }.payment-assignments-card .table-scroll { height: calc(100vh - 540px); } }

@media (prefers-reduced-motion: reduce) { .toast, .toast.is-leaving { animation-duration: .01ms; } }

.session-dialog { width: min(480px,calc(100vw - 32px)); }
.session-dialog .dialog-body p { margin: 0 0 10px; line-height: 1.5; }
.session-dialog [data-session-countdown] { color: var(--blue); font-size: 22px; font-variant-numeric: tabular-nums; }

.responsible-address-copy,.family-address-copy { display: flex; align-items: end; flex-wrap: wrap; gap: 9px 12px; margin: 0 0 16px; padding: 11px 13px; border: 1px solid #d9e5f7; border-radius: 9px; background: #f8fbff; }
.responsible-address-copy small,.family-address-copy small { color: var(--muted); font-size: 11.5px; line-height: 1.4; }
.family-address-copy .field { min-width: min(100%,320px); }
@media (max-width: 620px) { .responsible-address-copy .button,.family-address-copy .button,.family-address-copy .field { width: 100%; }.responsible-address-copy,.family-address-copy { align-items: stretch; } }
.incident-student-button{border:0;background:none;padding:0;color:var(--primary,#0b5ed7);font:inherit;font-weight:700;text-align:left;cursor:pointer}.incident-student-button:hover{text-decoration:underline}.incident-billing-recipients{margin-top:16px}.incident-effective-date{max-width:320px;margin-top:18px}.batch-incidents-card td:nth-child(4){min-width:360px}.batch-incidents-card .table-edit-link{white-space:nowrap;background:#fff;cursor:pointer}
