/* Redacción: hoja de estilos única. Tokens arriba; claro y oscuro. */
:root{
  --fondo:#f4f4f1;--tarjeta:#ffffff;--elevado:#ffffff;--campo:#ffffff;--texto:#1b1b19;--sutil:#66665f;--tenue:#8d8d85;
  --borde:#e3e3dc;--borde-fuerte:#cfcfc6;--acento:#1f5fbf;--acento-hover:#174c9c;--acento-suave:rgba(31,95,191,.10);
  --sobre-acento:#ffffff;--ok:#1d7a3e;--ok-suave:rgba(29,122,62,.12);--aviso:#9a5b00;--aviso-suave:rgba(166,99,0,.12);
  --error:#b42318;--error-suave:rgba(180,35,24,.10);--chip:#ececea;
  --radio:10px;--radio-s:7px;--sombra:0 1px 2px rgba(0,0,0,.05),0 2px 8px rgba(0,0,0,.04);
  --sombra-alta:0 12px 40px rgba(0,0,0,.18);--alto-campo:40px;
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2366665f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
@media (prefers-color-scheme:dark){:root{
  --fondo:#141413;--tarjeta:#1c1c1a;--elevado:#242422;--campo:#151514;--texto:#ececea;--sutil:#a3a39b;--tenue:#7c7c75;
  --borde:#2f2f2c;--borde-fuerte:#41413c;--acento:#6ea0ff;--acento-hover:#8db5ff;--acento-suave:rgba(110,160,255,.14);
  --sobre-acento:#0d1b33;--ok:#5cc985;--ok-suave:rgba(92,201,133,.14);--aviso:#e5a542;--aviso-suave:rgba(229,165,66,.14);
  --error:#ff7a6e;--error-suave:rgba(255,122,110,.12);--chip:#2a2a27;
  --sombra:0 1px 2px rgba(0,0,0,.3);--sombra-alta:0 16px 48px rgba(0,0,0,.6);
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23a3a39b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--acento);text-underline-offset:2px}
a:hover{color:var(--acento-hover)}
main{max-width:920px;margin:0 auto;padding:20px 16px 48px}
h1,h2,h3{line-height:1.25;letter-spacing:-.01em}
h1{font-size:22px;margin:0 0 6px}
h2{font-size:17px;margin:0 0 12px}
h3{font-size:15px;margin:0 0 6px}
p{margin:6px 0}
.sutil{color:var(--sutil);font-size:13.5px}
.error{color:var(--error)}
:focus-visible{outline:2px solid var(--acento);outline-offset:2px}

/* Cabecera */
.barra{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;padding:10px 20px;background:var(--tarjeta);border-bottom:1px solid var(--borde)}
.barra .logo{font-weight:700;font-size:16px;text-decoration:none;color:var(--texto);display:inline-flex;align-items:center;gap:8px}
.barra .logo::before{content:"";width:24px;height:24px;background:url("/icono.svg") center/contain no-repeat}
.nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{text-decoration:none;color:var(--sutil);font-weight:500;padding:6px 12px;border-radius:999px;white-space:nowrap}
.nav a:hover{color:var(--texto);background:var(--chip)}
.nav a.activa{color:var(--acento);background:var(--acento-suave)}
.usuario{display:flex;align-items:center;gap:10px;white-space:nowrap}
.usuario form{margin:0}
.quien{font-size:14px;color:var(--texto)}
.marca-admin{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--chip);color:var(--sutil);border-radius:5px;padding:2px 6px;margin-left:4px}
@media (max-width:720px){.barra{padding:8px 12px}.nav{order:3;flex-basis:100%}.usuario{margin-left:auto}}

