/* Ruta: /public_html/KILOWAT/assets/css/kilowat.css */
/* KILOWAT · Estilos. Mobile-first. Paleta: noche #122335 · energía #43E6A3 · hielo #F5F7FA · ruta #377CFB */

:root {
  --noche: #122335;
  --noche-2: #1B3149;
  --energia: #43E6A3;
  --energia-osc: #1F9E6C;
  --hielo: #F5F7FA;
  --ruta: #377CFB;
  --ac: #2BB6C4;
  --adaptador: #F2B441;
  --no: #E5566B;
  --desconocida: #8A97A8;

  --bg: var(--hielo);
  --card: #FFFFFF;
  --txt: #122335;
  --txt-2: #4F6075;
  --linea: #DCE3EC;
  --sombra: 0 10px 30px rgba(18, 35, 53, .16);
  --radio: 18px;
  --top-h: 116px;
  font-size: 16px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0C1826;
    --card: #15263A;
    --txt: #F5F7FA;
    --txt-2: #A9B6C6;
    --linea: #24384F;
    --sombra: 0 10px 30px rgba(0, 0, 0, .45);
  }
}
:root[data-theme="dark"] {
  --bg: #0C1826; --card: #15263A; --txt: #F5F7FA; --txt-2: #A9B6C6; --linea: #24384F;
  --sombra: 0 10px 30px rgba(0, 0, 0, .45);
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  background: var(--bg);
  color: var(--txt);
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.kw-muted { color: var(--txt-2); }
.kw-small { font-size: .8rem; }

/* ---------- Mapa ---------- */
#mapa { position: fixed; inset: 0; z-index: 1; background: #DDE5EE; }
.leaflet-control-attribution { font-size: 10px; }
.leaflet-bottom.leaflet-right { margin-bottom: env(safe-area-inset-bottom); }

/* ---------- Barra superior ---------- */
.kw-top {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  padding: calc(10px + env(safe-area-inset-top)) 16px 8px;
  background: linear-gradient(180deg, rgba(18,35,53,.92) 0%, rgba(18,35,53,.75) 70%, rgba(18,35,53,0) 100%);
  pointer-events: none;
}
.kw-top > * { pointer-events: auto; }
.kw-top-row { display: flex; gap: 8px; align-items: center; }
.kw-logo {
  display: flex; align-items: center; gap: 6px; border: 0; background: none; padding: 0;
  color: #fff; font-weight: 800; letter-spacing: .04em; flex: 0 0 auto;
}
.kw-logo-txt { display: none; }
.kw-logo-mark {
  display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px;
  background: var(--energia); color: var(--noche); font-size: 1.1rem;
}
.kw-search {
  flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px;
  height: 44px; padding: 0 14px; border-radius: 14px; background: var(--card); box-shadow: var(--sombra);
}
.kw-search i { color: var(--txt-2); }
.kw-search input { border: 0; outline: 0; background: transparent; width: 100%; min-width: 0; font-size: .95rem; }
.kw-veh {
  flex: 0 0 auto; display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px;
  border: 0; border-radius: 14px; background: var(--noche-2); color: #fff; font-weight: 600; font-size: .82rem;
  box-shadow: var(--sombra); max-width: 130px;
}
.kw-veh span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kw-veh.activo { background: var(--energia); color: var(--noche); }

.kw-resultados {
  list-style: none; margin: 8px 0 0; padding: 6px; background: var(--card); border-radius: 14px; box-shadow: var(--sombra);
  max-height: 50vh; overflow-y: auto;
}
.kw-resultados li button {
  display: flex; gap: 10px; align-items: flex-start; width: 100%; text-align: left; border: 0; background: none;
  padding: 10px; border-radius: 10px; font-size: .9rem;
}
.kw-resultados li button:hover, .kw-resultados li button:focus { background: var(--bg); outline: none; }
.kw-resultados .kw-r-sub { display: block; color: var(--txt-2); font-size: .78rem; margin-top: 2px; }
.kw-resultados .kw-r-vacio { padding: 10px; color: var(--txt-2); font-size: .88rem; }

.kw-chips {
  display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px;
}
.kw-chips::-webkit-scrollbar { display: none; }
.kw-chip {
  flex: 0 0 auto; height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22);
  background: rgba(18,35,53,.72); color: #fff; font-size: .8rem; font-weight: 600; white-space: nowrap;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.kw-chip i { margin-right: 4px; opacity: .85; }
.kw-chip.activo { background: var(--energia); color: var(--noche); border-color: var(--energia); }
.kw-chip:disabled { opacity: .45; cursor: not-allowed; }

/* ---------- Controles flotantes ---------- */
.kw-fabs {
  position: fixed; right: 16px; bottom: calc(110px + env(safe-area-inset-bottom)); z-index: 800;
  display: flex; flex-direction: column; gap: 10px; transition: bottom .25s;
}
body.ficha-abierta .kw-fabs { bottom: calc(46vh + 16px); }
.kw-fab {
  width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--card); color: var(--ruta);
  box-shadow: var(--sombra); font-size: 1.05rem;
}
.kw-fab.activo { background: var(--ruta); color: #fff; }

.kw-estado {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 700;
  background: var(--noche); color: #fff; font-size: .78rem; font-weight: 600; padding: 8px 14px; border-radius: 999px;
  box-shadow: var(--sombra); max-width: calc(100% - 32px); text-align: center; opacity: 0; transition: opacity .2s; pointer-events: none;
}
.kw-estado.visible { opacity: 1; }
body.ficha-abierta .kw-estado { opacity: 0; }

/* ---------- Pines y clusters ---------- */
.kw-pin-wrap { background: none; border: 0; }
.kw-pin {
  width: 34px; height: 34px; border-radius: 50% 50% 50% 4px; transform: rotate(-45deg);
  display: grid; place-items: center; box-shadow: 0 3px 8px rgba(0,0,0,.3); border: 2px solid #fff;
}
.kw-pin i { transform: rotate(45deg); font-size: .85rem; color: #fff; }
.kw-pin--dc { background: var(--ruta); }
.kw-pin--ac { background: var(--ac); }
.kw-pin--sininfo { background: var(--desconocida); }
.kw-pin--compatible { background: var(--energia-osc); }
.kw-pin--compatible_adaptador { background: var(--adaptador); }
.kw-pin--compatible_adaptador i { color: var(--noche); }
.kw-pin--desconocida { background: var(--desconocida); }
.kw-pin--no_compatible { background: var(--no); opacity: .8; }
.kw-pin--problema { border: 2px dashed var(--no); }
.kw-pin--sel { outline: 4px solid rgba(67,230,163,.55); }

.kw-cluster {
  background: var(--noche); color: #fff; border-radius: 50%; display: grid; place-items: center;
  font-weight: 700; font-size: .85rem; border: 3px solid var(--energia); box-shadow: 0 3px 10px rgba(0,0,0,.3);
}

/* ---------- Ficha ---------- */
.kw-ficha {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 950;
  background: var(--card); border-radius: var(--radio) var(--radio) 0 0; box-shadow: var(--sombra);
  height: 44vh; max-height: calc(100vh - 56px - env(safe-area-inset-top)); transform: translateY(105%); transition: transform .28s ease, height .28s ease;
  padding-bottom: env(safe-area-inset-bottom); display: flex; flex-direction: column;
}
.kw-ficha.abierta { transform: translateY(0); }
.kw-ficha.expandida { height: calc(100vh - 60px - env(safe-area-inset-top)); }
/* Asa de la ficha: flecha que "respira" hacia arriba para invitar a expandir (tocar o deslizar) */
.kw-ficha-asa {
  border: 0; background: none; width: 100%; padding: 6px 0 2px; min-height: 36px;
  color: var(--energia-osc); font-size: 1.2rem; line-height: 1; touch-action: none;
}
.kw-ficha-asa i { display: inline-block; animation: kw-asa 1.6s ease-in-out infinite; }
.kw-ficha-asa .kw-asa-down { display: none; }
.kw-ficha.expandida .kw-ficha-asa .kw-asa-up { display: none; }
.kw-ficha.expandida .kw-ficha-asa .kw-asa-down { display: inline-block; animation: none; }
@keyframes kw-asa { 0%, 100% { transform: translateY(2px); opacity: .7; } 50% { transform: translateY(-4px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .kw-ficha-asa i { animation: none; } }
.kw-cerrar {
  position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border-radius: 50%; border: 0;
  background: var(--bg); color: var(--txt-2);
}
.kw-ficha-cuerpo { overflow-y: auto; padding: 4px 16px 24px; flex: 1 1 auto; overscroll-behavior: contain; }

.kw-f-titulo { font-size: 1.12rem; font-weight: 800; margin: 2px 48px 2px 0; line-height: 1.25; }
.kw-f-sub { color: var(--txt-2); font-size: .84rem; margin: 0 0 12px; }
.kw-f-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.kw-tag {
  display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 999px;
  font-size: .74rem; font-weight: 700; background: var(--bg); color: var(--txt);
}
.kw-tag--dc { background: rgba(55,124,251,.14); color: var(--ruta); }
.kw-tag--ac { background: rgba(43,182,196,.15); color: #138592; }
.kw-tag--warn { background: rgba(229,86,107,.13); color: var(--no); }

.kw-compat {
  display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 14px; margin-bottom: 12px;
  background: var(--bg); border-left: 5px solid var(--desconocida);
}
.kw-compat i.kw-compat-ico { font-size: 1.3rem; margin-top: 2px; }
.kw-compat strong { display: block; font-size: .95rem; }
.kw-compat ul { margin: 6px 0 0; padding-left: 18px; font-size: .82rem; color: var(--txt-2); }
.kw-compat--compatible { border-color: var(--energia-osc); } .kw-compat--compatible .kw-compat-ico { color: var(--energia-osc); }
.kw-compat--compatible_adaptador { border-color: var(--adaptador); } .kw-compat--compatible_adaptador .kw-compat-ico { color: var(--adaptador); }
.kw-compat--no_compatible { border-color: var(--no); } .kw-compat--no_compatible .kw-compat-ico { color: var(--no); }
.kw-compat--desconocida .kw-compat-ico { color: var(--desconocida); }
.kw-aviso-regla { font-size: .75rem; color: var(--adaptador); font-weight: 600; margin-top: 6px; }

.kw-botonera { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 4px 0 16px; }
.kw-botonera .kw-btn { padding: 0 8px; font-size: .8rem; }
.kw-botonera .kw-btn-prim { grid-column: 1 / -1; font-size: .95rem; }

.kw-seccion { border-top: 1px solid var(--linea); padding: 14px 0 4px; }
.kw-seccion h3 { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--txt-2); margin: 0 0 10px; }
.kw-conector {
  display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 10px 12px;
  border: 1px solid var(--linea); border-radius: 12px; margin-bottom: 8px;
}
.kw-conector-nom { font-weight: 700; font-size: .9rem; }
.kw-conector-det { color: var(--txt-2); font-size: .78rem; margin-top: 2px; }
.kw-conector-cmp { font-size: .72rem; font-weight: 700; white-space: nowrap; }
.kw-dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; font-size: .86rem; margin: 0; }
.kw-dl dt { color: var(--txt-2); }
.kw-dl dd { margin: 0; overflow-wrap: anywhere; }
.kw-dl a, .kw-ficha a { color: var(--ruta); font-weight: 600; }
.kw-desconocido { color: var(--txt-2); font-style: italic; }
.kw-futuro { display: flex; flex-wrap: wrap; gap: 8px; }
.kw-futuro .kw-btn { flex: 1 1 140px; }

/* ---------- Sheets modales ---------- */
.kw-velo { position: fixed; inset: 0; background: rgba(12,24,38,.5); z-index: 990; }
.kw-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; background: var(--card); color: var(--txt);
  border-radius: var(--radio) var(--radio) 0 0; padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
  box-shadow: var(--sombra); max-height: 88vh; overflow-y: auto; animation: subir .22s ease;
}
@keyframes subir { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.kw-sheet h2 { margin: 0 0 8px; font-size: 1.15rem; display: flex; align-items: center; gap: 10px; }
.kw-sheet h3 { font-size: .85rem; margin: 18px 0 6px; }
.kw-sheet p { font-size: .9rem; line-height: 1.5; }
.kw-campo { display: block; margin: 12px 0; font-size: .82rem; font-weight: 600; color: var(--txt-2); border: 0; padding: 0; }
.kw-campo select {
  display: block; width: 100%; margin-top: 6px; height: 46px; padding: 0 12px; border-radius: 12px;
  border: 1px solid var(--linea); background: var(--bg); color: var(--txt); font-weight: 500;
}
.kw-campo legend { padding: 0; margin-bottom: 6px; }
.kw-check { display: flex; align-items: center; gap: 10px; padding: 10px 0; font-weight: 500; color: var(--txt); font-size: .9rem; }
.kw-check input { width: 20px; height: 20px; accent-color: var(--energia-osc); }
.kw-acciones { display: flex; gap: 10px; margin-top: 18px; }
.kw-acciones .kw-btn { flex: 1; }
.kw-nav-opciones { display: grid; gap: 10px; }
.kw-leyenda { list-style: none; padding: 0; margin: 0; }
.kw-leyenda li { display: flex; align-items: center; gap: 12px; padding: 7px 0; font-size: .88rem; }
.kw-leyenda .kw-pin { width: 26px; height: 26px; flex: 0 0 auto; }
.kw-leyenda .kw-pin i { font-size: .65rem; }
.kw-fuentes { padding-left: 18px; font-size: .85rem; }
.kw-fuentes a { color: var(--ruta); }

/* ---------- Botones ---------- */
.kw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 16px;
  border-radius: 14px; border: 0; background: var(--noche); color: #fff; font-weight: 700; font-size: .9rem;
  text-decoration: none; text-align: center;
}
:root[data-theme="dark"] .kw-btn:not(.kw-btn-sec):not(.kw-btn-prim) { background: var(--ruta); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-btn:not(.kw-btn-sec):not(.kw-btn-prim) { background: var(--ruta); } }
.kw-btn-prim { background: var(--energia); color: var(--noche); }
.kw-btn-sec { background: var(--bg); color: var(--txt); border: 1px solid var(--linea); }
.kw-btn-nav { background: var(--ruta); font-size: 1rem; }
.kw-btn[disabled], .kw-btn.kw-btn-off { opacity: .5; cursor: not-allowed; }
.kw-btn:focus-visible, .kw-chip:focus-visible, .kw-fab:focus-visible { outline: 3px solid var(--energia); outline-offset: 2px; }

/* ---------- Toast ---------- */
.kw-toast {
  position: fixed; left: 50%; top: calc(var(--top-h) + 12px + env(safe-area-inset-top)); transform: translate(-50%, -10px);
  z-index: 1100; background: var(--noche); color: #fff; padding: 10px 16px; border-radius: 12px; font-size: .85rem; font-weight: 600;
  opacity: 0; transition: all .2s; pointer-events: none; max-width: calc(100% - 32px); box-shadow: var(--sombra);
}
.kw-toast.visible { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Escritorio ---------- */
@media (min-width: 768px) {
  .kw-top { padding: 14px 20px; right: auto; width: 580px; background: none; }
  .kw-logo { color: var(--noche); margin-right: 4px; }
  :root[data-theme="dark"] .kw-logo { color: #fff; }
  .kw-logo-txt { display: inline; text-shadow: 0 1px 0 rgba(255,255,255,.6); }
  .kw-chip { background: var(--noche); }
  .kw-ficha, .kw-sheet {
    left: 20px; right: auto; width: 420px; bottom: 20px; border-radius: var(--radio);
  }
  .kw-ficha { top: calc(var(--top-h) + 20px); height: auto; max-height: none; transform: translateX(-120%); }
  .kw-ficha.abierta { transform: none; }
  .kw-ficha.expandida { height: auto; }
  .kw-ficha-asa { display: none; }
  .kw-ficha-cuerpo { padding-top: 16px; }
  .kw-sheet { left: 50%; transform: translateX(-50%); bottom: auto; top: 12vh; animation: none; }
  body.ficha-abierta .kw-fabs { bottom: 30px; }
  .kw-fabs { bottom: 30px; right: 20px; }
}

/* ---------- Íconos de conector (blancos sobre fondo oscuro, válidos en tema claro y oscuro) ---------- */
.kw-ico-con {
  display: inline-grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px;
  background: var(--noche); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.kw-ico-con img { width: 72%; height: 72%; display: block; }
.kw-ico-con--sm { width: 32px; height: 32px; border-radius: 9px; }
.kw-ico-con--lg { width: 72px; height: 72px; border-radius: 16px; }
:root[data-theme="dark"] .kw-ico-con { background: #24405F; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-ico-con { background: #24405F; } }

.kw-puertos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 8px; }
.kw-puerto {
  display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 10px; border-radius: 14px;
  border: 2px solid var(--linea); background: var(--bg); color: var(--txt); font-weight: 700; font-size: .85rem; text-align: center;
}
.kw-puerto small { font-weight: 500; color: var(--txt-2); font-size: .72rem; }
.kw-puerto[aria-checked="true"] { border-color: var(--energia-osc); box-shadow: 0 0 0 3px rgba(67,230,163,.25); }
.kw-puerto:focus-visible { outline: 3px solid var(--energia); outline-offset: 2px; }

.kw-adapt { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-weight: 500; color: var(--txt); font-size: .9rem; }
.kw-adapt input { width: 20px; height: 20px; accent-color: var(--energia-osc); flex: 0 0 auto; }
.kw-adapt-par { display: inline-flex; align-items: center; gap: 4px; color: var(--txt-2); }
.kw-sin-margen { margin: 0 0 4px; }

.kw-conector-izq { display: flex; align-items: center; gap: 12px; min-width: 0; }
.kw-leyenda-con li { align-items: flex-start; }
.kw-leyenda-con strong { display: block; font-size: .88rem; }
.kw-leyenda-con span.kw-muted { font-size: .8rem; }
.kw-sheet p.kw-small { font-size: .8rem; }

/* Origen del dato plegable */
.kw-origen summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; padding-bottom: 6px; }
.kw-origen summary::-webkit-details-marker { display: none; }
.kw-origen summary h3 { margin: 0; }
.kw-origen summary:focus-visible { outline: 3px solid var(--energia); outline-offset: 2px; border-radius: 6px; }
.kw-ver { font-size: .78rem; font-weight: 700; color: var(--ruta); }
.kw-ver::after { content: 'Ver +'; }
.kw-origen[open] .kw-ver::after { content: 'Ver −'; }
.kw-origen[open] .kw-dl { margin-top: 8px; }

/* ---------- Formularios ---------- */
.kw-campo input[type="email"], .kw-campo input[type="password"], .kw-campo input[type="text"], .kw-campo input[type="tel"], .kw-campo textarea {
  display: block; width: 100%; margin-top: 6px; min-height: 46px; padding: 10px 12px; border-radius: 12px;
  border: 1px solid var(--linea); background: var(--bg); color: var(--txt); font-weight: 500; font-size: 1rem;
}
.kw-campo textarea { resize: vertical; min-height: 84px; font-family: inherit; }
.kw-campo input:focus, .kw-campo textarea:focus, .kw-campo select:focus { outline: 2px solid var(--energia); outline-offset: 1px; }
.kw-form-error { color: var(--no); font-size: .85rem; font-weight: 600; margin: 8px 0; }
.kw-aviso { background: rgba(67,230,163,.14); color: var(--txt); border-left: 4px solid var(--energia-osc); padding: 10px 12px; border-radius: 10px; font-size: .88rem; }
.kw-btn-full { width: 100%; margin-top: 8px; }
.kw-enlaces { text-align: center; margin: 12px 0 0; }
.kw-link { border: 0; background: none; color: var(--ruta); font-weight: 600; padding: 6px; font-size: .88rem; text-decoration: underline; }
.kw-check a { color: var(--ruta); }

.kw-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: var(--bg); border-radius: 12px; padding: 4px; margin: 8px 0 6px; }
.kw-tabs button { border: 0; background: none; padding: 10px; border-radius: 9px; font-weight: 700; font-size: .88rem; color: var(--txt-2); }
.kw-tabs button[aria-selected="true"] { background: var(--card); color: var(--txt); box-shadow: 0 1px 4px rgba(0,0,0,.12); }

.kw-perfil { display: flex; align-items: center; gap: 12px; margin: 8px 0 4px; }
.kw-perfil strong { display: block; font-size: 1rem; }
.kw-perfil-ini {
  width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto;
  background: var(--energia); color: var(--noche); font-weight: 800; font-size: 1.2rem;
}
.kw-fab.kw-logueado { background: var(--energia); color: var(--noche); font-weight: 800; }

/* ---------- Reportes ---------- */
.kw-rep-botones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kw-rep-botones .kw-btn { font-size: .8rem; padding: 0 8px; }
.kw-rep-botones .kw-btn:first-child { grid-column: 1 / -1; }
.kw-rep-tipos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0; }
.kw-rep-tipo {
  display: flex; align-items: center; gap: 8px; padding: 12px; border-radius: 12px; border: 2px solid var(--linea);
  background: var(--bg); color: var(--txt); font-weight: 700; font-size: .82rem; text-align: left;
}
.kw-rep-tipo[aria-checked="true"] { border-color: var(--energia-osc); box-shadow: 0 0 0 3px rgba(67,230,163,.25); }
.kw-rep-tipo:first-child { grid-column: 1 / -1; }
.kw-rep-ico--pude_cargar { color: var(--energia-osc); }
.kw-rep-ico--no_pude_cargar, .kw-rep-ico--fuera_servicio { color: var(--no); }
.kw-rep-ico--ocupado, .kw-rep-ico--no_pude_acceder { color: var(--adaptador); }

.kw-reportes { list-style: none; padding: 0; margin: 14px 0 0; }
.kw-reporte { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--linea); }
.kw-reporte:first-child { border-top: 0; }
.kw-reporte > i { margin-top: 3px; width: 18px; text-align: center; }
.kw-reporte-tit { font-weight: 700; font-size: .88rem; }
.kw-reporte-meta { color: var(--txt-2); font-size: .76rem; margin-top: 2px; }
.kw-reporte-txt { font-size: .85rem; margin-top: 4px; overflow-wrap: anywhere; }
.kw-nv {
  display: inline-block; font-size: .62rem; font-weight: 800; letter-spacing: .05em; padding: 2px 6px; border-radius: 6px;
  background: rgba(242,180,65,.18); color: #B37A12; margin-left: 6px; vertical-align: middle;
}
:root[data-theme="dark"] .kw-nv { color: var(--adaptador); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-nv { color: var(--adaptador); } }
.kw-validado { background: rgba(67,230,163,.16); color: var(--energia-osc); }

/* ---------- Páginas simples (verificar, restablecer, privacidad) ---------- */
body.kw-pagina-body { overflow: auto; background: var(--bg); }
.kw-pagina { max-width: 560px; margin: 0 auto; padding: 24px 16px 48px; }
.kw-pagina h1 { font-size: 1.4rem; }
.kw-pagina h2 { font-size: 1rem; margin-top: 22px; }
.kw-pagina p, .kw-pagina li { line-height: 1.55; font-size: .95rem; }
.kw-pagina a { color: var(--ruta); }
.kw-pagina .kw-btn { color: #fff; margin-top: 8px; }
.kw-pagina .kw-btn-prim { color: var(--noche); }
.kw-pagina .kw-btn-sec { color: var(--txt); }
.kw-pagina-logo { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; letter-spacing: .04em; color: var(--txt) !important; text-decoration: none; margin-bottom: 18px; }
.kw-aviso-borrador { background: rgba(242,180,65,.16); padding: 8px 12px; border-radius: 10px; font-size: .85rem; font-weight: 600; }

/* Requisitos de contraseña en vivo */
.kw-pass-reglas { list-style: none; padding: 0; margin: 8px 0 4px; }
.kw-pass-reglas li { display: flex; align-items: center; gap: 8px; font-size: .84rem; font-weight: 600; color: var(--txt-2); padding: 2px 0; }
.kw-pass-reglas li i { width: 16px; text-align: center; }
.kw-pass-reglas li.ok { color: var(--energia-osc); }
.kw-pass-reglas li.mal { color: var(--no); }
:root[data-theme="dark"] .kw-pass-reglas li.ok { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-pass-reglas li.ok { color: var(--energia); } }
.kw-campo input.kw-input-mal { border: 2px solid var(--no); }

/* ---------- Ventana única de cuenta ---------- */
.kw-cuenta-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.kw-cuenta-cab h2 { margin: 0; }
.kw-cuenta-pie { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--linea); font-size: .88rem; color: var(--txt-2); }
.kw-cuenta-pie--centro { flex-direction: row; justify-content: center; }
.kw-link-fuerte { font-weight: 800; text-decoration: none; }
.kw-link-inline { padding: 0; font-size: inherit; }
.kw-pass-wrap { position: relative; display: block; }
.kw-pass-wrap input { padding-right: 48px !important; }
.kw-ojo { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); margin-top: 3px; width: 40px; height: 40px; border: 0; background: none; color: var(--txt-2); }

