@font-face{font-family:Anton;src:url(../fonts/anton-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Anton;src:url(../fonts/anton-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Inter;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;src:url(../fonts/inter-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;src:url(../fonts/inter-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--bg:#0a0a0a;--bg2:#101010;--panel:#151515;--panel2:#1b1b1b;--line:#2a2a2a;--red:#E30613;--red2:#ff2a38;--text:#f4f4f4;--muted:#a0a0a0;--ok:#2fbf71;--warn:#f5a524;--r:14px;--wrap:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.6 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden;padding-bottom:72px}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.02em;line-height:1.05;margin:0 0 .5em}
h1{font-size:clamp(2.6rem,9vw,5.4rem)}h2{font-size:clamp(1.9rem,5vw,3rem)}h3{font-size:1.35rem}
h4{margin:0 0 .6em;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
p{margin:0 0 1em}.muted{color:var(--muted)}.red{color:var(--red)}.center{text-align:center}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:8px;background:var(--red);color:#fff;padding:8px 14px;z-index:99;border-radius:8px}.skip:focus{left:8px}
.hp{position:absolute!important;left:-5000px;width:1px;height:1px;overflow:hidden}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(10,10,10,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-t{font-family:Anton,sans-serif;font-size:1.35rem;letter-spacing:.04em;white-space:nowrap}.logo-t b{color:var(--red);font-weight:400}
.rec-dot{width:14px;height:14px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(227,6,19,.7);animation:rec 1.6s infinite}
@keyframes rec{0%{box-shadow:0 0 0 0 rgba(227,6,19,.65)}70%{box-shadow:0 0 0 12px rgba(227,6,19,0)}100%{box-shadow:0 0 0 0 rgba(227,6,19,0)}}
.menu{display:flex;align-items:center;gap:6px}.menu a{padding:8px 14px;text-decoration:none;font-weight:600;font-size:.95rem;border-radius:999px;color:#ddd}
.menu a:hover,.menu a.on{color:#fff;background:var(--panel2)}.menu a.btn{color:#fff;background:var(--red)}.menu a.btn:hover{background:var(--red2)}
.burger{display:none;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}.burger span{display:block;height:2px;background:#fff;margin:6px 0;transition:.25s}
@media(max-width:820px){.burger{display:block}.menu{position:fixed;inset:64px 0 auto 0;background:#0c0c0cf5;flex-direction:column;align-items:stretch;padding:14px 20px 24px;gap:4px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .3s;max-height:calc(100vh - 64px);overflow:auto}
.menu.open{transform:none}.menu a{padding:14px 16px;font-size:1.05rem;border-radius:12px}.menu a.btn{text-align:center;margin-top:6px}.logo-t{font-size:1.15rem}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;border:2px solid var(--red);padding:14px 26px;border-radius:999px;font:800 .95rem Inter,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s}
.btn:hover{background:var(--red2);border-color:var(--red2);transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(227,6,19,.8)}
.btn-ghost{background:transparent;color:#fff;border-color:#555}.btn-ghost:hover{background:#fff1;border-color:#fff;box-shadow:none}
.btn-sm{padding:8px 18px;font-size:.8rem}.btn-block{width:100%}.btn-danger{background:#7a0b12;border-color:#7a0b12}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
/* hero */
.hero{position:relative;padding:96px 0 88px;min-height:min(86vh,760px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg)}
.hero .wrap{width:100%}
.hero-bg{position:absolute;inset:0;background:url("../img/portada.webp") center 62%/cover no-repeat;transform:scale(1.06);animation:heroZoom 26s ease-in-out infinite alternate}
.hero-bg::after{content:"";position:absolute;inset:0;background:rgba(8,8,10,.74)}
.hero h1,.hero .lead{text-shadow:0 2px 24px rgba(0,0,0,.65)}
.hero::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");opacity:.06;mix-blend-mode:screen;pointer-events:none}
.vf{position:absolute;inset:18px;pointer-events:none}.vf i{position:absolute;width:34px;height:34px;border:3px solid #fff8}.vf i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.vf i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.vf i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.vf i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.hero-in{position:relative;display:grid;gap:30px;max-width:900px}
.rec-badge{display:inline-flex;align-items:center;gap:10px;font:600 .8rem Inter;letter-spacing:.14em;text-transform:uppercase;color:#fff;border:1px solid #fff3;border-radius:999px;padding:6px 14px;width:max-content;background:#0006}
.rec-badge .rec-dot{width:10px;height:10px}.tc{font-variant-numeric:tabular-nums;color:var(--muted)}
.hero h1 em{font-style:normal;color:var(--red)}.lead{font-size:clamp(1.05rem,2.4vw,1.3rem);color:#d6d6d6;max-width:680px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:10px}
.stat{background:#ffffff08;border:1px solid var(--line);border-radius:var(--r);padding:16px}.stat b{display:block;font:400 2.4rem Anton;color:#fff;line-height:1}.stat span{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
/* sections */
.sec{padding:68px 0;border-bottom:1px solid var(--line)}.sec-alt{background:var(--bg2)}
.sec-h{max-width:760px;margin-bottom:34px}.eyebrow{font:600 .78rem Inter;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}.sec{padding:50px 0}.hero{padding:56px 0 52px;min-height:0}.hero-bg{background-image:url("../img/portada-m.webp");background-position:62% 70%}.hero-bg::after{background:rgba(8,8,10,.8)}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px;position:relative;transition:border-color .2s,transform .2s}
a.card{text-decoration:none;display:block}a.card:hover{border-color:var(--red);transform:translateY(-3px)}
.card .num{font:400 3rem Anton;color:var(--red);line-height:1;margin-bottom:8px}.card h3{margin-bottom:.4em}.card p:last-child{margin-bottom:0}
.rolecard .ico{font-size:1.8rem;margin-bottom:6px}.rolecard ul{margin:10px 0 0;padding-left:18px;color:#cfcfcf;font-size:.92rem}
.chip{display:inline-block;background:#ffffff10;border:1px solid #ffffff1c;border-radius:999px;padding:3px 11px;font-size:.78rem;font-weight:600;margin:0 6px 6px 0;color:#e8e8e8}.chip-more{color:var(--muted)}
.chip.red{background:rgba(227,6,19,.16);border-color:rgba(227,6,19,.5);color:#ff8d94}.chip.ok{background:rgba(47,191,113,.14);border-color:rgba(47,191,113,.5);color:#7fe0ab}.chip.warn{background:rgba(245,165,36,.14);border-color:rgba(245,165,36,.5);color:#ffd07a}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}@media(max-width:860px){.split{grid-template-columns:1fr}}
.faq details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:10px}.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}.faq summary::after{content:"+";color:var(--red);font-size:1.4rem;line-height:1}.faq details[open] summary::after{content:"–"}.faq p{margin:12px 0 0;color:#cfcfcf}
/* forms */
.form{display:grid;gap:22px}.fcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px}.fcard>h3{display:flex;align-items:center;gap:10px;margin-bottom:.8em}.fcard>h3 .n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--red);font:400 1rem Anton}
.row{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.row3{grid-template-columns:repeat(3,1fr)}@media(max-width:700px){.row,.row3{grid-template-columns:1fr}.fcard{padding:20px 16px}}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>label,.lbl{font-weight:600;font-size:.9rem}.field small,.help{color:var(--muted);font-size:.82rem}.req{color:var(--red)}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=password],select,textarea{width:100%;background:#0d0d0d;border:1.5px solid #333;color:#fff;border-radius:12px;padding:13px 14px;font:400 1rem Inter,sans-serif;min-height:48px;transition:border-color .15s,box-shadow .15s}
textarea{min-height:120px;resize:vertical}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 4px rgba(227,6,19,.2)}
input[type=file]{width:100%;padding:12px;background:#0d0d0d;border:1.5px dashed #444;border-radius:12px;color:#ccc}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}
.rolegroup{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 14px;background:#0e0e0e}.rolegroup legend{font-weight:800;padding:0 8px}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(max-width:700px){.checks{grid-template-columns:1fr}}
.check,.radio{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1.5px solid #2c2c2c;border-radius:12px;cursor:pointer;background:#0d0d0d;transition:.15s;font-size:.93rem;line-height:1.35}
.check:hover,.radio:hover{border-color:#555}.check input,.radio input{accent-color:var(--red);width:19px;height:19px;margin-top:1px;flex:none}
.check:has(input:checked),.radio:has(input:checked){border-color:var(--red);background:rgba(227,6,19,.1)}
.radios{display:grid;gap:10px}.radio b{display:block}.radio small{color:var(--muted)}
.legal-box{background:#0e0e0e;border:1px solid var(--line);border-radius:12px;padding:16px;font-size:.85rem;color:#bdbdbd;margin-bottom:14px}.legal-box b{color:#fff}
.legal-box a{color:#fff;text-decoration:underline}
.rep-row{display:grid;grid-template-columns:1.1fr 1.6fr 70px 44px;gap:8px;margin-bottom:8px}.rep-row.l{grid-template-columns:1fr 2fr 44px}@media(max-width:700px){.rep-row{grid-template-columns:1fr 1fr}.rep-row input:nth-child(2){grid-column:1/-1}.rep-row.l{grid-template-columns:1fr 44px}.rep-row.l input:nth-child(1){grid-column:1/-1}}
.icon-btn{background:#1d1d1d;border:1.5px solid #333;color:#fff;border-radius:12px;cursor:pointer;min-height:48px;font-size:1.1rem}.icon-btn:hover{border-color:var(--red)}
.cond{display:none}.cond.show{display:block}
.flash{margin:18px 0 0;padding:14px 18px;border-radius:12px;font-weight:600}.flash-ok{background:rgba(47,191,113,.14);border:1px solid var(--ok);color:#9ae8bd}.flash-err{background:rgba(227,6,19,.14);border:1px solid var(--red);color:#ffb3b8}
.errs{background:rgba(227,6,19,.12);border:1px solid var(--red);border-radius:12px;padding:14px 18px;margin-bottom:18px}.errs ul{margin:6px 0 0 18px;padding:0}
.page-h{padding:46px 0 26px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#140607,var(--bg))}
/* directory */
.filters{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1.2fr auto;gap:10px;margin:26px 0}@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}.filters .btn{grid-column:1/-1}}@media(max-width:520px){.filters{grid-template-columns:1fr}}
.pro{display:flex;gap:16px}.pro .ph{width:84px;height:84px;border-radius:14px;object-fit:cover;background:#222;flex:none;border:1px solid var(--line)}.pro .ph.ph0{display:grid;place-items:center;font:400 2rem Anton;color:#666}
.pro h3{margin:0 0 4px;font-size:1.25rem}.pro .loc{color:var(--muted);font-size:.88rem;margin-bottom:8px}
.badges{margin:8px 0 0}
.profile{display:grid;grid-template-columns:320px 1fr;gap:34px;padding:40px 0}@media(max-width:860px){.profile{grid-template-columns:1fr}}
.profile .pimg{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r);border:1px solid var(--line);background:#1b1b1b}
.kv{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;font-size:.95rem}.kv dt{color:var(--muted)}.kv dd{margin:0}@media(max-width:520px){.kv{grid-template-columns:1fr}.kv dt{margin-top:8px}}
.gear-t{width:100%;border-collapse:collapse;font-size:.92rem}.gear-t td,.gear-t th{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.gear-t th{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em}
.links a{display:inline-flex;margin:0 8px 8px 0}
/* map */
.mapwrap{display:grid;grid-template-columns:1fr 380px;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel);min-height:640px}
#map{height:100%;min-height:560px;background:#0b0b0b}.mapside{padding:22px;overflow:auto;max-height:680px;border-left:1px solid var(--line)}
@media(max-width:900px){.mapwrap{grid-template-columns:1fr}#map{height:62vh;min-height:380px}.mapside{max-height:none;border-left:0;border-top:1px solid var(--line)}}
.leaflet-container{background:#0b0b0b;font-family:Inter,sans-serif}
.pin{width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font:400 .95rem Anton;border:2px solid #fff;box-shadow:0 0 0 0 rgba(227,6,19,.7);animation:rec 2s infinite}
.pin.off{width:12px;height:12px;background:#6a6a6a;border:2px solid #111;box-shadow:none;animation:none}
.leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.5)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#151515;color:#fff;border-radius:12px}
.mapchips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.mapchips button{background:#151515;border:1.5px solid #333;color:#ddd;border-radius:999px;padding:8px 16px;font:600 .85rem Inter;cursor:pointer}.mapchips button.on{background:var(--red);border-color:var(--red);color:#fff}
.listrow{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none}.listrow:last-child{border:0}.listrow .ph{width:46px;height:46px;border-radius:10px;object-fit:cover;background:#222}
/* admin / tables */
table.t{width:100%;border-collapse:collapse;font-size:.92rem}.t th,.t td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.t th{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.t tr:hover td{background:#ffffff05}
.tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.admbar{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.admbar a{padding:9px 16px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-weight:600;font-size:.9rem}.admbar a.on,.admbar a:hover{background:var(--red);border-color:var(--red)}
.prose{max-width:820px}.prose h2{font-size:1.7rem;margin-top:1.6em}.prose h3{font-family:Inter;text-transform:none;font-size:1.1rem;font-weight:800;margin-top:1.3em}.prose li{margin-bottom:.4em}.prose table{border-collapse:collapse;width:100%;font-size:.9rem;margin:1em 0}.prose td,.prose th{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}.prose th{background:var(--panel2)}
/* footer */
.foot{background:#070707;border-top:1px solid var(--line);padding:46px 0 20px}.foot-in{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}@media(max-width:700px){.foot-in{grid-template-columns:1fr}}
.foot a{display:block;color:#ccc;text-decoration:none;padding:3px 0;font-size:.93rem}.foot a:hover{color:#fff}.foot-b{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:30px;padding-top:18px;font-size:.82rem}
.mobile-cta{display:none}
@media(max-width:820px){.mobile-cta{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#0a0a0af2;backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:40}.mobile-cta .btn{flex:1;padding:13px 10px}}
@media(min-width:821px){body{padding-bottom:0}}
.ticker{overflow:hidden;white-space:nowrap;border-block:1px solid var(--line);background:#0c0c0c;padding:12px 0}.ticker div{display:inline-block;animation:tick 38s linear infinite;font:400 1.15rem Anton;letter-spacing:.08em;color:#777;text-transform:uppercase}.ticker span{color:var(--red);margin:0 18px}
@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}.js .reveal.in{opacity:1;transform:none}

@media(max-width:700px){.mapchips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;margin-inline:-20px;padding-inline:20px;scrollbar-width:thin}.mapchips button{flex:none;white-space:nowrap}}
input[type=file]{font:600 .9rem Inter,sans-serif;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s}
input[type=file]:hover{border-color:var(--red);background:#120a0a}
input[type=file]::file-selector-button{margin-right:14px;background:var(--red);color:#fff;border:2px solid var(--red);padding:10px 20px;border-radius:999px;font:800 .8rem Inter,sans-serif;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .15s}
input[type=file]::file-selector-button:hover{background:var(--red2);border-color:var(--red2)}
/* ---- Ficha de candidato ---- */
.fhero{background:linear-gradient(135deg,#1a0a0c,#111 60%);border:1px solid var(--line);border-radius:20px;padding:22px;display:grid;gap:20px;margin-bottom:22px}
.fhero-id{display:flex;gap:18px;align-items:center}.fav{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--red);flex:none;background:#222}
.fav0{display:grid;place-items:center;font:400 2.6rem Anton,sans-serif;color:#fff}.fname{font-size:clamp(1.8rem,4.5vw,2.8rem);margin:6px 0 0;line-height:1.05}.fchips .chip{margin-bottom:0}
.fquick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:820px){.fquick{grid-template-columns:1fr 1fr}}@media(max-width:420px){.fquick{grid-template-columns:1fr}.fhero-id{flex-direction:column;text-align:center}}
.fq{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;border-radius:16px;text-decoration:none;color:#fff;border:1px solid #ffffff24;background:#ffffff0d;transition:transform .15s,background .15s}
.fq:hover{transform:translateY(-2px);background:#ffffff1a}.fq span{grid-row:1/3;font-size:1.7rem}.fq b{font-size:1.05rem;text-transform:uppercase;letter-spacing:.03em}.fq small{color:#d0d0d0;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fq-call{background:var(--red);border-color:var(--red)}.fq-call:hover{background:var(--red2)}.fq-call small{color:#ffe0e2}.fq-wa{background:#128c4a;border-color:#128c4a}.fq-wa:hover{background:#17a85a}
.fgrid{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}@media(max-width:980px){.fgrid{grid-template-columns:1fr}}
.fmain{display:grid;gap:16px}.fside{display:grid;gap:16px;position:sticky;top:84px}@media(max-width:980px){.fside{position:static}}
.fcard2{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px}.fcard2 h3{margin:0 0 12px;font-size:1.25rem}.fcard2 h4{margin:14px 0 4px;font:800 .78rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fdata{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.fdata div{background:#ffffff08;border-radius:12px;padding:12px}.fdata span{display:block;font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.fdata b{display:block;margin-top:2px}.fdata small{display:block;color:var(--muted)}
.consent{border-top:1px solid var(--line);padding:14px 0}.consent-h{margin-bottom:6px}.consent-l{list-style:none;margin:0 0 6px;padding:0}.consent-l li{padding:2px 0}.consent-l .y{color:#8be0ae}.consent-l .n{color:#ff9a9a}
/* ---- Candidatos: selección ---- */
.bulkbar{position:sticky;top:70px;z-index:20;display:none;gap:10px;flex-wrap:wrap;align-items:center;background:#1c0b0e;border:1px solid var(--red);border-radius:14px;padding:12px 16px;margin:12px 0}.bulkbar.on{display:flex}.bulkbar b{margin-right:auto}
.t input[type=checkbox],.cb{width:20px;height:20px;accent-color:var(--red)}.rowact{display:flex;gap:6px}.rowact a{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;text-decoration:none;font-size:1.05rem;border:1px solid #ffffff2a;background:#ffffff0d}.rowact a.c{background:var(--red);border-color:var(--red)}.rowact a.w{background:#128c4a;border-color:#128c4a}
/* ---- Mapa por provincias ---- */
.ptip{background:#111!important;color:#f4f4f4!important;border:1px solid #ffffff30!important;border-radius:12px!important;padding:10px 12px!important;box-shadow:0 8px 28px #000a!important;font:500 .85rem/1.35 Inter,sans-serif!important;white-space:normal!important;width:300px;max-width:calc(100% - 16px);position:absolute;z-index:1000;pointer-events:none}
.pt-n{font:400 1.25rem Anton,sans-serif;letter-spacing:.02em}.pt-c{font-weight:800;color:#ff5a64;margin:2px 0}.pt-r,.pt-g{color:#cfcfcf}.pt-h{margin-top:6px;color:#8a8a8a;font-size:.75rem}
.mapwrap{position:relative}.leaflet-container{background:#0a0a0a!important}

/* agenda · diseño corporativo */
.ag{--ag-bg:#15171a;--ag-card:#1d2024;--ag-card2:#252930;--ag-line:#2f343b;--ag-mut:#9aa1ab;background:var(--ag-bg);border:1px solid var(--ag-line);border-radius:28px;padding:26px}
.ag *{box-sizing:border-box}.ag-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}
.ag-stat{background:var(--ag-card);border:1px solid var(--ag-line);border-radius:20px;padding:18px 22px;display:flex;flex-direction:column;gap:2px}.ag-stat b{font:400 2.3rem/1 Anton,sans-serif;color:#fff}.ag-stat span{color:var(--ag-mut);font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;font-weight:600}
.ag-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:stretch}
.ag-card{background:var(--ag-card);border:1px solid var(--ag-line);border-radius:22px;padding:26px;display:flex;flex-direction:column;gap:16px}
.ag-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.ag-h{font:400 1.55rem/1.15 Anton,sans-serif;letter-spacing:.02em;margin:0;display:flex;align-items:center;gap:10px;text-transform:uppercase}.ag-sub{margin:6px 0 0;color:var(--ag-mut);font-size:.92rem}
.ag-pills{display:flex;gap:8px;flex-wrap:wrap}.ag-pill{display:inline-flex;align-items:center;gap:6px;background:var(--ag-card2);border:1px solid var(--ag-line);color:#d8dce2;border-radius:999px;padding:5px 12px;font:600 .8rem/1.2 Inter,sans-serif;letter-spacing:0;text-transform:none}.ag-pill b{color:#fff}.ag-pill.ok{border-color:#2fbf7155;color:#7fe3ae}
.ag-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}.ag-steps li{display:flex;gap:14px;align-items:flex-start;background:var(--ag-card2);border:1px solid var(--ag-line);border-radius:16px;padding:14px 16px}.ag-steps b{display:block;font-size:.95rem}.ag-steps small{display:block;color:var(--ag-mut);font-size:.84rem;line-height:1.45;margin-top:2px}
.ag-n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font:400 1rem Anton,sans-serif}
.ag form[data-once]{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:auto}.ag-file{flex:1 1 260px;min-width:0;background:var(--ag-bg)!important;border:1.5px dashed #444b55!important;border-radius:999px!important;padding:8px 10px!important;color:#c9ced6}
.ag .field input[type=text],.ag .field input[type=tel],.ag-search input{background:var(--ag-bg);border:1.5px solid var(--ag-line);border-radius:999px;padding:12px 18px;min-height:48px;color:#fff;font:400 1rem Inter,sans-serif;width:100%}
.ag .field input:focus,.ag-search input:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 4px #e3061922}.ag .field label{color:#d8dce2;font-size:.85rem;letter-spacing:.02em}
.ag-search{position:relative;flex:1 1 300px;max-width:420px}.ag-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ag-mut);pointer-events:none}.ag-search input{padding-left:44px}
.ag-tool{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--ag-card2);border:1px solid var(--ag-line);border-radius:999px;padding:8px 10px 8px 18px}.ag-grow{flex:1}
.ag-check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;font-size:.9rem;color:#d8dce2}.ag-check input{position:absolute;opacity:0;width:20px;height:20px;margin:0}.ag-check>span:before{content:"";display:inline-block;width:20px;height:20px;border-radius:7px;border:1.8px solid #5a626d;background:var(--ag-bg);vertical-align:-5px;margin-right:10px;transition:.15s}.ag-check.ag-only>span:before{margin:0}.ag-check input:checked+span:before{background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--red)}.ag-check input:focus-visible+span:before{box-shadow:0 0 0 4px #e3061933}
.ag-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:640px;overflow:auto}.ag-row{display:flex;align-items:center;gap:14px;background:var(--ag-card2);border:1px solid var(--ag-line);border-radius:18px;padding:10px 14px;transition:border-color .15s,background .15s}.ag-row:hover{border-color:#4a525d;background:#2a2e36}
.ag-av{flex:none;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#3a3f48,#2a2e36);border:1px solid #4a525d;display:grid;place-items:center;font:400 1rem Anton,sans-serif;letter-spacing:.04em;color:#fff}
.ag-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.ag-who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-who small{color:var(--ag-mut);font-size:.88rem}
.ag-act{display:flex;gap:8px;flex:none}.ag-ib{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:8px 15px;font:600 .85rem/1 Inter,sans-serif;text-decoration:none;border:1px solid var(--ag-line);color:#fff;background:var(--ag-bg);transition:.15s}.ag-ib.call{background:var(--red);border-color:var(--red)}.ag-ib.call:hover{background:var(--red2)}.ag-ib.wa:hover{border-color:#25d366;color:#25d366}
.ag-empty{text-align:center;color:var(--ag-mut);padding:34px 10px;border:1.5px dashed var(--ag-line);border-radius:18px}
.ag .btn-sm{border-radius:999px}
@media(max-width:900px){.ag{padding:16px;border-radius:22px}.ag-grid{grid-template-columns:1fr}.ag-stats{grid-template-columns:1fr 1fr 1fr;gap:8px}.ag-stat{padding:12px 14px}.ag-stat b{font-size:1.7rem}.ag-stat span{font-size:.66rem}.ag-card{padding:18px}.ag-tool{border-radius:22px}}
@media(max-width:560px){.ag-act .ag-ib span{display:none}.ag-act .ag-ib{padding:10px 12px}.ag-search{max-width:none}}
/* rol de solo lectura */
.ro-banner{margin:0 0 6px;display:inline-flex;gap:8px;align-items:center;background:#1d2024;border:1px solid #2f343b;border-radius:999px;padding:8px 16px;font-size:.88rem;color:#d8dce2}
.is-viewer .sec form[method=post] button,.is-viewer .sec form[method=post] input[type=file],.is-viewer .bulkbar,.is-viewer .cb,.is-viewer .pk,.is-viewer #selbar,.is-viewer .ag-tool,.is-viewer .ag-grid{display:none!important}.is-viewer .ag-check.ag-only{visibility:hidden}
.is-viewer .sec form[method=post] textarea:disabled,.is-viewer .sec form[method=post] select:disabled{opacity:.85}
.ag-link{display:flex;gap:10px;flex-wrap:wrap}.ag-link input{flex:1 1 280px;background:var(--ag-bg);border:1.5px solid var(--ag-line);border-radius:999px;padding:11px 18px;color:#fff;font:500 .9rem monospace;min-width:0}
.ag-act form{display:inline;margin:0}.ag-act .ag-ib{cursor:pointer}
.ag-card form[data-once]{flex-direction:column;align-items:stretch}.ag-card form[data-once] .ag-file{flex:none;width:100%}.ag-card form[data-once] .btn{align-self:flex-start}

/* candidatos · listado */
.ag-check{position:relative}.ag-check input:indeterminate+span:before{background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='white' stroke-width='3.4' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--red)}
.pr-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.pr-tab{display:inline-flex;align-items:center;gap:10px;background:var(--ag-card);border:1px solid var(--ag-line);border-radius:999px;padding:10px 18px;color:#d8dce2;text-decoration:none;font-weight:600;font-size:.92rem;transition:.15s}.pr-tab b{background:var(--ag-card2);border-radius:999px;padding:2px 10px;font-size:.82rem;color:#fff;min-width:28px;text-align:center}.pr-tab:hover{border-color:#4a525d}.pr-tab.on{background:var(--red);border-color:var(--red);color:#fff}.pr-tab.on b{background:#0003}
.pr-filters{display:grid;gap:12px;padding:18px;margin-bottom:18px}.pr-q{max-width:none}.pr-sel{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ag select{background-color:var(--ag-bg);border:1.5px solid var(--ag-line);border-radius:999px;padding:0 40px 0 18px;min-height:48px;color:#fff;width:100%;font:400 .95rem Inter,sans-serif}.ag select:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 4px #e3061922}
.pr-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pr-count{margin:0 0 12px;font-size:.95rem}.pr-count b{font:400 1.4rem Anton,sans-serif;margin-right:4px}
.ag .bulkbar{border-radius:999px;background:#2a0e12;padding:10px 12px 10px 22px;top:76px;box-shadow:0 12px 30px #0009}.ag .bulkbar .btn{border-radius:999px}
.pr-list{display:grid;gap:8px}.pr{display:grid;grid-template-columns:26px 44px minmax(200px,2.2fr) minmax(100px,.9fr) minmax(190px,1.9fr) minmax(90px,.8fr) 100px 118px;gap:12px;align-items:center;background:var(--ag-card);border:1px solid var(--ag-line);border-left:4px solid #6b7280;border-radius:18px;padding:12px 16px;transition:border-color .15s,background .15s}.pr:not(.pr-h):hover{background:#22262b;border-color:#4a525d}
.pr.st-pending{border-left-color:var(--warn)}.pr.st-approved{border-left-color:var(--ok)}.pr.st-rejected{border-left-color:#6b7280}
.pr-h{background:transparent;border-color:transparent;border-left-color:transparent;padding-top:0;padding-bottom:4px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ag-mut);font-weight:700}.pr-h .r{text-align:right}
.pr-who{min-width:0;display:flex;flex-wrap:wrap;gap:2px 6px;align-items:center}.pr-who>a{color:#fff;text-decoration:none}.pr-who>a:hover b{text-decoration:underline}.pr-who b{font-size:1rem}.pr-who small{flex:0 0 100%;color:var(--ag-mut);font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-loc{display:flex;flex-direction:column;line-height:1.3;min-width:0}.pr-loc small,.pr-st small{color:var(--ag-mut);font-size:.82rem}.pr-roles{display:flex;gap:6px;flex-wrap:wrap}.pr-sit{font-size:.9rem;color:#d8dce2}.pr-st{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.pr-act{justify-content:flex-end}.ag-ib.ico{width:38px;height:38px;padding:0;justify-content:center}.ag-ib.ico.wa{color:#25d366}.ag-ib.ico.wa:hover{background:#25d366;color:#fff;border-color:#25d366}.ag-ib.ico:not(.call):not(.wa):hover{border-color:#8a93a0}
@media(max-width:1100px){.pr-sel{grid-template-columns:1fr 1fr}.pr{grid-template-columns:26px 44px minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"chk av who who act" ". . loc sit st" ". . roles roles roles"}.pr>:nth-child(1){grid-area:chk}.pr>:nth-child(2){grid-area:av}.pr>.pr-who{grid-area:who}.pr>.pr-loc{grid-area:loc}.pr>.pr-roles{grid-area:roles}.pr>.pr-sit{grid-area:sit}.pr>.pr-st{grid-area:st}.pr>.pr-act{grid-area:act}.pr-h{display:none}}
@media(max-width:620px){.pr-sel{grid-template-columns:1fr}.pr{grid-template-columns:26px 44px 1fr auto;grid-template-areas:"chk av who who" ". . loc st" ". . roles roles" ". . sit act"}.pr-act{justify-content:flex-end}.pr-tab{padding:8px 14px;font-size:.85rem}}
/* Agenda: categorías */
.ag-ai{margin-bottom:22px;border-color:#2fbf7155}.ag-ai .ag-head{align-items:center}.ag-ai .ag-sub{max-width:640px}
.ag-cats{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 14px}.ag-cat{display:inline-flex;gap:6px;align-items:center;background:var(--ag-card2);border:1px solid var(--ag-line);color:#d8dce2;border-radius:999px;padding:6px 14px;font:600 .82rem/1.2 Inter,sans-serif;text-decoration:none}.ag-cat b{color:#fff;opacity:.8}.ag-cat:hover{border-color:#6b7480}.ag-cat.on{background:#fff;color:#15171a;border-color:#fff}.ag-cat.on b{color:#15171a}
.ag-tag{flex:none;border-radius:999px;padding:4px 11px;font:600 .72rem/1.2 Inter,sans-serif;background:#2a2e36;border:1px solid #4a525d;color:#d8dce2;white-space:nowrap}
.ag-sel{background:var(--ag-card2);border:1px solid var(--ag-line);color:#fff;border-radius:999px;padding:7px 12px;font:500 .85rem Inter,sans-serif}
.ag-who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:720px){.ag-tag{display:none}}
/* Perfiles que necesitamos: tarjetas futuristas */
.rolegrid{gap:22px}
.rolecard{position:relative;overflow:hidden;padding:30px 28px 28px;background:linear-gradient(160deg,#17181c 0%,#0e0f12 100%);border:1px solid #2a2d33;border-radius:26px;transition:transform .25s,border-color .25s,box-shadow .25s}
.rolecard::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(255,40,60,.7),rgba(255,40,60,0) 40%,rgba(255,255,255,.12));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.55;transition:opacity .25s}
.rolecard::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;background:radial-gradient(circle,rgba(255,30,50,.22),transparent 65%);pointer-events:none}
.rolecard:hover{transform:translateY(-5px);border-color:#ff2d3f66;box-shadow:0 18px 50px -18px rgba(255,30,50,.45)}.rolecard:hover::before{opacity:1}
.rolecard .rc-n{position:absolute;right:24px;top:22px;font:400 1rem Anton,sans-serif;letter-spacing:.14em;color:#ffffff30}
.rolecard .rc-ico{width:96px;height:96px;display:grid;place-items:center;margin:0 0 20px;border-radius:24px;color:#ff4d5e;background:radial-gradient(circle at 30% 20%,#2b1317,#14070a 70%);border:1px solid #ff2d3f55;box-shadow:inset 0 0 24px rgba(255,40,60,.18),0 0 32px -6px rgba(255,40,60,.55);font-size:0}
.rolecard .rc-ico svg{width:58px;height:58px;filter:drop-shadow(0 0 6px rgba(255,60,80,.7))}
.rolecard h3{font-size:1.7rem;letter-spacing:.01em;margin:0 0 6px}
.rolecard ul{list-style:none;padding:0;margin:14px 0 0;font-size:1.02rem;line-height:1.45}
.rolecard li{position:relative;padding:7px 0 7px 26px;border-top:1px solid #ffffff10;color:#d6d8dd}
.rolecard li:first-child{border-top:0}
.rolecard li::before{content:"";position:absolute;left:2px;top:15px;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#ff4d5e,#b3121f);box-shadow:0 0 10px rgba(255,60,80,.7);transform:rotate(45deg) scale(.8)}

/* Portada: humo, luces y movimiento */
@keyframes heroZoom{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.15) translate3d(-1.6%,-1%,0)}}
.hero-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-fx>i{position:absolute;display:block}
.sm{width:70%;height:60%;border-radius:50%;background:radial-gradient(closest-side,rgba(235,235,245,.20),rgba(235,235,245,.07) 55%,transparent 75%);filter:blur(34px);mix-blend-mode:screen;opacity:.0;animation:smoke 22s ease-in-out infinite}
.sm.s1{left:-18%;bottom:-16%}
.sm.s2{right:-22%;bottom:-20%;animation-duration:28s;animation-delay:-9s;width:80%}
.sm.s3{left:22%;top:8%;width:55%;height:42%;animation-duration:32s;animation-delay:-16s;background:radial-gradient(closest-side,rgba(255,200,170,.16),rgba(255,200,170,.05) 55%,transparent 75%)}
@keyframes smoke{0%{opacity:0;transform:translate3d(-6%,4%,0) scale(.9)}25%{opacity:.9}60%{opacity:.7;transform:translate3d(8%,-6%,0) scale(1.15)}100%{opacity:0;transform:translate3d(14%,-12%,0) scale(1.3)}}
.bm{top:-8%;width:26%;height:120%;transform-origin:50% 0;background:linear-gradient(180deg,rgba(255,236,200,.55),rgba(255,236,200,.12) 45%,transparent 80%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);filter:blur(7px);mix-blend-mode:screen;opacity:.0;animation:beam 9s ease-in-out infinite}
.bm.b1{left:8%;animation-delay:0s}
.bm.b2{left:36%;animation-delay:-3s;background:linear-gradient(180deg,rgba(255,70,90,.6),rgba(255,70,90,.12) 45%,transparent 80%)}
.bm.b3{left:62%;animation-delay:-6s}
.bm.b4{left:84%;animation-delay:-1.5s;background:linear-gradient(180deg,rgba(255,70,90,.55),rgba(255,70,90,.1) 45%,transparent 80%)}
@keyframes beam{0%{transform:rotate(-16deg);opacity:.0}15%{opacity:.5}50%{transform:rotate(14deg);opacity:.7}85%{opacity:.4}100%{transform:rotate(-16deg);opacity:.0}}
.gl{inset:0;background:radial-gradient(520px 260px at 50% 18%,rgba(255,170,90,.22),transparent 70%),radial-gradient(420px 220px at 85% 8%,rgba(255,40,60,.22),transparent 70%);mix-blend-mode:screen;animation:glow 5s ease-in-out infinite alternate}
@keyframes glow{from{opacity:.35}to{opacity:1}}
.hero-in{z-index:2}.hero .vf{z-index:3}
.hero-in>*{animation:heroUp .9s cubic-bezier(.2,.7,.2,1) both}
.hero-in>*:nth-child(2){animation-delay:.08s}.hero-in>*:nth-child(3){animation-delay:.18s}.hero-in>*:nth-child(4){animation-delay:.3s}.hero-in>*:nth-child(5){animation-delay:.42s}
@keyframes heroUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(max-width:600px){.bm{width:40%}.bm.b4{display:none}}
@media(prefers-reduced-motion:reduce){.hero-bg,.hero-fx>i,.hero-in>*{animation:none!important}.sm,.bm{opacity:.25}}
/* Quién está detrás */
.who{background:linear-gradient(180deg,transparent,#0c0d10 30%,#0c0d10 70%,transparent)}
.who-in{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:56px;align-items:center}
.who-ph{position:relative;max-width:420px;justify-self:center}
.who-ph img{position:relative;display:block;width:100%;height:auto;border-radius:30px;border:1px solid #ffffff22;box-shadow:0 30px 80px -30px rgba(0,0,0,.9)}
.who-ring{position:absolute;inset:-14px;border-radius:40px;background:conic-gradient(from 0deg,#ff2d4a,#2f6bff,#d02cff,#ff2d4a);filter:blur(26px);opacity:.55;animation:whoSpin 10s linear infinite}
@keyframes whoSpin{to{transform:rotate(360deg)}}
.who-tx h2{font-size:clamp(2.2rem,5vw,3.6rem);margin:6px 0 4px}.who-role{color:var(--red);font:700 1rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px}
@media(max-width:800px){.who-in{grid-template-columns:1fr;gap:34px;text-align:left}.who-ph{max-width:320px}}
@media(prefers-reduced-motion:reduce){.who-ring{animation:none}}
/* Admin: mi perfil */
.admme{display:flex;align-items:center;gap:12px;margin:0 0 14px}.admme img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid #ff2d4a88;box-shadow:0 0 18px -4px #ff2d4a}.admme span{display:flex;flex-direction:column;line-height:1.2}.admme small{color:var(--muted)}
.ownercard .own-row{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}.own-ph{width:132px;height:148px;object-fit:cover;object-position:50% 20%;border-radius:20px;border:1px solid #ffffff25}.own-f{flex:1;min-width:240px}
/* App y notificaciones */
.appstrip{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:14px 18px;border-radius:16px;border:1px solid #ff2d4a55;background:linear-gradient(90deg,#2a0a10,#14151a);text-decoration:none;color:inherit}
.appstrip b{display:block;font-size:1.05rem}.appstrip small{display:block;color:#aab;font-size:.9rem}.appstrip-i{font-size:1.8rem}.appstrip-go{margin-left:auto;color:#ff5a6a;font-weight:700;white-space:nowrap}
.app-hero{display:flex;gap:20px;align-items:center;padding:22px}.app-ico img{display:block;border-radius:20px;box-shadow:0 10px 30px -8px #E3061388}
.app-steps{display:grid;gap:16px;margin-top:16px}.app-step{display:flex;gap:16px;align-items:flex-start}
.app-n{flex:none;width:38px;height:38px;border-radius:50%;background:#E30613;color:#fff;display:grid;place-items:center;font-weight:800}
.app-b{flex:1;min-width:0}.app-b h3{margin:0 0 6px}.app-state{margin:0 0 10px;font-size:1.02rem}.app-state.ok{color:#43d17a}.app-state.warn{color:#ffb454}
.app-how ol{margin:0 0 12px;padding-left:20px;line-height:1.6}.app-how li{margin:4px 0}.kbd{display:inline-block;padding:0 7px;border:1px solid #ffffff44;border-radius:6px;font-size:.9em}
.app-msg{margin:12px 0 0;font-weight:600}.app-msg.ok{color:#43d17a}.app-msg.bad{color:#ff6b78}
.app-b .btn{margin:0 8px 8px 0}.app-list{margin:8px 0 0;padding-left:20px;line-height:1.7}
@media(max-width:600px){.app-hero{flex-direction:column;align-items:flex-start}.appstrip{flex-wrap:wrap}.appstrip-go{margin-left:0}}
[hidden]{display:none!important}
/* Móvil: la página solo se desplaza en vertical (nada se sale por los lados, tampoco en Safari/iOS) */
html{overflow-x:hidden;max-width:100%;overscroll-behavior-x:none}
body{max-width:100%;overscroll-behavior-x:none;position:relative}
main,.hero,.ticker,.who,.sec,.foot{overflow-x:clip}
.hero,.ticker,.hero-fx,.who{contain:paint}
.hero{isolation:isolate}
@media(max-width:820px){
  .bm{animation-name:beamM}
  @keyframes beamM{0%{transform:rotate(-7deg);opacity:0}15%{opacity:.5}50%{transform:rotate(7deg);opacity:.7}85%{opacity:.4}100%{transform:rotate(-7deg);opacity:0}}
  .sm.s1{left:-10%}.sm.s2{right:-10%}.who-ring{inset:-8px;filter:blur(18px)}
  img,video,iframe,table,pre{max-width:100%}
}
/* Menú admin: «Más» agrupa RGPD, Usuarios, Seguridad, Ajustes y App */
.admmore{position:relative}.admmore summary{list-style:none;cursor:pointer;padding:9px 16px;border-radius:999px;border:1px solid var(--line);font-weight:600;font-size:.9rem;user-select:none}
.admmore summary::-webkit-details-marker{display:none}.admmore summary::after{content:" ▾";opacity:.7}.admmore[open] summary::after{content:" ▴"}
.admmore summary:hover,.admmore summary.on,.admmore[open] summary{background:var(--red);border-color:var(--red)}
.admmore-p{position:absolute;z-index:30;top:calc(100% + 8px);left:0;min-width:200px;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:18px;background:#121316;border:1px solid #ffffff22;box-shadow:0 18px 40px -12px #000}
.admmore-p a{border-radius:12px!important;border-color:transparent!important;background:#ffffff0d}.admmore-p a.on,.admmore-p a:hover{background:var(--red)!important}
@media(max-width:600px){.admmore{flex-basis:100%}.admmore summary{display:inline-block}.admmore-p{position:static;margin-top:8px}}
/* Menú admin en mayúsculas y negrita */
.admbar a,.admmore summary{text-transform:uppercase;font-weight:800;letter-spacing:.04em;font-size:.82rem}
.mapsec{margin:34px 0 8px;scroll-margin-top:80px}.mapsec-h{font-size:clamp(1.6rem,4vw,2.2rem);margin:0 0 10px}
/* Perfiles: 2 filas en escritorio (4 + 3 centradas) */
@media(min-width:1100px){.rolegrid{grid-template-columns:repeat(8,1fr)}.rolegrid>*{grid-column:span 2}.rolegrid>*:nth-child(5){grid-column:2/span 2}.rolecard{padding:26px 22px 24px}.rolecard h3{font-size:1.5rem}}
/* iPhone: nada se sale de la pantalla (v2.9.5) */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.grid>*,.pr-list>*,.ag-list>*,.card,.fcard,.ag-card{min-width:0}
.pr-list{grid-template-columns:minmax(0,1fr)}
.pr-who b,.pr-who small,.ag-who b,.ag-who small,.listrow span,.card h3{overflow-wrap:anywhere}
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}
  input,select,textarea{font-size:16px!important}
  .tscroll{max-width:100%}
  .bulkbar,.ag .bulkbar{border-radius:20px;padding:14px;top:66px;display:none}.bulkbar.on,.ag .bulkbar.on{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .bulkbar b,.ag .bulkbar b{grid-column:1/-1;margin:0}.bulkbar .btn,.ag .bulkbar .btn{width:100%;justify-content:center;text-align:center;padding-inline:10px;font-size:.8rem;white-space:normal}
  .pr{grid-template-columns:22px 38px minmax(0,1fr)!important;grid-template-areas:"chk av who" ". . loc" ". . sit" ". . roles" ". . st" ". . act"!important;gap:6px 10px;padding:14px 12px;border-radius:16px}
  .pr-h{display:none}
  .pr>:nth-child(1){grid-area:chk}.pr>:nth-child(2){grid-area:av}.pr>.pr-who{grid-area:who}.pr>.pr-loc{grid-area:loc}.pr>.pr-sit{grid-area:sit}.pr>.pr-roles{grid-area:roles}.pr>.pr-st{grid-area:st;flex-direction:row;align-items:center;gap:10px}.pr>.pr-act{grid-area:act;justify-content:flex-start;gap:8px}
  .pr-loc{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
}
@media(max-width:600px){.admbar{gap:6px;margin:14px 0}.admbar a,.admmore summary{padding:8px 12px;font-size:.74rem}.admmore{flex-basis:auto}.admmore[open]{flex-basis:100%}.admmore[open] summary{display:inline-block}}
@media(max-width:600px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.g4>.card{padding:16px}.g4 .num{font-size:2.4rem}#map{height:56vh;min-height:320px}}

/* v2.9.6 · auditoría móvil */
html{-webkit-tap-highlight-color:transparent}
a,button,summary,label,.btn,input[type=checkbox]{touch-action:manipulation}
@supports(padding:max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.mobile-cta{padding-bottom:max(12px,env(safe-area-inset-bottom))}}
.ag-stat span,.ag-who,.ag-who *,.ag-row,.flash,.card,.help{overflow-wrap:anywhere}
@media(max-width:700px){
  .admbar a,.admmore summary{font-size:.82rem;min-height:40px;display:inline-flex;align-items:center}
  .faq summary,.logo,.brand,.footer a,.foot a,label.chk,.chk{min-height:44px;display:flex;align-items:center}
  .tscroll table.t a,.pr-name a,.listrow a{display:inline-block;padding:8px 0}
  .leaflet-bar a{width:40px!important;height:40px!important;line-height:40px!important}
  .ag-stats{grid-template-columns:1fr!important}
  .ag-stat{flex-direction:row;align-items:center;gap:12px}
  .rep-row{grid-template-columns:1fr auto!important}
  .rep-row select,.rep-row input:nth-child(2){grid-column:1/-1}
  .fcard,.fcard2{padding:16px 12px}
  fieldset{padding:12px 10px}
  /* tablas -> tarjetas */
  .tscroll.stack{border:0;background:none;overflow:visible}
  .tscroll.stack table.t,.tscroll.stack table.t tbody{display:block;width:100%}
  .tscroll.stack table.t thead{display:none}
  .tscroll.stack table.t tr{display:block;margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:8px 12px}
  .tscroll.stack table.t td{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border:0;text-align:right;overflow-wrap:anywhere}
  .tscroll.stack table.t td::before{content:attr(data-label);font-weight:700;color:var(--muted);text-align:left;flex:0 0 38%}
  .tscroll.stack table.t td:not([data-label])::before{display:none}
}
@media(max-width:700px){.ag-stat span{font-size:.78rem!important}.pr a,.pr b a,.pr-top a,.cand a,.t a,.chip a,.row-actions a,.checks label,.pr label{display:inline-flex;align-items:center;min-height:40px}.rep-row .btn,.rep-row button{min-width:44px;min-height:44px}}
@media(max-width:700px){.tscroll.stack table.t td:first-child{display:block;text-align:left;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px}.tscroll.stack table.t td:first-child::before{display:none}.tscroll.stack table.t td a{word-break:normal;overflow-wrap:anywhere}.tscroll.stack .chip,.tscroll.stack .pill{white-space:nowrap}.tscroll.stack table.t td:first-child input{margin-right:8px}}
@media(max-width:700px){.tscroll.stack table.t td:first-child{display:block;border:0;margin:0;padding:4px 0}.tscroll.stack table.t td:first-child:has(+td:not([data-label])){}.tscroll.stack table.t td:not([data-label]){display:block;text-align:left}.tscroll.stack table.t td[data-label="Profesional"],.tscroll.stack table.t td[data-label="Candidato"]{display:block;text-align:left;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px}.tscroll.stack table.t td[data-label="Profesional"]::before,.tscroll.stack table.t td[data-label="Candidato"]::before{display:none}}
/* v2.9.6 · tarjetas de candidatos: columna ancha y casilla arriba a la derecha */
@media(max-width:700px){
  .pr{position:relative;grid-template-columns:44px minmax(0,1fr)!important;grid-template-areas:"av who" "loc loc" "sit sit" "roles roles" "st st" "act act"!important;gap:8px 12px!important;padding:16px 14px!important}
  .pr>:nth-child(1){position:absolute;top:6px;right:6px;grid-area:unset;width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:0;z-index:2}
  .pr>:nth-child(1) input{width:24px;height:24px}
  .pr-who{padding-right:44px}
  .pr>.pr-act{justify-content:flex-start;gap:10px}
}
@media(max-width:700px){.pr-who small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}}

/* v2.9.7 · botonera del mapa rediseñada */
.mctl{background:linear-gradient(180deg,#141517,#0f1012);border:1px solid #26282d;border-radius:24px;padding:18px;margin:0 0 20px;display:grid;gap:16px;box-shadow:0 18px 40px -24px #000}
.mctl-lab{display:block;font:800 .68rem Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#7d838e;margin:0 0 8px}
.mtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.mtiles button{appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:14px 8px 12px;min-height:92px;text-align:center;background:linear-gradient(180deg,#1a1c1f,#141517);border:1px solid #2b2e34;border-radius:18px;color:#cfd3da;font:700 .8rem/1.2 Inter,sans-serif;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s}
.mtiles button .ic{font-style:normal;display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:#0c0d0e;border:1px solid #2b2e34;font-size:1.3rem;transition:background .15s,border-color .15s}
.mtiles button:hover{transform:translateY(-2px);border-color:#4a4e57;color:#fff}
.mtiles button.on{background:linear-gradient(160deg,#e5232f,#9c0f19);border-color:#ff5b64;color:#fff;box-shadow:0 10px 26px -10px rgba(229,35,47,.75),inset 0 1px 0 rgba(255,255,255,.25)}
.mtiles button.on .ic{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35)}
.mctl-foot{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px}
.mctl-grp{min-width:0}
.seg{display:inline-flex;background:#0a0a0b;border:1px solid #2b2e34;border-radius:999px;padding:4px;gap:2px}
.seg button{appearance:none;background:transparent;border:0;color:#b6bbc4;font:700 .85rem Inter,sans-serif;padding:9px 18px;border-radius:999px;cursor:pointer;min-height:40px;transition:background .15s,color .15s}
.seg button:hover{color:#fff}.seg button.on{background:#fff;color:#111;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.msw{appearance:none;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:6px 16px 6px 8px;background:#0a0a0b;border:1px solid #2b2e34;border-radius:999px;color:#cfd3da;font:700 .85rem Inter,sans-serif;cursor:pointer;transition:border-color .15s}
.msw i{position:relative;flex:none;width:38px;height:22px;border-radius:999px;background:#2b2e34;transition:background .2s}
.msw i::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}
.msw:hover{border-color:#4a4e57}.msw.on{border-color:#e5232f;color:#fff}.msw.on i{background:#e5232f}.msw.on i::after{transform:translateX(16px)}
.mtotal{margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;background:rgba(229,35,47,.12);border:1px solid rgba(229,35,47,.4);color:#ffd9dc;font:800 .85rem Inter,sans-serif}
.mtotal::before{content:"";width:8px;height:8px;border-radius:50%;background:#e5232f;box-shadow:0 0 0 4px rgba(229,35,47,.25)}
@media(max-width:700px){
 .mctl{padding:14px 12px;border-radius:20px}
 .mtiles{display:flex;overflow-x:auto;gap:8px;margin-inline:-12px;padding:2px 12px 10px;scroll-snap-type:x proximity;scrollbar-width:none}
 .mtiles::-webkit-scrollbar{display:none}
 .mtiles button{flex:0 0 96px;scroll-snap-align:start}
 .mctl-foot{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .mctl-grp{grid-column:1/-1}.seg{display:flex;width:100%}.seg button{flex:1;padding:9px 6px}
 .msw{width:100%;justify-content:flex-start;font-size:.8rem;padding-right:10px}
 .mtotal{grid-column:1/-1;margin:0;justify-content:center}
}
@media(max-width:700px){.mctl-foot{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mctl-grp,.seg{min-width:0;max-width:100%}.seg button{min-width:0!important;width:auto;flex:1 1 0;padding:9px 4px;font-size:.8rem;white-space:nowrap}.msw{min-width:0}.msw span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.mctl{grid-template-columns:minmax(0,1fr)}.mctl>*{min-width:0}

/* v2.9.7 · formulario Únete / Mi perfil renovado */
.form{gap:18px}
.prog{position:sticky;top:64px;z-index:20;background:rgba(14,14,16,.92);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:20px;padding:12px 14px 10px;box-shadow:0 14px 30px -18px #000}
.prog-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}.prog-top b{color:#fff;font:400 1.15rem Anton,sans-serif;letter-spacing:.03em}
.prog-bar{flex:1 1 100%;height:6px;border-radius:99px;background:#26282d;overflow:hidden;margin-top:4px}.prog-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#e5232f,#ff7a59);transition:width .35s}
.prog-steps{display:flex;gap:6px;margin-top:10px;overflow-x:auto;scrollbar-width:none}.prog-steps::-webkit-scrollbar{display:none}
.prog-steps a{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:54px;padding:6px 6px;border-radius:14px;text-decoration:none;color:#9aa0aa;font:700 .66rem Inter,sans-serif;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;position:relative}
.prog-steps a i{font-style:normal;font-size:1.15rem;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#1b1d21}
.prog-steps a.on{background:#1b1d21;border-color:#34373d;color:#fff}.prog-steps a.done i{background:#10331f}.prog-steps a.done::after{content:"✓";position:absolute;top:2px;right:8px;font-size:.7rem;color:#5ee08e;font-weight:900}
.fcard{border-radius:24px;padding:22px;scroll-margin-top:170px;background:linear-gradient(180deg,#17181b,#121315);border-color:#26282d}
.fcard>h3,.fh h3{display:flex;align-items:center;gap:14px;margin:0 0 .9em}
.fh h3{margin:0}.fcard .n{width:48px!important;height:48px!important;border-radius:16px!important;background:linear-gradient(145deg,#e5232f,#9c0f19)!important;font:400 1.5rem/1 Inter,sans-serif!important;flex:none;box-shadow:0 10px 22px -10px rgba(229,35,47,.7)}
.ht{display:flex;flex-direction:column;line-height:1.15}.ht small{font:600 .72rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#7d838e;margin-top:3px}
.fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px}.fold>summary::-webkit-details-marker{display:none}
.fold .chev{font-size:1.6rem;color:#9aa0aa;transition:transform .2s}.fold[open] .chev{transform:rotate(180deg)}.fold[open]>summary{margin-bottom:16px}
.inw{position:relative;display:block}.inw>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-style:normal;font-size:1.05rem;pointer-events:none;z-index:1}
.inw input,.inw select{padding-left:46px!important;width:100%}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=number],.form input[type=url],.form select,.form textarea{border-radius:14px;min-height:50px;background:#0c0d0f;border:1.5px solid #2b2e34;transition:border-color .15s,box-shadow .15s}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:#e5232f;box-shadow:0 0 0 4px rgba(229,35,47,.18)}
.check input,.radio input{appearance:none;-webkit-appearance:none;width:24px;height:24px;border-radius:8px;border:2px solid #4a4e57;background:#0c0d0f;display:grid;place-content:center;flex:none;margin-top:0;transition:.15s}
.radio input{border-radius:50%}.check input::after{content:"✓";color:#fff;font:900 .9rem/1 Inter;transform:scale(0);transition:transform .15s}.radio input::after{content:"";width:10px;height:10px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .15s}
.check input:checked,.radio input:checked{background:#e5232f;border-color:#e5232f}.check input:checked::after,.radio input:checked::after{transform:scale(1)}
.check,.radio{align-items:center;min-height:52px;border-radius:16px;padding:10px 14px}
.radios.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.radios.cards .radio{align-items:flex-start;padding:14px}.radios.cards .radio>span{display:flex;flex-direction:column;gap:4px}.radios.cards .ri{font-style:normal;font-size:1.6rem;line-height:1}.radios.cards .radio small{display:block;font-size:.78rem}
.radios.cards .radio:has(input:checked){background:linear-gradient(160deg,rgba(229,35,47,.22),rgba(229,35,47,.06));box-shadow:0 8px 22px -14px #e5232f}
.rolegroup.rg{border:1px solid #2b2e34;border-radius:18px;background:#0f1012;padding:0;margin:0 0 10px}.rg>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:56px}.rg>summary::-webkit-details-marker{display:none}
.rg .rgi{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#1b1d21;font-size:1.25rem}.rg>summary b{flex:1;font-size:1rem}
.rg .cnt{font-style:normal;min-width:26px;height:26px;padding:0 8px;border-radius:99px;background:#e5232f;color:#fff;font:800 .78rem/26px Inter;text-align:center}.rg .cnt:empty{display:none}
.rg>summary::after{content:"⌄";color:#9aa0aa;font-size:1.3rem;transition:transform .2s}.rg[open]>summary::after{transform:rotate(180deg)}.rg[open]{border-color:#3a3d44}.rg .checks{padding:0 12px 12px}
.subbar{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:rgba(12,12,14,.92);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:20px;box-shadow:0 -14px 30px -18px #000}
.subbar .btn-send{min-width:240px;font-size:1rem;padding:15px 28px}.subbar .help{margin:0}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.hero-chips span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:99px;background:#17181b;border:1px solid #2b2e34;font:700 .82rem Inter,sans-serif;color:#dfe3e8}
input[type=file]{border-radius:16px;padding:16px;border-width:2px}
@media(max-width:700px){
 .prog{top:56px;padding:10px 10px 8px;border-radius:16px}.prog-steps a{min-width:50px;font-size:.6rem}
 .fcard{padding:16px 14px;border-radius:20px;scroll-margin-top:150px}.fcard .n{width:42px!important;height:42px!important}
 .radios.cards{grid-template-columns:1fr}.radios.cards .radio{align-items:center}.radios.cards .radio>span{flex-direction:row;align-items:center;gap:12px}
 .subbar{border-radius:16px}.subbar .btn-send{width:100%;min-width:0}.subbar .help{width:100%;text-align:center}
}
.form{grid-template-columns:minmax(0,1fr)}.form>*{min-width:0}.rolegroup.rg,.fcard,.checks>*{min-width:0}
.radios.cards .radio>span{display:grid!important;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:center}.radios.cards .ri{grid-row:1/span 2}.radios.cards .radio small{grid-column:2}
@media(max-width:700px){.checks.short{grid-template-columns:1fr 1fr}.checks.short .check{padding:8px 10px;font-size:.85rem}}
.prog-steps a{font-size:.7rem!important}.mctl-lab{font-size:.72rem}
/* v2.9.8 · panel admin más ancho y tabla de candidatos más grande */
body.adm{--wrap:1560px}
body.adm .wrap{max-width:min(1560px,calc(100vw - 32px))}
@media(min-width:1101px){
 body.adm .ag{padding:30px 34px}
 body.adm .pr{grid-template-columns:30px 56px minmax(260px,2.4fr) minmax(130px,1fr) minmax(240px,2fr) minmax(120px,.9fr) 120px 150px;gap:18px;padding:18px 20px}
 body.adm .pr-who b{font-size:1.15rem}body.adm .pr-who small{font-size:.95rem}
 body.adm .pr-loc b{font-size:1.05rem}body.adm .pr-loc small,body.adm .pr-st small{font-size:.9rem}
 body.adm .pr-sit{font-size:1rem}body.adm .pr-roles .chip,body.adm .pr-roles span{font-size:.88rem}
 body.adm .pr-h{font-size:.8rem}
 body.adm .ag-av,body.adm .pr .av{width:52px;height:52px}
 body.adm .ag-ib.ico{width:44px;height:44px}
}
.pr-sort{color:inherit;text-decoration:none;cursor:pointer;white-space:nowrap;border-radius:8px;padding:4px 0}.pr-sort:hover,.pr-sort.on{color:#fff}.pr-sort.on{text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--red)}
.pr-sortbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;font-size:.85rem;color:var(--ag-mut)}
.pr-sortbar a{padding:8px 14px;border-radius:999px;border:1px solid var(--ag-line);color:#d8dce2;text-decoration:none;font-weight:700;min-height:38px;display:inline-flex;align-items:center}.pr-sortbar a.on{background:var(--red);border-color:var(--red);color:#fff}
@media(min-width:1101px){.pr-sortbar{display:none}}
.ag-av.has-ph{padding:0;overflow:hidden;border-color:#5a6370}.ag-av.has-ph img{width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:1101px){body.adm .ag-av{width:56px;height:56px}}
@media(max-width:700px){.pr .ag-av{width:52px;height:52px}.pr{grid-template-columns:52px minmax(0,1fr)!important}}
#map{isolation:isolate;-webkit-tap-highlight-color:transparent}.leaflet-container{touch-action:pan-x pan-y}

/* v2.9.13 · tarjetas de candidatos en móvil (estilo app de contactos) */
@media(max-width:700px){
  .pr-tabs{flex-wrap:nowrap;overflow-x:auto;gap:8px;margin-inline:-16px;padding:2px 16px 8px;scrollbar-width:none}.pr-tabs::-webkit-scrollbar{display:none}.pr-tab{flex:none}
  .pr-list{gap:14px}
  .pr:not(.pr-h){position:relative;grid-template-columns:56px minmax(0,1fr) auto!important;grid-template-areas:"av who who" "av loc sit" ". roles roles" "st st act"!important;gap:6px 14px!important;padding:16px 14px 14px!important;border-radius:24px!important;background:linear-gradient(180deg,#1d2025,#16181c)!important;box-shadow:0 14px 30px -20px #000,inset 0 1px 0 rgba(255,255,255,.04);align-items:start!important}
  .pr>.ag-av{grid-area:av!important;width:56px!important;height:56px!important;font-size:1.15rem;align-self:start}
  .pr>.pr-who{grid-area:who!important;padding-right:46px!important;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
  .pr>.pr-who>a{flex:0 0 100%}.pr>.pr-who b{font-size:1.18rem!important;font-weight:800;line-height:1.2}
  .pr>.pr-who .chip{margin:0}
  .pr>.pr-who small{flex:0 0 100%!important;display:flex;align-items:center;gap:10px;color:#e4e7ec!important;font-size:.95rem!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;line-height:1.35;min-height:28px}
  .pr>.pr-who small::before{content:"";flex:none;width:18px;height:18px;background:#9aa4b2;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
  .pr>.pr-who small:nth-of-type(1){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E")}
  .pr>.pr-who small:nth-of-type(2){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E")}
  .pr>.pr-loc{grid-area:loc!important;flex-direction:row!important;align-items:center!important;gap:8px!important;flex-wrap:wrap}
  .pr>.pr-loc b{font-size:1rem!important;display:flex;align-items:center;gap:10px}
  .pr>.pr-loc b::before{content:"";width:18px;height:18px;background:#9aa4b2;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
  .pr>.pr-loc small{font-size:.9rem!important}
  .pr>.pr-sit{grid-area:sit!important;font-size:.8rem!important;color:#9aa4b2!important;text-align:right;align-self:center}
  .pr>.pr-roles{grid-area:roles!important;display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .pr>.pr-st{grid-area:st!important;flex-direction:row!important;align-items:center!important;gap:10px!important;align-self:center}
  .pr>.pr-act{grid-area:act!important;justify-content:flex-end!important;gap:10px!important;margin-top:6px}
  .pr .ag-ib.ico{width:46px!important;height:46px!important;border-radius:50%}
  .pr .ag-ib.ico.wa{background:#12a150;border-color:#12a150;color:#fff}
  .pr>.ag-check.ag-only{position:absolute;top:8px;right:8px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;z-index:2}
}
.pr-top,.pr-ct{display:contents}
@media(max-width:700px){
  .pr>.pr-who{display:contents!important}
  .pr-top{display:flex!important;grid-area:top;flex-wrap:wrap;align-items:center;gap:4px 8px;padding-right:46px;min-height:56px;align-content:center}
  .pr-top>a{flex:0 0 100%}.pr-top b{font-size:1.2rem;font-weight:800;line-height:1.2}
  .pr-ct{display:grid!important;grid-area:ct;gap:2px;margin-top:4px}
  .pr-ct small{display:flex!important;align-items:center;gap:12px;color:#e4e7ec!important;font-size:.97rem!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;line-height:1.35;min-height:30px}
  .pr-ct small::before{content:"";flex:none;width:18px;height:18px;background:#9aa4b2;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
  .pr-ct small:nth-of-type(1){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E")}
  .pr-ct small:nth-of-type(2){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E")}
  .pr:not(.pr-h){grid-template-columns:56px minmax(0,1fr) auto!important;grid-template-areas:"av top top" "ct ct ct" "loc loc sit" "roles roles roles" "st st act"!important}
  .pr>.pr-loc{align-items:center!important}.pr>.pr-loc small{margin-left:0}
  .pr>.pr-loc b{font-weight:700}
  .pr>.pr-sit{align-self:center}
}
@media(max-width:700px){.pr-roles{flex-direction:row!important}.pr-roles .chip,.pr-roles>*{white-space:nowrap;flex:0 0 auto}.pr-st .chip,.pr-st>*{white-space:nowrap}.pr-st small{white-space:nowrap}}
@media(max-width:700px){
  .pr:not(.pr-h){grid-template-columns:56px minmax(0,1fr) auto!important;grid-template-areas:"av top top" "ct ct ct" "loc loc loc" "roles roles roles" "st st sit" "act act act"!important}
  .pr>.pr-loc{flex-wrap:nowrap!important;align-items:center!important;gap:10px!important}.pr>.pr-loc b{flex:0 1 auto;min-width:0}.pr>.pr-loc small{white-space:nowrap}
  .pr>.pr-sit{white-space:nowrap;font-size:.85rem!important}
  .pr>.pr-act{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px!important;margin-top:8px;justify-content:stretch!important}
  .pr .ag-ib.ico{width:100%!important;height:48px!important;border-radius:999px!important;justify-content:center}
  .pr-top{padding-right:50px}
}
@media(max-width:700px){
  body.adm .wrap{padding-left:10px;padding-right:10px}
  body.adm .ag{padding:12px 10px;border-radius:22px}
  body.adm .page-h .wrap{padding-left:16px;padding-right:16px}
  .pr:not(.pr-h){padding:14px 12px 12px!important}
  .pr>.pr-st small{margin-left:2px}
}
.pr-top>a,.pr-top>a:hover{text-decoration:none}.pr-top>a b{text-decoration:none}

/* ===== v2.9.14 · panel del mapa grande, copias y estilo más amable ===== */
:root{--r:20px;--line:#2e2e2e;--soft:0 10px 30px -14px rgba(0,0,0,.8)}
body{font-size:16.5px}
.card,.ag-card,.fcard{border-radius:20px;background:linear-gradient(180deg,#1a1a1a,#141414);box-shadow:var(--soft)}
.card:hover{border-color:#3a3a3a}
.btn{box-shadow:0 8px 22px -12px rgba(227,6,19,.9)}.btn-ghost{box-shadow:none;border-color:#4a4a4a}
.btn-sm{padding:10px 18px;font-size:.82rem}
.chip{padding:4px 12px;font-size:.82rem}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=password],select,textarea{border-radius:14px;border-color:#3a3a3a}
.admbar a,.admmore summary{padding:10px 18px;font-size:.84rem}
.page-h{background:radial-gradient(900px 260px at 20% -40%,#2a0a0d,transparent),linear-gradient(180deg,#140607,var(--bg))}
.mapsec .muted{max-width:70ch}
.mapwrap{border-radius:24px;box-shadow:var(--soft)}
@media(min-width:1101px){
  .mapwrap{grid-template-columns:minmax(0,1fr) minmax(500px,42%);min-height:780px}
  #map{min-height:780px}.mapside{max-height:780px}
}
@media(min-width:1500px){.mapwrap{grid-template-columns:minmax(0,1fr) 680px}}
.mapside{padding:22px 22px 28px;background:#121212;scrollbar-width:thin;scrollbar-color:#444 transparent}
.ps-h{font-size:2.3rem;margin:.1em 0 .4em}
.ps-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}
.ps-stats>div{background:#1b1b1b;border:1px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center}
.ps-stats b{display:block;font:400 1.9rem/1 Anton;color:#fff}.ps-stats span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.ps-stats .ok b{color:var(--ok)}.ps-stats .warn b{color:var(--warn)}
.ps-groups{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.ps-new{background:#1b1b1b;border:1px solid var(--line);border-radius:18px;padding:12px 14px;margin:0 0 14px}
.ps-new>label{display:block;font-weight:700;font-size:.88rem;margin-bottom:8px}
.ps-new-r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.ps-new-r .btn{white-space:nowrap}
.ps-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:0 0 12px}.ps-tools .check{margin:0}
.pcs{display:grid;gap:12px}
.pc{display:grid;grid-template-columns:auto 60px minmax(0,1fr);grid-template-areas:"chk av main" "act act act";gap:6px 14px;align-items:start;background:#1a1a1a;border:1.5px solid var(--line);border-radius:20px;padding:14px;transition:border-color .15s,background .15s}
.pc:hover{border-color:#444}.pc.is-sel{border-color:var(--red);background:#1e1315}
.pc-chk{grid-area:chk;display:grid;place-items:center;min-width:34px;min-height:60px;cursor:pointer}.pc-chk .cb{width:24px;height:24px}
.pc-av{grid-area:av;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#e30613,#7a0b12);color:#fff;font:400 1.35rem Anton;letter-spacing:.04em;text-decoration:none;overflow:hidden;border:2px solid #ffffff22}
.pc-av img{width:100%;height:100%;object-fit:cover}
.pc-main{grid-area:main;min-width:0}
.pc-top{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.pc-top .chip{margin:0}
.pc-n{font:800 1.2rem/1.2 Inter,sans-serif;text-decoration:none;color:#fff;overflow-wrap:anywhere}.pc-n:hover{color:#ff8d94}
.pc-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 10px;color:#c9c9c9;font-size:.9rem}
.pc-meta span{display:inline-flex;align-items:center;gap:6px}.pc-meta svg{width:16px;height:16px;color:var(--muted);flex:none}
.pc-roles,.ps-groups{--h:0}
.pc-roles{display:flex;flex-wrap:wrap;gap:7px}
.pc-r{display:inline-flex;align-items:center;gap:7px;padding:6px 13px 6px 9px;border-radius:999px;background:#ffffff0f;border:1px solid #ffffff22;font-weight:700;font-size:.92rem;line-height:1.2;color:#f1f1f1}
.pc-r i{font-style:normal;font-size:1.15rem;line-height:1}.pc-r b{color:var(--red2)}
.g-camara{background:#3a1216;border-color:#8a2530}.g-realizacion{background:#2a1a3d;border-color:#6a44a0}.g-drones{background:#10283a;border-color:#2f6a95}
.g-audiovisual{background:#2f2a10;border-color:#8a7a22}.g-filmmaker{background:#3a1f10;border-color:#95582f}.g-fotografia{background:#103a2b;border-color:#2f9570}.g-edicion{background:#3a1030;border-color:#95306f}
.pc-act{grid-area:act;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}
.pc-act a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:999px;text-decoration:none;font-weight:800;font-size:.9rem;border:1.5px solid #ffffff2a;background:#ffffff0d;color:#fff}
.pc-act a.c{background:var(--red);border-color:var(--red)}.pc-act a.w{background:#128c4a;border-color:#128c4a}.pc-act a:hover{filter:brightness(1.15)}
.pc-act a:only-child,.pc-act a:first-child:nth-last-child(2),.pc-act a:first-child:nth-last-child(2)~a{grid-column:auto}
.pc-act:has(a:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:520px){.pc{grid-template-columns:auto 52px minmax(0,1fr);padding:12px}.pc-av{width:52px;height:52px;font-size:1.15rem}.pc-act a span{font-size:.82rem}.ps-stats b{font-size:1.5rem}.ps-h{font-size:1.9rem}.pc-n{font-size:1.1rem}}
/* copias de seguridad */
.bk-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center}
.bk-ico{font-size:2.4rem;width:68px;height:68px;border-radius:20px;background:#1f1f1f;display:grid;place-items:center}
.bk-warn{display:flex;gap:12px;align-items:flex-start;background:rgba(245,165,36,.12);border:1.5px solid rgba(245,165,36,.5);color:#ffe0a3;border-radius:18px;padding:14px 16px;margin:0 0 16px;line-height:1.5}
.bk-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bk-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;background:#1a1a1a;border:1px solid var(--line);border-radius:18px}
.bk-i{font-size:1.6rem}.bk-w{display:flex;flex-direction:column;min-width:0}.bk-w small{overflow-wrap:anywhere}
.bk-a{display:flex;gap:8px;margin:0}.bk-set{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.bk-keep input{width:80px;display:inline-block;margin:0 6px;min-height:42px;padding:8px 10px}
.bk-how{margin:0 0 12px;padding-left:20px;line-height:1.8}
@media(max-width:700px){.bk-hero{grid-template-columns:auto minmax(0,1fr)}.bk-hero form{grid-column:1/-1}.bk-hero .btn{width:100%}.bk-row{grid-template-columns:auto minmax(0,1fr)}.bk-a{grid-column:1/-1}.bk-a .btn:first-child{flex:1}}
.pc-act svg{flex:none}
@media(max-width:620px){
  .mapside{padding:16px 12px 22px}
  .pc{grid-template-columns:auto 52px minmax(0,1fr);grid-template-areas:"chk av top" "meta meta meta" "roles roles roles" "act act act";gap:8px 12px;padding:12px}
  .pc-main{display:contents}.pc-top{grid-area:top;align-self:center}.pc-meta{grid-area:meta;margin:0}.pc-roles{grid-area:roles}
  .pc-chk{min-height:52px;min-width:28px}
  .pc-act a{min-height:48px}
}
@media(max-width:620px){.ps-new-r{grid-template-columns:minmax(0,1fr)}.ps-new-r .btn{width:100%}}
/* v2.9.14 · foto grande en la ficha */
.fhero-id{gap:26px;align-items:center}
.fav-l{display:block;flex:none;line-height:0;border-radius:32px;box-shadow:0 14px 40px -12px rgba(0,0,0,.9)}
.fav{width:240px;height:240px;border-radius:32px;border-width:4px;object-fit:cover}
.fav0{font-size:5.5rem}
.fquick{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.fq{min-width:0}
@media(max-width:820px){.fav{width:200px;height:200px}}
@media(max-width:620px){.fhero-id{flex-direction:column;text-align:center}.fav{width:min(78vw,280px);height:min(78vw,280px)}.fchips{justify-content:center;display:flex;flex-wrap:wrap;gap:6px}}