/* Barra de estado (semáforo + sonido) */
.estado-sistema{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;padding:6px 20px;background:var(--tarjeta);border-bottom:1px solid var(--borde);font-size:12.5px;color:var(--sutil)}
.semaforo{display:flex;flex-wrap:wrap;gap:4px 16px;flex:1;min-width:0;position:relative}
.semaforo .pieza{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.semaforo .pieza i{width:8px;height:8px;border-radius:50%;background:var(--tenue);display:inline-block}
.semaforo .pieza.ok i{background:var(--ok);box-shadow:0 0 0 3px var(--ok-suave)}
.semaforo .pieza.aviso i{background:var(--aviso);box-shadow:0 0 0 3px var(--aviso-suave)}
.semaforo .pieza.error i{background:var(--error);box-shadow:0 0 0 3px var(--error-suave)}
.semaforo .pieza.error{color:var(--error)}
.semaforo.admin{cursor:pointer}
.semaforo .detalle-tecnico{display:none;flex-basis:100%;font-size:12px;line-height:1.5;padding-top:4px}
.semaforo.abierto .detalle-tecnico{display:block}
.permiso-avisos{font-size:12.5px;color:var(--sutil);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.permiso-avisos.banner{flex-basis:100%;background:var(--acento-suave);color:var(--texto);padding:8px 12px;border-radius:var(--radio-s);font-size:13.5px}
.permiso-avisos button{margin:0}
@media (max-width:720px){.estado-sistema{padding:6px 12px}}

/* Tarjetas y cabeceras de página */
.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:var(--radio);padding:20px;margin-bottom:16px;box-shadow:var(--sombra)}
.cabeza-pagina{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:4px 0 16px}
.cabeza-pagina h1{margin:0}
.cabeza-pagina .intro{max-width:620px;color:var(--sutil);font-size:14px;margin:4px 0 0}
.cabeza-pagina .contador{color:var(--tenue);font-size:13px;margin-left:6px;font-weight:400}
.titulo-seccion{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}

/* Campos */
label{display:block;font-size:13px;font-weight:500;color:var(--sutil);margin:0}
label > input,label > select,label > textarea{margin-top:5px}
input,select,textarea{width:100%;font:inherit;font-size:15px;color:var(--texto);background:var(--campo);border:1px solid var(--borde-fuerte);border-radius:var(--radio-s);padding:8px 11px;transition:border-color .15s,box-shadow .15s}
input,select{min-height:var(--alto-campo)}
input::placeholder,textarea::placeholder{color:var(--tenue)}
input:hover,select:hover,textarea:hover{border-color:var(--tenue)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-suave)}
select{appearance:none;-webkit-appearance:none;background-image:var(--chevron);background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer}
input[type=search]{padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238d8d85' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}
textarea{resize:vertical;line-height:1.5}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--acento)}
input[type=checkbox]{width:16px;height:16px;margin:0}
input[type=file]{padding:7px;background:transparent;border-style:dashed;min-height:0}
input[type=number]{width:auto}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{font-size:13px;font-weight:500;color:var(--sutil);padding:0;margin-bottom:6px}
.fila{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}
.filtros{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;align-items:end;margin-bottom:8px}
@media (max-width:640px){.fila,.filtros{grid-template-columns:1fr}}
.formulario{display:grid;gap:14px}
.glo-form{display:grid;gap:12px;margin:10px 0}
.pista{font-size:12.5px;color:var(--tenue);margin-top:4px}

/* Botones */
button,a.boton{font:inherit;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;background:var(--acento);color:var(--sobre-acento);border:1px solid transparent;border-radius:var(--radio-s);padding:8px 16px;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s;margin:0}
button:hover,a.boton:hover{background:var(--acento-hover);color:var(--sobre-acento)}
button.secundario,a.boton.secundario{background:var(--tarjeta);color:var(--texto);border-color:var(--borde-fuerte)}
button.secundario:hover,a.boton.secundario:hover{background:var(--chip);color:var(--texto)}
button.peligro{background:transparent;color:var(--error);border-color:var(--error)}
button.peligro:hover{background:var(--error-suave);color:var(--error)}
button.enlace{background:none;color:var(--acento);padding:0;min-height:0;font-weight:500;border:0}
button.enlace:hover{background:none;text-decoration:underline;color:var(--acento-hover)}
button.fantasma{background:transparent;color:var(--sutil);border-color:transparent;min-height:30px;padding:4px 10px;font-weight:500;font-size:13px}
button.fantasma:hover{background:var(--chip);color:var(--texto)}
button.fantasma.peligro{color:var(--error);border-color:transparent}
button.fantasma.peligro:hover{background:var(--error-suave)}
button.cta::before{content:"+";font-size:18px;font-weight:500;line-height:1;margin-top:-2px}
button:disabled{opacity:.5;cursor:default}
.botones,.acciones-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
form > button,section > button{margin-top:12px}

