:root{--ink:#132238;--muted:#64748b;--line:#dfe7ef;--surface:#fff;--bg:#f4f7fb;--primary:#8b1e2d;--primary2:#b52d42;--accent:#f4c542;--success:#16805b;--danger:#b42318;--shadow:0 22px 60px rgba(15,34,56,.12)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}.topbar,.admin-top{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--primary),var(--primary2));color:#fff;display:grid;place-items:center;font-weight:800;font-size:22px;box-shadow:0 8px 18px rgba(139,30,45,.25)}.brand-mark.large{width:64px;height:64px;border-radius:20px;font-size:32px;margin:auto}.brand div:last-child{display:flex;flex-direction:column}.brand strong{letter-spacing:.08em}.brand span,.admin-link,.admin-top a{font-size:12px;color:var(--muted);text-decoration:none}.admin-link{padding:10px 14px;border:1px solid var(--line);border-radius:12px}.page-shell{max-width:1050px;margin:34px auto 70px;padding:0 20px}.hero{background:linear-gradient(135deg,#fff 0%,#fff7ee 100%);border:1px solid #eadfd7;border-radius:28px;padding:38px 42px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:'';position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(244,197,66,.18);right:-90px;top:-100px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--primary)}h1{font-size:clamp(30px,4vw,48px);line-height:1.05;margin:8px 0 12px;letter-spacing:-.04em}.hero p,.section-title p,.admin-heading p{color:var(--muted);margin:0}.hero-badge{position:relative;z-index:1;width:150px;height:150px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-content:center;text-align:center;box-shadow:inset 0 0 0 10px rgba(255,255,255,.12)}.hero-badge span{font-size:34px;font-weight:800;letter-spacing:.08em}.hero-badge small{opacity:.8}.progress-wrap{margin:28px 8px 18px}.progress-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:700}.progress{height:7px;background:#e5ebf1;border-radius:99px;margin-top:10px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:99px;transition:.35s}.form-step{display:none;background:#fff;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:0 16px 44px rgba(23,40,66,.07)}.form-step.active{display:block;animation:fade .25s ease}.section-title{display:flex;gap:16px;align-items:center;margin-bottom:28px}.section-title>span{width:48px;height:48px;border-radius:15px;background:#f8e9ec;color:var(--primary);display:grid;place-items:center;font-weight:800}.section-title h2{margin:0;font-size:24px}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}.field{display:flex;flex-direction:column;gap:8px;border:0;padding:0;margin:0}.field>span,.field legend{font-weight:700;font-size:13px}.field small{color:var(--muted)}input,select,textarea{width:100%;border:1px solid #cad5e1;border-radius:13px;padding:13px 14px;background:#fbfdff;color:var(--ink);font:inherit;outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--primary2);box-shadow:0 0 0 4px rgba(181,45,66,.1);background:#fff}textarea{resize:vertical}.segmented{display:flex;gap:10px}.segmented label{flex:1}.segmented input{position:absolute;opacity:0}.segmented span{display:block;text-align:center;border:1px solid #cad5e1;border-radius:13px;padding:13px;cursor:pointer}.segmented input:checked+span{background:#f8e9ec;border-color:var(--primary);color:var(--primary);font-weight:700}.upload-box{border:1.5px dashed #b8c5d2;border-radius:18px;padding:24px;text-align:center;background:#fafcff;cursor:pointer}.upload-box input{position:absolute;opacity:0;pointer-events:none}.upload-box b{font-size:14px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.btn{border:0;border-radius:13px;padding:13px 20px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 9px 22px rgba(139,30,45,.24)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.full{width:100%;margin-top:8px}.hidden{display:none!important}.autocomplete{position:relative}.autocomplete-results{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);max-height:320px;overflow:auto;padding:6px}.autocomplete-results button{width:100%;display:flex;gap:10px;text-align:left;border:0;background:transparent;padding:10px;border-radius:9px;cursor:pointer}.autocomplete-results button:hover{background:#f5f7fa}.autocomplete-results strong{min-width:70px;color:var(--primary)}.autocomplete-results span{font-size:12px}.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.summary div{border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column}.summary span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.summary strong{margin-top:4px}.consent{display:flex;gap:10px;margin-top:22px;padding:16px;background:#f7fafc;border-radius:14px}.consent input{width:auto}.alert{padding:14px 16px;border-radius:13px;margin:18px 0}.alert.error{background:#fff0ef;color:var(--danger);border:1px solid #ffd2cf}footer{text-align:center;color:var(--muted);font-size:12px;padding:30px}.success-page,.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#fff4e1,#f4f7fb 50%)}.success-card,.auth-card{width:min(620px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:42px;text-align:center;box-shadow:var(--shadow)}.success-icon{width:72px;height:72px;border-radius:50%;background:#e7f7f1;color:var(--success);display:grid;place-items:center;font-size:36px;font-weight:800;margin:0 auto 20px}.success-card code{display:block;background:#f4f7fb;padding:14px;border-radius:12px;margin:14px 0}.success-actions{display:flex;justify-content:center;gap:12px;margin:22px 0}.auth-card form{text-align:left;margin-top:24px;display:grid;gap:16px}.auth-card h1{font-size:34px}.back-link{display:block;margin-top:20px;color:var(--muted);text-decoration:none}.admin-top nav{display:flex;gap:20px}.admin-shell,.detail-shell{max-width:1380px;margin:34px auto;padding:0 24px}.admin-heading,.detail-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.admin-heading h1,.detail-title h1{font-size:38px}.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 24px;text-align:center}.metric strong{font-size:28px;display:block}.metric span{font-size:11px;color:var(--muted)}.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin-bottom:16px}.table-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:auto;box-shadow:0 12px 34px rgba(23,40,66,.06)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:15px 14px;text-align:left;border-bottom:1px solid #edf1f5;white-space:nowrap}th{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:#fafbfd}td small{display:block;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis}.status{display:inline-flex;padding:5px 9px;border-radius:99px;background:#eef2f6;font-size:10px;font-weight:800;text-transform:uppercase}.status.completed{background:#e5f6ef;color:#127653}.status.captured{background:#fff4d6;color:#8a5d00}.status.partial{background:#fff0ef;color:#a52a20}.row-link{font-weight:700;color:var(--primary);text-decoration:none}.empty{text-align:center;color:var(--muted);padding:40px}.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.pagination a{width:34px;height:34px;border-radius:9px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;text-decoration:none;color:var(--ink);font-size:12px}.pagination a.active{background:var(--primary);color:#fff}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-grid article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.detail-grid article.wide{grid-column:span 2}.detail-grid h2{margin-top:0}.detail-grid dl{display:grid;grid-template-columns:140px 1fr;gap:12px;margin:0}.detail-grid dt{color:var(--muted);font-size:12px}.detail-grid dd{margin:0;font-weight:600}.long-text{white-space:normal}.detail-title p{font-family:monospace;color:var(--muted)}@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:760px){.topbar,.admin-top{padding:0 16px}.brand span{display:none}.hero{padding:28px}.hero-badge{display:none}.grid.two,.summary,.detail-grid{grid-template-columns:1fr}.span-2,.detail-grid article.wide{grid-column:span 1}.form-step{padding:24px 18px}.filters{grid-template-columns:1fr}.admin-top nav a:first-child{display:none}.admin-heading,.detail-title{align-items:flex-start}.metric{display:none}.success-actions{flex-direction:column}.detail-grid dl{grid-template-columns:1fr}.detail-grid dd{margin-bottom:8px}}

/* SDRA 2.0: instalador MySQL y correo */
.auth-card.setup-card{max-width:860px;width:min(860px,calc(100% - 32px));}
.auth-card.setup-card h2{font-size:1.05rem;margin:28px 0 14px;color:#312e81;}
.alert.success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;}
.status.accepted{background:#dcfce7;color:#166534;}
.status.failed{background:#fee2e2;color:#991b1b;}

/* Ajuste SDRA: selección de duración por días u horas */
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.grid.three{grid-template-columns:1fr}}
