:root{
  --blue:#0869b6;
  --blue-2:#1685d1;
  --cyan:#57b8e9;
  --navy:#0f2740;
  --ink:#182330;
  --muted:#6c7a89;
  --line:#dce5ed;
  --bg:#f3f7fa;
  --card:#ffffff;
  --success:#17845c;
  --warning:#b87800;
  --shadow:0 22px 60px rgba(15,39,64,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select{font:inherit}
button{transition:.2s ease}
.topbar{height:78px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}
.brand{border:0;background:none;padding:0;display:flex;align-items:center;gap:12px;cursor:pointer;text-align:left}
.brand-logo{width:55px;height:48px;color:var(--blue);display:grid;place-items:center}
.brand-logo svg{width:55px;height:45px}
.brand-copy strong{display:block;font-size:22px;letter-spacing:.08em;color:var(--navy)}
.brand-copy span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.top-actions{display:flex;align-items:center;gap:12px}
.demo-chip{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--blue);background:#e8f4fc;border:1px solid #cce6f7;padding:8px 10px;border-radius:999px}
.shell{max-width:1180px;margin:0 auto;padding:42px 24px 70px}
.view{display:none}
.view.active{display:block}
.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr .8fr;gap:54px;align-items:center;background:linear-gradient(140deg,#fff 0%,#f5fbff 55%,#eaf6fd 100%);border:1px solid var(--line);border-radius:28px;padding:58px 60px;box-shadow:var(--shadow)}
.hero:before{content:"";position:absolute;width:370px;height:370px;border-radius:50%;background:radial-gradient(circle,rgba(87,184,233,.23),transparent 65%);right:-90px;top:-100px}
.hero-copy,.hero-device-wrap{position:relative;z-index:1}
.hero-badge,.eyebrow{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.16em}
h1{font-size:48px;line-height:1.04;max-width:760px;margin:12px 0 18px;color:var(--navy);letter-spacing:-.025em}
h1 span{color:var(--blue)}
h2{font-size:34px;color:var(--navy);margin:8px 0 12px;letter-spacing:-.02em}
h3{color:var(--navy)}
.lead{font-size:18px;color:var(--muted);max-width:720px;line-height:1.65}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{border:0;border-radius:12px;padding:13px 18px;font-weight:800;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--blue),var(--blue-2));color:#fff;box-shadow:0 8px 20px rgba(8,105,182,.20)}
.btn-secondary{background:#e9f3f9;color:var(--navy)}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--navy)}
.btn-icon{font-size:18px;margin-right:5px}
.trust-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px;color:#476170;font-size:12px;font-weight:700}
.hero-device-wrap{display:grid;place-items:center}
.hero-device{width:270px;background:#fff;border:1px solid #cfdde8;border-radius:30px;padding:14px;box-shadow:0 26px 70px rgba(15,39,64,.18);transform:rotate(2deg)}
.phone-top{display:flex;justify-content:space-between;font-size:11px;font-weight:800;padding:8px 7px 14px;color:var(--navy)}
.online-dot{color:#22a875}
.plate-demo{border:1px solid #cbdbe6;border-radius:18px;padding:20px;background:linear-gradient(#fff,#f7fbfd);text-align:center}
.plate-head{font-size:9px;letter-spacing:.18em;font-weight:900;color:var(--blue)}
.plate-code{font-size:30px;font-weight:900;margin:5px 0 12px;color:var(--navy)}
.qr-demo{width:126px;height:126px;margin:0 auto;background:#fff;border:8px solid #fff;box-shadow:0 0 0 1px #dde6ed}
.qr-demo svg,.qr-large svg{width:100%;height:100%;display:block}
.plate-note{font-size:10px;color:var(--muted);margin-top:12px}
.phone-result{margin-top:12px;border-radius:14px;background:#eef8f4;padding:13px}
.phone-result span{font-size:9px;color:var(--muted);display:block}
.phone-result b{font-size:12px;color:var(--success)}
.device-shadow{width:220px;height:22px;background:rgba(15,39,64,.14);filter:blur(14px);border-radius:50%;margin-top:15px}
.section-title{display:flex;justify-content:space-between;align-items:end;margin:45px 2px 18px}
.section-title h2{margin-bottom:0}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}
.feature-card{position:relative;overflow:hidden;min-height:165px}
.feature-icon{width:38px;height:38px;display:grid;place-items:center;background:#e7f3fb;color:var(--blue);font-size:11px;font-weight:900;border-radius:10px;margin-bottom:20px}
.card b{display:block;color:var(--navy);margin-bottom:9px;font-size:16px}
.card span{color:var(--muted);line-height:1.55;font-size:14px}
.back-link{background:none;border:0;color:var(--blue);font-weight:800;cursor:pointer;margin-bottom:18px}
.point-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.point-card,.admin-card,.side-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px}
.point-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:20px}
.point-head h2{margin:5px 0 4px;font-size:38px}
.point-subtitle,.admin-subtitle,.admin-head p{color:var(--muted);margin:0;line-height:1.5}
.status{background:#e8f7f1;color:var(--success);border-radius:999px;padding:8px 11px;font-size:11px;font-weight:900}
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0}
.info-grid div,.coord-row{border:1px solid var(--line);border-radius:12px;padding:14px}
.info-grid span,.coord-row span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.locked,.unlocked{margin-top:18px;padding:22px;border-radius:16px;background:#f8fafc;border:1px solid var(--line)}
.lock-head{display:flex;gap:14px;align-items:flex-start}
.lock-icon{width:42px;height:42px;background:#edf3f7;border-radius:12px;display:grid;place-items:center}
.lock-head h3{margin:0 0 5px}
.lock-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.coordinates{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.coord-row b{font-size:14px;color:var(--navy)}
.unlocked-row{background:#fff}
.locked label{font-size:12px;font-weight:800;color:var(--navy)}
.unlock-row{display:flex;gap:10px;margin-top:9px}
.unlock-row input{flex:1;padding:13px;border:1px solid #cbd7e2;border-radius:10px;font-size:16px;outline:none}
.unlock-row input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,105,182,.09)}
.demo-note{display:block;margin-top:10px;color:var(--warning)}
.hidden{display:none!important}
.success{background:#e7f7f0;color:var(--success);padding:12px;border-radius:11px;font-weight:800;margin-bottom:12px;display:flex;gap:9px;align-items:center}
.success small{display:block;font-weight:500;margin-top:2px}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.full{width:100%;margin-top:12px}
.side-panel{position:sticky;top:100px}
.side-panel h3{font-size:23px;line-height:1.2;margin:10px 0}
.side-panel>p:not(.eyebrow){color:var(--muted);line-height:1.55}
.security-item{display:flex;gap:12px;border-top:1px solid var(--line);padding:15px 0}
.security-item>span{width:32px;height:32px;background:#edf6fc;color:var(--blue);border-radius:9px;display:grid;place-items:center;font-size:10px;font-weight:900}
.security-item b{display:block;font-size:13px}
.security-item small{display:block;color:var(--muted);margin-top:3px}
.admin-title-row{display:flex;justify-content:space-between;align-items:end}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
.stats article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.stats span{display:block;color:var(--muted);font-size:11px}
.stats b{display:block;font-size:30px;color:var(--navy);margin:7px 0}
.stats small{color:var(--muted)}
.admin-head{display:flex;justify-content:space-between;gap:20px;align-items:center}
.admin-head h3{margin:0 0 5px}
.search-box{border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--muted);display:flex;gap:5px}
.search-box input{border:0;outline:none;background:transparent}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;margin-top:16px}
th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--muted);font-size:11px}
td{font-size:13px}
.pill{background:#e6f7ef;color:var(--success);padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}
.pill.muted{background:#eef1f4;color:#66727f}
.table-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-size:11px;font-weight:800;margin-left:5px;cursor:pointer;color:var(--navy)}
.table-btn:hover{border-color:#a9cce3;color:var(--blue)}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,39,64,.48);backdrop-filter:blur(5px);z-index:50;display:grid;place-items:center;padding:18px}
.modal{position:relative;width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:28px;box-shadow:0 30px 90px rgba(15,39,64,.28)}
.modal h3{font-size:25px;margin:7px 0 20px}
.modal-close{position:absolute;right:16px;top:14px;border:0;background:#edf2f6;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:20px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid label{font-size:11px;font-weight:800;color:var(--navy)}
.form-grid input,.form-grid select{width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:9px;outline:none}
.qr-modal{width:min(390px,100%);text-align:center}
.qr-large{width:220px;height:220px;margin:18px auto;background:#fff;border:10px solid #fff;box-shadow:0 0 0 1px var(--line)}
.qr-url{font-weight:800;color:var(--navy)}
.toast{position:fixed;right:22px;bottom:22px;background:var(--navy);color:#fff;padding:13px 16px;border-radius:11px;z-index:80;box-shadow:var(--shadow);font-size:13px}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding:42px}
  .hero-device-wrap{display:none}
  .point-layout{grid-template-columns:1fr}
  .side-panel{position:static}
  .stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .topbar{padding:0 14px;height:70px}
  .brand-logo{width:44px}
  .brand-copy strong{font-size:18px}
  .brand-copy span,.demo-chip{display:none}
  .shell{padding:22px 14px 48px}
  .hero{padding:28px 22px;border-radius:20px}
  h1{font-size:35px}
  h2{font-size:28px}
  .lead{font-size:16px}
  .feature-grid,.stats,.coordinates,.info-grid,.action-grid,.form-grid{grid-template-columns:1fr}
  .unlock-row{flex-direction:column}
  .admin-title-row,.admin-head{align-items:flex-start;gap:12px;flex-direction:column}
  .point-head{gap:15px}
  .point-head h2{font-size:32px}
}

/* ===== RODO official branding v3 ===== */
body{
  background:
    radial-gradient(circle at 8% 0%, rgba(22,133,209,.08), transparent 26%),
    linear-gradient(180deg,#f7fafc 0%,#f3f7fa 45%,#edf3f7 100%);
}
.topbar{
  min-height:86px;
  height:auto;
  padding:8px 30px;
  box-shadow:0 7px 28px rgba(15,39,64,.055);
}
.brand{
  min-width:0;
}
.brand-official-logo{
  width:220px;
  max-height:66px;
  object-fit:contain;
  object-position:left center;
  display:block;
}
.brand-product{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.brand-divider{
  width:1px;
  height:42px;
  background:linear-gradient(transparent,#cbd9e3,transparent);
}
.brand-product strong{
  display:block;
  color:var(--navy);
  font-size:18px;
  letter-spacing:.03em;
}
.brand-product span{
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:3px;
  white-space:nowrap;
}
.hero{
  border-color:#d4e4ef;
  background:
    linear-gradient(90deg,rgba(255,255,255,.985),rgba(247,252,255,.965)),
    repeating-linear-gradient(0deg,transparent 0 39px,rgba(8,105,182,.03) 40px),
    repeating-linear-gradient(90deg,transparent 0 39px,rgba(8,105,182,.03) 40px);
}
.hero:after{
  content:"";
  position:absolute;
  inset:auto -90px -150px auto;
  width:430px;
  height:430px;
  border:1px solid rgba(8,105,182,.10);
  border-radius:50%;
  box-shadow:
    0 0 0 45px rgba(8,105,182,.025),
    0 0 0 90px rgba(8,105,182,.018);
}
.official-strip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border:1px solid #d8e6ef;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 24px rgba(15,39,64,.055);
  border-radius:12px;
  margin-bottom:18px;
}
.official-strip img{
  width:36px;
  height:36px;
}
.official-strip b{
  display:block;
  font-size:10px;
  letter-spacing:.08em;
  color:var(--navy);
}
.official-strip span{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:var(--muted);
}
.hero-metrics{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:24px;
  max-width:560px;
}
.hero-metrics div{
  padding:12px 14px;
  border-radius:13px;
  border:1px solid #dce9f1;
  background:rgba(255,255,255,.78);
}
.hero-metrics b{
  display:block;
  font-size:18px;
  color:var(--blue);
}
.hero-metrics span{
  display:block;
  margin-top:3px;
  font-size:10px;
  color:var(--muted);
  font-weight:700;
}
.hero-device{
  position:relative;
  border:1px solid #bcd5e5;
}
.hero-device:before{
  content:"RODO";
  position:absolute;
  right:14px;
  top:49%;
  transform:rotate(-90deg) translateY(-50%);
  transform-origin:right center;
  color:rgba(8,105,182,.12);
  font-size:34px;
  font-weight:900;
  letter-spacing:.18em;
}
.plate-demo{
  position:relative;
  overflow:hidden;
}
.plate-demo:after{
  content:"RODO";
  position:absolute;
  left:0;
  right:0;
  bottom:-14px;
  font-size:56px;
  font-weight:900;
  color:rgba(8,105,182,.045);
  letter-spacing:.1em;
}
.feature-card{
  box-shadow:0 12px 30px rgba(15,39,64,.045);
}
.feature-card:hover{
  transform:translateY(-3px);
  border-color:#bfdbea;
  box-shadow:0 18px 42px rgba(15,39,64,.08);
}
.point-card,.side-panel,.admin-card{
  box-shadow:0 16px 45px rgba(15,39,64,.055);
}
.point-company{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding-bottom:15px;
  margin-bottom:18px;
  border-bottom:1px dashed #dbe6ed;
}
.point-company img{
  width:190px;
  height:56px;
  object-fit:contain;
  object-position:left center;
}
.point-company span{
  font-size:10px;
  color:var(--muted);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-brand-line{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--blue);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:8px;
}
.admin-brand-line img{
  width:30px;
  height:30px;
}
.stats article{
  position:relative;
  overflow:hidden;
  box-shadow:0 12px 32px rgba(15,39,64,.045);
}
.stats article:after{
  content:"";
  position:absolute;
  width:74px;
  height:74px;
  right:-28px;
  top:-28px;
  border-radius:50%;
  background:rgba(8,105,182,.06);
}
.site-footer{
  border-top:1px solid #d9e4ec;
  background:#fff;
  margin-top:40px;
}
.footer-inner{
  max-width:1180px;
  margin:0 auto;
  padding:24px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:20px;
}
.footer-inner img{
  width:160px;
  height:54px;
  object-fit:contain;
  object-position:left center;
}
.footer-inner b{
  display:block;
  color:var(--navy);
}
.footer-inner span:not(.footer-status){
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-top:4px;
}
.footer-status{
  padding:8px 10px;
  border-radius:999px;
  color:var(--blue);
  background:#eaf5fc;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
@media(max-width:760px){
  .topbar{
    padding:7px 12px;
  }
  .brand-official-logo{
    width:142px;
    max-height:54px;
  }
  .brand-product{
    display:none;
  }
  .top-actions .btn{
    padding:10px 12px;
    font-size:11px;
  }
  .hero-metrics{
    grid-template-columns:1fr;
  }
  .point-company img{
    width:150px;
  }
  .point-company span{
    display:none;
  }
  .footer-inner{
    grid-template-columns:1fr;
  }
  .footer-status{
    justify-self:start;
  }
}

/* Etapa 2: lector QR y búsqueda manual */
.consult-panel{margin:42px 0 54px;padding:clamp(20px,4vw,38px);border:1px solid #d6e5f1;border-radius:24px;background:linear-gradient(130deg,#f5faff,#fff);box-shadow:0 14px 38px rgba(7,47,86,.07);scroll-margin-top:100px}
.consult-panel-heading h2{margin:7px 0 8px;font-size:clamp(23px,3vw,32px);color:#112b46}
.consult-panel-heading p{margin:0 0 20px;color:#526577;max-width:700px}
.consult-kicker{color:#0871b9;font-size:12px;letter-spacing:.12em;font-weight:800}
.consult-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:20px}
.consult-option{background:#fff;border:1px solid #cbddea;border-radius:14px;padding:18px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer;color:#133552;font:inherit}
.consult-option:hover,.consult-option:focus-visible{border-color:#0b71b7;box-shadow:0 0 0 3px rgba(11,113,183,.12)}
.consult-option-icon{font-size:31px;color:#0871b9}
.consult-option small{color:#66798a}
.point-lookup-form label{display:block;font-weight:750;margin-bottom:9px;color:#243e55}
.point-lookup-row{display:flex;gap:10px}
.point-lookup-row input{flex:1;min-width:0;padding:13px 14px;border:1px solid #bed1dd;border-radius:10px;font:inherit}
.lookup-status{font-size:13px;color:#50677a;margin:12px 0 0}
.lookup-status.is-error{color:#b02b2b}
.reader-panel{padding:15px;margin-bottom:19px;border:1px solid #c8dcea;background:#fff;border-radius:14px}
.reader-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.reader-panel video{display:block;width:100%;max-height:420px;object-fit:cover;background:#081c2b;border-radius:10px;margin:12px auto}
.reader-panel p{font-size:13px;color:#526577}
@media(max-width:600px){.consult-options{grid-template-columns:1fr}.point-lookup-row{flex-direction:column}.point-lookup-row .btn{width:100%}}

/* Área comercial RODO: vista de demostración sin datos personales */
.client-header{margin:25px 0}.client-header h2{font-size:clamp(26px,4vw,38px);margin:8px 0}.client-header p{color:#51697c}
.client-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}
.client-plan-grid .card{padding:24px 18px}.client-plan-grid h3{font-size:21px;margin:0 0 12px}.client-plan-grid p{min-height:65px;color:#53687c}.client-plan-grid b{font-size:13px;color:#0869b6}
.client-next{padding:26px;margin:24px 0 60px}.client-next p{color:#53687c}#plansStatus{font-size:13px;margin-top:12px}
@media(max-width:950px){.client-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.client-plan-grid{grid-template-columns:1fr}.top-actions{flex-wrap:wrap}}