/* Diálogos */
dialog.dialogo{width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 48px);border:1px solid var(--borde);border-radius:14px;padding:0;background:var(--elevado);color:var(--texto);box-shadow:var(--sombra-alta)}
dialog.dialogo::backdrop{background:rgba(10,10,10,.45);backdrop-filter:blur(2px)}
.dialogo-cabeza{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--borde)}
.dialogo-cabeza h2{margin:0}
.dialogo-cuerpo{padding:18px 20px;overflow:auto}
.dialogo-pie{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--borde)}
.dialogo-pie .estado-form{margin-right:auto}
button.cerrar{background:transparent;color:var(--sutil);border:0;min-height:32px;width:32px;padding:0;font-size:22px;font-weight:400}
button.cerrar:hover{background:var(--chip);color:var(--texto)}

/* Chips y estados */
.estado,.chip{display:inline-flex;align-items:center;font-size:12px;font-weight:500;border-radius:999px;padding:2px 9px;background:var(--chip);color:var(--sutil);margin-right:6px;white-space:nowrap}
.chip.web{background:var(--acento-suave);color:var(--acento)}
.estado.terminado,.estado.aplicada{color:var(--ok);background:var(--ok-suave)}
.estado.error,.estado.cancelado,.estado.descartada{color:var(--error);background:var(--error-suave)}
.estado.pregunta,.estado.en-espera,.estado.mas-tarde{color:var(--aviso);background:var(--aviso-suave)}
.estado.en-curso,.estado.aplicando,.estado.nueva{color:var(--acento);background:var(--acento-suave)}

/* Login */
.centro{display:flex;min-height:92vh;align-items:center;justify-content:center;padding:16px}
.login{width:100%;max-width:380px;display:grid;gap:14px}
.login h1{margin:0}
.login button{width:100%}

/* Encargos */
.busquedas{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}
.busquedas[hidden]{display:none}
.busquedas-titulo{width:100%;margin:0;font-size:13px;color:var(--tenue)}
.busqueda-reciente{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--borde);border-radius:var(--radio-s);background:var(--fondo);text-decoration:none;color:var(--texto);font-size:14px}
.busqueda-reciente.con-libres{border-color:var(--acento);background:var(--acento-suave)}
.busqueda-reciente:hover{border-color:var(--acento)}
.lista li.es-busqueda{border-left:3px solid var(--acento);padding-left:10px}
.chip.busqueda-chip{background:var(--acento-suave);color:var(--acento);font-weight:600}
.paginacion{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--borde)}
.paginacion[hidden]{display:none}
.filtro-lista{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}
#buscar-encargos{flex:1 1 320px;min-width:200px;font-size:16px;padding:11px 14px 11px 38px;border:1px solid var(--borde-fuerte);
  border-radius:var(--radio-s);background:var(--tarjeta) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23888' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center}