/* Sheets apilados (privacidad, foto) */
.kw-sheet--encima, .kw-sheet--apilado { z-index: 1020; }
.kw-velo.kw-velo--alto { z-index: 1015; }
.kw-priv-cuerpo h2 { font-size: .95rem; margin: 16px 0 6px; }
.kw-priv-cuerpo p, .kw-priv-cuerpo li { font-size: .88rem; line-height: 1.5; }
.kw-priv-cuerpo a { color: var(--ruta); }

/* ---------- Botón agregar ---------- */
.kw-fab-agregar { background: var(--energia); color: var(--noche); font-size: 1.25rem; }

/* ---------- Asistente de alta ---------- */
.kw-sheet--alto { max-height: 94vh; height: 94vh; display: flex; flex-direction: column; }
.kw-sheet--alto .kw-paso { flex: 1 1 auto; overflow-y: auto; }
.kw-alta-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.kw-progreso { height: 6px; border-radius: 6px; background: var(--bg); overflow: hidden; margin: 6px 0 12px; }
.kw-progreso span { display: block; height: 100%; width: 20%; background: var(--energia); transition: width .25s; }
.kw-paso h3 { margin: 4px 0 6px; font-size: 1rem; }
.kw-alta-mapa-wrap { position: relative; height: 46vh; min-height: 240px; border-radius: 14px; overflow: hidden; margin: 8px 0 10px; border: 1px solid var(--linea); }
#altaMapa { position: absolute; inset: 0; }
.kw-alta-pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%); z-index: 500; pointer-events: none; font-size: 2.2rem; color: var(--no); text-shadow: 0 3px 6px rgba(0,0,0,.35); }
.kw-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.kw-pills button { border: 2px solid var(--linea); background: var(--bg); color: var(--txt); border-radius: 999px; padding: 8px 14px; font-weight: 700; font-size: .82rem; }
.kw-pills button[aria-checked="true"] { border-color: var(--energia-osc); background: rgba(67,230,163,.15); }
.kw-con-fila { display: grid; grid-template-columns: 32px 1fr 64px 76px 32px; gap: 6px; align-items: end; margin-top: 8px; }
.kw-con-fila select, .kw-con-fila input { height: 42px; border-radius: 10px; border: 1px solid var(--linea); background: var(--bg); color: var(--txt); padding: 0 8px; font-size: .85rem; min-width: 0; width: 100%; }
.kw-con-fila label { font-size: .68rem; font-weight: 600; color: var(--txt-2); }
.kw-con-fila .kw-ico-con { margin-bottom: 5px; }
.kw-con-quitar { border: 0; background: none; color: var(--no); height: 42px; }
.kw-file { position: relative; overflow: hidden; cursor: pointer; }
.kw-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.kw-fotos-prev { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 10px 0; }
.kw-fotos-prev div { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--bg); }
.kw-fotos-prev img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kw-fotos-prev button { position: absolute; top: 2px; right: 2px; width: 24px; height: 24px; border-radius: 50%; border: 0; background: rgba(0,0,0,.6); color: #fff; font-size: .7rem; }
.kw-resumen { background: var(--bg); border-radius: 12px; padding: 10px 12px; font-size: .84rem; margin: 10px 0; line-height: 1.5; }
.kw-cercana { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--linea); border-radius: 12px; margin-bottom: 8px; }
.kw-cercana strong { display: block; font-size: .9rem; }
.kw-ok-msg { display: flex; gap: 10px; align-items: center; padding: 14px; border-radius: 12px; background: rgba(67,230,163,.14); font-weight: 600; }

