/* Estilo de reportes (de Control de Asistencia Constru-Express), aislado bajo .ce */
:root{--fondo:#f3f5f7; --papel:#fff; --tinta:#1b2733; --tenue:#66737f; --linea:#dfe4e8;
  --marca:#1f3a4d; --acento:#0f766e; --acento-2:#0b5f58;
  --verde:#1d7a46; --verde-f:#dcf2e4; --rojo:#b42318; --rojo-f:#fbe2df; --ambar:#9a5b00; --ambar-f:#fdf0d5;
  --gris-f:#eceff2; --radio:10px;}
.ce h1{font-size:1.45rem;margin:.2rem 0 1rem}
.ce h2{font-size:1.15rem;margin:2rem 0 .75rem}
.ce small{font-size:.8rem}
.ce .tenue{color:var(--tenue)}
.ce .nowrap{white-space:nowrap}
.ce .tarjeta{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);padding:1.1rem 1.25rem;margin-bottom:1rem}
.ce .tarjeta.angosta{max-width:440px}
.ce label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--tenue);margin-bottom:.8rem}
.ce input,.ce select{font:inherit;color:var(--tinta);padding:.5rem .6rem;border:1px solid #c9d1d8;border-radius:7px;background:#fff;min-width:0}
.ce input:focus,.ce select:focus{outline:2px solid var(--acento);outline-offset:0;border-color:var(--acento)}
.ce label.check{flex-direction:row;align-items:center;gap:.45rem;color:var(--tinta)}
.ce fieldset{border:1px solid var(--linea);border-radius:var(--radio);padding:.8rem 1rem 0}
.ce legend{font-weight:600;padding:0 .4rem}
.ce .grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}
.ce .fila-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}
.ce .fila-form label{margin:0}
.ce .fila-form #horas-esp:not([hidden]){display:contents}
.ce form.en-linea{display:inline-flex;gap:.35rem;align-items:center;margin:0}
.ce form.en-linea input{width:150px;padding:.35rem .5rem}
.ce form.en-linea select{padding:.35rem .5rem}
.ce .btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font:inherit;font-weight:600;cursor:pointer;
  padding:.55rem 1rem;border-radius:7px;border:1px solid #c9d1d8;background:#fff;color:var(--tinta);text-decoration:none;white-space:nowrap}