#buscar-encargos:focus{border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-suave);outline:none}
.filtro-lista label{display:inline-flex;align-items:center;gap:6px;font-weight:400;color:var(--texto)}
#admin{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
#admin[hidden]{display:none}
.lista{list-style:none;margin:0;padding:0}
.lista li{border-top:1px solid var(--borde);padding:12px 4px}
.lista li:first-child{border-top:0}
.lista li a{text-decoration:none;color:var(--texto);display:block;border-radius:var(--radio-s)}
.lista li a:hover .t{color:var(--acento)}
.lista .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.eventos{list-style:none;margin:0;padding:0}
.eventos li{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:7px 0;border-top:1px solid var(--borde)}
.eventos li:first-child{border-top:0}
.eventos .h{font-variant-numeric:tabular-nums;color:var(--tenue);font-size:13px}
.eventos .h small{display:block;font-size:11px;opacity:.85}
.eventos .pregunta,.eventos .aviso,.eventos .incidencia{color:var(--aviso)}.eventos .error{color:var(--error)}.eventos .fin{color:var(--ok);font-weight:600}
.eventos .respuesta,.eventos .seguimiento{font-style:italic}
.peticion{white-space:pre-wrap;background:var(--fondo);border:1px solid var(--borde);border-radius:var(--radio-s);padding:12px}
.archivos a{display:inline-block;margin:4px 8px 4px 0}
.archivos img{max-width:100%;border-radius:var(--radio-s);border:1px solid var(--borde);margin-top:8px}
.adjuntos{margin-top:4px}
form.soltar{outline:2px dashed var(--acento);outline-offset:6px;border-radius:var(--radio-s);background:var(--acento-suave)}
.adjuntos-lista{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.adjuntos-lista:empty{display:none}
.adjuntos-lista li{display:flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border:1px solid var(--borde);border-radius:999px;font-size:13px}
.adjuntos-lista button{padding:0 6px;min-height:0;line-height:1.4}
.respuesta{background:var(--fondo);border:1px solid var(--borde);border-radius:var(--radio-s);padding:12px 16px;overflow-x:auto}
.respuesta table,.markdown table{border-collapse:collapse;margin:8px 0;font-size:.95em}
.respuesta th,.respuesta td,.markdown th,.markdown td{border:1px solid var(--borde-fuerte);padding:4px 8px;text-align:left;vertical-align:top}
.respuesta h3{margin:14px 0 6px}
.respuesta code,.markdown code{font-size:.9em;background:var(--chip);border-radius:4px;padding:1px 4px}
details summary{cursor:pointer;margin:8px 0;font-weight:500}

/* Candidatas */
.candidatas{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.candidata{border:1px solid var(--borde);border-radius:var(--radio);padding:12px 14px;background:var(--tarjeta)}
.candidata.recomendada{border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-suave)}
.candidata.encargada,.candidata.descartada{opacity:.65}
.cand-cabeza{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.cand-cabeza .marca{font-size:12px;font-weight:600;padding:1px 7px;border-radius:6px;background:var(--acento-suave);color:var(--acento)}
.candidata p{margin:6px 0}
.candidata .avisos{margin:6px 0;padding-left:18px;color:var(--aviso)}
.cand-acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.cand-acciones input.cand-notas{flex:1;min-width:140px}
.cand-acciones select{width:auto}
.cand-estado{font-weight:600}
.lote{position:sticky;bottom:0;z-index:20;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;padding:10px 14px;background:var(--tarjeta);border:1px solid var(--acento);border-radius:var(--radio);box-shadow:var(--sombra-alta)}
.lote[hidden]{display:none}
.lote-cuenta{font-weight:600}
.aviso-breve{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--texto);color:var(--fondo);padding:10px 18px;border-radius:999px;z-index:50;box-shadow:var(--sombra-alta);font-size:14px}

/* Glosario y tablas */
table.glosario{width:100%;border-collapse:collapse;margin-top:8px;font-size:14px}
table.glosario th{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--tenue);text-align:left;padding:8px;border-bottom:1px solid var(--borde-fuerte)}
table.glosario td{border-bottom:1px solid var(--borde);padding:9px 8px;text-align:left;vertical-align:top}
table.glosario tbody tr:hover td{background:var(--fondo)}
table.glosario td.acciones{white-space:nowrap;text-align:right}
table.glosario td.acciones button{margin-left:2px}
tr.glo-edicion td{background:var(--fondo)}
tr.glo-edicion form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
tr.glo-edicion form button{justify-self:start}
tr.deshecho td{opacity:.5;text-decoration:line-through}
.aviso-similares{color:var(--aviso);background:var(--aviso-suave);border-radius:var(--radio-s);padding:8px 12px;margin:0}
@media (max-width:640px){table.glosario thead{display:none}table.glosario td{display:block;border:0;padding:2px 0}table.glosario td.acciones{text-align:left;padding-top:6px}table.glosario tr{display:block;border-bottom:1px solid var(--borde);padding:10px 0}tr.glo-edicion form{grid-template-columns:1fr}}

