
:root{
  --primary:#1268f3;
  --primary-2:#6f32ff;
  --accent:#e83dff;
  --ink:#172033;
  --muted:#667085;
  --bg:#f4f6fb;
  --panel:#ffffff;
  --soft:#f7f8fc;
  --line:#e3e7ef;
  --danger:#c83f46;
  --success:#198754;
  --shadow:0 14px 38px rgba(31,42,68,.08);
  --radius:20px;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 0 0,rgba(111,50,255,.07),transparent 26%),
    radial-gradient(circle at 100% 100%,rgba(18,104,243,.07),transparent 24%),
    var(--bg);
}
a{color:var(--primary);text-decoration:none}
img{max-width:100%}

.site-header{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:70px;padding:12px 22px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
}
.brand{display:flex;align-items:center;color:var(--ink)}
.brand img{height:48px;width:auto;display:block}
.site-nav{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.site-nav a{
  padding:9px 13px;border-radius:10px;color:#475467;
  font-size:14px;font-weight:700;
}
.site-nav a:hover,.site-nav a.active{background:#edf3ff;color:var(--primary)}
.user-chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 11px;border-radius:10px;background:#f3f5f9;color:#667085;
  font-size:13px;font-weight:700
}
.user-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--primary)}

.page-wrap,.container{max-width:1180px;margin:24px auto;padding:0 18px}
.page-hero,.section-card,.card,.table-card,.stat-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.page-hero{
  padding:26px 28px;margin-bottom:18px;position:relative;overflow:hidden;
}
.page-hero::after{
  content:"";position:absolute;width:230px;height:230px;border-radius:50%;
  right:-90px;top:-110px;
  background:radial-gradient(circle,rgba(111,50,255,.10),rgba(111,50,255,0) 70%);
}
.page-hero h1{
  margin:0 0 9px;font-size:clamp(30px,4vw,42px);
  line-height:1.04;letter-spacing:-1.1px;color:var(--ink);position:relative;z-index:1;
}
.page-hero p{
  margin:0;max-width:760px;color:var(--muted);font-size:15px;line-height:1.55;
  position:relative;z-index:1
}
.hero-chip{
  display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;
  background:#eff3ff;color:var(--primary);font-size:12px;font-weight:800;
  margin-bottom:13px;position:relative;z-index:1
}

.section-card,.card{padding:22px;margin-bottom:18px}
.section-title{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  margin-bottom:18px
}
.section-title h2,.section-card h2,.card h2{margin:0;font-size:23px;letter-spacing:-.4px}
.section-title p{margin:5px 0 0;color:var(--muted);font-size:14px}

.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:15px}
.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}

label{display:block;margin-bottom:7px;font-weight:700;font-size:14px;color:#344054}
input,select,textarea{
  width:100%;padding:12px 13px;border:1px solid #d0d5dd;
  background:#fff;border-radius:11px;font-size:15px;color:var(--ink);outline:none;
  transition:border-color .2s,box-shadow .2s
}
textarea{min-height:105px;resize:vertical}
input:focus,select:focus,textarea:focus{
  border-color:#85aaf9;box-shadow:0 0 0 4px rgba(18,104,243,.10)
}
small.muted,.field-hint{
  display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4
}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}

