:root{
  --bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#6b7280;--line:#e5eaf1;
  --primary:#185ADB;--primary-dark:#1247ae;--primary-soft:#eaf1ff;
  --success:#14804a;--success-soft:#e9f8f0;--warning:#a45b00;--warning-soft:#fff4da;
  --danger:#b42318;--danger-soft:#ffedeb;--neutral:#5d6675;--neutral-soft:#eef1f5;
  --shadow:0 14px 38px rgba(31,45,61,.08);--radius:18px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1220px,calc(100% - 32px));margin:0 auto}.page-space{padding:28px 0 54px}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand-line{display:flex;align-items:center;gap:14px}.brand-line.compact{gap:11px}.brand-mark{width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,var(--primary),#3977ea);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;box-shadow:0 8px 20px rgba(24,90,219,.25)}.brand-line.compact .brand-mark{width:40px;height:40px;border-radius:12px}.brand-line strong{display:block;font-size:15px}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800;color:var(--primary);margin-bottom:3px}.admin-link{font-weight:700;color:#566174;padding:9px 12px;border-radius:10px}.admin-link:hover{background:#f4f6fa;color:var(--ink)}
.hero-panel{background:linear-gradient(135deg,#fff 0%,#f8fbff 65%,#edf4ff 100%);border:1px solid #e2eaf7;border-radius:24px;padding:30px 32px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;box-shadow:var(--shadow)}.hero-copy{max-width:760px}.hero-copy h1{font-size:clamp(28px,4vw,42px);line-height:1.08;margin:4px 0 12px;letter-spacing:-.035em}.hero-copy p{margin:0;color:#5e6878;font-size:16px;max-width:720px}.privacy-pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 13px;white-space:nowrap;font-size:12px;font-weight:700;color:#596275;box-shadow:0 6px 18px rgba(31,45,61,.06)}.privacy-pill .dot{display:inline-block;width:8px;height:8px;background:var(--success);border-radius:50%;margin-right:6px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 18px;display:flex;align-items:center;gap:13px}.stat-card span{display:block;color:var(--muted);font-size:12px;font-weight:700}.stat-card strong{display:block;font-size:28px;line-height:1.05;margin-top:3px}.stat-card small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.stat-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--primary-soft);color:var(--primary);font-weight:900;font-size:18px}.stat-icon.ok{background:var(--success-soft);color:var(--success)}.stat-icon.warn{background:var(--warning-soft);color:var(--warning)}.stat-icon.danger{background:var(--danger-soft);color:var(--danger)}
.content-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.section-head{padding:24px 26px 16px;display:flex;justify-content:space-between;gap:18px;align-items:flex-end}.section-head h2{font-size:22px;margin:1px 0 0}.results-count{font-size:12px;color:var(--muted);background:#f6f8fb;border:1px solid var(--line);border-radius:999px;padding:7px 11px}.results-count b{color:var(--ink)}
.filters-panel{margin:0 26px 12px;padding:14px;background:#f7f9fc;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:minmax(220px,1.7fr) repeat(4,minmax(130px,1fr)) auto;gap:10px;align-items:end}.search-field{height:46px;background:#fff;border:1px solid #dfe5ee;border-radius:12px;display:flex;align-items:center;padding:0 12px;gap:8px}.search-field:focus-within{border-color:#9bb8ef;box-shadow:0 0 0 3px rgba(24,90,219,.08)}.search-field input{border:0;outline:0;width:100%;background:transparent;color:var(--ink)}.search-icon{font-size:21px;color:#7d8796}.filter-field span,.field span{display:block;color:#4f5a6b;font-size:12px;font-weight:750;margin:0 0 5px}.filter-field select,.field input,.field select,.field textarea{width:100%;border:1px solid #dfe5ee;border-radius:11px;background:#fff;color:var(--ink);padding:10px 11px;outline:0}.filter-field select{height:46px}.field input,.field select{height:44px}.field textarea{resize:vertical}.filter-field select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#98b7ef;box-shadow:0 0 0 3px rgba(24,90,219,.08)}.field small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.quick-chips{padding:0 26px 16px;display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid #dde4ee;background:#fff;color:#566174;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:750;cursor:pointer}.chip:hover,.chip.active{border-color:#a9c1ee;background:var(--primary-soft);color:var(--primary)}
.table-wrap{border-top:1px solid var(--line);overflow-x:auto}.students-table{width:100%;border-collapse:collapse;min-width:980px}.students-table th{background:#fafbfd;color:#6b7280;text-transform:uppercase;letter-spacing:.055em;font-size:10.5px;text-align:left;padding:11px 15px;border-bottom:1px solid var(--line)}.students-table td{padding:13px 15px;border-bottom:1px solid #edf0f5;vertical-align:middle}.students-table tbody tr:hover{background:#fbfdff}.student-cell{display:flex;align-items:center;gap:11px;min-width:250px}.student-cell strong{display:block;font-size:13px}.student-cell small{display:block;color:#9098a6;font-size:10px;margin-top:2px}.avatar{width:36px;height:36px;flex:0 0 auto;border-radius:11px;background:#edf3ff;color:var(--primary);display:grid;place-items:center;font-weight:900}.level-tag{display:inline-block;padding:3px 7px;border-radius:7px;font-size:10px;font-weight:850;background:#edf3ff;color:#2458ae}.level-secundaria{background:#efeefe;color:#5f48b5}.level-inicial{background:#ebf8f3;color:#13734d}.level-sin{background:#f1f3f6;color:#667085}.grade-text{font-size:12px;color:#5f6877;margin-top:4px}.section-pill{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:9px;background:#f1f4f8;font-weight:800}.dni-cell small{display:block;color:#8a93a1;font-size:10px;margin-top:4px}.badge{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850;letter-spacing:.02em}.badge-success{color:var(--success);background:var(--success-soft)}.badge-warning{color:var(--warning);background:var(--warning-soft)}.badge-danger{color:var(--danger);background:var(--danger-soft)}.badge-neutral{color:var(--neutral);background:var(--neutral-soft)}.action-stack{display:flex;gap:7px;flex-wrap:wrap;min-width:170px}.complete-mark{font-size:11px;color:var(--success);font-weight:800}.muted{color:var(--muted)}.small{font-size:12px}
.btn{border:1px solid transparent;border-radius:10px;min-height:42px;padding:9px 13px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.16s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(24,90,219,.2)}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#eef3ff;color:#2457b6;border-color:#d9e5ff}.btn-ghost{background:#fff;color:#596275;border-color:#dfe5ee}.btn-small{min-height:32px;padding:6px 9px;border-radius:8px;font-size:11px}.btn-wide{width:100%;min-height:48px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.pagination-bar{padding:14px 24px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.pagination-bar div{display:flex;gap:7px}.pagination-bar .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}.empty-state>div{font-size:34px}.empty-state h3{margin:8px 0 4px;color:var(--ink)}.empty-state p{margin:0}.help-strip{margin-top:16px;background:#eef5ff;border:1px solid #d9e8ff;border-radius:16px;padding:15px 17px;display:flex;gap:12px;align-items:flex-start}.help-icon{width:32px;height:32px;border-radius:10px;background:#fff;color:var(--primary);font-weight:900;display:grid;place-items:center}.help-strip p{margin:3px 0 0;color:#5d6674;font-size:12px}
.notice{margin:0 0 16px;border-radius:13px;padding:12px 14px;border:1px solid;display:flex;align-items:center;justify-content:space-between;gap:14px}.notice.success{background:var(--success-soft);border-color:#cceede;color:#0d6c3e}.notice.danger{background:var(--danger-soft);border-color:#ffd4cf;color:#9f2117}.notice.info{background:#eef5ff;border-color:#d4e4ff;color:#34577f}.notice.compact{font-size:12px;padding:9px 11px}.notice button{border:0;background:transparent;font-size:20px;color:inherit;cursor:pointer}
.modal{position:fixed;inset:0;display:none;z-index:50}.modal.open{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(18,27,45,.52);backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(520px,calc(100% - 28px));max-height:calc(100vh - 40px);overflow:auto;margin:7vh auto;background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 80px rgba(18,27,45,.25)}.modal-card h2{margin:2px 0 6px;font-size:24px}.modal-student{margin:0 0 17px;color:#606a78;font-weight:700}.modal-close{position:absolute;right:15px;top:13px;width:34px;height:34px;border:0;border-radius:10px;background:#f4f6f9;font-size:22px;color:#687181;cursor:pointer}.modal-form{display:grid;gap:11px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}
.setup-body,.gate-body,.login-body{min-height:100vh;background:radial-gradient(circle at 10% 0,#e9f2ff,transparent 34%),var(--bg);display:grid;place-items:center;padding:30px 16px}.setup-wrap{width:min(780px,100%)}.setup-card,.login-card,.gate-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.setup-card h1,.login-card h1,.gate-card h1{margin:0}.lead{color:#5f6877}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.span-2{grid-column:span 2}.credential-box{margin-top:18px;background:#f6f8fb;border:1px solid var(--line);border-radius:14px;padding:12px}.credential-box span{display:block;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:4px}.credential-box code{display:block;overflow-wrap:anywhere;color:#244b8f}.gate-card{width:min(500px,100%);text-align:center}.gate-card .brand-mark{margin:0 auto 14px}.gate-card p{color:var(--muted)}.login-card{width:min(430px,100%)}.login-card .brand-line{margin-bottom:18px}.login-form{display:grid;gap:12px}
.admin-shell{min-height:100vh}.admin-nav{background:#172033;color:#fff}.admin-nav .container{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-brand{font-weight:850}.admin-nav-links{display:flex;gap:7px;align-items:center}.admin-nav-links a{padding:8px 10px;border-radius:8px;color:#d9e0ea;font-size:12px;font-weight:750}.admin-nav-links a.active,.admin-nav-links a:hover{background:#283348;color:#fff}.admin-main{padding:25px 0 50px}.admin-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}.admin-title h1{margin:2px 0 0}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.admin-card span{font-size:11px;color:var(--muted);font-weight:750}.admin-card strong{display:block;font-size:26px;margin-top:4px}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h2{margin:0;font-size:18px}.admin-table{width:100%;border-collapse:collapse;min-width:900px}.admin-table th,.admin-table td{padding:11px 13px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top}.admin-table th{background:#f9fafc;text-transform:uppercase;font-size:10px;letter-spacing:.05em;color:var(--muted)}.admin-table td{font-size:12px}.inline-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-filter input,.admin-filter select{height:38px;border:1px solid #dfe5ee;border-radius:9px;padding:0 10px;background:#fff}.two-col{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.settings-form{padding:20px;display:grid;gap:12px}.audit-note{font-size:11px;color:var(--muted)}
@media (max-width:1050px){.stats-grid,.admin-grid{grid-template-columns:repeat(2,1fr)}.filters-panel{grid-template-columns:repeat(3,1fr)}.search-field{grid-column:span 2}.two-col{grid-template-columns:1fr}}
@media (max-width:760px){.container{width:min(100% - 20px,1220px)}.topbar-inner{min-height:62px}.admin-link{font-size:0}.admin-link:after{content:'Admin';font-size:12px}.hero-panel{padding:22px;display:block}.privacy-pill{display:inline-block;margin-top:15px}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{padding:14px}.stat-card strong{font-size:23px}.section-head{padding:19px 16px 12px;align-items:flex-start}.results-count{display:none}.filters-panel{margin:0 12px 12px;padding:11px;grid-template-columns:1fr 1fr}.search-field{grid-column:span 2}.quick-chips{padding:0 14px 13px}.students-table{min-width:0}.students-table thead{display:none}.students-table,.students-table tbody,.students-table tr,.students-table td{display:block;width:100%}.students-table tr{padding:13px 14px;border-bottom:1px solid var(--line)}.students-table td{border:0;padding:6px 0;display:grid;grid-template-columns:105px 1fr;gap:10px;align-items:center}.students-table td:before{content:attr(data-label);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8a93a1;font-weight:800}.student-cell{min-width:0}.action-stack{min-width:0}.pagination-bar{padding:12px 14px}.modal-card{margin:3vh auto;padding:20px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.admin-nav .container{align-items:flex-start;padding:12px 0;flex-direction:column}.admin-nav-links{width:100%;overflow:auto}.admin-title{align-items:flex-start;flex-direction:column}.admin-grid{grid-template-columns:1fr 1fr}.panel{overflow-x:auto}}
@media (max-width:480px){.stats-grid,.admin-grid{grid-template-columns:1fr}.filters-panel{grid-template-columns:1fr}.search-field{grid-column:auto}.hero-copy h1{font-size:29px}.brand-line strong{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* ===== UX didáctica v2 ===== */
.hero-didactic{align-items:center}.hero-didactic .hero-copy p strong{color:#2d4267}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 0}.step-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 6px 18px rgba(31,45,61,.035)}.step-number,.step-bubble{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:900;box-shadow:0 7px 15px rgba(24,90,219,.18)}.step-card strong{display:block;font-size:13px}.step-card p{margin:3px 0 0;color:var(--muted);font-size:11.5px;line-height:1.45}
.search-guide{margin:22px 24px 14px;padding:22px;border:1px solid #cfe0ff;background:linear-gradient(135deg,#f8fbff,#eef5ff);border-radius:18px}.search-guide-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.search-guide-title h2{margin:1px 0 2px;font-size:21px}.search-guide-title p{margin:0;color:#667287;font-size:12px}.search-field-main{height:58px;border:2px solid #b8d0fa;border-radius:15px;padding:0 14px;box-shadow:0 7px 20px rgba(24,90,219,.07)}.search-field-main:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px rgba(24,90,219,.11),0 10px 26px rgba(24,90,219,.08)}.search-field-main input{font-size:16px;font-weight:650}.search-field-main input::placeholder{color:#9aa6b8;font-weight:500}.search-field-main .search-icon{font-size:26px;color:var(--primary)}.search-clear{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:10px;background:#e8eef8;color:#59687d;font-size:20px;cursor:pointer}.search-clear:hover{background:#dce7f8}.search-live-help{display:flex;align-items:center;gap:7px;margin:9px 2px 0;color:#587196;font-size:11.5px;font-weight:650}.live-dot{width:8px;height:8px;border-radius:50%;background:#19a663;box-shadow:0 0 0 4px rgba(25,166,99,.12)}
.quick-actions-bar{padding:0 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.quick-actions-bar>div:first-child strong{display:block;font-size:13px}.quick-actions-bar>div:first-child span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.quick-action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.quick-action{min-width:145px;border:1px solid #dfe5ee;background:#fff;border-radius:13px;padding:9px 11px;display:grid;grid-template-columns:25px 1fr;column-gap:7px;text-align:left;cursor:pointer;transition:.15s ease}.quick-action>span{grid-row:1/3;font-size:19px;align-self:center}.quick-action b{font-size:11.5px;color:#445169}.quick-action small{font-size:9.8px;color:#8b96a7}.quick-action:hover{transform:translateY(-1px);border-color:#bfd1f3}.quick-action.active{border-color:#8fb2f2;background:#eef5ff;box-shadow:inset 0 0 0 1px #bfd4fb}.quick-action.active b{color:var(--primary)}
.advanced-filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfcfe}.advanced-filters summary{list-style:none;cursor:pointer;padding:12px 24px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#4f5a6b}.advanced-filters summary::-webkit-details-marker{display:none}.advanced-filters summary:before{content:'▾';color:#8390a3;transition:.15s}.advanced-filters:not([open]) summary:before{transform:rotate(-90deg)}.advanced-filters summary small{font-size:9.5px;padding:3px 6px;border-radius:999px;background:#edf1f6;color:#8190a4}.advanced-filters .filters-panel{margin:0;padding:0 24px 15px;background:transparent;border:0;border-radius:0;grid-template-columns:repeat(4,minmax(140px,1fr)) auto}.results-head{padding-top:18px}
.student-row.needs-attention{background:linear-gradient(90deg,#fffdfa 0,#fff 22%)}.student-row.needs-attention:hover{background:#fffaf0}.students-table th:last-child{min-width:245px}.action-stack{min-width:220px;align-items:stretch}.btn-action{min-height:48px;padding:7px 10px;border-radius:12px;justify-content:flex-start;text-align:left;gap:9px;box-shadow:none}.btn-action:hover{transform:translateY(-1px)}.btn-action-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.7);font-size:16px}.btn-action>span:last-child{display:flex;flex-direction:column;line-height:1.2}.btn-action b{font-size:11px}.btn-action small{font-size:9.5px;margin-top:3px;font-weight:650;opacity:.76}.btn-enroll{background:#185adb;color:#fff;border-color:#185adb}.btn-enroll:hover{background:#1247ae}.btn-dni{background:#fff7e5;color:#8a4d00;border-color:#f2d290}.btn-dni:hover{background:#ffefca}.request-sent{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center;min-height:48px;padding:7px 10px;border-radius:12px;background:#fff7e5;border:1px solid #f2d290;color:#7c520f}.request-sent>span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ffe3a6;font-weight:900}.request-sent strong{font-size:10.8px}.request-sent small{font-size:9.5px;color:#9a7539}.complete-mark{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center;min-height:48px;padding:7px 10px;border-radius:12px;background:#edf9f2;border:1px solid #ccebd9;color:#147548}.complete-mark>span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#d9f3e4;font-weight:900}.complete-mark strong{display:block;font-size:10.8px}.complete-mark small{display:block;font-size:9.5px;color:#5c8b70;margin-top:2px}
.modal-step{display:inline-flex;margin-bottom:8px;padding:4px 8px;border-radius:999px;background:#edf3ff;color:var(--primary);font-size:10px;font-weight:850}.selected-student{margin:12px 0 14px;padding:12px 13px;border:1px solid #dce6f5;background:#f8fbff;border-radius:13px}.selected-student span{display:block;color:#7b8798;text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:800}.selected-student strong{display:block;font-size:14px;margin-top:2px}.btn-submit{min-width:220px}.btn-submit:disabled{opacity:.72;cursor:wait;transform:none}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.toast-area{position:fixed;right:20px;top:82px;z-index:100;width:min(390px,calc(100% - 30px));display:grid;gap:9px}.toast{background:#fff;border:1px solid #dfe5ee;border-radius:14px;padding:12px 12px;box-shadow:0 18px 45px rgba(31,45,61,.18);display:grid;grid-template-columns:34px 1fr 26px;gap:9px;align-items:center;animation:toastIn .2s ease}.toast.success{border-left:4px solid #1c995c}.toast.error{border-left:4px solid #c23b32}.toast-icon{width:31px;height:31px;border-radius:10px;background:#e9f8f0;color:#15814b;display:grid;place-items:center;font-weight:900}.toast.error .toast-icon{background:#ffedeb;color:#b42318}.toast strong{display:block;font-size:12px}.toast p{margin:2px 0 0;color:#627083;font-size:11px;line-height:1.4}.toast button{border:0;background:transparent;color:#8a94a2;font-size:19px;cursor:pointer}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.empty-state .btn{margin-top:14px}

@media (max-width:1050px){.steps-grid{grid-template-columns:1fr 1fr 1fr}.quick-actions-bar{align-items:flex-start;flex-direction:column}.quick-action-buttons{justify-content:flex-start;width:100%}.advanced-filters .filters-panel{grid-template-columns:repeat(2,1fr) auto}}
@media (max-width:760px){.steps-grid{grid-template-columns:1fr}.step-card{padding:12px 13px}.search-guide{margin:14px 12px 12px;padding:15px}.search-guide-title h2{font-size:19px}.search-field-main{height:54px}.quick-actions-bar{padding:0 12px 14px}.quick-action-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.quick-action{min-width:0}.quick-action:first-child{grid-column:span 2}.advanced-filters summary{padding:11px 14px}.advanced-filters .filters-panel{padding:0 14px 14px;grid-template-columns:1fr 1fr}.advanced-filters .filters-panel .btn{grid-column:span 2}.students-table tr.needs-attention{border-left:4px solid #f1c35d;padding-left:10px}.students-table td[data-label='¿Qué necesita?']{display:block;padding-top:10px}.students-table td[data-label='¿Qué necesita?']:before{display:block;margin-bottom:7px}.action-stack{min-width:0;width:100%}.btn-action,.request-sent,.complete-mark{width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.btn-submit{min-width:0}.toast-area{top:72px;right:10px;width:calc(100% - 20px)}}
@media (max-width:480px){.quick-action-buttons{grid-template-columns:1fr}.quick-action:first-child{grid-column:auto}.advanced-filters .filters-panel{grid-template-columns:1fr}.advanced-filters .filters-panel .btn{grid-column:auto}.search-field-main input{font-size:14px}.step-bubble{width:31px;height:31px;flex-basis:31px}}
.no-enrollment-mark{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center;min-height:48px;padding:7px 10px;border-radius:12px;background:#f3f5f8;border:1px solid #dde3ea;color:#697487}.no-enrollment-mark>span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e6eaf0;font-weight:900}.no-enrollment-mark strong{display:block;font-size:10.8px}.no-enrollment-mark small{display:block;font-size:9.5px;color:#8791a1;margin-top:2px}
@media (max-width:760px){.no-enrollment-mark{width:100%}}

/* ===== V3: PDF, constancias y responsive reforzado ===== */
.students-table{min-width:1210px}.students-table th:nth-child(6){min-width:190px}.students-table th:last-child{min-width:220px}
.export-panel{margin:0;padding:14px 24px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#fff 0,#f8fbff 100%);display:flex;align-items:center;justify-content:space-between;gap:16px}.export-copy{display:flex;align-items:center;gap:11px;min-width:0}.export-copy strong{display:block;font-size:12.5px}.export-copy small{display:block;margin-top:2px;color:var(--muted);font-size:10.8px;line-height:1.4}.export-icon{width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:#fff0ef;border:1px solid #ffd9d5;color:#b42318;display:grid;place-items:center;font-size:10px;font-weight:950;letter-spacing:.04em}.btn-export{background:#fff;color:#174ea6;border-color:#bcd2f8;white-space:nowrap;box-shadow:0 5px 14px rgba(24,90,219,.08)}.btn-export:hover{background:#edf4ff;border-color:#9bbcf4}.btn-export.is-empty{opacity:.55}
.certificate-cell{min-width:185px}.btn-certificate{min-height:48px;width:100%;padding:7px 10px;border-radius:12px;background:#eef7ff;color:#15569d;border-color:#b9daf9;justify-content:flex-start;text-align:left;gap:9px;box-shadow:none}.btn-certificate:hover{background:#deefff;border-color:#8fc4f3}.certificate-icon{width:31px;height:31px;flex:0 0 31px;border-radius:9px;background:#fff;display:grid;place-items:center;font-size:16px}.btn-certificate>span:last-child{display:flex;flex-direction:column;line-height:1.18}.btn-certificate b{font-size:10.7px}.btn-certificate small{font-size:9.4px;margin-top:3px;color:#5681aa;font-weight:700}.certificate-locked{min-height:48px;padding:8px 9px;border:1px dashed #d9dee7;background:#fafbfc;border-radius:11px;color:#8a93a2;display:flex;gap:7px;align-items:center}.certificate-locked>span{font-size:15px}.certificate-locked small{font-size:9.5px;line-height:1.3}.btn-certificate-download{background:#15569d;color:#fff;border-color:#15569d;box-shadow:0 7px 18px rgba(21,86,157,.2)}.btn-certificate-download:hover{background:#104477}.certificate-modal{width:min(570px,calc(100% - 28px))}.certificate-guide{display:flex;gap:10px;align-items:flex-start;margin:10px 0;padding:11px 12px;border-radius:12px;background:#f7faff;border:1px solid #dce9fa}.certificate-guide>span{width:28px;height:28px;flex:0 0 28px;border-radius:9px;background:#15569d;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.certificate-guide strong{display:block;font-size:11.5px}.certificate-guide p{margin:3px 0 0;color:#657286;font-size:10.5px;line-height:1.42}
.quick-action[data-quick="enrolled"]>span{filter:none}.quick-action[data-quick="enrolled"].active{border-color:#98c5ef;background:#eef8ff}.quick-action[data-quick="enrolled"].active b{color:#15569d}

@media (max-width:1100px){.export-panel{align-items:flex-start}.btn-export{flex:0 0 auto}.students-table{min-width:1160px}}
@media (max-width:900px){
  .container{width:min(100% - 18px,1220px)}.page-space{padding-top:16px}.topbar-inner{min-height:62px}.topbar .brand-line strong{font-size:13px;max-width:58vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-link{padding:8px 9px}
  .hero-panel{padding:20px;border-radius:18px}.hero-copy h1{font-size:clamp(25px,7vw,34px)}.hero-copy p{font-size:14px}.privacy-pill{white-space:normal}
  .stats-grid{grid-template-columns:1fr 1fr}.stat-card{min-width:0}.stat-card small{line-height:1.35}
  .search-guide{margin:14px 12px 12px}.quick-actions-bar{padding:0 12px 14px}.quick-action-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.quick-action{width:100%;min-width:0}
  .advanced-filters summary{padding:12px 14px}.advanced-filters .filters-panel{padding:0 14px 14px;grid-template-columns:1fr 1fr}.advanced-filters .filters-panel .btn{grid-column:span 2}
  .export-panel{padding:13px 14px;flex-direction:column}.btn-export{width:100%}.export-copy{width:100%}
  .section-head{padding:18px 14px 11px}.results-count{display:inline-flex}
  .table-wrap{overflow:visible}.students-table{min-width:0}.students-table thead{display:none}.students-table,.students-table tbody,.students-table tr,.students-table td{display:block;width:100%}.students-table tbody{padding:0 10px 10px}.students-table tr{margin:10px 0;padding:13px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(31,45,61,.045)}.students-table tr.needs-attention{border-left:4px solid #efc155;padding-left:11px}.students-table td{border:0;padding:6px 0;display:grid;grid-template-columns:minmax(92px,31%) 1fr;gap:10px;align-items:center}.students-table td:before{content:attr(data-label);font-size:9.3px;text-transform:uppercase;letter-spacing:.055em;color:#8893a3;font-weight:850}.students-table td[data-label="Estudiante"]{display:block;padding-bottom:10px;border-bottom:1px solid #edf0f4;margin-bottom:4px}.students-table td[data-label="Estudiante"]:before{display:none}.student-cell{min-width:0}.student-cell strong{font-size:13.5px}.certificate-cell{min-width:0}.btn-certificate,.certificate-locked{width:100%}.students-table td[data-label="Constancia 2026"],.students-table td[data-label="¿Qué necesita?"]{align-items:start}.action-stack{width:100%;min-width:0}.btn-action,.request-sent,.complete-mark,.no-enrollment-mark{width:100%}.pagination-bar{padding:12px 14px 16px;gap:8px}.pagination-bar>span{font-size:10.5px}.pagination-bar div{flex:0 0 auto}
}
@media (max-width:560px){
  .container{width:calc(100% - 12px)}.topbar-inner{gap:8px}.brand-line.compact .brand-mark{width:36px;height:36px}.topbar .eyebrow{font-size:9px}.topbar .brand-line strong{max-width:62vw;font-size:12px}.admin-link{font-size:0}.admin-link:after{content:'Admin';font-size:11px}
  .hero-panel{padding:17px 15px}.hero-copy h1{font-size:27px}.steps-grid{gap:8px}.step-card{border-radius:13px}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:12px 11px;border-radius:13px}.stat-card .stat-icon{width:36px;height:36px;flex:0 0 36px}.stat-card strong{font-size:21px}.stat-card span{font-size:10.5px}.stat-card small{font-size:9px}
  .search-guide{padding:14px 12px}.search-guide-title{gap:9px}.search-guide-title p{font-size:10.8px}.search-field-main{height:52px}.search-field-main input{font-size:13px}.quick-action-buttons{grid-template-columns:1fr}.advanced-filters .filters-panel{grid-template-columns:1fr}.advanced-filters .filters-panel .btn{grid-column:auto}.export-copy small{font-size:9.8px}.export-icon{width:38px;height:38px;flex-basis:38px}.results-count{font-size:10px;padding:5px 8px}.section-head h2{font-size:19px}
  .students-table tbody{padding:0 5px 8px}.students-table tr{border-radius:14px;padding:12px 11px}.students-table td{grid-template-columns:88px 1fr;gap:8px}.avatar{width:34px;height:34px}.btn-certificate,.btn-action,.request-sent,.complete-mark,.no-enrollment-mark{min-height:46px}.pagination-bar{flex-direction:column;align-items:stretch}.pagination-bar div{display:grid;grid-template-columns:1fr 1fr}.pagination-bar .btn{width:100%}.certificate-modal{padding:18px}.certificate-guide{padding:10px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}
}
@media (max-width:390px){.stats-grid{grid-template-columns:1fr}.hero-copy h1{font-size:25px}.students-table td{grid-template-columns:80px 1fr}.topbar .brand-line strong{max-width:55vw}}

/* ===== V3.4: acceso directo y pulido visual ===== */
body{background:linear-gradient(180deg,#f7faff 0,#f3f6fb 260px,#f4f7fb 100%)}
.public-topbar{box-shadow:0 4px 18px rgba(31,45,61,.04)}
.public-brand{min-width:0}
.brand-sj{font-size:14px;letter-spacing:.02em}
.topbar-status{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dfe7f2;border-radius:999px;background:#f9fbfe;color:#536174;font-size:11px;font-weight:800;white-space:nowrap}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px rgba(20,128,74,.09)}
.hero-panel{align-items:center;border-color:#dce7f6;box-shadow:0 16px 44px rgba(31,45,61,.07)}
.hero-copy{max-width:820px}.hero-copy h1{max-width:780px}.privacy-pill{border-color:#dbe6f2;background:rgba(255,255,255,.88)}
.content-card{border-color:#dfe6ef}.search-guide{border-color:#d7e5f7}.search-field-main{box-shadow:0 6px 20px rgba(24,90,219,.06)}
.students-table th{background:#f7f9fc}.students-table tbody tr:nth-child(even){background:#fcfdff}.students-table tbody tr:hover{background:#f7fbff}
.students-table td:nth-child(1){width:28%}.students-table td:nth-child(2){width:14%}.students-table td:nth-child(3){width:7%}.students-table td:nth-child(4){width:10%}.students-table td:nth-child(5){width:12%}
.btn-certificate{background:#edf7ff;border-color:#b8d8f4;color:#104f90}.btn-certificate:hover{background:#dff0ff}
.public-footer{margin-top:18px;padding:18px 4px 2px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#7a8492;font-size:11px}
.public-footer a{font-weight:800;color:#59677a;padding:7px 9px;border-radius:9px}.public-footer a:hover{background:#fff;color:var(--primary)}
.setup-card .brand-sj,.login-card .brand-sj,.gate-card .brand-sj{font-size:14px}
.gate-card{max-width:520px}.gate-card h1{font-size:30px;line-height:1.15;margin-top:4px}.gate-card .eyebrow{margin-top:2px}

@media (max-width:900px){
  .students-table td[data-label="Constancia 2026"],.students-table td[data-label="¿Qué necesita?"]{align-items:start}
  .students-table td[data-label="Constancia 2026"]:before,.students-table td[data-label="¿Qué necesita?"]:before{padding-top:5px}
  .public-footer{padding-inline:8px}
}
@media (max-width:560px){
  .topbar-status span:last-child{display:none}.topbar-status{width:34px;height:34px;justify-content:center;padding:0}.status-dot{margin:0}
  .hero-panel{display:block}.privacy-pill{display:inline-flex;margin-top:14px}.hero-copy h1{font-size:26px;line-height:1.12}.hero-copy p{font-size:13px}
  .public-footer{flex-direction:column;align-items:flex-start;padding:14px 8px 0}
}
\n\n/* ===== V3.5 PRODUCCIÓN: maquetación responsive revisada ===== */
:root{--content-max:1280px}
body{min-width:0;overflow-x:hidden;background:linear-gradient(180deg,#f7faff 0,#f4f7fb 300px,#f3f6fa 100%)}
.container{width:min(var(--content-max),calc(100% - 40px))}
.public-topbar{background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(10px)}
.topbar-inner{min-height:68px}.public-brand{max-width:75%}.public-brand strong{font-size:15px}.topbar-status{flex:0 0 auto}
.page-space{padding-top:22px}
.hero-panel{padding:26px 28px;border-radius:22px}.hero-copy h1{font-size:clamp(29px,3.4vw,40px);line-height:1.08}.hero-copy p{font-size:15px;line-height:1.6}
.steps-grid{margin-top:14px}.step-card{min-width:0}.step-card p{line-height:1.45}
.stats-grid{margin:14px 0 18px}.stat-card{min-width:0;overflow:hidden}.stat-card>div:last-child{min-width:0}.stat-card small{white-space:normal}
.content-card{border-radius:20px;overflow:hidden}
.search-guide{margin:18px 18px 14px;padding:18px;border-radius:17px}.search-guide-title h2{font-size:21px}.search-field-main{height:56px}.search-field-main input{font-size:15px}
.quick-actions-bar{padding:0 18px 16px;gap:14px}.quick-action-buttons{gap:9px}.quick-action{min-width:145px}
.advanced-filters{border-top:1px solid var(--line)}.advanced-filters summary{padding:13px 18px}.advanced-filters .filters-panel{margin:0;padding:0 18px 16px;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px}.advanced-filters .filter-field{min-width:0}.advanced-filters select{width:100%;min-width:0}
.export-panel{padding:13px 18px}.section-head{padding:20px 18px 13px}
.table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.students-table{width:100%;min-width:1060px;table-layout:fixed}.students-table col.col-student{width:26%}.students-table col.col-level{width:13%}.students-table col.col-section{width:6%}.students-table col.col-dni{width:10%}.students-table col.col-status{width:12%}.students-table col.col-certificate{width:15%}.students-table col.col-action{width:18%}
.students-table th{padding:11px 12px;white-space:normal;line-height:1.3}.students-table td{padding:12px;overflow-wrap:anywhere}.student-cell{min-width:0}.student-cell>div:last-child{min-width:0}.student-cell strong{font-size:12.8px;line-height:1.35;overflow-wrap:anywhere}.student-cell small{font-size:9.8px}.grade-text{line-height:1.3}.badge{max-width:100%;white-space:normal;text-align:center;justify-content:center;line-height:1.25}.action-stack{min-width:0;width:100%;display:grid;grid-template-columns:1fr;gap:7px}.btn-action,.request-sent,.complete-mark,.no-enrollment-mark,.btn-certificate,.certificate-locked{width:100%;min-width:0}.btn-action,.btn-certificate{overflow:hidden}.btn-action>span:last-child,.btn-certificate>span:last-child{min-width:0}.btn-action b,.btn-certificate b{white-space:normal}.btn-certificate{min-height:52px}.certificate-locked{min-height:52px}.complete-mark,.request-sent,.no-enrollment-mark{min-height:48px;padding:8px 10px;border-radius:11px}
.pagination-bar{padding:13px 18px 17px}.help-strip{margin-top:14px}.public-footer{margin-bottom:10px}
.modal-card{width:min(540px,calc(100% - 24px));margin:5vh auto;padding:22px;border-radius:18px}.modal-form{gap:12px}.modal-actions{position:sticky;bottom:-22px;background:#fff;padding:11px 0 2px;margin-top:4px}

@media (max-width:1120px){
  .container{width:min(100% - 24px,var(--content-max))}
  .advanced-filters .filters-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.advanced-filters .filters-panel .btn{grid-column:span 2}
  .students-table{min-width:1030px}
}
@media (max-width:980px){
  .page-space{padding-top:14px}.hero-panel{padding:21px 20px}.hero-copy h1{font-size:32px}.hero-panel{display:block}.privacy-pill{display:inline-flex;margin-top:14px}
  .steps-grid{grid-template-columns:1fr}.step-card{padding:13px 14px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-actions-bar{display:block}.quick-actions-bar>div:first-child{margin-bottom:10px}.quick-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action{width:100%;min-width:0}
  .export-panel{flex-direction:column;align-items:stretch}.btn-export{width:100%}
  .table-wrap{overflow:visible}.students-table{min-width:0;table-layout:auto}.students-table colgroup,.students-table thead{display:none}.students-table,.students-table tbody,.students-table tr,.students-table td{display:block;width:100%}.students-table tbody{padding:0 10px 10px}.students-table tr{margin:10px 0;padding:13px 14px;border:1px solid #dfe6ef;border-radius:16px;background:#fff!important;box-shadow:0 5px 16px rgba(31,45,61,.045)}.students-table tr.needs-attention{border-left:4px solid #e5ad32;padding-left:11px}.students-table td{padding:7px 0;border:0;display:grid;grid-template-columns:122px minmax(0,1fr);gap:10px;align-items:center}.students-table td:before{content:attr(data-label);font-size:9.4px;text-transform:uppercase;letter-spacing:.05em;color:#7e8998;font-weight:850}.students-table td[data-label="Estudiante"]{display:block;padding-bottom:11px;margin-bottom:4px;border-bottom:1px solid #edf1f5}.students-table td[data-label="Estudiante"]:before{display:none}.students-table td[data-label="Constancia 2026"],.students-table td[data-label="¿Qué necesita?"]{align-items:start}.students-table td[data-label="Constancia 2026"]:before,.students-table td[data-label="¿Qué necesita?"]:before{padding-top:7px}.student-cell strong{font-size:14px}.action-stack{display:grid;grid-template-columns:1fr}.btn-action,.btn-certificate,.certificate-locked,.request-sent,.complete-mark,.no-enrollment-mark{max-width:420px}
}
@media (max-width:640px){
  .container{width:calc(100% - 14px)}.topbar-inner{min-height:60px;gap:8px}.public-brand{max-width:calc(100% - 44px)}.brand-line.compact .brand-mark{width:36px;height:36px}.public-brand .eyebrow{font-size:8.5px}.public-brand strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-status{width:34px;height:34px;padding:0;justify-content:center}.topbar-status span:last-child{display:none}
  .hero-panel{padding:17px 15px;border-radius:16px}.hero-copy h1{font-size:26px}.hero-copy p{font-size:12.8px;line-height:1.52}.privacy-pill{font-size:10.5px;padding:7px 10px}
  .steps-grid{gap:7px}.step-card{border-radius:13px}.stats-grid{gap:8px}.stat-card{padding:12px 10px;border-radius:13px}.stat-card strong{font-size:22px}.stat-card span{font-size:10px}.stat-card small{font-size:8.8px}
  .search-guide{margin:10px 8px;padding:13px 11px}.search-guide-title h2{font-size:18px}.search-guide-title p{font-size:10.5px}.search-field-main{height:50px}.search-field-main input{font-size:12.5px}.search-live-help{font-size:9.5px}
  .quick-actions-bar{padding:0 8px 10px}.quick-action-buttons{grid-template-columns:1fr}.quick-action{min-height:52px}.advanced-filters summary{padding:12px}.advanced-filters .filters-panel{padding:0 10px 12px;grid-template-columns:1fr}.advanced-filters .filters-panel .btn{grid-column:auto}.export-panel{padding:11px 10px}.export-copy small{font-size:9.5px}.section-head{padding:15px 10px 9px}.section-head h2{font-size:18px}
  .students-table tbody{padding:0 5px 7px}.students-table tr{padding:11px 10px;border-radius:13px}.students-table td{grid-template-columns:92px minmax(0,1fr);gap:8px}.students-table td:before{font-size:8.8px}.avatar{width:34px;height:34px}.student-cell{gap:9px}.student-cell strong{font-size:12.7px}.btn-certificate,.btn-action,.certificate-locked,.request-sent,.complete-mark,.no-enrollment-mark{max-width:none;min-height:46px}
  .pagination-bar{padding:10px;display:block}.pagination-bar>span{display:block;margin-bottom:8px}.pagination-bar div{display:grid;grid-template-columns:1fr 1fr}.pagination-bar .btn{width:100%}.help-strip{padding:12px}.help-strip p{font-size:10.5px}.public-footer{padding:10px 6px 0;flex-direction:column;align-items:flex-start}
  .modal-card{width:calc(100% - 14px);margin:2vh auto;max-height:96vh;padding:17px 14px;border-radius:15px}.modal-card h2{font-size:21px}.modal-actions{bottom:-17px;flex-direction:column-reverse}.modal-actions .btn{width:100%}
}
@media (max-width:390px){.stats-grid{grid-template-columns:1fr}.students-table td{grid-template-columns:82px minmax(0,1fr)}.hero-copy h1{font-size:24px}}

/* ========================================================================== 
   V4.0 — EXPERIENCIA PÚBLICA COMPACTA / DESKTOP-FIRST + RESPONSIVE
   Objetivo: buscar -> ver resultados -> actuar, sin scroll innecesario.
   ========================================================================== */
.public-v4{background:#f4f7fb;color:#182235;min-height:100vh}
.public-v4 .v4-topbar{position:sticky;top:0;z-index:60;border-bottom:1px solid #e5eaf1;box-shadow:0 2px 14px rgba(23,42,77,.045)}
.public-v4 .topbar-inner{min-height:62px}
.public-v4 .container{width:min(1460px,calc(100% - 36px))}
.public-v4 .v4-page{padding-top:16px;padding-bottom:18px}

.v4-search-card,.v4-results-card{background:#fff;border:1px solid #e1e7ef;box-shadow:0 8px 30px rgba(26,52,89,.055)}
.v4-search-card{border-radius:18px;padding:18px 20px 0;margin-bottom:14px;overflow:hidden}
.v4-search-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:13px}
.v4-search-heading h1{font-size:24px;line-height:1.1;margin:3px 0 4px;letter-spacing:-.02em;color:#14233b}
.v4-search-heading p{margin:0;color:#687487;font-size:12.5px;line-height:1.45}
.v4-search-heading .eyebrow{font-size:9px;color:#175fd3}
.v4-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.v4-summary span{display:inline-flex;align-items:center;gap:5px;border:1px solid #e3e8ef;background:#f8fafc;color:#657084;padding:6px 9px;border-radius:999px;font-size:10.5px;font-weight:700;white-space:nowrap}
.v4-summary b{font-size:12px;color:#26364d}.v4-summary .summary-ok b{color:#168055}.v4-summary .summary-warn b{color:#ae6c00}

.v4-search-box{height:60px;border:2px solid #2b68db;border-radius:15px;background:#fff;display:flex;align-items:center;gap:11px;padding:0 13px;box-shadow:0 0 0 4px rgba(43,104,219,.08);transition:.18s ease}
.v4-search-box:focus-within{border-color:#145bd4;box-shadow:0 0 0 5px rgba(43,104,219,.11),0 8px 20px rgba(43,104,219,.08)}
.v4-search-icon{font-size:27px;line-height:1;color:#1e63da;transform:rotate(-12deg);width:28px;text-align:center}
.v4-search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:700 17px/1.2 inherit;color:#14233b;padding:0}
.v4-search-box input::placeholder{font-weight:600;color:#97a3b4}
.v4-clear-search{border:0;background:#edf2f8;color:#56667b;width:34px;height:34px;border-radius:10px;font-size:22px;cursor:pointer;display:grid;place-items:center}.v4-clear-search:hover{background:#e1e9f4;color:#173f7e}

.v4-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:13px;padding-bottom:12px}
.v4-quick-filters{display:flex;gap:7px;flex-wrap:wrap}
.public-v4 .quick-action{min-width:0;min-height:35px;padding:7px 10px;border-radius:10px;border:1px solid #dfe6ef;background:#f8fafc;display:inline-flex;align-items:center;gap:7px;color:#415068;box-shadow:none;transition:.15s ease}
.public-v4 .quick-action span{font-size:11.5px;font-weight:800}.public-v4 .quick-action small{font-size:9.5px;font-weight:800;background:#e9eef5;color:#6a7687;border-radius:999px;padding:2px 6px}
.public-v4 .quick-action:hover{border-color:#a9c3eb;background:#f2f7ff}.public-v4 .quick-action.active{border-color:#2a67d7;background:#edf4ff;color:#1558c5}.public-v4 .quick-action.active small{background:#2a67d7;color:#fff}
.v4-live-status{display:flex;align-items:center;gap:7px;color:#6d7889;font-size:10.5px;font-weight:700;white-space:nowrap}.v4-live-status .live-dot{width:8px;height:8px}

.v4-advanced-filters{margin:0 -20px;border-top:1px solid #edf0f4;background:#fbfcfe}
.v4-advanced-filters summary{padding:10px 20px;display:flex;align-items:center;gap:9px;cursor:pointer;color:#536177;font-size:11px;font-weight:850;list-style:none}.v4-advanced-filters summary::-webkit-details-marker{display:none}
.v4-advanced-filters summary:before{content:'▸';font-size:11px;color:#8491a3;transition:.15s}.v4-advanced-filters[open] summary:before{transform:rotate(90deg)}
.v4-advanced-filters summary small{font-size:9.5px;color:#95a0af;font-weight:600}
.v4-advanced-filters .filters-panel{padding:0 20px 14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:9px;align-items:end}
.v4-advanced-filters .filter-field{min-width:0}.v4-advanced-filters .filter-field>span{font-size:9.5px;margin-bottom:5px}.v4-advanced-filters select{min-height:40px;font-size:11px;border-radius:10px;padding:0 10px;width:100%}.v4-advanced-filters .btn{height:40px;padding:0 13px;font-size:10.5px}

.v4-results-card{border-radius:18px;overflow:hidden;scroll-margin-top:72px}
.v4-results-header{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;border-bottom:1px solid #e8edf3;background:#fff}
.v4-results-title{display:flex;align-items:center;gap:14px;min-width:0}.v4-results-title h2{font-size:18px;line-height:1.15;margin:2px 0 0;color:#16243a}.v4-results-title .eyebrow{font-size:8.5px}
.v4-results-card .results-count{font-size:10.5px;padding:6px 9px;background:#f2f5f9;border:1px solid #e2e7ee;border-radius:999px;white-space:nowrap}.v4-results-card .results-count b{font-size:12px;color:#183258}
.v4-results-tools{display:flex;align-items:center;gap:12px}.v4-hint{font-size:10px;color:#7c8796;white-space:nowrap}.v4-export{min-height:38px;padding:0 12px;border-radius:10px;font-size:10.5px;gap:7px}.v4-export>span{font-size:9px;font-weight:900;border:1px solid currentColor;border-radius:5px;padding:2px 4px}

.v4-table-wrap{overflow-x:auto;background:#fff}.v4-students-table{width:100%;min-width:1080px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.v4-students-table col.col-student{width:29%}.v4-students-table col.col-level{width:15%}.v4-students-table col.col-section{width:7%}.v4-students-table col.col-dni{width:11%}.v4-students-table col.col-status{width:13%}.v4-students-table col.col-action{width:25%}
.v4-students-table thead th{position:sticky;top:62px;z-index:8;background:#f7f9fc;color:#697589;font-size:9.3px;letter-spacing:.045em;text-transform:uppercase;padding:10px 13px;border-bottom:1px solid #e2e7ee;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.v4-students-table tbody tr{background:#fff}.v4-students-table tbody tr:nth-child(even){background:#fbfcfe}.v4-students-table tbody tr:hover{background:#f5f9ff}.v4-students-table tbody tr.needs-attention{box-shadow:inset 3px 0 0 #e7b553}
.v4-students-table td{padding:10px 13px;border-bottom:1px solid #edf1f5;vertical-align:middle;font-size:11px;color:#354257;overflow-wrap:anywhere}
.v4-students-table .student-cell{gap:10px}.v4-students-table .avatar{width:34px;height:34px;border-radius:10px;font-size:13px}.v4-students-table .student-name{font-size:12.7px;line-height:1.3;color:#17243a}.v4-students-table .student-cell small{font-size:9.2px;color:#909aaa;margin-top:2px}
.v4-students-table .level-tag{font-size:9px;padding:3px 7px;border-radius:7px}.v4-students-table .grade-text{font-size:10.5px;margin-top:4px;color:#657185}.v4-students-table .section-pill{min-width:29px;height:29px;border-radius:9px;font-size:11px}.v4-students-table .badge{font-size:8.8px;padding:4px 7px;border-radius:7px}.v4-students-table .dni-cell small{font-size:9px;margin-top:4px}
.v4-action-stack{display:flex;gap:7px;align-items:stretch;width:100%}.v4-manage-actions{display:flex;gap:7px;min-width:0;flex:1}.v4-action-stack .btn-action,.v4-action-stack .btn-certificate,.v4-action-stack .request-sent,.v4-action-stack .no-enrollment-mark{min-height:43px;border-radius:10px;padding:7px 9px;flex:1;min-width:0}.v4-action-stack .btn-action-icon,.v4-action-stack .certificate-icon{width:27px;height:27px;font-size:14px;border-radius:8px}.v4-action-stack b{font-size:9.7px;line-height:1.2}.v4-action-stack small{font-size:8px;line-height:1.2;margin-top:2px}.v4-action-primary{background:#ecf6ff;border-color:#b5d5f2;color:#0d4f92}.v4-action-primary:hover{background:#dff0ff}.v4-manage-actions:empty{display:none}
.v4-action-stack .btn-enroll{background:#2462d8;border-color:#2462d8}.v4-action-stack .btn-dni{background:#fff8e8;border-color:#efcd7d;color:#8c5b00}
.v4-pagination{padding:10px 14px;border-top:0;background:#fbfcfe}.v4-pagination #pageInfo{font-size:10px;color:#778395}.v4-pagination .btn{min-height:33px;padding:0 11px;font-size:10px;border-radius:9px}
.v4-footer{margin-top:10px;padding:10px 4px 0;font-size:9.5px}

/* desktop intermedio: preservar una tabla ordenada sin columnas aplastadas */
@media (max-width:1180px){
  .public-v4 .container{width:calc(100% - 22px)}
  .v4-summary{display:none}.v4-results-tools .v4-hint{display:none}
  .v4-students-table{min-width:1040px}
  .v4-advanced-filters .filters-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.v4-advanced-filters .filters-panel .btn{grid-column:span 2}
}

/* tablet y móvil: mantener el responsive en tarjetas, sin scroll horizontal */
@media (max-width:980px){
  .public-v4 .topbar-inner{min-height:58px}.public-v4 .v4-page{padding-top:10px}.public-v4 .container{width:calc(100% - 16px)}
  .v4-search-card{padding:14px 12px 0;border-radius:15px}.v4-search-heading{display:block;margin-bottom:10px}.v4-search-heading h1{font-size:21px}.v4-search-heading p{font-size:11px}.v4-summary{display:none}
  .v4-search-box{height:54px;border-radius:13px;padding:0 10px}.v4-search-box input{font-size:14px}.v4-search-icon{font-size:23px}
  .v4-toolbar{display:block;margin-top:10px;padding-bottom:10px}.v4-quick-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.public-v4 .quick-action{justify-content:space-between;width:100%;min-height:38px}.v4-live-status{margin-top:8px;font-size:9.5px}
  .v4-advanced-filters{margin:0 -12px}.v4-advanced-filters summary{padding:10px 12px}.v4-advanced-filters .filters-panel{padding:0 12px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.v4-advanced-filters .filters-panel .btn{grid-column:span 2}
  .v4-results-card{border-radius:15px}.v4-results-header{padding:11px 12px;display:block}.v4-results-title{justify-content:space-between}.v4-results-title h2{font-size:16px}.v4-results-tools{margin-top:9px;justify-content:flex-end}.v4-hint{display:none}.v4-export{width:auto}
  .v4-table-wrap{overflow:visible}.v4-students-table{min-width:0;table-layout:auto}.v4-students-table colgroup,.v4-students-table thead{display:none}.v4-students-table,.v4-students-table tbody,.v4-students-table tr,.v4-students-table td{display:block;width:100%}.v4-students-table tbody{padding:5px 8px 9px}.v4-students-table tr{margin:8px 0;padding:11px 12px;border:1px solid #e0e6ee;border-radius:14px;background:#fff!important;box-shadow:0 4px 14px rgba(25,47,78,.04)}.v4-students-table tr.needs-attention{border-left:4px solid #e0aa3b;padding-left:9px;box-shadow:0 4px 14px rgba(25,47,78,.04)}
  .v4-students-table td{padding:6px 0;border:0;display:grid;grid-template-columns:112px minmax(0,1fr);gap:9px;align-items:center}.v4-students-table td:before{content:attr(data-label);font-size:8.7px;text-transform:uppercase;letter-spacing:.05em;color:#8791a0;font-weight:850}.v4-students-table td[data-label="Estudiante"]{display:block;padding-bottom:9px;margin-bottom:2px;border-bottom:1px solid #eef1f5}.v4-students-table td[data-label="Estudiante"]:before{display:none}.v4-students-table td[data-label="Acciones"]{display:block;padding-top:9px}.v4-students-table td[data-label="Acciones"]:before{display:block;margin-bottom:7px}
  .v4-action-stack,.v4-manage-actions{display:grid;grid-template-columns:1fr;gap:6px}.v4-action-stack .btn-action,.v4-action-stack .btn-certificate,.v4-action-stack .request-sent,.v4-action-stack .no-enrollment-mark{width:100%;max-width:none;min-height:46px}
  .v4-pagination{padding:9px 10px}
}

@media (max-width:560px){
  .public-v4 .container{width:calc(100% - 10px)}.public-v4 .topbar-inner{min-height:56px}.public-v4 .public-brand strong{font-size:11.5px}.public-v4 .public-brand .eyebrow{font-size:8px}
  .v4-search-card{padding:12px 9px 0}.v4-search-heading h1{font-size:19px}.v4-search-heading p{font-size:10.2px}.v4-search-box{height:50px}.v4-search-box input{font-size:12.5px}.v4-quick-filters{grid-template-columns:1fr 1fr}.public-v4 .quick-action{padding:6px 8px}.public-v4 .quick-action span{font-size:10px}.public-v4 .quick-action small{font-size:8.5px}
  .v4-advanced-filters{margin:0 -9px}.v4-advanced-filters .filters-panel{padding:0 9px 10px;grid-template-columns:1fr}.v4-advanced-filters .filters-panel .btn{grid-column:auto}
  .v4-results-header{padding:10px 9px}.v4-results-title{display:flex;align-items:center;gap:7px}.v4-results-title h2{font-size:15px}.v4-results-card .results-count{font-size:9px}.v4-export{width:100%;justify-content:center}
  .v4-students-table tbody{padding:4px}.v4-students-table tr{padding:10px 9px;border-radius:12px}.v4-students-table td{grid-template-columns:88px minmax(0,1fr);gap:7px}.v4-students-table td:before{font-size:8px}.v4-students-table .student-name{font-size:12.3px}.v4-students-table .avatar{width:32px;height:32px}.v4-action-stack b{font-size:10px}.v4-action-stack small{font-size:8.5px}
  .v4-pagination{display:block}.v4-pagination>span{display:block;margin-bottom:7px}.v4-pagination>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.v4-pagination .btn{width:100%}.v4-footer{padding:8px 5px 0;flex-direction:column;align-items:flex-start;gap:5px}
}

/* V4.2 — control administrativo de solicitud de matrícula */
.request-toggle-form{margin:0}.admin-request-toggle{border:1px solid #d7dee8;background:#fff;border-radius:999px;min-height:32px;padding:4px 9px 4px 5px;display:inline-flex;align-items:center;gap:7px;color:#536176;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}.admin-request-toggle .toggle-dot{width:20px;height:20px;border-radius:50%;display:block;background:#aab4c3;box-shadow:inset 0 0 0 5px #fff;border:1px solid #c8d0da}.admin-request-toggle.is-on{border-color:#b9ddca;background:#effaf4;color:#167247}.admin-request-toggle.is-on .toggle-dot{background:#1c9a61;border-color:#1c9a61}.admin-request-toggle.is-off{border-color:#e1e5eb;background:#f7f8fa;color:#758195}.admin-request-toggle:hover{filter:brightness(.98);transform:translateY(-1px)}

/* V4.2.7 - estado RETIRADO en administración */
.badge-withdrawn{color:#a13a36;background:#fff0f0;border:1px solid #f4d0cd}