.ce .btn:hover{background:#f5f7f9}
.ce .btn.primario{background:var(--acento);border-color:var(--acento);color:#fff}
.ce .btn.primario:hover{background:var(--acento-2)}
.ce .btn.peligro{color:var(--rojo);border-color:#efc2bd}
.ce .btn.mini{padding:.3rem .6rem;font-size:.82rem}
.ce .btn.ancho{width:100%}
.ce .btn:disabled{opacity:.45;cursor:not-allowed}
.ce .alerta{padding:.8rem 1rem;border-radius:var(--radio);margin-bottom:1rem;border:1px solid}
.ce .alerta ul{margin:.4rem 0 0;padding-left:1.2rem}
.ce .alerta.ok{background:var(--verde-f);border-color:#b5dfc4;color:#14532d}
.ce .alerta.error{background:var(--rojo-f);border-color:#f0b9b2;color:#7a1a11}
.ce .alerta.info{background:#e3eef8;border-color:#bcd4ea;color:#1e3a5f}
.ce .login-marca{display:flex;gap:.8rem;align-items:center;margin-bottom:1.25rem}
.ce .login-marca .logo{width:46px;height:46px;font-size:1.5rem;color:#fff}
.ce .login-marca h1{margin:0;font-size:1.2rem}
.ce .login-marca p{margin:0;color:var(--tenue)}
.ce .titulo-fila{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.ce .titulo-fila h1{margin:0 0 1rem}
.ce .acciones{display:flex;gap:.5rem;margin-bottom:1rem}
.ce .filtros{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}
.ce .filtros label{margin:0}
.ce .filtros select{max-width:260px}
.ce .quincenas{display:flex;gap:.4rem;width:100%}
.ce .oficinas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:1rem 0 0}
.ce .oficinas a{display:flex;flex-direction:column;gap:.1rem;padding:.7rem 1rem;border:1px solid var(--linea);border-radius:var(--radio);
  background:var(--papel);text-decoration:none;color:var(--tinta)}
.ce .oficinas a:hover{border-color:var(--acento)}
.ce .oficinas a strong{font-size:1.05rem}
.ce .oficinas a small{color:var(--tenue)}
.ce .oficinas a.activo{background:var(--marca);border-color:var(--marca);color:#fff}
.ce .oficinas a.activo small,.ce .oficinas a.activo .txt-rojo{color:#cfe0ea}
.ce .tabla tr.grupo td{background:#eef4f6;color:var(--marca);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;padding:.45rem .7rem}
.ce .solo-imprimir{display:none}
.ce .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin:1rem 0}
.ce .kpi{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);padding:.8rem 1rem;border-top:4px solid var(--acento)}
.ce .kpi span{display:block;font-size:.8rem;color:var(--tenue)}
.ce .kpi strong{display:block;font-size:1.7rem;line-height:1.2}
.ce .kpi small{color:var(--tenue)}
.ce .kpi.rojo{border-top-color:var(--rojo)}
.ce .kpi.ambar{border-top-color:#d99a1e}
.ce .pestanas{display:flex;gap:.25rem;border-bottom:2px solid var(--linea);margin-bottom:1rem}
.ce .pestanas a{padding:.6rem 1rem;text-decoration:none;color:var(--tenue);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px}
.ce .pestanas a.activo{color:var(--acento);border-bottom-color:var(--acento)}
.ce .tabla-wrap{overflow-x:auto;background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio)}
.ce .tabla{width:100%;border-collapse:collapse;font-size:.88rem}
.ce .tabla th{position:sticky;top:0;background:#f7f9fa;text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--tenue);
  padding:.6rem .7rem;border-bottom:1px solid var(--linea);white-space:nowrap}
.ce .tabla td{padding:.55rem .7rem;border-bottom:1px solid #eef1f3;vertical-align:top}
.ce .tabla tbody tr:hover{background:#fafbfc}
.ce .tabla .num{text-align:right;white-space:nowrap}
.ce .tabla tr.con-incidencia td:first-child{box-shadow:inset 3px 0 0 var(--rojo)}
.ce .tabla tr.inactivo{opacity:.55}
.ce .vacio{text-align:center;color:var(--tenue);padding:2rem!important}
.ce .txt-rojo{color:var(--rojo);font-weight:600}
.ce .txt-ambar{color:var(--ambar);font-weight:600}
.ce .badge{display:inline-block;padding:.12rem .5rem;border-radius:20px;font-size:.76rem;font-weight:600;white-space:nowrap}
.ce .badge.verde{background:var(--verde-f);color:var(--verde)}
.ce .badge.rojo{background:var(--rojo-f);color:var(--rojo)}
.ce .badge.ambar{background:var(--ambar-f);color:var(--ambar)}
.ce .badge.gris{background:var(--gris-f);color:var(--tenue)}
.ce .marcas{min-width:190px}
.ce .chip{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;background:var(--gris-f);border-radius:5px;padding:.05rem .35rem;margin:0 .2rem .2rem 0}
.ce .obs{font-size:.78rem;color:var(--ambar);margin-top:.15rem}
.ce .nota{font-size:.8rem;margin-top:1rem}
.ce .subir{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.ce .zona{flex:1;min-width:260px;flex-direction:row;align-items:center;gap:1rem;margin:0;padding:1rem;border:2px dashed #c9d1d8;border-radius:var(--radio);color:var(--tinta);cursor:pointer}
.ce .zona:hover{border-color:var(--acento)}
@media (max-width:700px){.ce .filtros label{flex:1 1 140px}
.ce .filtros select{max-width:none}}
@media print{.ce .no-imprimir{display:none!important}
.ce .solo-imprimir{display:block}
.ce .tabla-wrap,.ce .kpi,.ce .tarjeta{border-color:#bbb}
.ce .tabla th{position:static}
.ce .kpis{grid-template-columns:repeat(5,1fr)}}
.ce .quincenas{flex-wrap:wrap;align-items:center}
.ce .atajos{display:flex;flex-wrap:wrap;gap:.3rem;margin-left:auto}
.ce .btn.sel{background:var(--marca);border-color:var(--marca);color:#fff}
.ce .ausentes{border-left:4px solid #d99a1e}
.ce .chip-aus{display:inline-block;margin:.25rem .25rem 0 0;padding:.2rem .55rem;border-radius:20px;background:var(--ambar-f);color:var(--ambar);
  text-decoration:none;font-size:.82rem;font-weight:600}
.ce .chip-aus small{font-weight:400;opacity:.8}
.ce .cobertura{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:4px}
.ce .cobertura a{display:flex;flex-direction:column;align-items:center;padding:.25rem 0;border-radius:6px;text-decoration:none;font-weight:700;font-size:.9rem}
.ce .cobertura a small{font-weight:400;font-size:.65rem}
.ce .cobertura .si{background:var(--verde-f);color:var(--verde)}
.ce .cobertura .no{background:var(--rojo-f);color:var(--rojo)}
.ce .cobertura .dom{background:var(--gris-f);color:var(--tenue)}
.ce .leyenda{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle}
.ce .leyenda.si{background:var(--verde-f)}
.ce .leyenda.no{background:var(--rojo-f)}
.ce .leyenda.dom{background:var(--gris-f)}
.ce .dias-nuevos{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}
.ce .dias-nuevos a{background:#fff;border:1px solid #b5dfc4;border-radius:6px;padding:.1rem .45rem;font-size:.8rem;text-decoration:none}
@media (max-width:700px){.ce .atajos{margin-left:0}}

.ce{color:var(--tinta);font-size:15px}
.ce h1{font-weight:600}.ce h2{font-weight:600}
.ce .btn{line-height:1.2;--bs-btn-padding-y:0}
.ce label{margin-bottom:.8rem}
.ce .txt-verde{color:var(--verde);font-weight:600}
.ce .kpi.verde{border-top-color:var(--verde)}
.ce .badge.azul{background:#e3eef8;color:#1e3a5f}
.ce .grupos fieldset legend{float:none;width:auto;font-size:1rem;margin:0}
.ce .tabla td.extra,.ce .tabla th.extra{background:#f2faf5}
.ce .semana{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.ce .estado-cierre{padding:.35rem .8rem;border-radius:20px;font-weight:600;font-size:.85rem}
.ce .estado-cierre.abierta{background:var(--ambar-f);color:var(--ambar)}
.ce .estado-cierre.cerrada{background:var(--verde-f);color:var(--verde)}
.ce .pendiente{border-left:4px solid #d99a1e}
.ce .cambio{color:var(--rojo);font-size:.75rem;display:block}
@media print{.navbar,.alert{display:none!important}main{padding:0!important}}

.ce [hidden]{display:none!important}
.ce .chip.manual{background:#e3eef8;color:#1e3a5f;border:1px dashed #7aa2c9}
.ce .chip.anulada{text-decoration:line-through;opacity:.5}
.ce .ajuste{font-size:.78rem;color:#1e3a5f;margin-top:.15rem}
