[hidden]{display:none!important}
:root{
  --fondo:#eef3fa; --panel:#fff; --tinta:#14233f; --suave:#5a6b86; --linea:#d9e2ef;
  --barra:#12305f; --acento:#1f5fc4; --acento-osc:#174a9c; --acento-2:#e6effc;
  --peligro:#b4442f; --peligro-2:#fbece8; --ambar:#a66a00; --ambar-2:#fdf3df;
  --azul:#0b72a8; --azul-2:#e1f2fb; --verde:#1d7a4f; --verde-2:#e3f4ea; --gris-2:#eaf0f8;
  --suave-bg:#f6f8fb; --hover:#f2f6fc; --amarillo-2:#fff3d6; --amarillo-t:#8a5a00; --rojo-3:#fff8f7; --verde-3:#f7fcf9;
  --pest-bg:#e3ebf6; --resaltar:#fff7dc; --input:#fff; --serie1:#1f5fc4; --serie2:#d97a0b; --sombra-modal:rgba(18,48,95,.35);
  --radio:8px; --sombra:0 1px 2px rgba(0,0,0,.05),0 2px 8px rgba(0,0,0,.04);
}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 "Segoe UI",system-ui,-apple-system,Roboto,sans-serif;color:var(--tinta);background:var(--fondo)}
h1{font-size:20px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}h3{font-size:14px;margin:0 0 8px}
.barra{display:flex;align-items:center;gap:24px;padding:0 24px;height:56px;background:var(--barra);color:#fff;position:sticky;top:0;z-index:20}
.marca{display:flex;align-items:center;gap:10px;font-size:15px;white-space:nowrap}
.marca img{height:34px;max-width:120px;object-fit:contain;background:var(--panel);border-radius:4px;padding:2px}
.marca small{display:block;font-size:11.5px;opacity:.7;font-weight:400}
.logo-ing{max-height:72px;max-width:220px;object-fit:contain;display:block;margin-bottom:14px}
nav{display:flex;gap:4px;flex:1}
nav a{color:#c9d6ec;text-decoration:none;padding:8px 12px;border-radius:6px}
nav a:hover{background:rgba(255,255,255,.08);color:#fff}nav a.activo{background:rgba(255,255,255,.14);color:#fff}
.yo{display:flex;align-items:center;gap:8px;font-size:13px}
.rol{background:rgba(255,255,255,.14);padding:2px 8px;border-radius:99px;font-size:12px;text-transform:capitalize}
.btn-link{background:none;border:0;color:#9cc3ff;cursor:pointer;font:inherit;text-decoration:underline}
main{max-width:1280px;margin:0 auto;padding:24px}
.panel{background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra);padding:20px;margin-bottom:16px}
.cab{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.sub{color:var(--suave);margin:0}
button,.btn{font:inherit;border:1px solid var(--linea);background:var(--panel);color:var(--tinta);padding:8px 14px;border-radius:6px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
button:hover,.btn:hover{border-color:#b9beb9}
.prim{background:var(--acento);border-color:var(--acento);color:#fff}.prim:hover{background:var(--acento-osc);border-color:var(--acento-osc)}
.peligro{color:var(--peligro);border-color:#e6c2ba}.peligro:hover{background:var(--peligro-2)}
button:disabled{opacity:.5;cursor:default}
label{display:block;font-size:12px;font-weight:600;color:var(--suave);margin-bottom:4px}
input,select,textarea{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--linea);border-radius:6px;background:var(--input);color:var(--tinta)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acento-2);border-color:var(--acento)}
textarea{min-height:64px;resize:vertical}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.tabla{width:100%;border-collapse:collapse}
.tabla th{font-size:12px;text-align:left;color:var(--suave);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--linea);background:var(--suave-bg);white-space:nowrap}
.tabla td{padding:9px 10px;border-bottom:1px solid var(--gris-2);vertical-align:top}
.tabla tr.clic{cursor:pointer}.tabla tr.clic:hover td{background:var(--hover)}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mute{color:var(--suave);font-size:12px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--linea);background:var(--panel);border-radius:99px;padding:5px 12px;cursor:pointer;font-size:13px}
.chip b{margin-left:6px;font-weight:600;color:var(--suave)}
.chip.on{background:var(--tinta);border-color:var(--tinta);color:#fff}.chip.on b{color:#cfd6d2}
.estado{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}
.e-Solicitada{background:var(--azul-2);color:var(--azul)}
.e-En{background:var(--ambar-2);color:var(--ambar)}
.e-Devuelta{background:var(--peligro-2);color:var(--peligro)}
.e-Proyectada{background:var(--acento-2);color:var(--acento)}
.e-Ejecutada{background:var(--verde-2);color:var(--verde)}
.e-Anulada{background:var(--gris-2);color:var(--suave)}
.filtros{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.filtros input[type=search]{width:260px}.filtros select{width:auto;min-width:220px}
.check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--tinta);font-weight:400;margin:0}
.check input{width:auto}
/* Líneas */
.lineas{width:100%;border-collapse:collapse}
.lineas th{font-size:12px;color:var(--suave);text-align:left;padding:6px;border-bottom:1px solid var(--linea)}
.lineas td{padding:6px;vertical-align:top;border-bottom:1px solid var(--gris-2)}
.lineas input{padding:7px 8px}
.lineas .c-item{width:28%}.lineas .c-ins{width:30%}.lineas .c-um{width:60px}.lineas .c-n{width:120px}
.lineas .c-iva{width:96px}.lineas .i-iva{width:100%}.lineas .v-iva{font-size:11px;margin-top:3px;white-space:nowrap}.det-lineas td .mute{font-size:11px;font-weight:400}
.lineas input.num{text-align:right}
.ref{font-size:11.5px;color:var(--suave);margin-top:4px;line-height:1.35}
.ref.alerta{color:var(--ambar)}
.calc{background:var(--suave-bg)}
.totales{display:flex;justify-content:flex-end;gap:24px;padding:12px 6px 0;font-size:15px}
.totales b{font-variant-numeric:tabular-nums}
/* Buscador */
.combo{position:relative}
.lista{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--panel);border:1px solid var(--linea);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:320px;overflow:auto;margin-top:2px;min-width:360px}
.lista .grupo{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--suave);padding:8px 10px 4px;background:var(--suave-bg);position:sticky;top:0}
.lista .op{padding:7px 10px;cursor:pointer;display:flex;gap:8px;align-items:baseline}
.lista .op:hover,.lista .op.sel{background:var(--acento-2)}
.lista .op code{font-size:12px;color:var(--suave);min-width:56px}
.lista .op small{margin-left:auto;color:var(--suave);white-space:nowrap}
.lista .vacio{padding:10px;color:var(--suave)}
/* Detalle */
.dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 20px}
.dl div span{display:block;font-size:12px;color:var(--suave)}
.acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.hist{list-style:none;padding:0;margin:0}
.hist li{padding:8px 0 8px 18px;border-left:2px solid var(--linea);position:relative}
.hist li:before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--acento)}
.hist .c{background:var(--suave-bg);border-radius:6px;padding:6px 10px;margin-top:4px;white-space:pre-wrap}
.dos{display:grid;grid-template-columns:2fr 1fr;gap:16px}
@media(max-width:900px){.dos{grid-template-columns:1fr}.barra{gap:10px;padding:0 12px;overflow-x:auto}main{padding:16px}}
.ingreso{max-width:420px;margin:56px auto}
.usuarios-ing{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.usuarios-ing button{justify-content:flex-start;flex-direction:column;align-items:flex-start;padding:14px}
.usuarios-ing button small{color:var(--suave);text-transform:capitalize}
.aviso{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:10px 18px;border-radius:8px;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.2);max-width:90vw}
.aviso.error{background:var(--peligro)}
.vacio-grande{text-align:center;color:var(--suave);padding:40px}
.pdf{display:flex;gap:10px;align-items:center}
.pdf input{flex:1}
.nota{background:var(--ambar-2);color:#6d4800;border-radius:6px;padding:8px 12px;font-size:13px;margin-bottom:12px}

.pegar{border:2px dashed var(--linea);border-radius:8px;padding:12px;text-align:center;color:var(--suave);font-size:13px;margin-top:10px;cursor:text;outline:none}
.pegar:focus,.pegar.activa{border-color:var(--acento);background:var(--acento-2);color:var(--acento)}
.miniaturas{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.miniaturas .m{position:relative}
.miniaturas img{height:84px;max-width:160px;object-fit:cover;border:1px solid var(--linea);border-radius:6px;display:block;cursor:zoom-in;background:var(--panel)}
.miniaturas .m button{position:absolute;top:-8px;right:-8px;padding:0;width:22px;height:22px;border-radius:50%;justify-content:center;font-size:12px}
.visor{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:60;cursor:zoom-out;padding:24px}
.visor img{max-width:100%;max-height:100%;background:var(--panel);border-radius:4px}
.ayuda{background:var(--suave-bg);border:1px solid var(--linea);border-radius:6px;padding:10px 12px;font-size:12.5px;color:var(--suave);margin-bottom:12px}
.ayuda b{color:var(--tinta)}
.pdfs{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.pdfs .btn{padding:4px 10px;font-size:12.5px}
.codigo-disp{font:700 30px/1 ui-monospace,Consolas,monospace;letter-spacing:3px;text-align:center;background:var(--gris-2);border-radius:8px;padding:16px;margin:18px 0 10px}
.segmento{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.segmento button{flex:1;min-width:200px;flex-direction:column;align-items:flex-start;padding:12px 14px;font-weight:600;font-size:15px}
.segmento button small{font-weight:400;font-size:12px;color:var(--suave)}
.segmento button.on{border-color:var(--acento);background:var(--acento-2);box-shadow:inset 0 0 0 1px var(--acento)}
.soltar{border:2px dashed var(--linea);border-radius:8px;padding:14px;text-align:center;cursor:pointer;font-size:13px;min-height:64px;display:flex;align-items:center;justify-content:center}
.soltar:hover,.soltar:focus{border-color:#b9beb9;outline:none}
.soltar.activa{border-color:var(--acento);background:var(--acento-2)}
.chip.tipo.on{background:var(--acento);border-color:var(--acento)}

.campana-w{position:relative}
.campana{background:rgba(255,255,255,.1);border:0;color:#fff;font-size:17px;padding:6px 10px;border-radius:8px;position:relative}
.campana:hover{background:rgba(255,255,255,.2)}
.campana span{position:absolute;top:-4px;right:-6px;background:#e5484d;color:#fff;font-size:11px;font-weight:700;border-radius:99px;padding:1px 6px;min-width:18px;text-align:center}
.campana-lista{position:absolute;right:0;top:44px;width:360px;max-width:90vw;max-height:70vh;overflow:auto;background:var(--panel);color:var(--tinta);border-radius:10px;box-shadow:0 12px 32px rgba(18,48,95,.25);z-index:40}
.n-cab{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--linea);position:sticky;top:0;background:var(--panel)}
.n-cab a{font-size:12px;color:var(--acento)}
.n-item{padding:10px 14px;border-bottom:1px solid var(--gris-2);cursor:pointer;font-size:13px}
.n-item:hover{background:var(--fondo)}
.n-item.nueva{background:var(--acento-2);border-left:3px solid var(--acento)}
.n-vacio{padding:18px 14px;text-align:center}
.n-pie{padding:10px 14px;text-align:center;font-size:12px}
@media(max-width:900px){.campana-lista{position:fixed;left:8px;right:8px;top:60px;width:auto}}

/* ---- pestañas de la bandeja ---- */
.pestanas{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:-1px;position:relative;z-index:1}
.pest{border:1px solid var(--linea);border-bottom-color:transparent;background:var(--pest-bg);border-radius:10px 10px 0 0;padding:11px 18px;font-weight:600;color:var(--suave)}
.pest b{margin-left:8px;background:var(--panel);color:var(--tinta);border-radius:99px;padding:1px 9px;font-size:12px}
.pest.on{background:var(--panel);color:var(--tinta);border-color:var(--linea);border-bottom-color:var(--panel)}
.pest-pend.on{box-shadow:inset 0 3px 0 #e8a400}.pest-proy.on{box-shadow:inset 0 3px 0 var(--acento)}.pest-todas.on{box-shadow:inset 0 3px 0 var(--tinta)}
.pest-pend b{background:var(--amarillo-2);color:var(--amarillo-t)}
.panel-pest{border-top-left-radius:0}
/* ---- colores por estado ---- */
:root{--c-Solicitada:#e8a400;--c-Devuelta:#d1453b;--c-Proyectada:#1f5fc4;--c-Ejecutada:#1d8a55;--c-Anulada:#9aa7ba;--c-En:#e8a400}
.e-Solicitada{background:var(--amarillo-2);color:var(--amarillo-t)}
.fila td:first-child{box-shadow:inset 4px 0 0 var(--c)}
.f-Solicitada{--c:var(--c-Solicitada)}.f-Devuelta{--c:var(--c-Devuelta)}.f-Proyectada{--c:var(--c-Proyectada)}
.f-Ejecutada{--c:var(--c-Ejecutada)}.f-Anulada{--c:var(--c-Anulada)}.f-En{--c:var(--c-En)}
.f-Devuelta td{background:var(--rojo-3)}.f-Ejecutada td{background:var(--verde-3)}.f-Anulada td{color:#8a96a8}
.tabla tr.clic:hover td{background:var(--hover)}
.leyenda{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--suave);margin:0 0 10px}
.ley i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--c)}
.ley.e-Solicitada,.ley.e-Devuelta,.ley.e-Proyectada,.ley.e-Ejecutada,.ley.e-Anulada{background:none;color:var(--suave);padding:0;font-weight:400}
.ley.e-Solicitada{--c:var(--c-Solicitada)}.ley.e-Devuelta{--c:var(--c-Devuelta)}.ley.e-Proyectada{--c:var(--c-Proyectada)}.ley.e-Ejecutada{--c:var(--c-Ejecutada)}.ley.e-Anulada{--c:var(--c-Anulada)}
.chip[class*="c-"]::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--c)}
.c-Solicitada{--c:var(--c-Solicitada)}.c-Devuelta{--c:var(--c-Devuelta)}.c-Proyectada{--c:var(--c-Proyectada)}.c-Ejecutada{--c:var(--c-Ejecutada)}.c-Anulada{--c:var(--c-Anulada)}
.solo-movil{display:none}
#btnRecargar{font-size:18px;line-height:1}

/* ---- celular ---- */
@media (max-width: 760px){
  body{font-size:15px}
  main{padding:12px}
  .barra{height:auto;flex-wrap:wrap;gap:6px 8px;padding:8px 12px;overflow:visible}
  .marca{flex:1;min-width:0;overflow:hidden}.marca > div{overflow:hidden;text-overflow:ellipsis}.marca small{display:none}.marca img{height:28px}
  .largo{display:none}
  nav{order:3;flex-basis:100%;overflow-x:auto;gap:2px;padding-bottom:2px}
  nav a{padding:7px 10px;white-space:nowrap;font-size:14px}
  .yo #yoNombre,.yo .rol{display:none}
  .yo{gap:10px}
  .cab{gap:10px}.cab .acciones{width:100%}.cab .acciones .btn,.cab .acciones button{flex:1;justify-content:center}
  #btnExp{display:none}
  .panel{padding:14px;border-radius:10px}
  .pestanas{flex-wrap:nowrap}
  .pest{flex:1;padding:9px 4px;font-size:13px;text-align:center;white-space:nowrap}
  .pest b{display:block;margin:4px auto 0;width:max-content}
  .filtros{flex-direction:column;align-items:stretch}
  .filtros input[type=search],.filtros select{width:100%;min-width:0}
  .rejilla{grid-template-columns:1fr}
  .rejilla > div{grid-column:auto!important}
  .segmento button{min-width:0}
  /* tablas como tarjetas */
  .bandeja thead,.tarjetas thead{display:none}
  .bandeja,.bandeja tbody,.tarjetas,.tarjetas tbody{display:block}
  .bandeja tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;border:1px solid var(--linea);border-left:5px solid var(--c);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--panel)}
  .bandeja td{border:0;padding:2px 0;box-shadow:none!important;background:none!important}
  .bandeja td::before{content:attr(data-l);display:block;font-size:11px;color:var(--suave);font-weight:600}
  .bandeja td.num{text-align:left}
  .bandeja td[data-l="#"]{display:none}
  .bandeja td[data-l="Estado"]{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px}
  .bandeja td[data-l="Estado"]::before{content:"#" attr(data-id)}
  .bandeja td[data-l="Centro de costos"],.bandeja td[data-l="Factura / proveedor"]{grid-column:1/-1}
  .bandeja td[data-l="Actualizado"],.bandeja td[data-l="Proyectista"]{display:none}
  .tarjetas tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;border:1px solid var(--linea);border-radius:10px;padding:12px;margin-bottom:12px;background:var(--panel)}
  .tarjetas td{display:block;border:0;padding:0;width:auto!important}
  .tarjetas td[data-l]::before{content:attr(data-l);display:block;font-size:11px;color:var(--suave);font-weight:600;margin-bottom:3px}
  .tarjetas td.combo,.tarjetas td[data-l="Ítem"],.tarjetas td[data-l="Insumo"]{grid-column:1/-1}
  .tarjetas td.num{text-align:left}
  .tarjetas tfoot{display:block}.tarjetas tfoot tr{display:flex;justify-content:space-between;border:0;padding:4px 0}
  .tarjetas tfoot td[colspan="4"]{display:none}
  .lineas.tarjetas input{font-size:16px;padding:10px}
  .lineas.tarjetas .c-um input{text-align:center}
  .c-quitar{grid-column:1/-1}.c-quitar button{width:100%;justify-content:center}
  .solo-movil{display:inline}
  .lista{min-width:0;left:0;right:0;max-height:45vh}
  .lista .op{flex-wrap:wrap;padding:10px}
  .lista .op small{margin-left:0;flex-basis:100%}
  .totales{flex-direction:column;align-items:flex-end;gap:4px}
  .det-lineas td[data-l="Proyectado (cant.)"],.det-lineas td[data-l="Proy. vr. unit."],.det-lineas td[data-l="Proy. total"]{color:var(--suave)}
  .acciones button{flex:1 1 auto}
  .dl{grid-template-columns:1fr 1fr}
  .ingreso{margin:20px auto}
}

.resp{margin-top:6px;padding:3px 10px;font-size:12px;color:var(--acento);border-color:#c9d8f2}
.cita{display:block;font-size:12px;color:var(--suave);border-left:3px solid #c9d8f2;padding:2px 8px;margin:6px 0 2px;text-decoration:none}
.cita:hover{color:var(--acento)}
.respondiendo{background:var(--acento-2);border-radius:6px;padding:8px 10px;font-size:13px;margin-bottom:6px}
.respondiendo a{margin-left:6px;font-size:12px}
.hist li.resaltar{background:var(--resaltar);transition:background .3s}

.adj-tarde{margin-top:10px;min-height:52px}
.versiones{margin-top:4px;font-size:13px}.versiones summary{cursor:pointer;color:var(--acento)}
.versiones div{margin-top:4px}.versiones .mute{display:block;font-size:11.5px}

/* ===== semáforo, prioridad, tablero, panel ===== */
.sem{display:inline-block;min-width:34px;text-align:center;font-weight:700;font-size:12px;border-radius:99px;padding:2px 8px;margin-right:4px}
.sem-verde{background:#dff3e7;color:#17663f}.sem-amarillo{background:#fff0c7;color:#7a5200}.sem-rojo{background:#fde0dc;color:#a8291c}
.sem-verde::before{content:"● ";color:#1d8a55}.sem-amarillo::before{content:"● ";color:#e8a400}.sem-rojo::before{content:"● ";color:#d1453b}
.urg{display:inline-block;font-size:11.5px;font-weight:700;color:#b42318;background:#fde8e6;border-radius:99px;padding:1px 8px;white-space:nowrap}
.freq{display:block;font-size:11.5px;margin-top:3px}
.ley-sem{margin-left:auto}.ley-sem .sem{margin-left:4px}
.seg-prio{display:flex;gap:6px}.seg-prio button{flex:1;justify-content:center}
.seg-prio button.on{border-color:var(--acento);background:var(--acento-2);font-weight:600}
.seg-prio button.urg-on{border-color:#d1453b;background:#fde8e6;color:#b42318}
.seg-vista{display:inline-flex;border:1px solid var(--linea);border-radius:6px;overflow:hidden}
.seg-vista button{border:0;border-radius:0;padding:8px 12px}.seg-vista button.on{background:var(--acento);color:#fff}
.vercomo{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--suave);font-weight:600;margin:0}
.vercomo select{width:auto}
.nota-vista{background:#efe7ff;color:#4a2a8a;border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:13px}
.nota-vista a{color:inherit;font-weight:600}
.motivo{font-size:12.5px;margin-top:4px;color:var(--peligro)}
.leido{background:var(--acento-2);border-radius:6px;padding:8px 10px;font-size:12.5px;margin-top:8px}
.tablero{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px}
.kcol{background:var(--suave-bg);border:1px solid var(--linea);border-radius:10px;padding:10px;min-height:120px}
.kcol-cab{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;margin-bottom:10px}
.kcol-cab i{width:10px;height:10px;border-radius:3px;background:var(--c)}.kcol-cab b{margin-left:auto;background:var(--panel);border-radius:99px;padding:0 8px;font-size:12px}
.kcard{background:var(--panel);border:1px solid var(--linea);border-left:4px solid var(--c);border-radius:8px;padding:10px;margin-bottom:8px;cursor:pointer;font-size:13px;display:grid;gap:4px;box-shadow:var(--sombra)}
.kcard:hover{border-color:var(--acento)}
.kc-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kc-top .sem{margin-left:auto}
.kc-cc{font-size:12px;color:var(--suave)}.kc-pie{display:flex;justify-content:space-between;gap:6px}.kc-f{font-size:11.5px}.kvacio{font-size:12px;text-align:center;padding:14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.kpis-2{grid-template-columns:1fr 1fr;margin:0}
.kpi{background:var(--panel);border:1px solid var(--linea);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--tinta);box-shadow:var(--sombra)}
.kpi span{font-size:12px;color:var(--suave);font-weight:600}.kpi b{font-size:28px;line-height:1.2;font-variant-numeric:tabular-nums}.kpi small{color:var(--suave);font-size:12px}
.kpi.k-pend{border-top:3px solid #e8a400}.kpi.k-urg b,.kpi.k-rojo b{color:#c0392b}.kpi.k-urg,.kpi.k-rojo{border-top:3px solid #d1453b}
a.kpi:hover{border-color:var(--acento)}
.grid-panel{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-panel .panel{margin:0}.panel-ancho{grid-column:1/-1}
.barra-sem{display:flex;gap:2px;height:14px;border-radius:7px;overflow:hidden;margin:6px 0 10px}
.bs-verde{background:#1d8a55}.bs-amarillo{background:#e8a400}.bs-rojo{background:#d1453b}
.sem-ley div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--gris-2)}
.lista-atr a{display:flex;gap:8px;align-items:center;padding:7px 4px;border-bottom:1px solid var(--gris-2);text-decoration:none;color:var(--tinta);font-size:13px}
.lista-atr a:hover{background:var(--hover)}.lista-atr .sem{margin-left:auto}
.leyenda-g{display:flex;gap:16px;font-size:12.5px;color:var(--suave);margin-bottom:8px}
.leyenda-g i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.s1{background:var(--serie1)}.s2{background:var(--serie2)}
.graf-sem{display:flex;gap:10px;align-items:stretch;height:200px;border-bottom:1px solid var(--linea);padding-top:16px}
.gs-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.gs-barras{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.gs-b{width:42%;max-width:26px;border-radius:4px 4px 0 0;position:relative;min-height:0}
.gs-b em{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-style:normal;font-size:11px;color:var(--suave)}
.gs-col span{font-size:11px;color:var(--suave)}.gs-col:hover .gs-b{filter:brightness(1.1)}
.hbar{margin-bottom:10px}.hb-et{font-size:12.5px;margin-bottom:3px}
.hb-fila{display:flex;align-items:center;gap:8px}.hb-b{height:12px;background:var(--serie1);border-radius:0 4px 4px 0}.hb-b.hb-2{background:var(--serie2)}
.hb-fila span{font-size:12px;color:var(--suave);white-space:nowrap}
.modal-fondo{position:fixed;inset:0;background:var(--sombra-modal);display:flex;align-items:center;justify-content:center;z-index:70;padding:16px}
.modal{background:var(--panel);color:var(--tinta);border-radius:12px;padding:20px 22px;max-width:520px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.modal ul{padding-left:18px}
.tema-btn,.instalar-btn{font-size:16px}
@media(max-width:900px){.grid-panel{grid-template-columns:1fr}.kpis-2{grid-template-columns:1fr}}
@media(max-width:760px){.vercomo{width:100%}.vercomo select{flex:1}.seg-vista{flex:1}.seg-vista button{flex:1;justify-content:center}
  .ley-sem{margin-left:0}.kpi b{font-size:22px}.tablero{grid-auto-columns:82%}}

/* ===== modo oscuro ===== */
:root[data-tema="oscuro"]{
  --fondo:#0f1726; --panel:#172236; --tinta:#e5ebf5; --suave:#9aa9c2; --linea:#2a3a55; --barra:#0b1220;
  --acento:#4d8af0; --acento-osc:#3a74d6; --acento-2:#1d3157; --peligro:#ff8a7a; --peligro-2:#3a1f22;
  --ambar:#f0b54a; --ambar-2:#3a2e16; --azul:#6cc3f0; --azul-2:#14304a; --verde:#5fd29a; --verde-2:#173527; --gris-2:#1f2c44;
  --suave-bg:#131d2e; --hover:#1c2a42; --amarillo-2:#3a2f12; --amarillo-t:#f4c55a; --rojo-3:#2a1b20; --verde-3:#152a22;
  --pest-bg:#121b2b; --resaltar:#3a3216; --input:#0f1829; --serie1:#5b93f0; --serie2:#c97a1c; --sombra-modal:rgba(0,0,0,.6);
  --sombra:0 1px 2px rgba(0,0,0,.3);
  color-scheme:dark;
}
:root[data-tema="oscuro"] .sem-verde{background:#173527;color:#7fe0ae}
:root[data-tema="oscuro"] .sem-amarillo{background:#3a2f12;color:#f4c55a}
:root[data-tema="oscuro"] .sem-rojo{background:#3a1f22;color:#ff9b8d}
:root[data-tema="oscuro"] .urg,:root[data-tema="oscuro"] .seg-prio button.urg-on{background:#3a1f22;color:#ff9b8d}
:root[data-tema="oscuro"] .nota-vista{background:#2a2145;color:#cdb8ff}
:root[data-tema="oscuro"] .campana-lista,:root[data-tema="oscuro"] .n-cab{background:var(--panel)}
:root[data-tema="oscuro"] .c,:root[data-tema="oscuro"] .hist .c{background:var(--suave-bg)}
:root[data-tema="oscuro"] .estado.e-Anulada{background:#243046;color:#9aa9c2}
:root[data-tema="oscuro"] a{color:#8db6ff}
:root[data-tema="oscuro"] .btn.prim,:root[data-tema="oscuro"] a.btn.prim{color:#fff}
.sem{white-space:nowrap}
#pCC{width:auto;max-width:340px}
:root[data-tema="oscuro"] .chip.on{background:#dfe7f5;border-color:#dfe7f5;color:#0f1726}
:root[data-tema="oscuro"] .chip.on b{color:#33415c}
:root[data-tema="oscuro"] .chip.tipo.on{background:var(--acento);border-color:var(--acento);color:#fff}
:root[data-tema="oscuro"] .aviso{background:#2c3d5c;color:#fff}
:root[data-tema="oscuro"] .aviso.error{background:#a8352a}
:root[data-tema="oscuro"] .pest.on{color:var(--tinta)}
:root[data-tema="oscuro"] .segmento button.on{box-shadow:inset 0 0 0 1px var(--acento)}
:root[data-tema="oscuro"] .lista{background:var(--panel)}
:root[data-tema="oscuro"] .lista .grupo{background:var(--suave-bg)}
.dl .sem{display:inline-block}
#pEventos label{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:500;color:var(--tinta)}#pEventos input{width:auto;margin:0}
/* edición de comentarios y observaciones */
.mini-ed{float:right;padding:2px 10px;font-size:12px;color:var(--acento)}
.resp.ed{margin-left:6px;color:var(--suave)}
.ed-txt{width:100%;min-height:70px}
.versiones{margin-top:4px;font-size:12px}
.versiones summary{cursor:pointer;color:var(--suave);font-style:italic;list-style:none}
.versiones summary::-webkit-details-marker{display:none}
.versiones summary::before{content:"✎ "}
.versiones .ver{margin:6px 0 0 8px;padding-left:8px;border-left:3px solid var(--linea)}
.versiones .ver .c{opacity:.8;text-decoration:line-through;text-decoration-color:rgba(127,127,127,.5)}
.txt-pdf{margin-top:6px}.txt-pdf summary{cursor:pointer;color:var(--suave)}
.txt-pdf pre{max-height:220px;overflow:auto;white-space:pre-wrap;font-size:11px;background:var(--panel);padding:8px;border-radius:6px}
