:root{--blue:#1E52C7;--deep:oklch(0.34 0.14 258);--soft:oklch(0.95 0.03 258);--ink:oklch(0.22 0.02 258);--ink2:oklch(0.46 0.015 258);--line:oklch(0.91 0.008 258);--bg:oklch(0.985 0.004 258);--red:oklch(0.5 0.16 25);--grn:oklch(0.45 0.12 150);--amb:oklch(0.55 0.13 70)}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:"Manrope",system-ui,sans-serif;min-height:100vh;line-height:1.5}
h1,h2,h3{font-family:"Sora",sans-serif;letter-spacing:-0.02em;line-height:1.15;text-wrap:balance}
p{text-wrap:pretty}
a{color:var(--deep)}a:hover{color:var(--blue)}
button{font-family:inherit;cursor:pointer}
.hidden{display:none!important}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;font-family:"Sora";font-weight:700;font-size:15px;color:var(--ink);text-decoration:none}
.brand small{font-family:"Manrope";font-weight:700;font-size:12px;color:var(--ink2);padding-left:10px;border-left:1px solid var(--line);white-space:nowrap}
.nav{display:flex;align-items:center;gap:18px;font-size:14px;font-weight:700}
.nav a{text-decoration:none;color:var(--ink2)}.nav a:hover{color:var(--blue)}.nav a.btn,.nav a.btn:hover{color:#fff}
@media (max-width:640px){.brand small,.nav .hm{display:none}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;background:var(--blue);color:#fff;font-family:"Sora";font-weight:700;font-size:14px;padding:12px 18px;border-radius:12px;text-decoration:none}
.btn:hover{background:var(--deep);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.lg{font-size:16px;padding:15px 24px}
.ghost{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:8px 13px;font-weight:800;font-size:13px;color:var(--ink);text-decoration:none}
.ghost:hover{border-color:var(--blue);color:var(--blue)}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}
.fld{display:flex;flex-direction:column;gap:6px}
.fld label{font-size:12px;font-weight:800;color:var(--ink2)}
.fld input,.fld select,.fld textarea{width:100%;border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;font-family:inherit;font-size:14px;outline:none;background:#fff;color:var(--ink)}
.fld textarea{min-height:90px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--blue)}
.fld .hint{font-size:12px;color:var(--ink2);font-weight:600}
.pre{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}
.pre span{padding:11px 0 11px 13px;font-size:14px;color:var(--ink2);white-space:nowrap}
.pre input{border:none;padding-left:2px}
.pre:focus-within{border-color:var(--blue)}
.form{display:grid;gap:14px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:560px){.two{grid-template-columns:1fr}}
.err,.ok,.warn{border-radius:10px;padding:11px 13px;font-size:13px;font-weight:700;line-height:1.45}
.err{background:oklch(0.96 0.04 25);color:var(--red)}
.ok{background:oklch(0.96 0.04 150);color:var(--grn)}
.warn{background:oklch(0.96 0.05 80);color:oklch(0.42 0.1 70)}
.chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--deep);white-space:nowrap}
.chip.activa{background:oklch(0.94 0.05 150);color:var(--grn)}
.chip.pendiente{background:oklch(0.95 0.06 80);color:oklch(0.45 0.1 70)}
.chip.suspendida{background:oklch(0.95 0.04 25);color:var(--red)}
.cf-turnstile{display:flex;justify-content:center}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);padding:10px 10px;border-bottom:1.5px solid var(--line)}
.tbl td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl select{border:1.5px solid var(--line);border-radius:8px;padding:6px 8px;font-family:inherit;font-size:13px;background:#fff}
.tblw{overflow-x:auto}
.empty{padding:28px;text-align:center;color:var(--ink2);font-weight:600;font-size:14px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:600;color:var(--ink2)}
.chk input{margin-top:3px;width:16px;height:16px;flex:none}
