:root {
    --primary: #7a1020;
    --primary-dark: #520914;
    --primary-soft: #fff1f3;
    --secondary: #1f3b57;
    --secondary-dark: #142638;
    --secondary-soft: #edf5fb;
    --gold: #c9a646;
    --success: #16875d;
    --danger: #c0392b;
    --bg-main: #f5f7fb;
    --bg-card: #ffffff;
    --text-main: #172033;
    --text-muted: #6b7280;
    --border-soft: #e6e9f0;
    --radius-lg: 24px;
    --radius-xl: 32px;
    --shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.06);
    --shadow-medium: 0 18px 45px rgba(15, 23, 42, 0.10);
    --shadow-hover: 0 22px 55px rgba(15, 23, 42, 0.14);
}
* { box-sizing: border-box; }
body {
    font-family: 'Inter', sans-serif;
    background:
        radial-gradient(circle at top left, rgba(122,16,32,.10), transparent 35%),
        radial-gradient(circle at top right, rgba(31,59,87,.10), transparent 35%),
        var(--bg-main);
    color: var(--text-main);
    min-height: 100vh;
}
h1,h2,h3,h4 { font-weight: 900; letter-spacing: -0.035em; }
.title-serif { font-family: 'Playfair Display', serif; letter-spacing: -0.02em; }
.text-muted-pro { color: var(--text-muted); }
.section-space { padding: 38px 0; }
.app-header {
    position: relative; top: 0; z-index: 50; padding: 16px 0;
    background: rgba(255,255,255,.86); backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(230,233,240,.8);
}
.brand-box { display:flex; align-items:center; gap:14px; color:var(--text-main); }
.brand-icon { width:52px; height:52px; border-radius:18px; background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; display:grid; place-items:center; font-size:1.35rem; box-shadow:0 14px 30px rgba(122,16,32,.22); }
.brand-title { font-weight:900; font-size:1.05rem; line-height:1.1; }
.brand-subtitle { color:var(--text-muted); font-size:.82rem; margin-top:3px; }
.header-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.nav-pill { border:1px solid var(--border-soft); padding:10px 15px; border-radius:999px; color:var(--text-main); text-decoration:none; background:#fff; font-weight:800; font-size:.86rem; display:inline-flex; align-items:center; gap:8px; transition:all .22s ease; }
.nav-pill:hover { transform:translateY(-2px); color:var(--primary); box-shadow:var(--shadow-soft); }
.nav-pill-dark { background:var(--secondary); color:#fff; border-color:var(--secondary); }
.nav-pill-dark:hover { background:var(--primary); color:#fff; }
.hero-premium { padding:70px 0 50px; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; padding:9px 15px; background:var(--primary-soft); color:var(--primary); border-radius:999px; font-weight:900; font-size:.82rem; margin-bottom:18px; }
.hero-title { font-size:clamp(2.4rem,5vw,5rem); line-height:.95; color:var(--text-main); margin-bottom:20px; }
.hero-text { font-size:1.08rem; line-height:1.8; color:var(--text-muted); max-width:720px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.hero-card { background:rgba(255,255,255,.82); backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.9); border-radius:var(--radius-xl); padding:34px; box-shadow:var(--shadow-medium); position:relative; overflow:hidden; }
.hero-card::before { content:""; position:absolute; inset:auto -80px -90px auto; width:220px; height:220px; border-radius:50%; background:rgba(122,16,32,.10); }
.hero-card-icon { width:72px; height:72px; border-radius:24px; background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; display:grid; place-items:center; font-size:2rem; margin-bottom:24px; }
.hero-card h3 { font-size:1.45rem; margin-bottom:10px; }
.hero-card p { color:var(--text-muted); line-height:1.7; }
.mini-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px; }
.mini-stats div { background:#fff; border:1px solid var(--border-soft); border-radius:18px; padding:15px; }
.mini-stats strong { display:block; font-size:1.25rem; color:var(--primary); }
.mini-stats span { display:block; font-size:.74rem; color:var(--text-muted); margin-top:2px; }
.btn-pro-primary,.btn-pro-light,.btn-pro-danger,.btn-pro-success { border:0; border-radius:999px; padding:13px 22px; font-weight:900; font-size:.92rem; display:inline-flex; align-items:center; justify-content:center; gap:9px; text-decoration:none; transition:all .22s ease; cursor:pointer; }
.btn-pro-primary { background:linear-gradient(135deg,var(--primary),var(--primary-dark)); color:#fff; box-shadow:0 14px 30px rgba(122,16,32,.25); }
.btn-pro-primary:hover { color:#fff; transform:translateY(-2px); box-shadow:0 18px 40px rgba(122,16,32,.32); }
.btn-pro-light { background:#fff; color:var(--secondary); border:1px solid var(--border-soft); }
.btn-pro-light:hover { color:var(--primary); transform:translateY(-2px); box-shadow:var(--shadow-soft); }
.btn-pro-success { background:linear-gradient(135deg,#16875d,#0e5f41); color:#fff; }
.btn-pro-danger { background:linear-gradient(135deg,#c0392b,#8e241c); color:#fff; }
.type-card { display:block; height:100%; background:rgba(255,255,255,.9); border:1px solid rgba(230,233,240,.9); border-radius:var(--radius-lg); padding:28px; text-decoration:none; color:var(--text-main); box-shadow:var(--shadow-soft); transition:all .25s ease; position:relative; overflow:hidden; }
.type-card::after { content:""; position:absolute; width:160px; height:160px; right:-80px; top:-80px; background:rgba(122,16,32,.07); border-radius:50%; }
.type-card:hover { color:var(--text-main); transform:translateY(-6px); box-shadow:var(--shadow-hover); border-color:rgba(122,16,32,.18); }
.type-icon { width:68px; height:68px; border-radius:22px; display:grid; place-items:center; color:#fff; font-size:1.65rem; margin-bottom:24px; }
.bg-student { background:linear-gradient(135deg,#7a1020,#b51d34); }
.bg-staff { background:linear-gradient(135deg,#1f3b57,#315f88); }
.bg-public { background:linear-gradient(135deg,#9b7b21,#c9a646); }
.type-card h3 { font-size:1.22rem; margin-bottom:10px; }
.type-card p { color:var(--text-muted); line-height:1.65; font-size:.94rem; margin-bottom:22px; }
.type-card span { color:var(--primary); font-weight:900; display:inline-flex; align-items:center; gap:8px; }
.form-shell,.table-shell { background:rgba(255,255,255,.94); border:1px solid var(--border-soft); border-radius:var(--radius-xl); padding:clamp(22px,4vw,42px); box-shadow:var(--shadow-medium); }
.form-header,.table-header-pro { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:30px; padding-bottom:24px; border-bottom:1px solid var(--border-soft); flex-wrap:wrap; }
.form-kicker { color:var(--primary); font-weight:900; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.form-header h2,.table-header-pro h2 { margin:6px 0 8px; font-size:clamp(1.7rem,3vw,2.35rem); }
.form-header p { color:var(--text-muted); margin:0; line-height:1.6; }
.form-badge { padding:12px 16px; background:var(--secondary-soft); color:var(--secondary); border-radius:999px; font-weight:900; font-size:.84rem; white-space:nowrap; display:inline-flex; align-items:center; gap:8px; }
.form-label-pro { font-weight:900; font-size:.82rem; color:var(--secondary-dark); margin-bottom:8px; }
.form-control-pro { min-height:48px; border-radius:15px; border:1px solid var(--border-soft); background-color:#fbfcfe; font-size:.94rem; transition:all .18s ease; }
.form-control-pro:focus { background-color:#fff; border-color:rgba(122,16,32,.45); box-shadow:0 0 0 4px rgba(122,16,32,.08); }
.waiver-card { background:linear-gradient(135deg,#fff8e1,#ffffff); border:1px solid rgba(201,166,70,.35); border-radius:22px; padding:22px; display:flex; gap:18px; }
.waiver-icon { width:54px; height:54px; border-radius:18px; background:rgba(201,166,70,.18); color:#9b7b21; display:grid; place-items:center; font-size:1.35rem; flex:0 0 auto; }
.waiver-card strong { display:block; color:var(--text-main); font-size:1rem; margin-bottom:4px; }
.waiver-card p { color:var(--text-muted); margin-bottom:12px; line-height:1.6; }
.check-pro { display:inline-flex; align-items:center; gap:10px; font-weight:900; color:var(--secondary-dark); }
.check-pro input { width:18px; height:18px; accent-color:var(--primary); }
.table-pro { border-collapse:separate; border-spacing:0 10px; }
.table-pro thead th { border:0; color:var(--text-muted); text-transform:uppercase; font-size:.72rem; letter-spacing:.08em; font-weight:900; padding:10px 14px; }
.table-pro tbody tr { background:#fff; box-shadow:0 8px 22px rgba(15,23,42,.045); }
.table-pro tbody td { border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); padding:16px 14px; color:var(--text-main); }
.table-pro tbody td:first-child { border-left:1px solid var(--border-soft); border-radius:16px 0 0 16px; }
.table-pro tbody td:last-child { border-right:1px solid var(--border-soft); border-radius:0 16px 16px 0; }
.badge-type { border-radius:999px; padding:7px 12px; font-size:.75rem; font-weight:900; display:inline-block; }
.badge-alumno { background:var(--primary-soft); color:var(--primary); }
.badge-personal { background:var(--secondary-soft); color:var(--secondary); }
.badge-publico { background:#fff8df; color:#9b7b21; }
.btn-icon-pro { width:38px; height:38px; border-radius:13px; display:inline-grid; place-items:center; border:1px solid var(--border-soft); background:#fff; color:var(--secondary); text-decoration:none; transition:all .18s ease; }
.btn-icon-pro:hover { background:var(--primary); color:#fff; transform:translateY(-2px); }
.print-card { max-width:950px; margin:36px auto; background:#fff; border-radius:28px; padding:42px; box-shadow:var(--shadow-medium); border:1px solid var(--border-soft); }
.print-top { display:flex; justify-content:space-between; gap:18px; border-bottom:2px solid var(--border-soft); padding-bottom:22px; margin-bottom:28px; }
.print-top span { color:var(--primary); font-weight:900; text-transform:uppercase; letter-spacing:.08em; font-size:.75rem; }
.print-top h1 { font-family:'Playfair Display',serif; font-size:2.4rem; margin:6px 0 0; }
.folio-box { border:1px solid var(--border-soft); border-radius:18px; padding:14px 18px; text-align:center; color:var(--text-muted); font-weight:900; min-width:130px; }
.folio-box strong { display:block; color:var(--primary); font-size:1.35rem; }
.participant-profile { display:flex; align-items:center; gap:18px; margin-bottom:28px; }
.avatar-print { width:76px; height:76px; border-radius:24px; background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; display:grid; place-items:center; font-size:2rem; font-weight:900; }
.participant-profile h2 { margin:0; font-size:1.6rem; }
.participant-profile p { margin:4px 0 0; color:var(--text-muted); font-weight:800; }
.print-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.print-grid div { border:1px solid var(--border-soft); border-radius:18px; padding:16px; background:#fbfcfe; }
.print-grid small { display:block; color:var(--text-muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; font-weight:900; margin-bottom:6px; }
.print-grid strong { color:var(--text-main); font-size:.96rem; }
.exoneration-print { margin-top:22px; padding:16px 18px; border-radius:18px; background:#effaf5; color:var(--success); font-weight:900; display:flex; align-items:center; gap:10px; }
.signature-area { display:grid; grid-template-columns:repeat(2,1fr); gap:40px; margin-top:60px; text-align:center; color:var(--text-muted); font-weight:900; }
.signature-area span { display:block; border-top:1px solid #333; margin-bottom:8px; }
.print-actions { margin-top:32px; display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
.footer-pro { padding:24px 0; margin-top:40px; color:var(--text-muted); font-size:.86rem; }
.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select { border-radius:999px; border:1px solid var(--border-soft); padding:8px 14px; outline:none; }
.page-link { border-radius:12px !important; margin:0 3px; color:var(--secondary); border-color:var(--border-soft); }
.page-item.active .page-link { background:var(--primary); border-color:var(--primary); }
.alert-pro { border:0; border-radius:20px; box-shadow:var(--shadow-soft); }
@media (max-width:768px){
    .app-header{position:relative}.header-actions{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.nav-pill{justify-content:center;font-size:.78rem;padding:10px}.hero-premium{padding:38px 0 28px}.hero-actions{display:grid}.btn-pro-primary,.btn-pro-light{width:100%}.mini-stats{grid-template-columns:1fr}.form-header{flex-direction:column}.form-badge{white-space:normal}.waiver-card{flex-direction:column}.table-shell{padding:18px}.print-card{margin:16px;padding:24px}.print-top{flex-direction:column}.print-grid{grid-template-columns:1fr}.signature-area{grid-template-columns:1fr;gap:55px}
}
@media print{
    body{background:#fff}.app-header,.no-print,.print-actions,.footer-pro{display:none!important}.print-card{box-shadow:none;border:none;margin:0;padding:20px;max-width:100%}.print-grid{grid-template-columns:repeat(2,1fr)}
}

/* Ajustes UX: campos no aplicables y validaciones visuales */
.campo-no-aplica { display:none !important; }
.form-control-pro.is-invalid,
.form-select.form-control-pro.is-invalid {
    border-color:#c0392b;
    background:#fffafa;
    box-shadow:0 0 0 4px rgba(192,57,43,.08);
}
.form-control-pro.is-valid,
.form-select.form-control-pro.is-valid {
    border-color:#16875d;
}
.swal2-popup {
    border-radius:24px !important;
    font-family:'Inter',sans-serif !important;
}
.swal2-title {
    letter-spacing:-.03em !important;
    color:var(--text-main) !important;
}
.bg-admin {
    background: linear-gradient(135deg, #102c4c, #7a1020);
}