:root{
  --bg:#f4f5f7;--surface:#fff;--surface2:#f8f9fb;--text:#18202a;--muted:#68717e;
  --border:#e1e5ea;--primary:#22314d;--primary2:#314667;--danger:#a43232;
  --success:#2f6b48;--warning:#a16816;--radius:15px;--shadow:0 12px 35px rgba(24,32,42,.08)
}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:#172133;color:#fff;display:flex;flex-direction:column;z-index:40}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#172133;font-weight:800;font-size:20px}
.brand strong,.brand small{display:block}.brand small{color:#aeb8c8;font-size:12px;margin-top:2px}
nav{display:grid;gap:5px;min-height:0;overflow-y:auto}.nav-item{padding:12px 13px;border-radius:10px;color:#d7deea}.nav-item:hover,.nav-item.active{background:#273651;color:#fff}
.sidebar-footer{margin-top:auto;padding:12px;display:grid;gap:3px;color:#aeb8c8;font-size:13px}.user-name{color:#fff;font-weight:700}.role{font-size:12px}.link-button{border:0;background:transparent;color:#cfd8e6;padding:8px 0;text-align:left}
.main{min-width:0}.topbar{min-height:86px;padding:17px 28px;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.heading h1{margin:0;font-size:24px}.heading p{margin:4px 0 0;color:var(--muted);font-size:13px}.topbar-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.menu-button{display:none;border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 11px;font-size:20px}
.view{padding:24px 28px 50px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px rgba(0,0,0,.02)}
.primary,.secondary,.ghost,.danger{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 14px;border:1px solid transparent;font-weight:650}
.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.secondary{background:#fff;border-color:var(--border)}.ghost{background:transparent;border-color:var(--border)}.danger{background:#fff1f1;color:var(--danger);border-color:#efcccc}.wide{width:100%}
.flash{padding:13px 15px;border-radius:11px;margin-bottom:16px}.flash.success{background:#edf7f0;color:#245b3b;border:1px solid #cce4d4}.flash.error{background:#fff1f1;color:#842727;border:1px solid #efcccc}.flash ul{margin:7px 0 0}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{padding:18px}.metric strong{display:block;font-size:27px;line-height:1.1}.metric span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.metric-grid.compact .metric strong{font-size:22px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px}.section-header h2{margin:0;font-size:18px}
.alert-list{overflow:hidden}.alert{display:grid;grid-template-columns:11px minmax(0,1fr);gap:11px;padding:14px 16px;border-bottom:1px solid var(--border)}.alert:last-child{border-bottom:0}.alert-dot{width:9px;height:9px;border-radius:50%;margin-top:5px}.alert.urgent .alert-dot{background:#c64444}.alert.medium .alert-dot{background:#dc9b35}.alert.low .alert-dot{background:#4d8a67}.alert p{margin:3px 0 0;color:var(--muted);font-size:14px}
.sessions{display:grid;gap:11px}.session-card{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border-left:5px solid #7a8ba5}.session-card.color-mat{border-left-color:#7a9fc8}.session-card.color-equipment{border-left-color:#9873b5}.session-card.color-barre{border-left-color:#bf6e80}.session-card.color-private{border-left-color:#5e9d73}.session-card.color-electro{border-left-color:#bc8747}.session-time strong{display:block;font-size:20px}.session-time span{color:var(--muted);font-size:12px}.session-main h3{margin:0 0 4px}.session-main p{margin:0;color:var(--muted);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.tag,.badge{display:inline-flex;border-radius:999px;background:#eef1f5;color:#445064;padding:5px 9px;font-size:12px}.danger-soft{background:#fff0f0;color:#933}.success-badge{background:#eaf6ee;color:#286344}
.workshop-teaser{padding:16px;display:flex;align-items:center;justify-content:space-between}.workshop-teaser p{margin:4px 0 0;color:var(--muted)}
.filters{padding:14px;display:grid;grid-template-columns:minmax(220px,1fr) 190px auto;gap:10px;margin-bottom:16px}
input,select,textarea{width:100%;border:1px solid #ccd3dc;border-radius:9px;background:#fff;color:var(--text);padding:10px 11px}textarea{resize:vertical}label{display:grid;gap:6px;font-size:13px;font-weight:650}
.form-card{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.span-2{grid-column:span 2}.form-stack{display:grid;gap:13px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.checks-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px}
fieldset{border:0;padding:0;margin:20px 0}legend{font-weight:750;margin-bottom:10px}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.check-card{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;padding:11px;background:var(--surface2)}.check-card input,.check input{width:auto}.check{display:flex;align-items:center;gap:8px;font-weight:500}
.table-card{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.actions-cell{text-align:right}.empty{padding:28px;text-align:center;color:var(--muted)}small,.muted{color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detail-card{padding:18px}.detail-card h2{font-size:16px;margin:0 0 13px}.detail-card p{line-height:1.55}.detail-card dl{display:grid;grid-template-columns:140px 1fr;gap:10px;margin:0}.detail-card dt{color:var(--muted)}.detail-card dd{margin:0}
.list{overflow:hidden}.list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.list>a:last-child{border-bottom:0}.list span{color:var(--muted);font-size:13px}
.session-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;background:var(--border)}.session-summary>div{background:#fff;padding:17px}.session-summary strong,.session-summary span{display:block}.session-summary span{color:var(--muted);font-size:13px;margin-top:4px}
.attendance-list{display:grid;gap:11px;margin-top:16px}.attendance-row{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr);gap:18px;padding:16px}.person-block strong,.person-block span,.person-block small{display:block}.person-block span{color:var(--muted);font-size:13px;margin-top:3px}.health-note{margin-top:8px;padding:8px;background:#fff8e8;border-radius:8px;color:#77531a}
.attendance-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center}.attendance-buttons{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.status-choice{display:block}.status-choice input{position:absolute;opacity:0;pointer-events:none}.status-choice span{display:block;border:1px solid var(--border);padding:8px 10px;border-radius:9px;font-weight:600}.status-choice input:checked+span{background:var(--primary);color:#fff;border-color:var(--primary)}
.workshop-grid,.student-cards{display:grid;gap:12px}.workshop-card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:15px;align-items:center;padding:17px}.workshop-date{width:58px;height:58px;border-radius:13px;background:#eef1f5;display:grid;place-items:center;align-content:center}.workshop-date strong{font-size:22px}.workshop-date span{font-size:12px;color:var(--muted)}.workshop-card h2{margin:0;font-size:17px}.workshop-card p{margin:5px 0;color:var(--muted)}
.row-form{display:flex;gap:6px;align-items:center}.row-form select{min-width:110px;padding:8px}
.student-intro{padding:18px;background:#f8fafc}.student-intro p{margin:5px 0 0;color:var(--muted);line-height:1.45}.student-session{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px}.student-session h3{margin:4px 0}.student-session p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:var(--muted)}.contact-card{display:flex;justify-content:space-between;gap:12px;padding:18px;margin-top:25px}.contact-card span{color:var(--muted)}
.inline-form{display:flex;gap:8px}.inline-form input{min-width:145px}
.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#eef1f5}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:28px}.login-brand{display:flex;align-items:center;gap:12px}.login-brand strong,.login-brand small{display:block}.login-brand small{color:var(--muted)}.login-card h1{margin:28px 0 5px}.login-card>p{color:var(--muted);margin:0 0 20px}
.overlay{display:none}
.axis-confirm-backdrop[hidden]{display:none}.axis-confirm-backdrop{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:18px;background:rgba(33,27,41,.52);backdrop-filter:blur(4px)}.axis-confirm-modal{width:min(460px,100%);display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;padding:24px;border:1px solid rgba(118,74,255,.18);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(43,31,59,.28)}.axis-confirm-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#fff0df;color:#9a5715;font-size:24px;font-weight:900}.axis-confirm-modal h2{margin:1px 0 7px;font-size:21px}.axis-confirm-modal p{margin:0;color:var(--muted);line-height:1.55}.axis-confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.unsaved-modal-open{overflow:hidden}@media(max-width:520px){.axis-confirm-modal{grid-template-columns:40px minmax(0,1fr);padding:20px}.axis-confirm-icon{width:40px;height:40px;border-radius:13px}.axis-confirm-actions{display:grid}.axis-confirm-actions button{width:100%}}
@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.check-grid{grid-template-columns:repeat(2,1fr)}.attendance-row{grid-template-columns:1fr}.row-form{flex-wrap:wrap}}
@media(max-width:760px){
  .app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(290px,86vw);transform:translateX(-105%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.overlay.open{display:block;position:fixed;inset:0;background:rgba(10,18,30,.45);z-index:35}
  .menu-button{display:block}.topbar{padding:13px 15px;min-height:72px}.heading h1{font-size:20px}.topbar-actions{max-width:48%;overflow:auto}.view{padding:16px 14px 38px}
  .metric-grid{grid-template-columns:repeat(2,1fr);gap:9px}.metric{padding:14px}.metric strong{font-size:23px}
  .session-card{grid-template-columns:65px minmax(0,1fr);padding:14px}.session-open{grid-column:1/-1;width:100%}
  .filters{grid-template-columns:1fr}.form-grid,.detail-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.check-grid{grid-template-columns:1fr 1fr}
  .table-card{overflow:visible}table,thead,tbody,tr,th,td{display:block}thead{display:none}tr{padding:12px 14px;border-bottom:1px solid var(--border)}tr:last-child{border-bottom:0}td{border:0;padding:5px 0;display:flex;justify-content:space-between;gap:12px}td::before{content:attr(data-label);font-size:12px;color:var(--muted);font-weight:700}.actions-cell{text-align:left}.actions-cell a{width:100%;margin-top:6px}td[colspan]{display:block}
  .workshop-card{grid-template-columns:58px minmax(0,1fr)}.workshop-card>.badge{grid-column:1/-1;width:max-content}.student-session{display:grid}.session-summary{grid-template-columns:1fr}.attendance-form{grid-template-columns:1fr}.attendance-form button{width:100%}
  .inline-form{display:none}.row-form{display:grid;width:100%}.row-form select,.row-form button{width:100%}.contact-card{display:grid}
}
@media(max-width:430px){.check-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.topbar-actions .primary{padding:9px 10px;font-size:13px}}

.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px}.disabled-button{opacity:.5;cursor:not-allowed}.pagination>span:not(.secondary){color:var(--muted);font-size:13px}

/* Axis Core v0.2: bonos, recuperaciones, listas y cuotas */
.operations-grid{margin-top:14px}.operations-grid a{transition:transform .15s ease,box-shadow .15s ease}.operations-grid a:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.alert{grid-template-columns:11px minmax(0,1fr) auto;align-items:start}.small-button{padding:6px 9px;font-size:12px}.warning-soft{background:#fff5df;color:#885b12}
.session-card.is-cancelled{opacity:.72;border-left-color:#b64a4a}.session-summary.four-columns{grid-template-columns:repeat(4,1fr)}
.operation-panels{margin-top:16px}.operation-panels .detail-card{align-self:start}.danger-panel{border-color:#efcccc;background:#fffafa}.danger-panel p{color:var(--muted);font-size:14px}.top-gap{margin-top:12px}
.cancel-booking-form{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.balance-row,.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--border)}.balance-row:last-child,.list-row:last-child{border-bottom:0}.balance-row span,.list-row span{color:var(--muted);font-size:13px;text-align:right}
.status-active,.status-available,.status-paid,.status-accepted{background:#eaf6ee;color:#286344}.status-frozen,.status-reserved,.status-offered{background:#fff5df;color:#885b12}.status-expired,.status-cancelled,.status-rejected{background:#fff0f0;color:#933}.status-consumed,.status-used,.status-waived{background:#eef1f5;color:#445064}.status-pending,.status-waiting{background:#edf2fa;color:#375a85}
.segmented{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.segmented a{padding:9px 12px;font-size:13px;font-weight:700}.segmented a.active{background:var(--primary);color:#fff}.info-banner,.student-notice{padding:15px 17px;color:var(--muted);margin-bottom:16px}.student-notice{background:#fff8e8;color:#77531a}
.inline-action{display:inline-flex;margin:3px}.compact-form{display:grid;grid-template-columns:125px 180px minmax(150px,1fr) auto;min-width:610px}.compact-form input,.compact-form select{min-width:0}.span-2-card{grid-column:1/-1}.student-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-summary-grid section{min-width:0}
@media(max-width:1000px){.compact-form{grid-template-columns:1fr 1fr}.compact-form button{width:100%}.student-summary-grid{grid-template-columns:1fr}}
@media(max-width:760px){.session-summary.four-columns{grid-template-columns:1fr}.cancel-booking-form{grid-template-columns:1fr}.alert{grid-template-columns:11px minmax(0,1fr)}.alert form{grid-column:2}.segmented{max-width:100%;overflow:auto}.compact-form{display:grid;grid-template-columns:1fr;min-width:0}.compact-form input,.compact-form select,.compact-form button{width:100%}.balance-row,.list-row{align-items:flex-start}.topbar-actions .segmented{font-size:12px}}
.communication-list{display:grid;gap:13px}.communication-card{padding:17px}.communication-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.communication-head h2{font-size:17px;margin:3px 0}.communication-head p{margin:0;color:var(--muted)}.communication-form{display:grid;gap:10px;margin-top:14px}.communication-actions{display:grid;grid-template-columns:150px 150px repeat(3,auto);gap:8px;align-items:center}.communication-actions select{min-width:0}
@media(max-width:1000px){.communication-actions{grid-template-columns:1fr 1fr}.communication-actions a,.communication-actions button{width:100%}}
@media(max-width:760px){.communication-head{display:grid}.communication-actions{grid-template-columns:1fr}}

/* Axis Core v0.2.4: calendario y gestión de avisos */
.calendar-date-button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 12px;font-weight:700}
.day-stepper{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.status-in_progress{background:#e7f0fb;color:#315b8b}.status-postponed{background:#fff5df;color:#885b12}.status-resolved{background:#eaf6ee;color:#286344}.status-dismissed{background:#eef1f5;color:#445064}
.alert-detail-heading{display:flex;align-items:flex-start;gap:12px}.alert-detail-heading .alert-dot{margin-top:7px}.alert-detail-heading .alert-dot.urgent{background:#c64444}.alert-detail-heading .alert-dot.medium{background:#dc9b35}.alert-detail-heading .alert-dot.low{background:#4d8a67}.alert-detail-heading h2{font-size:22px;margin:3px 0 0}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;margin-bottom:16px}.calendar-navigation{display:flex;gap:8px}.calendar-date-form{display:flex;gap:8px;align-items:center}.calendar-date-form input{min-width:155px}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0 0 8px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.03em}
.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-day{min-height:150px;padding:10px;overflow:hidden}.calendar-day.outside-month{opacity:.55}.calendar-day.is-today{border-color:#7ba9d5;box-shadow:0 0 0 2px rgba(90,145,198,.14)}.calendar-day-number{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-day-number span{font-size:18px;font-weight:800}.calendar-day-number small{font-size:11px}.calendar-day-items{display:grid;gap:5px}.calendar-chip{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;padding:6px 7px;border-radius:8px;background:#edf2fa;font-size:11px;line-height:1.25}.calendar-chip strong{font-size:10px}.calendar-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-chip.kind-workshop{background:#f7edf6}.calendar-chip.kind-entry{background:#fff5df}.calendar-chip.status-cancelled{text-decoration:line-through;opacity:.65}.calendar-more{font-size:11px;color:var(--primary2);font-weight:750;padding:3px}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:10px;overflow-x:auto;padding-bottom:4px}.calendar-week-day{padding:12px;min-height:360px}.calendar-week-day.is-today{border-color:#7ba9d5}.calendar-week-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--border)}.calendar-week-heading span{color:var(--muted);font-size:12px;text-transform:uppercase}.calendar-week-heading strong{font-size:17px}.calendar-empty-day{padding:20px 5px;color:var(--muted);font-size:13px;text-align:center}
.calendar-day-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,.6fr);gap:18px;align-items:start}.calendar-agenda-list{display:grid;gap:10px}.calendar-agenda-list.compact-list{margin-top:10px}.calendar-agenda-item{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;border-left:5px solid #7a8ba5}.calendar-agenda-item.kind-workshop{border-left-color:#bf6e80}.calendar-agenda-item.kind-entry{border-left-color:#dc9b35}.calendar-agenda-time{font-size:16px;font-weight:800}.calendar-agenda-main h3{margin:3px 0}.calendar-agenda-main p{margin:0;color:var(--muted);font-size:13px}.calendar-entry-description{margin-top:7px!important;color:var(--text)!important}.calendar-agenda-actions form{display:flex;gap:6px;align-items:center}.calendar-agenda-actions select{min-width:125px;padding:8px}.calendar-create-card{position:sticky;top:105px}.calendar-create-card h2{font-size:19px}
@media(max-width:1100px){.calendar-month-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-weekdays{display:none}.calendar-day-layout{grid-template-columns:1fr}.calendar-create-card{position:static}}
@media(max-width:760px){.day-stepper{display:grid;grid-template-columns:1fr 1fr}.day-stepper a:nth-child(2){grid-column:1/-1;grid-row:1}.calendar-toolbar{display:grid}.calendar-navigation,.calendar-date-form{width:100%}.calendar-navigation a{flex:1}.calendar-date-form{display:grid;grid-template-columns:1fr auto}.calendar-month-grid{grid-template-columns:1fr}.calendar-day{min-height:0}.calendar-day-number small{display:block}.calendar-week-grid{grid-template-columns:1fr;overflow:visible}.calendar-week-day{min-height:0}.calendar-agenda-item{grid-template-columns:65px minmax(0,1fr)}.calendar-agenda-actions{grid-column:1/-1}.calendar-agenda-actions a,.calendar-agenda-actions form,.calendar-agenda-actions select,.calendar-agenda-actions button{width:100%}.calendar-agenda-actions form{display:grid;grid-template-columns:1fr}.calendar-view-switch{max-width:100%}.calendar-date-button{font-size:13px;padding:8px 10px}}
.alert-management-list{display:grid;gap:11px}.alert-management-card{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:13px;align-items:start;padding:16px}.alert-management-card .alert-dot.urgent{background:#c64444}.alert-management-card .alert-dot.medium{background:#dc9b35}.alert-management-card .alert-dot.low{background:#4d8a67}.alert-management-card h2{font-size:17px;margin:3px 0}.alert-management-card p{margin:0 0 7px;color:var(--muted)}.alert-management-card small{font-size:12px}@media(max-width:760px){.alert-management-card{grid-template-columns:12px minmax(0,1fr)}.alert-management-card>.badge{grid-column:2;width:max-content}}

/* Axis Core v0.2.5: búsqueda y alta rápida de cobros */
.billing-filters{padding:16px;display:grid;grid-template-columns:minmax(230px,1.35fr) 160px 170px minmax(180px,1fr) 180px auto;gap:12px;align-items:end;margin-bottom:16px}
.billing-filters label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}
.billing-filters input,.billing-filters select{width:100%;color:var(--text);font-weight:400}
.filter-actions{display:flex;gap:8px;align-items:center}.filter-actions>*{white-space:nowrap}
.person-picker{position:relative}.person-picker-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.person-picker-control input{width:100%}
.person-picker-results{position:absolute;z-index:35;left:0;right:0;top:calc(100% + 6px);max-height:330px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px}
.person-picker-option{width:100%;display:grid;gap:4px;text-align:left;border:0;background:#fff;padding:11px 12px;border-radius:9px;color:var(--text)}.person-picker-option:hover,.person-picker-option.is-active{background:#edf2fa}.person-picker-option strong{font-size:14px}.person-picker-option span{font-size:12px;color:var(--muted);line-height:1.35}.person-picker-empty{padding:15px;color:var(--muted);font-size:13px;text-align:center}
.person-picker-clear{padding:9px 11px}.field-error{color:var(--danger)!important;font-weight:700}.person-picker>a,.person-picker small{display:block;margin-top:5px}
#nuevo-cobro{scroll-margin-top:105px}.table-card td a small{display:block;margin-top:3px}
@media(max-width:1250px){.billing-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-actions{align-self:end}}
@media(max-width:760px){.billing-filters{grid-template-columns:1fr}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.person-picker-control{grid-template-columns:1fr}.person-picker-clear{width:100%}.person-picker-results{top:calc(100% + 6px);max-height:280px}}
.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:760px){.section-header{align-items:flex-start;gap:10px}.inline-actions{width:100%}.inline-actions a{flex:1}}

/* Axis Core v0.2.6: informes económicos mensuales */
.status-pending_review{background:#fff5df;color:#885b12}.status-reviewed{background:#eaf6ee;color:#286344}.status-needs_update{background:#fff0f0;color:#933}
.report-list{display:grid;gap:12px}.report-card{padding:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center}.report-card h2{margin:4px 0;font-size:20px;text-transform:capitalize}.report-card p{margin:0;color:var(--muted);font-size:13px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}.report-card-totals{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.report-card-totals span{display:grid;gap:2px;font-size:12px;color:var(--muted)}.report-card-totals strong{font-size:17px;color:var(--text)}
.report-heading-card{padding:18px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.report-heading-card h2{margin:8px 0 4px;text-transform:capitalize}.report-heading-card p{margin:0;color:var(--muted)}.report-metrics{margin-bottom:20px}.report-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:16px;align-items:start}.report-section{padding:16px}.report-section .section-header{margin:0 0 12px}.report-breakdown-list{display:grid;gap:8px}.report-breakdown-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:11px;border-radius:10px;background:var(--surface2)}.report-breakdown-list small{grid-column:1/-1;color:var(--muted)}.report-lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:20px}.report-lower-grid h2{margin-top:0}.report-version-list{display:grid;gap:8px}.report-version-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.report-version-list>div:last-child{border-bottom:0}.report-version-list span{display:grid;gap:3px}.report-version-list small{color:var(--muted)}
@media(max-width:1000px){.report-grid,.report-lower-grid{grid-template-columns:1fr}.report-card{grid-template-columns:1fr}.report-card-totals{justify-content:flex-start}.report-heading-card{align-items:flex-start;display:grid}}
@media(max-width:760px){.report-card-totals{display:grid;grid-template-columns:1fr 1fr}.report-card-totals .badge{grid-column:1/-1;width:max-content}.report-heading-card .inline-actions{display:grid}.report-heading-card .inline-actions>*{width:100%}.report-metrics{grid-template-columns:1fr 1fr}}

/* Axis Core v0.2.7: calendario operativo por tarjetas */
.calendar-month-help{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 12px;color:var(--muted);font-size:13px}.calendar-month-help strong{color:var(--text)}
.calendar-card-grid{align-items:stretch}.calendar-day-card{min-height:174px;padding:13px;display:flex;flex-direction:column;gap:10px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;overflow:hidden}.calendar-day-card:hover{transform:translateY(-2px);border-color:#9eb5d1;box-shadow:var(--shadow)}.calendar-day-card.outside-month{opacity:.52}.calendar-day-card.is-today{border-color:#5f93c7;box-shadow:0 0 0 2px rgba(74,136,196,.14)}.calendar-day-card.has-closure{background:#fff9f4}.calendar-day-card-heading{display:flex;justify-content:space-between;align-items:flex-start}.calendar-day-card-heading>div{display:grid}.calendar-day-card-heading strong{font-size:28px;line-height:1}.calendar-day-card-weekday{font-size:11px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.calendar-day-card-stats{display:grid;gap:5px;font-size:12px}.calendar-day-card-stats span{display:flex;justify-content:space-between;gap:8px;padding:5px 7px;border-radius:7px;background:var(--surface2)}.calendar-day-card-stats strong{font-size:13px}.calendar-day-card-footer{display:flex;flex-wrap:wrap;gap:5px}.calendar-mini-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700}.calendar-day-card-empty{margin:auto 0;color:var(--muted);font-size:12px}.calendar-day-card-open{margin-top:auto;color:var(--primary2);font-weight:750;font-size:12px}
.calendar-week-cards{grid-template-columns:repeat(7,minmax(205px,1fr))}.calendar-week-summary{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.calendar-week-summary span{font-size:10px;padding:4px 7px;border-radius:999px;background:var(--surface2)}.calendar-week-preview{display:grid;gap:6px}.calendar-week-preview-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:7px;padding:7px;border-left:3px solid #7a8ba5;border-radius:7px;background:var(--surface2);font-size:11px}.calendar-week-preview-item.kind-workshop{border-left-color:#bf6e80}.calendar-week-preview-item.kind-entry{border-left-color:#dc9b35}.calendar-week-preview-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-day-metrics{margin-bottom:14px}.calendar-day-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.section-description{margin:5px 0 0;color:var(--muted);font-size:13px}.calendar-all-day-section{margin-bottom:22px}.calendar-program-section{margin-bottom:26px}.calendar-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;align-items:start}.calendar-room-grid.single-room{grid-template-columns:minmax(0,760px)}.calendar-room-column{display:grid;gap:10px}.calendar-room-heading{display:flex;align-items:center;justify-content:space-between;padding:0 3px}.calendar-room-heading h3{margin:0;font-size:16px}.calendar-room-heading span{font-size:12px;color:var(--muted)}
.calendar-program-card{padding:0;overflow:hidden;border-left:5px solid #7a8ba5}.calendar-program-card.kind-workshop{border-left-color:#bf6e80}.calendar-program-card.kind-entry{border-left-color:#dc9b35}.calendar-program-card.status-cancelled{opacity:.66}.calendar-program-card-top{display:grid;grid-template-columns:65px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px}.calendar-program-time{display:grid}.calendar-program-time strong{font-size:18px}.calendar-program-time span{font-size:11px;color:var(--muted)}.calendar-program-main h3{margin:3px 0 4px;font-size:16px}.calendar-program-main p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.calendar-program-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.calendar-program-tags .tag{font-size:10px;padding:4px 7px}.calendar-open-button{padding:8px 10px;font-size:12px}
.calendar-card-editor{border-top:1px solid var(--border);background:var(--surface2)}.calendar-card-editor>summary{padding:10px 14px;cursor:pointer;color:var(--primary2);font-size:12px;font-weight:750;list-style:none}.calendar-card-editor>summary::-webkit-details-marker{display:none}.calendar-card-editor>summary::after{content:'+';float:right;font-size:16px;line-height:1}.calendar-card-editor[open]>summary::after{content:'−'}.calendar-card-editor>form{margin:0 14px 14px}.calendar-inline-form{padding-top:4px}.calendar-inline-form .form-grid{gap:10px}.calendar-inline-form input,.calendar-inline-form select,.calendar-inline-form textarea{padding:8px 9px}.calendar-danger-form{padding-top:12px;border-top:1px dashed #e5bdbd;display:grid;gap:10px}.calendar-danger-form label{color:#7e2929}
.calendar-add-section{margin-top:28px}.calendar-add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.calendar-add-card{overflow:hidden}.calendar-add-card>summary{display:grid;gap:3px;padding:17px;cursor:pointer;list-style:none}.calendar-add-card>summary::-webkit-details-marker{display:none}.calendar-add-card>summary strong{font-size:16px}.calendar-add-card>summary span{font-size:12px;color:var(--muted)}.calendar-add-card>summary::after{content:'Abrir';justify-self:end;margin-top:-28px;color:var(--primary2);font-size:12px;font-weight:750}.calendar-add-card[open]>summary{border-bottom:1px solid var(--border)}.calendar-add-card[open]>summary::after{content:'Cerrar'}.calendar-add-card form{padding:16px}
.calendar-editor-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1150px){.calendar-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-add-grid{grid-template-columns:1fr}.calendar-room-grid{grid-template-columns:1fr}.calendar-room-grid.single-room{grid-template-columns:1fr}}
@media(max-width:760px){.calendar-month-help{display:grid}.calendar-card-grid{grid-template-columns:1fr}.calendar-day-card{min-height:0}.calendar-day-card.outside-month{display:none}.calendar-day-card-stats{grid-template-columns:1fr 1fr}.calendar-day-card-stats span{display:grid;justify-content:initial}.calendar-week-cards{grid-template-columns:1fr}.calendar-program-card-top{grid-template-columns:58px minmax(0,1fr)}.calendar-open-button{grid-column:1/-1;width:100%}.calendar-day-actions{display:grid;grid-template-columns:1fr}.calendar-day-actions a{width:100%}.calendar-day-metrics{grid-template-columns:1fr 1fr}.calendar-add-card>summary::after{margin-top:0;justify-self:start}.calendar-inline-form .form-grid{grid-template-columns:1fr}.calendar-inline-form .span-2{grid-column:auto}.calendar-card-editor>form{margin-left:10px;margin-right:10px}.calendar-room-grid{display:block}.calendar-room-column+ .calendar-room-column{margin-top:20px}}

/* Axis Core v0.2.8: calendario tradicional, espaciado, fotos, grupos y profesores */
:root{--control-padding-y:11px;--control-padding-x:16px;--card-padding:18px}
.primary,.secondary,.ghost,.danger{min-height:42px;padding:var(--control-padding-y) var(--control-padding-x);line-height:1.25;white-space:normal;text-align:center}
.small-button{min-height:34px;padding:7px 11px}.tag,.badge{padding:6px 10px;line-height:1.2}.nav-item{padding:13px 15px;line-height:1.25}
input,select,textarea{padding:11px 13px;line-height:1.35}th,td{padding:15px 17px}.detail-card,.report-section{padding:20px}.list>a{padding:16px 18px}.alert{padding:16px 18px}.filters{padding:17px}.form-card{padding:22px}.session-card{padding:18px}.workshop-card{padding:19px}.calendar-program-card-top{padding:16px}.calendar-card-editor>summary{padding:12px 16px}.calendar-add-card>summary{padding:19px}.calendar-add-card form{padding:18px}
.field-help{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.5}.information-box{margin-top:18px;padding:16px 18px;border:1px solid #cfd9e6;border-radius:12px;background:#f5f8fc}.information-box p{margin:6px 0 0;color:var(--muted);line-height:1.5}.weekday-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.weekday-check{min-height:48px}.group-days-fieldset{margin-bottom:8px}

/* Calendario mensual tradicional: siempre siete columnas */
.calendar-traditional{width:100%;min-width:0}.calendar-weekdays{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px;margin:0 0 8px}.calendar-weekdays span{display:grid;place-items:center;min-width:0;padding:7px 4px}.calendar-weekdays b{display:none}.calendar-weekdays em{font-style:normal}
.calendar-square-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px!important;min-width:0}.calendar-square-day{aspect-ratio:1/1;min-width:0;min-height:0!important;padding:12px!important;display:flex;flex-direction:column;gap:8px;overflow:hidden;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.calendar-square-day:hover{transform:translateY(-2px);border-color:#8daaca;box-shadow:var(--shadow)}.calendar-square-day.outside-month{opacity:.42}.calendar-square-day.is-today{border-color:#4f86bc;box-shadow:0 0 0 2px rgba(74,136,196,.16)}.calendar-square-day.has-closure{background:#fff7f2;border-color:#efc9b7}.calendar-square-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}.calendar-square-heading strong{font-size:24px;line-height:1}.calendar-square-heading span{font-size:10px;padding:4px 7px;border-radius:999px;background:#dfeafa;color:#315d89;font-weight:800}.calendar-square-content{display:grid;gap:5px;min-height:0;overflow:hidden}.calendar-square-label{display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:7px;background:var(--surface2);font-size:10px;line-height:1.2;overflow:hidden}.calendar-square-label.workshop{background:#f7edf6}.calendar-square-label.entry{background:#fff5df}.calendar-square-label.closure{background:#fff0e8;color:#8a4b2e;font-weight:750}.calendar-square-empty{color:var(--muted);font-size:10px;margin:auto 0}.calendar-square-dots{display:none;margin-top:auto;gap:4px;align-items:center}.calendar-square-dots i{width:6px;height:6px;border-radius:50%;background:#7890ad}.calendar-square-dots .dot-private{background:#5e9d73}.calendar-square-dots .dot-workshop{background:#bf6e80}.calendar-square-dots .dot-entry{background:#dc9b35}.calendar-square-dots .dot-closure{background:#c7643c}

/* Fotos internas de personas */
.person-avatar{display:grid;place-items:center;flex:none;overflow:hidden;border-radius:50%;background:#e7edf5;color:#334b6b;font-weight:800}.person-avatar img{width:100%;height:100%;object-fit:cover;display:block}.person-avatar-small{width:38px;height:38px;font-size:12px}.person-avatar-session{width:52px;height:52px;font-size:14px}.person-avatar-large{width:92px;height:92px;font-size:24px}.person-avatar-profile{width:88px;height:88px;font-size:24px}.person-table-identity{display:flex;align-items:center;gap:11px}.person-photo-editor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;padding:16px;margin-bottom:20px;border:1px solid var(--border);border-radius:13px;background:var(--surface2)}.person-photo-fields{display:grid;gap:10px}.person-photo-fields small{font-weight:400}.person-profile-heading{display:flex;align-items:center;gap:18px;padding:18px 20px;margin-bottom:18px}.person-profile-heading>div:last-child{display:grid;gap:5px}.person-profile-heading strong{font-size:21px}.person-profile-heading span{color:var(--muted)}.person-block-with-photo{display:flex;align-items:flex-start;gap:13px}.person-block-copy{min-width:0;flex:1}

/* Profesores */
.month-picker-inline{display:flex;gap:8px;align-items:center}.month-picker-inline input{min-width:155px}.teacher-month-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin-bottom:18px}.teacher-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.teacher-summary-card{padding:19px;display:grid;gap:17px;transition:transform .15s ease,border-color .15s ease}.teacher-summary-card:hover{transform:translateY(-2px);border-color:#9eb5d1}.teacher-summary-heading{display:flex;align-items:center;gap:12px}.teacher-summary-heading>div{display:grid;gap:3px}.teacher-summary-heading span{color:var(--muted);font-size:12px}.teacher-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#e6edf6;color:#314c70;font-weight:800}.teacher-summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.teacher-summary-stats span{display:grid;gap:2px;padding:10px;border-radius:9px;background:var(--surface2);color:var(--muted);font-size:11px}.teacher-summary-stats strong{font-size:18px;color:var(--text)}.teacher-open{color:var(--primary2);font-size:12px;font-weight:750}.teacher-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}

@media(max-width:1150px){
  .calendar-card-grid,.calendar-month-grid,.calendar-square-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important}
  .calendar-square-day{padding:9px!important}.calendar-square-heading strong{font-size:20px}.calendar-square-label{font-size:9px;padding:4px 5px}
  .teacher-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.weekday-check-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .view{padding:18px 14px 42px}.topbar{padding:14px}.card{border-radius:12px}.form-card{padding:17px}.primary,.secondary,.ghost,.danger{min-height:44px;padding:11px 14px}
  .calendar-month-help{display:grid;gap:4px}.calendar-weekdays{gap:3px;margin-bottom:4px}.calendar-weekdays span{padding:4px 1px;font-size:10px}.calendar-weekdays b{display:block}.calendar-weekdays em{display:none}
  .calendar-square-grid,.calendar-month-grid,.calendar-card-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:3px!important}.calendar-square-day{aspect-ratio:1/1!important;padding:5px!important;border-radius:8px!important;gap:3px}.calendar-square-heading strong{font-size:14px}.calendar-square-heading span{display:none}.calendar-square-content{display:none}.calendar-square-dots{display:flex;gap:2px}.calendar-square-dots i{width:4px;height:4px}.calendar-square-day.outside-month{display:flex!important;opacity:.3}
  .calendar-day-card{min-height:0}.teacher-card-grid{grid-template-columns:1fr}.teacher-month-navigation{display:grid;grid-template-columns:1fr 1fr}.teacher-month-navigation strong,.teacher-month-navigation .ghost{grid-column:1/-1;text-align:center}.teacher-metrics{grid-template-columns:1fr 1fr}.month-picker-inline{display:grid;grid-template-columns:1fr auto}.person-photo-editor{grid-template-columns:1fr;justify-items:center}.person-photo-fields{width:100%}.person-profile-heading{align-items:flex-start}.weekday-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  th,td{padding:13px 14px}.detail-card,.report-section{padding:17px}.list>a{padding:15px}.alert{padding:15px}.session-card{padding:16px}
}

/* Axis Core v0.2.9 — revisión visual integral */
:root{
  --axis-ink:#111a2b;
  --axis-navy:#152238;
  --axis-navy-2:#213653;
  --axis-blue:#3d78b5;
  --axis-blue-soft:#eaf2fb;
  --axis-cyan:#74b7e8;
  --axis-bg:#f3f6fa;
  --axis-surface:#ffffff;
  --axis-border:#dbe3ec;
  --axis-muted:#667386;
  --axis-shadow:0 10px 28px rgba(22,38,61,.08);
  --axis-shadow-hover:0 15px 34px rgba(22,38,61,.14);
  --axis-radius:16px;
}
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#f7f9fc 0,#f1f4f8 320px,#f3f6fa 100%);color:var(--axis-ink)}
.sidebar{background:linear-gradient(180deg,#172338 0%,#132035 100%);box-shadow:8px 0 30px rgba(14,26,45,.08)}
.brand-mark{box-shadow:0 0 0 1px rgba(116,183,232,.3),0 7px 20px rgba(0,0,0,.16)}
.nav-item{transition:background-color .16s ease,color .16s ease,transform .16s ease}
.nav-item:hover{transform:translateX(2px);background:#243854}
.nav-item.active{background:linear-gradient(135deg,#2a4162,#263955);box-shadow:inset 3px 0 0 var(--axis-cyan)}
.topbar{box-shadow:0 5px 24px rgba(24,39,63,.04)}
.view{max-width:1780px;margin:0 auto;width:100%}
.card{border-color:var(--axis-border);border-radius:var(--axis-radius);box-shadow:0 2px 5px rgba(18,31,50,.025)}
.primary,.secondary,.ghost,.danger,.calendar-date-button,.menu-button{
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease;
  letter-spacing:-.005em;
}
.primary{background:linear-gradient(135deg,#203552,#182a45);box-shadow:0 5px 13px rgba(28,49,77,.16)}
.primary:hover{background:linear-gradient(135deg,#29476c,#203957);box-shadow:0 8px 18px rgba(28,49,77,.22);transform:translateY(-1px)}
.secondary:hover,.ghost:hover,.calendar-date-button:hover{background:var(--axis-blue-soft);border-color:#a9c3dc;color:#254e76;box-shadow:0 5px 14px rgba(44,86,126,.09);transform:translateY(-1px)}
.primary:active,.secondary:active,.ghost:active,.danger:active,.calendar-date-button:active{transform:translateY(1px);box-shadow:none}
.primary:focus-visible,.secondary:focus-visible,.ghost:focus-visible,.danger:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(61,120,181,.22);outline-offset:2px}
input,select,textarea{min-height:44px;border-color:#cbd6e2;border-radius:11px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}
input:hover,select:hover,textarea:hover{border-color:#aebfd1}
input:focus,select:focus,textarea:focus{border-color:#6d9bc8;box-shadow:0 0 0 3px rgba(61,120,181,.11);outline:none}
label{gap:8px;color:#39475a}
.section-header{gap:16px}.section-header>div{min-width:0}.section-header p{margin:5px 0 0;line-height:1.45}
.table-card{border-radius:var(--axis-radius)}
table{background:#fff}th{background:#f7f9fc;color:#5f6f84;padding-top:16px;padding-bottom:16px}td{padding-top:17px;padding-bottom:17px;line-height:1.45}tbody tr{transition:background-color .14s ease}tbody tr:hover{background:#f9fbfd}
.table-card a strong{display:block}.table-card a small{display:block;margin-top:4px}
.filters,.billing-filters{border-color:var(--axis-border);box-shadow:var(--axis-shadow);padding:20px!important;gap:16px!important}
.filter-actions{display:flex;gap:9px;align-items:end}.filter-actions>*{min-width:92px}
.form-card{box-shadow:var(--axis-shadow)}
.metric{position:relative;overflow:hidden}.metric::after{content:"";position:absolute;right:-26px;bottom:-35px;width:95px;height:95px;border-radius:50%;background:radial-gradient(circle,rgba(116,183,232,.12),transparent 70%);pointer-events:none}
.metric strong{color:#17263d}.metric span{line-height:1.35}
.list>a,.list-row,.balance-row{padding:17px 19px}.list>a{transition:background-color .14s ease,padding-left .14s ease}.list>a:hover{background:#f7fafd;padding-left:22px}
.communication-card{padding:22px;box-shadow:var(--axis-shadow)}
.communication-head>div{min-width:0}.communication-head h2{margin:5px 0 7px}.communication-head p{line-height:1.45}
.communication-form textarea{padding:14px;line-height:1.5}.communication-actions{gap:10px;margin-top:2px}
.info-banner{padding:18px 20px;line-height:1.55;background:linear-gradient(135deg,#f7fbff,#f2f7fc);border-color:#cbdceb}

/* Selector de vistas del calendario */
.calendar-view-switch{display:inline-flex;align-items:center;padding:4px;border:1px solid var(--axis-border);border-radius:12px;background:#f5f8fb;gap:3px}
.calendar-view-switch a{padding:8px 13px;border-radius:9px;color:var(--axis-muted);font-size:13px;font-weight:750;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}
.calendar-view-switch a:hover{color:#274f77;background:#e9f2fb}.calendar-view-switch a.active{background:#fff;color:#182c47;box-shadow:0 4px 12px rgba(22,40,66,.09)}
.calendar-toolbar{padding:16px 18px;box-shadow:var(--axis-shadow);margin-bottom:20px}.calendar-navigation{align-items:center}.calendar-date-form{align-items:center}
.calendar-month-help{margin:2px 2px 14px;padding:0 2px}.calendar-month-help strong{font-size:16px}.calendar-month-help span{line-height:1.45}

/* Calendario mensual tradicional */
body .calendar-traditional{display:block;width:100%;overflow:hidden}
body .calendar-weekdays{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:10px;margin-bottom:10px}
body .calendar-weekdays span{min-height:38px;border-radius:10px;background:#e9eef5;color:#44546a;font-size:12px;font-weight:800;text-transform:none;letter-spacing:0}
body .calendar-weekdays em{font-style:normal}
body .calendar-square-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:10px!important;width:100%}
body .calendar-square-day{
  display:flex!important;flex-direction:column!important;aspect-ratio:1/1!important;min-width:0!important;min-height:118px!important;padding:13px!important;
  border:1px solid var(--axis-border)!important;border-radius:16px!important;background:#fff!important;overflow:hidden;
  transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease,background-color .17s ease;
}
body .calendar-square-day:hover{transform:translateY(-3px);box-shadow:var(--axis-shadow-hover);border-color:#8eb3d6!important;background:#fbfdff!important}
body .calendar-square-day.outside-month{opacity:.38;background:#f7f8fa!important}
body .calendar-square-day.is-today{border-color:#4786c1!important;box-shadow:0 0 0 3px rgba(61,120,181,.14),var(--axis-shadow)}
body .calendar-square-day.has-closure{background:#fff8f2!important;border-color:#e7bda7!important}
.calendar-square-heading{min-height:29px}.calendar-square-heading strong{font-size:23px;letter-spacing:-.04em;color:#17263d}.calendar-square-heading span{background:#dcecff;color:#285d8c;padding:4px 8px}
.calendar-square-content{gap:6px}.calendar-square-label{min-height:25px;padding:6px 8px;font-size:10.5px;border:1px solid transparent}.calendar-square-label strong{font-size:11px}.calendar-square-label:not(.closure):not(.workshop):not(.entry){background:#edf4fb;color:#315d85;border-color:#dbe9f6}.calendar-square-label.workshop{background:#f8eef7;color:#724b6c}.calendar-square-label.entry{background:#fff6df;color:#755816}.calendar-square-label.closure{background:#ffede2;color:#874b31}.calendar-square-empty{font-size:11px;color:#8994a3}

/* Programa diario */
.calendar-day-actions{gap:10px}.calendar-day-actions .secondary{background:#fff}
.calendar-room-column{padding:4px}.calendar-room-heading{padding:0 6px 4px}.calendar-room-heading h3{font-size:17px}
.calendar-program-card{box-shadow:0 5px 15px rgba(19,36,59,.06)}.calendar-program-card:hover{box-shadow:0 9px 24px rgba(19,36,59,.1)}
.calendar-program-card-top{gap:15px;padding:18px!important}.calendar-program-main h3{font-size:17px}.calendar-program-main p{line-height:1.5}
.calendar-add-card{box-shadow:var(--axis-shadow)}.calendar-add-card>summary{padding:20px!important}.calendar-add-card>summary strong{font-size:17px}.calendar-add-card>summary span{display:block;margin-top:4px;line-height:1.4}

/* Profesores */
.teacher-month-navigation{padding:15px 18px;box-shadow:var(--axis-shadow);margin-bottom:22px}.teacher-month-navigation strong{font-size:18px;text-transform:capitalize;color:#1b2d47}
.month-picker-inline{padding:0}.month-picker-inline input{min-width:170px}
.teacher-card-grid{gap:18px}.teacher-summary-card{position:relative;padding:22px;gap:20px;box-shadow:var(--axis-shadow);overflow:hidden}
.teacher-summary-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#69a9de,#345f8c)}
.teacher-summary-card:hover{transform:translateY(-3px);border-color:#8eb0d1;box-shadow:var(--axis-shadow-hover)}
.teacher-summary-heading{gap:14px}.teacher-summary-heading>div{gap:5px}.teacher-summary-heading strong{font-size:19px}.teacher-summary-heading span{display:block;color:var(--axis-muted);font-size:12px}
.teacher-avatar{width:54px;height:54px;background:linear-gradient(145deg,#e9f2fb,#dce9f6);color:#2f5d88;box-shadow:inset 0 0 0 1px #cadceb}
.teacher-summary-stats{gap:10px}.teacher-summary-stats span{padding:12px 13px;border:1px solid #e4eaf0;background:#f7f9fc;font-size:12px;line-height:1.35}.teacher-summary-stats strong{font-size:20px}.teacher-open{padding-top:3px;font-size:13px;color:#2d6192}
.teacher-metrics{gap:14px}

/* Ficha de persona */
.person-overview{display:flex;align-items:center;gap:18px;padding:18px 20px;margin-bottom:18px;background:linear-gradient(135deg,#fff,#f7fafe);box-shadow:var(--axis-shadow)}
.person-overview-copy{display:grid;gap:9px;min-width:0}.person-overview-copy p{margin:0;color:var(--axis-muted);font-size:13px;line-height:1.45}.person-overview-badges{display:flex;flex-wrap:wrap;gap:7px}
.person-avatar-profile{width:76px;height:76px;font-size:21px;border:3px solid #fff;box-shadow:0 5px 16px rgba(32,65,99,.16)}
.detail-grid{gap:18px}.detail-card{box-shadow:var(--axis-shadow)}.detail-card h2{font-size:17px}.detail-card dl{gap:12px 16px}.detail-card dt{line-height:1.4}.detail-card dd{line-height:1.4;overflow-wrap:anywhere}

/* Formularios y tablas económicas */
.billing-filters{grid-template-columns:minmax(250px,1.35fr) 170px 175px minmax(190px,1fr) 180px auto!important}.billing-filters label{gap:9px!important}.billing-filters .filter-actions{padding-bottom:1px}
.person-picker-control{gap:9px}.person-picker-results{border-radius:12px;box-shadow:var(--axis-shadow-hover)}
.compact-form{gap:8px!important}.compact-form select,.compact-form input,.compact-form button{min-height:40px}

/* Tarjetas y enlaces interactivos */
a.card,.teacher-summary-card,.calendar-square-day,.workshop-card{will-change:transform}
.workshop-card{box-shadow:var(--axis-shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.workshop-card:hover{transform:translateY(-2px);box-shadow:var(--axis-shadow-hover);border-color:#9cb9d5}

@media(max-width:1250px){
  .teacher-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .billing-filters{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:900px){
  body .calendar-square-grid{gap:6px!important}body .calendar-weekdays{gap:6px}
  body .calendar-square-day{padding:9px!important;min-height:96px!important;border-radius:12px!important}
  .calendar-square-heading strong{font-size:19px}.calendar-square-label{font-size:9px;padding:5px 6px}.calendar-square-label strong{font-size:9.5px}
  .teacher-card-grid{grid-template-columns:1fr}.billing-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .topbar{align-items:flex-start}.topbar-actions{overflow:visible;max-width:none;flex-wrap:wrap;justify-content:flex-end}
  .calendar-view-switch a{padding:7px 10px;font-size:12px}
  .calendar-toolbar{display:grid;gap:12px}.calendar-navigation,.calendar-date-form{width:100%}.calendar-navigation a{flex:1}.calendar-date-form{display:grid;grid-template-columns:1fr auto}
  body .calendar-weekdays{gap:3px;margin-bottom:4px}.calendar-weekdays span{min-height:28px!important;padding:3px 0!important;background:transparent!important;font-size:10px!important}
  body .calendar-square-grid{gap:3px!important}.calendar-square-day{aspect-ratio:1/1!important;min-height:0!important;padding:5px!important;border-radius:8px!important}
  .calendar-square-heading{min-height:18px}.calendar-square-heading strong{font-size:14px}.calendar-square-heading span{display:none}.calendar-square-content{display:none!important}.calendar-square-dots{display:flex!important;gap:2px;margin-top:auto}.calendar-square-dots i{width:4px;height:4px}
  .teacher-month-navigation{display:grid;grid-template-columns:1fr 1fr;gap:9px}.teacher-month-navigation strong{grid-column:1/-1;grid-row:1;text-align:center}.teacher-month-navigation a{width:100%}
  .teacher-summary-card{padding:19px}.teacher-summary-stats{grid-template-columns:1fr 1fr}.teacher-metrics{grid-template-columns:1fr 1fr}
  .person-overview{align-items:flex-start;padding:16px}.person-avatar-profile{width:64px;height:64px}
  .billing-filters{grid-template-columns:1fr!important}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.filter-actions>*{width:100%}
  .communication-card{padding:17px}.communication-actions{display:grid;grid-template-columns:1fr}.communication-actions>*{width:100%}
  th,td{padding:8px 0}.table-card tr{padding:15px 16px}.table-card td{padding:7px 0}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
.teacher-summary-heading .teacher-avatar{display:grid;place-items:center;font-size:15px;color:#2f5d88;line-height:1}
@media(max-width:760px){
  .topbar{flex-wrap:wrap}
  .topbar-actions{width:100%;margin-left:0;justify-content:flex-start}
  .month-picker-inline{width:100%;grid-template-columns:minmax(0,1fr) auto}
  .calendar-view-switch{width:max-content}
}

/* Axis Core v0.2.9.1: acciones y apertura de editores del calendario. */
.calendar-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}
.calendar-card-actions .calendar-open-button{white-space:nowrap}
.calendar-day-actions button{font:inherit;cursor:pointer}
.calendar-add-card:target,.calendar-card-editor:target{outline:3px solid rgba(37,99,235,.2);outline-offset:4px}
@media(max-width:760px){
  .calendar-day-actions :is(a,button){width:100%;justify-content:center}
  .calendar-card-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));width:100%}
  .calendar-card-actions .calendar-open-button{width:100%}
}

/* Axis Core v0.3.0: usuarios, permisos y seguridad de acceso. */
.nav-section-label{display:block;margin:18px 14px 7px;color:rgba(255,255,255,.48);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.sidebar-account-link{display:inline-flex;margin-top:8px;color:rgba(255,255,255,.72);font-size:12px;text-decoration:none}.sidebar-account-link:hover{color:#fff}
.users-intro-card{padding:19px 21px;margin-bottom:16px;display:flex;justify-content:space-between;gap:22px;align-items:center}.users-intro-card p{margin:5px 0 0;max-width:760px;color:var(--muted);line-height:1.55}.users-role-legend{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.users-filters{padding:17px;display:grid;grid-template-columns:minmax(230px,1.4fr) 180px 180px auto;gap:13px;align-items:end;margin-bottom:18px}.users-filters label{display:grid;gap:7px;font-size:13px;font-weight:750;color:var(--muted)}
.user-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.user-admin-card{padding:20px;display:grid;gap:17px}.user-admin-card.is-disabled{opacity:.76;background:#fafbfc}.user-admin-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center}.user-admin-heading h2{font-size:18px;margin:0 0 3px}.user-admin-heading a{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.user-admin-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.user-admin-meta>div{padding:11px 12px;border-radius:11px;background:var(--surface2);display:grid;gap:4px}.user-admin-meta span{font-size:11px;color:var(--muted)}.user-admin-meta strong{font-size:13px}.user-security-note{padding:10px 12px;border-radius:10px;background:#fff5df;color:#7c5516;font-size:12px;font-weight:750}.user-admin-footer{padding-top:13px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}.user-admin-footer small{color:var(--muted)}
.user-status-strip{padding:16px 19px;margin-bottom:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.user-status-strip>div{display:grid;gap:4px}.user-status-strip span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.user-status-strip strong{font-size:14px;overflow-wrap:anywhere}
.user-admin-form{display:grid;gap:16px}.user-account-card,.user-permissions-card{padding:21px}.compact-header{margin:0 0 18px}.compact-header h2{margin:0}.user-main-fields,.user-password-fields{gap:14px}.user-password-fields{margin-top:14px}.user-account-checks{margin-top:17px}
.permission-presets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.permission-preset-help{margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.5}.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.permission-group-card{margin:0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)}.permission-group-card legend{padding:0 7px;font-weight:800;color:var(--text)}.permission-list{display:grid;gap:8px}.permission-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:10px 11px;border-radius:10px;background:#fff;border:1px solid transparent;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.permission-option:hover{transform:translateY(-1px);border-color:#a9bed6;box-shadow:0 5px 14px rgba(35,58,88,.06)}.permission-option input{margin-top:3px}.permission-option span{display:grid;gap:3px}.permission-option strong{font-size:13px;line-height:1.35}.permission-option small{font-size:10px;color:var(--muted)}.permission-option:has(input:checked){border-color:#8eb0d4;background:#f5f9fd}.owner-permissions-message{padding:13px 15px;margin-top:14px;border-radius:11px;background:#eaf2fb;color:#274f78;font-weight:700}
.sticky-form-actions{position:sticky;bottom:12px;z-index:15;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(9px);box-shadow:0 10px 28px rgba(18,37,61,.12);display:flex;justify-content:flex-end;gap:9px}.user-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:19px}.user-security-grid .detail-card{padding:20px}.user-security-grid h2{margin-top:0}.user-security-grid p{color:var(--muted);line-height:1.5}.notice-banner{padding:12px 14px;border-radius:11px;background:#fff5df;color:#754e11;font-weight:700;margin-bottom:14px}.password-change-card{max-width:620px;padding:22px}.user-audit-card{padding:20px;margin-top:17px}.audit-timeline{display:grid}.audit-entry{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.audit-entry:last-child{border-bottom:0}.audit-dot{width:9px;height:9px;border-radius:50%;background:#4f82b8;margin-top:5px;box-shadow:0 0 0 4px #eaf2fa}.audit-entry div{display:grid;gap:3px}.audit-entry span{font-size:12px;color:var(--muted)}
.role-owner{background:#e9efff;color:#2d4b8a}.role-admin{background:#edf5ec;color:#356b3d}.role-teacher{background:#f5eefc;color:#6c438b}.role-student{background:#eef5f8;color:#3d6675}
@media(max-width:1050px){.user-admin-grid{grid-template-columns:1fr}.users-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-groups{grid-template-columns:1fr}.user-status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.users-intro-card{display:grid;padding:17px}.users-role-legend{justify-content:flex-start}.users-filters{grid-template-columns:1fr}.user-admin-heading{grid-template-columns:auto minmax(0,1fr)}.user-admin-heading>.badge{grid-column:1/-1;width:max-content}.user-admin-meta{grid-template-columns:1fr 1fr}.user-admin-footer{align-items:flex-start;display:grid}.user-admin-footer .secondary{width:100%}.permission-presets{display:grid;grid-template-columns:1fr 1fr}.permission-presets button{width:100%}.user-security-grid{grid-template-columns:1fr}.sticky-form-actions{bottom:7px}.user-status-strip{grid-template-columns:1fr 1fr}.permission-group-card{padding:13px}.permission-option{padding:11px}.password-change-card{padding:18px}}
@media(max-width:430px){.user-admin-meta,.user-status-strip{grid-template-columns:1fr}.permission-presets{grid-template-columns:1fr}}

/* Axis Core v0.3.1: accesos del alumnado, sesiones e informes de uso */
.access-metrics{margin-bottom:16px}.student-access-filters{grid-template-columns:minmax(260px,1fr) 240px auto}.student-access-list{display:grid;gap:11px}.student-access-card{padding:16px 18px;display:grid;grid-template-columns:minmax(280px,1fr) minmax(210px,.45fr) auto;gap:18px;align-items:center}.student-access-person{display:flex;align-items:center;gap:13px;min-width:0}.student-access-person h2{font-size:17px;margin:0 0 4px}.student-access-person p{margin:0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.student-access-state{display:grid;gap:6px;justify-items:start}.student-access-state small{color:var(--muted)}.access-state-without{background:#eef1f5;color:#445064}.access-state-pending{background:#fff5df;color:#885b12}.access-state-active{background:#eaf6ee;color:#286344}.access-state-blocked{background:#fff0f0;color:#933}.student-access-summary{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.access-create-card{max-width:820px}.access-management-grid{margin-bottom:16px}.person-access-card{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px}.person-access-card h2{margin:4px 0;font-size:18px}.person-access-card p{margin:0;color:var(--muted)}
.session-access-list{display:grid;gap:8px}.session-access-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.session-access-row:last-child{border-bottom:0}.session-access-row>div{display:grid;gap:3px;min-width:0}.session-access-row span,.session-access-row small{color:var(--muted);overflow-wrap:anywhere}.compact-empty{padding:14px}.access-log-list{display:grid}.access-log-row{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.access-log-row:last-child{border-bottom:0}.access-log-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:#7a8ba5}.access-log-row.is-success .access-log-dot{background:#4d8a67}.access-log-row.is-failed .access-log-dot{background:#c64444}.access-log-row>div{display:grid;gap:3px}.access-log-row span,.access-log-row small{color:var(--muted);overflow-wrap:anywhere}.compact-access-log-list{max-height:430px;overflow:auto;padding-right:4px}
.usage-metrics{margin-bottom:18px}.usage-report-grid{margin-bottom:18px}.usage-review-card{margin-top:18px}.report-navigation-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.report-navigation-card{padding:18px;display:grid;gap:7px}.report-navigation-card h2{margin:0}.report-navigation-card p{margin:0;color:var(--muted)}
@media(max-width:1000px){.student-access-card{grid-template-columns:1fr auto}.student-access-state{grid-column:1/2}.student-access-card>.secondary{grid-column:2;grid-row:1/3}.student-access-filters{grid-template-columns:1fr 1fr}.student-access-filters .filter-actions{grid-column:1/-1}.access-management-grid{grid-template-columns:1fr}}
@media(max-width:760px){.student-access-filters{grid-template-columns:1fr}.student-access-filters .filter-actions{grid-column:auto}.student-access-card{grid-template-columns:1fr;padding:15px}.student-access-state,.student-access-card>.secondary{grid-column:auto;grid-row:auto}.student-access-card>.secondary{width:100%}.student-access-summary{display:grid}.person-access-card{display:grid}.person-access-card .secondary{width:100%}.session-access-row{grid-template-columns:1fr}.session-access-row form,.session-access-row button{width:100%}.report-navigation-cards{grid-template-columns:1fr}}


/* Axis Core v0.3.1.2 — identidad Alameda y rediseño del área del alumno */
:root{
  --alameda-pink:#ff629b;
  --alameda-pink-hover:#ff2f7b;
  --alameda-red:#ff5757;
  --alameda-purple:#764aff;
  --alameda-dark:#424554;
  --alameda-gradient:linear-gradient(137deg,#ff5757 0%,#764aff 100%);
  --primary:#8a4bd8;
  --primary2:#6f3ec2;
  --bg:#f7f6fa;
  --border:#e7e2ec;
  --radius:16px;
}
body{font-family:Montserrat,"Segoe UI",system-ui,-apple-system,sans-serif;background:var(--bg)}
.sidebar{background:var(--alameda-dark)}
.brand-mark{background:var(--alameda-gradient);color:#fff;box-shadow:0 8px 22px rgba(118,74,255,.28)}
.nav-item{padding:13px 15px}
.nav-item:hover{background:rgba(255,255,255,.09);transform:translateX(2px)}
.nav-item.active{background:var(--alameda-gradient);box-shadow:0 8px 20px rgba(92,55,175,.24)}
.primary{background:var(--alameda-gradient);border:0;box-shadow:0 7px 18px rgba(118,74,255,.20)}
.primary:hover{background:linear-gradient(137deg,#ff4388 0%,#663be0 100%);transform:translateY(-1px);box-shadow:0 10px 23px rgba(118,74,255,.28)}
.primary:active,.secondary:active,.ghost:active,.danger:active{transform:translateY(1px)}
.primary,.secondary,.ghost,.danger,.nav-item,.card{transition:transform .17s ease,box-shadow .17s ease,background-color .17s ease,border-color .17s ease}
.card:hover{border-color:#dbd1e7}
input,select,textarea{padding:12px 14px;border-radius:11px;min-height:44px}
textarea{min-height:auto}
label{gap:8px;line-height:1.35}
th,td{padding:16px 18px}
.form-card{padding:24px}.form-grid{gap:18px}.form-actions{gap:11px}.person-save-actions{margin-top:25px}.top-save-button{min-width:150px}
.login-body{background:linear-gradient(145deg,rgba(255,87,87,.10),rgba(118,74,255,.13)),#f7f5fa}
.login-card{border:0;box-shadow:0 24px 65px rgba(66,69,84,.16)}
.login-card:before{content:"";display:block;height:7px;margin:-28px -28px 25px;border-radius:18px 18px 0 0;background:var(--alameda-gradient)}

/* Portal del alumno */
.student-app-shell{grid-template-columns:225px minmax(0,1fr)}
.student-sidebar{background:linear-gradient(180deg,#424554 0%,#333541 100%)}
.student-sidebar .brand{padding-bottom:30px}.student-sidebar .nav-item{font-size:15px}
.student-portal-body .topbar{background:rgba(255,255,255,.96);border-bottom-color:#eee8f3}
.student-portal-body .view{padding-top:28px}
.student-top-contact{display:inline-flex;align-items:center;justify-content:center;padding:10px 15px;border-radius:999px;color:#fff;background:var(--alameda-gradient);font-size:13px;font-weight:800;box-shadow:0 7px 18px rgba(118,74,255,.18)}
.student-dashboard{max-width:1120px;margin:0 auto;display:grid;gap:30px}
.student-hero{position:relative;overflow:hidden;min-height:220px;padding:35px 38px;border-radius:28px;color:#fff;background:var(--alameda-gradient);box-shadow:0 24px 55px rgba(107,64,205,.22);display:flex;align-items:center;justify-content:space-between;gap:30px}
.student-hero:before,.student-hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.11)}
.student-hero:before{width:250px;height:250px;right:-75px;top:-100px}.student-hero:after{width:140px;height:140px;right:130px;bottom:-90px}
.student-hero>div{position:relative;z-index:1}.student-hero h2{max-width:650px;margin:7px 0 10px;font-size:34px;line-height:1.12}.student-hero p{max-width:650px;margin:0;color:rgba(255,255,255,.90);font-size:17px;line-height:1.55}
.student-hero-mark{width:90px;height:90px;flex:0 0 90px;border-radius:26px;display:grid;place-items:center;font-size:44px;font-weight:900;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px)}
.student-kicker{display:block;color:var(--alameda-pink);font-size:12px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.student-hero .student-kicker{color:#fff}
.student-section{scroll-margin-top:105px}.student-section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.student-section-heading h2{margin:4px 0 0;font-size:24px}
.student-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.student-group-card{position:relative;overflow:hidden;display:grid;grid-template-columns:8px minmax(0,1fr);background:#fff;border:1px solid var(--border);border-radius:19px;box-shadow:0 9px 25px rgba(66,69,84,.06)}.student-group-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(66,69,84,.10)}
.student-activity-accent{background:var(--alameda-gradient)}.activity-mat .student-activity-accent,.activity-mat.student-next-session{--activity-gradient:linear-gradient(90deg,#009EFD 0%,#2AF598 100%)}.activity-equipment .student-activity-accent,.activity-equipment.student-next-session{--activity-gradient:linear-gradient(90deg,#F43B47 0%,#453A94 100%)}.activity-barre .student-activity-accent,.activity-barre.student-next-session{--activity-gradient:linear-gradient(90deg,#21D4FD 0%,#B721FF 100%)}.activity-private .student-activity-accent,.activity-private.student-next-session{--activity-gradient:linear-gradient(90deg,#AC32E4 0%,#7918F2 48%,#4801FF 100%)}.activity-duo .student-activity-accent,.activity-duo.student-next-session{--activity-gradient:linear-gradient(90deg,#FF9944 0%,#FC6076 100%)}.activity-electro .student-activity-accent,.activity-electro.student-next-session{--activity-gradient:linear-gradient(90deg,#56317A 0%,#3D99BE 69%,#3AB5B0 100%)}.activity-power .student-activity-accent,.activity-power.student-next-session{--activity-gradient:linear-gradient(90deg,#68E0CF 0%,#209CFF 100%)}.activity-hypo .student-activity-accent,.activity-hypo.student-next-session{--activity-gradient:linear-gradient(90deg,#C2E59C 0%,#64B3F4 100%)}
.student-group-card .student-activity-accent{background:var(--activity-gradient,var(--alameda-gradient))}.student-group-content{padding:21px 22px}.student-activity-label{color:var(--alameda-pink-hover);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.student-group-content h3{margin:6px 0 17px;font-size:20px}.student-group-content dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.student-group-content dl>div{padding:10px 12px;border-radius:12px;background:#faf8fc}.student-group-content dt{color:var(--muted);font-size:11px}.student-group-content dd{margin:3px 0 0;font-size:13px;font-weight:800}
.student-next-session{--activity-gradient:var(--alameda-gradient);position:relative;overflow:hidden;display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:22px;padding:23px;border:1px solid var(--border);border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(66,69,84,.08)}.student-next-session:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--activity-gradient)}.student-next-date{width:74px;height:82px;border-radius:18px;background:#f8f5fb;display:grid;place-items:center;align-content:center}.student-next-date span,.student-next-date small{font-size:11px;text-transform:uppercase;color:var(--muted)}.student-next-date strong{font-size:30px;line-height:1}.student-next-main h3{margin:6px 0 4px;font-size:23px}.student-next-main p{margin:0;color:var(--muted)}.student-absence-button{border:0;border-radius:13px;padding:13px 17px;background:#fff0f4;color:#a82458;font-weight:850}.student-absence-button:hover{background:#ffe3ec;transform:translateY(-1px)}
.student-upcoming-details{margin-top:13px;padding:0;border:1px solid var(--border);border-radius:15px;background:#fff}.student-upcoming-details summary{cursor:pointer;padding:15px 18px;font-weight:800;color:#5e467f}.student-upcoming-list{border-top:1px solid var(--border)}.student-upcoming-list>div{padding:13px 18px;display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--border)}.student-upcoming-list>div:last-child{border-bottom:0}.student-upcoming-list span{color:var(--muted);font-size:13px}
.student-empty-soft{display:grid;gap:5px;padding:22px;border:1px dashed #d7cce2;border-radius:17px;background:#fbf9fc;color:#554d5d}.student-empty-soft span{color:var(--muted)}
.student-management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.student-management-card{display:grid;gap:5px;padding:19px;border-radius:18px;color:#fff;box-shadow:0 12px 28px rgba(66,69,84,.10)}.student-management-card span{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;opacity:.85}.student-management-card strong{font-size:18px}.student-management-card p{margin:0;line-height:1.45;color:rgba(255,255,255,.90)}.bonus-card{background:linear-gradient(137deg,#AC32E4 0%,#4801FF 100%)}.recovery-card{background:linear-gradient(137deg,#009EFD 0%,#2AF598 100%)}.payment-card{background:linear-gradient(137deg,#FF9944 0%,#FC6076 100%)}
.student-workshop-grid{display:grid;gap:10px}.student-workshop-card{padding:17px 19px;border:1px solid var(--border);border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px}.student-workshop-card>div{display:grid;gap:4px}.student-workshop-card>div>span,.student-workshop-card small{color:var(--muted);font-size:12px}.student-workshop-card strong{font-size:16px}.student-workshop-help{margin:10px 0 0;color:var(--muted);font-size:13px}
.student-contact-card{scroll-margin-top:105px;padding:29px 31px;border-radius:24px;background:#424554;color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;box-shadow:0 18px 42px rgba(66,69,84,.18)}.student-contact-card h2{margin:5px 0 8px;font-size:25px}.student-contact-card p{margin:0;color:#d9d9dc;line-height:1.5}.student-contact-data{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:16px;color:#fff;font-size:13px}.student-contact-actions{display:grid;gap:10px;min-width:215px}.student-call-button,.student-whatsapp-button{display:flex;justify-content:center;padding:13px 17px;border-radius:13px;font-weight:850}.student-call-button{background:var(--alameda-gradient);color:#fff}.student-whatsapp-button{background:#23cf5f;color:#fff}.student-call-button:hover,.student-whatsapp-button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(0,0,0,.18)}
.student-mobile-nav{display:none}

@media(max-width:900px){.student-group-grid{grid-template-columns:1fr}.student-management-grid{grid-template-columns:1fr 1fr}.student-next-session{grid-template-columns:78px minmax(0,1fr)}.student-next-session form{grid-column:1/-1}.student-absence-button{width:100%}.student-contact-card{grid-template-columns:1fr}.student-contact-actions{grid-template-columns:1fr 1fr;min-width:0}}
@media(max-width:760px){
  .student-portal-body .sidebar{display:none}.student-portal-body .menu-button{display:none}.student-portal-body .main{padding-bottom:78px}.student-portal-body .topbar{min-height:76px;padding:14px 18px}.student-portal-body .topbar-actions{display:none}.student-portal-body .view{padding:18px 15px 35px}.student-dashboard{gap:25px}.student-hero{min-height:0;padding:27px 23px;border-radius:22px}.student-hero h2{font-size:27px}.student-hero p{font-size:15px}.student-hero-mark{display:none}.student-section-heading h2{font-size:21px}.student-group-content{padding:18px}.student-group-content h3{font-size:18px}.student-group-content dl{grid-template-columns:1fr}.student-next-session{grid-template-columns:67px minmax(0,1fr);gap:14px;padding:20px 17px}.student-next-date{width:58px;height:70px}.student-next-date strong{font-size:25px}.student-next-main h3{font-size:19px}.student-upcoming-list>div{display:grid}.student-management-grid{grid-template-columns:1fr}.student-workshop-card{align-items:flex-start}.student-contact-card{padding:24px 21px}.student-contact-actions{grid-template-columns:1fr}.student-mobile-nav{position:fixed;left:8px;right:8px;bottom:8px;z-index:70;display:grid;grid-template-columns:repeat(4,1fr);padding:7px;border:1px solid rgba(255,255,255,.55);border-radius:18px;background:rgba(66,69,84,.94);box-shadow:0 14px 35px rgba(33,34,42,.28);backdrop-filter:blur(13px)}.student-mobile-nav a{display:grid;place-items:center;min-height:45px;padding:5px;color:#fff;font-size:11px;font-weight:750;border-radius:12px}.student-mobile-nav a:first-child{background:var(--alameda-gradient)}.top-save-button{min-width:0;padding:10px 12px;font-size:12px}
}
@media(max-width:430px){.student-contact-data{display:grid}.student-hero h2{font-size:24px}.student-group-content dl{grid-template-columns:1fr}.student-workshop-card{display:grid}.top-save-button{font-size:0}.top-save-button:after{content:"Guardar";font-size:12px}}
@media(prefers-reduced-motion:reduce){.primary,.secondary,.ghost,.danger,.nav-item,.card,.student-group-card,.student-call-button,.student-whatsapp-button{transition:none!important;transform:none!important}}


/* Axis Core v0.3.1.3: acceso corporativo y talleres unificados */
.login-body{
  position:relative;min-height:100vh;padding:28px;display:grid;place-items:center;overflow-x:hidden;
  background:linear-gradient(137deg,#FF5757 0%,#d84e88 38%,#9b4de0 70%,#764AFF 100%);
}
.login-body:before,.login-body:after{content:"";position:fixed;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.10);filter:blur(.2px)}
.login-body:before{width:430px;height:430px;left:-165px;top:-165px}.login-body:after{width:520px;height:520px;right:-230px;bottom:-250px}
.login-shell{position:relative;z-index:1;width:min(1080px,100%);min-height:620px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid rgba(255,255,255,.38);border-radius:31px;background:#fff;box-shadow:0 34px 90px rgba(51,35,81,.30)}
.login-visual{position:relative;overflow:hidden;padding:48px 50px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(137deg,#FF5757 0%,#d34e91 40%,#9a4edc 72%,#764AFF 100%)}
.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.11)}
.login-visual:before{width:360px;height:360px;right:-140px;top:-115px}.login-visual:after{width:230px;height:230px;left:-90px;bottom:-100px}
.login-brand,.login-visual-copy,.login-visual-note{position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:13px}.login-brand .brand-mark{width:48px;height:48px;border-radius:15px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);box-shadow:none;backdrop-filter:blur(9px)}
.login-brand strong{display:block;font-size:22px}.login-brand small{display:block;margin-top:2px;color:rgba(255,255,255,.82);font-size:12px}
.login-visual-copy{max-width:500px}.login-visual-copy span{display:inline-block;margin-bottom:14px;font-size:12px;font-weight:900;letter-spacing:.10em;text-transform:uppercase}.login-visual-copy h1{margin:0 0 18px;font-size:47px;line-height:1.06;letter-spacing:-.035em}.login-visual-copy p{max-width:470px;margin:0;color:rgba(255,255,255,.88);font-size:17px;line-height:1.65}
.login-visual-note{display:flex;gap:9px;align-items:center;color:rgba(255,255,255,.86);font-size:13px}.login-visual-note:before{content:"";width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.13)}
.login-panel{padding:48px 46px;display:grid;place-items:center;background:linear-gradient(180deg,#fff 0%,#fcf9fd 100%)}
.login-form-card{width:min(390px,100%)}.login-mobile-brand{display:none}.login-form-card .login-kicker{display:block;margin-bottom:9px;color:var(--alameda-pink-hover);font-size:12px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.login-form-card h2{margin:0 0 10px;font-size:31px;line-height:1.15}.login-form-card>p{margin:0 0 27px;color:var(--muted);line-height:1.55}.login-form-card .form-stack{gap:16px}.login-form-card label{font-size:13px}.login-form-card input{min-height:49px;border-color:#ddd5e5;background:#fff}.login-form-card input:focus{outline:0;border-color:#a65be4;box-shadow:0 0 0 4px rgba(166,91,228,.12)}.login-form-card .primary{min-height:50px;margin-top:3px;font-size:15px}.login-help{margin-top:22px;padding-top:19px;border-top:1px solid #ece5f0;color:var(--muted);font-size:12px;line-height:1.5}
.login-card{border:0;box-shadow:none}.login-card:before{display:none}
.password-change-card{position:relative;overflow:hidden;max-width:680px;padding:26px}.password-change-card:before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:var(--alameda-gradient)}
.student-workshop-card{position:relative;overflow:hidden}.student-workshop-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--alameda-gradient)}.student-workshop-card>div{padding-left:5px}.student-workshop-state{display:grid;justify-items:end;gap:6px}.student-workshop-state small{max-width:190px;text-align:right;line-height:1.35}.student-workshop-card .badge.confirmed{background:#eaf7ef;color:#23633f}.student-workshop-card .badge.waiting{background:#fff3dd;color:#815814}.student-workshop-card .badge.available{background:#f2ebff;color:#673aa6}
@media(max-width:800px){.login-body{padding:16px}.login-shell{min-height:0;grid-template-columns:1fr;border-radius:24px}.login-visual{min-height:255px;padding:30px 27px}.login-visual-copy h1{font-size:33px}.login-visual-copy p{font-size:15px}.login-visual-note{display:none}.login-panel{padding:33px 26px 38px}.login-form-card h2{font-size:27px}}
@media(max-width:520px){.login-body{padding:0;background:#fff}.login-shell{width:100%;border:0;border-radius:0;box-shadow:none}.login-visual{min-height:215px;padding:25px 22px}.login-brand .brand-mark{width:42px;height:42px}.login-visual-copy span{margin-bottom:8px}.login-visual-copy h1{font-size:29px;margin-bottom:11px}.login-visual-copy p{font-size:14px;line-height:1.5}.login-panel{padding:30px 22px 36px}.student-workshop-state{justify-items:start}.student-workshop-state small{text-align:left}}

/* Axis Core v0.3.2: ficha como centro de gestión */
.section-manage-button{min-width:96px;justify-content:center}.person-manager-open{overflow:hidden}.person-manager-backdrop{position:fixed;inset:0;z-index:110;background:rgba(33,27,41,.42);backdrop-filter:blur(3px);animation:axis-fade-in .18s ease-out}.person-manager-panel{position:fixed;z-index:120;top:0;right:0;bottom:0;width:min(640px,55vw);display:grid;grid-template-rows:auto minmax(0,1fr);background:#fbf9fc;border-left:1px solid rgba(118,74,255,.18);box-shadow:-28px 0 70px rgba(43,31,59,.25);animation:axis-panel-in .23s ease-out}.person-manager-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 27px 21px;color:#fff;background:linear-gradient(137deg,#FF5757 0%,#d64d8a 40%,#9c4dde 72%,#764AFF 100%)}.person-manager-header .eyebrow{color:rgba(255,255,255,.82)}.person-manager-header h2{margin:5px 0 0;font-size:25px;color:#fff}.person-manager-close{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:30px;line-height:1}.person-manager-close:hover{background:rgba(255,255,255,.25)}.person-manager-body{overflow-y:auto;padding:24px 27px 38px;overscroll-behavior:contain}.manager-stack{display:grid;gap:18px}.manager-summary{display:flex;align-items:baseline;gap:9px;padding:16px 18px;border-radius:16px;background:#424554;color:#fff}.manager-summary strong{font-size:25px}.manager-summary span{color:#d9d9dc}.manager-action,.manager-record,.manager-approval-box{border:1px solid #e5ddea;border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(66,69,84,.06)}.manager-action>summary,.manager-record>details>summary{cursor:pointer;list-style:none;font-weight:850}.manager-action>summary::-webkit-details-marker,.manager-record>details>summary::-webkit-details-marker{display:none}.manager-action>summary{position:relative;padding:18px 50px 18px 19px}.manager-action>summary:after,.manager-record>details>summary:after{content:"+";position:absolute;right:19px;font-size:22px;color:#8d49d7}.manager-action[open]>summary:after,.manager-record>details[open]>summary:after{content:"−"}.manager-action[open]>summary{border-bottom:1px solid #eee8f1}.manager-form{display:grid;gap:14px;padding:19px}.manager-form.compact{padding:14px 0 2px}.manager-form label,.manager-inline-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#4e4655}.manager-form input,.manager-form select,.manager-form textarea,.manager-inline-form input,.manager-inline-form select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #ddd4e3;border-radius:11px;background:#fff;font:inherit;color:var(--text)}.manager-form textarea{min-height:72px;resize:vertical}.manager-form small{font-weight:500;color:var(--muted);line-height:1.4}.manager-form input:focus,.manager-form select:focus,.manager-form textarea:focus,.manager-inline-form input:focus,.manager-inline-form select:focus{outline:0;border-color:#a456df;box-shadow:0 0 0 4px rgba(164,86,223,.11)}.manager-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.manager-form-actions{position:sticky;bottom:-1px;z-index:2;display:flex;justify-content:flex-end;margin:4px -19px -19px;padding:14px 19px;background:rgba(255,255,255,.94);border-top:1px solid #eee8f1;backdrop-filter:blur(8px)}.manager-records{display:grid;gap:10px}.manager-records>h3,.manager-approval-box>h3{margin:4px 0 2px;font-size:16px}.manager-record{padding:16px 17px}.manager-record-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.manager-record-heading>div{display:grid;gap:4px}.manager-record-heading strong{font-size:14px}.manager-record-heading span{color:var(--muted);font-size:12px;line-height:1.45}.manager-record-heading>a{font-size:12px;font-weight:800;color:#a13dca}.manager-record>details{position:relative;margin-top:12px;padding-top:12px;border-top:1px solid #eee8f1}.manager-record>details>summary{position:relative;padding-right:30px;font-size:12px;color:#733ea2}.manager-record>details>summary:after{right:2px;top:-4px}.manager-inline-form{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:9px;align-items:end;margin-top:13px}.manager-inline-form+.manager-inline-form{padding-top:13px;border-top:1px dashed #e7deeb}.manager-empty{padding:18px;border:1px dashed #dacfe2;border-radius:15px;background:#fff;color:var(--muted)}.manager-approval-box{padding:17px;display:grid;gap:12px;border-color:#f2c86d;background:#fffaf0}.manager-approval-box>article{display:grid;gap:10px;padding-top:12px;border-top:1px solid #f0dfba}.manager-approval-box>article:first-of-type{padding-top:0;border-top:0}.manager-approval-box article>div:first-child{display:grid;gap:4px}.manager-approval-box span{color:#79683e;font-size:12px}.manager-approval-actions{display:flex;flex-wrap:wrap;gap:8px}.manager-approval-actions form{display:flex;gap:7px}.manager-approval-actions input{min-height:38px;border:1px solid #dfcfaa;border-radius:9px;padding:8px}.membership-actions-grid{display:grid;gap:13px;margin-top:13px}.membership-actions-grid>.manager-form{padding:15px;border:1px solid #e8e1eb;border-radius:14px;background:#fcfbfd}.membership-actions-grid h4{margin:0;font-size:14px}.danger-zone{border-color:#f0c9ce!important;background:#fffafb!important}.membership-absence{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 13px;border-radius:12px;background:#f2ebff}.membership-absence>div{display:grid;gap:3px}.membership-absence strong{font-size:12px}.membership-absence span{color:#6a5579;font-size:11px}.manager-all-day{align-self:end;min-height:44px;padding:0 11px;border:1px solid #ddd4e3;border-radius:11px;background:#fff}.manager-all-day input{width:auto;min-height:0}.detail-card dl dd{overflow-wrap:anywhere}
@keyframes axis-panel-in{from{transform:translateX(36px);opacity:.75}to{transform:translateX(0);opacity:1}}@keyframes axis-fade-in{from{opacity:0}to{opacity:1}}
@media(max-width:900px){.person-manager-panel{width:min(700px,78vw)}}
@media(max-width:700px){.person-manager-backdrop{display:none}.person-manager-panel{left:0;width:100%;border:0;box-shadow:none;animation:none}.person-manager-header{padding:18px 18px 16px}.person-manager-header h2{font-size:21px}.person-manager-close{width:40px;height:40px}.person-manager-body{padding:17px 15px 95px}.manager-two-columns{grid-template-columns:1fr}.manager-inline-form{grid-template-columns:1fr}.manager-form-actions{position:sticky;bottom:0;margin:4px -19px -19px;padding:13px 19px 18px}.manager-form-actions .primary{width:100%}.manager-record-heading{align-items:flex-start}.membership-absence{align-items:flex-start;display:grid}.section-manage-button{min-width:84px}.person-manager-open .sidebar,.person-manager-open .topbar,.person-manager-open .student-mobile-nav{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.person-manager-panel,.person-manager-backdrop{animation:none}}
.manager-flash{margin:0 0 16px}.manager-flash ul{margin:8px 0 0;padding-left:20px}.manager-flash li+li{margin-top:4px}

/* Axis v0.3.3 · sincronización de sesiones */
.sync-intro-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:32px;align-items:end;background:linear-gradient(137deg,rgba(255,87,87,.08),rgba(118,74,255,.10));border:1px solid rgba(118,74,255,.16)}
.sync-intro-card h2{margin-top:0}.sync-intro-card p{max-width:760px;margin-bottom:0;line-height:1.65}.sync-range-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}.sync-range-form button{grid-column:1/-1}.sync-help-card{margin-top:18px;display:flex;gap:18px;align-items:flex-start}.sync-help-card p{margin:0;line-height:1.55}.sync-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.sync-run-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.sync-run-summary div{display:flex;flex-direction:column;gap:5px}.sync-run-summary span{color:var(--muted,#6b7280)}.sync-event-list{display:grid;gap:12px}.sync-event{display:flex;align-items:center;justify-content:space-between;gap:22px;border-left:4px solid rgba(118,74,255,.45)}.sync-event-review_required,.sync-event-error{border-left-color:#e05252;background:rgba(224,82,82,.035)}.sync-event-closure_blocked,.sync-event-closure_skipped,.sync-event-outside_schedule{border-left-color:#ff8b57}.sync-event-participant_added{border-left-color:#35b58b}.sync-event-main{min-width:0}.sync-event-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sync-event p{margin:8px 0 4px}.sync-event small{color:var(--muted,#6b7280)}.status-completed{background:rgba(53,181,139,.12);color:#14765b}.status-completed_with_errors,.status-failed{background:rgba(224,82,82,.12);color:#a62f2f}.status-running{background:rgba(255,139,87,.14);color:#9a4e21}
@media(max-width:1100px){.sync-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.sync-run-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sync-intro-card{grid-template-columns:1fr}.sync-range-form{grid-template-columns:1fr}.sync-range-form button{grid-column:auto}.sync-help-card{display:block}.sync-help-card strong{display:block;margin-bottom:8px}.sync-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sync-run-summary{grid-template-columns:1fr}.sync-event{align-items:flex-start;flex-direction:column}.sync-event>a{width:100%;text-align:center}.table-wrap table{min-width:880px}}
.flash.warning{background:rgba(255,139,87,.13);border:1px solid rgba(255,139,87,.34);color:#7c3f1f}

/* Axis Core v0.3.4 · consultas, pruebas y seguimiento */
.lead-stage-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(137deg,rgba(255,87,87,.09),rgba(118,74,255,.09))}.lead-stage-summary>div{display:grid;gap:5px}.lead-stage-summary strong{font-size:18px}.lead-stage-summary p{margin:0;color:var(--muted);font-size:13px}.lead-resolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:12px}.lead-resolution-grid form{display:grid;align-content:start;gap:12px;padding:14px;border-radius:12px;background:var(--surface2);border:1px solid var(--border)}.lead-resolution-grid p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.lead-followup-record{display:grid;gap:10px}.lead-followup-record>p{margin:0;color:var(--muted);line-height:1.55}.lead-session-link{padding:9px 11px;border-radius:9px;background:rgba(118,74,255,.07);color:#5540a6!important}.lead-record-edit{border-top:1px solid var(--border);padding-top:8px}.lead-record-edit>summary{cursor:pointer;font-weight:800;color:var(--primary)}.compact-manager-form{margin-top:12px}.lead-filters{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:12px}.lead-filters .segmented{display:flex;flex-wrap:wrap}.lead-new-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lead-new-card{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none}.lead-new-card>div{display:grid;gap:4px}.lead-new-card strong{font-size:16px;color:var(--text)}.lead-new-card p{margin:0;color:var(--muted);font-size:13px}.lead-followup-list{display:grid;gap:11px}.lead-followup-card{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:16px;align-items:center}.lead-followup-card.is-overdue{border-color:#f4a8b0;box-shadow:0 8px 22px rgba(186,55,73,.08)}.lead-followup-time{display:grid;justify-items:center;padding:10px;border-radius:12px;background:var(--surface2)}.lead-followup-time strong{font-size:17px}.lead-followup-time span{font-size:12px;color:var(--muted)}.lead-followup-main{min-width:0}.lead-followup-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lead-followup-title h3{margin:2px 0 0;font-size:17px}.lead-followup-main>p{margin:5px 0 0;color:var(--muted);font-size:13px}.lead-followup-notes{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-scheduled{background:#ece8ff;color:#5b43bd}.status-no_response{background:#fff0d9;color:#8a5a09}.lead-manager-stack .manager-action>summary{font-size:14px}
@media(max-width:900px){.lead-filters{grid-template-columns:1fr}.lead-filters .segmented{order:2}.lead-filters button{width:100%}.lead-new-grid{grid-template-columns:1fr}.lead-followup-card{grid-template-columns:72px minmax(0,1fr)}.lead-followup-card>.secondary{grid-column:1/-1;width:100%}}
@media(max-width:620px){.lead-stage-summary{display:grid}.lead-resolution-grid{grid-template-columns:1fr}.lead-followup-card{grid-template-columns:1fr}.lead-followup-time{justify-items:start;grid-template-columns:auto auto;justify-content:space-between}.lead-followup-card>.secondary{grid-column:auto}.lead-followup-title{display:grid}.lead-filters .segmented{display:grid;grid-template-columns:1fr 1fr}.lead-filters .segmented a{text-align:center}}

.lead-stage-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.lead-stage-actions .secondary{padding:8px 10px;font-size:12px}@media(max-width:620px){.lead-stage-actions{justify-content:flex-start}}

/* Axis Core v0.3.5: navegación compacta, privacidad y economía unificada. */
.module-tabs{display:flex;align-items:center;gap:6px;overflow-x:auto;margin:0 0 20px;padding:6px;border:1px solid #e5e9ef;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(32,45,64,.05);scrollbar-width:thin}
.module-tabs a{flex:0 0 auto;padding:10px 14px;border-radius:10px;color:#5c6471;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap;transition:background .16s ease,color .16s ease,transform .16s ease}
.module-tabs a:hover{background:#f7f3fb;color:#6b42be}.module-tabs a.active{background:linear-gradient(137deg,#ff5757 0%,#764aff 100%);color:#fff;box-shadow:0 6px 15px rgba(118,74,255,.2)}
.privacy-state-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;margin:18px 0;padding:20px;border-left:4px solid #764aff}
.privacy-state-card.is-archived{border-left-color:#88919e;background:#fbfbfc}.privacy-state-card.is-restricted{border-left-color:#d9822b;background:#fffaf4}.privacy-state-card.is-anonymized{border-left-color:#424554;background:#f7f7f8}
.privacy-state-copy{display:grid;gap:7px}.privacy-state-copy h2{margin:0;font-size:18px}.privacy-state-copy p{margin:0;color:var(--muted);line-height:1.55}.privacy-state-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.privacy-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.privacy-actions form{margin:0}.privacy-panel{margin-top:22px}.privacy-panel-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:16px}.privacy-panel .card{padding:20px}.privacy-panel h3{margin:0 0 12px}.privacy-request-list{display:grid;gap:9px}.privacy-request-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px;border:1px solid #e7e9ee;border-radius:11px;background:#fafbfc}.privacy-request-item p{margin:4px 0 0;color:var(--muted);font-size:12px}.danger-zone{border-color:#f0caca;background:#fffafa}.danger-zone summary{cursor:pointer;font-weight:850;color:#9d3434}.danger-zone[open] summary{margin-bottom:14px}.danger-zone-grid{display:grid;gap:13px}.danger-zone form{display:grid;gap:9px}.privacy-confirm-input{text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.privacy-badge-active{background:#e7f7ee;color:#24734b}.privacy-badge-archived{background:#eceff3;color:#5e6671}.privacy-badge-restricted{background:#fff0da;color:#8a5b17}.privacy-badge-anonymized{background:#e5e6e8;color:#424554}
@media(max-width:800px){.privacy-state-card{grid-template-columns:1fr}.privacy-actions{justify-content:flex-start}.privacy-panel-grid{grid-template-columns:1fr}.privacy-request-item{grid-template-columns:1fr}.module-tabs{margin-left:-2px;margin-right:-2px}}
.lead-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.lead-metric-card{padding:17px 18px;display:grid;gap:6px;text-decoration:none;border-top:3px solid transparent}.lead-metric-card span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.lead-metric-card strong{font-size:29px;color:var(--text)}.lead-metric-card:hover{transform:translateY(-2px);border-top-color:#764aff}.lead-metric-card.is-alert{background:#fff7f7;border-color:#edb2b8}.lead-metric-card.is-alert strong{color:#b83e4b}@media(max-width:850px){.lead-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.lead-metric-grid{grid-template-columns:1fr 1fr}.lead-metric-card{padding:14px}.lead-metric-card strong{font-size:24px}}

/* v0.3.5 · Economía unificada */
.economy-summary-grid,
.economy-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}
.economy-ledger-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 1.25rem;
    align-items: start;
}
.economy-balance-banner {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}
.economy-balance-banner strong {
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}
.economy-balance-credit strong,
.amount-positive { color: #28745a; }
.economy-balance-due strong,
.amount-negative { color: #a63e47; }
.economy-allocation-list {
    display: grid;
    gap: .35rem;
    margin-top: .55rem;
}
.economy-allocation-list small {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
}
.status-partial,
.status-refunded { background: #fff1d8; color: #80570d; }
.status-credit,
.status-payment { background: #e5f6ee; color: #27674f; }
.status-refund { background: #fde7ea; color: #8d3340; }
.economy-report-metrics { grid-template-columns: repeat(5, minmax(145px, 1fr)); }
.payment-refund-form { margin-top: .65rem; }
@media (max-width: 980px) {
    .economy-ledger-grid { grid-template-columns: 1fr; }
    .economy-report-metrics { grid-template-columns: repeat(2, minmax(145px, 1fr)); }
}
@media (max-width: 620px) {
    .economy-balance-banner { align-items: flex-start; flex-direction: column; }
    .economy-report-metrics { grid-template-columns: 1fr; }
}

.economy-filter{display:grid;grid-template-columns:minmax(220px,1.25fr) repeat(5,minmax(135px,.75fr));gap:12px;padding:16px;align-items:end;margin-bottom:16px}.economy-filter .filter-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}.economy-metrics{margin-bottom:16px}.economy-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0 24px}.economy-entry-grid>details{padding:0;overflow:hidden}.economy-entry-grid>details>summary{display:grid;gap:4px;padding:18px 20px;cursor:pointer;background:linear-gradient(137deg,rgba(255,87,87,.06),rgba(118,74,255,.07));border-bottom:1px solid transparent}.economy-entry-grid>details[open]>summary{border-bottom-color:var(--border)}.economy-entry-grid>details>summary span{color:var(--muted);font-size:12px}.economy-entry-grid>details>form{padding:20px}.person-balance-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0;padding:18px 20px;border:1px solid var(--border);border-left:4px solid #718096;border-radius:15px;background:#fff}.person-balance-banner>div{display:grid;gap:4px}.person-balance-banner span,.person-balance-banner p{color:var(--muted);margin:0}.person-balance-banner strong{font-size:26px}.person-balance-banner.has-debt{border-left-color:#b44754;background:#fffafa}.person-balance-banner.has-debt strong{color:#a63e47}.person-balance-banner.has-credit{border-left-color:#28745a;background:#f7fcf9}.person-balance-banner.has-credit strong{color:#28745a}.inline-editor>summary{cursor:pointer;font-weight:750;color:var(--primary)}.inline-editor[open]>summary{margin-bottom:9px}.inline-editor .compact-form{min-width:250px;grid-template-columns:1fr;align-items:stretch}.economy-manager-forms{align-items:start}.manager-form-card{border:1px solid var(--border);border-radius:13px;background:#fff;overflow:hidden}.manager-form-card>summary{cursor:pointer;padding:14px 16px;font-weight:800;background:var(--surface2)}.manager-form-card[open]>summary{border-bottom:1px solid var(--border)}.manager-form-card>form{padding:16px}
@media(max-width:1180px){.economy-filter{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.economy-entry-grid{grid-template-columns:1fr}.economy-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.economy-filter{grid-template-columns:1fr}.economy-filter .filter-actions{display:grid;grid-template-columns:1fr 1fr}.person-balance-banner{align-items:flex-start;flex-direction:column}.person-balance-banner>a{width:100%}.economy-entry-grid>details>form{padding:15px}}

/* Axis Core v0.3.6 · piloto, PWA y carga progresiva de fichas */
[hidden]{display:none!important}
.pilot-public-body{min-height:100vh;margin:0;background:linear-gradient(145deg,#f7f4fb 0%,#fff 52%,#fff3f6 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.pilot-public-shell{width:min(760px,calc(100% - 28px));margin:0 auto;padding:30px 0 52px}.install-public-shell{width:min(980px,calc(100% - 28px))}
.pilot-public-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.pilot-public-brand>div{display:grid}.pilot-public-brand strong{font-size:22px}.pilot-public-brand small{color:var(--muted)}
.pilot-public-card{padding:clamp(22px,5vw,42px);border:1px solid rgba(118,74,255,.13);box-shadow:0 22px 70px rgba(62,47,84,.12)}.pilot-public-card h1{margin:8px 0 12px;font-size:clamp(30px,6vw,48px);line-height:1.05}.pilot-public-card>p{color:var(--muted);line-height:1.65}.pilot-public-links,.login-entry-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px}.pilot-public-links a,.login-entry-links a{font-weight:750;color:#6a43c4}.invitation-code-input{text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.install-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center}.install-app-icon{width:150px;height:150px;border-radius:32px;box-shadow:0 18px 38px rgba(72,49,95,.18)}.install-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 8px}.pwa-install-status{font-size:13px}.install-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}.install-guide-card{padding:24px}.install-guide-card h2{margin:5px 0 14px}.install-guide-card ol{margin:0;padding-left:22px;display:grid;gap:10px;color:var(--muted);line-height:1.45}.install-step{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:#764aff}.install-qr-card{display:grid;grid-template-columns:210px minmax(0,1fr);gap:26px;align-items:center;padding:26px}.install-qr-card img{width:100%;border:1px solid var(--border);border-radius:18px}.install-qr-card code,.pilot-qr-panel code{display:block;max-width:100%;overflow:auto;padding:10px 12px;border-radius:9px;background:var(--surface2);font-size:12px;margin:12px 0}.offline-shell{display:grid;place-items:center;min-height:90vh}.offline-shell .pilot-public-card{text-align:center}.offline-icon{width:110px;border-radius:24px}
.pwa-update-notice{position:fixed;z-index:90;right:18px;bottom:18px;display:flex;align-items:center;gap:14px;padding:13px 15px;border-radius:13px;background:#fff;box-shadow:0 14px 45px rgba(38,35,48,.2);border:1px solid #ddd5f3}.pwa-update-notice span{font-weight:750}.pwa-top-install{white-space:nowrap}
.invitation-management-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;margin:18px 0;padding:22px;border-left:4px solid #764aff}.invitation-management-card h2{margin:4px 0 7px}.invitation-management-card p{margin:0;color:var(--muted)}.invitation-code-panel{min-width:310px;padding:16px;border-radius:14px;background:linear-gradient(137deg,rgba(255,87,87,.07),rgba(118,74,255,.09));border:1px solid rgba(118,74,255,.16)}.invitation-code-panel>span,.invitation-code-panel>small{display:block;color:var(--muted)}.invitation-code-panel>strong{display:block;margin:6px 0;font-size:24px;letter-spacing:.09em}.invitation-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.invitation-actions form{margin:0}.access-state-invited{background:#ece8ff;color:#5a41b8}
.pilot-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.pilot-admin-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;margin-bottom:18px}.pilot-qr-panel{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:center}.pilot-qr-panel img{width:100%;border:1px solid var(--border);border-radius:15px}.pilot-invitation-list{display:grid;gap:8px}.pilot-invitation-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--border);border-radius:11px;text-decoration:none}.pilot-invitation-row>div{display:grid;gap:3px}.pilot-invitation-row span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:#7047c9}.pilot-invitation-row small{color:var(--muted)}.pilot-feedback-panel{margin-bottom:18px}.pilot-feedback-list{display:grid;gap:12px}.pilot-feedback-item{padding:17px;border:1px solid var(--border);border-left:4px solid #c2b8dd;border-radius:12px;background:#fff}.pilot-feedback-item.status-open{border-left-color:#d17a4d}.pilot-feedback-item.status-reviewing{border-left-color:#764aff}.pilot-feedback-item.status-resolved{border-left-color:#28745a}.pilot-feedback-item header{display:flex;justify-content:space-between;gap:14px}.pilot-feedback-item header>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pilot-feedback-item>p{white-space:pre-line;line-height:1.55}.pilot-feedback-form{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:14px}.pilot-feedback-form label{margin:0}.pilot-feedback-form .span-2{grid-column:auto}.pilot-feedback-form button{margin-bottom:1px}
.data-entry-progress{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:15px 18px;border-left:4px solid #d67b4e}.data-entry-progress>div{display:flex;align-items:baseline;gap:9px}.data-entry-progress strong{font-size:27px}.data-entry-progress span{color:var(--muted)}.people-entry-filters{grid-template-columns:minmax(200px,1.3fr) repeat(3,minmax(150px,.7fr)) auto}.data-entry-state{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0;padding:18px 20px;border-left:4px solid #d9822b}.data-entry-state.is-reviewed{border-left-color:#28745a;background:#f8fcfa}.data-entry-state h2{margin:3px 0 5px;font-size:18px}.data-entry-state p{margin:0;color:var(--muted)}.data-entry-review-check{margin:18px 0 2px}.duplicate-check-panel{margin-bottom:16px;padding:16px;border-radius:13px;border:1px solid #e1b674;background:#fffaf1}.duplicate-check-panel>p{margin:4px 0 10px;color:#765a2b}.duplicate-check-panel>div{display:grid;gap:7px}.duplicate-check-panel a{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:9px;background:#fff;text-decoration:none}.duplicate-check-panel a b{color:var(--text)}.duplicate-check-panel a span{color:var(--muted);font-size:12px;text-align:right}
.student-pilot-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:14px}.student-pilot-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.student-pilot-actions a{font-weight:750;color:#6e49c3}.student-feedback-form{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}.student-feedback-form label{margin:0}.student-feedback-form textarea{min-height:76px}.student-feedback-form button{margin-bottom:1px}
@media(max-width:900px){.pilot-admin-grid,.student-pilot-grid{grid-template-columns:1fr}.pilot-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.people-entry-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.pilot-feedback-form,.student-feedback-form{grid-template-columns:1fr 1fr}.pilot-feedback-form .span-2,.student-feedback-form label:nth-child(2){grid-column:1/-1}.pilot-feedback-form button,.student-feedback-form button{width:100%}}
@media(max-width:700px){.install-hero-card,.install-qr-card,.pilot-qr-panel,.invitation-management-card{grid-template-columns:1fr}.install-app-icon{width:100px;height:100px;order:-1}.install-guide-grid{grid-template-columns:1fr}.install-qr-card img,.pilot-qr-panel img{width:min(240px,100%);margin:auto}.invitation-code-panel{min-width:0}.data-entry-state,.data-entry-progress{align-items:flex-start;flex-direction:column}.data-entry-state form,.data-entry-state button,.data-entry-progress a{width:100%}.duplicate-check-panel a{display:grid}.duplicate-check-panel a span{text-align:left}.pwa-update-notice{left:12px;right:12px;bottom:76px;justify-content:space-between}}
@media(max-width:520px){.pilot-public-shell{width:min(100% - 18px,760px);padding-top:14px}.pilot-public-card{padding:20px}.pilot-metrics,.people-entry-filters,.pilot-feedback-form,.student-feedback-form{grid-template-columns:1fr}.pilot-feedback-form .span-2,.student-feedback-form label:nth-child(2){grid-column:auto}.pilot-invitation-row{display:grid}.person-save-actions{grid-template-columns:1fr}.person-save-actions>*{width:100%}}

/* Axis Core v0.3.6.2: ajustes operativos previos al piloto. */
.weekday-presets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.weekday-presets>span{font-size:12px;font-weight:800;color:var(--muted);margin-right:2px}.weekday-presets .secondary,.weekday-presets .ghost{min-height:36px;padding:7px 11px;font-size:12px}

.lead-new-grid{grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr))}.lead-new-card{min-height:76px;padding:16px 18px}.lead-new-card>div{min-width:0}.lead-new-card p{overflow-wrap:anywhere}.lead-new-card .badge{flex:0 0 auto;margin-left:14px;padding:8px 12px}

.economy-person-search{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(330px,1.2fr) auto;align-items:end;gap:18px;padding:20px;margin-bottom:16px}.economy-person-search h2{margin:3px 0 5px}.economy-person-search p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.economy-person-search-actions{display:flex;gap:8px;align-items:center}.economy-person-workspace{display:grid;gap:16px;margin-bottom:22px}.economy-account-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:20px;border-left:5px solid #718096}.economy-account-header h2{margin:3px 0 4px}.economy-account-header p{margin:0;color:var(--muted);overflow-wrap:anywhere}.economy-account-header.has-debt{border-left-color:#b44754;background:#fffafa}.economy-account-header.has-credit{border-left-color:#28745a;background:#f7fcf9}.economy-account-status{display:grid;justify-items:end;gap:2px}.economy-account-status strong{font-size:26px}.economy-account-status span{font-size:12px;color:var(--muted);font-weight:750}.economy-person-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.economy-person-metrics>.card{display:grid;gap:5px;padding:16px 18px}.economy-person-metrics span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.economy-person-metrics strong{font-size:23px}.economy-person-metrics small{color:var(--muted)}.economy-person-actions{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:16px;align-items:start}.economy-payment-card{padding:20px}.economy-payment-card .compact-header p{margin:5px 0 0;color:var(--muted);font-size:13px}.economy-charge-card{padding:0;overflow:hidden}.economy-charge-card>summary{display:grid;gap:4px;padding:18px 20px;cursor:pointer;background:linear-gradient(137deg,rgba(255,87,87,.06),rgba(118,74,255,.07))}.economy-charge-card>summary span{color:var(--muted);font-size:12px}.economy-charge-card[open]>summary{border-bottom:1px solid var(--border)}.economy-charge-card>form{padding:20px}.economy-advanced-fields{border-top:1px solid var(--border);padding-top:10px}.economy-advanced-fields>summary{cursor:pointer;color:var(--primary);font-weight:800;font-size:13px;margin-bottom:10px}.economy-empty-workspace{padding:24px;text-align:center;margin-bottom:18px}.economy-empty-workspace strong{display:block;font-size:18px;margin-bottom:6px}.economy-empty-workspace p{margin:0;color:var(--muted)}.economy-filter{grid-template-columns:repeat(5,minmax(145px,1fr))}.bonus-filters{grid-template-columns:minmax(260px,1fr) minmax(180px,.45fr) auto auto}.bonus-create-form .person-picker.span-2{grid-column:1/-1}

@media(max-width:1050px){.economy-person-search{grid-template-columns:1fr 1fr}.economy-person-search-actions{grid-column:1/-1;justify-content:flex-end}.economy-person-actions{grid-template-columns:1fr}.economy-filter{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:760px){.weekday-presets{display:grid;grid-template-columns:1fr 1fr}.weekday-presets>span{grid-column:1/-1}.economy-person-search{grid-template-columns:1fr}.economy-person-search-actions{grid-column:auto;display:grid;grid-template-columns:1fr}.economy-account-header{grid-template-columns:1fr}.economy-account-status{justify-items:start}.economy-person-metrics{grid-template-columns:1fr}.economy-filter{grid-template-columns:1fr}.bonus-filters{grid-template-columns:1fr}.lead-new-card{padding:15px}.lead-new-card .badge{margin-left:8px}}

/* Axis Core v0.3.6.4: ficha operativa reorganizada. */
.person-profile-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 20px;margin-bottom:16px;background:linear-gradient(135deg,#fff,#f7f8ff);box-shadow:var(--axis-shadow)}
.person-profile-hero-copy{display:grid;gap:8px;min-width:0}.person-profile-hero-copy p{margin:0;color:var(--muted);font-size:13px}.person-quick-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.person-quick-actions a{white-space:nowrap}
.person-primary-grid{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(520px,1.18fr);gap:16px;margin-bottom:16px}.person-primary-grid>.card{margin:0;padding:20px}.person-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.person-card-heading h2{margin:3px 0 0;font-size:18px}.person-card-heading>a{font-size:13px;font-weight:800;color:var(--primary);text-decoration:none}
.person-contact-list{display:grid;grid-template-columns:125px minmax(0,1fr);gap:10px 14px;margin:0}.person-contact-list dt{color:var(--muted);font-size:13px}.person-contact-list dd{margin:0;min-width:0;overflow-wrap:anywhere;font-weight:650}.person-contact-list dd a{color:var(--text);text-decoration:none}.person-contact-list dd a:hover{text-decoration:underline}.person-contact-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px;padding-top:15px;border-top:1px solid var(--border)}
.person-operational-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.person-operational-item{display:grid;gap:5px;min-height:112px;padding:15px 16px;border:1px solid var(--border);border-radius:13px;background:#fafbfe}.person-operational-item>span{font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.person-operational-item>strong{font-size:18px;line-height:1.25}.person-operational-item>small{color:var(--muted);line-height:1.4}.person-operational-item.is-alert{border-color:#efc5c8;background:#fff9fa}.person-operational-item.is-alert>strong{color:#a43c49}.person-operational-item.is-positive{border-color:#bee2cf;background:#f7fcf9}.person-operational-item.is-positive>strong{color:#28745a}
.person-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;margin-bottom:16px}.person-status-grid>.card{margin:0}.person-status-card{min-height:112px}.person-status-card.data-entry-state{padding:16px 18px}.person-status-card.person-access-card{padding:16px 18px}
.person-profile-tabs{display:flex;gap:6px;overflow-x:auto;padding:8px;margin:0 0 16px;scrollbar-width:thin;position:sticky;top:8px;z-index:8}.person-profile-tabs button{flex:0 0 auto;border:0;border-radius:10px;background:transparent;color:#3f485b;font-weight:800;padding:10px 13px;cursor:pointer}.person-profile-tabs button:hover{background:#f0edfb}.person-profile-tabs button.is-active{color:#fff;background:linear-gradient(135deg,#ff5757,#764aff);box-shadow:0 7px 16px rgba(118,74,255,.17)}
.person-profile-panels{display:grid}.person-profile-panel{display:grid;gap:18px}.person-profile-panel[hidden]{display:none!important}.person-profile-panel>section{margin:0}.person-profile-panel .section-header{margin-top:0}.person-summary-detail-grid{align-items:stretch}.person-summary-detail-grid>.card{margin:0}.person-next-items{display:grid;gap:10px}.person-next-items>div{display:grid;gap:3px;padding:10px 12px;border-radius:10px;background:#f7f8fb}.person-next-items strong{font-size:13px}.person-next-items span{color:var(--muted);font-size:12px}.person-record-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px}.person-record-card h2{margin:3px 0 5px;font-size:18px}.person-record-card p{margin:0;color:var(--muted)}
.person-privacy-warning{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;margin-bottom:16px;border-left:5px solid #d9822b}.person-privacy-warning strong{display:block;margin:3px 0}.person-privacy-warning p{margin:0;color:var(--muted)}.person-privacy-warning.is-restricted,.person-privacy-warning.is-anonymized{border-left-color:#a43c49;background:#fffafa}
.privacy-panel{display:grid;gap:12px;margin-top:14px}.privacy-request-details{padding:0;overflow:hidden}.privacy-request-details>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;cursor:pointer;font-weight:850}.privacy-request-details>summary small{color:var(--muted);font-weight:650}.privacy-request-details[open]>summary{border-bottom:1px solid var(--border)}.privacy-details-content{padding:20px}.privacy-panel .danger-zone{padding:17px 20px}.privacy-panel .danger-zone[open]{padding-bottom:20px}
@media(max-width:1180px){.person-primary-grid{grid-template-columns:1fr}.person-operational-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.person-operational-item{min-height:0}}
@media(max-width:900px){.person-operational-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.person-profile-tabs{position:static}.person-profile-hero{grid-template-columns:auto minmax(0,1fr)}.person-quick-actions{grid-column:1/-1;justify-content:flex-start;padding-top:13px;border-top:1px solid var(--border)}}
@media(max-width:700px){.person-primary-grid{grid-template-columns:1fr}.person-primary-grid>.card{padding:17px}.person-contact-list{grid-template-columns:105px minmax(0,1fr)}.person-status-grid{grid-template-columns:1fr}.person-profile-hero{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:16px}.person-quick-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.person-quick-actions a{text-align:center}.person-record-card,.person-privacy-warning{display:grid}.person-record-card>a,.person-privacy-warning>button{width:100%}}
@media(max-width:520px){.person-operational-grid{grid-template-columns:1fr}.person-contact-list{grid-template-columns:1fr;gap:3px}.person-contact-list dt{margin-top:8px}.person-contact-actions{display:grid;grid-template-columns:1fr 1fr}.person-contact-actions a{text-align:center}.person-profile-hero{grid-template-columns:1fr}.person-avatar-profile{width:64px;height:64px}.person-quick-actions{grid-template-columns:1fr}.person-profile-tabs{margin-left:-2px;margin-right:-2px}.privacy-request-details>summary{align-items:flex-start;flex-direction:column;gap:3px}}

/* Axis v0.3.7 · cuotas mensuales */
.group-billing-fieldset{margin-top:24px;padding:20px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,rgba(255,87,87,.045),rgba(118,74,255,.055))}.group-billing-fieldset legend{font-weight:800;padding:0 8px}.billing-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.compact-check{align-self:end;min-height:46px}.monthly-fee-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.monthly-fee-toolbar label{min-width:180px}.monthly-fee-explanation{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:16px 0 24px}.monthly-fee-explanation>div{max-width:760px}.monthly-fee-explanation form{display:grid;gap:10px;justify-items:end}.check-inline{display:flex;align-items:center;gap:8px;font-size:13px}.monthly-fee-status.status-ready{background:#e7f8ef;color:#17653c}.monthly-fee-status.status-existing{background:#eaf0ff;color:#3154a5}.monthly-fee-status.status-review{background:#fff0d8;color:#8a5700}.monthly-fee-status.status-reserved,.monthly-fee-status.status-exempt,.monthly-fee-status.status-august_disabled,.monthly-fee-status.status-inactive_person,.monthly-fee-status.status-no_fee{background:#f0f2f6;color:#5d6472}.monthly-fee-group-list>a{display:flex;justify-content:space-between;align-items:center;gap:16px}.monthly-fee-group-list>a>div:first-child{display:grid;gap:4px}.list-meta{display:flex;align-items:center;gap:10px;text-align:right}.membership-actions-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
@media(max-width:760px){.billing-checks{grid-template-columns:1fr}.monthly-fee-explanation{align-items:stretch;flex-direction:column}.monthly-fee-explanation form{justify-items:stretch}.monthly-fee-group-list>a{align-items:flex-start;flex-direction:column}.list-meta{text-align:left}.monthly-fee-toolbar>*{width:100%}}

.monthly-fee-run-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0 24px}.monthly-fee-run-summary>div{display:grid;gap:5px}.monthly-fee-run-summary span{color:var(--muted);font-size:13px}@media(max-width:760px){.monthly-fee-run-summary{grid-template-columns:1fr 1fr}}


/* Axis v0.3.7.1 · tarifas heredadas por actividad */
.monthly-fee-activity-section{margin:24px 0}.monthly-fee-activity-section .section-header>div{display:grid;gap:4px}.monthly-fee-activity-section .section-header h2,.monthly-fee-activity-section .section-header p{margin:0}.section-note{color:var(--muted);font-size:13px}.monthly-fee-activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.monthly-fee-activity-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(220px,1.15fr);align-items:end;gap:18px;margin:0;padding:18px}.monthly-fee-activity-card>div:first-child{display:grid;gap:5px;align-self:center}.monthly-fee-activity-card>div:first-child strong{font-size:16px}.monthly-fee-activity-card>div:first-child span{color:var(--muted);font-size:12px}.inline-field-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.optional-label{font-weight:650;color:var(--muted);font-size:12px}.monthly-fee-group-list .list-meta small{color:var(--muted)}
@media(max-width:700px){.monthly-fee-activity-card{grid-template-columns:1fr}.inline-field-action{grid-template-columns:1fr}.inline-field-action button{width:100%}}


/* Axis v0.3.7.2 · mantenimiento discreto y revisión visual de cuotas */
.group-sync-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:15px 18px;border-left:4px solid #d9822b;background:#fffaf3}.group-sync-notice>div{display:grid;gap:4px}.group-sync-notice strong{font-size:14px}.group-sync-notice span{color:var(--muted);font-size:13px;line-height:1.45}
.maintenance-overview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:28px;align-items:center;padding:24px 26px;margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,#f8f7ff 100%);box-shadow:var(--axis-shadow)}.maintenance-overview-copy h2{margin:5px 0 8px;font-size:22px}.maintenance-overview-copy p{max-width:780px;margin:0;color:var(--muted);line-height:1.6}.maintenance-status{display:grid;gap:5px;padding:18px 20px;border:1px solid var(--border);border-left:4px solid #2f8c69;border-radius:14px;background:#f7fcf9}.maintenance-status.needs-attention{border-left-color:#d9822b;background:#fffaf3}.maintenance-status>span{font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.maintenance-status>strong{font-size:17px}.maintenance-status>small{line-height:1.45}.maintenance-status>a{margin-top:3px;font-size:13px;font-weight:800;color:#7443c8}
.maintenance-manual-panel{margin-bottom:24px;overflow:hidden}.maintenance-manual-panel>summary{display:grid;gap:4px;padding:18px 22px;cursor:pointer;font-weight:850;list-style-position:inside}.maintenance-manual-panel>summary small{color:var(--muted);font-weight:500;line-height:1.45}.maintenance-manual-panel[open]>summary{border-bottom:1px solid var(--border);background:#fafbfe}.maintenance-manual-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.75fr);gap:28px;padding:22px}.maintenance-manual-content h3{margin:0 0 8px}.maintenance-manual-content p{margin:0;color:var(--muted);line-height:1.6}.maintenance-history-section{margin-top:0}.maintenance-history-section .section-header{margin-top:0}.maintenance-history-table{box-shadow:var(--axis-shadow)}.maintenance-change-summary{display:flex;flex-wrap:wrap;gap:5px}.maintenance-change-summary span{display:inline-flex;padding:4px 7px;border-radius:8px;background:#f0f3f7;color:#526072;font-size:11px;white-space:nowrap}
.maintenance-run-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin-bottom:16px;background:linear-gradient(135deg,#fff,#f8f7ff);box-shadow:var(--axis-shadow)}.maintenance-run-heading h2{margin:5px 0 5px}.maintenance-run-heading p{margin:0;color:var(--muted)}.maintenance-run-heading dl{display:flex;gap:24px;margin:0}.maintenance-run-heading dl>div{display:grid;gap:4px}.maintenance-run-heading dt{color:var(--muted);font-size:12px}.maintenance-run-heading dd{margin:0;font-weight:750}.maintenance-run-metrics{margin-bottom:18px}.maintenance-event-summary{padding:21px 23px;margin-bottom:22px}.maintenance-event-summary .section-header{margin:0 0 15px}.maintenance-event-summary .section-header p{color:var(--muted)}.maintenance-event-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.maintenance-event-summary-grid>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:#fafbfe}.maintenance-event-summary-grid strong{font-size:18px}.maintenance-incidents,.maintenance-changes{margin-top:22px}.maintenance-incidents .section-header,.maintenance-changes .section-header{align-items:flex-end}.sync-event{padding:16px 18px;box-shadow:0 2px 6px rgba(22,38,61,.035)}.sync-event p{line-height:1.5}.sync-event-heading .badge{font-size:11px}
.monthly-fee-toolbar{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:end;padding:18px 20px;gap:18px;margin-bottom:16px;box-shadow:var(--axis-shadow)}.monthly-fee-toolbar label{min-width:0}.monthly-fee-toolbar-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.monthly-fee-metrics{margin-bottom:18px}.monthly-fee-explanation{padding:22px 24px;margin:0 0 26px;box-shadow:var(--axis-shadow);background:linear-gradient(135deg,#fff 0%,#faf8ff 100%)}.monthly-fee-explanation-copy{max-width:760px}.monthly-fee-explanation-copy h2{margin:5px 0 8px}.monthly-fee-explanation-copy p{margin:0;color:var(--muted);line-height:1.6}.monthly-fee-generate-panel{min-width:340px;padding:14px;border:1px solid var(--border);border-radius:13px;background:#fff;justify-items:stretch!important}.review-confirmation{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:2px;font-weight:500}.review-confirmation input{width:19px;height:19px;min-height:0;margin-top:2px}.review-confirmation span{display:grid;gap:3px}.review-confirmation strong{font-size:13px}.review-confirmation small{line-height:1.4}.monthly-fee-section{margin-top:26px}.monthly-fee-section>.section-header{margin:0 0 12px;padding:0 2px}.monthly-fee-section>.section-header>span{color:var(--muted);font-size:13px}.monthly-fee-table{box-shadow:var(--axis-shadow)}.monthly-fee-table td{padding-top:18px;padding-bottom:18px}.monthly-fee-activity-section{margin:28px 0}.monthly-fee-activity-card{box-shadow:0 4px 14px rgba(22,38,61,.05)}.monthly-fee-group-list{box-shadow:var(--axis-shadow)}
@media(max-width:1050px){.maintenance-overview{grid-template-columns:1fr}.maintenance-manual-content{grid-template-columns:1fr}.maintenance-run-heading{align-items:flex-start;flex-direction:column}.maintenance-run-heading dl{width:100%;flex-wrap:wrap}.monthly-fee-explanation{align-items:stretch;flex-direction:column}.monthly-fee-generate-panel{min-width:0;width:100%}}
@media(max-width:760px){.group-sync-notice{align-items:flex-start;flex-direction:column}.group-sync-notice>a{width:100%}.maintenance-overview{padding:19px}.maintenance-manual-content{padding:17px}.maintenance-run-heading{padding:18px}.maintenance-run-heading dl{display:grid;grid-template-columns:1fr 1fr}.maintenance-run-metrics{grid-template-columns:1fr 1fr}.maintenance-event-summary{padding:18px}.monthly-fee-toolbar{grid-template-columns:1fr;padding:16px}.monthly-fee-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.monthly-fee-toolbar-actions button{grid-column:1/-1}.monthly-fee-toolbar-actions>*{width:100%}.monthly-fee-explanation{padding:18px}.monthly-fee-section>.section-header{align-items:flex-start;flex-direction:column}.monthly-fee-table td{padding-top:7px;padding-bottom:7px}}
@media(max-width:520px){.maintenance-run-heading dl{grid-template-columns:1fr}.maintenance-run-metrics{grid-template-columns:1fr}.monthly-fee-toolbar-actions{grid-template-columns:1fr}}

/* Axis v0.3.7.3 · pulido prepiloto, invitaciones y consistencia visual */
.pilot-dashboard{display:grid;gap:24px}.pilot-dashboard>.pilot-metrics{margin:0}.pilot-metrics .metric{padding:20px 22px;min-height:104px;display:grid;align-content:center}.pilot-metrics .metric strong{font-size:30px}.pilot-metrics .metric span{margin-top:7px;line-height:1.35}
.pilot-setup-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr);gap:20px;align-items:start}.pilot-invitation-create{overflow:visible}.pilot-invitation-create>summary{display:flex;align-items:center;gap:14px;padding:21px 23px;cursor:pointer;list-style:none}.pilot-invitation-create>summary::-webkit-details-marker{display:none}.pilot-invitation-create>summary::after{content:'Abrir';margin-left:auto;color:#7047c9;font-size:12px;font-weight:850}.pilot-invitation-create[open]>summary::after{content:'Cerrar'}.pilot-invitation-create>summary>span:last-child{display:grid;gap:4px}.pilot-invitation-create>summary strong{font-size:18px}.pilot-invitation-create>summary small{color:var(--muted);font-weight:500;line-height:1.45}.pilot-summary-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#ff5757,#764aff);color:#fff;font-size:24px;font-weight:500;box-shadow:0 8px 18px rgba(118,74,255,.18)}.pilot-invitation-create[open]>summary{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fff,#faf8ff)}
.pilot-invitation-forms{display:grid;grid-template-columns:1fr 1fr}.pilot-invitation-form{display:grid;gap:16px;padding:24px}.pilot-invitation-form+ .pilot-invitation-form{border-left:1px solid var(--border)}.pilot-form-heading{display:grid;gap:5px;margin-bottom:2px}.pilot-form-heading h3{margin:0;font-size:18px}.pilot-form-heading p{margin:0;color:var(--muted);line-height:1.5;font-size:13px}.pilot-invitation-form>button{justify-self:start}.pilot-invitation-form label>small{font-weight:500;line-height:1.4}
.pilot-side-stack{display:grid;gap:16px}.pilot-qr-panel{display:grid;grid-template-columns:128px minmax(0,1fr);gap:18px;align-items:center;padding:20px}.pilot-qr-panel img{width:128px;border:1px solid var(--border);border-radius:14px;background:#fff}.pilot-qr-panel h2,.pilot-email-status h2{margin:4px 0 7px;font-size:18px}.pilot-qr-panel p,.pilot-email-status p{margin:0;color:var(--muted);line-height:1.5;font-size:13px}.pilot-qr-panel code{margin:12px 0 10px;padding:9px 10px;font-size:11px}.pilot-qr-panel button{min-height:38px;padding:8px 12px}.pilot-email-status{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px}.pilot-email-status>div{min-width:0}.pilot-email-status>.badge{flex:none;margin-top:2px}
.pilot-section{display:grid;gap:12px}.pilot-section-heading{margin:0;padding:0 2px}.pilot-section-heading>div{display:grid;gap:4px}.pilot-section-heading h2{font-size:20px}.pilot-section-heading .section-description{margin:0}.pilot-invitation-table,.pilot-device-table{box-shadow:var(--axis-shadow)}.pilot-invitation-table td,.pilot-device-table td{padding-top:17px;padding-bottom:17px}.pilot-invitation-table td:first-child{min-width:220px}.pilot-invitation-table td:first-child>a{display:block;margin-bottom:4px}.pilot-invitation-table td:first-child small{display:block}.pilot-code{display:inline-flex;padding:7px 9px;border:1px solid #ddd6f0;border-radius:9px;background:#f7f4ff;color:#6240af;font-weight:850;letter-spacing:.06em;white-space:nowrap}.pilot-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.pilot-row-actions form{margin:0}.pilot-row-actions .compact{min-height:34px;padding:7px 10px;font-size:12px}.pilot-feedback-panel{margin:0;padding:22px 23px}.pilot-feedback-panel .pilot-section-heading{margin-bottom:16px}.pilot-feedback-item{padding:18px 19px}.pilot-empty-state{display:grid;gap:5px;min-height:130px;place-content:center}.pilot-empty-state strong{color:var(--text);font-size:16px}.pilot-empty-state span{color:var(--muted)}
.pilot-multi-picker{display:grid;gap:10px}.pilot-multi-picker>[data-multi-person-add]{justify-self:start}.pilot-selected-people{display:flex;flex-wrap:wrap;gap:7px;min-height:46px;padding:9px;border:1px dashed #ccd3dc;border-radius:11px;background:#fafbfe;align-items:center}.pilot-selected-person{display:inline-flex;align-items:center;gap:7px;padding:7px 8px 7px 10px;border:1px solid #ddd6ef;border-radius:999px;background:#fff;color:#3e315b;font-size:12px;font-weight:750}.pilot-selected-person button{width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#f0ecf9;color:#6344a4;line-height:1}.pilot-selection-empty{color:var(--muted);font-size:12px;padding:0 3px}.pilot-batch-form [data-batch-error]{margin-top:-7px}

/* La corrección visual de v0.3.7.2 vuelve a aplicarse con saltos de línea CSS válidos. */
.maintenance-overview{padding:28px 30px;gap:34px;margin-bottom:20px}.maintenance-overview-copy{display:grid;gap:3px}.maintenance-overview-copy h2{margin:5px 0 9px;font-size:23px}.maintenance-status{padding:20px 22px;min-height:112px;align-content:center}.maintenance-manual-panel{margin-bottom:28px}.maintenance-manual-panel>summary{padding:20px 24px}.maintenance-history-section{display:grid;gap:12px}.maintenance-history-section .section-header{margin:0;padding:0 2px}.maintenance-history-table td{padding-top:18px;padding-bottom:18px}.maintenance-change-summary{gap:7px}.maintenance-change-summary span{padding:6px 9px;border-radius:9px;font-size:11px}.maintenance-history-table .actions-cell{width:84px}.maintenance-history-table .actions-cell .compact{min-height:36px;padding:8px 11px}.maintenance-history-table .badge{white-space:nowrap}
.monthly-fee-toolbar{padding:21px 23px;margin-bottom:18px}.monthly-fee-toolbar-actions{gap:10px}.monthly-fee-metrics .metric{padding:19px 21px;min-height:94px}.monthly-fee-explanation{padding:25px 27px;margin-bottom:30px}.monthly-fee-generate-panel{padding:16px 17px}.monthly-fee-section{display:grid;gap:12px;margin-top:28px}.monthly-fee-section>.section-header{margin:0;padding:0 2px}.monthly-fee-table td{padding-top:18px;padding-bottom:18px}.monthly-fee-table td:nth-child(1){min-width:190px}.monthly-fee-table td:nth-child(2){min-width:220px}.monthly-fee-table td:nth-child(5){min-width:280px;line-height:1.45}.monthly-fee-table .ghost{min-height:36px;padding:8px 11px}.monthly-fee-activity-section{display:grid;gap:13px;margin:30px 0}.monthly-fee-activity-section .section-header{margin:0}.monthly-fee-activity-card{padding:21px 22px;gap:21px}.monthly-fee-group-list>a{padding:18px 20px}.monthly-fee-group-list .list-meta{gap:14px}.monthly-fee-group-list .badge{white-space:nowrap}

@media(max-width:1180px){.pilot-setup-grid{grid-template-columns:1fr}.pilot-side-stack{grid-template-columns:1fr 1fr}.pilot-invitation-forms{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.pilot-invitation-forms{grid-template-columns:1fr}.pilot-invitation-form+ .pilot-invitation-form{border-left:0;border-top:1px solid var(--border)}.pilot-side-stack{grid-template-columns:1fr}.pilot-email-status{align-items:flex-start}.pilot-invitation-table .pilot-row-actions{justify-content:flex-start}.monthly-fee-table td:nth-child(5){min-width:220px}}
@media(max-width:760px){.pilot-dashboard{gap:18px}.pilot-metrics{grid-template-columns:1fr 1fr}.pilot-invitation-create>summary{padding:18px}.pilot-invitation-create>summary::after{display:none}.pilot-invitation-form{padding:19px}.pilot-invitation-form>button,.pilot-multi-picker>[data-multi-person-add]{width:100%}.pilot-qr-panel{grid-template-columns:96px minmax(0,1fr);padding:18px}.pilot-qr-panel img{width:96px}.pilot-email-status{display:grid}.pilot-feedback-panel{padding:18px}.pilot-feedback-form{grid-template-columns:1fr}.pilot-feedback-form .span-2{grid-column:auto}.maintenance-overview{padding:21px}.maintenance-history-table td{padding-top:8px;padding-bottom:8px}.monthly-fee-toolbar{padding:18px}.monthly-fee-explanation{padding:20px}.monthly-fee-activity-card{padding:18px}.monthly-fee-group-list>a{padding:16px}.pilot-row-actions{justify-content:flex-start}}
@media(max-width:520px){.pilot-metrics{grid-template-columns:1fr}.pilot-qr-panel{grid-template-columns:1fr}.pilot-qr-panel img{width:min(170px,100%);margin:0 auto}.pilot-email-status>.badge{justify-self:start}.pilot-invitation-form{padding:17px}.pilot-selected-people{min-height:52px}.pilot-section-heading{align-items:flex-start;flex-direction:column}.pilot-section-heading>a{width:100%}.pilot-feedback-panel{padding:16px}.monthly-fee-metrics{grid-template-columns:1fr}.monthly-fee-activity-card{padding:16px}}

/* v0.3.7.4 · Ficha digital del alumnado */
.student-profile-notice{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;border:1px solid #d8d0ef;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#f8f5ff 100%);box-shadow:0 8px 24px rgba(64,45,104,.07)}
.student-profile-notice>div{min-width:0}.student-profile-notice h2{margin:5px 0 7px;font-size:21px}.student-profile-notice p{margin:0;max-width:850px;color:var(--muted);line-height:1.55}.student-profile-notice>a{flex:none}
.student-profile-notice.is-requested{border-color:#cfc0f3;background:linear-gradient(135deg,#fff 0%,#f4efff 100%)}
.student-profile-notice.is-submitted{border-color:#bcd7d0;background:linear-gradient(135deg,#fff 0%,#f0faf7 100%)}
.student-profile-notice.is-warning{border-color:#ead39d;background:linear-gradient(135deg,#fff 0%,#fff9eb 100%)}
.student-profile-compact{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border:1px solid #dce6e1;border-radius:14px;background:#f8fcfa;color:#38594c}.student-profile-compact a{font-weight:800;color:#365f88}
.student-profile-page{display:grid;gap:20px;max-width:1180px;margin:0 auto}.student-profile-intro,.student-profile-state{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 30px}.student-profile-intro>div,.student-profile-state>div{min-width:0}.student-profile-intro h2,.student-profile-state h2{margin:5px 0 8px;font-size:24px}.student-profile-intro p,.student-profile-state p{margin:0;max-width:760px;color:var(--muted);line-height:1.55}.student-profile-state.is-submitted{border-color:#bcd7d0;background:linear-gradient(135deg,#fff,#f2faf7)}.student-profile-state.is-warning{border-color:#ead39d;background:linear-gradient(135deg,#fff,#fff9eb)}
.student-profile-missing{display:grid;gap:5px;min-width:245px;max-width:330px;padding:16px 18px;border:1px solid #eadcb9;border-radius:13px;background:#fffaf0}.student-profile-missing strong{color:#77571a}.student-profile-missing span{color:#776b55;font-size:12px;line-height:1.45}
.student-profile-form{display:grid;gap:18px}.student-profile-form fieldset{display:grid;gap:18px;margin:0;padding:0;border:0;min-width:0}.student-profile-card{padding:27px 29px}.student-profile-card-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:22px;padding-bottom:17px;border-bottom:1px solid #e6ebf1}.student-profile-card-heading>div{min-width:0}.student-profile-card-heading h2{margin:1px 0 5px;font-size:20px}.student-profile-card-heading p{margin:0;color:var(--muted);line-height:1.45;font-size:13px}.student-profile-step{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#ff5757,#764aff);color:#fff;font-weight:850;box-shadow:0 7px 17px rgba(118,74,255,.17)}
.student-profile-card .form-grid{gap:18px 20px}.student-profile-card label{gap:8px}.required-mark,.optional-mark{margin-left:5px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.required-mark{color:#8b4d55}.optional-mark{color:#7b8797}.student-profile-consent{margin-top:17px;padding:15px 16px;border:1px solid #e1e7ee;border-radius:12px;background:#f9fbfd;line-height:1.45}.student-profile-actions{position:sticky;bottom:18px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border-color:#cdd9e5;box-shadow:0 12px 34px rgba(24,45,70,.14)}.student-profile-actions>div:first-child{display:grid;gap:4px}.student-profile-actions>div:first-child span{color:var(--muted);font-size:12px;line-height:1.45}.student-profile-actions>div:last-child{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.student-profile-admin-card{display:grid;gap:20px;padding:27px 29px;margin-bottom:22px}.student-profile-admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.student-profile-admin-heading>div:first-child{min-width:0}.student-profile-admin-heading h2{margin:5px 0 7px;font-size:22px}.student-profile-admin-heading p{margin:0;max-width:840px;color:var(--muted);line-height:1.5}.student-profile-admin-status{flex:none}.student-profile-admin-missing{display:grid;gap:5px;padding:15px 17px;border:1px solid #eadcb9;border-radius:12px;background:#fffaf0}.student-profile-admin-missing strong{color:#725516}.student-profile-admin-missing span{color:#756b59;font-size:13px;line-height:1.45}.student-profile-request-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.student-profile-request-actions form{margin:0}
.student-profile-comparison{display:grid;gap:15px}.student-profile-comparison-head{display:grid;gap:4px}.student-profile-comparison-head span{color:var(--muted);font-size:12px}.student-profile-comparison-table{box-shadow:none}.student-profile-comparison-table td{vertical-align:top;white-space:pre-line}.student-profile-comparison-table tr.is-changed{background:#fffaf0}.student-profile-comparison-table td:first-child{width:210px}.student-profile-comparison-table td:first-child small{display:inline-flex;margin-left:7px;padding:3px 6px;border-radius:999px;background:#f1dfb5;color:#76591e;font-size:9px;font-weight:850;text-transform:uppercase}.student-profile-review-actions{display:grid;grid-template-columns:auto minmax(360px,1fr);gap:16px;align-items:end;padding-top:3px}.student-profile-review-actions>form:first-child{margin:0}.student-profile-return-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:0}.student-profile-return-form label{min-width:0}
.student-access-state{gap:6px}.access-metrics{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.pilot-profile-request-check{padding:12px 13px;border:1px solid #e0e5ec;border-radius:11px;background:#fafbfe;line-height:1.4}

@media(max-width:900px){.student-profile-notice,.student-profile-intro,.student-profile-state{align-items:flex-start}.student-profile-review-actions{grid-template-columns:1fr}.student-profile-review-actions>form:first-child button{width:100%}.student-profile-return-form{grid-template-columns:1fr}.student-profile-return-form button{width:100%}}
@media(max-width:760px){.student-profile-notice,.student-profile-intro,.student-profile-state{display:grid;padding:21px}.student-profile-notice>a{width:100%}.student-profile-missing{min-width:0;max-width:none}.student-profile-card{padding:21px}.student-profile-card-heading{margin-bottom:18px}.student-profile-actions{position:static;display:grid;padding:18px}.student-profile-actions>div:last-child{display:grid}.student-profile-actions button{width:100%}.student-profile-admin-card{padding:21px}.student-profile-admin-heading{display:grid}.student-profile-admin-status{justify-self:start}.student-profile-comparison-table td:first-child{width:auto}}
@media(max-width:520px){.student-profile-notice,.student-profile-intro,.student-profile-state,.student-profile-card,.student-profile-admin-card{padding:18px}.student-profile-card-heading{gap:11px}.student-profile-step{width:31px;height:31px}.student-profile-request-actions{display:grid}.student-profile-request-actions>*{width:100%}.student-profile-request-actions button,.student-profile-request-actions a{width:100%}.student-profile-comparison-table tr{padding:13px 14px}.student-profile-comparison-table td{padding-left:0;padding-right:0}}
.pilot-dashboard>.pilot-metrics{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}.pilot-profile-status{color:#7452b3!important;font-weight:800}.student-profile-admin-card .status-info,.student-access-state .status-info{background:#eef3fb;color:#315f8d;border-color:#cad9e9}

/* v0.3.7.5 · Autorizaciones, imagen y celebraciones */
.student-consent-list{display:grid;gap:12px}.student-consent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:16px 18px;border:1px solid #e0e5ec;border-radius:13px;background:#fafbfd}.student-consent-row>div:first-child{display:grid;gap:5px;min-width:0}.student-consent-row>div:first-child strong{font-size:14px}.student-consent-row>div:first-child span{color:var(--muted);font-size:12px;line-height:1.5}.student-decision{display:flex;gap:7px}.student-decision label{display:block}.student-decision input{position:absolute;opacity:0;pointer-events:none}.student-decision span{display:grid;place-items:center;min-width:52px;padding:9px 13px;border:1px solid #cfd7e1;border-radius:10px;background:#fff;color:#526070;font-size:13px;font-weight:800;transition:.15s ease}.student-decision input:checked+span{border-color:#314667;background:#22314d;color:#fff;box-shadow:0 5px 13px rgba(34,49,77,.14)}.student-decision label:last-child input:checked+span{border-color:#c9a9ad;background:#fff4f4;color:#8a343d;box-shadow:none}.student-channel-field{margin-top:18px;max-width:460px}.student-consent-note{margin:16px 0 0;padding:13px 15px;border-left:3px solid #8f78c5;background:#f8f5ff;color:#5d5670;font-size:12px;line-height:1.55}.image-consents .student-consent-row{background:#fff}.student-consent-summary{display:grid;gap:13px;padding:18px 20px;border:1px solid #e0e5ec;border-radius:14px;background:#fafbfd}.student-consent-summary-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.student-consent-summary-heading span{color:var(--muted);font-size:12px}.student-consent-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}.student-consent-summary-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;padding:12px 13px;border:1px solid #e3e8ee;border-radius:11px;background:#fff}.student-consent-summary-item>span{font-size:12px;line-height:1.35}.student-consent-summary-item>strong{font-size:12px}.student-consent-summary-item>small{grid-column:1/-1}.consent-yes{color:#2f6b48}.consent-no{color:#9b3f46}.consent-unregistered{color:#7b8797}.student-consent-summary-note{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.birthday-list{overflow:hidden}.birthday-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;padding:15px 17px;border-bottom:1px solid var(--border)}.birthday-list>a:last-child{border-bottom:0}.birthday-list>a:hover{background:#fafbfd}.birthday-list div{display:grid;gap:3px}.birthday-list div span{color:var(--muted);font-size:12px}.birthday-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#fff3f6;font-size:19px}.student-profile-card .field-error{color:#9b323d;font-size:12px}.student-profile-card .student-decision+.field-error{grid-column:1/-1}
@media(max-width:760px){.student-consent-row{grid-template-columns:1fr;gap:13px}.student-decision{justify-content:flex-start}.student-decision label{flex:1}.student-decision span{width:100%}.student-consent-summary-heading{display:grid}.student-consent-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.student-consent-summary-grid{grid-template-columns:1fr}.birthday-list>a{grid-template-columns:auto minmax(0,1fr)}.birthday-list>a>.badge{grid-column:2;justify-self:start}.student-consent-row{padding:14px}}

/* Axis v0.3.7.6 · economía por actividad, verano y pulido visual */

.monthly-fee-control-card,
.billing-period-card,
.monthly-fee-generation-card,
.monthly-fee-settings-panel,
.bonus-products-panel,
.maintenance-overview,
.maintenance-manual-panel,
.pilot-invitation-create,
.pilot-qr-panel,
.pilot-email-status,
.pilot-feedback-panel {
    border-color: #dce3eb;
    box-shadow: 0 10px 28px rgba(31, 46, 67, .07);
}

.monthly-fee-control-card {
    display: grid;
    gap: 20px;
    padding: 28px 30px;
}

.monthly-fee-control-main {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
}

.monthly-fee-control-main > div:first-child {
    min-width: 0;
}

.monthly-fee-control-main h2,
.billing-period-card h2,
.monthly-fee-generation-card h2 {
    margin: 5px 0 8px;
    font-size: 24px;
}

.monthly-fee-control-main p,
.billing-period-card p,
.monthly-fee-generation-card p {
    margin: 0;
    max-width: 760px;
    color: var(--muted);
    line-height: 1.55;
}

.monthly-fee-month-picker {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto;
    gap: 12px;
    align-items: end;
    min-width: 340px;
}

.monthly-fee-month-navigation {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #e8edf2;
}

.monthly-fee-metrics {
    margin: 18px 0;
    gap: 14px;
}

.monthly-fee-metrics .metric {
    min-height: 112px;
    padding: 23px 24px;
}

.billing-period-card,
.monthly-fee-generation-card {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(340px, .8fr);
    gap: 34px;
    align-items: center;
    padding: 28px 30px;
    margin-bottom: 20px;
}

.billing-period-card.mode-summer_halves {
    border-color: #e4cf9d;
    background: linear-gradient(135deg, #fff, #fffaf0);
}

.billing-period-card.mode-closed {
    border-color: #d6dce4;
    background: linear-gradient(135deg, #fff, #f6f8fa);
}

.billing-period-form,
.monthly-fee-generate-panel {
    display: grid;
    gap: 13px;
    padding: 18px;
    border: 1px solid #dfe6ed;
    border-radius: 14px;
    background: rgba(255, 255, 255, .84);
}

.billing-period-form button,
.monthly-fee-generate-panel button {
    width: 100%;
}

.monthly-fee-section {
    margin-top: 28px;
}

.monthly-fee-table {
    overflow: hidden;
}

.monthly-fee-table table {
    table-layout: fixed;
}

.monthly-fee-table th,
.monthly-fee-table td {
    padding: 17px 18px;
    vertical-align: top;
}

.monthly-fee-table th:nth-child(1) { width: 15%; }
.monthly-fee-table th:nth-child(2) { width: 18%; }
.monthly-fee-table th:nth-child(3) { width: 24%; }
.monthly-fee-table th:nth-child(4) { width: 11%; }
.monthly-fee-table th:nth-child(5) { width: 20%; }
.monthly-fee-table th:nth-child(6) { width: 12%; }

.monthly-fee-table td > small,
.monthly-fee-table td strong + small,
.monthly-fee-group-card span,
.monthly-fee-activity-heading span {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.monthly-fee-amount {
    font-size: 16px;
}

.summer-option-form {
    display: grid;
    gap: 8px;
    margin-bottom: 7px;
}

.summer-option-form select {
    min-width: 150px;
}

.monthly-fee-settings-panel,
.bonus-products-panel,
.maintenance-manual-panel {
    margin-top: 22px;
    padding: 0;
    overflow: hidden;
}

.monthly-fee-settings-panel > summary,
.bonus-products-panel > summary,
.maintenance-manual-panel > summary,
.pilot-invitation-create > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 24px;
    cursor: pointer;
    list-style: none;
}

.monthly-fee-settings-panel > summary::-webkit-details-marker,
.bonus-products-panel > summary::-webkit-details-marker,
.maintenance-manual-panel > summary::-webkit-details-marker,
.pilot-invitation-create > summary::-webkit-details-marker {
    display: none;
}

.monthly-fee-settings-panel > summary > span:first-child,
.bonus-products-panel > summary > span:first-child {
    display: grid;
    gap: 4px;
}

.monthly-fee-settings-panel > summary small,
.bonus-products-panel > summary small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.monthly-fee-settings-panel[open] > summary,
.bonus-products-panel[open] > summary,
.maintenance-manual-panel[open] > summary,
.pilot-invitation-create[open] > summary {
    border-bottom: 1px solid #e6ebf1;
    background: #fafbfd;
}

.monthly-fee-activity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
    gap: 16px;
    padding: 22px;
}

.monthly-fee-activity-card {
    display: grid;
    gap: 18px;
    padding: 20px;
    border: 1px solid #dfe6ed;
    border-radius: 14px;
    background: #fff;
}

.monthly-fee-activity-heading,
.monthly-fee-activity-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.monthly-fee-activity-heading > div,
.monthly-fee-activity-footer > small {
    min-width: 0;
}

.monthly-fee-activity-heading strong {
    font-size: 16px;
}

.monthly-fee-activity-fields {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: 15px;
}

.monthly-fee-activity-footer {
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid #edf0f4;
}

.product-profile {
    flex: none;
    white-space: nowrap;
}

.money-input,
.inline-unit-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.money-input input,
.inline-unit-field input {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.money-input span,
.inline-unit-field span {
    display: grid;
    place-items: center;
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid #cfd8e2;
    border-left: 0;
    border-radius: 0 10px 10px 0;
    background: #f6f8fa;
    color: #536173;
    font-size: 13px;
    font-weight: 700;
}

.monthly-fee-group-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
    gap: 14px;
    padding: 22px;
}

.monthly-fee-group-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px;
    border: 1px solid #dfe6ed;
    border-radius: 13px;
    background: #fff;
}

.monthly-fee-group-card:hover {
    border-color: #bcc9d8;
    background: #fafbfd;
}

.monthly-fee-group-meta {
    display: grid;
    justify-items: end;
    gap: 7px;
    text-align: right;
}

.monthly-fee-runs-table th,
.monthly-fee-runs-table td,
.maintenance-history-table th,
.maintenance-history-table td,
.pilot-invitation-table th,
.pilot-invitation-table td,
.pilot-device-table th,
.pilot-device-table td {
    padding: 16px 18px;
}

/* Bonos */
.bonus-list-section {
    margin-top: 22px;
}

.bonus-products-content {
    display: grid;
    gap: 24px;
    padding: 24px;
}

.bonus-product-create {
    display: grid;
    gap: 18px;
    padding: 22px;
    border: 1px solid #dfe6ed;
    border-radius: 15px;
    background: #fafbfd;
}

.bonus-product-create-heading h3 {
    margin: 5px 0 7px;
    font-size: 20px;
}

.bonus-product-create-heading p {
    margin: 0;
    color: var(--muted);
}

.bonus-product-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.bonus-product-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.bonus-products-by-activity {
    display: grid;
    gap: 18px;
}

.bonus-activity-products {
    overflow: hidden;
    border: 1px solid #dfe6ed;
    border-radius: 15px;
    background: #fff;
}

.bonus-activity-products-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 19px 21px;
    border-bottom: 1px solid #e6ebf1;
    background: #fafbfd;
}

.bonus-activity-products-heading h3 {
    margin: 0 0 4px;
    font-size: 17px;
}

.bonus-activity-products-heading span {
    color: var(--muted);
    font-size: 12px;
}

.bonus-product-list {
    display: grid;
}

.bonus-product-row {
    display: grid;
    grid-template-columns: minmax(180px, 1.35fr) repeat(4, minmax(88px, .55fr)) minmax(150px, .9fr) auto;
    gap: 12px;
    align-items: end;
    padding: 17px 20px;
    border-bottom: 1px solid #edf0f4;
}

.bonus-product-row:last-child {
    border-bottom: 0;
}

.bonus-product-row label {
    gap: 6px;
    font-size: 11px;
}

.bonus-product-row-flags {
    display: grid;
    gap: 6px;
    padding-bottom: 5px;
}

.bonus-product-row-flags .check {
    min-height: auto;
}

.bonus-products-empty {
    padding: 22px;
    color: var(--muted);
}

.bonus-create-form {
    max-width: 1120px;
    margin: 0 auto;
    padding: 28px 30px;
}

.bonus-create-intro {
    margin-bottom: 22px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e6ebf1;
}

.bonus-create-intro h2 {
    margin: 5px 0 7px;
    font-size: 22px;
}

.bonus-create-intro p {
    margin: 0;
    color: var(--muted);
}

.bonus-shared-picker {
    padding: 16px;
    border: 1px solid #dfe6ed;
    border-radius: 13px;
    background: #fafbfd;
}

.bonus-issue-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .8fr);
    gap: 24px;
    align-items: center;
    margin-top: 24px;
    padding: 20px 22px;
    border: 1px solid #d8e1ea;
    border-radius: 14px;
    background: #f8fafc;
}

.bonus-issue-summary > div:first-child {
    display: grid;
    gap: 5px;
}

.bonus-issue-summary dl {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 0;
}

.bonus-issue-summary dl > div {
    padding: 11px 12px;
    border: 1px solid #e1e7ee;
    border-radius: 11px;
    background: #fff;
}

.bonus-issue-summary dt {
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.bonus-issue-summary dd {
    margin: 5px 0 0;
    font-weight: 800;
}

/* Mantenimiento */
.maintenance-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
    gap: 32px;
    align-items: center;
    padding: 28px 30px;
}

.maintenance-overview-copy h2 {
    margin: 5px 0 8px;
    font-size: 23px;
}

.maintenance-overview-copy p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.maintenance-status {
    display: grid;
    gap: 7px;
    padding: 19px 20px;
    border: 1px solid #dce5df;
    border-radius: 14px;
    background: #f5fbf7;
}

.maintenance-status.needs-attention {
    border-color: #ead3a2;
    background: #fff9ed;
}

.maintenance-status > span {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.maintenance-status > strong {
    font-size: 18px;
}

.maintenance-status small {
    color: var(--muted);
    line-height: 1.45;
}

.maintenance-manual-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(380px, .8fr);
    gap: 28px;
    padding: 24px;
}

.sync-range-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-items: end;
}

.sync-range-form button {
    grid-column: 1 / -1;
}

.maintenance-history-section {
    margin-top: 28px;
}

.maintenance-change-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.maintenance-change-summary span {
    padding: 5px 8px;
    border: 1px solid #dfe6ed;
    border-radius: 999px;
    background: #f7f9fb;
    color: #536173;
    font-size: 11px;
    white-space: nowrap;
}

/* Piloto */
.pilot-dashboard {
    display: grid;
    gap: 22px;
}

.pilot-metrics {
    gap: 14px;
}

.pilot-metrics .metric {
    min-height: 104px;
    padding: 21px 22px;
}

.pilot-setup-grid {
    gap: 20px;
}

.pilot-invitation-create,
.pilot-qr-panel,
.pilot-email-status,
.pilot-feedback-panel {
    overflow: hidden;
}

.pilot-invitation-forms {
    gap: 20px;
    padding: 22px;
}

.pilot-invitation-form {
    padding: 21px;
    border: 1px solid #dfe6ed;
    border-radius: 14px;
    background: #fafbfd;
}

.pilot-form-heading {
    margin-bottom: 18px;
}

.pilot-form-heading h3 {
    margin: 5px 0 7px;
}

.pilot-form-heading p {
    margin: 0;
    color: var(--muted);
    line-height: 1.45;
}

.pilot-qr-panel,
.pilot-email-status,
.pilot-feedback-panel {
    padding: 24px;
}

.pilot-section {
    margin-top: 6px;
}

.pilot-section-heading {
    margin-bottom: 14px;
}

.pilot-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-end;
}

@media (max-width: 1120px) {
    .monthly-fee-table table {
        table-layout: auto;
    }
    .bonus-product-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .bonus-product-row > button {
        width: 100%;
    }
}

@media (max-width: 900px) {
    .monthly-fee-control-main,
    .billing-period-card,
    .monthly-fee-generation-card,
    .maintenance-overview,
    .maintenance-manual-content,
    .bonus-issue-summary {
        grid-template-columns: 1fr;
    }
    .monthly-fee-control-main {
        display: grid;
        align-items: start;
    }
    .monthly-fee-month-picker {
        min-width: 0;
    }
    .bonus-product-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .bonus-issue-summary dl {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 760px) {
    .monthly-fee-control-card,
    .billing-period-card,
    .monthly-fee-generation-card,
    .bonus-create-form,
    .maintenance-overview {
        padding: 22px;
    }
    .monthly-fee-month-picker,
    .monthly-fee-activity-fields,
    .bonus-product-form-grid,
    .bonus-product-checks,
    .sync-range-form {
        grid-template-columns: 1fr;
    }
    .monthly-fee-month-navigation {
        display: grid;
    }
    .monthly-fee-activity-grid,
    .monthly-fee-group-grid,
    .bonus-products-content,
    .maintenance-manual-content,
    .pilot-invitation-forms {
        padding: 18px;
    }
    .monthly-fee-activity-heading,
    .monthly-fee-activity-footer,
    .monthly-fee-group-card,
    .bonus-activity-products-heading {
        display: grid;
    }
    .monthly-fee-group-meta {
        justify-items: start;
        text-align: left;
    }
    .bonus-product-row {
        grid-template-columns: 1fr 1fr;
    }
    .bonus-product-row > label:first-child,
    .bonus-product-row-flags,
    .bonus-product-row > button {
        grid-column: 1 / -1;
    }
    .bonus-issue-summary dl {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .monthly-fee-control-card,
    .billing-period-card,
    .monthly-fee-generation-card,
    .bonus-create-form,
    .maintenance-overview {
        padding: 18px;
    }
    .monthly-fee-settings-panel > summary,
    .bonus-products-panel > summary,
    .maintenance-manual-panel > summary,
    .pilot-invitation-create > summary {
        align-items: flex-start;
        padding: 18px;
    }
    .monthly-fee-settings-panel > summary > .badge,
    .bonus-products-panel > summary > .badge {
        display: none;
    }
    .monthly-fee-activity-grid,
    .monthly-fee-group-grid {
        grid-template-columns: 1fr;
    }
    .bonus-product-row {
        grid-template-columns: 1fr;
    }
    .bonus-product-row > * {
        grid-column: auto;
    }
    .pilot-row-actions {
        display: grid;
        justify-content: stretch;
    }
    .pilot-row-actions > * {
        width: 100%;
    }
}

.bonus-mixed-products {
    border-color: #d8ddea;
}

.bonus-mixed-note {
    margin: 0;
    padding: 14px 20px 18px;
    border-top: 1px solid #edf0f4;
    background: #fafbfd;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.manager-action-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    border: 1px solid #dfe6ed;
    border-radius: 13px;
    background: #fafbfd;
}

.manager-action-link p {
    margin: 5px 0 0;
    color: var(--muted);
    line-height: 1.45;
}

@media (max-width: 620px) {
    .manager-action-link {
        display: grid;
    }
    .manager-action-link .primary {
        width: 100%;
    }
}

/* Axis v0.3.9 · asistente web en modo piloto */
.assistant-pilot-panel {
    display: grid;
    gap: 22px;
    margin: 30px 0;
    padding: 28px;
    border: 1px solid #ded9ec;
    border-radius: 22px;
    background: linear-gradient(180deg, #fbf9ff 0%, #f7f5fb 100%);
}

.assistant-pilot-heading,
.assistant-handoff-heading {
    align-items: flex-start;
    margin: 0;
}

.assistant-pilot-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.assistant-pilot-metrics .metric {
    min-height: 112px;
    padding: 20px;
}

.assistant-pilot-status-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, .8fr);
    gap: 16px;
}

.assistant-readiness-card,
.assistant-activation-card {
    padding: 22px;
}

.assistant-readiness-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.assistant-readiness-title h3,
.assistant-activation-card h3,
.assistant-config-section-heading h3,
.assistant-handoff-heading h3 {
    margin: 4px 0 0;
}

.assistant-readiness-list {
    display: grid;
    gap: 7px;
    margin: 16px 0 0;
    padding: 14px 16px 14px 34px;
    border-radius: 12px;
    line-height: 1.45;
}

.assistant-readiness-list.is-blocker {
    border: 1px solid #f0ccd2;
    background: #fff5f6;
    color: #7f2936;
}

.assistant-readiness-list.is-warning {
    border: 1px solid #eadfb7;
    background: #fffaf0;
    color: #6a561d;
}

.assistant-ready-message {
    margin: 16px 0 0;
    padding: 13px 15px;
    border: 1px solid #c8e4d7;
    border-radius: 12px;
    background: #f1faf6;
    color: #27664a;
}

.assistant-flag-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.assistant-flag-grid span {
    display: grid;
    gap: 5px;
    padding: 11px 12px;
    border: 1px solid #e5e0ee;
    border-radius: 11px;
    background: #fff;
}

.assistant-flag-grid b {
    overflow-wrap: anywhere;
    font-size: 11px;
}

.assistant-flag-grid em {
    color: var(--muted);
    font-size: 12px;
    font-style: normal;
}

.assistant-activation-card {
    display: flex;
    flex-direction: column;
}

.assistant-activation-card p {
    color: var(--muted);
    line-height: 1.55;
}

.assistant-activation-actions {
    margin-top: auto;
    padding-top: 14px;
}

.assistant-config-panel,
.assistant-embed-panel {
    overflow: hidden;
    padding: 0;
}

.assistant-config-panel > summary,
.assistant-embed-panel > summary {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
}

.assistant-config-panel > summary::-webkit-details-marker,
.assistant-embed-panel > summary::-webkit-details-marker {
    display: none;
}

.assistant-config-panel > summary > span:nth-child(2),
.assistant-embed-panel > summary > span:nth-child(2) {
    display: grid;
    flex: 1;
    gap: 3px;
}

.assistant-config-panel > summary small,
.assistant-embed-panel > summary small {
    color: var(--muted);
}

.assistant-config-form,
.assistant-embed-content {
    display: grid;
    gap: 22px;
    padding: 0 22px 24px;
    border-top: 1px solid #ece8f2;
}

.assistant-config-form {
    padding-top: 22px;
}

.assistant-config-intro,
.assistant-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.assistant-config-form label,
.assistant-embed-content label {
    display: grid;
    gap: 7px;
}

.assistant-config-form textarea,
.assistant-embed-content textarea {
    resize: vertical;
}

.assistant-publish-options {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
    padding: 14px 16px;
    border: 1px solid #e5e0ee;
    border-radius: 13px;
    background: #faf9fc;
}

.assistant-operating-form label.check {
    display: flex;
    align-items: center;
}

.assistant-operating-form input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-height: 0;
    flex: 0 0 18px;
}

.assistant-activity-config-list {
    display: grid;
    gap: 14px;
}

.assistant-config-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
}

.assistant-config-section-heading p {
    max-width: 500px;
    margin: 0;
    color: var(--muted);
    text-align: right;
}

.assistant-activity-config {
    display: grid;
    grid-template-columns: minmax(220px, .75fr) minmax(360px, 1.35fr) minmax(260px, 1fr);
    gap: 16px;
    align-items: start;
    padding: 18px;
    border: 1px solid #e3dfee;
    border-radius: 15px;
    background: #fff;
}

.assistant-activity-toggle {
    grid-template-columns: auto 1fr !important;
    align-items: flex-start;
}

.assistant-activity-toggle > span {
    display: grid;
    gap: 4px;
}

.assistant-activity-toggle small,
.assistant-group-options small,
.assistant-no-groups,
.assistant-data-state-help {
    color: var(--muted);
}

.assistant-activity-primary,
.assistant-activity-content {
    display: grid;
    gap: 13px;
}

.assistant-activity-state-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.assistant-data-state-help {
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f6f5f8;
    font-size: 12px;
    line-height: 1.45;
}

.assistant-activity-config select {
    min-width: 0;
}

.assistant-group-options {
    display: grid;
    gap: 8px;
}

.assistant-group-options > strong {
    margin-bottom: 2px;
    font-size: 12px;
}

.assistant-group-options .check {
    align-items: flex-start;
    font-weight: 500;
}

.assistant-no-groups {
    margin: 0;
    padding: 11px 12px;
    border-radius: 10px;
    background: #f6f5f8;
}

.assistant-config-submit {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 4px;
}

.assistant-config-submit span {
    color: var(--muted);
    font-size: 12px;
}

.assistant-embed-content {
    padding-top: 20px;
}

.assistant-site-key {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #e5e0ee;
    border-radius: 12px;
    background: #faf9fc;
}

.assistant-site-key span {
    color: var(--muted);
    font-size: 12px;
}

.assistant-site-key code {
    flex: 1;
    overflow-wrap: anywhere;
}

.assistant-embed-content textarea {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12px;
    line-height: 1.5;
}

.assistant-handoff-section {
    display: grid;
    gap: 14px;
}

.assistant-handoff-table td small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

.status-assigned,
.status-new {
    background: #fff4d8;
    color: #755713;
}

@media (max-width: 1180px) {
    .assistant-pilot-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .assistant-activity-config {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .assistant-group-options,
    .assistant-no-groups {
        grid-column: 1 / -1;
    }
}

@media (max-width: 860px) {
    .assistant-pilot-panel {
        padding: 20px;
    }
    .assistant-pilot-status-grid,
    .assistant-config-intro,
    .assistant-contact-grid,
    .assistant-activity-config,
    .assistant-activity-state-grid {
        grid-template-columns: 1fr;
    }
    .assistant-config-section-heading {
        display: grid;
    }
    .assistant-config-section-heading p {
        text-align: left;
    }
    .assistant-flag-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .assistant-pilot-panel {
        margin-inline: -4px;
        padding: 16px;
        border-radius: 17px;
    }
    .assistant-pilot-metrics {
        grid-template-columns: 1fr 1fr;
    }
    .assistant-config-panel > summary,
    .assistant-embed-panel > summary {
        align-items: flex-start;
        padding: 17px;
    }
    .assistant-config-panel > summary > .badge {
        display: none;
    }
    .assistant-config-form,
    .assistant-embed-content {
        padding-inline: 17px;
    }
    .assistant-readiness-title,
    .assistant-site-key,
    .assistant-config-submit {
        display: grid;
    }
}


/* Axis Core v0.3.9.2 — Laboratorio IA con conocimiento revisado */
.assistant-pilot-heading-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.ai-lab-page {
    display: grid;
    gap: 22px;
}

.ai-lab-status-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
    gap: 18px;
}

.ai-lab-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    padding: 24px;
}

.ai-lab-intro h2,
.ai-lab-setup h2,
.ai-lab-form h2,
.ai-lab-result h2,
.ai-lab-empty h2 {
    margin: 5px 0 8px;
}

.ai-lab-intro p,
.ai-lab-setup p,
.ai-lab-empty p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.ai-lab-runtime {
    padding: 22px;
}

.ai-lab-runtime-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.ai-lab-runtime-list span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 9px;
    border-bottom: 1px solid #eeeaf3;
}

.ai-lab-runtime-list span:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.ai-lab-runtime-list b {
    font-size: 12px;
    color: var(--muted);
}

.ai-lab-runtime-list em {
    font-style: normal;
    font-weight: 700;
    text-align: right;
}

.ai-lab-setup {
    display: grid;
    grid-template-columns: minmax(240px, .75fr) minmax(360px, 1.25fr);
    gap: 22px;
    align-items: center;
    padding: 24px;
    border-color: #eadfb7;
    background: #fffcf2;
}

.ai-lab-setup pre,
.ai-lab-json pre {
    margin: 0;
    padding: 16px;
    overflow: auto;
    border-radius: 12px;
    background: #25212c;
    color: #f8f5ff;
    font-size: 12px;
    line-height: 1.55;
}

.ai-lab-setup > .muted {
    grid-column: 1 / -1;
}

.ai-lab-workspace {
    display: grid;
    grid-template-columns: minmax(340px, .86fr) minmax(0, 1.14fr);
    gap: 18px;
    align-items: start;
}

.ai-lab-form,
.ai-lab-result,
.ai-lab-empty {
    padding: 24px;
}

.ai-lab-form {
    display: grid;
    gap: 18px;
}

.ai-lab-form-heading,
.ai-lab-result-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.ai-lab-form textarea {
    min-height: 190px;
    resize: vertical;
}

.ai-lab-examples {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ai-lab-examples > span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.ai-lab-confirmation {
    align-items: flex-start;
    padding: 14px;
    border: 1px solid #e6e0ee;
    border-radius: 12px;
    background: #faf9fc;
    line-height: 1.45;
}

.ai-lab-result-column {
    min-width: 0;
}

.ai-lab-result blockquote {
    margin: 18px 0;
    padding: 18px 20px;
    border-left: 4px solid var(--primary);
    border-radius: 0 14px 14px 0;
    background: #f8f4ff;
    font-size: 17px;
    line-height: 1.55;
}

.ai-lab-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.ai-lab-result-grid > div {
    min-width: 0;
    padding: 13px;
    border: 1px solid #e9e4ef;
    border-radius: 12px;
    background: #fff;
}

.ai-lab-result-grid span,
.ai-lab-secondary-result span {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ai-lab-result-grid strong {
    display: block;
    overflow-wrap: anywhere;
    font-size: 13px;
}

.ai-lab-secondary-result {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.ai-lab-secondary-result > div {
    padding: 14px 16px;
    border-radius: 12px;
    background: #faf9fc;
}

.ai-lab-secondary-result p {
    margin: 0;
    line-height: 1.5;
}

.ai-lab-technical {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.ai-lab-technical span {
    padding: 8px 10px;
    border-radius: 999px;
    background: #f0edf4;
    font-size: 12px;
}

.ai-lab-technical b {
    margin-right: 6px;
}

.ai-lab-json {
    margin-top: 16px;
    border-top: 1px solid #eee9f2;
    padding-top: 14px;
}

.ai-lab-json summary {
    cursor: pointer;
    font-weight: 700;
}

.ai-lab-json pre {
    margin-top: 12px;
    max-height: 420px;
}

.ai-lab-empty {
    min-height: 300px;
    display: grid;
    align-content: center;
    text-align: center;
}

.ai-lab-history {
    display: grid;
    gap: 12px;
}

.error-text {
    color: #9c2f3d;
    line-height: 1.5;
}

@media (max-width: 1050px) {
    .ai-lab-status-grid,
    .ai-lab-workspace {
        grid-template-columns: 1fr;
    }

    .ai-lab-setup {
        grid-template-columns: 1fr;
    }

    .ai-lab-setup > .muted {
        grid-column: auto;
    }
}

@media (max-width: 650px) {
    .ai-lab-intro,
    .ai-lab-form-heading,
    .ai-lab-result-heading {
        display: grid;
    }

    .ai-lab-result-grid {
        grid-template-columns: 1fr 1fr;
    }

    .ai-lab-form,
    .ai-lab-result,
    .ai-lab-empty,
    .ai-lab-intro,
    .ai-lab-runtime,
    .ai-lab-setup {
        padding: 18px;
    }
}

@media (max-width: 430px) {
    .ai-lab-result-grid {
        grid-template-columns: 1fr;
    }
}

/* Axis v0.3.9.2 — conocimiento editorial y control de respuestas IA */
.ai-lab-runtime-list span:last-child {
    grid-column: 1 / -1;
}

.ai-lab-policy-notice {
    margin-top: 16px;
    margin-bottom: 0;
}

.ai-lab-secondary-result > div {
    min-width: 0;
}

.ai-lab-secondary-result p {
    overflow-wrap: anywhere;
}

.ai-lab-technical span {
    min-width: 150px;
}

@media (max-width: 760px) {
    .ai-lab-technical span {
        min-width: 0;
    }
}

/* Axis Core v0.3.9.4 — Economía: operativa separada de la configuración */
.badge.status-ready{background:#edf2ff;color:#3555a0}.badge.status-review{background:#fff3dc;color:#855813}.badge.status-muted{background:#eef1f5;color:#526071}

.economy-settings-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 26px;margin-bottom:18px;background:linear-gradient(135deg,#fff 0%,#fbf9ff 100%)}
.economy-settings-hero>div:first-child{max-width:760px}.economy-settings-hero h2{margin:5px 0 8px;font-size:23px}.economy-settings-hero p{margin:0;color:var(--muted);line-height:1.6}
.economy-settings-legend{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;min-width:250px}.economy-settings-legend span{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid #e6e0ef;border-radius:999px;background:#fff;color:#596477;font-size:12px;white-space:nowrap}.economy-settings-legend b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--alameda-gradient);color:#fff;font-size:11px}.bonus-settings-legend b{width:auto;min-width:28px;padding-inline:7px;border-radius:999px}
.economy-settings-metrics{margin-bottom:24px}.economy-settings-section{display:grid;gap:12px;margin-top:24px}.economy-settings-section>.section-header{margin:0;padding:0 2px}.economy-settings-section>.section-header>span{color:var(--muted);font-size:13px}.economy-settings-table{box-shadow:var(--axis-shadow)}.economy-settings-table table{min-width:980px}.economy-settings-table th,.economy-settings-table td{padding:15px 16px}.economy-settings-table td>strong{display:block}.economy-settings-table td small{display:block;margin-top:4px;line-height:1.4}.economy-settings-table tr[id]{scroll-margin-top:110px}.economy-settings-table tr:target{background:#fffaf0}.economy-settings-table .actions-cell{white-space:nowrap}.economy-settings-table .actions-cell form{display:inline}.economy-settings-table .actions-cell .secondary{min-width:88px}
.economy-table-input{min-width:0}.economy-settings-table input.economy-table-input,.economy-settings-table .economy-table-input input{min-width:0;width:100%;min-height:40px}.activity-rate-table .economy-table-input{max-width:170px}.activity-rate-table td:nth-child(3)>.economy-table-input{max-width:110px}.bonus-rate-table{overflow:auto}.bonus-rate-table table{min-width:1220px}.bonus-rate-table .bonus-name-input{min-width:190px}.bonus-rate-table .economy-number-input{max-width:88px}.bonus-rate-table .money-input{min-width:120px;max-width:145px}.bonus-rate-table .inline-unit-field{min-width:135px;max-width:155px}
.economy-toggle{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 2px;font-size:12px;font-weight:700;color:#536173}.economy-toggle input{width:18px;height:18px;min-height:0}.economy-toggle span{min-width:20px}.economy-toggle span::before{content:"No"}.economy-toggle input:checked+span::before{content:"Sí"}.mixed-bonus-row{background:#fcfbff}.economy-empty-activity-row{background:#fafbfd}.economy-empty-activity-row td[colspan]{color:var(--muted)}
.economy-settings-footnote{margin:1px 2px 0;color:var(--muted);font-size:12px;line-height:1.5}

.economy-create-panel{margin-top:22px;padding:0;overflow:hidden}.economy-create-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 23px;cursor:pointer;list-style:none}.economy-create-panel>summary::-webkit-details-marker{display:none}.economy-create-panel>summary>span:first-child{display:grid;gap:4px}.economy-create-panel>summary small{color:var(--muted);font-size:12px}.economy-create-panel[open]>summary{border-bottom:1px solid #e6ebf1;background:#fafbfd}.economy-create-form{display:grid;gap:18px;padding:23px}.economy-create-form .form-actions{padding-top:2px}

.monthly-fee-control-card+.monthly-fee-metrics{margin-top:0}.monthly-fee-runs-table{margin-bottom:6px}

@media(max-width:1100px){
  .economy-settings-hero{align-items:flex-start}.economy-settings-legend{min-width:0}.economy-settings-table table{min-width:900px}.bonus-rate-table table{min-width:1120px}
}

@media(max-width:760px){
  .economy-settings-hero{display:grid;padding:20px}.economy-settings-legend{justify-content:flex-start}.economy-settings-metrics{grid-template-columns:1fr 1fr}.economy-settings-table{overflow:visible}.economy-settings-table table{min-width:0}.economy-settings-table tr{padding:16px}.economy-settings-table td{align-items:flex-start;padding:8px 0}.economy-settings-table td::before{flex:0 0 125px}.economy-settings-table td>*{max-width:calc(100% - 137px)}.economy-settings-table td .money-input,.economy-settings-table td .inline-unit-field{width:min(210px,100%)}.economy-settings-table .actions-cell form,.economy-settings-table .actions-cell a{width:100%;max-width:none}.economy-settings-table .actions-cell .secondary{width:100%}.economy-settings-table td[colspan]{max-width:none}.economy-settings-table td[colspan]::before{display:none}.bonus-rate-table .bonus-name-input,.bonus-rate-table .economy-number-input,.bonus-rate-table .money-input,.bonus-rate-table .inline-unit-field,.activity-rate-table .economy-table-input,.activity-rate-table td:nth-child(3)>.economy-table-input{max-width:100%}.economy-create-panel>summary{align-items:flex-start;padding:18px}.economy-create-form{padding:18px}.economy-create-form .bonus-product-form-grid,.economy-create-form .bonus-product-checks{grid-template-columns:1fr}
}

@media(max-width:520px){
  .economy-settings-metrics{grid-template-columns:1fr}.economy-settings-legend{display:grid;grid-template-columns:1fr}.economy-settings-legend span{justify-content:flex-start}.economy-settings-table td{display:grid;gap:6px}.economy-settings-table td::before{flex:none}.economy-settings-table td>*{max-width:none}.economy-settings-hero{padding:18px}.economy-settings-hero h2{font-size:21px}
}

/* Axis Core v0.3.9.5 · alta rápida por grupo */
.quick-entry-intro,.quick-entry-preview-header{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}.quick-entry-intro>div,.quick-entry-preview-header>div:first-child{max-width:760px}.quick-entry-intro ul{margin:0;min-width:290px}.quick-entry-group-card{margin-bottom:18px}.quick-entry-paste{margin-bottom:18px}.quick-entry-paste summary{cursor:pointer;font-weight:700}.quick-entry-paste>div{padding-top:16px}.quick-entry-paste textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.quick-entry-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 12px}.quick-entry-toolbar div{display:flex;flex-direction:column}.quick-entry-rows{display:grid;gap:14px}.quick-entry-row{padding:18px}.quick-entry-row header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.quick-entry-row-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-entry-row-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.quick-entry-row-notes{grid-column:span 2}.quick-entry-row [hidden]{display:none!important}.quick-entry-row [data-quick-entry-date].is-required small{font-weight:700}.quick-entry-form-actions,.quick-entry-confirm-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:20px}.quick-entry-result,.quick-entry-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.quick-entry-result>div,.quick-entry-summary article{display:flex;flex-direction:column;gap:3px}.quick-entry-result strong,.quick-entry-summary strong{font-size:1.65rem}.quick-entry-summary{margin:18px 0}.quick-entry-summary .has-errors{border-color:#c53b48}.quick-entry-safety{max-width:340px;padding:14px 16px;border-radius:14px;background:#eef9f2;display:flex;flex-direction:column}.quick-entry-preview-table td span{display:block}.quick-entry-row-error{background:#fff5f5}.quick-entry-row-warning{background:#fffaf0}.quick-entry-issue{margin:7px 0 0;color:#a3212e;font-size:.9rem}.quick-entry-warning{margin:7px 0 0;color:#765000;font-size:.9rem}.quick-entry-blocked{font-weight:700;color:#a3212e}.manager-confirm-membership{margin-top:16px;border:1px solid rgba(118,74,255,.25);border-radius:14px;padding:16px;background:rgba(118,74,255,.04)}
@media (max-width:980px){.quick-entry-row-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-entry-intro,.quick-entry-preview-header{flex-direction:column}.quick-entry-intro ul{min-width:0}.quick-entry-row-notes{grid-column:span 2}}
@media (max-width:640px){.quick-entry-row-grid{grid-template-columns:1fr}.quick-entry-row-notes{grid-column:auto}.quick-entry-toolbar,.quick-entry-form-actions,.quick-entry-confirm-actions{align-items:stretch;flex-direction:column}.quick-entry-toolbar button,.quick-entry-form-actions a,.quick-entry-form-actions button,.quick-entry-confirm-actions button{width:100%}.quick-entry-preview-table table,.quick-entry-preview-table tbody,.quick-entry-preview-table tr,.quick-entry-preview-table td{display:block}.quick-entry-preview-table thead{display:none}.quick-entry-preview-table tr{padding:12px;border-bottom:1px solid var(--border,#ddd)}.quick-entry-preview-table td{padding:7px 0}.quick-entry-preview-table td:before{content:attr(data-label);display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;opacity:.65}}

/* Axis Core v0.3.9.6 · cuotas mensuales agrupadas por grupo */
.monthly-fee-safe-groups{display:grid;gap:8px;max-height:235px;overflow:auto;padding:2px}.monthly-fee-safe-groups-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #e5eaf0}.monthly-fee-safe-groups>label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:10px 11px;border:1px solid #e1e7ee;border-radius:11px;background:#fff}.monthly-fee-safe-groups>label input{width:18px;height:18px;min-height:0;margin-top:2px}.monthly-fee-safe-groups>label span{display:grid;gap:2px}.monthly-fee-safe-groups>label small{color:var(--muted);font-size:11px}.monthly-fee-no-safe-groups{display:grid;gap:4px;padding:14px;border:1px solid #e2e7ed;border-radius:12px;background:#f8fafc}.monthly-fee-no-safe-groups span{color:var(--muted);font-size:12px;line-height:1.45}
.monthly-fee-filter-panel{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;align-items:end;padding:18px 20px;margin-bottom:14px}.monthly-fee-filter-panel label{min-width:0}.monthly-fee-person-filter{grid-column:span 2}.monthly-fee-filter-actions{display:flex;align-items:center;gap:9px;justify-content:flex-end}.monthly-fee-group-cards{display:grid;gap:14px}.monthly-fee-group-card{padding:0;overflow:hidden;border-left:4px solid #ccd4de}.monthly-fee-group-card.state-review{border-left-color:#d0932e}.monthly-fee-group-card.state-ready{border-left-color:#3e8d61}.monthly-fee-group-card.state-existing{border-left-color:#557ac4}.monthly-fee-group-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px}.monthly-fee-group-heading>div:first-child{min-width:0}.monthly-fee-group-heading h3,.monthly-fee-group-heading h2{margin:4px 0 5px}.monthly-fee-group-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.monthly-fee-group-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #e7ebf0;border-bottom:1px solid #e7ebf0;background:#fafbfd}.monthly-fee-group-metrics>div{display:grid;gap:3px;padding:14px 18px;border-right:1px solid #e7ebf0}.monthly-fee-group-metrics>div:last-child{border-right:0}.monthly-fee-group-metrics strong{font-size:18px}.monthly-fee-group-metrics span{color:var(--muted);font-size:11px}.monthly-fee-summer-summary{display:flex;gap:8px;flex-wrap:wrap;padding:13px 20px;border-bottom:1px solid #e7ebf0}.monthly-fee-summer-summary span{padding:6px 9px;border-radius:999px;background:#f1f4f8;color:#536173;font-size:11px;font-weight:700}.monthly-fee-summer-summary span.is-warning{background:#fff0d8;color:#865800}.monthly-fee-group-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:14px 20px}.monthly-fee-generation-note{margin-right:auto;color:var(--muted);font-size:12px}.monthly-fee-generation-note.is-warning{color:#8a5700;font-weight:700}.monthly-fee-group-detail{padding:0 20px 20px;border-top:1px solid #e7ebf0;background:#fcfdff}.monthly-fee-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 2px 12px}.monthly-fee-detail-heading>div{display:grid;gap:3px}.monthly-fee-detail-heading span{color:var(--muted);font-size:12px}.monthly-fee-detail-table{overflow:auto;border:1px solid #e1e7ee;border-radius:13px;background:#fff}.monthly-fee-detail-table table{min-width:940px}.monthly-fee-detail-table th,.monthly-fee-detail-table td{padding:14px 15px;vertical-align:top}.monthly-fee-detail-table th:nth-child(1){width:18%}.monthly-fee-detail-table th:nth-child(2){width:24%}.monthly-fee-detail-table th:nth-child(3){width:13%}.monthly-fee-detail-table th:nth-child(4){width:28%}.monthly-fee-detail-table th:nth-child(5){width:17%}.monthly-fee-detail-table td small{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.monthly-fee-detail-table .monthly-fee-amount{display:block;margin-top:4px}.monthly-fee-detail-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:13px}.monthly-fee-detail-pagination span{color:var(--muted);font-size:12px}.monthly-fee-detail-loading,.monthly-fee-detail-error{padding:22px;text-align:center;color:var(--muted)}.monthly-fee-detail-error{color:#923642}.monthly-fee-empty-groups{padding:30px;text-align:center}.monthly-fee-standalone-group{padding:4px 22px 22px}.monthly-fee-standalone-group .monthly-fee-group-heading{padding-inline:0}
@media(max-width:980px){.monthly-fee-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-fee-person-filter{grid-column:span 2}.monthly-fee-filter-actions{grid-column:span 2}.monthly-fee-group-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-fee-group-metrics>div:nth-child(2){border-right:0}.monthly-fee-group-metrics>div:nth-child(-n+2){border-bottom:1px solid #e7ebf0}}
@media(max-width:760px){.monthly-fee-safe-groups-heading,.monthly-fee-group-heading,.monthly-fee-group-actions,.monthly-fee-detail-heading{align-items:flex-start;flex-direction:column}.monthly-fee-group-actions{display:grid}.monthly-fee-group-actions button,.monthly-fee-group-actions a{width:100%}.monthly-fee-generation-note{margin:0}.monthly-fee-filter-panel{grid-template-columns:1fr;padding:16px}.monthly-fee-person-filter,.monthly-fee-filter-actions{grid-column:auto}.monthly-fee-filter-actions{display:grid;grid-template-columns:1fr 1fr}.monthly-fee-filter-actions>*{width:100%}.monthly-fee-group-detail{padding:0 14px 16px}.monthly-fee-detail-table{overflow:visible}.monthly-fee-detail-table table{min-width:0}.monthly-fee-detail-table tr{padding:13px 14px}.monthly-fee-detail-table td{padding:7px 0}.monthly-fee-detail-table td::before{flex:0 0 130px}.monthly-fee-standalone-group{padding:3px 15px 18px}}
@media(max-width:520px){.monthly-fee-group-metrics{grid-template-columns:1fr}.monthly-fee-group-metrics>div{border-right:0;border-bottom:1px solid #e7ebf0}.monthly-fee-group-metrics>div:last-child{border-bottom:0}.monthly-fee-filter-actions{grid-template-columns:1fr}.monthly-fee-detail-table td{display:grid;gap:5px}.monthly-fee-detail-table td::before{flex:none}.monthly-fee-detail-pagination{justify-content:space-between}.monthly-fee-detail-pagination span{display:none}}
/* Axis Core v0.3.9.7 — preparación de septiembre, revisión progresiva y alta rápida compacta */

/* Alta rápida por grupo */
.quick-entry-intro,
.quick-entry-section-heading,
.quick-entry-preview-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.quick-entry-intro { padding: 22px 24px; }
.quick-entry-intro h2,
.quick-entry-section-heading h2 { margin: 3px 0 7px; }
.quick-entry-intro p { margin-bottom: 0; max-width: 760px; }
.quick-entry-intro ul { margin: 0; min-width: 285px; padding-left: 20px; color: var(--muted); line-height: 1.55; }
.quick-entry-group-card { padding: 22px 24px; }
.quick-entry-section-heading { margin-bottom: 17px; }
.quick-entry-section-heading .badge { flex: 0 0 auto; }
.quick-entry-paste { padding: 0; overflow: hidden; }
.quick-entry-paste > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 22px;
    cursor: pointer;
    list-style: none;
}
.quick-entry-paste > summary::-webkit-details-marker { display: none; }
.quick-entry-paste > summary > span { display: grid; gap: 3px; }
.quick-entry-paste > summary small { color: var(--muted); font-weight: 400; }
.quick-entry-paste[open] > summary { border-bottom: 1px solid #e5eaf1; background: #fafbfd; }
.quick-entry-paste > div { display: grid; gap: 12px; padding: 19px 22px 22px; }
.quick-entry-paste textarea { width: 100%; min-height: 120px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.quick-entry-paste-preview {
    max-height: 220px;
    overflow: auto;
    border: 1px solid #dde4ed;
    border-radius: 12px;
    background: #fafbfd;
    padding: 10px 12px;
}
.quick-entry-paste-preview table { width: 100%; min-width: 560px; font-size: 12px; }
.quick-entry-paste-preview td,
.quick-entry-paste-preview th { padding: 7px 8px; }
.quick-entry-live-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(115px, 1fr));
    gap: 10px;
    margin: 18px 0;
}
.quick-entry-live-summary > div {
    display: grid;
    gap: 2px;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #e1e6ee;
    border-radius: 13px;
    background: #fff;
}
.quick-entry-live-summary strong { font-size: 22px; line-height: 1; }
.quick-entry-live-summary span { color: var(--muted); font-size: 12px; line-height: 1.3; }
.quick-entry-toolbar { margin-top: 24px; }
.quick-entry-toolbar > div { gap: 2px; }
.quick-entry-toolbar > div > span:last-child { color: var(--muted); font-size: 13px; }
.quick-entry-rows { gap: 10px; }
.quick-entry-row {
    padding: 15px 17px 16px;
    border-color: #e0e6ee;
    box-shadow: 0 4px 14px rgba(23, 37, 61, .045);
}
.quick-entry-row-header { margin-bottom: 12px !important; }
.quick-entry-row-header > div:first-child {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}
.quick-entry-row-index {
    display: inline-flex;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef2f7;
    color: #596779;
    font-size: 11px;
    font-weight: 700;
}
.quick-entry-row-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-entry-row-state {
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff3dc;
    color: #855813;
    font-size: 11px;
    font-weight: 700;
}
.quick-entry-row-actions { flex: 0 0 auto; }
.quick-entry-row-actions button { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.quick-entry-remove { color: #a12f3e; }
.quick-entry-identity-grid,
.quick-entry-status-grid {
    display: grid;
    gap: 11px;
}
.quick-entry-identity-grid { grid-template-columns: 1.05fr 1.35fr .95fr 1.25fr; }
.quick-entry-status-grid {
    grid-template-columns: 1.25fr .95fr 1fr .8fr;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e2e7ee;
}
.quick-entry-row label { gap: 5px; font-size: 12px; }
.quick-entry-row input,
.quick-entry-row select { min-height: 39px; }
.quick-entry-row small { line-height: 1.3; }
.quick-entry-notes {
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px dashed #e2e7ee;
}
.quick-entry-notes > summary { cursor: pointer; color: #526175; font-size: 12px; font-weight: 700; }
.quick-entry-notes > label { margin-top: 9px; }
.quick-entry-bottom-add { display: flex; justify-content: center; padding: 15px 0 2px; }
.quick-entry-form-actions { position: sticky; bottom: 10px; z-index: 4; padding: 12px; border: 1px solid #dfe5ed; border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 10px 26px rgba(24,37,59,.12); backdrop-filter: blur(8px); }
.quick-entry-preview-table table { min-width: 980px; }
.quick-entry-preview-table td { vertical-align: top; }
.quick-entry-summary article { padding: 15px; }
.pending-membership-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.pending-membership-actions .danger-button { margin-left: auto; }

/* Entrada de Personas sin carga masiva */
.people-overview-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(135px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.people-overview-card {
    display: grid;
    gap: 5px;
    min-height: 105px;
    align-content: center;
    text-decoration: none;
    color: inherit;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.people-overview-card:hover { transform: translateY(-2px); border-color: rgba(118,74,255,.32); box-shadow: 0 10px 24px rgba(25,38,62,.09); }
.people-overview-card strong { font-size: 28px; line-height: 1; }
.people-overview-card span { color: var(--muted); font-size: 13px; }
.people-overview-card.is-review { background: #fffaf0; }
.people-overview-card.is-pending { background: #f7f4ff; }
.people-search-panel {
    display: grid;
    grid-template-columns: minmax(180px, 1.3fr) repeat(5, minmax(145px, 1fr));
    gap: 10px;
    align-items: end;
    padding: 17px;
    margin-bottom: 24px;
}
.people-search-panel > input,
.people-search-panel > select { min-width: 0; }
.people-search-actions { display: flex; gap: 8px; }
.people-recent-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.people-recent-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}
.people-recent-card > div { display: grid; min-width: 0; gap: 2px; }
.people-recent-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.people-recent-card span,
.people-recent-card small { color: var(--muted); }
.person-table-identity { display: inline-flex; align-items: center; gap: 9px; color: inherit; text-decoration: none; }
.disabled-button { opacity: .5; pointer-events: none; }

/* Cola secuencial de revisión */
.review-queue-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px,1fr)) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 14px;
}
.review-queue-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 17px 20px;
    margin-bottom: 14px;
    background: linear-gradient(135deg,#fff 0%,#faf8ff 100%);
}
.review-queue-progress > div { display: flex; align-items: baseline; gap: 9px; }
.review-queue-progress strong { font-size: 28px; }
.review-queue-progress p { margin: 0; max-width: 720px; color: var(--muted); }
.review-current-card { padding: 22px; }
.review-current-card > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 17px;
    border-bottom: 1px solid #e4e9f0;
}
.review-current-identity { display: flex; align-items: center; gap: 14px; min-width: 0; }
.review-current-identity h2 { margin: 2px 0 4px; }
.review-current-identity p { margin: 0; color: var(--muted); }
.review-current-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin: 17px 0; }
.review-current-grid > div { display: grid; gap: 3px; padding: 13px 14px; border-radius: 12px; background: #f7f9fb; min-width: 0; }
.review-current-grid span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.review-current-grid strong { overflow-wrap: anywhere; }
.review-current-grid small { color: var(--muted); }
.review-missing { padding: 13px 15px; border-radius: 12px; background: #fffaf0; }
.review-missing p { margin: 4px 0 0; color: #765a27; }
.review-current-card > footer { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.review-current-card > footer form { margin-left: auto; }
.review-queue-complete { display: grid; justify-items: start; gap: 8px; padding: 28px; }
.review-queue-complete > strong { font-size: 21px; }
.review-queue-complete > div { display: flex; gap: 9px; margin-top: 5px; }

/* Panel permanente de preparación */
.preparation-summary-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(115px, 1fr));
    gap: 11px;
    margin-bottom: 16px;
}
.preparation-summary { display: grid; align-content: center; gap: 4px; min-height: 105px; }
.preparation-summary strong { font-size: 28px; line-height: 1; }
.preparation-summary span { color: var(--muted); font-size: 12px; }
.preparation-summary.prepared { background: #f0faf4; }
.preparation-summary.review { background: #fffaf0; }
.preparation-summary.incomplete { background: #f5f7fa; }
.preparation-summary.blocked { background: #fff3f4; }
.preparation-filter {
    display: grid;
    grid-template-columns: repeat(2,minmax(210px,1fr)) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 16px;
}
.preparation-filter-actions { display: flex; gap: 8px; }
.preparation-quality { margin-bottom: 17px; }
.preparation-quality-grid { display: grid; grid-template-columns: repeat(6,minmax(115px,1fr)); gap: 10px; }
.preparation-quality-grid > a,
.preparation-quality-grid > span {
    display: grid;
    gap: 4px;
    min-height: 92px;
    align-content: center;
    padding: 13px 14px;
    border: 1px solid #e1e6ee;
    border-radius: 12px;
    background: #fafbfd;
    color: inherit;
    text-decoration: none;
}
.preparation-quality-grid strong { font-size: 23px; }
.preparation-quality-grid span span,
.preparation-quality-grid a span { color: var(--muted); font-size: 12px; line-height: 1.35; }
.preparation-groups { display: grid; gap: 13px; }
.preparation-group { padding: 20px 22px; border-left-width: 4px; }
.preparation-state-prepared { border-left-color: #399266; }
.preparation-state-review { border-left-color: #d39a34; }
.preparation-state-incomplete { border-left-color: #8190a3; }
.preparation-state-blocked { border-left-color: #bd4050; }
.preparation-group > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.preparation-group h2 { margin: 3px 0 5px; }
.preparation-group header p { margin: 0; color: var(--muted); }
.preparation-group-metrics { display: grid; grid-template-columns: repeat(5,minmax(100px,1fr)); gap: 9px; margin: 16px 0; }
.preparation-group-metrics > div { display: grid; gap: 2px; padding: 11px 12px; border-radius: 11px; background: #f6f8fa; }
.preparation-group-metrics strong { font-size: 19px; }
.preparation-group-metrics span { color: var(--muted); font-size: 11px; }
.preparation-issues { display: grid; gap: 6px; margin: 0 0 15px; }
.preparation-issues p { margin: 0; padding: 9px 11px; border-radius: 9px; font-size: 12px; }
.preparation-issue-info { background: #f1f5f9; color: #526173; }
.preparation-issue-important { background: #fff4df; color: #7c561b; }
.preparation-issue-blocked { background: #fff0f2; color: #983242; }
.preparation-group > footer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.preparation-badge-prepared { background: #e9f8ef; color: #28744d; }
.preparation-badge-review { background: #fff2da; color: #805711; }
.preparation-badge-incomplete { background: #edf1f5; color: #566475; }
.preparation-badge-blocked { background: #ffeaed; color: #993343; }

/* Seguimiento: localización de cualquier persona */
.lead-person-search-results { display: grid; gap: 9px; margin-bottom: 18px; }
.lead-person-search-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.lead-person-search-card > div { display: grid; gap: 3px; }
.lead-person-search-card small { color: var(--muted); }

@media (max-width: 1250px) {
    .quick-entry-live-summary,
    .preparation-summary-grid,
    .preparation-quality-grid { grid-template-columns: repeat(3,minmax(120px,1fr)); }
    .people-overview-grid { grid-template-columns: repeat(3,minmax(150px,1fr)); }
    .people-search-panel { grid-template-columns: repeat(3,minmax(160px,1fr)); }
    .people-search-actions { grid-column: span 3; }
}

@media (max-width: 980px) {
    .quick-entry-identity-grid,
    .quick-entry-status-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .people-recent-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .review-current-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .preparation-group-metrics { grid-template-columns: repeat(3,minmax(100px,1fr)); }
}

@media (max-width: 760px) {
    .quick-entry-intro,
    .quick-entry-section-heading,
    .quick-entry-preview-header,
    .review-queue-progress,
    .review-current-card > header { display: grid; }
    .quick-entry-intro ul { min-width: 0; }
    .quick-entry-group-card,
    .quick-entry-intro,
    .review-current-card,
    .preparation-group { padding: 17px; }
    .quick-entry-live-summary,
    .people-overview-grid,
    .preparation-summary-grid,
    .preparation-quality-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .people-search-panel,
    .review-queue-filters,
    .preparation-filter { grid-template-columns: 1fr 1fr; }
    .people-search-actions { grid-column: span 2; }
    .review-queue-filters button,
    .preparation-filter-actions { grid-column: span 2; }
    .people-recent-grid { grid-template-columns: 1fr; }
    .review-current-card > footer form { margin-left: 0; width: 100%; }
    .review-current-card > footer form button { width: 100%; }
    .preparation-group > header { display: grid; }
    .preparation-group-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pending-membership-actions { align-items: stretch; }
    .pending-membership-actions > * { flex: 1 1 100%; }
    .pending-membership-actions .danger-button { margin-left: 0; }
}

@media (max-width: 560px) {
    .quick-entry-identity-grid,
    .quick-entry-status-grid,
    .quick-entry-live-summary,
    .people-overview-grid,
    .people-search-panel,
    .review-queue-filters,
    .review-current-grid,
    .preparation-summary-grid,
    .preparation-quality-grid,
    .preparation-filter,
    .preparation-group-metrics { grid-template-columns: 1fr; }
    .people-search-actions,
    .review-queue-filters button,
    .preparation-filter-actions { grid-column: auto; }
    .quick-entry-row-header { align-items: flex-start !important; }
    .quick-entry-row-header,
    .quick-entry-row-actions { display: flex; flex-wrap: wrap; }
    .quick-entry-row-actions { width: 100%; }
    .quick-entry-row-actions button { flex: 1; }
    .quick-entry-form-actions { position: static; flex-direction: column; }
    .quick-entry-form-actions > * { width: 100%; text-align: center; }
    .review-current-identity { align-items: flex-start; }
    .review-queue-complete > div { display: grid; width: 100%; }
    .preparation-filter-actions { display: grid; }
}

/* Ajuste de selector de la búsqueda global de seguimiento */
.lead-person-search-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
@media (max-width: 760px) { .lead-person-search-grid { grid-template-columns: 1fr; } }

/* El panel de búsqueda puede crecer con filtros sin forzar una única fila. */
.people-search-panel { grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); }
.people-search-panel > input[name="q"] { grid-column: span 2; }
.people-search-actions { grid-column: auto; }
@media (max-width: 560px) { .people-search-panel > input[name="q"] { grid-column: auto; } }

/* v0.3.9.7.2 — ciclo de vida de grupos y preparación compacta */
.group-lifecycle-notice {
    margin-bottom: 16px;
}
.group-lifecycle-notice p,
.group-lifecycle-notice ul {
    margin: 6px 0 0;
}
.group-lifecycle-notice ul {
    padding-left: 20px;
    color: var(--muted);
}
.group-lifecycle-blocked {
    border-color: #efc8cd;
    background: #fff7f8;
}
.group-delete-zone {
    margin-top: 18px;
    padding: 20px 22px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    gap: 24px;
    align-items: end;
    border-color: #edc5cb;
    background: #fffafb;
}
.group-delete-zone h2 {
    margin: 3px 0 7px;
    font-size: 18px;
}
.group-delete-zone p {
    margin: 0;
    color: var(--muted);
}
.group-delete-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
}
.group-delete-form label {
    margin: 0;
}
.group-delete-blockers {
    padding: 13px 15px;
    border-radius: 12px;
    background: #fff0f2;
    color: #8e3542;
}
.group-delete-blockers ul {
    margin: 6px 0 0;
    padding-left: 19px;
}

.preparation-dashboard {
    padding: 18px 20px;
    margin-bottom: 12px;
}
.preparation-dashboard-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
}
.preparation-dashboard-heading h2 {
    margin: 3px 0 5px;
    font-size: 20px;
}
.preparation-dashboard-heading p {
    margin: 0;
    color: var(--muted);
}
.preparation-readiness {
    flex: 0 0 auto;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}
.preparation-readiness.blocked {
    color: #983242;
    background: #ffeaed;
}
.preparation-readiness.review {
    color: #805711;
    background: #fff2da;
}
.preparation-readiness.prepared {
    color: #28744d;
    background: #e9f8ef;
}
.preparation-dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(92px, 1fr));
    gap: 8px;
    margin-top: 15px;
}
.preparation-dashboard-metrics > a,
.preparation-dashboard-metrics > span {
    display: grid;
    gap: 2px;
    min-height: 62px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #f7f9fb;
    color: inherit;
    text-decoration: none;
}
.preparation-dashboard-metrics > a:hover {
    border-color: #b9c1cf;
    transform: translateY(-1px);
}
.preparation-dashboard-metrics strong {
    font-size: 21px;
    line-height: 1;
}
.preparation-dashboard-metrics span {
    color: var(--muted);
    font-size: 11px;
}
.preparation-dashboard-metrics .metric-critical {
    background: #fff3f4;
}
.preparation-dashboard-metrics .metric-review {
    background: #fffaf0;
}
.preparation-dashboard-metrics .metric-prepared {
    background: #f0faf4;
}
.preparation-toolbar {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) minmax(190px, 1fr) minmax(210px, auto) auto;
    gap: 12px;
    align-items: end;
    padding: 14px 16px;
    margin-bottom: 12px;
}
.preparation-toolbar label {
    margin: 0;
}
.preparation-show-prepared {
    min-height: 42px;
    align-self: end;
}
.preparation-toolbar-actions {
    display: flex;
    gap: 7px;
    align-items: center;
}
.preparation-quality-compact {
    padding: 0;
    margin-bottom: 12px;
    overflow: hidden;
}
.preparation-quality-compact summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 16px;
}
.preparation-quality-compact summary::-webkit-details-marker {
    display: none;
}
.preparation-quality-compact summary > span:first-child {
    display: grid;
    gap: 2px;
}
.preparation-quality-compact summary small {
    color: var(--muted);
    font-weight: 400;
}
.preparation-quality-compact[open] summary {
    border-bottom: 1px solid var(--border);
}
.preparation-quality-compact .preparation-quality-grid {
    padding: 12px 16px 16px;
}
.preparation-hidden-ready {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    margin: 0 0 12px;
    padding: 10px 13px;
    border: 1px solid #cfe7d9;
    border-radius: 11px;
    background: #f4fbf7;
    color: #345f48;
}
.preparation-groups {
    gap: 9px;
}
.preparation-group {
    padding: 14px 16px;
}
.preparation-group-primary {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}
.preparation-group-title h2 {
    margin: 2px 0 3px;
    font-size: 16px;
}
.preparation-group-title p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}
.preparation-group-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0;
}
.preparation-group-stats > span {
    padding: 5px 8px;
    border-radius: 999px;
    background: #f3f6f8;
    color: #526173;
    font-size: 11px;
}
.preparation-group-stats > span.has-warning {
    background: #fff2da;
    color: #805711;
}
.preparation-issues {
    gap: 4px;
    margin-bottom: 10px;
}
.preparation-issues p {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 9px;
}
.preparation-issues p a {
    flex: 0 0 auto;
    font-weight: 700;
    color: inherit;
}
.preparation-group > footer {
    gap: 6px;
}
.preparation-group > footer a {
    min-height: 34px;
    padding: 7px 10px;
    font-size: 12px;
}

@media (max-width: 1100px) {
    .preparation-dashboard-metrics {
        grid-template-columns: repeat(3, minmax(100px, 1fr));
    }
    .preparation-toolbar {
        grid-template-columns: 1fr 1fr;
    }
    .preparation-show-prepared,
    .preparation-toolbar-actions {
        grid-column: auto;
    }
}

@media (max-width: 760px) {
    .group-delete-zone {
        grid-template-columns: 1fr;
    }
    .group-delete-form {
        grid-template-columns: 1fr;
    }
    .preparation-dashboard-heading,
    .preparation-hidden-ready,
    .preparation-group-primary {
        display: grid;
    }
    .preparation-readiness {
        justify-self: start;
    }
    .preparation-dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .preparation-toolbar {
        grid-template-columns: 1fr;
    }
    .preparation-show-prepared,
    .preparation-toolbar-actions {
        grid-column: auto;
    }
    .preparation-toolbar-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .preparation-issues p {
        align-items: flex-start;
    }
}

@media (max-width: 430px) {
    .preparation-dashboard,
    .preparation-group {
        padding: 13px;
    }
    .preparation-dashboard-metrics {
        grid-template-columns: 1fr 1fr;
    }
    .preparation-dashboard-metrics > a,
    .preparation-dashboard-metrics > span {
        min-height: 58px;
    }
    .preparation-quality-compact summary {
        align-items: flex-start;
    }
    .preparation-group-stats {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .preparation-group-stats > span {
        border-radius: 9px;
    }
}

/* v0.3.9.7.2.2 — filtros de Personas, limpieza demo y compactación visual */
.people-overview-grid {
    grid-template-columns: repeat(5, minmax(120px, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}
.people-overview-card {
    min-height: 76px;
    padding: 12px 14px;
    gap: 3px;
}
.people-overview-card strong {
    font-size: 23px;
}
.people-overview-card span {
    font-size: 12px;
}
.people-search-panel {
    display: block;
    padding: 13px 14px;
    margin-bottom: 10px;
}
.people-search-main {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) minmax(250px, 1.35fr) minmax(170px, .8fr) auto;
    gap: 9px;
    align-items: end;
}
.people-search-main label,
.people-search-advanced-grid label {
    margin: 0;
    gap: 5px;
    font-size: 12px;
}
.people-search-main input,
.people-search-main select,
.people-search-advanced-grid select {
    min-height: 40px;
    padding-top: 9px;
    padding-bottom: 9px;
}
.people-search-actions {
    align-items: center;
    white-space: nowrap;
}
.people-search-actions > * {
    min-height: 40px;
}
.people-search-advanced {
    margin-top: 10px;
    border-top: 1px solid var(--border);
}
.people-search-advanced > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 2px 0;
    list-style: none;
    cursor: pointer;
    color: #526175;
    font-size: 12px;
    font-weight: 750;
}
.people-search-advanced > summary::-webkit-details-marker {
    display: none;
}
.people-search-advanced > summary::after {
    content: '+';
    margin-left: auto;
    font-size: 16px;
}
.people-search-advanced[open] > summary::after {
    content: '−';
}
.people-search-advanced > summary .badge {
    margin-left: 4px;
    margin-right: 2px;
}
.people-search-advanced-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 9px;
    padding-top: 10px;
}
.people-demo-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 14px;
    margin-bottom: 12px;
    border-color: #ead7b6;
    background: #fffaf1;
}
.people-demo-banner > div {
    display: grid;
    gap: 2px;
}
.people-demo-banner span {
    color: #765d32;
    font-size: 12px;
}
.people-recent-heading {
    margin: 12px 0 9px;
}
.people-recent-heading h2,
.people-results-heading h2 {
    margin: 0 0 3px;
    font-size: 17px;
}
.people-recent-heading p,
.people-results-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}
.people-recent-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}
.people-recent-card {
    min-height: 68px;
    padding: 11px 13px;
}
.people-results-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 12px 2px 8px;
}
.people-results-table th,
.people-results-table td {
    padding-top: 11px;
    padding-bottom: 11px;
}

.demo-cleanup-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    padding: 20px 22px;
    margin-bottom: 12px;
}
.demo-cleanup-intro h2 {
    margin: 4px 0 7px;
}
.demo-cleanup-intro p {
    margin: 0;
    max-width: 820px;
    color: var(--muted);
    line-height: 1.5;
}
.demo-cleanup-summary {
    display: grid;
    grid-template-columns: auto auto;
    gap: 3px 10px;
    align-items: baseline;
    padding: 12px 15px;
    border-radius: 12px;
    background: #f5f7fa;
}
.demo-cleanup-summary strong {
    font-size: 23px;
}
.demo-cleanup-summary span {
    color: var(--muted);
    font-size: 12px;
}
.demo-cleanup-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}
.demo-cleanup-person {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
}
.demo-cleanup-person small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
}
.demo-cleanup-danger {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    gap: 28px;
    align-items: end;
    padding: 20px 22px;
    border-color: #ecc3ca;
    background: #fff9fa;
}
.demo-cleanup-danger h2 {
    margin: 0 0 7px;
    font-size: 18px;
}
.demo-cleanup-danger p {
    margin: 5px 0 0;
    color: #77515a;
}
.demo-cleanup-danger form {
    display: grid;
    gap: 9px;
}
.demo-cleanup-danger form label {
    margin: 0;
}
.demo-cleanup-empty {
    display: grid;
    justify-items: start;
    gap: 8px;
}
.demo-cleanup-empty p {
    margin: 0;
}

@media (max-width: 1150px) {
    .people-search-main {
        grid-template-columns: 1fr 1fr;
    }
    .people-search-actions {
        justify-content: flex-start;
    }
    .people-search-advanced-grid,
    .people-recent-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .people-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .people-search-main,
    .people-search-advanced-grid,
    .demo-cleanup-intro,
    .demo-cleanup-danger {
        grid-template-columns: 1fr;
    }
    .people-search-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .people-demo-banner {
        align-items: flex-start;
        display: grid;
    }
    .people-demo-banner a {
        width: 100%;
    }
    .demo-cleanup-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .people-overview-grid,
    .people-recent-grid {
        grid-template-columns: 1fr;
    }
    .people-overview-card {
        min-height: 62px;
    }
    .people-search-actions {
        grid-template-columns: 1fr;
    }
    .demo-cleanup-person {
        align-items: flex-start;
        display: grid;
    }
}

/* Axis v0.3.9.8 · saldos iniciales y horarios habituales con bono */
.bonus-create-alt,
.bonus-opening-intro,
.opening-bonus-warning {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    background: rgba(118, 74, 255, .06);
    border: 1px solid rgba(118, 74, 255, .14);
}
.bonus-create-alt { margin-bottom: 1rem; }
.bonus-opening-intro { margin-bottom: 1.25rem; align-items: flex-start; }
.bonus-opening-intro h2 { margin: .2rem 0 .35rem; }
.bonus-opening-intro p,
.opening-bonus-warning span { margin: 0; color: var(--muted, #667085); }
.opening-bonus-warning { margin-top: 1.25rem; align-items: flex-start; }
.opening-bonus-warning strong { white-space: nowrap; }
.opening-allocation-list fieldset {
    margin: 0;
    padding: 1rem;
    border: 1px solid rgba(66, 69, 84, .14);
    border-radius: 16px;
    background: #fff;
}
.opening-allocation-list legend { padding: 0 .4rem; font-weight: 700; }
.opening-allocation-list p { margin-top: 0; color: var(--muted, #667085); }
.opening-balance-banner { margin-bottom: 1rem; }
.bonus-opening-form .form-actions { margin-top: 1.25rem; }
.manager-record-heading small.health-note,
.person-block-copy small.health-note { color: #a33a16; font-weight: 650; }

@media (max-width: 720px) {
    .bonus-create-alt,
    .bonus-opening-intro,
    .opening-bonus-warning {
        align-items: stretch;
        flex-direction: column;
    }
    .bonus-create-alt .secondary { width: 100%; text-align: center; }
}

/* Axis v0.3.9.9 · Asistente interno de solo lectura */
.staff-copilot-page{display:grid;gap:16px}.staff-copilot-safety{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid rgba(118,74,255,.18);background:linear-gradient(90deg,rgba(118,74,255,.08),rgba(255,98,155,.06));border-radius:14px;color:#424554}.staff-copilot-safety strong{white-space:nowrap;color:#5f3bd4}.staff-copilot-safety span{font-size:.92rem}.staff-copilot-shell{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:16px;align-items:start}.staff-copilot-history{padding:0;overflow:hidden;position:sticky;top:18px}.staff-copilot-history-heading{padding:18px 18px 12px;border-bottom:1px solid var(--border,#e6e8ef)}.staff-copilot-history-heading h2{margin:3px 0 0;font-size:1.05rem}.staff-copilot-history nav{display:grid;max-height:68vh;overflow:auto}.staff-copilot-history-item{display:grid;gap:4px;padding:12px 16px;border-bottom:1px solid var(--border,#eceef4);text-decoration:none;color:inherit}.staff-copilot-history-item:hover,.staff-copilot-history-item.active{background:#f7f5ff}.staff-copilot-history-item.active{box-shadow:inset 3px 0 #764aff}.staff-copilot-history-item strong{font-size:.9rem;line-height:1.35}.staff-copilot-history-item span{font-size:.74rem;color:var(--muted,#737784)}.staff-copilot-main{padding:0;overflow:hidden;min-height:68vh;display:flex;flex-direction:column}.staff-copilot-main-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border,#e6e8ef)}.staff-copilot-main-heading h2{margin:3px 0 0;font-size:1.12rem}.staff-copilot-messages{display:grid;gap:18px;padding:22px;flex:1;align-content:start;background:linear-gradient(180deg,#fbfbfe 0,#fff 160px)}.staff-copilot-welcome{text-align:center;max-width:760px;margin:28px auto;display:grid;justify-items:center;gap:10px}.staff-copilot-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#ff5757,#764aff);color:white;font-weight:800;font-size:1.25rem}.staff-copilot-welcome h3{margin:4px 0 0}.staff-copilot-welcome p{margin:0;color:var(--muted,#6f7480);max-width:620px}.staff-copilot-examples{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:10px}.staff-copilot-message{display:grid;gap:5px;max-width:920px}.staff-copilot-message.is-user{justify-self:end;max-width:min(760px,88%)}.staff-copilot-message-label{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#858995}.staff-copilot-message.is-user .staff-copilot-message-label{text-align:right}.staff-copilot-bubble{padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #e5e7ef;box-shadow:0 5px 18px rgba(40,43,55,.05)}.staff-copilot-message.is-user .staff-copilot-bubble{background:#5f3bd4;color:#fff;border-color:#5f3bd4}.staff-copilot-bubble>p{margin:0;line-height:1.55}.staff-copilot-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:13px}.staff-copilot-metrics span{display:grid;gap:2px;padding:9px 10px;background:#f6f5fb;border-radius:10px;font-size:.78rem;color:#707481}.staff-copilot-metrics b{font-size:1.02rem;color:#424554}.staff-copilot-warnings{margin:12px 0 0;padding:10px 12px 10px 30px;border-radius:10px;background:#fff8e9;color:#775410;font-size:.86rem}.staff-copilot-results{display:grid;gap:10px;margin-top:14px}.staff-copilot-result-card{padding:13px;border:1px solid #e7e8ef;border-radius:13px;background:#fff}.staff-copilot-result-heading{display:flex;justify-content:space-between;gap:12px}.staff-copilot-result-heading strong{display:block}.staff-copilot-result-heading span{display:block;margin-top:2px;color:#747985;font-size:.82rem}.staff-copilot-result-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.staff-copilot-result-meta span{padding:4px 7px;border-radius:8px;background:#f5f5f9;color:#606572;font-size:.76rem}.staff-copilot-result-sections{display:grid;gap:8px;margin:12px 0 0}.staff-copilot-result-sections>div{display:grid;grid-template-columns:minmax(100px,145px) 1fr;gap:12px;padding-top:8px;border-top:1px solid #eeeef3}.staff-copilot-result-sections dt{font-size:.76rem;font-weight:700;color:#6b6f7a}.staff-copilot-result-sections dd{margin:0;font-size:.84rem;line-height:1.5}.staff-copilot-result-actions,.staff-copilot-global-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.staff-copilot-form{padding:14px 18px 17px;border-top:1px solid #e4e6ee;background:#fff}.staff-copilot-form textarea{width:100%;min-height:78px;resize:vertical}.staff-copilot-form-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px}.staff-copilot-form-footer small{color:#777c87}.staff-copilot-not-ready{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.staff-copilot-not-ready h2{margin:4px 0 6px}.staff-copilot-flags{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:7px}.staff-copilot-flags span{display:flex;justify-content:space-between;gap:10px;padding:7px 9px;background:#f5f5f9;border-radius:8px;font-size:.78rem}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:900px){.staff-copilot-shell{grid-template-columns:1fr}.staff-copilot-history{position:static}.staff-copilot-history nav{display:flex;overflow:auto;max-height:none}.staff-copilot-history-item{min-width:190px;border-bottom:0;border-right:1px solid #eceef4}.staff-copilot-not-ready{grid-template-columns:1fr}.staff-copilot-safety{align-items:flex-start;flex-direction:column;gap:3px}}
@media(max-width:620px){.staff-copilot-messages{padding:15px}.staff-copilot-message.is-user{max-width:94%}.staff-copilot-form-footer{align-items:stretch;flex-direction:column}.staff-copilot-form-footer .primary{width:100%}.staff-copilot-result-sections>div{grid-template-columns:1fr;gap:3px}.staff-copilot-safety{border-radius:11px}.staff-copilot-main-heading{padding:15px}.staff-copilot-flags{grid-template-columns:1fr 1fr}}

.staff-copilot-feedback{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid #eeeef3;color:#777c87;font-size:.78rem}.staff-copilot-feedback form{display:flex;gap:6px;margin:0}.staff-copilot-feedback .ghost{min-height:30px;padding:5px 9px}@media(max-width:620px){.staff-copilot-feedback{align-items:flex-start;flex-direction:column}.staff-copilot-feedback form{width:100%}.staff-copilot-feedback form button{flex:1}}

/* Axis v0.4.0 · Área conversacional del alumno y entrenamiento */
.student-assistant-dashboard-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border-radius: 22px;
    background: linear-gradient(137deg, rgba(255, 87, 87, .12), rgba(118, 74, 255, .13));
    border: 1px solid rgba(118, 74, 255, .18);
    box-shadow: 0 16px 42px rgba(66, 69, 84, .08);
}
.student-assistant-dashboard-card h2 { margin: 3px 0 5px; }
.student-assistant-dashboard-card p { margin: 0; color: #5f6270; max-width: 720px; }
.student-assistant-dashboard-mark,
.student-assistant-avatar,
.student-chat-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    color: #fff;
    font-weight: 800;
    background: linear-gradient(137deg, #ff5757 0%, #764aff 100%);
    box-shadow: 0 10px 24px rgba(118, 74, 255, .22);
}
.student-assistant-page { max-width: 1040px; margin: 0 auto; display: grid; gap: 16px; }
.student-assistant-intro {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #e8e7ef;
}
.student-assistant-intro p { margin: 3px 0 0; color: #696b78; }
.student-assistant-chat {
    min-height: min(720px, calc(100vh - 210px));
    display: grid;
    grid-template-rows: minmax(360px, 1fr) auto auto;
    overflow: hidden;
    border-radius: 24px;
    background: #f5f3f0;
    border: 1px solid #e1dfe6;
    box-shadow: 0 18px 48px rgba(66, 69, 84, .12);
}
.student-assistant-messages {
    min-height: 0;
    overflow-y: auto;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    background:
        radial-gradient(circle at 20% 10%, rgba(255, 98, 155, .07), transparent 34%),
        radial-gradient(circle at 90% 20%, rgba(118, 74, 255, .07), transparent 36%),
        #f6f5f2;
}
.student-chat-message { display: flex; align-items: flex-end; gap: 10px; max-width: 86%; }
.student-chat-message.is-student { align-self: flex-end; justify-content: flex-end; }
.student-chat-message.is-assistant { align-self: flex-start; }
.student-chat-avatar { width: 34px; height: 34px; border-radius: 12px; font-size: 13px; box-shadow: none; }
.student-chat-message-content { min-width: 0; display: grid; gap: 7px; }
.student-chat-bubble {
    padding: 12px 15px;
    border-radius: 18px 18px 18px 6px;
    background: #fff;
    border: 1px solid rgba(66, 69, 84, .09);
    box-shadow: 0 6px 18px rgba(66, 69, 84, .07);
}
.student-chat-message.is-student .student-chat-bubble {
    color: #fff;
    background: linear-gradient(137deg, #ff629b 0%, #764aff 100%);
    border: 0;
    border-radius: 18px 18px 6px 18px;
}
.student-chat-bubble p { margin: 0; line-height: 1.48; }
.student-chat-message-content > time { color: #8a8b95; font-size: 11px; justify-self: end; }
.student-chat-privacy-note { display: block; margin-top: 7px; opacity: .82; font-size: 11px; }
.student-chat-warning {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #eeeaf3;
    color: #725a20;
    font-size: 12px;
}
.student-chat-cards { display: grid; gap: 8px; }
.student-chat-card {
    min-width: min(380px, 72vw);
    padding: 12px 14px;
    display: grid;
    gap: 4px;
    border-radius: 15px;
    background: rgba(255, 255, 255, .94);
    border: 1px solid #e3e0ea;
    box-shadow: 0 6px 16px rgba(66, 69, 84, .06);
}
.student-chat-card strong { color: #424554; }
.student-chat-card span { color: #696b78; font-size: 13px; }
.student-chat-actions,
.student-chat-quick-replies {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.student-chat-actions form,
.student-chat-quick-replies form,
.student-chat-message-footer form { margin: 0; }
.student-chat-action-primary,
.student-chat-action-secondary,
.student-chat-chip {
    min-height: 38px;
    padding: 8px 13px;
    border-radius: 999px;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}
.student-chat-action-primary {
    color: #fff;
    border: 0;
    background: linear-gradient(137deg, #ff5757 0%, #764aff 100%);
}
.student-chat-action-secondary,
.student-chat-chip {
    color: #5d42c8;
    background: #fff;
    border: 1px solid rgba(118, 74, 255, .25);
}
.student-chat-action-completed {
    padding: 7px 11px;
    border-radius: 999px;
    color: #257155;
    background: #e8f6ef;
    font-size: 12px;
    font-weight: 700;
}
.student-chat-message-footer {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 22px;
    color: #90919a;
    font-size: 11px;
}
.student-chat-message-footer form button {
    padding: 2px 7px;
    color: #6751bf;
    background: transparent;
    border: 1px solid #ded9ef;
    border-radius: 999px;
    font-size: 11px;
    cursor: pointer;
}
.student-chat-feedback-recorded { color: #58745f; }
.student-assistant-composer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding: 13px;
    background: #fff;
    border-top: 1px solid #e6e3ea;
}
.student-assistant-composer textarea {
    min-height: 48px;
    max-height: 150px;
    resize: vertical;
    border-radius: 18px;
    background: #f6f5f7;
}
.student-assistant-composer button {
    align-self: stretch;
    min-width: 84px;
    border: 0;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(137deg, #ff5757 0%, #764aff 100%);
    font-weight: 750;
    cursor: pointer;
}
.student-assistant-privacy {
    margin: 0;
    padding: 0 16px 13px;
    color: #878894;
    background: #fff;
    font-size: 11px;
}
.student-assistant-contact-fallback {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 16px;
    color: #696b78;
    font-size: 13px;
}
.student-assistant-contact-fallback a { font-weight: 700; }
.student-assistant-pilot-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
}
.student-assistant-pilot-card h2 { margin: 4px 0 7px; }
.student-assistant-pilot-card p { margin: 0; max-width: 720px; }
.student-assistant-pilot-action { display: grid; justify-items: end; gap: 10px; }
.student-training-page { display: grid; gap: 20px; }
.student-training-status {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.student-training-status > div {
    display: grid;
    gap: 5px;
    padding: 15px 17px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e6e3ea;
}
.student-training-status span { color: #777986; font-size: 12px; }
.student-training-status strong { font-size: 17px; }
.student-training-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 20px;
    align-items: start;
}
.student-training-instructions details,
.student-training-result details {
    margin-top: 10px;
    border: 1px solid #e6e3ea;
    border-radius: 12px;
    overflow: hidden;
}
.student-training-instructions summary,
.student-training-result summary { padding: 11px 13px; cursor: pointer; font-weight: 700; background: #f8f7fa; }
.student-training-instructions pre,
.student-training-result pre {
    margin: 0;
    padding: 14px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font: 13px/1.55 inherit;
    color: #555866;
    background: #fff;
}
.student-training-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 15px 0;
}
.student-training-result-grid > div { display: grid; gap: 4px; padding: 12px; border-radius: 12px; background: #f7f6f9; }
.student-training-result-grid span { color: #7b7c87; font-size: 11px; }
.student-training-version-row,
.student-training-feedback-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #eceaf0;
}
.student-training-version-row:last-child,
.student-training-feedback-row:last-child { border-bottom: 0; }
.student-training-version-row > div { display: grid; gap: 2px; }
.student-training-version-row span,
.student-training-feedback-row span { color: #7a7b86; font-size: 12px; }
.student-training-feedback-row { grid-template-columns: 180px minmax(0, 1fr); }
.student-training-feedback-row p { margin: 0; }

@media (max-width: 920px) {
    .student-training-status { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .student-training-grid { grid-template-columns: 1fr; }
    .student-training-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .student-assistant-dashboard-card { grid-template-columns: auto minmax(0, 1fr); padding: 18px; }
    .student-assistant-dashboard-card > a { grid-column: 1 / -1; width: 100%; text-align: center; }
    .student-assistant-page { gap: 10px; }
    .student-assistant-intro { align-items: flex-start; }
    .student-assistant-chat { min-height: calc(100vh - 180px); border-radius: 18px; }
    .student-assistant-messages { padding: 16px 12px; }
    .student-chat-message { max-width: 94%; }
    .student-chat-card { min-width: min(320px, 78vw); }
    .student-assistant-composer { grid-template-columns: minmax(0, 1fr) 72px; padding: 10px; }
    .student-assistant-composer button { min-width: 0; }
    .student-assistant-pilot-card { grid-template-columns: 1fr; }
    .student-assistant-pilot-action { justify-items: start; }
    .student-training-status { grid-template-columns: 1fr 1fr; }
    .student-training-result-grid { grid-template-columns: 1fr; }
    .student-training-version-row,
    .student-training-feedback-row { grid-template-columns: 1fr; }
}

/* Axis v0.4.0 · Editor de casos conversacionales */
.student-training-case-editor .form-stack{max-width:100%}
.student-training-case-editor textarea[name="expected_entities"]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* v0.4.1 · análisis y sugerencias del copiloto interno */
.staff-copilot-analysis{display:grid;gap:9px;margin-top:14px}.staff-copilot-analysis-section{padding:11px 13px;border:1px solid #e5e7ef;border-left-width:4px;border-radius:11px;background:#fafafd}.staff-copilot-analysis-section h4{margin:0 0 6px;font-size:.82rem;color:#424554}.staff-copilot-analysis-section ul{margin:0;padding-left:18px;color:#606572;font-size:.84rem;line-height:1.5}.staff-copilot-analysis-section li+li{margin-top:4px}.staff-copilot-analysis-section.is-facts{border-left-color:#6c75d9}.staff-copilot-analysis-section.is-interpretation{border-left-color:#8f63c8}.staff-copilot-analysis-section.is-recommendations{border-left-color:#d69231;background:#fffaf1}.staff-copilot-analysis-section.is-limitations{border-left-color:#9196a3;background:#f7f7f9}.staff-copilot-result-card.is-suggestion{border-color:#eadcc4;background:#fffdf8}.staff-copilot-result-card.is-analysis .staff-copilot-result-heading strong{color:#353946}

/* Axis v0.4.2 · Gestiones y solicitudes del alumnado */
.topbar-button-group{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.student-request-page{display:grid;gap:18px}.student-request-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.student-request-metric{display:grid;gap:4px;padding:15px 17px;border:1px solid #e4e7ee;border-radius:15px;background:#fff}.student-request-metric span{font-size:.76rem;color:#737785}.student-request-metric strong{font-size:1.45rem;color:#313745}.student-request-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,.75fr)) auto;gap:10px;align-items:end}.student-request-list{display:grid;gap:10px}.student-request-row{display:grid;grid-template-columns:minmax(190px,1.15fr) minmax(210px,1.35fr) minmax(135px,.65fr) auto;gap:14px;align-items:center;padding:15px 17px;border:1px solid #e5e7ed;border-radius:15px;background:#fff}.student-request-row:hover{border-color:#cfd4e3;box-shadow:0 8px 24px rgba(30,42,70,.06)}.student-request-person,.student-request-summary,.student-request-state{display:grid;gap:4px;min-width:0}.student-request-summary p{margin:0;color:#555b68;overflow-wrap:anywhere}.student-request-meta{font-size:.76rem;color:#7b7f8b}.student-request-detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:18px;align-items:start}.student-request-panel{padding:20px}.student-request-panel h2,.student-request-panel h3{margin-top:0}.student-request-conversation{display:grid;gap:10px;max-height:560px;overflow:auto;padding-right:4px}.student-request-message{max-width:88%;padding:11px 13px;border-radius:14px;background:#f2f3f7}.student-request-message.is-student{justify-self:end;background:#efe9ff}.student-request-message.is-assistant{justify-self:start}.student-request-message small{display:block;margin-top:5px;color:#7c808c}.student-request-form{display:grid;gap:14px}.student-request-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-request-links{display:flex;gap:8px;flex-wrap:wrap}.student-request-status-new,.student-request-status-requires_information{border-left:4px solid #d69231}.student-request-status-pending_decision,.student-request-status-approved{border-left:4px solid #6f63c7}.student-request-status-executed,.student-request-status-closed{border-left:4px solid #5a986a}.student-request-status-rejected{border-left:4px solid #b85c66}
@media(max-width:1050px){.student-request-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.student-request-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.student-request-row>a{justify-self:start}.student-request-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.topbar-button-group{width:100%;justify-content:stretch}.topbar-button-group>*{flex:1 1 100%;text-align:center}.student-request-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.student-request-filters,.student-request-row,.student-request-form-grid{grid-template-columns:1fr}.student-request-row>a{width:100%;text-align:center}.student-request-message{max-width:96%}}

/* Compatibilidad visual de la bandeja con las vistas v0.4.2 */
.student-requests-page,.student-request-detail{display:grid;gap:18px}.student-request-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.student-request-summary-grid>article{display:grid;gap:5px;padding:15px 17px}.student-request-summary-grid span{font-size:.76rem;color:#747986}.student-request-summary-grid strong{font-size:1rem}.student-request-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:18px;align-items:start}.request-conversation{display:grid;gap:10px;max-height:590px;overflow:auto;padding:2px 4px 2px 0}.request-conversation-message{max-width:88%;padding:11px 13px;border-radius:14px;background:#f2f3f7}.request-conversation-message.is-student{justify-self:end;background:#efe9ff}.request-conversation-message.is-assistant,.request-conversation-message.is-staff{justify-self:start}.request-conversation-message strong{font-size:.76rem}.request-conversation-message p{margin:4px 0;white-space:pre-wrap}.request-conversation-message time{font-size:.7rem;color:#7d818c}.student-requests-page .table-card small{display:block;margin-top:3px;color:#777c88}.student-requests-page .pagination{margin-top:12px}
@media(max-width:980px){.student-request-columns{grid-template-columns:1fr}.student-request-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.student-request-summary-grid{grid-template-columns:1fr}.request-conversation-message{max-width:96%}}

.student-request-last-response{display:grid;gap:5px;padding:12px 14px;border:1px solid #e1e5ed;border-radius:13px;background:#f7f8fb}.student-request-last-response>span{font-size:.74rem;font-weight:750;color:#6f7482;text-transform:uppercase;letter-spacing:.03em}.student-request-last-response p{margin:0;white-space:pre-wrap;color:#414754}.student-request-last-response small{color:#7a7f8c}

/* Axis v0.4.3 · PWA diferenciadas Equipo / Alumnos */
.pwa-app-picker,.pwa-install-variant{display:grid;gap:18px}.pwa-picker-hero{padding:26px}.pwa-picker-hero h1{margin:5px 0 9px}.pwa-picker-hero p{max-width:760px;margin:0;color:#666b78}.pwa-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pwa-picker-card{display:grid;grid-template-columns:108px minmax(0,1fr);gap:18px;align-items:center;padding:20px;text-decoration:none;color:inherit;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.pwa-picker-card:hover{transform:translateY(-2px);border-color:#cfd5e3;box-shadow:0 12px 30px rgba(33,42,65,.08)}.pwa-picker-card img{width:108px;height:108px;border-radius:25px}.pwa-picker-card h2{margin:3px 0 6px}.pwa-picker-card p{margin:0 0 9px;color:#666b78;line-height:1.45}.pwa-picker-card strong{font-size:.87rem}.pwa-picker-card.is-staff strong{color:#283a62}.pwa-picker-card.is-student strong{color:#5d4fc7}.pwa-picker-note{margin:0;text-align:center;color:#777b87;font-size:.82rem}.pwa-back-link{width:max-content;font-size:.84rem;font-weight:700}.pwa-install-variant.is-staff .install-hero-card{border-top:4px solid #283a62}.pwa-install-variant.is-student .install-hero-card{border-top:4px solid #5d4fc7}.pwa-install-variant.is-staff .install-step{color:#283a62}.pwa-install-variant.is-student .install-step{color:#5d4fc7}.pilot-device-table td[data-label="Aplicación"]{font-weight:700;color:#4b5160}
@media(max-width:760px){.pwa-picker-grid{grid-template-columns:1fr}.pwa-picker-card{grid-template-columns:84px minmax(0,1fr);padding:16px}.pwa-picker-card img{width:84px;height:84px;border-radius:20px}.pwa-picker-hero{padding:20px}}
@media(max-width:480px){.pwa-picker-card{grid-template-columns:64px minmax(0,1fr);gap:13px}.pwa-picker-card img{width:64px;height:64px;border-radius:16px}.pwa-picker-card p{font-size:.86rem}}

/* Axis v0.4.4 · notificaciones y Web Push */
.notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border:1px solid var(--border,#d9dee8);border-radius:12px;text-decoration:none;font-size:20px;background:#fff}.notification-bell-count{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#b42318;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.notification-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:22px}.compact-header{margin-bottom:14px}.compact-header p{margin:4px 0 0;color:var(--muted,#667085)}.notification-push-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.notification-device-status{font-size:13px;color:var(--muted,#667085)}.notification-test-form{margin-top:12px}.notification-device-list{display:grid;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border,#e5e7eb)}.notification-device-list div{display:flex;justify-content:space-between;gap:12px}.notification-device-list span{font-size:13px;color:var(--muted,#667085)}.notification-preferences-form{display:grid;gap:10px}.notification-preferences-form>label{display:flex;gap:8px;align-items:center}.notification-quiet-hours{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding-top:8px}.notification-quiet-hours label{display:grid;gap:5px;font-size:13px}.notification-history{padding:0;overflow:hidden}.notification-row{border-bottom:1px solid var(--border,#e5e7eb)}.notification-row:last-child{border-bottom:0}.notification-row>a{display:flex;padding:15px 18px;text-decoration:none;color:inherit;align-items:center;gap:14px}.notification-row>a>div{min-width:0;flex:1}.notification-row strong{display:block}.notification-row p{margin:4px 0;color:var(--text,#344054)}.notification-row span{font-size:12px;color:var(--muted,#667085)}.notification-row.is-unread{background:rgba(79,70,229,.045)}.notification-unread-dot{width:9px;height:9px;border-radius:50%;background:#5d4fc7;flex:none}.admin-notification-table-wrap{overflow:auto;padding:0}.admin-notification-table{width:100%;border-collapse:collapse;min-width:780px}.admin-notification-table th,.admin-notification-table td{padding:11px 13px;border-bottom:1px solid var(--border,#e5e7eb);text-align:left;font-size:13px}.admin-notification-table th{font-size:12px;color:var(--muted,#667085);font-weight:700}.admin-notification-table tr:last-child td{border-bottom:0}
@media(max-width:800px){.notification-settings-grid{grid-template-columns:1fr}.notification-device-list div{display:grid;gap:2px}.notification-push-actions{align-items:stretch}.notification-push-actions button{width:100%}}

.pilot-section-nav{display:flex;gap:8px;flex-wrap:wrap;padding:8px;background:#fff;border:1px solid #e8e5f2;border-radius:16px}.pilot-section-nav a{padding:12px 20px;border-radius:10px;text-decoration:none;font-weight:700;color:#514769}.pilot-section-nav a[aria-current=page]{background:linear-gradient(110deg,#f34e79,#8645ef);color:#fff}.assistant-web-details{padding:16px;border:1px solid #e8e5f2;border-radius:12px;margin-bottom:20px}.assistant-web-details>summary{cursor:pointer;font-weight:700}.assistant-web-details[open]>summary{margin-bottom:16px}.pilot-setup-grid .pilot-invitation-create{grid-row:span 2}

.assistant-activity-details>summary{cursor:pointer;font-weight:650;padding:12px 0;color:#65518c}.assistant-activity-details[open]>summary{margin-bottom:12px}

/* Administración: catálogo con detalle progresivo */
.assistant-config-form .assistant-activity-config{display:block}
.assistant-config-form .assistant-activity-primary{grid-template-columns:minmax(0,1fr) minmax(200px,280px);align-items:start}
.assistant-config-form input[type=checkbox]{width:18px;height:18px;min-height:0;flex:0 0 18px;margin:0;accent-color:#8645ef}
.assistant-config-form label.check{display:flex;align-items:center;gap:8px}
.assistant-config-form .assistant-activity-details{margin-top:8px;border-top:1px solid #eeeaf5}
.assistant-config-form .assistant-activity-details[open]{display:grid;gap:14px}
@media(max-width:800px){.assistant-config-form .assistant-activity-primary{grid-template-columns:1fr}}

.pilot-dashboard .pilot-setup-grid{grid-template-columns:1fr}.pilot-dashboard .pilot-setup-grid .pilot-invitation-create{grid-row:auto}.pilot-dashboard .pilot-side-stack{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:760px){.pilot-dashboard .pilot-side-stack{grid-template-columns:1fr}}
