/* La apariencia de la interfaz real sale de prototipo/estilos.css (D35). Aquí solo
   va lo que la operación necesita y la demostración no tiene. */
.form-error{padding:12px 16px;border-radius:8px;background:#fff0f0;color:#a52026;font-size:14px;border:1px solid #efc4c7}
.login-note .text-btn{font-size:inherit}
.sede select{border:0;background:transparent;color:inherit;font:inherit;padding:0 2px;cursor:pointer}
.real-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 0}
form button:disabled{cursor:default;opacity:.65}[hidden]{display:none!important}

/* Corrección que el prototipo no tiene (16-sep). En la tabla del resumen, el «Abrir» para
   lectores de pantalla va en posición absoluta; sin un ancestro posicionado, su caja escapa
   del recuadro que desplaza la tabla y ensancha la página en móvil (624 px en 390). */
.table-scroll{position:relative}

/* Expediente: acciones reales dentro de los paneles del prototipo. */
.acciones-panel{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.comparison-foot,.issue-footer{flex-wrap:wrap}
.issue-facts{margin-top:18px}
/* D38: la historia de los compromisos se lee como una cadena, un hecho por fila. */
.issue-facts{grid-template-columns:1fr}

/* La barra lateral del prototipo ocupa la altura de la ventana y no desplaza. Con la
   sexta entrada (Histórico), en pantallas bajas el bloque de sesión quedaba fuera de la
   vista: aquí desplaza dentro de sí misma, sin mover el resto de la página. */
.sidebar{overflow-y:auto;overscroll-behavior:contain}

/* D39 · Histórico: el rango de fechas usa los controles de la tabla del prototipo. */
.rango-fechas{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.rango-fechas label{display:flex;flex-direction:column;gap:5px;font-size:9px;letter-spacing:.6px;color:#919aa6;text-transform:uppercase}
.rango-fechas input{border:1px solid #e4e6ec;border-radius:9px;padding:9px 11px;font:inherit;font-size:11px;color:#57606e;background:#fff}
.rango-fechas input:focus{outline:2px solid #d6263855;outline-offset:1px}
.rango-fechas button{white-space:nowrap}
.table-footer button{font-size:11px;padding:8px 14px}
@media(max-width:760px){.rango-fechas{width:100%}.rango-fechas label{flex:1}.rango-fechas input{width:100%}}
.facturas-expediente{margin-top:20px}
.progress-panel .reabrir{display:flex;margin:12px auto 0}

/* Formularios: el prototipo solo da estilo a su formulario exprés (#nueva-compra); los
   demás formularios de la operación usan exactamente esas reglas. */
#modal form label{font-size:11px}
#modal form input,#modal form select,#modal form textarea{display:block;width:100%;padding:12px;margin:9px 0 18px;border:1px solid #dfe3e9;border-radius:7px;font-size:12px;color:#687383;background:#fff}
#modal form input[readonly],#modal form select:disabled{background:#f5f6f8;color:#919aa8}
#modal form .upload-zone input{width:auto;max-width:100%;padding:0;margin:0;border:0;border-radius:0;background:transparent;font-size:11px}
/* Lo que el formulario exprés no tiene: textos largos, casillas y avisos de campo. */
#modal form textarea{min-height:88px;resize:vertical;font-family:inherit;line-height:1.6}
#modal form textarea:focus{outline:2px solid #d6263855;outline-offset:1px}
#modal form .check-label{display:flex;align-items:flex-start;gap:10px;font-weight:500;color:#687383;line-height:1.6;margin:0 0 14px}
#modal form .check-label input{flex:none;width:auto;padding:0;margin:3px 0 0;border:0;accent-color:var(--red)}
#modal .item-entry>small{display:block;font-size:10px;line-height:1.6;color:#8b96a5}
#modal .proveedor-nuevo{margin:-9px 0 18px;font-size:11px;line-height:1.6;color:var(--muted)}
#modal .proveedor-nuevo .text-btn{font-size:11px;color:var(--red)}
#modal .form-error{font-size:12px;line-height:1.6}
[data-form=factura]>.secondary{margin-bottom:22px}
.modal-head .icon-btn{flex:none}

/* Visor de documentos: el prototipo muestra un soporte de ejemplo en su modal; aquí va el
   original, con la caja de su .sample-document y un botón para descargarlo. */
#modal.visor{width:900px}
.visor-documento{background:#fcfcfd;border:1px solid #e5e8ef;border-radius:5px;min-height:300px;display:flex;align-items:center;justify-content:center;overflow:auto;max-height:calc(90vh - 250px)}
.visor-documento img{display:block;max-width:100%;max-height:calc(90vh - 254px);width:auto;height:auto;margin:auto;cursor:zoom-in}
/* Ampliada: tamaño real con scroll en ambos sentidos, desde la esquina superior (el centrado flex cortaría la parte de arriba). */
.visor-documento.ampliado{display:block}
.visor-documento.ampliado img{max-width:none;max-height:none;cursor:zoom-out}
.visor-documento iframe{display:block;width:100%;height:calc(90vh - 250px);border:0}
.visor-documento>p{margin:0;padding:20px}
#modal .visor-nombre{font-size:10px;color:#9ba4b1;margin:10px 0 0;word-break:break-all}

/* Revisión de OC en la interfaz real; conserva tipografía, botones y paneles. */
.oc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.oc-original,.oc-datos{padding:24px;min-width:0}
.oc-original{position:sticky;top:24px}
.oc-preview{background:#f2f3f6;border:1px solid #e5e8ef;border-radius:6px;margin-top:18px;min-height:360px}
.oc-preview>p{padding:32px;text-align:center;color:var(--muted)}
.oc-preview iframe{width:100%;height:65vh;min-height:400px;border:0;display:block}
.oc-preview a{display:block;padding:10px;font-size:12px;color:var(--red)}
.oc-upload{display:grid;gap:10px;margin:18px 0;font-weight:600;font-size:13px}
.oc-upload input{max-width:100%}
.oc-datos fieldset{border:0;padding:0;margin:0;min-width:0}
.oc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.oc-fields label{display:grid;gap:7px;font-size:12px;color:#596473;min-width:0}
.oc-fields input,.oc-fields select{box-sizing:border-box;width:100%;min-width:0;border:1px solid #d8dde5;border-radius:5px;padding:11px;background:white;color:#202733;font:inherit;font-size:13px}
.oc-fields input:focus,.oc-fields select:focus{outline:2px solid #c52c37;outline-offset:2px}
.oc-moneda{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;border:0;margin:0;padding:0;min-width:0}
.oc-moneda legend{width:100%;padding:0;margin:0 0 7px;font-size:12px;color:#596473}
.oc-fields .oc-moneda label{display:flex;align-items:center;gap:7px;font-size:13px;color:#202733;cursor:pointer}
.oc-fields .oc-moneda input{width:auto;margin:0;padding:0;border:0;accent-color:var(--red)}
.oc-item{border:1px solid #e5e8ef;padding:16px;border-radius:6px;margin:14px 0}
.oc-item-heading{display:flex;align-items:center;justify-content:space-between;font-size:13px}
.oc-datos h3{font-size:16px;margin-top:26px}
.oc-datos p,.oc-original p{font-size:12px;line-height:1.7}
.oc-datos [role=alert]:empty{display:none}
.oc-advertencias{padding:14px;background:#fff5dd;font-size:12px;border-radius:6px;line-height:1.6}
.oc-aceptacion{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;margin-top:24px}
.oc-aceptacion input{margin-top:4px;flex:none}
.oc-confirmar{width:100%;justify-content:center;margin-top:10px}
.oc-pedido{padding:22px;margin-bottom:24px;overflow:auto}
.oc-pedido table{width:100%;font-size:12px;border-collapse:collapse}
.oc-pedido th,.oc-pedido td{padding:12px 8px;text-align:left;border-bottom:1px solid #eee}
.doc-elegido{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0 0;padding:10px 12px;border:1px solid #e5e8ef;border-radius:6px;background:#fafbfc;font-size:12px;min-width:0}
.doc-elegido[hidden]{display:none}
.doc-elegido span{min-width:0;overflow-wrap:anywhere;color:#202733;font-weight:600}
.doc-eliminar{flex:none;border:1px solid var(--red);color:var(--red);background:white;border-radius:6px;padding:8px 14px;font-weight:700;font-size:12px}
.doc-eliminar:hover{background:var(--red);color:white}
.oc-preview img{display:block;width:100%;height:auto;max-height:75vh;object-fit:contain;background:white}
.rc-acordado{margin:22px 0 0;padding:0}
.rc-acordado h3{font-size:14px;margin:0 0 10px}
.rc-revision{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:6px;padding:16px;margin:16px 0;font-size:13px;line-height:1.6}
.rc-revision.rc-revisar{border-left-color:var(--amber);background:#fffaf0}
.rc-revision.rc-no_corresponde{border-left-color:var(--red);background:#fff5f5}
.rc-veredicto strong{font-family:var(--heading);font-size:15px}
.rc-veredicto p{margin-top:4px}
.rc-revision h4{font-size:12px;margin:14px 0 6px;color:#596473;text-transform:uppercase;letter-spacing:.04em}
.rc-revision h4 small{text-transform:none;letter-spacing:0;font-weight:400}
.rc-revision ul{margin:0;padding-left:18px}
.rc-revision li{margin:4px 0}
.rc-revision li.rc-revisar::marker{color:var(--amber)}
.rc-revision li.rc-informativo{color:#596473}
.rc-revision .secondary{margin-top:12px}
.rc-sugerencia{font-size:11px;color:var(--muted);line-height:1.5}
.rc-par{grid-column:1/-1}
.oc-datos .rc-llegada{border:1px solid #e5e8ef;border-radius:6px;padding:12px 16px;margin:12px 0;min-width:0}
.rc-llegada legend{font-size:13px;font-weight:600;padding:0 4px}
.rc-llegada .oc-fields{margin:8px 0 0}
.rc-page textarea{box-sizing:border-box;width:100%;min-height:80px;border:1px solid #d8dde5;border-radius:5px;padding:11px;font:inherit;font-size:13px;resize:vertical}
.rc-observaciones,#rc-motivo{display:grid;gap:7px;font-size:12px;color:#596473;margin:14px 0}
.rc-decidir{padding:14px;background:#fff5dd;border-radius:6px;margin:16px 0}
.rc-decidir .oc-aceptacion{margin-top:0}
/* D59: la factura que cita otras OC, lo que llegó de cada una y la factura ya registrada. */
.rc-otras{border:1px solid var(--line);border-left:4px solid var(--blue,#2f6fb3);border-radius:6px;padding:14px 16px;margin:18px 0;font-size:13px;line-height:1.6}
.rc-otras h3{font-size:14px;margin:0 0 6px}
.rc-otras .rc-otra{margin-top:10px}
.rc-otras .rc-otra span{min-width:0;overflow-wrap:anywhere}
.rc-sin-expediente{margin:10px 0 0;padding:10px 12px;background:#fff5dd;border-radius:6px;font-size:12px}
.rc-grupo{margin:14px 0 0}
.rc-grupo h4{font-size:12px;margin:0 0 4px;color:#4a5566;text-transform:uppercase;letter-spacing:.04em}
.rc-registradas{margin:14px 0 0;font-size:13px}
.rc-registradas summary{cursor:pointer;font-weight:600;color:#202733}
.rc-registradas ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.rc-registradas li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid #e5e8ef;border-radius:6px;background:#fafbfc}
.rc-registradas li span{min-width:0;overflow-wrap:anywhere}
.rc-registradas .rc-bloqueada{display:block;margin-top:2px;font-size:11px;color:#8a5a00}
.rc-ya{margin:16px 0}
.rc-ya p{margin:4px 0 0}
.rc-ya .secondary{margin-top:10px}
.rc-lineas-registrada{width:100%;font-size:12px}
.rc-lineas-registrada select{max-width:100%}
.rc-lineas-registrada .rc-sugerencia{display:block;margin-top:2px}
@media(max-width:1100px){.oc-grid{grid-template-columns:1fr}.oc-original{position:static}.oc-preview iframe{height:55vh}}
@media(max-width:600px){.oc-fields{grid-template-columns:1fr}.oc-original,.oc-datos{padding:16px}}

/* Avisos personales en la campana, antes de los pendientes de la sede. */
.avisos-titulo{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#596473;margin:4px 0 10px}
.notice-list+.avisos-titulo,.avisos-anteriores+.avisos-titulo,.muted+.avisos-titulo{margin-top:22px}
/* D55: la campana cuenta lo que sigue sin leer y conserva todo, leído y sin leer, con su fecha. */
.notification>i.contador{top:0;right:0;width:auto;min-width:16px;height:16px;padding:0 4px;border-radius:9px;color:white;font-size:9px;font-weight:700;font-style:normal;line-height:14px;text-align:center}
.notice-list.avisos-historia>a{position:relative;padding-left:14px}
.notice-list.avisos-historia>a.por-leer::before{content:'';position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--red)}
.notice-list.avisos-historia>a.por-leer strong{font-weight:700}
.notice-list.avisos-historia>a.leido strong{color:#6b7380}
.notice-list.avisos-historia small{display:block;font-size:10px;color:#9aa2ad;margin-top:5px}
.aviso-chip{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:9px;font-size:9px;font-weight:600;background:#f1f2f5;color:#5d6570}
.aviso-chip.pendiente{background:#fdf1ea;color:#a8521f}
.aviso-chip.resuelta{background:#eaf5ef;color:#2f7a4d}
.avisos-anteriores{display:block;margin:8px auto 0;font-size:11px}
.avisos-pruebas{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.avisos-pruebas .text-btn{font-size:10px}

/* Entregada y sin FC: espera a Administración (24-sep). */
.admin-context.en-revision{border:1px solid #e8c77f;box-shadow:inset 4px 0 0 var(--amber)}
.admin-context.en-revision .badge,.admin-context .badge.novedad{flex:none}
/* Con el FC, su número en verde, como el RMC de la remisión (26-sep). */
.admin-context .fc-numero{margin-top:10px;max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* Devuelta por Administración (D42, 24-sep): en amarillo, en pausa hasta que Compras la corrija
   y la reenvíe. El motivo va citado tal como lo escribió Administración, con quién y cuándo. */
.admin-context.devuelta{border:1px solid #ead29c;box-shadow:inset 4px 0 0 #c48a2c}
.devolucion-admin{margin-top:14px;padding:16px 18px;border-radius:10px;background:#fdf7e9;border:1px solid #f0dfb8}
.devolucion-cabeza{display:flex;align-items:center;gap:10px;color:#94641a}
.devolucion-cabeza .icon{width:18px;height:18px}
.devolucion-cabeza strong{display:block;font-size:14px;font-weight:650;color:#6f4b12}
.devolucion-cabeza small{display:block;font-size:11px;color:#9a7433;margin-top:2px}
.devolucion-admin blockquote,.cita-devolucion{margin:12px 0 10px;padding:10px 14px;background:#fff;border-left:3px solid #c48a2c;border-radius:0 6px 6px 0;font-size:13px;line-height:1.55;color:#3f3522;white-space:pre-line;overflow-wrap:anywhere}
.cita-devolucion{margin:0 0 16px;background:#fdf7e9}
.cita-devolucion small{display:block;margin-top:6px;font-size:11px;color:#9a7433;white-space:normal}
.devolucion-admin>p{font-size:12px;color:#6f5a35;line-height:1.6}
.devolucion-admin .devolucion-espera{margin-top:8px;color:#8a5f1a;font-weight:550}
.devolucion-admin .real-actions{margin-top:14px;align-items:center}
.reenvio-admin{display:flex;gap:10px;margin-top:14px;padding:12px 14px;border-radius:10px;background:#f1f9f4;border:1px solid #cfe7da;color:#2a7c56}
.reenvio-admin .icon{width:16px;height:16px;margin-top:2px}
.reenvio-admin strong{font-size:12px;font-weight:650}
.reenvio-admin p{font-size:12px;color:#3d5a4b;margin-top:4px;line-height:1.5;overflow-wrap:anywhere}
.tarea-reenviada{display:inline-block;margin-left:9px;font-size:10px;font-weight:650;color:#3f6ea3;background:#e8f0fa;padding:3px 7px;border-radius:5px;vertical-align:2px}

/* El saldo que mantiene abierto el expediente (P2, 24-sep): qué falta, línea por línea. */
.saldo-pendiente{display:flex;gap:10px;margin:0 0 12px;padding:12px 14px;border-radius:9px;background:#f6f7f9;border:1px solid #eaedf1;font-size:12px;color:#5d6674}
.saldo-pendiente .icon{width:16px;height:16px;margin-top:2px;color:#7b8594}
.saldo-pendiente strong{display:block;font-weight:650;color:var(--ink)}
.saldo-pendiente ul,.saldo-lista{margin:6px 0 8px 16px;padding:0}
.saldo-pendiente li,.saldo-lista li{margin:3px 0;line-height:1.45}
.saldo-pendiente p{font-size:11px;color:#7b8594;line-height:1.5}

/* Vista de Administración (24-sep): cierres por periodo, la semana frente a la anterior,
   tiempos por tramo y cierres por semana, con los componentes del prototipo. */
.metric.estatica{cursor:default}
.metric.estatica:hover{border-color:var(--line);box-shadow:0 2px 3px #20242c02;transform:none}
.cambio{display:inline-block;font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:0;color:#818795;background:#f1f3f6;padding:3px 7px;border-radius:5px;white-space:nowrap}
.cambio.mejor{color:#34825d;background:#eaf5ee}
.cambio.peor{color:#b5475a;background:#fbecef}
.metric-value .cambio{align-self:center}
.admin-principal{display:flex;flex-direction:column;gap:22px;min-width:0}
.admin-semana>.section-heading,.admin-tiempos>.section-heading,.admin-barras>.section-heading{padding:22px 22px 14px}
.comparativa td{font-size:12px;padding-top:11px;padding-bottom:11px}
.comparativa td small.next-step{margin-top:3px}
.comparativa td:first-child{white-space:normal}
.comparativa td strong{font-size:14px;font-weight:650}
.comparativa tr.grupo th{background:#fff;color:#8a93a1;padding-top:18px;padding-bottom:8px}
.admin-tiempos ol{list-style:none;margin:0;padding:0 22px 6px}
.admin-tiempos li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 0;border-top:1px solid var(--line)}
.admin-tiempos li strong{font-size:12px;font-weight:600}
.admin-tiempos li p{font-size:10px;color:#8a93a1;margin-top:4px}
.admin-tiempos .tiempo{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.admin-tiempos .tiempo b{font-family:var(--heading);font-size:15px;font-weight:650;white-space:nowrap}
.admin-tiempos li small{grid-column:1/-1;font-size:10px;color:#9aa2ad}
.barras{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;height:160px;padding:0 22px 18px}
.barra{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.barra .pista{flex:1;width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;padding-top:18px}
.barra span{font-size:10px;color:#7e8897;font-weight:600}
.barra i{display:block;width:100%;max-width:24px;height:var(--alto);min-height:2px;background:#d9dde4;border-radius:4px 4px 0 0}
.barra.actual i{background:var(--red)}
.barra.actual span{color:var(--red)}
.barra small{font-size:9px;line-height:1.3;color:#9aa2ad;text-align:center;min-height:24px}
@media(max-width:800px){.admin-lateral{grid-template-columns:1fr}.admin-semana>.section-heading,.admin-tiempos>.section-heading,.admin-barras>.section-heading{padding:18px 18px 12px}.admin-tiempos ol{padding:0 18px 4px}.barras{padding:0 18px 16px}
 .comparativa th,.comparativa td{padding-left:6px;padding-right:6px;white-space:normal}.comparativa th:first-child,.comparativa td:first-child{padding-left:18px}.comparativa td:last-child,.comparativa th:last-child{padding-right:14px}.comparativa td{font-size:11px}.comparativa td strong{font-size:13px}.comparativa .cambio{font-size:10px;padding:3px 5px}.comparativa small.next-step{white-space:nowrap}}

/* La tarea primero (24-sep): un bloque que guía a Administración. Verde, adelante; amarillo, en
   pausa. Títulos y cuentas grandes: la jerarquía la marca el tamaño, no solo el color. */
.tarea-admin{margin-bottom:34px;border-color:#dde1e8;box-shadow:0 8px 28px #1a22310d}
.tarea-cabeza{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 26px 22px;border-bottom:1px solid var(--line)}
.tarea-kicker{display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:1.2px;color:var(--red);font-weight:650}
.tarea-kicker .icon{width:14px;height:14px}
.tarea-cabeza h2{font-size:25px;letter-spacing:-.6px;line-height:1.25;margin:10px 0 7px}
.tarea-cabeza p{font-size:13px;color:#6f7a89;max-width:600px;line-height:1.6}
.tarea-cabeza .primary{flex:none;font-size:13px;min-height:46px;padding:12px 20px}
.tarea-cabeza .primary .icon{width:16px;height:16px}
.carriles{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;padding:22px 26px 26px;align-items:start}
.carril{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.carril.listas{border-color:#b7dac6;border-left:5px solid #2f8a62}
.carril.devueltas{border-color:#ead29c;border-left:5px solid #c48a2c}
.carril.vacio{border-color:var(--line);border-left-width:1px}
.carril>header{display:flex;align-items:center;gap:14px;padding:18px 18px 17px}
.carril.listas>header{background:#f1f9f4}
.carril.devueltas>header{background:#fdf7e9}
.carril.vacio>header{background:#fafbfc}
.carril-icono{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none}
.carril-icono .icon{width:20px;height:20px}
.carril.listas .carril-icono{background:#dcefe4;color:#2a7c56}
.carril.devueltas .carril-icono{background:#f7e8c6;color:#94641a}
.carril.vacio .carril-icono{background:#eef0f3;color:#9aa2ad}
.carril h3{font-size:18px;font-weight:700;letter-spacing:-.3px}
.carril>header p{font-size:12px;font-weight:550;margin-top:5px}
.carril.listas>header p{color:#2a7c56}
.carril.devueltas>header p{color:#8a5f1a}
.carril.vacio>header p{color:#8a93a1}
.carril-cuenta{margin-left:auto;flex:none;font-family:var(--heading);font-size:30px;font-weight:700;line-height:1;min-width:54px;height:54px;padding:0 12px;border-radius:13px;display:flex;align-items:center;justify-content:center}
.carril.listas .carril-cuenta{background:#2f8a62;color:#fff}
.carril.devueltas .carril-cuenta{background:#f4dca8;color:#7a5315}
.carril.vacio .carril-cuenta{background:#eef0f3;color:#a0a7b2}
.carril-filas{padding:2px 18px 6px}
.tarea-fila{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.tarea-fila:first-child{border-top:0}
.tarea-dato{min-width:0}
.tarea-dato strong{font-size:14px;font-weight:650}
.tarea-dato p{font-size:12px;color:#6f7a89;margin-top:6px;line-height:1.55}
.tarea-dato small{display:flex;align-items:center;gap:5px;font-size:11px;color:#8a93a1;margin-top:8px}
.tarea-dato small .icon{width:13px;height:13px;flex:none}
.tarea-antigua{display:inline-block;margin-left:9px;font-size:10px;font-weight:650;color:#2a7c56;background:#e1f1e8;padding:3px 7px;border-radius:5px;vertical-align:2px}
.tarea-accion{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;padding:9px 13px;border-radius:8px;white-space:nowrap;transition:background .15s}
.tarea-accion .icon{width:14px;height:14px}
.carril.listas .tarea-accion{background:#fff;color:#2a7c56;border:1px solid #b7dac6}
.carril.listas .tarea-fila:hover .tarea-accion{background:#f1f9f4}
.carril.devueltas .tarea-accion{background:#fff;color:#8a5f1a;border:1px solid #ead29c}
.carril.devueltas .tarea-fila:hover .tarea-accion{background:#fdf7e9}
.carril.listas.tuyo .tarea-accion{background:#2f8a62;color:#fff;border-color:#2f8a62}
.carril.listas.tuyo .tarea-fila:hover .tarea-accion{background:#256f4e}
.carril.devueltas.tuyo .tarea-accion{background:#94641a;color:#fff;border-color:#94641a}
.carril.devueltas.tuyo .tarea-fila:hover .tarea-accion{background:#7d5415}
.tarea-fila:hover strong{color:var(--red)}
.carril-vacio{padding:4px 18px 20px;font-size:12px;color:#8a93a1}
.admin-subtitulo{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#8a93a1;font-weight:600;margin:0 0 14px}
@media(max-width:1000px){.carriles{grid-template-columns:1fr}}
@media(max-width:800px){.tarea-cabeza{flex-direction:column;align-items:stretch;gap:18px;padding:20px 18px}.tarea-cabeza h2{font-size:21px}.carriles{padding:16px 14px 18px;gap:14px}.carril>header{padding:15px 14px 14px;gap:12px}.carril h3{font-size:16px}.carril-cuenta{font-size:26px;min-width:46px;height:46px}.carril-filas{padding:0 14px 4px}.tarea-fila{flex-direction:column;align-items:stretch;gap:12px}.tarea-accion{justify-content:center}}

/* D43: conciliación por línea (24-sep). La tabla del expediente con lo pedido, lo recibido en
   cada entrega y lo facturado en cada factura; cada pendiente con su propio estado. */
.tabla-conciliacion{border-collapse:collapse;width:100%;min-width:640px}
.tabla-conciliacion th{font-size:9px;font-weight:500;letter-spacing:.5px;color:#9aa1ab;text-align:left;padding:12px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbfc}
.tabla-conciliacion th:first-child,.tabla-conciliacion td:first-child{padding-left:23px}
.tabla-conciliacion th:last-child,.tabla-conciliacion td:last-child{padding-right:23px}
.tabla-conciliacion td{padding:15px 14px;font-size:12px;border-bottom:1px solid #f2f3f6;vertical-align:top}
.tabla-conciliacion tr:last-child td{border-bottom:0}
.tabla-conciliacion td strong{font-size:13px;font-weight:600}
.tabla-conciliacion td:first-child strong{font-size:12px;font-weight:600;display:block;max-width:300px}
.tabla-conciliacion td small{display:block;color:#8b94a1;font-size:10px;margin-top:4px;white-space:nowrap}
.tabla-conciliacion td small.actual{color:#4a5566;font-weight:600}
.tabla-conciliacion td small.otra-unidad{color:#8a5f1a}
.tabla-conciliacion .sin-dato{color:#a7adb7}
.tabla-conciliacion td.estados{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.estado-linea{display:inline-block;font-size:10px;font-weight:600;padding:4px 8px;border-radius:5px;white-space:nowrap}
.estado-linea.completa{color:#2a7c56;background:#e5f3eb}
.estado-linea.por-recibir{color:#5b6b80;background:#eef1f5}
.estado-linea.por-facturar,.estado-linea.por-asignar{color:#8a5f1a;background:#fbf1dc}
.estado-linea.sin-recibir{color:#b3394c;background:#fbe9ec}
.por-emparejar{margin:0 23px 18px;padding:14px 16px;border:1px solid #ead29c;border-radius:9px;background:#fdf8ec}
.por-emparejar h3{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:#8a5f1a}
.por-emparejar h3 .icon{width:15px;height:15px}
.por-emparejar>p{font-size:11px;color:#8d7650;margin:5px 0 8px}
.por-emparejar ul{list-style:none;margin:0;padding:0}
.por-emparejar li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #f1e3c2;font-size:11px}
.por-emparejar li strong{display:block;font-size:11px;font-weight:600;color:#4a4235}
.por-emparejar li span{display:block;color:#7f735d;margin-top:3px}
.por-emparejar li b{white-space:nowrap;font-weight:600;color:#4a4235}
.conciliacion .comparison-foot{flex-wrap:wrap}
/* En el teléfono cada línea es una tarjeta: el artículo arriba, las tres cantidades en fila y
   el estado debajo, sin desplazar la tabla de lado. */
@media(max-width:800px){.tabla-conciliacion{min-width:0}.tabla-conciliacion thead{display:none}
 .tabla-conciliacion tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;padding:16px 18px;border-top:1px solid var(--line)}
 .tabla-conciliacion td,.tabla-conciliacion td:first-child,.tabla-conciliacion td:last-child{padding:0;border:0}
 .tabla-conciliacion td:first-child,.tabla-conciliacion td.estados{grid-column:1/-1}
 .tabla-conciliacion td.estados{flex-direction:row;flex-wrap:wrap}
 .tabla-conciliacion td[data-titulo]::before{content:attr(data-titulo);display:block;font-size:9px;letter-spacing:.5px;color:#9aa1ab;margin-bottom:5px}
 .tabla-conciliacion td small{white-space:normal}
 .por-emparejar{margin:0 16px 16px}}

/* D43, factura que llega después (24-sep): el reparto propuesto bajo cada línea de la factura y
   las entregas con saldo por facturar junto al original. */
.fc-reparto{grid-column:1/-1;margin:10px 0 0;padding:9px 12px;border-radius:7px;background:#f3f6fa;font-size:12px;line-height:1.55;color:#4a5566}
.fc-reparto b{font-weight:650;color:#21242b}
.fc-reparto .fc-sin{color:#9b3446}
.fc-entregas{list-style:none;margin:6px 0 0;padding:0}
.fc-entregas li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:#5f6b7a}
.fc-entregas li b{font-weight:600;color:#21242b;white-space:nowrap}
.rc-acordado h4{font-size:12px;margin:16px 0 4px;color:#4a5566}
.por-emparejar li{flex-wrap:wrap}
.por-emparejar .emparejar{display:flex;gap:8px;align-items:center;flex-basis:100%;margin-top:4px}
.por-emparejar .emparejar select{flex:1;min-width:0;font-size:12px;padding:7px 8px;border:1px solid #e0cfa6;border-radius:7px;background:#fff}
.por-emparejar .emparejar .secondary{min-height:34px;padding:7px 12px;font-size:12px}
/* D43, parte 3 (25-sep): equivalencias por proveedor. Lo convertido dice cómo se convirtió; lo que
   espera su equivalencia la pide ahí mismo; y lo confirmado del proveedor se lista con «Anular». */
.tabla-conciliacion td small em{font-style:normal;color:#8b94a1}
.tabla-conciliacion td small.otra-unidad .text-btn{display:block;margin-top:4px;font-size:10px;font-weight:600;color:#8a5f1a;text-decoration:underline;text-underline-offset:2px}
.tabla-conciliacion td small.otra-unidad .text-btn:hover{color:var(--red)}
.por-emparejar .recordar{display:flex;align-items:flex-start;gap:8px;flex-basis:100%;margin:6px 0 0;font-size:11px;font-weight:500;color:#7f735d;line-height:1.5}
.por-emparejar .recordar input{flex:none;margin:2px 0 0;accent-color:var(--red)}
.por-emparejar .propuesta{flex-basis:100%;font-size:11px;color:#2a7c56;margin-top:5px}
.equivalencias{margin:0 23px 18px;padding:14px 16px;border:1px solid #d7e8dd;border-radius:9px;background:#f5faf7}
.equivalencias h3{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:#2a7c56}
.equivalencias h3 .icon{width:15px;height:15px}
.equivalencias>p{font-size:11px;color:#5f7a6b;margin:5px 0 8px}
.equivalencias ul{list-style:none;margin:0;padding:0}
.equivalencias li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #e1efe6;font-size:11px;color:#3f4a44}
.equivalencias li b{font-weight:650;color:#21242b}
.equivalencias li small{display:block;color:#8b94a1;font-size:10px;margin-top:3px}
.equivalencias li .text-btn{font-size:11px;color:#9b3446}
@media(max-width:800px){.equivalencias{margin:0 16px 16px}.tabla-conciliacion td small.otra-unidad .text-btn{white-space:normal}}
/* D43, parte 4, y D46 (25-sep): el precio neto en la tabla, la cuenta de cada factura con la
   tolerancia que se aplicó, el flete, lo que retiene el FC y lo aceptado sin conciliar. */
.estado-linea.precio{color:#8a5f1a;background:#fbf1dc}
.estado-linea.aceptado{color:#5b6b80;background:#eef1f5}
.tabla-conciliacion td small b.precio-distinto{font-weight:600;color:#8a5f1a}
.cuenta-documento{margin:12px 0 4px;padding:10px 12px;border-radius:6px;background:#f6f7f9;border:1px solid #eaedf1}
.cuenta-documento p{margin:0;font-size:12px;line-height:1.55;color:#4a5566}
.cuenta-documento p+p{margin-top:4px}
.cuenta-documento .cuenta-ok{color:#2a7c56;font-weight:600}
.cuenta-documento .cuenta-revisar{color:#9b3446;font-weight:600}
.cuenta-documento .cuenta-pendiente{color:#8a5f1a}
.cuenta-documento .cuenta-info{color:#687383}
.oc-fields .oc-flete{display:flex;align-items:center;gap:8px;grid-column:1/-1;font-size:12px;color:#596473}
.oc-fields .oc-flete input{width:auto;margin:0;padding:0;border:0;accent-color:var(--red)}
.fc-reparto .fc-flete{color:#5b6b80}
.por-emparejar .aceptar-suelta{flex-basis:100%;margin-top:4px}
.por-emparejar .aceptar-suelta .text-btn{font-size:11px;color:#8a5f1a;text-decoration:underline;text-underline-offset:2px}
.por-conciliar,.aceptadas,.cuentas-factura{margin:0 23px 18px;padding:14px 16px;border-radius:9px}
.por-conciliar{border:1px solid #efc6cd;background:#fdf4f5}
.aceptadas,.cuentas-factura{border:1px solid #eaedf1;background:#f8f9fb}
.por-conciliar h3,.aceptadas h3,.cuentas-factura h3{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650}
.por-conciliar h3{color:#9b3446}
.aceptadas h3,.cuentas-factura h3{color:#4a5566}
.por-conciliar h3 .icon,.aceptadas h3 .icon,.cuentas-factura h3 .icon{width:15px;height:15px}
.por-conciliar>p,.aceptadas>p{font-size:11px;color:#7b6b70;margin:5px 0 8px}
.aceptadas>p{color:#687383}
.por-conciliar ul,.aceptadas ul,.cuentas-factura ul{list-style:none;margin:6px 0 0;padding:0}
.por-conciliar li,.aceptadas li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #f1dde1;font-size:11px}
.aceptadas li{border-top-color:#e8ebf0}
.por-conciliar li strong,.aceptadas li strong{display:block;font-size:11px;font-weight:600;color:#3d4450}
.por-conciliar li span,.aceptadas li span{display:block;color:#6b7280;margin-top:3px;line-height:1.45}
.aceptadas li small{display:block;color:#8b94a1;font-size:10px;margin-top:3px}
.por-conciliar li .text-btn,.aceptadas li .text-btn{flex:none;font-size:11px;color:#9b3446}
.cuentas-factura li{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;padding:8px 0;border-top:1px solid #e8ebf0;font-size:11px;color:#4a5566}
.cuentas-factura li strong{font-weight:650;color:#21242b}
.cuentas-factura li span{line-height:1.45}
.cuentas-factura li.cuenta-ok span{color:#2a7c56}
.cuentas-factura li.cuenta-revisar span{color:#9b3446;font-weight:600}
.cuentas-factura li small{grid-column:2;color:#8b94a1;font-size:10px}
.cuentas-factura li .text-btn{font-size:10px;font-weight:600;color:#9b3446;text-decoration:underline;text-underline-offset:2px}
/* D51: la diferencia de dinero que Gerencia de Compras aceptó, con su motivo, a la vista de Administración. */
.cuentas-factura li small.diferencia-aceptada{color:#4a5566;line-height:1.45}
@media(max-width:800px){.por-conciliar,.aceptadas,.cuentas-factura{margin:0 16px 16px}
 .por-conciliar li,.aceptadas li{flex-wrap:wrap}
 .cuentas-factura li{grid-template-columns:1fr}.cuentas-factura li small{grid-column:1}}
.tabla-conciliacion td small b.precio-aceptado{font-weight:600;color:#5b6b80}

/* Mientras se sube y se lee un documento (25-sep): un giro en el rojo de la marca, mensajes que
   cambian solos y una línea que se va llenando con un brillo que la recorre. No mide el avance real. */
.solo-lector{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.trabajando{display:flex;gap:14px;align-items:center;margin:4px 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fff,#fbfbfc);animation:appear .25s ease-out}
.trabajando[hidden]{display:none}
.trabajando>div{flex:1;min-width:0}
.trabajando strong{display:block;font-size:13px;font-weight:600;color:var(--ink);animation:appear .35s ease-out}
.trabajando small{display:block;font-size:11px;color:#8b93a0;margin:3px 0 10px}
.trabajando-giro{flex:none;width:26px;height:26px;border-radius:50%;border:3px solid #f3d4d8;border-top-color:var(--red);animation:trabajando-giro .8s linear infinite}
.trabajando-barra{display:block;position:relative;height:5px;border-radius:99px;background:#eef0f3;overflow:hidden}
.trabajando-barra i{position:absolute;inset:0 auto 0 0;width:94%;border-radius:inherit;background:linear-gradient(90deg,#e8475a,var(--red));transform-origin:left;animation:trabajando-llenar 30s cubic-bezier(.25,.45,.35,1) forwards}
.trabajando-barra i::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:trabajando-brillo 1.6s ease-in-out infinite}
@keyframes trabajando-giro{to{transform:rotate(360deg)}}
@keyframes trabajando-llenar{from{transform:scaleX(.03)}to{transform:scaleX(1)}}
@keyframes trabajando-brillo{to{transform:translateX(100%)}}

/* D49 (26-sep): la remisión también ingresa inventario. En el expediente, cada remisión dice
   siempre dónde está —esperando el RMC o ya en inventario— en lugar de un botón para enviarla. */
.inventario-panel{padding:22px;margin-bottom:24px}
.inventario-panel .section-heading{margin-bottom:12px}
.ingresos{list-style:none;margin:0;padding:0}
.ingresos li{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.ingresos li:first-child{border-top:0}
.ingreso-icono{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.ingreso-icono .icon{width:18px;height:18px}
.ingresos li.esperando .ingreso-icono{background:#e8f0fa;color:#3f6ea3}
.ingresos li.en-inventario .ingreso-icono{background:#e1f1e8;color:#2a7c56}
.ingresos li>div{flex:1;min-width:0}
.ingresos strong{display:block;font-size:13px;font-weight:650}
.ingresos span:not(.badge):not(.ingreso-icono){display:block;font-size:11px;color:#7b8594;margin:3px 0 7px}
.ingresos small{display:block;font-size:11px;color:#6f7a89;margin-top:6px;line-height:1.45}
.ingresos .primary{flex:none}
.ingreso-nota{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border-radius:9px;background:#f6f7f9;font-size:12px;color:#5d6674}
.ingreso-nota .icon{width:15px;height:15px;flex:none;color:#7b8594}
/* Administración: la remisión va primero y a todo el ancho, en azul. */
.carril.inventario{grid-column:1/-1;border-color:#c7d8ee;border-left:5px solid #3f6ea3}
.carril.inventario.vacio{border-color:var(--line);border-left-width:1px}
.carril.inventario>header{background:#f1f6fc}
.carril.inventario.vacio>header{background:#fafbfc}
.carril.inventario .carril-icono{background:#dde9f7;color:#3f6ea3}
.carril.inventario.vacio .carril-icono{background:#eef0f3;color:#9aa2ad}
.carril.inventario>header p{color:#3f6ea3}
.carril.inventario.vacio>header p{color:#8a93a1}
.carril.inventario .carril-cuenta{background:#3f6ea3;color:#fff}
.carril.inventario.vacio .carril-cuenta{background:#eef0f3;color:#a0a7b2}
.carril.inventario .tarea-antigua{color:#3f6ea3;background:#e8f0fa}
.carril.inventario .tarea-accion{background:#fff;color:#3f6ea3;border:1px solid #c7d8ee}
.carril.inventario .tarea-fila:hover .tarea-accion{background:#f1f6fc}
.carril.inventario.tuyo .tarea-accion{background:#3f6ea3;color:#fff;border-color:#3f6ea3}
.carril.inventario.tuyo .tarea-fila:hover .tarea-accion{background:#325b89}
/* La factura frente a lo ingresado con la remisión: en la tabla del expediente y antes del FC. */
.frente-ingresado{margin:0 23px 18px;padding:14px 16px;border-radius:9px;border:1px solid #dfe7f2;background:#f7f9fc}
.frente-ingresado h3{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:#3a5a80}
.frente-ingresado h3 .icon{width:15px;height:15px}
.frente-ingresado>p{font-size:11px;color:#687383;margin:5px 0 8px}
.frente-ingresado ul{list-style:none;margin:6px 0 0;padding:0}
.frente-ingresado li{padding:8px 0;border-top:1px solid #e3e9f1;font-size:11px;color:#4a5566}
.frente-ingresado li strong{display:block;font-weight:650;color:#21242b}
.frente-ingresado li span{display:block;margin-top:3px;line-height:1.45}
.frente-ingresado li small{display:block;margin-top:4px;font-size:10px;font-weight:600;color:#6f7a89}
.frente-ingresado li.de-menos small{color:#2a7c56}
.frente-ingresado li.de-mas small{color:#9b3446}
.nota-ingreso{display:flex;gap:10px;margin-top:14px;padding:12px 14px;border-radius:10px;background:#f1f6fc;border:1px solid #c7d8ee;color:#3f6ea3}
.nota-ingreso .icon{width:16px;height:16px;margin-top:2px;flex:none}
.nota-ingreso strong{font-size:12px;font-weight:650}
.nota-ingreso p{font-size:12px;color:#3d4a5c;margin-top:4px;line-height:1.5;overflow-wrap:anywhere}
.nota-ingreso small{display:block;font-size:11px;color:#5d7390;margin-top:6px}
@media(max-width:800px){.inventario-panel{padding:18px 16px}.ingresos li{flex-wrap:wrap}.ingresos .primary{width:100%}.frente-ingresado{margin:0 16px 16px}}
/* D50: avisos que no se van. El recuadro queda a la vista hasta que la persona acepte, sin tapar la página. */
.avisos-por-aceptar{position:fixed;right:24px;bottom:24px;z-index:90;width:370px;max-width:calc(100vw - 32px);background:white;border:1px solid #e4e6ec;border-top:3px solid var(--red);border-radius:12px;box-shadow:0 18px 50px #151b3030;padding:16px 18px 14px;color:var(--ink)}
.avisos-por-aceptar .apa-cabeza{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:9px}
.avisos-por-aceptar .apa-marca{font-size:8px;letter-spacing:1.4px;font-weight:700;color:var(--red)}
.avisos-por-aceptar .apa-mas{font-size:10px;color:var(--muted)}
.avisos-por-aceptar strong{display:block;font-size:14px;font-weight:650;letter-spacing:-.2px}
.avisos-por-aceptar p{font-size:12px;line-height:1.6;color:#5d6570;margin:6px 0 4px;overflow-wrap:anywhere}
.avisos-por-aceptar small{font-size:10px;color:var(--muted)}
.avisos-por-aceptar .apa-acciones{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.avisos-por-aceptar .apa-acciones .primary,.avisos-por-aceptar .apa-acciones .secondary{min-height:38px;padding:8px 16px;font-size:12px}
.avisos-por-aceptar .apa-windows{margin-top:10px;font-size:11px;color:var(--red)}
.avisos-windows{align-items:center;justify-content:space-between}
.avisos-windows .secondary{min-height:34px;padding:6px 14px;font-size:11px;flex:none}
@media(max-width:800px){.avisos-por-aceptar{left:16px;right:16px;bottom:16px;width:auto;max-width:none}.avisos-por-aceptar .apa-acciones>*{flex:1}}

/* Rechazar factura (D47, 28-sep): lo contrario de cerrar, en el rojo de «por conciliar». La factura
   rechazada se ve con quién, cuándo y por qué, y en la conciliación va aparte: ya no cuenta. */
.progress-panel .rechazar{display:flex;margin:10px auto 0;color:#9b3446}
.admin-context.rechazada{border:1px solid #efc6cd;box-shadow:inset 4px 0 0 #b8404f}
.admin-context.rechazada .admin-facts strong{overflow-wrap:anywhere}
.admin-context .nota-rechazo{margin-top:14px;font-size:12px;line-height:1.6;color:#7b6b70}
.rechazadas{margin:0 23px 18px;padding:14px 16px;border-radius:9px;border:1px solid #efc6cd;background:#fdf4f5}
.rechazadas h3{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:#9b3446}
.rechazadas h3 .icon{width:15px;height:15px}
.rechazadas>p{font-size:11px;color:#7b6b70;margin:5px 0 8px}
.rechazadas ul{list-style:none;margin:6px 0 0;padding:0}
.rechazadas li{padding:8px 0;border-top:1px solid #f1dde1;font-size:11px}
.rechazadas li strong{display:block;font-size:11px;font-weight:600;color:#3d4450}
.rechazadas li span{display:block;color:#6b7280;margin-top:3px;line-height:1.45;overflow-wrap:anywhere}
.rechazadas li small{display:block;color:#8b94a1;font-size:10px;margin-top:3px}
@media(max-width:800px){.rechazadas{margin:0 16px 16px}}
/* D47, paso 2: la factura de reemplazo. La propuesta al cargar la factura y el vínculo en el expediente. */
.fc-reemplazo{min-width:0;margin:16px 0;padding:14px;border:1px solid #efc6cd;border-radius:6px;background:#fdf4f5}
.fc-reemplazo legend{padding:0 4px;font-size:12px;font-weight:650;color:#9b3446}
.fc-reemplazo .oc-aceptacion{margin-top:0}
.fc-reemplazo .oc-aceptacion+.oc-aceptacion{margin-top:10px}
.reemplazo-nota{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 12px;border-radius:7px;background:#f3f6fa;font-size:12px;line-height:1.55;color:#4a5566}
.reemplazo-nota .icon{width:15px;height:15px;flex:none;margin-top:2px}
.enlace-factura,.rechazadas li .enlace-factura{display:inline;font-size:inherit;font-weight:650;color:var(--red);text-decoration:underline;text-underline-offset:2px;vertical-align:baseline}
.rechazadas li small.reemplazo{color:#3d6b52}
/* D53: personas y accesos. Mismos componentes del prototipo; solo el espaciado de las secciones del modal. */
.accesos-page .row-title small{font-weight:500;color:#8b94a1}
.accesos-page .purchases-table td>.secondary{font-size:11px;white-space:nowrap}
#modal .accesos-seccion{border-top:1px solid #eaedf1;padding-top:18px;margin-top:18px}
#modal .accesos-seccion:first-child{border-top:0;padding-top:0;margin-top:4px}
#modal .accesos-seccion .form-actions{margin-top:6px}
#modal form[data-acceso-form] input:disabled{background:#f5f6f8;color:#919aa8}
#modal .accesos-secciones h3,#modal .accesos-titulo{font-size:13px;margin:0 0 10px;color:var(--ink)}
#modal .accesos-titulo{border-top:1px solid #eaedf1;padding-top:18px;margin-top:22px}
#modal .ayuda-roles{margin:2px 0 6px;font-size:11px;color:#687383}
#modal .ayuda-roles summary{cursor:pointer;color:var(--red);font-weight:600;margin-bottom:10px}
#modal .accesos-historia{margin-top:12px}
#modal .accesos-historia li{padding-bottom:16px}

/* D54: Facturas recibidas. Los expedientes de la factura al cargarla y en su pantalla, con los
   mismos listados de los demás paneles; la línea que puede cubrir dos pedidos, con su explicación. */
.fc-expedientes{margin:14px 0 18px;padding:14px 16px;border:1px solid #eaedf1;border-radius:9px;background:#f8f9fb}
.fc-expedientes h3,.fa-panel h3{font-size:13px;margin:12px 0 4px}
.fc-expedientes h3:first-child{margin-top:0}
.fc-elegidos,.fc-candidatos{list-style:none;margin:6px 0 0;padding:0}
.fc-elegidos li,.fc-candidatos li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:12px}
.fc-elegidos li strong,.fc-candidatos li strong{display:block;font-weight:650;color:#21242b}
.fc-elegidos li span,.fc-candidatos li span{display:block;color:#5f6b7a;margin-top:2px}
.fc-elegidos li small,.fc-candidatos li small{display:block;font-size:11px;color:#8b94a1;margin-top:3px;line-height:1.5}
.fc-elegidos li .secondary,.fc-candidatos li .secondary,.fc-candidatos li .primary{flex:none;min-height:34px;padding:7px 12px;font-size:12px}
.fc-elegidos a,.fc-candidatos a{color:inherit}
.fc-ver-todos{display:block;margin-top:8px;padding:6px 0;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.fc-sola,.fa-termina{color:#2a7c56!important}
.fc-citada{color:#8a5f1a!important}
.fa-sigue{color:#8a5f1a!important}
.fc-proveedor{display:block;margin-top:12px;font-size:12px}
.fc-proveedor select{width:100%;margin-top:6px}
.fa-page .fa-grid{margin-top:22px}
.fa-datos{display:flex;flex-direction:column;gap:18px;min-width:0}
.fa-panel{padding:20px 22px;min-width:0}
.fa-panel .section-heading{margin-bottom:6px}
.fa-panel .tabla-conciliacion td small{display:block;font-size:11px;color:#8b94a1;margin-top:3px;line-height:1.5}
.fa-panel .emparejar{display:flex;gap:8px;align-items:center}
.fa-panel .emparejar select{flex:1;min-width:0;font-size:12px;padding:7px 8px;border:1px solid #e0cfa6;border-radius:7px;background:#fff}
.fa-panel .emparejar .secondary{min-height:34px;padding:7px 12px;font-size:12px}
.fa-explicacion{display:block;max-width:320px;white-space:normal;font-size:11px;line-height:1.5;color:#8a5f1a;margin-top:6px}
.fa-nota{margin-top:10px}
.fa-historia{margin-top:12px;font-size:12px;color:#5f6b7a}
.fa-historia summary{cursor:pointer;color:var(--red);font-weight:600}
.fa-historia ul{margin:8px 0 0 16px;padding:0}
.fa-historia li{margin:4px 0;line-height:1.5}
.fa-cuenta p{font-size:13px;line-height:1.6;margin:6px 0}
.fa-cuenta .cuenta-revisar{color:#b3394c}
.fa-cuenta .cuenta-ok,.fa-cuenta .cuenta-aceptada{color:#2a7c56}
.fa-cuenta small{display:block;font-size:11px;color:#5f6b7a;margin-top:6px}
.fa-novedades{list-style:none;margin:10px 0 0;padding:0}
.fa-novedades li{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#8a5f1a;padding:6px 0}
.fa-novedades .icon{width:15px;height:15px;flex:none;margin-top:1px}
.fa-cierre{display:flex;gap:10px;margin-top:14px;padding:12px 14px;border-radius:8px;background:#f3f6fa;font-size:12px;color:#4a5566}
.fa-cierre .icon{width:16px;height:16px;flex:none}
.fa-cierre ul{margin:6px 0 0 16px;padding:0}
.fa-cierre li{margin:3px 0;line-height:1.5}
.fa-cufe{font-size:11px!important;overflow-wrap:anywhere;font-family:ui-monospace,Menlo,Consolas,monospace}
.factura-nota{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12px;color:#5f6b7a}
.factura-nota .icon{width:15px;height:15px;flex:none}
.factura-nota a{color:var(--red);font-weight:600}
.periodo-facturas{display:flex;align-items:center;gap:8px;font-size:12px;color:#5f6b7a}
.periodo-facturas select{font-size:12px;padding:6px 8px;border:1px solid #dfe3ea;border-radius:7px;background:#fff}
@media(max-width:600px){.fc-elegidos li,.fc-candidatos li{flex-wrap:wrap}.fa-panel{padding:16px}.fa-panel .emparejar{flex-wrap:wrap}}

/* Fase 2 (D42, punto 5): el FC por revalidar, en ámbar, con lo que lo abrió, quién sigue y la
   historia de revalidaciones y correcciones del número. «Lista para revalidar», en verde: le toca
   a Administración. */
.admin-context.por-revalidar{border:1px solid #ead29c;box-shadow:inset 4px 0 0 #c48a2c}
.revalidacion-fc{margin-top:14px;padding:16px 18px;border-radius:10px;background:#fafbfc;border:1px solid var(--line)}
.revalidacion-fc.abierta{background:#fdf7e9;border-color:#f0dfb8}
.revalidacion-cabeza{display:flex;align-items:center;gap:10px;color:#94641a}
.revalidacion-cabeza .icon{width:18px;height:18px;flex:none}
.revalidacion-cabeza strong{display:block;font-size:14px;font-weight:650;color:#6f4b12}
.revalidacion-cabeza small{display:block;font-size:11px;color:#9a7433;margin-top:2px}
.revalidacion-fc blockquote{margin:12px 0 10px;padding:10px 14px;background:#fff;border-left:3px solid #c48a2c;border-radius:0 6px 6px 0;font-size:13px;line-height:1.55;color:#3f3522;white-space:pre-line;overflow-wrap:anywhere}
.revalidacion-sigue{font-size:12px;font-weight:600;color:#8a5f1a;line-height:1.6}
.revalidacion-sigue.lista{color:#2a7c56}
.revalidacion-fc>.muted{font-size:12px;margin-top:4px}
.revalidacion-fc .fa-historia{margin-top:10px}
.revalidacion-fc .real-actions{margin-top:14px;align-items:center}
.fc-por-revalidar{color:#94641a}
.badge.nc.fc-numero{margin-top:10px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.nota-fc-bloqueada{display:flex;gap:8px;align-items:flex-start;margin:0 23px 16px;padding:11px 13px;border-radius:9px;background:#fdf7e9;border:1px solid #f0dfb8;font-size:12px;line-height:1.55;color:#6f5a35}
.nota-fc-bloqueada .icon{width:15px;height:15px;flex:none;margin-top:2px;color:#94641a}
.fa-panel .nota-fc-bloqueada{margin:10px 0 0}
/* Administración: el carril «FC por revalidar», a todo el ancho, en ámbar mientras Compras gestiona;
   la que ya está lista lleva su acción en verde, porque le toca a Administración. */
.carril.revalidar{grid-column:1/-1;border-color:#ead29c;border-left:5px solid #c48a2c}
.carril.revalidar.vacio{border-color:var(--line);border-left-width:1px}
.carril.revalidar>header{background:#fdf7e9}
.carril.revalidar.vacio>header{background:#fafbfc}
.carril.revalidar .carril-icono{background:#f7e8c6;color:#94641a}
.carril.revalidar.vacio .carril-icono{background:#eef0f3;color:#9aa2ad}
.carril.revalidar>header p{color:#8a5f1a}
.carril.revalidar.vacio>header p{color:#8a93a1}
.carril.revalidar .carril-cuenta{background:#f4dca8;color:#7a5315}
.carril.revalidar.vacio .carril-cuenta{background:#eef0f3;color:#a0a7b2}
.carril.revalidar .tarea-accion{background:#fff;color:#8a5f1a;border:1px solid #ead29c}
.carril.revalidar .tarea-fila:hover .tarea-accion{background:#fdf7e9}
.carril.revalidar.tuyo .tarea-fila.lista .tarea-accion{background:#2f8a62;color:#fff;border-color:#2f8a62}
.carril.revalidar.tuyo .tarea-fila.lista:hover .tarea-accion{background:#256f4e}
.tarea-lista{display:inline-block;margin-left:9px;font-size:10px;font-weight:650;color:#2a7c56;background:#e1f1e8;padding:3px 7px;border-radius:5px;vertical-align:2px}
.opciones-helisa{display:grid;gap:8px;margin:4px 0 14px}
.opciones-helisa .check-label{align-items:flex-start}
