:root{--bg:#050505;--surface:#0d0d0f;--surface2:#151517;--red:#df0a1c;--red-dark:#97000d;--red-soft:#ef1b2d;--white:#fff;--muted:#b8b8bd;--line:#29292e;--radius:24px;--shadow:0 22px 70px rgba(0,0,0,.42)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:"Plus Jakarta Sans",Arial,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.page-shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.site-header{height:92px;padding:0 max(30px,calc((100vw - 1320px)/2));display:flex;align-items:center;gap:48px;background:rgba(5,5,5,.92);border-bottom:1px solid #202024;position:sticky;top:0;z-index:100;backdrop-filter:blur(16px)}.site-header.compact{justify-content:space-between}.top-campaign{background:#070707;border-bottom:1px solid #242428}.top-campaign-inner{width:min(1180px,calc(100% - 40px));margin:auto;min-height:52px;display:flex;align-items:center;justify-content:center;gap:26px}.top-candidate{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:900;letter-spacing:.06em}.top-candidate span{color:#fff}.top-candidate b{background:var(--red);color:#fff;padding:5px 10px;border-radius:999px;font-size:11px}.top-divider{width:1px;height:24px;background:#3b3b3f}.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brand img{width:62px;height:62px;object-fit:contain}.brand span{display:grid;line-height:1}.brand b{font-size:21px;color:var(--red-soft);letter-spacing:.02em}.brand small{font-weight:800;font-size:13px;letter-spacing:.08em;margin-top:5px}.main-nav{display:flex;align-items:center;justify-content:center;gap:38px;margin-left:auto}.main-nav a{font-size:13px;font-weight:800;text-transform:uppercase;color:#d3d3d6;position:relative}.main-nav a:hover,.main-nav a.active{color:white}.main-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:3px;background:var(--red)}.menu-btn{display:none;margin-left:auto;background:none;border:0;padding:8px}.menu-btn span{display:block;width:25px;height:2px;background:white;margin:5px}.back-link{font-weight:700;color:#ddd}.header-cta{padding:12px 18px!important}.hero{min-height:690px;position:relative;display:grid;grid-template-columns:minmax(0,.88fr) minmax(560px,1.12fr);align-items:stretch;overflow:hidden;border-bottom:1px solid #1e1e22;background:#050505}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 38%,rgba(210,0,22,.16),transparent 36%);pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050505 0%,#050505 39%,rgba(5,5,5,.74) 51%,rgba(5,5,5,.08) 72%,rgba(5,5,5,.24) 100%);pointer-events:none}.hero-glow{display:none}.hero-copy{z-index:3;padding-left:max(40px,calc((100vw - 1180px)/2));padding-right:24px;align-self:center}.location-pill{width:max-content;border:1px solid rgba(223,10,28,.7);border-radius:999px;padding:10px 17px;font-weight:800;font-size:13px;letter-spacing:.05em;margin-bottom:25px}.location-pill span{color:var(--red);font-size:20px;margin-right:8px}.eyebrow{font-size:12px;letter-spacing:.19em;font-weight:900;color:var(--red)}.hero h1{font-size:clamp(58px,6.1vw,94px);line-height:.9;letter-spacing:-.065em;margin:15px 0 25px;font-weight:900}.hero h1 em{font-style:normal;color:var(--red)}.hero-text{font-size:18px;color:#c7c7cb;max-width:560px}.hero-text strong{color:var(--red)}.hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:11px;padding:17px 24px;font-weight:900;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--red),#b30010);color:white;box-shadow:0 12px 28px rgba(223,10,28,.22)}.btn-secondary{background:rgba(12,12,14,.78);border-color:#3a3a40;color:white}.btn.full{width:100%}.hero-visual{position:relative;height:100%;z-index:1;overflow:hidden}.hero-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050505 0%,rgba(5,5,5,.55) 14%,transparent 38%),linear-gradient(0deg,#050505 0%,transparent 19%);z-index:2;pointer-events:none}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;filter:saturate(1.06) contrast(1.04)}.steps-section{padding:80px 0}.section-heading{text-align:center;max-width:720px;margin:0 auto 34px}.section-heading h2,.transparency h2{font-size:40px;margin:8px 0}.section-heading p,.transparency p{color:var(--muted)}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.step-card{display:flex;align-items:center;gap:20px;padding:26px;background:linear-gradient(145deg,#121214,#09090a);border:1px solid var(--line);border-radius:18px}.step-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,var(--red),var(--red-dark));font-size:28px;box-shadow:0 12px 30px rgba(223,10,28,.22);flex:none}.step-card small{color:var(--red-soft);font-weight:900;letter-spacing:.1em}.step-card h3{font-size:22px;margin:2px 0}.step-card p{color:var(--muted);margin:0}.campaign-strip{background:linear-gradient(100deg,#da071a,#7f000b 72%,#a7000f);border-radius:14px;display:grid;grid-template-columns:1fr 1px 1fr 1px .85fr;align-items:center;padding:24px 38px;box-shadow:var(--shadow);margin-bottom:75px}.campaign-strip>div{display:flex;align-items:center;justify-content:center;gap:16px}.campaign-strip i{height:60px;background:rgba(255,255,255,.26)}.campaign-strip p{margin:0;line-height:1.05}.campaign-strip p b{display:block;font-size:28px}.campaign-strip p small{display:block;font-size:17px;margin-top:7px}.campaign-strip strong{background:#111;border-radius:999px;padding:4px 12px}.person-icon{font-size:40px;color:white}.promise p{font-weight:800}.promise span{font-size:38px}.transparency{padding:50px 0 80px;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;border-top:1px solid var(--line)}.site-footer{display:flex;justify-content:space-between;gap:25px;padding:25px 0 40px;border-top:1px solid var(--line);color:#96969c;font-size:13px}.site-footer div{display:flex;gap:28px}.form-page{padding:65px 0 90px}.form-intro{max-width:760px;margin-bottom:40px}.form-intro h1,.map-heading h1,.admin-title h1{font-size:clamp(38px,5vw,64px);line-height:1;letter-spacing:-.045em;margin:10px 0 18px}.form-intro p,.map-heading p{color:var(--muted)}.report-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:22px;align-items:start}.form-main{display:grid;gap:22px}.form-card{background:linear-gradient(150deg,#131315,#0b0b0c);border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 12px 45px rgba(0,0,0,.2)}.form-card.sticky{position:sticky;top:115px}.card-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:24px}.card-title>span{width:38px;height:38px;border-radius:50%;background:var(--red);display:grid;place-items:center;font-weight:900;flex:none}.card-title h2{font-size:21px;margin:0 0 3px}.card-title p{margin:0;color:var(--muted);font-size:14px}.field{display:grid;gap:8px;margin-top:18px;font-weight:700;font-size:14px}.field small{font-weight:500;color:#a7a7ac}.field input,.field select,.field textarea,.filters input,.filters select,.map-toolbar select,.coords input{width:100%;border:1px solid #35353a;background:#09090a;color:white;border-radius:11px;padding:14px 15px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(223,10,28,.12)}.hidden{display:none!important}.map-box{height:360px;border-radius:14px;margin-top:18px;overflow:hidden;border:1px solid #343439}.coords{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.coords label{font-size:12px;color:var(--muted)}.coords input{margin-top:6px}.helper{font-size:13px;color:#aaa}.upload-box{display:grid;place-items:center;gap:8px;text-align:center;border:1px dashed #505057;border-radius:14px;padding:34px;cursor:pointer;background:#09090a}.upload-box:hover{border-color:var(--red)}.upload-box input{display:none}.upload-box span{font-size:38px;color:var(--red-soft)}.upload-box small{color:var(--muted)}.photo-preview{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:14px;margin-top:16px}.consent{display:flex;gap:12px;align-items:flex-start;margin:22px 0;font-size:13px;color:#ccc}.consent input{accent-color:var(--red);margin-top:3px}.privacy-note{font-size:12px;color:#929298;text-align:center}.form-message{margin-top:12px;border-radius:10px;padding:0;font-size:13px}.form-message.success,.form-message.error{padding:11px 13px}.form-message.success{background:#0d3b25;color:#aef5ce}.form-message.error{background:#441019;color:#ffb5bf}.map-page{padding:60px 0 90px}.map-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.map-heading>div:first-child{max-width:720px}.map-stats{display:flex;gap:12px}.map-stats div{background:#111;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:130px}.map-stats b{font-size:28px;display:block;color:var(--red-soft)}.map-stats span{font-size:12px;color:var(--muted)}.public-map-card{background:#101012;border:1px solid var(--line);border-radius:20px;overflow:hidden}.map-toolbar{padding:14px 18px;border-bottom:1px solid var(--line)}.map-toolbar label{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:800}.map-toolbar select{max-width:320px}.public-map{height:620px}.popup-card{color:#17171a;min-width:220px}.popup-card img{width:100%;height:125px;object-fit:cover;border-radius:8px}.popup-card h3{margin:8px 0 4px}.popup-card p{margin:3px 0}.login-body{min-height:100vh;background:radial-gradient(circle at 50% 15%,rgba(223,10,28,.18),transparent 35%),#050505;display:grid;place-items:center;padding:25px}.login-wrap{width:min(430px,100%)}.login-brand{justify-content:center;margin-bottom:24px}.login-card{background:#111113;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:var(--shadow)}.login-card h1{font-size:36px;margin:8px 0}.login-card>p{color:var(--muted)}.demo-note{display:block;color:#777;text-align:center;margin-top:18px}.admin-body{background:#08080a}.admin-header{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;background:rgba(8,8,10,.94);z-index:10}.admin-header .brand img{width:48px;height:48px}.admin-header>div{display:flex;gap:12px;align-items:center}.admin-link{font-size:13px;color:#bbb}.btn-small{border:1px solid #3b3b40;background:#151517;color:white;padding:9px 13px;border-radius:9px;cursor:pointer}.admin-main{width:min(1260px,calc(100% - 36px));margin:45px auto 80px}.admin-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.dashboard-grid article{background:#121214;border:1px solid var(--line);border-radius:16px;padding:20px}.dashboard-grid span{color:var(--muted);font-size:13px}.dashboard-grid b{display:block;font-size:38px;color:var(--red-soft)}.admin-panel{background:#101012;border:1px solid var(--line);border-radius:18px;overflow:hidden}.filters{display:grid;grid-template-columns:1fr 230px;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.reports-list{display:grid}.report-row{display:grid;grid-template-columns:90px 1.2fr 1fr 160px auto;gap:16px;align-items:center;padding:16px;border-bottom:1px solid #242429}.report-row img{width:90px;height:70px;object-fit:cover;border-radius:10px;background:#222}.report-row h3{margin:0 0 5px;font-size:16px}.report-row p{margin:2px 0;color:#aaa;font-size:12px}.status-select{background:#09090a;color:white;border:1px solid #34343a;border-radius:9px;padding:9px}.row-actions{display:flex;gap:7px}.danger-btn{background:#3a0a10;color:#ffb5bd;border:1px solid #70131e;border-radius:8px;padding:9px;cursor:pointer}.empty-state{text-align:center;padding:55px;color:#888}
@media(max-width:920px){.top-campaign-inner{min-height:48px;gap:14px}.top-candidate{font-size:11px;gap:7px}.top-candidate b{font-size:10px;padding:4px 8px}.site-header{height:74px;padding:0 18px}.brand img{width:50px;height:50px}.brand b{font-size:18px}.brand small{font-size:11px}.menu-btn{display:block}.main-nav{display:none;position:absolute;top:74px;left:0;right:0;background:#08080a;border-bottom:1px solid var(--line);padding:12px 20px 22px;flex-direction:column;align-items:flex-start;gap:20px}.main-nav.open{display:flex}.main-nav a.active:after{bottom:-5px}.hero{min-height:auto;grid-template-columns:1fr;padding-top:42px}.hero:after{background:linear-gradient(180deg,#050505 0%,rgba(5,5,5,.88) 43%,rgba(5,5,5,.18) 72%,#050505 100%)}.hero-copy{padding:0 22px;order:1}.hero h1{font-size:clamp(54px,15vw,82px)}.hero-visual{height:520px;order:2;margin-top:12px}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:62% center}.steps-grid{grid-template-columns:1fr}.campaign-strip{grid-template-columns:1fr;gap:20px;text-align:center;padding:28px 20px}.campaign-strip i{display:none}.transparency{grid-template-columns:1fr;gap:15px}.report-layout{grid-template-columns:1fr}.form-card.sticky{position:static}.map-heading{align-items:flex-start;flex-direction:column}.public-map{height:520px}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.report-row{grid-template-columns:70px 1fr;align-items:start}.report-row img{width:70px;height:65px}.report-row>.status-select,.report-row>.row-actions{grid-column:2}.report-row>div:nth-child(3){grid-column:2}.filters{grid-template-columns:1fr}.admin-title{align-items:flex-start;gap:15px;flex-direction:column}}
@media(max-width:560px){.page-shell{width:min(100% - 28px,1180px)}.brand span{display:none}.site-header .brand span{display:grid}.site-header.compact .header-cta{font-size:11px;padding:10px 12px!important}.hero-copy{padding:0 18px}.hero h1{font-size:56px;line-height:.91}.hero-text{font-size:15px}.hero-actions{display:grid}.hero-actions .btn{width:100%;font-size:13px}.top-campaign-inner{width:100%;padding:8px 10px;gap:8px;justify-content:space-around}.top-divider{height:34px}.top-candidate{flex-direction:column;gap:3px;text-align:center;font-size:10px}.hero-visual{height:390px}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:62% center}.steps-section{padding:55px 0}.section-heading h2,.transparency h2{font-size:32px}.step-card{padding:20px}.step-icon{width:54px;height:54px}.campaign-strip p b{font-size:24px}.campaign-strip p small{font-size:15px}.site-footer{flex-direction:column}.form-page,.map-page{padding-top:38px}.form-intro h1,.map-heading h1,.admin-title h1{font-size:42px}.form-card{padding:20px;border-radius:16px}.coords{grid-template-columns:1fr}.map-box{height:300px}.map-stats{width:100%}.map-stats div{flex:1;min-width:0}.public-map{height:500px}.map-toolbar label{align-items:flex-start;flex-direction:column}.map-toolbar select{max-width:none}.login-card{padding:25px}.admin-header{padding:0 14px}.admin-header .brand span{display:none}.admin-link{display:none}.admin-main{width:calc(100% - 22px);margin-top:25px}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-grid article{padding:15px}.dashboard-grid b{font-size:30px}.report-row{padding:12px;gap:10px}}


/* =========================================================
   PORTADA PREMIUM — ajustes fáciles de modificar
   ========================================================= */
:root{
  --red:#e3061b;
  --red-dark:#96000c;
  --red-bright:#ff1a31;
  --glass:rgba(18,18,21,.72);
  --glass-border:rgba(255,255,255,.11);
}
body{
  background:
    radial-gradient(circle at 84% 8%,rgba(227,6,27,.08),transparent 27%),
    radial-gradient(circle at 12% 38%,rgba(227,6,27,.04),transparent 23%),
    #050505;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.13;
  z-index:-1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
}
.site-header{box-shadow:0 12px 40px rgba(0,0,0,.34)}
.brand img{filter:drop-shadow(0 0 16px rgba(227,6,27,.27))}
.hero{min-height:720px;isolation:isolate}
.hero:before{background:radial-gradient(circle at 73% 46%,rgba(227,6,27,.22),transparent 35%)}
.hero-copy{padding-top:40px;padding-bottom:52px}
.hero h1{text-wrap:balance;text-shadow:0 10px 34px rgba(0,0,0,.48)}
.hero h1 em{background:linear-gradient(180deg,#ff2439 0%,#d60016 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.location-pill{background:rgba(8,8,9,.58);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.hero-visual{transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.hero:hover .hero-visual{transform:scale(1.018)}
.hero-visual:after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  left:30%;
  top:18%;
  border:1px solid rgba(255,20,42,.3);
  border-radius:50%;
  box-shadow:0 0 80px rgba(227,6,27,.2),inset 0 0 60px rgba(227,6,27,.06);
  animation:gpsPulse 3.4s ease-in-out infinite;
  pointer-events:none;
}
@keyframes gpsPulse{0%,100%{opacity:.22;transform:scale(.88)}50%{opacity:.7;transform:scale(1)}}
.btn{position:relative;overflow:hidden;min-height:58px;border-radius:13px}
.btn i{font-size:24px;line-height:1;transition:transform .25s ease}
.btn:hover i{transform:translateY(-1px) scale(1.12)}
.btn:before{content:"";position:absolute;top:-40%;left:-75%;width:42%;height:180%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:skewX(-20deg);transition:left .65s ease}
.btn:hover:before{left:135%}
.btn-primary{box-shadow:0 14px 38px rgba(227,6,27,.28),inset 0 1px 0 rgba(255,255,255,.22)}
.btn-secondary{backdrop-filter:blur(12px);border-color:rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.steps-section{position:relative}
.steps-grid{gap:20px}
.step-card{
  position:relative;
  overflow:hidden;
  min-height:160px;
  background:linear-gradient(145deg,rgba(21,21,24,.86),rgba(8,8,10,.8));
  border-color:var(--glass-border);
  backdrop-filter:blur(18px);
  box-shadow:0 22px 55px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.04);
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.step-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-45px;bottom:-55px;background:rgba(227,6,27,.12);filter:blur(18px)}
.step-card:hover{transform:translateY(-7px);border-color:rgba(227,6,27,.45);box-shadow:0 28px 65px rgba(0,0,0,.34),0 0 35px rgba(227,6,27,.08)}
.step-icon{width:72px;height:72px;border-radius:20px;background:linear-gradient(145deg,#f20d25,#9d000d);border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 38px rgba(227,6,27,.27),inset 0 1px 0 rgba(255,255,255,.2)}
.step-icon i{font-size:37px;color:#fff;line-height:1}
.step-card small{color:var(--red-bright)}
.campaign-strip{border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 70px rgba(163,0,15,.19),inset 0 1px 0 rgba(255,255,255,.12)}
.transparency{background:linear-gradient(135deg,rgba(255,255,255,.025),transparent);border-radius:22px;padding-inline:34px;margin-bottom:40px;border:1px solid rgba(255,255,255,.07)}

@media(max-width:920px){
  .hero{min-height:auto}
  .hero-copy{padding-top:6px;padding-bottom:22px}
  .hero-visual:after{width:300px;height:300px;left:32%;top:20%}
  .step-card{min-height:unset}
}
@media(max-width:560px){
  .hero{padding-top:28px}
  .hero-copy{padding-inline:20px}
  .hero h1{font-size:clamp(48px,15vw,62px);letter-spacing:-.055em}
  .hero-text{font-size:15.5px;line-height:1.7}
  .hero-actions{gap:11px}
  .btn{min-height:56px;padding:15px 18px}
  .hero-visual{height:405px;margin-top:4px}
  .hero-visual:after{width:220px;height:220px;left:34%;top:20%}
  .step-card{align-items:flex-start;border-radius:20px}
  .step-icon{width:60px;height:60px;border-radius:17px}
  .step-icon i{font-size:31px}
  .transparency{padding:30px 22px;margin-inline:14px;width:auto}
}
@media(prefers-reduced-motion:reduce){.hero-visual:after{animation:none}.hero-visual,.step-card,.btn,.btn i{transition:none}}


/* Bandera oficial de Fram en la identificación de ubicación */
.location-pill{display:inline-flex;align-items:center;gap:11px;padding:7px 16px 7px 8px}
.location-pill img{width:46px;height:31px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.22);box-shadow:0 5px 14px rgba(0,0,0,.35);flex:none}
.location-pill span{color:#fff;font-size:13px;margin:0;letter-spacing:.06em}
@media(max-width:560px){.location-pill{gap:9px;padding:6px 13px 6px 7px;margin-bottom:21px}.location-pill img{width:40px;height:27px;border-radius:7px}.location-pill span{font-size:11px}}


/* Ajustes v5 */
#gpsBtn i{font-size:1.35rem;line-height:1;flex:0 0 auto}
.upload-box span i{font-size:2.5rem;line-height:1}
.campaign-intro{padding-top:8px;padding-bottom:14px;text-align:center}
.campaign-intro p{margin:0 auto;max-width:900px;color:rgba(255,255,255,.78);font-size:clamp(.92rem,1.6vw,1.08rem);font-weight:600;letter-spacing:.01em}
@media (max-width:700px){.campaign-intro{padding-top:4px;padding-bottom:12px}.campaign-intro p{font-size:.88rem;line-height:1.55;padding:0 8px}}

/* ===== MEJORAS DEL ACCESO Y PANEL V6 ===== */
.login-card{position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;width:210px;height:210px;border-radius:50%;background:rgba(223,10,28,.12);filter:blur(42px);right:-90px;top:-100px;pointer-events:none}.login-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:rgba(223,10,28,.12);border:1px solid rgba(223,10,28,.35);color:var(--red-soft);font-size:25px;margin-bottom:22px}.login-form{margin-top:28px}.login-form .field{margin-top:0}.login-form .field+.field{margin-top:20px}.login-submit{margin-top:32px;min-height:52px;display:flex;align-items:center;justify-content:center;gap:9px}.login-card .demo-note{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.admin-title>div:first-child>p{color:var(--muted);margin:0}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.admin-actions .btn{padding:12px 15px;font-size:12px;gap:7px}.btn-danger{background:#3a0a10;color:#ffbec5;border:1px solid #741521}.btn-danger:hover{background:#550b15}.dashboard-grid article{position:relative;overflow:hidden}.metric-icon{position:absolute;right:17px;top:17px;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--red-soft);background:rgba(223,10,28,.1);border:1px solid rgba(223,10,28,.22);font-size:19px}.panel-toolbar{padding:20px 22px 15px;display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-toolbar h2{margin:0 0 4px;font-size:19px}.panel-toolbar p{margin:0;color:var(--muted);font-size:12px}.result-count{border:1px solid var(--line);background:#171719;padding:8px 12px;border-radius:999px;color:#d6d6da;font-size:12px;font-weight:800}.filter-search{position:relative}.filter-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#85858b}.filter-search input{padding-left:42px}.reports-list{padding:0 16px 16px;gap:12px}.report-card{display:grid;grid-template-columns:145px minmax(270px,1.5fr) minmax(180px,.7fr) 190px;gap:18px;align-items:stretch;padding:16px;background:#151517;border:1px solid #29292e;border-radius:15px}.report-photo{position:relative;border:0;padding:0;background:#222;border-radius:12px;overflow:hidden;min-height:130px;color:#8e8e95;cursor:pointer}.report-photo:disabled{cursor:default}.report-photo img{width:100%;height:100%;min-height:130px;object-fit:cover;display:block;transition:transform .25s ease}.report-photo:hover img{transform:scale(1.04)}.report-photo>span{height:100%;min-height:130px;display:grid;place-items:center;align-content:center;gap:7px}.report-photo>span i{font-size:27px}.report-photo em{position:absolute;left:8px;right:8px;bottom:8px;border-radius:8px;background:rgba(0,0,0,.72);padding:6px;color:white;font-size:10px;font-style:normal;font-weight:800;opacity:0;transition:opacity .2s}.report-photo:hover em{opacity:1}.report-main{min-width:0}.report-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.report-heading h3{margin:8px 0 0;font-size:18px}.report-heading time{font-size:10px;color:#8d8d93;text-align:right;white-space:nowrap}.status-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;background:#29292e;color:#ddd}.status-badge.pendiente{background:#3a2b08;color:#ffd36e}.status-badge.verificado{background:#073626;color:#8ff0c3}.status-badge.en-seguimiento{background:#102b48;color:#98cfff}.status-badge.solucionado{background:#133b1c;color:#a5ecaf}.status-badge.rechazado{background:#461018;color:#ffacb7}.report-meta{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:16px}.report-meta span{display:flex;align-items:center;gap:5px;color:#aaa;font-size:11px}.report-meta i{color:var(--red-soft);font-size:14px}.report-description{margin:14px 0 0;color:#d1d1d4;font-size:12px;line-height:1.55}.report-person{border-left:1px solid #303035;padding-left:18px;display:flex;flex-direction:column;justify-content:center;gap:8px}.report-person small{font-size:9px;letter-spacing:.11em;color:#7f7f85;font-weight:900}.report-person b,.report-person span{display:flex;align-items:center;gap:7px;font-size:12px}.report-person i{color:var(--red-soft);font-size:15px}.report-management{border-left:1px solid #303035;padding-left:18px;display:flex;flex-direction:column;justify-content:center;gap:12px}.report-management label{font-size:11px;color:#9c9ca2;font-weight:800}.report-management .status-select{width:100%;margin-top:6px}.report-management .danger-btn{display:flex;align-items:center;justify-content:center;gap:6px}.empty-state{display:flex;min-height:250px;flex-direction:column;align-items:center;justify-content:center;gap:8px}.empty-state i{font-size:44px;color:#55555d}.empty-state b{color:#d8d8dc}.empty-state span{font-size:12px}.image-modal{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(10px);z-index:9999;display:grid;place-items:center;padding:28px}.image-modal-content{max-width:min(1000px,92vw);max-height:88vh;display:flex;flex-direction:column;align-items:center}.image-modal img{display:block;max-width:100%;max-height:76vh;object-fit:contain;border-radius:14px;border:1px solid #3a3a40;background:#111}.modal-caption{margin-top:12px;padding:10px 14px;border-radius:10px;background:#151517;border:1px solid var(--line);display:flex;gap:14px;align-items:center;font-size:12px}.modal-caption span{color:var(--muted)}.modal-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;border:1px solid #414148;background:#151517;color:white;font-size:21px;cursor:pointer}.modal-open{overflow:hidden}
@media(max-width:1100px){.report-card{grid-template-columns:120px 1fr 180px}.report-person{grid-column:2}.report-management{grid-row:1/3;grid-column:3}.admin-title{align-items:flex-start;flex-direction:column;gap:20px}.admin-actions{justify-content:flex-start}}
@media(max-width:760px){.admin-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.admin-actions .btn-danger{grid-column:1/-1}.panel-toolbar{align-items:flex-start}.report-card{grid-template-columns:100px 1fr}.report-photo{min-height:105px}.report-photo img,.report-photo>span{min-height:105px}.report-person,.report-management{grid-column:1/-1;border-left:0;border-top:1px solid #303035;padding:14px 0 0}.report-management{grid-row:auto;display:grid;grid-template-columns:1fr auto;align-items:end}.report-heading{flex-direction:column}.report-heading time{text-align:left}.image-modal{padding:16px}.modal-close{top:10px;right:10px}}
@media(max-width:480px){.admin-actions{grid-template-columns:1fr}.admin-actions .btn-danger{grid-column:auto}.panel-toolbar{flex-direction:column}.report-card{grid-template-columns:1fr}.report-photo{height:190px}.report-person,.report-management{grid-column:1}.report-management{grid-template-columns:1fr}.login-card{padding:24px 20px}}


/* Modal de confirmación para limpiar reportes */
.confirm-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:22px;background:rgba(0,0,0,.82);backdrop-filter:blur(9px)}
.confirm-modal-card{width:min(440px,100%);background:#121214;border:1px solid #34343a;border-radius:22px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.55);text-align:center}
.confirm-modal-icon{width:62px;height:62px;margin:0 auto 18px;display:grid;place-items:center;border-radius:18px;background:rgba(223,10,28,.12);border:1px solid rgba(223,10,28,.35);color:#ff7783;font-size:29px}
.confirm-modal-card h2{margin:0 0 10px;font-size:23px}
.confirm-modal-card>p{margin:0;color:#a9a9af;font-size:14px;line-height:1.55}
.confirm-warning{display:flex;align-items:flex-start;gap:10px;margin:22px 0;padding:13px 14px;border-radius:12px;background:#2e2309;border:1px solid #5b4511;color:#f6d77c;text-align:left;font-size:12px;line-height:1.45}
.confirm-warning i{font-size:19px;flex:0 0 auto;margin-top:1px}
.confirm-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.confirm-modal-actions .btn{justify-content:center;min-height:48px}
.confirm-modal-actions .btn-danger{background:#b8071a;color:white;border-color:#d4142a}
.confirm-modal-actions .btn-danger:hover{background:#d20a20}
.confirm-modal-actions .btn-danger:disabled{opacity:.72;cursor:wait}
.confirm-modal-actions .is-loading i{animation:admin-spin .8s linear infinite}
@keyframes admin-spin{to{transform:rotate(360deg)}}
.admin-toast{position:fixed;right:24px;bottom:24px;z-index:11000;max-width:min(390px,calc(100vw - 32px));display:flex;align-items:center;gap:10px;padding:14px 17px;border-radius:13px;background:#10291d;border:1px solid #235d40;color:#b9f4d1;box-shadow:0 18px 48px rgba(0,0,0,.4);font-size:13px;font-weight:700;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}
.admin-toast.show{opacity:1;transform:translateY(0)}
.admin-toast.info{background:#151f2d;border-color:#304b6e;color:#c6ddff}
.admin-toast i{font-size:21px;flex:0 0 auto}
@media(max-width:520px){.confirm-modal-card{padding:25px 19px}.confirm-modal-actions{grid-template-columns:1fr}.admin-toast{left:16px;right:16px;bottom:16px;max-width:none}}

/* V8.5 — filtros por fecha y exportaciones profesionales */
.filters-advanced{grid-template-columns:minmax(280px,1.7fr) minmax(170px,.7fr) minmax(150px,.55fr) minmax(150px,.55fr) auto;align-items:end}
.date-filter{display:grid;gap:6px;color:#9999a0;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.date-filter input{width:100%;min-height:46px;background:#111114;color:#fff;border:1px solid #303036;border-radius:10px;padding:10px 12px;color-scheme:dark}
.clear-filters{min-height:46px;white-space:nowrap;border:1px solid #36363c;background:#171719;color:#ddd;border-radius:10px;padding:0 14px;cursor:pointer}
.clear-filters:hover{border-color:#5b5b63;color:#fff}
.filter-summary{display:flex;justify-content:space-between;gap:20px;padding:0 22px 14px;color:#8f8f96;font-size:11px}
.filter-summary span:last-child{text-align:right}
.spin{animation:adminSpin .8s linear infinite}@keyframes adminSpin{to{transform:rotate(360deg)}}
.admin-actions .btn:disabled{opacity:.68;cursor:wait;transform:none}
@media(max-width:1180px){.filters-advanced{grid-template-columns:1fr 1fr 1fr}.filter-search{grid-column:1/3}.clear-filters{grid-column:3}}
@media(max-width:760px){.filters-advanced{grid-template-columns:1fr 1fr}.filter-search{grid-column:1/-1}.clear-filters{grid-column:1/-1}.filter-summary{flex-direction:column;gap:5px}.filter-summary span:last-child{text-align:left}}
@media(max-width:480px){.filters-advanced{grid-template-columns:1fr}.filter-search,.clear-filters{grid-column:1}.date-filter{width:100%}}
.popup-maps-btn,.report-maps-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;border-radius:9px;padding:10px 13px;background:#df0a1c;color:#fff!important;font-weight:800;font-size:12px;text-decoration:none;transition:.2s}.popup-maps-btn:hover,.report-maps-btn:hover{background:#b30010;transform:translateY(-1px)}.report-maps-btn{width:max-content}.popup-card .popup-maps-btn{width:100%;box-sizing:border-box}

/* Estados del mapa público */
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.map-status-legend{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;color:#d7d7da;font-size:12px;font-weight:800}
.map-status-legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:2px solid rgba(255,255,255,.75);box-shadow:0 0 0 2px rgba(0,0,0,.18)}
.legend-dot--pendiente{background:#68707d}
.legend-dot--verificado{background:#df0a1c}
.legend-dot--seguimiento{background:#f2a900}
.legend-dot--solucionado{background:#159947}
.status-marker-wrapper{background:transparent!important;border:0!important}
.status-marker{--marker-color:#68707d;position:relative;display:block;width:34px;height:34px;border-radius:50% 50% 50% 0;background:var(--marker-color);transform:rotate(-45deg);border:3px solid #fff;box-shadow:0 7px 16px rgba(0,0,0,.42)}
.status-marker:after{content:"";position:absolute;inset:6px;border-radius:50%;background:rgba(255,255,255,.2)}
.status-marker__dot{position:absolute;z-index:1;left:50%;top:50%;width:9px;height:9px;border-radius:50%;background:#fff;transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.status-marker--pendiente{--marker-color:#68707d}
.status-marker--verificado{--marker-color:#df0a1c}
.status-marker--seguimiento{--marker-color:#f2a900}
.status-marker--solucionado{--marker-color:#159947}
.popup-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;margin-top:9px;color:#fff;font-size:11px;font-weight:900;letter-spacing:.025em;text-transform:uppercase}
.popup-status--pendiente{background:#68707d}
.popup-status--verificado{background:#df0a1c}
.popup-status--seguimiento{background:#d88d00}
.popup-status--solucionado{background:#159947}
@media(max-width:720px){.map-toolbar{align-items:stretch}.map-toolbar label{width:100%;display:grid}.map-toolbar select{max-width:none}.map-status-legend{justify-content:flex-start;gap:10px 14px}}


/* V8.8 — Estados coordinados entre mapa y panel */
.status-badge.pendiente{background:#252a31;color:#d6dbe3;border:1px solid #4b5563}
.status-badge.verificado{background:#4b0b12;color:#ffadb6;border:1px solid #9f1726}
.status-badge.en-seguimiento{background:#4a3100;color:#ffd76a;border:1px solid #a86c00}
.status-badge.solucionado{background:#0d3b20;color:#a8efbd;border:1px solid #237a42}
.status-badge.rechazado{background:#371015;color:#ffadb6;border:1px solid #7f1c28}

.dashboard-grid article:nth-child(2) .metric-icon,
.dashboard-grid article:nth-child(2) b{color:#9ca3af}
.dashboard-grid article:nth-child(3){border-color:rgba(223,10,28,.42)}
.dashboard-grid article:nth-child(3) .metric-icon,
.dashboard-grid article:nth-child(3) b{color:#ef3345}
.dashboard-grid article:nth-child(4){border-color:rgba(21,153,71,.42)}
.dashboard-grid article:nth-child(4) .metric-icon,
.dashboard-grid article:nth-child(4) b{color:#35bd68}

.status-select.status-pendiente{border-color:#59616d;color:#d9dee6}
.status-select.status-verificado{border-color:#df0a1c;color:#ff6976;background:#21090c}
.status-select.status-en-seguimiento{border-color:#f2a900;color:#ffd46a;background:#251a00}
.status-select.status-solucionado{border-color:#159947;color:#77df9b;background:#071d0f}
.status-select.status-rechazado{border-color:#8f1b28;color:#ff9eaa;background:#25090d}

/* CTA y pie institucional debajo del mapa público */
.map-report-cta{width:min(1180px,calc(100% - 40px));margin:72px auto 76px;padding:54px 58px;display:flex;align-items:center;justify-content:space-between;gap:36px;border-radius:30px 30px 30px 8px;background:linear-gradient(110deg,#cf102b 0%,#8f0018 100%);box-shadow:0 25px 65px rgba(143,0,24,.2)}
.map-report-cta>div>span{display:block;margin-bottom:14px;color:#fff;font-size:11px;font-weight:900;letter-spacing:.18em}
.map-report-cta h2{margin:0;color:#fff;font-size:clamp(34px,4.2vw,52px);font-weight:500;line-height:1.03;letter-spacing:-.045em}
.map-report-cta>a{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:17px 25px;border-radius:999px;background:#fff;color:#d20b2b;font-size:14px;font-weight:900;transition:transform .2s ease,box-shadow .2s ease}
.map-report-cta>a:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.map-public-footer{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(380px,1.2fr);align-items:center;gap:60px;padding:43px 0 54px;border-top:1px solid #d8d3d0;color:#5e5b5a}
.map-footer-brand{display:flex;align-items:center;gap:12px}
.map-footer-brand img{width:45px;height:45px;object-fit:contain;filter:drop-shadow(0 7px 14px rgba(208,10,38,.18))}
.map-footer-brand>div{display:grid;gap:5px}
.map-footer-brand a{font-size:16px;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.map-footer-brand span{font-size:10px;text-decoration:underline;text-underline-offset:2px;letter-spacing:.025em}
.map-footer-copy{font-size:11px;line-height:1.45}
.map-footer-copy p{margin:0}
.map-footer-copy strong{display:block;margin-top:2px;color:#403d3c;font-weight:700}
body:has(.map-public-footer){background:#fbf9f7;color:#171315}
body:has(.map-public-footer) .site-header{background:rgba(5,5,5,.96)}
body:has(.map-public-footer) .map-page{color:#fff;background:#050505;width:100%;max-width:none;padding-left:max(20px,calc((100vw - 1180px)/2));padding-right:max(20px,calc((100vw - 1180px)/2));padding-bottom:1px}
body:has(.map-public-footer) .map-report-cta{color:#fff}

@media(max-width:820px){
  .map-report-cta{padding:40px 30px;align-items:flex-start;flex-direction:column;border-radius:24px 24px 24px 8px}
  .map-report-cta h2 br{display:none}
  .map-public-footer{grid-template-columns:1fr;gap:25px}
}
@media(max-width:560px){
  .map-report-cta{width:calc(100% - 28px);margin:48px auto 52px;padding:32px 22px}
  .map-report-cta h2{font-size:34px}
  .map-report-cta>a{width:100%;justify-content:center}
  .map-public-footer{width:calc(100% - 28px);padding:34px 0 42px}
}