/* Normas */
.nor-grupo{margin-top:22px}
h3.nor-tipo{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tenue);margin:0 0 8px}
.norma{border:1px solid var(--borde);border-radius:var(--radio);padding:14px 16px;margin-bottom:10px;background:var(--tarjeta)}
.norma-cabeza{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.norma-cabeza strong{font-size:15.5px}
.norma-texto{margin:8px 0 0;font-size:15px}
.norma-notas{margin:10px 0 0;padding:8px 12px;border-left:3px solid var(--borde-fuerte);background:var(--fondo);border-radius:0 var(--radio-s) var(--radio-s) 0;color:var(--sutil);font-size:13.5px}
.norma-pie{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:10px;color:var(--tenue);font-size:12.5px}
.norma-pie .meta{margin-right:auto}
.norma form{margin-top:12px;padding-top:12px;border-top:1px solid var(--borde)}
.casillas{display:flex;flex-wrap:wrap;gap:8px}
label.casilla{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--borde-fuerte);border-radius:999px;color:var(--texto);font-weight:500;cursor:pointer;margin:0}
label.casilla:has(input:checked){border-color:var(--acento);background:var(--acento-suave);color:var(--acento)}
.nor-avisos{border:1px solid var(--aviso);background:var(--aviso-suave);border-radius:var(--radio-s);padding:10px 14px;margin-top:4px}
.nor-avisos ul{margin:6px 0;padding-left:20px}
.nor-avisos li{margin:4px 0}
.nor-avisos button{margin-top:6px}
details.fija{border-top:1px solid var(--borde);padding:4px 0}
details.fija .markdown{font-size:14px;max-height:60vh;overflow:auto;padding:4px 0 12px}
.vacio{text-align:center;color:var(--sutil);padding:28px 12px}