/* ---------- Ficha: aporte de la comunidad y fotos ---------- */
.kw-tag--com { background: rgba(242,180,65,.18); color: #B37A12; }
:root[data-theme="dark"] .kw-tag--com { color: var(--adaptador); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-tag--com { color: var(--adaptador); } }
.kw-galeria { display: flex; gap: 8px; overflow-x: auto; margin: 0 0 12px; padding-bottom: 4px; scrollbar-width: thin; }
.kw-galeria button { flex: 0 0 auto; width: 110px; height: 82px; border: 0; padding: 0; border-radius: 10px; overflow: hidden; background: var(--bg); }
.kw-galeria img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kw-sheet--foto { padding: 12px; background: #000; }
.kw-sheet--foto img { width: 100%; max-height: 72vh; object-fit: contain; display: block; border-radius: 8px; }
@media (min-width: 768px) {
  .kw-sheet--alto { height: auto; max-height: 86vh; top: 7vh; width: 520px; }
  .kw-alta-mapa-wrap { height: 340px; }
}

/* Filas de conectores: alinear etiquetas y campos */
.kw-con-fila label { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.kw-campo .kw-con-fila select, .kw-con-fila input { margin-top: 0; height: 42px; }
.kw-campo .kw-con-fila select { display: block; padding: 0 6px; }

/* ---------- Mis autos ---------- */
.kw-mis-autos { display: grid; gap: 8px; margin: 10px 0 12px; }
.kw-auto { display: flex; gap: 6px; align-items: stretch; }
.kw-auto-sel { flex: 1; display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 14px; border: 2px solid var(--linea); background: var(--bg); color: var(--txt); text-align: left; min-width: 0; }
.kw-auto-sel > span:not(.kw-ico-con) { flex: 1; min-width: 0; }
.kw-auto-sel .kw-ico-con { flex: 0 0 44px; width: 44px; height: 44px; }
.kw-auto-sel strong { display: block; font-size: .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kw-auto-sel small { display: block; color: var(--txt-2); font-size: .74rem; margin-top: 2px; }
.kw-auto-sel em { font-style: normal; font-size: .76rem; font-weight: 800; white-space: nowrap; }
.kw-auto-uso { color: var(--energia-osc); }
:root[data-theme="dark"] .kw-auto-uso { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-auto-uso { color: var(--energia); } }
.kw-auto-usar { color: var(--ruta); }
.kw-auto.activo .kw-auto-sel { border-color: var(--energia-osc); box-shadow: 0 0 0 3px rgba(67,230,163,.22); }
.kw-auto-edit { width: 48px; border-radius: 14px; border: 2px solid var(--linea); background: var(--bg); color: var(--txt-2); }

/* ---------- Botón de cuenta (arriba a la izquierda) ---------- */
.kw-cuenta-btn {
  flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 2px solid rgba(255,255,255,.25);
  background: var(--noche-2); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.05rem;
  box-shadow: var(--sombra); overflow: hidden; padding: 0;
}
.kw-cuenta-btn.kw-logueado { background: var(--energia); color: var(--noche); border-color: var(--energia); }
.kw-cuenta-btn img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Avatares ---------- */
.kw-av { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex: 0 0 auto; display: grid; place-items: center; background: var(--bg); }
.kw-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kw-av--ini { background: var(--energia); color: var(--noche); font-weight: 800; }
.kw-av--sm { width: 32px; height: 32px; font-size: .85rem; }
.kw-perfil-ini { overflow: hidden; width: 64px; height: 64px; font-size: 1.5rem; }
.kw-perfil-ini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kw-perfil-foto-acc { display: flex; gap: 12px; margin-top: 4px; }
.kw-perfil-foto-acc .kw-link { padding: 4px 0; }
.kw-file-link { position: relative; cursor: pointer; }
.kw-file-link input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.kw-reporte-tit i { margin-right: 2px; }
.kw-creador { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: var(--bg); margin: -2px 0 12px; }
.kw-creador > div { flex: 1; min-width: 0; }
.kw-creador small { display: block; color: var(--txt-2); font-size: .72rem; font-weight: 600; }
.kw-creador strong { display: block; font-size: .92rem; }
.kw-acerca { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 18px; padding: 12px; border: 1px solid var(--linea); border-radius: 14px; background: var(--bg); color: var(--txt); text-align: left; }
.kw-acerca .kw-logo-mark { width: 36px; height: 36px; border-radius: 10px; font-size: .95rem; }
.kw-acerca span:nth-child(2) { flex: 1; }
.kw-acerca strong { display: block; font-size: .9rem; }
.kw-acerca small { color: var(--txt-2); font-size: .74rem; }
.kw-acerca > i { color: var(--txt-2); }
@media (min-width: 768px) { .kw-top { width: 540px; } }

/* ---------- Alta: cargador particular ---------- */
.kw-particular { margin: 12px 0; padding: 14px; border-radius: 14px; border: 2px solid var(--adaptador); background: rgba(242,180,65,.10); }
.kw-particular-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.kw-particular-cab i { color: var(--adaptador); font-size: 1.2rem; }
.kw-particular p { font-size: .86rem; line-height: 1.5; margin: 6px 0; }
.kw-particular .kw-campo { margin-top: 10px; }
.kw-pills button i { margin-right: 4px; }

/* Celular con prefijo fijo +56 9 */
.kw-tel { display: flex; align-items: stretch; margin-top: 6px; border: 1px solid var(--linea); border-radius: 12px; background: var(--bg); overflow: hidden; }
.kw-tel:focus-within { outline: 2px solid var(--energia); outline-offset: 1px; }
.kw-tel-pre { display: flex; align-items: center; padding: 0 12px; font-weight: 700; color: var(--txt); background: rgba(127,127,127,.12); border-right: 1px solid var(--linea); white-space: nowrap; }
.kw-campo .kw-tel input[type="tel"] { margin-top: 0; border: 0; border-radius: 0; background: transparent; outline: none; letter-spacing: .04em; }

/* ---------- Autocompletar comuna (v0.7.3) ---------- */
.kw-ac { position: relative; }
.kw-ac > label { display: block; }
.kw-ac-lista {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 30; max-height: 264px; overflow-y: auto;
  background: var(--bg); color: var(--txt); border: 1px solid var(--linea); border-radius: 12px;
  box-shadow: 0 10px 28px rgba(0,0,0,.22); font-size: .95rem; font-weight: 400;
}
.kw-ac-op { padding: 11px 14px; cursor: pointer; border-bottom: 1px solid var(--linea); line-height: 1.3; color: var(--txt-2); }
.kw-ac-op:last-child { border-bottom: 0; }
.kw-ac-op strong { color: var(--txt); font-weight: 600; }
.kw-ac-op[aria-selected="true"], .kw-ac-op:hover { background: rgba(127,127,127,.14); }
.kw-ac-vacio { padding: 12px 14px; color: var(--txt-2); font-size: .88rem; }
.kw-ac-ver {
  display: flex; align-items: center; gap: 10px; width: 100%; margin-top: 6px; min-height: 46px; padding: 10px 12px;
  border-radius: 12px; border: 1px solid var(--linea); background: var(--bg); color: var(--txt-2);
  font: inherit; font-size: 1rem; font-weight: 400; text-align: left; line-height: 1.3; cursor: pointer;
}
.kw-ac-ver span { flex: 1; min-width: 0; }
.kw-ac-ver strong { color: var(--txt); font-weight: 600; }
.kw-ac-ver i { color: var(--txt-2); font-size: .9rem; flex: none; }
.kw-ac-ver:focus-visible { outline: 2px solid var(--energia); outline-offset: 1px; }

/* Usuario verificado (v0.8.0) */
.kw-verif { color: var(--energia-osc); font-size: .85em; }
:root[data-theme="dark"] .kw-verif { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-verif { color: var(--energia); } }

/* Celular del perfil (v0.8.0) */
.kw-perfil-cel {
  display: flex; align-items: center; gap: 12px; width: 100%; margin: 10px 0; padding: 10px 12px; text-align: left;
  border: 1px solid var(--linea); border-radius: 12px; background: var(--bg); color: var(--txt);
}
.kw-perfil-cel > i { font-size: 1.2rem; color: var(--txt-2); width: 20px; text-align: center; }
.kw-perfil-cel > span:first-of-type { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.kw-perfil-cel small { font-size: .72rem; color: var(--txt-2); font-weight: 600; }
.kw-perfil-cel strong { font-weight: 600; }
.kw-perfil-cel strong.kw-falta { color: var(--no); font-size: .85rem; }
.kw-cel-por { list-style: none; padding: 0; margin: 4px 0 8px; font-size: .9rem; }
.kw-cel-por li { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0; line-height: 1.4; }
.kw-cel-por i { color: var(--energia-osc); margin-top: 3px; width: 16px; text-align: center; }
:root[data-theme="dark"] .kw-cel-por i { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-cel-por i { color: var(--energia); } }
.kw-aviso-suave { font-size: .85rem; color: var(--txt-2); background: rgba(242,180,65,.12); border-radius: 10px; padding: 10px 12px; }

/* Insignia Fundador y código de invitación (v0.9.0) */
.kw-fundador {
  display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 99px; vertical-align: middle;
  background: linear-gradient(135deg, #F2B441, #F7D57A); color: #3A2A00; font-size: .7rem; font-weight: 800; letter-spacing: .02em; white-space: nowrap;
}
.kw-fundador i { font-size: .65rem; }
.kw-perfil .kw-fundador { margin: 4px 0 2px; align-self: flex-start; }
.kw-perfil > div { display: flex; flex-direction: column; }
.kw-opcional { font-weight: 500; color: var(--txt-2); }
.kw-canjear { display: block; margin: 4px 0 10px; font-size: .88rem; }
.kw-canjear i { margin-right: 4px; }

/* Revisa tu correo (v0.9.1) */
.kw-revisa { text-align: left; }
.kw-revisa-ico {
  width: 64px; height: 64px; margin: 4px auto 10px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: rgba(67,230,163,.16); color: var(--energia-osc); font-size: 1.7rem;
}
:root[data-theme="dark"] .kw-revisa-ico { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-revisa-ico { color: var(--energia); } }
.kw-revisa-txt { text-align: center; margin: 0 0 12px; line-height: 1.5; }
.kw-revisa-txt strong { word-break: break-all; font-size: 1.05rem; }
.kw-pasos { margin: 0 0 10px; padding-left: 22px; font-size: .92rem; line-height: 1.5; }
.kw-pasos li { margin: 6px 0; }

/* Proponer corrección (v0.10.0) */
.kw-check-alerta { margin-top: 10px; padding: 10px 12px; border-radius: 12px; border: 1px dashed rgba(229,86,107,.5); align-items: flex-start; }
.kw-check-alerta input { margin-top: 3px; }
#fichaCorregir { margin-top: 12px; }

/* Ayuda del celular (v0.11.1) */
.kw-cel-ayuda { margin: 6px 2px 4px; font-size: .84rem; color: var(--txt-2); min-height: 1.2em; }
.kw-cel-ayuda.ok { color: var(--energia-osc); font-weight: 600; }
.kw-cel-ayuda.mal { color: var(--no); font-weight: 600; }
:root[data-theme="dark"] .kw-cel-ayuda.ok { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-cel-ayuda.ok { color: var(--energia); } }

/* Confirmación con estilo propio (v0.11.2) */
.kw-confirmar { text-align: center; }
.kw-confirmar h2 { margin: 6px 0 8px; }
.kw-confirmar p { color: var(--txt-2); margin: 0 0 6px; line-height: 1.5; }
.kw-confirmar-ico {
  width: 60px; height: 60px; margin: 4px auto 6px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: rgba(229,86,107,.14); color: var(--no); font-size: 1.5rem;
}
.kw-btn-peligro { background: var(--no) !important; color: #fff; border: 0; }
.kw-btn-peligro:hover { filter: brightness(.95); }

/* X para cerrar en todas las ventanas (v0.11.4) */
.kw-sheet-x {
  position: sticky; top: 0; float: right; z-index: 3; margin: -8px -6px 0 10px;
  width: 38px; height: 38px; border-radius: 50%; border: 0; display: flex; align-items: center; justify-content: center;
  background: var(--card); color: var(--txt); font-size: 1rem; cursor: pointer;
  box-shadow: 0 0 0 1px var(--linea), 0 2px 8px rgba(0,0,0,.12);
}
.kw-sheet-x:hover { filter: brightness(.95); }
.kw-sheet-x:focus-visible { outline: 3px solid var(--energia); outline-offset: 2px; }
.kw-confirmar .kw-sheet-x { position: absolute; top: 14px; right: 14px; margin: 0; }
.kw-sheet--foto .kw-sheet-x { position: absolute; top: 18px; right: 18px; margin: 0; color: #fff; background: rgba(0,0,0,.55); }
/* Ventanas altas (flex en columna): la X va a la derecha sin ocupar una fila propia */
.kw-sheet--alto > .kw-sheet-x { float: none; align-self: flex-end; flex: none; margin: -8px -6px -30px 0; }
.kw-sheet--alto .kw-alta-cab { padding-right: 46px; }
.kw-sheet--alto > h2 { padding-right: 46px; }

/* Estado de la comunidad y Red KILOWAT (v0.12.0) */
.kw-pin-cont { position: relative; width: 34px; height: 34px; display: inline-block; }
.kw-pin--falla { border: 3px solid var(--no); box-shadow: 0 0 0 2px #fff, 0 3px 10px rgba(229,86,107,.55); }
.kw-pin-alerta {
  position: absolute; top: -9px; right: -9px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--no); color: #fff; border: 2px solid #fff; font: 800 11px/14px Montserrat, sans-serif; text-align: center;
  box-shadow: 0 1px 4px rgba(0,0,0,.35); animation: kwLatido 1.6s ease-in-out infinite;
}
@keyframes kwLatido { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
@media (prefers-reduced-motion: reduce) { .kw-pin-alerta { animation: none; } }
.kw-pin-k {
  position: absolute; top: -8px; left: -8px; width: 17px; height: 17px; border-radius: 50%;
  background: var(--energia); color: var(--noche); border: 2px solid #fff; display: grid; place-items: center;
  font-size: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.3);
}
.kw-leyenda .kw-pin-cont { width: 26px; height: 26px; flex: 0 0 auto; }
.kw-leyenda .kw-pin-alerta { width: 14px; height: 14px; font-size: 9px; line-height: 10px; top: -6px; right: -6px; }
.kw-leyenda .kw-pin-k { width: 13px; height: 13px; font-size: 6px; top: -5px; left: -5px; }

.kw-aviso-est { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; margin: 6px 0 10px; font-size: .86rem; }
.kw-aviso-est > i { font-size: 1.1rem; margin-top: 2px; }
.kw-aviso-est > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kw-aviso-est small { color: var(--txt-2); font-size: .78rem; }
.kw-aviso-est--falla { background: rgba(229,86,107,.13); border: 1px solid rgba(229,86,107,.45); }
.kw-aviso-est--falla > i, .kw-aviso-est--falla > div > strong { color: var(--no); }
.kw-aviso-est--ok { background: rgba(67,230,163,.13); border: 1px solid rgba(67,230,163,.4); }
.kw-aviso-est--ok > i, .kw-aviso-est--ok > div > strong { color: var(--energia-osc); }
:root[data-theme="dark"] .kw-aviso-est--ok > i, :root[data-theme="dark"] .kw-aviso-est--ok > div > strong { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-aviso-est--ok > i, :root:not([data-theme="light"]) .kw-aviso-est--ok > div > strong { color: var(--energia); } }

.kw-tag--red { background: rgba(67,230,163,.18); color: var(--energia-osc); font-weight: 700; }
:root[data-theme="dark"] .kw-tag--red { color: var(--energia); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-tag--red { color: var(--energia); } }
.kw-tag--ext { background: rgba(127,127,127,.14); color: var(--txt-2); }
.kw-reporte-fecha { font-size: .75rem; color: var(--txt-2); margin-top: 1px; }
.kw-reporte-fecha i { margin-right: 3px; }

/* Chip "Red KILOWAT" (v0.12.1) */
.kw-chip-k {
  display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; margin-right: 4px; vertical-align: -3px;
  background: var(--energia); color: var(--noche); font-size: 8px;
}
.kw-chip-k i { margin: 0; opacity: 1; }
.kw-chip--red.activo .kw-chip-k { background: var(--noche); color: var(--energia); }
.kw-chip--red { display: inline-flex; align-items: center; }
.kw-chip--red .kw-chip-k { vertical-align: middle; }

/* Insignias Pionero / Embajador (v0.12.2) */
.kw-insignia {
  display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 99px; vertical-align: middle;
  font-size: .7rem; font-weight: 800; letter-spacing: .02em; white-space: nowrap;
}
.kw-insignia i { font-size: .65rem; }
.kw-insignia--pionero { background: rgba(55,124,251,.14); color: var(--ruta); }
.kw-insignia--embajador { background: linear-gradient(135deg, #F2B441, #F7D57A); color: #3A2A00; }
:root[data-theme="dark"] .kw-insignia--pionero { color: #8DB6FF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kw-insignia--pionero { color: #8DB6FF; } }
.kw-perfil-insignia { margin: 4px 0 2px; align-self: flex-start; }