/* Pulso · tema claro con degradados: fondos blancos, menta, cielo y lavanda muy suaves. Sin negros. Se carga después de app.css. */
@font-face{font-family:Sora;src:url(fonts/sora-latin-ext.woff2) format('woff2');font-weight:300 800;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Sora;src:url(fonts/sora-latin.woff2) format('woff2');font-weight:300 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#f5f4fc;--sf:#ffffff;--sf2:#faf9fe;--line:#e6e4f4;--line2:#d3d0ea;
  --ink:#1c1a3d;--ink2:#4a4768;--ink3:#7a7799;--ink4:#a9a7c0;
  --verde:#5b4bdb;--verde2:#7a6cf5;--verde-s:#ebe8fd;
  --rojo:#d9473a;--rojo-s:#fdeceb;--ambar:#c9820a;--ambar-s:#fff3d9;
  --azul:#1d6fd8;--teal:#5b4bdb;--cielo-s:#e6f0fd;--lav-s:#efeafc;
  --chip:#efedfa;--pista:#e9e7f5;--hm0:#f1effa;--hover:#f6f5fd;
  --g-marca:linear-gradient(135deg,#5b4bdb 0%,#7a5cf0 55%,#b043d6 100%);
  --sh:0 1px 2px rgba(28,26,61,.04),0 10px 28px -14px rgba(28,26,61,.16);--sh2:0 24px 60px -24px rgba(28,26,61,.35);
  --r:20px;--r2:14px;--riel:240px}

body{font-family:Sora,Outfit,system-ui,sans-serif;font-size:13.5px;letter-spacing:-.003em;color:var(--ink2);padding-left:var(--riel);
  background:
   radial-gradient(900px 520px at 92% -6%,rgba(108,92,231,.17),transparent 62%),
   radial-gradient(760px 480px at 40% -12%,rgba(42,127,214,.10),transparent 60%),
   radial-gradient(800px 560px at -6% 108%,rgba(140,110,255,.10),transparent 60%),
   linear-gradient(160deg,#f6fbf9 0%,#eef5fa 55%,#f6f3fc 100%);
  background-attachment:fixed}
svg text{font-family:Sora,Outfit,sans-serif}
h1,h2,h3,h4{letter-spacing:-.02em;color:var(--ink)}

/* ---------- menú lateral ---------- */
.top{position:fixed;left:0;top:0;bottom:0;width:var(--riel);z-index:40;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:6px;padding:20px 14px;overflow-y:auto;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(238,248,244,.92));backdrop-filter:blur(10px);border-right:1px solid var(--line);box-shadow:8px 0 30px -22px rgba(28,26,61,.3);color:var(--ink)}
.marca{padding:2px 8px 16px;border-bottom:1px solid var(--line);margin-bottom:8px}.marca img{height:54px;content:url(img/logo-claro.png)}
.marca b{font-size:15px;color:var(--ink)}.marca small{opacity:1;color:var(--ink3);font-size:10.5px;letter-spacing:.02em}
.top nav{flex-direction:column;gap:3px;flex-wrap:nowrap}
.top nav a{display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:13px;color:var(--ink2);font-weight:500;font-size:13.5px;transition:background .15s,color .15s,box-shadow .15s}
.top nav a svg.i{width:18px;height:18px;color:var(--ink3)}
.top nav a:hover{background:rgba(91,75,219,.08);color:var(--ink)}
.top nav a.on{background:var(--g-marca);color:#fff;box-shadow:0 10px 22px -12px rgba(91,75,219,.8)}
.top nav a.on svg.i{color:#fff}
.top nav a .bd{margin-left:auto;font-style:normal;background:var(--rojo);color:#fff;border-radius:20px;font-size:11px;font-weight:700;padding:1px 8px}
.der{margin:auto 0 0;flex-direction:column;align-items:stretch;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.camp{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 12px;color:var(--ink2);font-weight:500;text-align:left}
.camp:hover{border-color:var(--line2);background:var(--sf2)}.camp .n{position:static;background:var(--rojo);color:#fff;border-radius:20px;font-size:11px;padding:1px 8px;font-weight:700}
#campana{display:none}
.estado-con{display:flex;gap:6px;flex-wrap:wrap;padding:2px 4px 8px}.estado-con i{width:9px;height:9px;border-radius:50%;background:var(--verde2);box-shadow:0 0 0 3px rgba(122,108,245,.18)}.estado-con i.off{background:#cfcde3;box-shadow:none}.estado-con i.err{background:var(--rojo);box-shadow:0 0 0 3px rgba(217,71,58,.18)}

/* ---------- contenido ---------- */
main{max-width:1380px;padding:32px 36px 90px}
.cab h1{font-size:28px;font-weight:700;letter-spacing:-.03em}.cab p{color:var(--ink3)}
.card{background:var(--sf);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:20px 22px}
.kpi{padding:18px 20px 16px;background:linear-gradient(145deg,#fff 40%,#eefaf5 100%)}
.grid.g6>.kpi:nth-child(2),.grid.g4>.kpi:nth-child(2){background:linear-gradient(145deg,#fff 40%,#eaf3fd 100%)}
.grid.g6>.kpi:nth-child(3),.grid.g4>.kpi:nth-child(3){background:linear-gradient(145deg,#fff 40%,#f1ecfd 100%)}
.grid.g6>.kpi:nth-child(4),.grid.g4>.kpi:nth-child(4){background:linear-gradient(145deg,#fff 40%,#fff4df 100%)}
.kpi .l{color:var(--ink3);font-size:12px;font-weight:500}.kpi .v{font-size:32px;font-weight:700;letter-spacing:-.04em;color:var(--ink)}
.kpi .spark{width:84px;height:30px;top:18px;right:16px}
.chip{background:var(--chip);color:var(--ink2)}.chip.up{background:var(--verde-s);color:#3d30a8}.chip.down{background:var(--rojo-s);color:#b8392d}
.up{color:#3d30a8}.down{color:var(--rojo)}
.pill{background:var(--chip);color:var(--ink2)}.pill.v{background:var(--verde-s);color:#3d30a8}.pill.a{background:var(--cielo-s);color:#1a5cb0}.pill.r{background:var(--rojo-s);color:#b8392d}.pill.am{background:var(--ambar-s);color:#8a5a06}.pill.ia{background:var(--lav-s);color:#5a3fc4}
.btn{background:var(--g-marca);box-shadow:0 10px 22px -12px rgba(91,75,219,.85);color:#fff;border-radius:12px}
.btn.sec{background:#fff;color:var(--ink);border:1px solid var(--line2);box-shadow:none}.btn.sec:hover{border-color:var(--verde2);background:var(--verde-s)}
.btn.az{background:linear-gradient(135deg,#2a7fd6,#1d5fb8);box-shadow:0 10px 22px -12px rgba(29,111,216,.8)}.btn.ia{background:linear-gradient(135deg,#8a63f0,#3a7bf0)}.btn.txt{color:var(--verde);background:none;box-shadow:none}
.seg{background:#ebe9f7;border:0}.seg button{color:var(--ink3)}.seg button:hover{color:var(--ink)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(28,26,61,.16)}
.aviso{background:var(--ambar-s);border-color:#f0d9a0;color:#6e4c06}.aviso.err{background:var(--rojo-s);border-color:#f2c0ba;color:#8f2a1d}.aviso.ok{background:var(--verde-s);border-color:#b8e8d3;color:#126a4e}
.tabla th{color:var(--ink4);border-bottom:1px solid var(--line)}.tabla td{border-bottom:1px solid var(--line)}.tabla tbody tr:hover td{background:var(--hover)}
tr.propia td{background:var(--verde-s)}
.barra{background:var(--pista)}.barra i{background:linear-gradient(90deg,#6c5ce7,#2a7fd6)}.barra.am i{background:var(--ambar)}.barra.r i{background:var(--rojo)}.barra.az i{background:linear-gradient(90deg,#2a7fd6,#6aa8f0)}
.item{background:#fff;border-color:var(--line)}.item:hover{border-color:var(--line2);box-shadow:var(--sh)}
.alerta.info{border-left-color:var(--azul)}
.miniatura{background:var(--pista)}
.vacio{background:linear-gradient(145deg,#fafdfc,#f1f7f5);border-color:var(--line2);color:var(--ink3)}
.sk{background:linear-gradient(90deg,#ece9f8,#f6faf8,#ece9f8);background-size:200% 100%}
.tip{background:#fff;border:1px solid var(--line2);color:var(--ink2);box-shadow:var(--sh2)}.tip b{color:var(--ink)}
input[type=text],input[type=password],input[type=datetime-local],input[type=number],input[type=date],select,textarea{background:#fff;border-color:var(--line2);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--verde2);box-shadow:0 0 0 3px rgba(122,108,245,.2)}
.modal{background:rgba(28,26,61,.38)}.m-caja{background:#fff;border:1px solid var(--line)}.x{background:var(--chip);color:var(--ink2)}.x:hover{background:#dfeae6}
.cuenta{background:#fff}
.dia{background:#fbfdfc}.dia.hoy{background:#fff;border-color:var(--verde2);box-shadow:0 0 0 3px rgba(122,108,245,.18)}.dia.sobre{background:var(--verde-s)}.dia.hoy .nd{color:var(--verde)}
.ev.programado{background:#2a7fd6}.ev.listo{background:#5b4bdb}.ev.publicado{background:#2a9a58}.ev.idea{background:#9a98b4}.ev.borrador{background:#7d7a9b}
.est.programado{background:#2a7fd6}.est.listo{background:#5b4bdb}.est.publicado,.est.publicada{background:#2a9a58}.est.idea{background:#9a98b4}.est.borrador{background:#7d7a9b}
.hall{background:#fff}.burbuja.u{background:#2a7fd6}.burbuja.a{background:#fff}.sug button{background:#fff}.sug button:hover{background:var(--verde-s);border-color:var(--verde2)}
.tabsr a.on{color:var(--verde);border-bottom-color:var(--verde)}
.franja{margin:26px auto 0;max-width:1308px;width:calc(100% - 72px);background:linear-gradient(90deg,#fff6e0,#fff);border-color:#f0d9a0;color:#6e4c06}.franja b{color:#4a3304}
.toast{background:#fff;color:var(--ink);border:1px solid var(--line2);box-shadow:var(--sh2)}.toast.e{background:#fdeceb;color:#8f2a1d;border-color:#f2c0ba}
.pill{border:0}

/* ---------- filtros globales ---------- */
.filtros{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filtros select{width:auto;padding:7px 30px 7px 11px;border-radius:11px;font-size:12.5px}
.filtros input[type=date]{width:auto;padding:6px 9px;border-radius:10px;font-size:12.5px}
.filtros .vs{color:var(--ink3);font-size:12px}

/* ---------- centro de alertas ---------- */
.al-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.al-res button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 15px;cursor:pointer;color:var(--ink2);transition:border-color .15s,box-shadow .15s;box-shadow:var(--sh)}
.al-res button:hover{border-color:var(--line2)}.al-res button.on{border-color:var(--verde2);background:linear-gradient(145deg,#fff,#e4f7ef)}
.al-res b{display:block;font-size:26px;color:var(--ink);letter-spacing:-.03em;line-height:1.1}.al-res span{font-size:12px;color:var(--ink3)}.al-res .h{font-size:11px;margin-top:5px;display:flex;gap:6px}
.al{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;margin-bottom:8px;border-left:4px solid var(--ambar);box-shadow:var(--sh)}
.al.alta{border-left-color:var(--rojo)}.al.info{border-left-color:var(--azul)}.al.leida{opacity:.55}
.al .tx{flex:1;min-width:0;color:var(--ink);line-height:1.45}.al .meta{font-size:11.5px;color:var(--ink3);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* ---------- competencia: bloque visual ---------- */
.comp-top{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
@media(max-width:1100px){.comp-top{grid-template-columns:minmax(0,1fr)}}
.mapa{background:linear-gradient(150deg,#ffffff 30%,#e9f7f1 70%,#e8f1fd 100%)}
.perfiles{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 14px;margin:0 -2px 16px;scroll-snap-type:x proximity}
.perfil-c{flex:0 0 190px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--sh);text-align:center;position:relative;overflow:hidden}
.perfil-c::before{content:"";position:absolute;inset:0 0 auto 0;height:54px;background:var(--c1,linear-gradient(135deg,#d9d3ff,#c9defa))}
.perfil-c.yo::before{background:var(--g-marca)}
.perfil-c .av{position:relative;width:62px;height:62px;border-radius:50%;margin:6px auto 8px;border:3px solid #fff;box-shadow:0 6px 16px -6px rgba(28,26,61,.4);display:grid;place-items:center;font-weight:700;color:#fff;font-size:18px;background:var(--g-marca);overflow:hidden}
.perfil-c .av img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.perfil-c b{display:block;color:var(--ink);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.perfil-c .n{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.03em;margin-top:6px;font-variant-numeric:tabular-nums}
.perfil-c .s{font-size:11.5px;color:var(--ink3)}.perfil-c .m{display:flex;justify-content:space-between;margin-top:10px;font-size:11.5px;color:var(--ink3);border-top:1px solid var(--line);padding-top:8px}.perfil-c .m b{font-size:12.5px}
.perfil-c .rk{position:absolute;top:8px;right:10px;background:rgba(255,255,255,.9);border-radius:20px;font-size:11px;font-weight:700;padding:1px 8px;color:var(--ink2);z-index:2}
.podio{display:flex;flex-direction:column;gap:9px}
.podio .f{display:grid;grid-template-columns:26px 34px minmax(0,1fr) 54px;gap:10px;align-items:center}
.podio .pos{font-weight:700;color:var(--ink3);text-align:center}.podio .f.yo .pos{color:var(--verde)}
.podio .av{width:34px;height:34px;border-radius:50%;background:var(--g-marca);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;overflow:hidden;position:relative}.podio .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.podio .nom{font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podio .bar{height:8px;border-radius:6px;background:var(--pista);margin-top:4px;overflow:hidden}.podio .bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#6c5ce7,#2a7fd6)}
.podio .f.yo .bar i{background:linear-gradient(90deg,#5b4bdb,#6c5ce7)}.podio .v{text-align:right;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- login ---------- */
.login{background:#fff}.lg-form{background:linear-gradient(160deg,#fff,#eef7f4)}.lg-form h2{color:var(--ink)}.lg-s,.lg-p{color:var(--ink3)}.lg-form label{color:var(--ink2)}
.lg-in input{background:#fff;border-color:var(--line2);color:var(--ink)}.lg-in input:focus{border-color:var(--verde2);box-shadow:0 0 0 4px rgba(122,108,245,.18)}.lg-in button{color:var(--verde)}
.lg-b{background:var(--g-marca);box-shadow:0 12px 26px -14px rgba(91,75,219,.9)}.lg-b:hover{filter:brightness(1.05);background:var(--g-marca)}
.lg-marca{background:radial-gradient(700px 420px at 90% 0%,rgba(255,255,255,.28),transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(140,110,255,.35),transparent 60%),linear-gradient(135deg,#6c5ce7 0%,#7a5cf0 50%,#2a7fd6 100%)}
.lg-tx li:before{background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.25)}
.lg-marca .lg-logo{content:url(img/logo-blanco.png);height:64px}

/* ---------- móvil ---------- */
@media(max-width:980px){
  body{padding-left:0}
  .top{position:sticky;width:auto;bottom:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line);overflow:visible;box-shadow:0 8px 24px -18px rgba(28,26,61,.4)}
  .marca{border:0;padding:0;margin:0}.top nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;order:3;width:100%;padding-bottom:2px}.top nav a{padding:8px 11px;white-space:nowrap}
  .der{margin:0 0 0 auto;flex-direction:row;border:0;padding:0;align-items:center}.estado-con{display:none}
  main{padding:20px 14px 80px}.franja{width:calc(100% - 28px)}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* =====================================================================
   MODO NOCHE (opción): azul marino con rejilla de plano técnico
   ===================================================================== */
[data-theme="dark"]{
  --bg:#061a26;--sf:#0c2a3b;--sf2:#0a2231;--line:#16384d;--line2:#21506b;
  --ink:#f1effa;--ink2:#c3d6dc;--ink3:#88a4b1;--ink4:#628292;
  --verde:#a99dff;--verde2:#6ff0c2;--verde-s:rgba(169,157,255,.13);
  --rojo:#ff7062;--rojo-s:rgba(255,112,98,.13);--ambar:#ffb84a;--ambar-s:rgba(255,184,74,.13);
  --azul:#4aa8ff;--teal:#2ed3b7;--cielo-s:rgba(74,168,255,.14);--lav-s:rgba(140,110,255,.16);
  --chip:rgba(255,255,255,.07);--pista:rgba(255,255,255,.08);--hm0:rgba(255,255,255,.04);--hover:rgba(255,255,255,.035);
  --g-marca:linear-gradient(135deg,#12a782,#0c8167);
  --sh:inset 0 1px 0 rgba(255,255,255,.05),0 18px 36px -22px rgba(0,0,0,.7);--sh2:0 24px 60px -20px rgba(0,0,0,.8);color-scheme:dark}
[data-theme="dark"] body{background:
   radial-gradient(1100px 520px at 88% -8%,rgba(169,157,255,.10),transparent 62%),
   radial-gradient(800px 480px at -4% 104%,rgba(74,168,255,.09),transparent 60%),
   linear-gradient(rgba(120,190,215,.055) 1px,transparent 1px) 0 0/48px 48px,
   linear-gradient(90deg,rgba(120,190,215,.055) 1px,transparent 1px) 0 0/48px 48px,var(--bg);background-attachment:fixed}
[data-theme="dark"] .top{background:linear-gradient(180deg,#120f33,#14113a 60%,#1a1544);border-right:1px solid rgba(120,190,215,.14);box-shadow:none}
[data-theme="dark"] .marca{border-bottom-color:rgba(120,190,215,.14)}[data-theme="dark"] .marca img{height:36px;content:url(img/logo-blanco.png)}
[data-theme="dark"] .marca b{color:#fff}[data-theme="dark"] .marca small{color:rgba(214,235,240,.6)}
[data-theme="dark"] .top nav a{color:rgba(214,235,240,.7)}[data-theme="dark"] .top nav a svg.i{color:rgba(214,235,240,.7)}
[data-theme="dark"] .top nav a:hover{background:rgba(255,255,255,.06);color:#fff}
[data-theme="dark"] .top nav a.on{background:linear-gradient(90deg,rgba(169,157,255,.18),rgba(169,157,255,.04));box-shadow:inset 2px 0 0 #a99dff;color:#fff}
[data-theme="dark"] .top nav a.on svg.i{color:#a99dff}
[data-theme="dark"] .der{border-top-color:rgba(120,190,215,.14)}
[data-theme="dark"] .camp{background:rgba(255,255,255,.05);border-color:rgba(120,190,215,.14);color:rgba(214,235,240,.85)}[data-theme="dark"] .camp:hover{background:rgba(255,255,255,.1)}
[data-theme="dark"] .estado-con i{background:#a99dff;box-shadow:0 0 0 3px rgba(169,157,255,.18),0 0 10px rgba(169,157,255,.7)}[data-theme="dark"] .estado-con i.off{background:#4b6878;box-shadow:none}[data-theme="dark"] .estado-con i.err{background:#ff7062;box-shadow:0 0 0 3px rgba(255,112,98,.18),0 0 10px rgba(255,112,98,.7)}
[data-theme="dark"] .card{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),var(--sf)}
[data-theme="dark"] .kpi,[data-theme="dark"] .grid>.kpi:nth-child(n){background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),var(--sf)}
[data-theme="dark"] .kpi .v{color:var(--ink)}
[data-theme="dark"] .spark path:last-child{filter:drop-shadow(0 0 5px rgba(169,157,255,.55))}
[data-theme="dark"] .chip.up{color:var(--verde2)}[data-theme="dark"] .chip.down{color:var(--rojo)}[data-theme="dark"] .up{color:var(--verde2)}
[data-theme="dark"] .pill.v{color:var(--verde2)}[data-theme="dark"] .pill.a{color:var(--azul)}[data-theme="dark"] .pill.r{color:var(--rojo)}[data-theme="dark"] .pill.am{color:var(--ambar)}[data-theme="dark"] .pill.ia{color:#b3a1ff}
[data-theme="dark"] .btn.sec{background:rgba(255,255,255,.05);border-color:var(--line2);color:var(--ink)}[data-theme="dark"] .btn.sec:hover{background:rgba(169,157,255,.08);border-color:var(--verde)}
[data-theme="dark"] .btn.az{background:linear-gradient(135deg,#1c6fd0,#134f9e)}[data-theme="dark"] .btn.txt{color:var(--verde2)}
[data-theme="dark"] .seg{background:rgba(255,255,255,.06);border:1px solid var(--line)}
[data-theme="dark"] .seg button.on{background:rgba(169,157,255,.16);color:var(--verde2);box-shadow:inset 0 0 0 1px rgba(169,157,255,.35)}
[data-theme="dark"] .aviso{color:#ffd48a;border-color:rgba(255,184,74,.35)}[data-theme="dark"] .aviso.err{color:#ff9d92;border-color:rgba(255,112,98,.4)}[data-theme="dark"] .aviso.ok{color:var(--verde2);border-color:rgba(169,157,255,.35)}
[data-theme="dark"] .barra i{background:linear-gradient(90deg,#12a782,#4aa8ff);box-shadow:0 0 12px rgba(169,157,255,.35)}[data-theme="dark"] .barra.am i,[data-theme="dark"] .barra.r i{box-shadow:none}
[data-theme="dark"] .item,[data-theme="dark"] .hall,[data-theme="dark"] .cuenta,[data-theme="dark"] .burbuja.a{background:rgba(255,255,255,.03)}[data-theme="dark"] .item:hover{background:rgba(255,255,255,.05);box-shadow:none}
[data-theme="dark"] .vacio{background:rgba(255,255,255,.02)}
[data-theme="dark"] .sk{background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.09),rgba(255,255,255,.04));background-size:200% 100%}
[data-theme="dark"] .tip{background:#031017;color:#e8f4f1}[data-theme="dark"] .tip b{color:#fff}
[data-theme="dark"] input[type=text],[data-theme="dark"] input[type=password],[data-theme="dark"] input[type=datetime-local],[data-theme="dark"] input[type=number],[data-theme="dark"] input[type=date],[data-theme="dark"] select,[data-theme="dark"] textarea{background:rgba(255,255,255,.04);color:var(--ink)}
[data-theme="dark"] select option{background:#0c2a3b;color:#f1effa}
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus,[data-theme="dark"] textarea:focus{border-color:var(--verde);box-shadow:0 0 0 3px rgba(169,157,255,.2)}
[data-theme="dark"] .modal{background:rgba(2,10,16,.7)}[data-theme="dark"] .m-caja{background:var(--sf2);border-color:var(--line2)}[data-theme="dark"] .x:hover{background:rgba(255,255,255,.14)}
[data-theme="dark"] .dia{background:rgba(255,255,255,.025)}[data-theme="dark"] .dia.hoy{background:rgba(169,157,255,.07);border-color:var(--verde);box-shadow:0 0 0 3px rgba(169,157,255,.16)}[data-theme="dark"] .dia.hoy .nd{color:var(--verde2)}
[data-theme="dark"] .sug button{background:rgba(255,255,255,.04);color:var(--ink2)}
[data-theme="dark"] .tabsr a.on{color:var(--verde2);border-bottom-color:var(--verde)}
[data-theme="dark"] .franja{background:var(--ambar-s);border-color:rgba(255,184,74,.35);color:#ffd48a}[data-theme="dark"] .franja b{color:#ffe3ac}
[data-theme="dark"] .toast{background:#031017}[data-theme="dark"] .toast.e{background:#7a2a22;color:#fff;border-color:#7a2a22}
[data-theme="dark"] .al-res button,[data-theme="dark"] .al{background:rgba(255,255,255,.03);box-shadow:none}[data-theme="dark"] .al-res button.on{background:var(--verde-s);border-color:var(--verde)}
[data-theme="dark"] .mapa{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),var(--sf)}
[data-theme="dark"] .perfil-c{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),var(--sf)}[data-theme="dark"] .perfil-c .rk{background:rgba(6,26,38,.8)}
[data-theme="dark"] .perfil-c .av{border-color:var(--sf)}
[data-theme="dark"] .login,[data-theme="dark"] .lg-form{background:var(--bg)}[data-theme="dark"] .lg-in input{background:rgba(255,255,255,.05)}
@media(max-width:980px){[data-theme="dark"] .top{border-bottom-color:rgba(120,190,215,.14)}}

/* ---------- editor de informes ---------- */
.ed-inf{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.ed-inf .ed-vista{order:1;min-width:0}.ed-inf .ed-bloques{order:2;position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}
@media(max-width:1150px){.ed-inf{grid-template-columns:minmax(0,1fr)}.ed-inf .ed-bloques{position:static;max-height:none}}
iframe.inf{height:calc(100vh - 170px);min-height:560px}.inf-grande,#inf.grande iframe.inf{height:calc(100vh - 110px)}
.ed-vista .ch{flex-wrap:wrap;gap:8px}
.ed-lista{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.bl{border:1px solid var(--line);border-radius:13px;background:var(--sf2);padding:8px 10px}.bl.off{opacity:.55}
.bl-c{display:flex;align-items:center;gap:8px}.bl .nm{font-weight:600;color:var(--ink);font-size:13px}
.bl-e{margin-top:8px;display:grid;gap:6px}
.mini{border:1px solid var(--line2);background:#fff;border-radius:8px;padding:3px 8px;cursor:pointer;color:var(--ink2);font-size:12px}.mini:hover{border-color:var(--verde2);color:var(--verde)}.mini:disabled{opacity:.35;cursor:default}
.sw{position:relative;display:inline-block;width:34px;height:20px;flex:none}.sw input{opacity:0;width:0;height:0;position:absolute}.sw i{position:absolute;inset:0;border-radius:20px;background:#cdd9d5;transition:background .15s}
.sw i::after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}.sw input:checked+i{background:var(--g-marca)}.sw input:checked+i::after{transform:translateX(14px)}
[data-theme="dark"] .mini{background:rgba(255,255,255,.05)}[data-theme="dark"] .sw i{background:#2a4a5c}

/* ---------- calendario semanal ---------- */
.cal-g{grid-template-columns:minmax(0,1fr) 340px}@media(max-width:1100px){.cal-g{grid-template-columns:minmax(0,1fr)}}
.sem-c{padding:0;overflow:hidden}
.sem-cab{display:grid;grid-template-columns:54px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(238,248,244,.6))}
[data-theme="dark"] .sem-cab{background:rgba(255,255,255,.03)}
.sem-cab>div{padding:10px 4px;text-align:center;display:flex;flex-direction:column;gap:1px;align-items:center}.sem-cab span{font-size:11.5px;color:var(--ink3);font-weight:600}.sem-cab b{font-size:18px;color:var(--ink);letter-spacing:-.02em;width:34px;height:34px;display:grid;place-items:center;border-radius:50%}
.sem-cab .hoy b{background:var(--g-marca);color:#fff}
.sem-scroll{max-height:calc(100vh - 300px);min-height:480px;overflow-y:auto}
.sem{display:grid;grid-template-columns:54px repeat(7,minmax(0,1fr));position:relative}
.horas .hr{height:56px;position:relative}.horas .hr span{position:absolute;top:-7px;right:8px;font-size:10.5px;color:var(--ink4)}
.col{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 55px,var(--line) 55px,var(--line) 56px);cursor:cell}
.col.hoy{background-color:rgba(122,108,245,.045)}
.col .mh{position:absolute;left:0;right:0;background:linear-gradient(90deg,rgba(108,92,231,.16),rgba(42,127,214,.08));border-radius:8px;pointer-events:none;margin:1px 2px}
.ev-s{position:absolute;border-radius:10px;padding:5px 8px;font-size:11.5px;line-height:1.25;color:#fff;cursor:grab;overflow:hidden;box-shadow:0 6px 14px -8px rgba(28,26,61,.55);z-index:2;transition:transform .12s}
.ev-s:hover{transform:translateY(-1px);z-index:3}.ev-s b{display:block;font-size:11px;opacity:.9}.ev-s .rd{position:absolute;right:6px;bottom:4px;font-size:10px;opacity:.85;letter-spacing:.04em}
.ev-s.idea{background:#9a98b4;border:1px dashed rgba(255,255,255,.8)}.ev-s.borrador{background:#7d7a9b}.ev-s.listo{background:linear-gradient(135deg,#6c5ce7,#7a5cf0)}.ev-s.programado{background:linear-gradient(135deg,#2a7fd6,#6a63e8)}.ev-s.publicado{background:linear-gradient(135deg,#2a9a58,#6fb74c)}.ev-s.error{background:var(--rojo)}
.fantasma{position:absolute;left:2px;right:2px;height:2px;background:var(--verde2);z-index:4;pointer-events:none;border-radius:2px}.fantasma::before{content:attr(textContent);}
.fantasma{font-size:10.5px;color:#fff;height:18px;border-radius:6px;padding:1px 6px;background:var(--g-marca);line-height:16px;opacity:.95}
.ahora{position:absolute;left:0;right:0;height:2px;background:var(--rojo);z-index:3;pointer-events:none}.ahora::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--rojo)}
.item[draggable=true]{cursor:grab}

/* ---------- asistente ---------- */
.asi{display:flex;flex-direction:column;max-width:860px;margin:0 auto;min-height:calc(100dvh - 120px)}
.asi-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}.asi-cab h1{font-size:28px;letter-spacing:-.03em}.asi-cab p{margin:4px 0 0;color:var(--ink3);max-width:520px}
.asi-msgs{flex:1;display:flex;flex-direction:column;gap:10px;padding:6px 2px 10px}
.asi-b{max-width:88%;padding:11px 15px;border-radius:18px;line-height:1.5;color:var(--ink);word-break:break-word}
.asi-b.u{align-self:flex-end;background:var(--g-marca);color:#fff;border-bottom-right-radius:6px}.asi-b.a{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:6px;box-shadow:var(--sh)}
[data-theme="dark"] .asi-b.a{background:rgba(255,255,255,.05)}
.asi-acc{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--verde-s);display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink)}.asi-acc .btn{align-self:flex-start}
.asi-vacio{margin:auto;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;color:var(--ink3);max-width:340px;padding:30px 0}.asi-vacio svg.i{width:34px;height:34px;color:var(--verde2)}.asi-vacio b{color:var(--ink);font-size:18px}
.asi-sug{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}.asi-sug button{border:1px solid var(--line2);background:#fff;border-radius:20px;padding:8px 14px;cursor:pointer;color:var(--ink2);font-size:12.5px;text-align:left}.asi-sug button:hover{border-color:var(--verde2);background:var(--verde-s)}
[data-theme="dark"] .asi-sug button{background:rgba(255,255,255,.04)}
.asi-comp{position:sticky;bottom:calc(env(safe-area-inset-bottom) + 8px);display:flex;gap:8px;align-items:flex-end;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border:1px solid var(--line2);border-radius:22px;padding:8px;box-shadow:var(--sh2)}
[data-theme="dark"] .asi-comp{background:rgba(12,42,59,.92)}
.asi-comp textarea{flex:1;border:0!important;background:transparent!important;box-shadow:none!important;resize:none;min-height:0!important;height:40px;max-height:140px;padding:10px 6px;font-size:16px;line-height:1.4}
.asi-comp .btn{width:44px;height:44px;border-radius:50%;padding:0;justify-content:center;flex:none}
.asi-mic{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:#fff;color:var(--verde);display:grid;place-items:center;cursor:pointer;flex:none}.asi-mic svg.i{width:20px;height:20px}.asi-mic:disabled{opacity:.4}
[data-theme="dark"] .asi-mic{background:rgba(255,255,255,.06)}
.asi-mic.on{background:var(--rojo);border-color:var(--rojo);color:#fff;animation:latido 1.1s infinite}@keyframes latido{50%{box-shadow:0 0 0 10px rgba(217,71,58,.18)}}
.pensando{display:flex;gap:5px;padding:15px 18px}.pensando i{width:7px;height:7px;border-radius:50%;background:var(--ink4);animation:salto 1s infinite}.pensando i:nth-child(2){animation-delay:.15s}.pensando i:nth-child(3){animation-delay:.3s}@keyframes salto{40%{transform:translateY(-5px)}}

/* ---------- barra inferior y hoja "Más" ---------- */
#tabbar{display:none}
.hoja{position:fixed;inset:0;background:rgba(28,26,61,.4);z-index:70;display:flex;align-items:flex-end;animation:ent .2s ease both}
.hoja-c{width:100%;background:var(--sf);border-radius:24px 24px 0 0;padding:14px 16px calc(env(safe-area-inset-bottom) + 18px);box-shadow:var(--sh2)}
.hoja-t{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:var(--ink)}
.hoja-g{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hoja-g a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:16px;background:var(--sf2);border:1px solid var(--line);color:var(--ink2);font-size:12.5px;text-align:center}.hoja-g a svg.i{width:22px;height:22px;color:var(--verde)}
.hoja-p{display:flex;gap:10px;margin-top:14px}.hoja-p .btn{flex:1;justify-content:center}

@media(max-width:980px){
  body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  .top{position:sticky;top:0;padding:8px 14px calc(8px);min-height:52px;justify-content:space-between;flex-direction:row;flex-wrap:nowrap}
  .top nav,.top .der,.marca small,.marca b{display:none}.marca img{height:34px}
  .top::after{content:"Pulso";font-weight:700;color:var(--ink);letter-spacing:-.02em;font-size:15px}
  #tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;justify-content:space-around;align-items:flex-end;padding:6px 6px calc(env(safe-area-inset-bottom) + 6px);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -10px 30px -18px rgba(28,26,61,.4)}
  [data-theme="dark"] #tabbar{background:rgba(6,26,38,.94)}
  #tabbar a,#tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;color:var(--ink3);font-size:10.5px;font-weight:600;padding:6px 2px;position:relative}
  #tabbar svg.i{width:22px;height:22px}#tabbar a.on{color:var(--verde)}
  #tabbar a.centro i{width:50px;height:50px;margin-top:-26px;border-radius:50%;display:grid;place-items:center;background:var(--g-marca);color:#fff;box-shadow:0 12px 24px -10px rgba(91,75,219,.9);border:4px solid var(--bg)}
  #tabbar a.centro svg.i{width:24px;height:24px}#tabbar a.centro{color:var(--ink2)}
  main{padding:16px 14px 24px}
  .cab h1{font-size:23px}.cab{margin-bottom:14px}.acc{width:100%}.acc>*{flex:0 0 auto}
  .filtros{width:100%}.filtros .seg{flex:1}.filtros .seg button{flex:1;padding:6px 6px}
  .franja{width:calc(100% - 28px);margin-top:14px}.franja a.btn{margin-left:0}
  .kpi .v{font-size:26px}.kpi .spark{display:none}
  .g6,.g4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.g3,.g2,.gm,.g5{grid-template-columns:minmax(0,1fr)!important}
  .card{padding:16px;border-radius:18px}.scroll,.card:has(.tabla){overflow-x:auto}.tabla{min-width:520px}
  .tabsr{margin-bottom:14px}.tabsr a{padding:9px 12px}
  .comp-top{grid-template-columns:minmax(0,1fr)}.perfil-c{flex-basis:160px}
  .ed-inf{grid-template-columns:minmax(0,1fr)}iframe.inf{height:70vh;min-height:420px}
  .asi{min-height:calc(100dvh - 190px)}.asi-b{max-width:94%}
  .modal{padding:0;align-items:flex-end}.m-caja{max-width:none!important;border-radius:22px 22px 0 0;max-height:94vh}
  .m-cuerpo .grid{grid-template-columns:minmax(0,1fr)!important}
  .toast{bottom:calc(92px + env(safe-area-inset-bottom))}
  .al{flex-wrap:wrap}.al-res{grid-template-columns:repeat(2,1fr)}
  .login{grid-template-columns:1fr}
}
/* calendario: un día cada vez en el móvil */
.dia-chips{display:flex;gap:6px;padding:10px 10px 4px;overflow-x:auto}
.dia-chips button{flex:1;min-width:44px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--ink3);cursor:pointer}
.dia-chips button span{font-size:11px;font-weight:600}.dia-chips button b{font-size:16px;color:var(--ink)}
.dia-chips button.on{background:var(--g-marca);border-color:transparent}.dia-chips button.on span,.dia-chips button.on b{color:#fff}.dia-chips .hoyc:not(.on){border-color:var(--verde2)}
[data-theme="dark"] .dia-chips button{background:rgba(255,255,255,.04)}
@media(max-width:760px){.sem-scroll{max-height:calc(100dvh - 330px);min-height:360px}.sem-cab>div:first-child{display:none}.sem,.sem-cab{grid-template-columns:48px minmax(0,1fr)!important}.sem-cab{grid-template-columns:minmax(0,1fr)!important}.ev-s{font-size:12.5px}}

button.pill.op{border:0;cursor:pointer;font-family:inherit}button.pill.op:hover{filter:brightness(.95);box-shadow:0 0 0 2px rgba(122,108,245,.3)}

@media(max-width:980px){.franja .chips{display:none}.franja{padding:10px 14px;font-size:13px}.franja>div:first-child{flex:1 1 100%}}
@media(max-width:980px){.cab>div>p{display:none}.asi-cab p{display:block}.cab .acc .btn{padding:8px 11px;font-size:12.5px}.cab .acc b{min-width:0!important;font-size:13px}.aviso{font-size:12.5px;padding:9px 12px}}

/* ---------- favoritos y feed de competidores ---------- */
.estrella{border:0;background:none;cursor:pointer;font-size:19px;line-height:1;color:var(--ink4);padding:2px 4px;border-radius:8px;flex:none}.estrella:hover{color:#f0a11c;transform:scale(1.15)}.estrella.on{color:#f0a11c;text-shadow:0 2px 8px rgba(240,161,28,.45)}
.estrella.flot{position:absolute;top:6px;left:8px;z-index:2;font-size:20px;background:rgba(255,255,255,.85);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;padding:0}
[data-theme="dark"] .estrella.flot{background:rgba(6,26,38,.8)}
.feed-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}@media(max-width:600px){.feed-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fp{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#dff4ec,#e3ecfb);display:block}
.fp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .25s}.fp:hover img{transform:scale(1.04)}
.fp .sin{position:absolute;inset:0;padding:10px;font-size:11.5px;color:var(--ink3);display:grid;place-items:center;text-align:center}
.fp .tp{position:absolute;top:7px;left:7px;background:rgba(255,255,255,.9);color:var(--ink);border-radius:20px;font-size:10.5px;font-weight:700;padding:1px 8px;z-index:2}
.fp .hot{position:absolute;top:7px;right:7px;background:var(--g-marca);color:#fff;border-radius:20px;font-size:10.5px;font-weight:700;padding:1px 8px;z-index:2}
.fp .in{position:absolute;left:0;right:0;bottom:0;padding:22px 9px 7px;font-size:11px;line-height:1.35;color:#fff;background:linear-gradient(transparent,rgba(10,30,40,.72));z-index:2}
.m-cab h3 .estrella{font-size:22px;vertical-align:middle}

.prob{text-align:left;border:1px solid var(--line);background:#fff;border-radius:18px;padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:6px;box-shadow:var(--sh);transition:border-color .15s,transform .15s}
.prob:hover{border-color:var(--verde2);transform:translateY(-1px)}.prob b{color:var(--ink);font-size:15px}.prob .n{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.03em}
[data-theme="dark"] .prob{background:rgba(255,255,255,.04)}

.sec-t{font-size:18px;margin:26px 0 12px;color:var(--ink);letter-spacing:-.02em}
.idea{display:flex;flex-direction:column;gap:2px}.idea .kw{font-size:19px;margin:8px 0 2px;letter-spacing:-.02em}

/* móvil: solo lo básico */
@media(max-width:980px){.solo-pc{display:none!important}}
@media(max-width:980px){#filtros select,#filtros input,#filtros .vs,#b-sync{display:none!important}}

.col .mh.n1{background:rgba(108,92,231,.13)}.col .mh.n2{background:rgba(108,92,231,.30);box-shadow:inset 3px 0 0 #6c5ce7}

.medios{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.medios .mi{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden;background:var(--linea,#e8e6f4)}
.medios .mi img{width:100%;height:100%;object-fit:cover;display:block}.medios .mi .v{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;padding:4px;color:var(--ink2,#456)}
.medios .qx{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:14px;line-height:1;cursor:pointer;padding:0}
.drop{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--linea2,#b8c9d0);border-radius:12px;padding:12px;cursor:pointer;font-size:13px;color:var(--ink2,#456);margin:2px 0 8px}
.drop svg{width:20px;height:20px;flex:none}.drop.sobre{border-color:#6c5ce7;background:rgba(108,92,231,.08)}.drop.sub{opacity:.7;pointer-events:none}
.tes:not(:has(img)){background:linear-gradient(135deg,#d9d3ff,#c9defa);display:flex;align-items:center;justify-content:center;text-align:center;padding:8px}

.medios .mi .tg{position:absolute;left:3px;bottom:3px;background:rgba(0,0,0,.62);color:#fff;font-size:10px;padding:1px 6px;border-radius:6px}
.portada{margin-top:6px;padding:12px;border:1px solid var(--linea,#e8e6f4);border-radius:14px;background:rgba(108,92,231,.05)}
.pt-fila{display:flex;gap:14px;align-items:flex-start;margin-top:8px}.pt-fila canvas{display:block;border-radius:10px;border:1px solid var(--linea,#d5e0e4);touch-action:none;max-width:100%}
#pt-c{cursor:grab;width:216px;height:384px}#pt-c:active{cursor:grabbing}#pt-t{width:108px;height:144px}
.medios .mi{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.medios .mi img{-webkit-user-drag:none;pointer-events:none}.medios .mi.arr{opacity:.55;outline:2px solid var(--verde,#2d9d5b);cursor:grabbing}