/* Fallos detectados (propuestas) */
.propuesta{border:1px solid var(--borde);border-radius:var(--radio);padding:14px 16px;margin-bottom:10px}
.propuesta h3{margin:0;font-size:15px}
.propuesta .ejemplos{margin:6px 0;font-size:14px;padding-left:18px}
.fallos-marcados{margin:6px 0 10px;font-size:14px}
#fallo-form textarea{width:100%}
.barra-herramientas{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.barra-herramientas label{display:inline-flex;align-items:center;gap:8px;font-weight:400;color:var(--texto)}

/* Rendimiento */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.kpi{background:var(--fondo);border:1px solid var(--borde);border-radius:var(--radio-s);padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.kpi-v{font-size:1.45em;font-weight:650;font-variant-numeric:tabular-nums}.kpi-e{font-size:.9em;color:var(--sutil)}.kpi-s{font-size:.8em;color:var(--tenue)}
.barras{display:flex;flex-direction:column;gap:5px}
.barra-fila{display:grid;grid-template-columns:70px 1fr 80px;align-items:center;gap:8px;font-size:.9em}
.barra-pista{background:var(--fondo);border-radius:4px;height:14px;overflow:hidden}
.barra-relleno{display:block;height:100%;background:var(--acento);border-radius:4px}
.barra-val{text-align:right;font-variant-numeric:tabular-nums}
.tabla-scroll{overflow-x:auto}
table.ordenable{border-collapse:collapse;width:100%;font-size:.9em}
table.ordenable th,table.ordenable td{padding:7px 8px;border-bottom:1px solid var(--borde);text-align:left;white-space:nowrap}
table.ordenable th{cursor:pointer;user-select:none;font-weight:600;color:var(--sutil)}
table.ordenable .n{text-align:right;font-variant-numeric:tabular-nums}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
ul.cuenta{list-style:none;padding:0;margin:0}ul.cuenta li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--borde)}
#ren-filtros{grid-template-columns:repeat(4,1fr)}
@media (max-width:640px){.barra-fila{grid-template-columns:52px 1fr 64px}#ren-filtros{grid-template-columns:1fr 1fr}}

/* SEO */
.busq{font-size:12px;padding:1px 8px;border-radius:999px;background:var(--chip);color:var(--sutil);cursor:help;white-space:nowrap}
.busq-alta{background:var(--ok-suave);color:var(--ok)}.busq-media{background:var(--aviso-suave);color:var(--aviso)}
.titulares-seo{padding-left:1.1em}.titulares-seo li{margin:6px 0}.titulares-seo .copiar{margin-left:8px;min-height:28px;padding:2px 10px;font-size:12.5px}
input[type=file]::file-selector-button{font:inherit;font-size:13.5px;font-weight:600;color:var(--texto);background:var(--chip);border:1px solid var(--borde-fuerte);border-radius:6px;padding:5px 12px;margin-right:10px;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--borde)}
/* Ejemplos de encargo */
.ejemplos-encargo{margin:10px 0 14px}
.ejemplos-encargo summary{color:var(--acento);font-size:14px}
.ejemplos-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-top:10px}
button.ejemplo{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;background:var(--fondo);color:var(--texto);border:1px solid var(--borde);border-radius:var(--radio-s);padding:10px 12px;font-weight:400;min-height:0}
button.ejemplo:hover{background:var(--acento-suave);border-color:var(--acento);color:var(--texto)}
button.ejemplo strong{font-size:13.5px}
button.ejemplo span{font-size:12.5px;color:var(--sutil);line-height:1.4}
/* Encargos rápidos */
.rapidas{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rapida.ancha{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
.rapida.ancha .botones{margin:0;padding:0}
.rapida.ancha p{margin:2px 0 0}
@media (max-width:640px){.rapidas{grid-template-columns:1fr}}
.rapida{display:flex;flex-direction:column;gap:10px;border:1px solid var(--borde);border-radius:var(--radio);padding:14px;background:var(--fondo)}
.rapida h3{margin:0}
.rapida p{margin:-4px 0 0}
.rapida .botones{margin-top:auto;padding-top:2px}
.rapida-fila{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rapida .casillas label.casilla{padding:5px 10px;font-size:13px}
@media (max-width:640px){.rapida-fila{grid-template-columns:1fr}}
label.casilla input[type=radio]{position:absolute;opacity:0;width:1px;height:1px}
label.casilla:has(input:focus-visible){outline:2px solid var(--acento);outline-offset:2px}
.peticion-editar{margin:10px 0}.peticion-editar textarea{min-height:120px}
.corte-luz{flex-basis:100%;background:var(--aviso-suave);color:var(--texto);border:1px solid var(--aviso);border-left-width:4px;padding:10px 14px;border-radius:var(--radio-s);font-size:14px;line-height:1.45}.corte-luz strong{color:var(--aviso)}
/* Formulario enviándose: los campos se ocultan y sale el aviso en su lugar */
form.enviando > :not(.enviando-aviso){display:none!important}
.enviando-aviso{display:none}
form.enviando > .enviando-aviso{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--radio-s);background:var(--acento-suave);color:var(--texto);font-size:14.5px}
form.enviando > .enviando-aviso::before{content:"";width:16px;height:16px;flex:none;border-radius:50%;border:2px solid var(--acento);border-right-color:transparent;animation:girar .8s linear infinite}
form.enviando > .enviando-aviso.hecho{background:var(--ok-suave)}
form.enviando > .enviando-aviso.hecho::before{content:"✓";border:0;animation:none;color:var(--ok);font-weight:700;width:auto;height:auto}
@keyframes girar{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){form.enviando > .enviando-aviso::before{animation:none}}

/* Bloques plegables de la portada */
details.plegable > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;margin:0}
details.plegable > summary::-webkit-details-marker{display:none}
details.plegable > summary h2{margin:0}
details.plegable > summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--tenue);border-bottom:2px solid var(--tenue);transform:rotate(45deg);margin-left:auto;transition:transform .15s}
details.plegable:not([open]) > summary::after{transform:rotate(-45deg)}
details.plegable[open] > summary{margin-bottom:14px}
details.plegable > summary:hover h2{color:var(--acento)}