button,.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:0;border-radius:11px;padding:11px 16px;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;font-weight:800;font-size:14px;cursor:pointer;
  box-shadow:0 8px 18px rgba(18,104,243,.16)
}
button:hover,.btn:hover{transform:translateY(-1px)}
button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn.secondary{
  background:#f2f4f7;color:#344054;border:1px solid #e4e7ec;box-shadow:none
}
.btn.danger{background:#c83f46;box-shadow:none}

.alert{padding:13px 15px;border-radius:12px;margin-bottom:14px;font-size:14px;font-weight:700}
.alert.error{background:#fff1f2;color:#9f2430;border:1px solid #ffd6da}
.alert.ok{background:#ecfdf3;color:#157347;border:1px solid #c9f2d9}

.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}
.stat-card{padding:20px;position:relative;overflow:hidden}
.stat-card::after{
  content:"";position:absolute;width:100px;height:100px;border-radius:50%;
  right:-35px;bottom:-45px;background:radial-gradient(circle,rgba(18,104,243,.13),transparent 70%)
}
.stat-label{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}
.stat{font-size:36px;font-weight:800;color:var(--ink);line-height:1;margin-top:10px}
.stat-note{margin-top:8px;color:var(--muted);font-size:13px}

.table-card{overflow:hidden}
.table-header{padding:21px 22px 9px}
.table-header h2{margin:0;font-size:23px}
.table-header p{margin:5px 0 0;color:var(--muted);font-size:14px}
.table-wrap{overflow:auto;padding:0 8px 8px}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #eef0f4;vertical-align:top}
thead th{
  color:#667085;font-size:12px;text-transform:uppercase;letter-spacing:.65px;font-weight:800;
  background:#fafbfc
}
tbody tr:hover{background:#fafcff}
.badge{
  display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;
  background:#eef2ff;color:#4452b8;font-size:12px;font-weight:800
}
.badge.success{background:#ecfdf3;color:#157347}
.badge.warn{background:#fff8e1;color:#8a6500}
.badge.info{background:#eef4ff;color:#285fb3}

.public-page{min-height:100vh;padding:26px 16px;display:flex;align-items:center;justify-content:center}
.public-layout{width:min(1080px,100%);display:grid;grid-template-columns:1fr 1fr;gap:16px}
.public-side,.public-card{
  border-radius:24px;border:1px solid var(--line);box-shadow:var(--shadow)
}
.public-side{
  padding:32px;position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(145deg,#172033 0%,#253a70 52%,#5428a8 100%)
}
.public-side::before{
  content:"";position:absolute;width:250px;height:250px;border-radius:50%;
  right:-95px;top:-95px;background:rgba(232,61,255,.13)
}
.public-side::after{
  content:"";position:absolute;width:180px;height:180px;border-radius:50%;
  left:-65px;bottom:-70px;border:1px solid rgba(255,255,255,.12)
}
.public-side .logo-wrap{
  display:inline-flex;align-items:center;padding:10px 13px;border-radius:14px;
  background:#fff;margin-bottom:20px;position:relative;z-index:1
}
.public-side .logo{width:175px;height:auto;display:block}
.public-kicker{
  position:relative;z-index:1;font-size:12px;font-weight:800;
  letter-spacing:1px;text-transform:uppercase;color:#d9dcff;margin-bottom:10px
}
.public-side h1{
  position:relative;z-index:1;margin:0 0 13px;
  font-size:clamp(34px,4vw,49px);line-height:1;letter-spacing:-1.6px
}
.public-side p{
  position:relative;z-index:1;margin:0;color:#e5e8f4;
  font-size:15px;line-height:1.55;max-width:520px
}
.public-benefits{position:relative;z-index:1;display:grid;gap:10px;margin-top:23px}
.public-benefit{
  display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:13px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.11)
}
.public-benefit strong{display:block;font-size:14px;margin-bottom:2px}
.public-benefit span{font-size:12.5px;color:#dfe3ef;line-height:1.35}
.public-number{
  width:27px;height:27px;border-radius:9px;background:#fff;color:var(--primary);
  font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto
}
.public-card{padding:28px;background:#fff}
.public-card .public-logo{margin-bottom:18px}
.public-card .public-logo img{max-width:155px;height:auto;display:block}
.public-card h1,.public-card h2{
  margin:0 0 8px;font-size:29px;letter-spacing:-.8px;color:var(--ink)
}
.public-card p.lead{margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.5}
.public-shell{max-width:720px;margin:28px auto;padding:0 16px}
.center{text-align:center}
.icon-circle{
  width:64px;height:64px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:#eef3ff;color:var(--primary);font-size:28px;margin-bottom:15px
}

.check{
  display:flex;gap:10px;align-items:flex-start;padding:13px;
  border:1px solid var(--line);border-radius:13px;margin:9px 0;background:#fafbfc
}
.check input{width:auto;margin-top:3px;transform:scale(1.05)}
.check label{margin:0;font-weight:600;line-height:1.45;color:#475467}
.form-section{margin:20px 0 13px;padding-top:15px;border-top:1px solid #eef0f4}
.form-section h3{margin:0 0 6px;font-size:18px}

.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:end}

.agents-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
.agent-admin-card{
  display:grid;grid-template-columns:90px 1fr;gap:16px;padding:17px;
  border:1px solid var(--line);border-radius:18px;background:#fff
}
.agent-admin-photo img{
  width:88px;height:88px;object-fit:cover;border-radius:50%;
  border:4px solid #edf0f7;box-shadow:0 8px 18px rgba(31,42,68,.10)
}
.agent-admin-info h3{margin:4px 0 5px;font-size:19px}
.agent-admin-info p{margin:4px 0;color:#667085;font-size:13.5px}
.agent-admin-actions{
  grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;
  padding-top:11px;border-top:1px solid #eef0f4
}
.agent-admin-actions form{margin:0}
.status-pill{
  display:inline-flex;margin-top:9px;padding:6px 10px;border-radius:999px;
  font-size:12px;font-weight:800
}
.status-pill.active{background:#ecfdf3;color:#157347}
.status-pill.inactive{background:#fff1f2;color:#9f2430}
.agent-edit-preview{
  display:flex;align-items:center;gap:14px;padding:13px;
  border:1px dashed #cfd5e1;border-radius:13px;background:#fafbfc
}
.agent-edit-preview img{
  width:90px;height:90px;object-fit:cover;border-radius:50%;border:4px solid #eef1f7
}

.list-card{display:grid;gap:12px}
.contact-list-item{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;
  display:grid;grid-template-columns:1.05fr 1fr 1fr 110px;gap:15px;align-items:start;
  box-shadow:0 8px 22px rgba(31,42,68,.04)
}
.contact-list-item h3{margin:0 0 6px;font-size:17px}
.contact-list-item p{margin:4px 0;color:#667085;font-size:13.5px}
.contact-meta,.mini-stack{display:grid;gap:3px}
.empty-state{
  padding:24px;text-align:center;color:var(--muted);
  background:#fafbfc;border:1px dashed #d6dae3;border-radius:14px
}

@media(max-width:980px){
  .public-layout{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
  .contact-list-item{grid-template-columns:1fr}
}
@media(max-width:760px){
  .col-8,.col-6,.col-4,.col-3{grid-column:span 12}
  .site-header{align-items:flex-start;flex-direction:column}
  .site-nav{width:100%}
  .search-row{grid-template-columns:1fr}
  .public-card,.public-side{padding:22px}
  .public-side h1{font-size:34px}
  .page-hero,.section-card,.card{padding:19px}
}


/* FORMULARIO DE COTIZACIÓN PREMIUM */
.quote-page{
  min-height:100vh;
  padding:24px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  background:
    radial-gradient(circle at 0 0,rgba(111,50,255,.08),transparent 24%),
    radial-gradient(circle at 100% 100%,rgba(18,104,243,.08),transparent 24%),
    #f4f6fb;
}

.quote-card{
  width:min(1180px,100%);
  display:grid;
  grid-template-columns:420px minmax(0,1fr);
  background:#fff;
  border:1px solid #e3e7ef;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(31,42,68,.12);
}

.quote-side{
  position:relative;
  min-height:100%;
  padding:30px;
  display:flex;
  flex-direction:column;
  color:#fff;
  background:
    radial-gradient(circle at 100% 0,rgba(232,61,255,.18),transparent 28%),
    linear-gradient(160deg,#172033 0%,#263f7d 58%,#5a2bb6 100%);
}

.quote-brand{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  padding:10px 13px;
  border-radius:15px;
  background:#fff;
  box-shadow:0 10px 25px rgba(0,0,0,.12);
}

.quote-brand img{
  width:150px;
  height:auto;
  display:block;
}

.quote-side-content{
  margin-top:30px;
}

.quote-eyebrow{
  display:block;
  margin-bottom:10px;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:1.1px;
  color:#dce2ff;
}

.quote-side h1{
  margin:0 0 14px;
  font-size:43px;
  line-height:1.02;
  letter-spacing:-1.5px;
}

.quote-side p{
  margin:0;
  color:#e4e8f5;
  font-size:15px;
  line-height:1.55;
}

.quote-steps{
  display:grid;
  gap:10px;
  margin-top:25px;
}

.quote-step{
  display:grid;
  grid-template-columns:38px 1fr;
  gap:11px;
  padding:13px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:15px;
  background:rgba(255,255,255,.08);
}

.quote-step > span{
  width:31px;
  height:31px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:#1268f3;
  font-size:12px;
  font-weight:800;
}

.quote-step strong{
  display:block;
  margin-bottom:3px;
  font-size:14px;
}

.quote-step small{
  color:#dce2f0;
  font-size:12px;
  line-height:1.35;
}

.quote-agent{
  margin-top:auto;
  padding-top:24px;
  display:grid;
  grid-template-columns:70px 1fr;
  gap:12px;
  align-items:center;
}

.quote-agent img{
  width:70px;
  height:70px;
  object-fit:cover;
  border-radius:50%;
  border:3px solid #fff;
  box-shadow:0 8px 20px rgba(0,0,0,.2);
}

.quote-agent span,
.quote-agent small{
  display:block;
  color:#dfe4f3;
  font-size:12px;
}

.quote-agent strong{
  display:block;
  margin:2px 0;
  font-size:18px;
}

.quote-form-panel{
  padding:32px 34px 36px;
}

.quote-form-head{
  margin-bottom:20px;
}

.quote-form-badge{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  background:#eef3ff;
  color:#1268f3;
  font-size:12px;
  font-weight:800;
  margin-bottom:10px;
}

.quote-form-head h2{
  margin:0 0 7px;
  font-size:31px;
  color:#172033;
  letter-spacing:-.8px;
}

.quote-form-head p{
  margin:0;
  color:#667085;
  font-size:14px;
}

.consent-block{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid #eceff4;
}

.consent-block h3{
  margin:0 0 7px;
  font-size:18px;
}

.consent-block > p{
  margin:0 0 11px;
  color:#667085;
  font-size:13px;
}

.consent-option,
.channel-option{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid #e2e6ee;
  background:#fafbfc;
  border-radius:13px;
  cursor:pointer;
}

.consent-option{
  padding:14px;
}

.consent-option input,
.channel-option input{
  width:auto;
  margin:2px 0 0;
}

.consent-option span{
  color:#475467;
  font-size:14px;
  line-height:1.45;
}

.channel-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:9px;
}

.channel-option{
  padding:12px;
  align-items:center;
}

.channel-option span{
  font-size:13px;
  font-weight:700;
  color:#475467;
}

.age-option{
  margin-top:16px;
}

.quote-submit{
  margin-top:20px;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.quote-submit small{
  color:#667085;
  font-size:12px;
}

@media(max-width:920px){
  .quote-card{
    grid-template-columns:1fr;
  }

  .quote-side{
    min-height:auto;
  }

  .quote-agent{
    margin-top:25px;
  }
}

@media(max-width:620px){
  .quote-page{
    padding:0;
  }

  .quote-card{
    border-radius:0;
    border-left:0;
    border-right:0;
  }

  .quote-side,
  .quote-form-panel{
    padding:22px;
  }

  .quote-side h1{
    font-size:34px;
  }

  .channel-grid{
    grid-template-columns:1fr;
  }
}


/* AGENTES: ACCIONES COMPACTAS EN UNA SOLA LÍNEA */
.agent-admin-actions{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  padding-top:12px;
  border-top:1px solid #eef0f4;
  align-items:stretch;
}

.agent-admin-actions form{
  margin:0;
  min-width:0;
}

.agent-action-btn{
  width:100%;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:9px 10px;
  border-radius:12px;
  border:1px solid #dfe5f0;
  background:#f8fafc;
  color:#344054;
  font-size:13px;
  font-weight:800;
  text-decoration:none;
  box-shadow:none;
  white-space:nowrap;
}

.agent-action-btn svg{
  width:16px;
  height:16px;
  flex:0 0 auto;
}

.agent-action-btn:hover{
  transform:translateY(-1px);
  text-decoration:none;
  background:#eef3ff;
  border-color:#cdd9f8;
}

.agent-action-btn.primary{
  background:linear-gradient(135deg,#1268f3,#6f32ff);
  color:#fff;
  border-color:transparent;
  box-shadow:0 8px 18px rgba(18,104,243,.16);
}

.agent-action-btn.primary:hover{
  background:linear-gradient(135deg,#0f5ce0,#6128f1);
}

.agent-action-btn.danger{
  background:#fff2f3;
  color:#b42318;
  border-color:#ffd6da;
}

.agent-action-btn.danger:hover{
  background:#ffe9eb;
  border-color:#f7b5bc;
}

.agent-action-btn.success{
  background:#ecfdf3;
  color:#157347;
  border-color:#cbeed9;
}

.agent-action-btn.success:hover{
  background:#e4f8ee;
  border-color:#b9e3cb;
}

@media(max-width:1160px){
  .agent-admin-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .agent-admin-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:480px){
  .agent-action-btn span{
    font-size:12px;
  }
}


/* VALIDACIONES DEL FORMULARIO */
.field-validation{
  display:block;
  min-height:16px;
  margin-top:5px;
  font-size:12px;
  font-weight:700;
}

.field-validation.valid{
  color:#157347;
}

.field-validation.invalid{
  color:#b42318;
}

input.field-valid,
select.field-valid{
  border-color:#7bd5a4 !important;
  box-shadow:0 0 0 3px rgba(25,135,84,.08) !important;
}

input.field-invalid,
select.field-invalid{
  border-color:#ef9da5 !important;
  box-shadow:0 0 0 3px rgba(200,63,70,.08) !important;
}

#enviar:not(:disabled){
  opacity:1;
  cursor:pointer;
}


.redirect-box{
  margin-top:18px;
  padding:14px 16px;
  border-radius:13px;
  background:#f5f7fb;
  border:1px solid #e2e6ef;
  color:#475467;
  font-size:14px;
  line-height:1.55;
}

.redirect-box a{
  display:inline-block;
  margin-top:6px;
  color:#1268f3;
  font-weight:800;
}




/* UBICACIÓN COMPACTA Y MODAL */
.location-compact{
  margin:14px 0 4px;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 11px;
  border:1px solid #e1e6ef;
  border-radius:12px;
  background:#f8fafc;
  color:#667085;
  font-size:12.5px;
}

.location-dot{
  width:8px;
  height:8px;
  flex:0 0 auto;
  border-radius:50%;
  background:#98a2b3;
}

.location-compact.ok .location-dot{
  background:#22a06b;
}

.location-compact.ok{
  color:#157347;
  background:#f2fbf6;
  border-color:#d2eddd;
}

.location-change-btn{
  margin-left:auto;
  padding:5px 8px;
  min-height:auto;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#1268f3;
  box-shadow:none;
  font-size:12px;
  font-weight:800;
}

.location-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.location-modal.open{
  display:flex;
}

.location-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(16,24,40,.52);
  backdrop-filter:blur(3px);
}

.location-modal-card{
  position:relative;
  z-index:1;
  width:min(390px,100%);
  padding:26px;
  border-radius:20px;
  background:#ffffff;
  border:1px solid #e4e7ec;
  box-shadow:0 24px 70px rgba(16,24,40,.22);
  text-align:center;
}

.location-modal-icon{
  width:56px;
  height:56px;
  margin:0 auto 15px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  color:#1268f3;
  background:#eef3ff;
}

.location-modal-icon svg{
  width:27px;
  height:27px;
}

.location-modal-card h3{
  margin:0;
  color:#172033;
  font-size:21px;
  line-height:1.3;
}

.location-modal-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:22px;
}

.location-modal-actions .btn{
  width:100%;
}

body.modal-open{
  overflow:hidden;
}

@media(max-width:430px){
  .location-modal-card{
    padding:22px;
  }

  .location-modal-actions{
    grid-template-columns:1fr;
  }
}
