﻿/* ══ Ficha del trabajo (DetalleTrabajoPage de la app) ══════════════════════════ */
.fi { display: flex; flex-direction: column; padding-bottom: 32px; }
.fi button { font-family: inherit; }

.fi-comentario {
    display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 14px; padding: 6px 14px; margin-bottom: 10px;
}
.fi-comentario span { font-size: 14px; }
.fi-comentario input {
    flex: 1; min-width: 0; border: none; outline: none; background: transparent; color: #8A6D3B; font-size: 16px;
    padding: 8px 0; font-family: inherit;
}
.fi-comentario input::placeholder { color: #B8A99A; }

.fi-estado {
    display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 14px; padding: 10px 14px; margin-bottom: 12px;
}
.fi-estado-izq { flex: 1; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.fi-chip {
    border: none; border-radius: 8px; padding: 5px 10px; font-size: 12px; font-weight: 700; cursor: pointer;
    display: inline-flex; align-items: center; gap: 5px;
}
.fi-chip small { font-size: 8px; }
.fi-a-trabajos {
    height: 34px; border: none; border-radius: 10px; background: #8A6D3B; color: #fff; font-size: 12px; padding: 0 12px; cursor: pointer;
}
.fi-montaje, .fi-encimera {
    border: none; background: transparent; cursor: pointer; display: flex; flex-direction: column; align-items: center;
    padding: 0 6px; line-height: 1.1;
}
.fi-montaje span { font-size: 20px; }
.fi-montaje b { font-size: 10px; }

.fi-tarjeta { background: #fff; border-radius: 16px; overflow: hidden; margin-bottom: 10px; }
.fi-cab {
    width: 100%; display: flex; align-items: center; gap: 10px; border: none; background: transparent; padding: 14px 16px;
    cursor: pointer; text-align: left;
}
.fi-cab span:first-child { font-size: 14px; }
.fi-cab b { flex: 1; font-size: 13px; color: #3D2B1F; }
.fi-flecha { font-size: 14px; color: #B8A99A; display: flex; align-items: center; }
.fi-sep { height: 1px; background: #F0EAE0; }
.fi-sep-in { height: 1px; background: #F0EAE0; margin: 0 14px; }
.fi-desc-html, .fi-desc-txt { padding: 12px 16px 4px; font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; line-height: 1.45; }
.fi-desc-txt { white-space: pre-wrap; }
.fi-btn-sec {
    display: block; width: calc(100% - 28px); margin: 4px 14px 14px; height: 42px; border: none; border-radius: 12px;
    background: #E8DFD2; color: #3D2B1F; font-size: 13px; cursor: pointer; white-space: pre;
}

/* Filas de datos */
.fi-campo { display: flex; flex-direction: column; gap: 1px; padding: 6px 14px; }
.fi-campo.con-icono { flex-direction: row; align-items: center; gap: 8px; }
.fi-campo-izq { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fi-campo-cab { display: flex; align-items: center; gap: 8px; }
.fi-campo-cab small { font-size: 10px; color: #9CA3AF; }
.fi-campo-cab em { font-style: normal; font-size: 10px; }
.fi-campo-cab em.ok { color: #2F6B2F; }
.fi-campo-cab em.mal { color: #C0392B; }
.fi-nif-mal { color: #C0392B; font-size: 11px; margin-top: 2px; }
.fi-entrada {
    width: 100%; box-sizing: border-box; border: none; border-bottom: 1px solid transparent; outline: none; background: transparent;
    color: #3D2B1F; font-size: 16px; padding: 6px 0; font-family: inherit; border-radius: 0;
}
.fi-entrada:focus { border-bottom-color: #C9B99A; }
.fi-dir { display: flex; gap: 6px; }
.fi-piso { width: 96px; flex-shrink: 0; }
.fi-sugerencias { display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; margin: 2px 0 6px; }
.fi-sugerencias button {
    border: none; border-bottom: 1px solid #F0E8DC; background: #FBF7F1; text-align: left; padding: 11px 10px; font-size: 14px;
    color: #3D2B1F; cursor: pointer; display: flex; align-items: baseline; gap: 8px; font-family: inherit;
    -webkit-tap-highlight-color: rgba(201, 185, 154, .35);
}
.fi-sugerencias button span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.fi-sugerencias button small, .dir-sug small { font-size: 11px; color: #A09080; white-space: nowrap; }
.fi-campo-iconos { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.fi-icono { font-size: 15px; color: #2563EB; text-decoration: none; padding: 6px 8px; display: flex; align-items: center; }
.fi-campo-btn {
    width: 100%; border: none; background: transparent; text-align: left; flex-direction: row; align-items: center; gap: 8px;
    padding: 12px 14px; cursor: pointer; color: inherit;
}
.fi-campo-btn:disabled { cursor: default; }
.fi-valor { font-size: 13px; color: #3D2B1F; overflow-wrap: anywhere; }
.fi-valor.enlace { color: #2563EB; }
.fi-pastilla { align-self: flex-start; border-radius: 11px; padding: 3px 10px; font-size: 12px; font-weight: 700; }
.fi-chev { font-size: 20px; color: #9CA3AF; }
.fi-lapiz { font-size: 13px; color: #B8A99A; }
.fi-prevision { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 2px 0; }
.fi-fecha {
    border: 1px solid #E0D7C8; border-radius: 10px; padding: 5px 8px; font-size: 14px; color: #3D2B1F; background: #fff; font-family: inherit;
}
.fi-chipbtn {
    height: 34px; border: 1px solid #E0D7C8; border-radius: 10px; background: #F5F1EA; padding: 0 10px; font-size: 12px; cursor: pointer;
}
.fi-chipbtn.azul { color: #2563EB; }
.fi-chipbtn.rojo { color: #C0392B; }
.fi-flechita { font-size: 13px; color: #9CA3AF; margin: 0 2px; }
.fi-linea {
    width: 100%; display: flex; align-items: center; gap: 10px; border: none; background: transparent; padding: 12px 16px;
    cursor: pointer; text-align: left;
}
.fi-linea span:first-child { font-size: 16px; }
.fi-linea-tx { flex: 1; font-size: 13px; color: #3D2B1F; }
.fi-linea-tx.apagado { color: #A09080; }
.fi-linea b { font-size: 13px; }
.fi-linea b.azul { color: #2D6A9F; }
.fi-linea b.apagado { color: #B8A99A; font-weight: 400; }

/* Tarjetas de documentos: todas iguales y bajan de línea si no caben */
.fi-docs { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 10px; }
.fi-doc {
    position: relative; width: calc(50% - 4px); height: 84px; border: none; border-radius: 16px; background: #fff; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 4px 6px;
}
@media (min-width: 480px) { .fi-doc { width: 150px; } }
.fi-doc > span:not(.fi-doc-emoji) { font-size: 12px; color: #6B5A4E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.fi-doc.vacio, .fi-doc.vacio-azul { background: #ECECEC; }
.fi-doc.vacio { opacity: .75; }
.fi-doc-emoji { font-size: 22px; line-height: 1; }
.fi-mas { position: absolute; top: 2px; right: 6px; font-style: normal; font-size: 16px; padding: 2px 4px; }
.fi-mas.gris { color: #9B8B7A; }
.fi-mas.azul { color: #2563EB; font-weight: 700; }
.fi-mas.marron { color: #8A6D3B; }

.fi-seccion { background: #fff; border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
.fi-seccion-in { padding: 0 12px 14px; }
.fi-seccion .hoy-title:first-child, .fi-seccion-in .hoy-title:first-child { margin-top: 0; }
.fi-fotos-cab { display: flex; align-items: center; gap: 10px; margin: 6px 6px; }
.fi-fotos-cab b { font-size: 13px; color: #3D2B1F; }

/* Cambiar estado */
.fi-estados { width: 100%; max-width: 460px; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 30px rgba(0,0,0,.25); }
.fi-estados-tit { font-size: 14px; font-weight: 700; color: #3D2B1F; padding: 14px 16px 10px; border-bottom: 1px solid #F0EAE0; }
.fi-estado-op {
    width: 100%; display: flex; align-items: center; gap: 12px; border: none; border-bottom: 1px solid #F0EAE0; background: transparent;
    padding: 12px 16px; font-size: 14px; color: #3D2B1F; cursor: pointer; text-align: left; font-family: inherit;
}
.fi-estado-op.actual { font-weight: 700; }
.fi-estado-op.verde { color: #2E7D5B; font-weight: 700; border-bottom: none; }
.fi-estados-sep { height: 6px; background: #E4DCCF; }
.fi-punto { width: 12px; height: 12px; border-radius: 6px; flex-shrink: 0; }
.fi-opcion {
    display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid; border-radius: 12px; padding: 12px 14px;
    font-size: 14px; color: #3D2B1F; cursor: pointer; text-align: left; font-family: inherit;
}

/* Visor de planos */
.fi-visor {
    position: fixed; inset: 0; z-index: 2600; background: #000; display: flex; align-items: center; justify-content: center;
}
.fi-visor img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fi-visor-ant, .fi-visor-sig {
    position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 64px; border: none; background: rgba(0,0,0,.35);
    color: #fff; font-size: 34px; cursor: pointer;
}
.fi-visor-ant { left: 0; border-radius: 0 12px 12px 0; }
.fi-visor-sig { right: 0; border-radius: 12px 0 0 12px; }
.fi-visor-pie { position: absolute; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); color: #fff; font-size: 13px; }
.fi-visor-cerrar {
    position: absolute; top: calc(12px + env(safe-area-inset-top, 0px)); right: 12px; width: 40px; height: 40px; border-radius: 20px;
    border: none; background: rgba(255,255,255,.15); color: #fff; font-size: 18px; cursor: pointer;
}

/* Avisar a una persona */
.fi-gente { display: flex; flex-wrap: wrap; gap: 6px; }
.fi-persona {
    border: 1px solid #E4DAC9; border-radius: 16px; padding: 7px 12px; background: #fff; color: #3D2B1F; font-size: 13px; cursor: pointer;
}
.fi-persona.sel { background: #3D2B1F; color: #C9B99A; border-color: #3D2B1F; }

/* Modales del contrato */
.fi-modal {
    background: #fff; border-radius: 16px; padding: 20px; width: 100%; max-width: 520px; max-height: 90vh; overflow-y: auto;
    display: flex; flex-direction: column; gap: 8px;
}
.fi-modal-paso { display: flex; align-items: center; gap: 8px; color: #8A6D3B; font-size: 13px; }
.fi-check { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #3D2B1F; }
.fi-check small { margin-left: auto; color: #9CA3AF; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 45%; }
.fi-modal-sep { height: 1px; background: #F0EAE0; margin: 6px 0; }
.fi-modal-fila { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fi-modal-fila b { color: #3D2B1F; font-size: 14px; }
.fi-modal-fila small { color: #8A6D3B; font-size: 12px; }
.fi-plantillas { display: flex; flex-wrap: wrap; gap: 6px; }
.fi-plantilla { display: inline-flex; border: 1px solid #ddd; border-radius: 10px; overflow: hidden; }
.fi-plantilla.def { border-color: #8A6D3B; }
.fi-plantilla button { border: none; background: #fff; padding: 6px 10px; font-size: 12px; color: #3D2B1F; cursor: pointer; }
.fi-plantilla .estrella { color: #9CA3AF; padding: 6px 7px; }
.fi-plantilla.def .estrella { color: #E1A100; }
.fi-pago { display: flex; align-items: center; gap: 6px; }
.fi-pago input {
    border: 1px solid #E4DAC9; border-radius: 8px; padding: 7px; font-size: 16px; color: #3D2B1F; font-family: inherit; min-width: 0;
}
.fi-pago input[type=number] { width: 64px; flex-shrink: 0; }
.fi-pago input:not([type=number]) { flex: 1; }
.fi-pago b { font-size: 12px; color: #3D2B1F; white-space: nowrap; }
.fi-pago button { border: none; background: #F0EAE0; border-radius: 8px; padding: 7px 9px; cursor: pointer; }
.fi-enlace { border: none; background: transparent; color: #8A6D3B; font-size: 12px; padding: 0; cursor: pointer; }
.fi-btn-peq { border: none; border-radius: 10px; background: #E8DFD2; color: #3D2B1F; font-size: 12px; padding: 9px 12px; cursor: pointer; }
.fi-btn-peq.oscuro { background: #3D2B1F; color: #fff; }

/* Editor de la descripción */
.desc { display: flex; flex-direction: column; gap: 8px; }
.desc-barra { display: flex; flex-wrap: wrap; gap: 6px; }
.desc-barra button {
    min-width: 42px; height: 38px; border: none; border-radius: 12px; background: #fff; color: #3D2B1F; font-size: 14px; font-weight: 700;
    cursor: pointer; font-family: inherit;
}
.desc-barra .desc-color { min-width: 30px; width: 30px; height: 30px; margin-top: 4px; }
.desc-editor-marco { background: #fff; border-radius: 16px; overflow: hidden; }
.desc-editor {
    min-height: 45vh; padding: 14px 14px 40px; outline: none; font-size: 16px; color: #3D2B1F; line-height: 1.45;
    -webkit-user-select: text; user-select: text; overflow-wrap: anywhere;
}
.desc-editor:empty:before { content: 'Escribe aquí la descripción…'; color: #B8A99A; }
.desc-estado { font-size: 11px; color: #A09080; margin: 0 4px; }

/* ══ Fotos por secciones (BuildFotosSecciones de la app) ══════════════════════ */
.ff-cab { padding: 13px 12px 13px 16px; user-select: none; -webkit-user-select: none; }
.ff-cab b { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ff-n { font-style: normal; font-weight: 400; font-size: 10px; color: #6B5A4E; background: #F0EAE0; border-radius: 9px; padding: 2px 7px; }
.ff-mas {
    position: relative; width: 30px; height: 30px; border-radius: 15px; border: none; background: #E8DFD2; color: #3D2B1F;
    font-size: 14px; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; overflow: hidden;
}
.ff-archivo { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
.ff-cuerpo { padding: 10px 14px 12px; }
.ff-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.ff-chip {
    border: 1px solid #EDE5D8; background: #fff; color: #6B5A4E; border-radius: 12px; padding: 5px 10px; font-size: 11px; cursor: pointer;
}
.ff-chip.activo { background: #3D2B1F; border-color: #3D2B1F; color: #C9B99A; }
.ff-dia { font-size: 12px; font-weight: 700; color: #6B5A4E; margin: 8px 0 4px 2px; }
.ff-dia:first-child { margin-top: 0; }
.ff-vacio { font-size: 12px; color: #9CA3AF; padding: 2px; }
.ff-ayuda { font-size: 11px; color: #9CA3AF; margin: 0 0 6px 2px; }
.ff-rejilla { display: flex; flex-wrap: wrap; gap: 8px; }
.ff-hueco { width: 96px; display: flex; flex-direction: column; }
.ff-celda { position: relative; width: 96px; height: 96px; border-radius: 12px; overflow: hidden; background: #E5DDD4; }
.ff-celda img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: pointer; -webkit-touch-callout: none; }
.ff-menu {
    position: absolute; top: 4px; right: 4px; width: 26px; height: 26px; border-radius: 13px; border: none;
    background: rgba(0,0,0,.7); color: #fff; font-size: 14px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.ff-pendiente {
    position: absolute; left: 4px; bottom: 6px; background: #D97706; color: #fff; font-size: 9px; border-radius: 8px; padding: 2px 6px;
    pointer-events: none;
}
.ff-quien { font-size: 10px; color: #9CA3AF; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.ff-anadir {
    position: relative; width: 96px; height: 96px; box-sizing: border-box; border-radius: 12px; background: #F5F1EA; border: 1px solid #DCD2C4;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; overflow: hidden;
}
.ff-anadir b { font-size: 26px; color: #2563EB; line-height: 1; }
.ff-anadir span { font-size: 11px; color: #9B8B7A; }
.ff-op { position: relative; display: block; overflow: hidden; cursor: pointer; text-align: center; box-sizing: border-box; }
.ff-error { background: #FDECEA; color: #C0392B; font-size: 12px; border-radius: 10px; padding: 8px 12px; margin: 4px 0 10px; }
.ff-texto {
    width: 100%; box-sizing: border-box; border: 1px solid #E5DDD4; border-radius: 10px; padding: 8px 10px; font-size: 16px;
    font-family: inherit; color: #3D2B1F; margin-top: 8px; resize: vertical;
}
.ff-girando {
    width: 16px; height: 16px; border-radius: 50%; border: 2px solid #D8CCBC; border-top-color: #3D2B1F; animation: ff-giro .8s linear infinite;
}
@keyframes ff-giro { to { transform: rotate(360deg); } }

/* Medición final */
.fm { display: flex; flex-direction: column; gap: 8px; }
.fm-notas { background: #FAF7F2; border: 1px solid #F0EAE0; border-radius: 12px; padding: 8px; }
.fm-texto {
    width: 100%; box-sizing: border-box; min-height: 90px; border: none; outline: none; background: transparent; resize: none; overflow: hidden;
    font-size: 16px; font-family: inherit; color: #3D2B1F; line-height: 1.4;
}
.fm-texto::placeholder { color: #B8A99A; }
.fm-firma { font-size: 11px; color: #A09080; }

/* ══ Visor de fotos (ImagenFullPage) ══════════════════════════════════════════ */
html.vf-abierto, html.vf-abierto body { overflow: hidden; }
.vf { position: fixed; inset: 0; z-index: 2700; background: #000; display: flex; flex-direction: column; }
.vf-cab {
    display: flex; align-items: center; gap: 8px; color: #fff;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 10px 8px;
}
.vf-tit { flex: 1; min-width: 0; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vf-num { font-size: 13px; color: #ccc; font-variant-numeric: tabular-nums; }
.vf-btn {
    width: 40px; height: 40px; border-radius: 20px; border: none; background: rgba(255,255,255,.15); color: #fff; font-size: 17px; cursor: pointer;
    flex-shrink: 0;
}
.vf-tira {
    flex: 1; min-height: 0; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none; overscroll-behavior: contain;
}
.vf-tira::-webkit-scrollbar { display: none; }
.vf-hoja { flex: 0 0 100%; width: 100%; height: 100%; scroll-snap-align: center; scroll-snap-stop: always; display: flex; align-items: center; justify-content: center; }
.vf-hoja img { max-width: 100%; max-height: 100%; object-fit: contain; user-select: none; -webkit-user-select: none; }
.vf-flecha {
    position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 64px; border: none; background: rgba(0,0,0,.35);
    color: #fff; font-size: 32px; cursor: pointer;
}
.vf-flecha.izq { left: 0; border-radius: 0 12px 12px 0; }
.vf-flecha.der { right: 0; border-radius: 12px 0 0 12px; }
@media (hover: none) { .vf-flecha { display: none; } }
.vf-minis {
    display: flex; gap: 6px; overflow-x: auto; padding: 8px 10px calc(10px + env(safe-area-inset-bottom, 0px)); scrollbar-width: none;
}
.vf-minis::-webkit-scrollbar { display: none; }
.vf-minis img { width: 56px; height: 56px; flex-shrink: 0; object-fit: cover; border-radius: 8px; opacity: .5; border: 2px solid transparent; cursor: pointer; }
.vf-minis img.activa { opacity: 1; border-color: #fff; }

/* ══ Diálogos (Dialogos.razor) ═══════════════════════════════════════════════ */
.dlg-capa { z-index: 3000; }
.dlg-ops { max-height: 60vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.dlg-campo {
    width: 100%; box-sizing: border-box; border: 1px solid #E0D7C8; border-radius: 10px; padding: 10px 12px; font-size: 16px;
    font-family: inherit; color: #3D2B1F; margin: 10px 0 4px; background: #fff; outline: none;
}
.dlg-campo:focus { border-color: #C9B99A; }

/* ══ Materiales (BuildMaterialesAsync) ════════════════════════════════════════ */
.mt-bloque { display: flex; align-items: center; gap: 4px; margin: 10px 4px 4px; }
.mt-bloque span { font-size: 12px; font-weight: 700; color: #6B5A4E; }
.mt-lupa { border: none; background: transparent; font-size: 14px; padding: 2px 10px 2px 4px; cursor: pointer; }
.mt-lupa.peq { font-size: 11px; padding: 0 6px 0 4px; }
.mt-card { background: #fff; border-radius: 14px; overflow: hidden; border: 1px solid #F0EAE0; }
.mt-vacio { font-size: 12px; color: #9CA3AF; padding: 12px 14px; }
.mt-fila {
    width: 100%; display: flex; align-items: center; gap: 10px; border: none; background: transparent; padding: 10px 12px 10px 14px;
    text-align: left; cursor: pointer; font-family: inherit; box-sizing: border-box; color: inherit;
}
.mt-fila.libre { cursor: default; padding: 6px 10px 6px 14px; gap: 8px; }
.mt-muestra { width: 30px; height: 30px; border-radius: 8px; border: 1px solid #E5DDD4; flex-shrink: 0; box-sizing: border-box; }
.mt-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.mt-textos small { font-size: 10px; color: #9CA3AF; display: flex; align-items: center; }
.mt-textos > span { font-size: 13px; color: #3D2B1F; overflow-wrap: anywhere; }
.mt-textos > span.vacio { color: #B8A99A; }
.mt-textos.planos small { font-size: 12px; color: #6B5A4E; }
.mt-textos.planos > span { font-size: 14px; }
.mt-chev { color: #B8A99A; display: flex; align-items: center; }
.mt-x { border: none; background: transparent; color: #C0392B; padding: 6px 8px; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; }
.mt-entrada {
    width: 100%; box-sizing: border-box; border: none; border-bottom: 1px solid transparent; outline: none; background: transparent;
    font-size: 16px; color: #3D2B1F; padding: 4px 0; font-family: inherit; border-radius: 0;
}
.mt-entrada:focus { border-bottom-color: #C9B99A; }
.mt-pedido { display: flex; flex-direction: column; align-items: center; gap: 2px; flex-shrink: 0; cursor: pointer; }
.mt-pedido small { font-size: 9px; color: #9CA3AF; }
.mt-pedido input { width: 20px; height: 20px; accent-color: #3D2B1F; margin: 0; }
.mt-sum {
    width: 92px; flex-shrink: 0; box-sizing: border-box; border: none; border-bottom: 1px solid #EDE5D8; outline: none; background: transparent;
    font-size: 14px; color: #6B5A4E; padding: 4px 0; font-family: inherit; border-radius: 0;
}
.mt-obs {
    width: 100%; display: flex; flex-direction: column; gap: 6px; text-align: left; background: #fff; border: 1px solid #EDE5D8;
    border-radius: 12px; padding: 10px 14px; margin-bottom: 6px; cursor: pointer; font-family: inherit; box-sizing: border-box;
}
.mt-obs.sin { border-color: #EFD9D6; }
.mt-obs-tx { font-size: 13px; color: #3D2B1F; white-space: pre-wrap; overflow-wrap: anywhere; }
.mt-chapas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.mt-chapas i { font-style: normal; font-size: 10px; color: #fff; border-radius: 9px; padding: 2px 8px; }
.mt-chapas em { font-style: normal; font-size: 10px; color: #A09080; }
.mt-chapas em.mt-sin { color: #C0392B; }
.fi-btn-sec.mt-btn { width: 100%; margin: 6px 0 0; }
.mt-obs-marco { background: #fff; border: 1px solid #EDE5D8; border-radius: 14px; padding: 8px; }
.mt-donde { font-size: 11px; font-weight: 700; color: #6B5A4E; margin: 8px 2px 0; }
.mt-casilla { display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer; font-size: 14px; color: #3D2B1F; }
.mt-casilla input { width: 22px; height: 22px; margin: 0; }
.mt-guardar {
    width: 100%; height: 46px; border: none; border-radius: 14px; background: #3D2B1F; color: #C9B99A; font-size: 14px;
    font-family: inherit; cursor: pointer; margin-top: 10px;
}
.mt-borrar { width: 100%; height: 42px; border: none; background: transparent; color: #C0392B; font-size: 13px; cursor: pointer; font-family: inherit; }

/* ══ Pantalla encima de la ficha (selector de material, observación) ═════════ */
.sm { position: fixed; inset: 0; z-index: 2800; background: #F5EFE6; display: flex; flex-direction: column; }
.sm-cab {
    display: flex; align-items: center; gap: 8px; background: #3D2B1F; color: #fff;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 12px 8px 6px; min-height: 56px; box-sizing: border-box; flex-shrink: 0;
}
.sm-cab b { flex: 1; min-width: 0; font-size: 18px; color: #F5EFE6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sm-volver { width: 44px; height: 44px; border: none; background: transparent; color: #F5EFE6; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.sm-cuerpo {
    flex: 1; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; gap: 10px;
    padding: 16px 16px calc(24px + env(safe-area-inset-bottom, 0px));
}
.sm-chips { display: flex; gap: 6px; overflow-x: auto; flex-shrink: 0; padding-bottom: 2px; scrollbar-width: none; }
.sm-chips::-webkit-scrollbar { display: none; }
.sm-chip {
    flex-shrink: 0; border: none; background: #fff; color: #6B5A4E; border-radius: 16px; padding: 8px 14px; font-size: 12px;
    font-family: inherit; cursor: pointer; white-space: nowrap;
}
.sm-chip.sel { background: #3D2B1F; color: #C9B99A; font-weight: 700; }
.sm-raya { width: 1px; background: #E5DDD4; margin: 6px 4px; flex-shrink: 0; }
.sm-buscar {
    width: 100%; box-sizing: border-box; border: 1px solid #E5DDD4; border-radius: 12px; padding: 10px 12px; font-size: 16px;
    font-family: inherit; background: #fff; color: #3D2B1F; outline: none; flex-shrink: 0;
}
.sm-acciones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; flex-shrink: 0; }
.sm-acciones button { height: 38px; border: none; border-radius: 12px; background: #E8DFD2; color: #3D2B1F; font-size: 12px; font-family: inherit; cursor: pointer; }
.sm-lista { display: flex; flex-direction: column; gap: 8px; }
.sm-tarjeta {
    width: 100%; box-sizing: border-box; display: flex; align-items: center; gap: 12px; background: #fff; border: none; border-radius: 14px;
    padding: 10px 12px; text-align: left; cursor: pointer; font-family: inherit;
}
/* "Usar «lo escrito»": el modelo que no está en el catálogo, escrito a mano. */
.sm-tarjeta.sm-libre { background: #FFFBF2; border: 1px solid #E7DDCB; }
.sm-muestra-libre { display: flex; align-items: center; justify-content: center; font-size: 19px; color: #8A7A63; }
.sm-color { width: 34px; height: 34px; border-radius: 8px; border: 1px solid #E5DDD4; box-sizing: border-box; flex-shrink: 0; }
.sm-muestra { width: 44px; height: 34px; border-radius: 8px; background: #F0EAE0; overflow: hidden; flex-shrink: 0; display: block; }
.sm-muestra.ancha { width: 46px; height: 38px; border: 1px solid #E5DDD4; box-sizing: border-box; }
.sm-muestra img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sm-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.sm-nombre { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.sm-detalle { font-size: 11px; color: #A09080; }
.sm-promo { font-style: normal; font-size: 9px; color: #fff; background: #16A34A; border-radius: 8px; padding: 1px 6px; margin-left: 4px; vertical-align: middle; }
.sm-precio { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.sm-precio b { font-size: 15px; color: #3D2B1F; white-space: nowrap; }
.sm-precio small { font-size: 10px; color: #A09080; white-space: nowrap; }
.sm-quitar { border: none; background: transparent; color: #A09080; font-size: 16px; padding: 4px 8px; cursor: pointer; }

/* ══ Electrodomésticos de Cemevisa (ElectroPickerPage / ElectroDetallePage) ══ */
.el { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.el-busca { display: flex; gap: 8px; align-items: center; }
.el-busca input {
    flex: 1; min-width: 0; box-sizing: border-box; border: 1px solid #E5DDD4; border-radius: 12px; padding: 10px 12px; font-size: 16px;
    font-family: inherit; background: #fff; color: #3D2B1F; outline: none;
}
.el-costos { width: 34px; height: 34px; border-radius: 9px; border: 1px solid #C3BAAC; background: #D8D2C8; cursor: pointer; flex-shrink: 0; }
.el-costos.on { background: #8A6D3B; border-color: #6F5730; }
.el-panel { display: flex; flex-direction: column; gap: 3px; }
.el-panel.filtros { gap: 6px; }
.el-fam {
    border: none; background: transparent; text-align: left; border-radius: 10px; padding: 7px 10px; font-size: 13px; color: #6B5A4E;
    font-family: inherit; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.el-fam.sel { background: #3D2B1F; color: #C9B99A; font-weight: 700; }
.el-fam.sub { padding-left: 20px; font-size: 11px; }
.el-fam.sub.sel { background: #8A6D3B; color: #fff; }
.el-todas {
    height: 32px; border: none; border-radius: 10px; background: #E8DFD2; color: #6B5A4E; font-size: 11px; margin-top: 8px;
    font-family: inherit; cursor: pointer;
}
.el-todas.on { background: #3D2B1F; color: #C9B99A; }
.el-acordeon { background: #fff; border-radius: 10px; overflow: hidden; }
.el-acordeon-cab {
    width: 100%; display: flex; align-items: center; justify-content: space-between; border: none; background: transparent;
    padding: 10px; font-size: 13px; color: #6B5A4E; font-family: inherit; cursor: pointer;
}
.el-acordeon-cab span.con { color: #3D2B1F; font-weight: 700; }
.el-acordeon-cab svg { color: #A09080; }
.el-sin { font-size: 11px; color: #A09080; padding: 4px 10px 8px; }
.el-op {
    width: 100%; display: flex; align-items: center; gap: 6px; border: none; background: transparent; padding: 6px 10px; font-size: 12px;
    color: #3D2B1F; text-align: left; font-family: inherit; cursor: pointer;
}
.el-op span { width: 18px; color: #B8A99A; }
.el-op span.si { color: #14532D; }
.el-lista { display: flex; flex-direction: column; gap: 8px; }
.el-tarjeta {
    display: flex; align-items: center; gap: 10px; background: #fff; border: none; border-radius: 12px; padding: 7px 8px; text-align: left;
    cursor: pointer; font-family: inherit; width: 100%; box-sizing: border-box;
}
.el-tarjeta img { width: 58px; height: 58px; object-fit: contain; flex-shrink: 0; }
.el-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.el-textos b {
    font-size: 12px; color: #3D2B1F; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.el-textos small { font-size: 11px; color: #A09080; }
.el-precio { font-size: 15px; font-weight: 700; color: #14532D; }
.el-precio.costo { color: #8A6D3B; }
.el-precio.grande { font-size: 24px; }
.el-galeria { background: #fff; border-radius: 16px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.el-grande { width: 100%; height: 280px; object-fit: contain; }
.el-minis { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.el-minis::-webkit-scrollbar { display: none; }
.el-minis img {
    width: 60px; height: 60px; object-fit: contain; flex-shrink: 0; border: 1px solid #EDE5D8; border-radius: 8px; padding: 2px; background: #fff;
    cursor: pointer;
}
.el-minis img.sel { border-color: #8A6D3B; }
.el-acciones { display: flex; flex-direction: column; gap: 8px; }
.el-acciones button {
    height: 44px; border: none; border-radius: 12px; background: #E8DFD2; color: #3D2B1F; font-size: 13px; font-family: inherit; cursor: pointer;
}
.el-acciones button.wa { background: #25D366; color: #fff; }
.el-acciones button.crm { background: #8A6D3B; color: #fff; }
.el-tit { font-size: 17px; font-weight: 700; color: #3D2B1F; }
.el-sub { font-size: 12px; color: #A09080; }
.el-precio-fila { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.el-dispo { font-size: 12px; color: #6B5A4E; }
.el-carac { background: #fff; border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.el-carac-fila { display: flex; gap: 8px; font-size: 13px; color: #3D2B1F; }
.el-carac-fila span:first-child { color: #B8A99A; }
.mt-x.hueco { width: 14px; height: 14px; box-sizing: content-box; cursor: default; }

/* ══ Pedido material (BuildPedidosAsync) ══════════════════════════════════════ */
.pd-rotulo { font-size: 11px; font-weight: 700; color: #A09080; margin: 8px 6px 2px; }
.pd-rotulo:first-child { margin-top: 0; }
.pd-guion { font-size: 12px; color: #C4B8A8; margin: 0 6px 4px 14px; }
.pd-otros { font-size: 11px; color: #A09080; margin: 4px 6px 0; }
.pd-tarjeta {
    width: 100%; box-sizing: border-box; display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #F0EAE0;
    border-radius: 14px; padding: 10px 12px 10px 8px; margin-bottom: 6px; cursor: pointer; text-align: left; font-family: inherit;
}
.pd-tarjeta.stock { background: #FBF0C4; }
.pd-casilla {
    width: 36px; height: 36px; border: none; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; padding: 0;
}
.pd-casilla.caja { font-size: 17px; }
.pd-casilla:disabled { cursor: default; opacity: 1; }
.pd-icono { width: 30px; text-align: center; font-size: 14px; flex-shrink: 0; }
.pd-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.pd-textos > span, .pd-textos > b { font-size: 13px; overflow-wrap: anywhere; }
.pd-textos small { font-size: 11px; opacity: .85; }
.pd-textos .oscuro { color: #3D2B1F; }
.pd-textos .tenue { color: #A09080; opacity: 1; }
.pd-asunto { font-size: 12.5px !important; color: #6B5A4E; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pd-quitar { border: none; background: transparent; color: #B8A99A; padding: 6px; cursor: pointer; display: flex; }
.pd-campo { display: flex; flex-direction: column; gap: 3px; }
.pd-campo small { font-size: 9.5px; letter-spacing: 1.5px; font-weight: 700; color: #A09080; }
.pd-campo input {
    border: 1px solid #E7DDCB; border-radius: 10px; background: #fff; padding: 10px 12px; font-size: 16px; font-family: inherit; color: #3D2B1F;
    outline: none;
}
.pd-enviar { background: #3D2B1F; color: #fff; font-weight: 700; font-size: 15px; height: 50px; }
.pd-enviar:disabled { opacity: .6; }
.pd-dato { display: flex; flex-direction: column; gap: 1px; }
.pd-dato small { font-size: 9.5px; letter-spacing: 1.5px; font-weight: 700; color: #A09080; }
.pd-dato span { font-size: 13.5px; color: #3D2B1F; overflow-wrap: anywhere; }
.pd-cuerpo { font-size: 13px; color: #3D2B1F; white-space: pre-wrap; padding: 14px; overflow-wrap: anywhere; }

/* ══ Hoja de carga (HojaCargaPage) ════════════════════════════════════════════ */
.hc { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; }
.hc-trabajo { font-size: 15px; font-weight: 700; color: #3D2B1F; margin: 0 6px; }
.hc-resumen { font-size: 13px; white-space: pre-line; margin: 0 6px; }
.hc-sub { font-size: 12.5px; color: #6B5A4E; margin: 0 2px; }
.hc-sub.oscuro { color: #3D2B1F; }
.hc-rotulo { font-size: 11px; font-weight: 700; color: #9CA3AF; margin: 8px 0 0 4px; }
.hc-fila {
    width: 100%; box-sizing: border-box; display: flex; align-items: center; gap: 6px; background: #fff; border: 1px solid #EDE5D8;
    border-radius: 10px; padding: 10px 12px; text-align: left; font-family: inherit; cursor: pointer;
}
div.hc-fila { cursor: default; }
.hc-fila.falta { background: #FDF2F0; border-color: #E5B5AD; }
.hc-icono { width: 30px; font-size: 18px; flex-shrink: 0; }
.hc-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.hc-textos > span { font-size: 13px; color: #3D2B1F; overflow-wrap: anywhere; }
.hc-textos > span.tachado { text-decoration: line-through; }
.hc-textos small { font-size: 11px; }
.hc-firmar {
    width: 100%; height: 52px; border: none; border-radius: 14px; background: #2F6B2F; color: #fff; font-size: 16px; font-weight: 700;
    font-family: inherit; cursor: pointer; margin: 4px 0;
}
.hc-firmar:disabled { opacity: .6; }
.hc-envio {
    width: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 1px; background: #fff; border: 1px solid #EDE5D8;
    border-radius: 10px; padding: 10px 12px; text-align: left; font-family: inherit; cursor: pointer;
}
.hc-envio b { font-size: 13px; color: #3D2B1F; }
.hc-envio small { font-size: 11px; color: #6B5A4E; }
.hc-lienzo { background: #fff; border: 1px solid #C9B99A; border-radius: 12px; overflow: hidden; height: 240px; }
.hc-lienzo.solo { border-color: #E7DDCB; height: 200px; }
.hc-lienzo canvas { width: 100%; height: 100%; display: block; touch-action: none; }
.hc-quien { font-size: 11px; color: #8A7A63; text-align: center; }

/* ══ Incidencias y albaranes de la ficha ══════════════════════════════════════ */
.fi-grupo { margin-bottom: 10px; }
.fi-grupo-tit { font-size: 13px; font-weight: 700; color: #3D2B1F; margin: 6px 6px 4px; }
.fi-grupo-tit.rojo { color: #C0392B; }
.fi-albaranes { display: flex; flex-wrap: wrap; gap: 8px; }
.fi-albaranes img { width: 96px; height: 96px; object-fit: cover; border-radius: 12px; background: #E5DDD4; cursor: pointer; display: block; }
.hc-icono { display: flex; align-items: center; }

/* ══ Avisos (AvisosPage) ══════════════════════════════════════════════════════ */
.dlg-capa .hoja-titulo { white-space: pre-line; }
.av { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; }
.av-quien {
    width: 100%; box-sizing: border-box; border: 1px solid #EDE5D8; border-radius: 12px; background: #fff; color: #3D2B1F;
    font-size: 16px; padding: 10px 12px; font-family: inherit;
}
.av-pestanas { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-bottom: 4px; flex-shrink: 0; }
.av-pestanas::-webkit-scrollbar { display: none; }
.av-pestana {
    flex-shrink: 0; border: 1px solid #EDE5D8; background: #fff; color: #6B5A4E; border-radius: 16px; padding: 8px 14px; font-size: 13px;
    font-family: inherit; cursor: pointer; white-space: pre;
}
.av-pestana.on { background: #3D2B1F; border-color: #3D2B1F; color: #C9B99A; font-weight: 700; }
/* Los tres chips de dentro de Montaje: sin preparar / preparados / completados. */
.av-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 2px 0 8px; }

/* Comentarios de una foto pendiente, a la vista en su fila */
.av-comentar { display: flex; flex-direction: column; align-items: center; justify-content: center;
               gap: 0; width: 30px; border: none; background: none; cursor: pointer;
               font-family: inherit; font-size: 15px; padding: 0; line-height: 1.1; }
.av-comentar em { font-size: 9px; font-style: normal; color: #A09080; }
.av-comentar em.mias { color: #C0392B; font-weight: 700; }

/* Calendario del mes para elegir el dia de la cita de los pendientes */
.cal-cita { background: #F5EFE6; border-radius: 16px; padding: 16px; width: min(420px, 94vw);
            max-height: 92vh; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.cal-cita-trabajo { font-size: 13px; font-weight: 700; color: #8B6148; }
.cal-cita-ayuda { font-size: 11px; color: #A09080; margin-bottom: 6px; }
.cal-cita-mes { display: flex; align-items: center; justify-content: space-between; }
.cal-cita-mes b { font-size: 16px; color: #3D2B1F; }
.cal-cita-mes button { width: 44px; height: 38px; border: none; background: none; cursor: pointer;
                       font-size: 26px; font-weight: 700; color: #3D2B1F; font-family: inherit; }
.cal-cita-rejilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-top: 6px; }
.cal-cita-dow { font-size: 11px; font-weight: 700; color: #A09080; text-align: center; }
.cal-cita-dia { display: flex; flex-direction: column; align-items: center; justify-content: center;
                gap: 1px; height: 52px; border: 1px solid transparent; border-radius: 10px;
                background: #fff; cursor: pointer; font-family: inherit; font-size: 15px;
                color: #3D2B1F; padding: 0; }
.cal-cita-dia em { font-size: 8px; font-style: normal; color: #C0392B; }
.cal-cita-dia.finde { background: #F0EAE0; }
.cal-cita-dia.ocupado { background: #FBEAE5; }
.cal-cita-dia.hoy { border-color: #C9B99A; }
.cal-cita-dia.sel { background: #E8DFD2; border-color: #3D2B1F; font-weight: 700; }
.cal-cita-dia.tramo { background: #F1E9DC; }
.cal-cita-dia.pasado { color: #C4B8AA; }
.cal-cita-detalle { display: flex; flex-direction: column; gap: 2px; margin: 8px 2px; font-size: 12px; }
.cal-cita-detalle b { font-size: 14px; color: #3D2B1F; }
.cal-cita-detalle .flojo { color: #6B5A4E; }
.cal-cita-detalle .malo { color: #C0392B; }
.cal-cita-detalle .bueno { color: #14532D; }
.cal-cita-cancelar { height: 42px; border: none; border-radius: 12px; background: none;
                     color: #8A7968; font-size: 14px; font-family: inherit; cursor: pointer; }
.av-chips::-webkit-scrollbar { display: none; }
.av-chip {
    flex-shrink: 0; border: 1px solid #EDE5D8; background: #fff; color: #8A7968; border-radius: 14px;
    padding: 6px 12px; font-size: 12px; font-family: inherit; cursor: pointer; white-space: pre;
}
.av-chip.on { background: #E8DFD2; border-color: #C9B99A; color: #3D2B1F; font-weight: 700; }
/* La impresora de cada pendiente (ocupa el sitio de la antigua casilla). */
.av-imprimir {
    flex-shrink: 0; width: 34px; height: 34px; border: none; background: transparent;
    font-size: 17px; opacity: .55; cursor: pointer; padding: 0;
}
.av-ayuda { font-size: 11px; color: #A09080; margin: 0 4px 4px; }
.av-vacio { font-size: 13px; color: #A09080; padding: 20px 6px; }
.av-rotulo { font-size: 10px; font-weight: 700; color: #A09080; margin: 8px 14px 2px; }
.av-enlace {
    display: flex; align-items: center; gap: 4px; border: none; background: transparent; color: #A09080; font-size: 12px;
    margin: 14px 6px 4px; padding: 0; text-align: left; font-family: inherit; cursor: pointer;
}
.av-enlace.rojo { color: #C0392B; }

.av-trabajo { background: #fff; border: 1px solid #EDE5D8; border-radius: 12px; overflow: hidden; }
.av-trabajo.vivo, .av-trabajo.falta { border-color: #D9B36A; }
.av-trabajo.vivo { background: #FFF8EC; }
.av-trabajo.retraso { border-color: #C0392B; }
.av-cab { display: flex; align-items: center; gap: 8px; padding: 12px 8px 12px 12px; cursor: pointer; }
.av-flecha { color: #B8A99A; display: flex; width: 16px; flex-shrink: 0; }
.av-tit { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.av-tit b { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.av-tit small { font-size: 11px; }
.av-globo {
    min-width: 22px; height: 22px; box-sizing: border-box; padding: 0 7px; border-radius: 11px; background: #C0392B; color: #fff;
    font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.av-iconos { display: flex; align-items: center; gap: 6px; font-size: 15px; flex-shrink: 0; }
.av-ignorar { border: none; background: transparent; font-size: 13px; opacity: .55; padding: 2px; cursor: pointer; }
.av-abrir { border: none; background: transparent; color: #B8A99A; padding: 4px; display: flex; cursor: pointer; flex-shrink: 0; }
.av-cita {
    border: none; background: transparent; display: flex; flex-direction: column; align-items: center; padding: 2px 4px; cursor: pointer;
    font-size: 17px; line-height: 1.1; flex-shrink: 0;
}
.av-cita small { font-size: 9px; font-weight: 700; }
.av-check { display: flex; align-items: center; gap: 4px; padding: 2px 12px 2px 8px; }
.av-casilla {
    width: 38px; height: 38px; border: none; background: transparent; color: #3D2B1F; display: flex; align-items: center;
    justify-content: center; cursor: pointer; flex-shrink: 0; padding: 0;
}
.av-casilla:disabled { cursor: default; opacity: .7; }
.av-check-tx { flex: 1; min-width: 0; font-size: 13px; color: #3D2B1F; cursor: pointer; overflow-wrap: anywhere; }
.av-check-tx.hecho { text-decoration: line-through; color: #A09080; }
.av-pedido { font-size: 11px; color: #14532D; }
.av-quien { font-size: 10px; color: #A09080; }
.av-todo, .av-boton {
    display: block; width: calc(100% - 24px); margin: 6px 12px 4px; height: 40px; border: none; border-radius: 12px; background: #3D2B1F;
    color: #C9B99A; font-size: 13px; font-family: inherit; cursor: pointer;
}
.av-boton.claro { background: #EDE5D8; color: #3D2B1F; }
.av-nada { font-size: 12px; color: #14532D; margin: 8px 14px 4px; }
.av-anadir { border: none; background: transparent; color: #2D6A9F; font-size: 12px; margin: 6px 14px; padding: 4px 0; text-align: left; font-family: inherit; cursor: pointer; }
.av-hecha { width: 100%; display: flex; gap: 8px; border: none; background: transparent; padding: 5px 14px; text-align: left; font-family: inherit; cursor: pointer; }
.av-hecha > span:first-child { font-size: 13px; }
.av-hecha-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.av-hecha-tx span { font-size: 12.5px; color: #6B5A4E; }
.av-hecha-tx small { font-size: 11px; }
.av-stock { font-size: 12px; color: #6B5A4E; background: #FFF8DC; padding: 5px 14px; margin: 1px 0; }
.av-pend { display: flex; align-items: center; gap: 8px; padding: 6px 8px 6px 6px; }
.av-mini { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; flex-shrink: 0; cursor: pointer; background: #E5DDD4; }
.av-pend-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.av-pend-tx > span { font-size: 13px; color: #3D2B1F; overflow-wrap: anywhere; }
.av-pend-tx > span.hecho { text-decoration: line-through; color: #A09080; }
.av-pend-tx small { font-size: 11px; }
.av-mas { border: none; background: transparent; color: #B8A99A; font-size: 20px; width: 32px; height: 36px; cursor: pointer; flex-shrink: 0; }
.av-notas { color: #A09080; }
.av-notas-mias { color: #C0392B; font-weight: 700; }

.av-aviso {
    display: flex; gap: 10px; background: #fff; border: 1px solid #EDE5D8; border-radius: 12px; padding: 12px 14px; cursor: pointer;
}
.av-aviso.vivo { background: #FFF8EC; border-color: #D9B36A; }
.av-icono { font-size: 18px; flex-shrink: 0; }
.av-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.av-textos b { font-size: 13px; color: #3D2B1F; font-weight: 400; overflow-wrap: anywhere; }
.av-textos b.nuevo { font-weight: 700; }
.av-textos > span { font-size: 12px; color: #6B5A4E; overflow-wrap: anywhere; }
.av-textos small { font-size: 11px; }
.av-textos .tenue { color: #A09080; }
.av-foto { display: flex; flex-direction: column; align-items: center; gap: 1px; width: 62px; flex-shrink: 0; }
.av-foto img { width: 62px; height: 62px; object-fit: cover; border-radius: 8px; background: #E5DDD4; }
.av-foto small { font-size: 10px; color: #A09080; max-width: 62px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.np-pregunta { font-size: 12px; font-weight: 700; color: #6B5A4E; margin-top: 6px; }
.np-persona {
    width: 100%; display: flex; align-items: center; gap: 8px; border: none; background: transparent; padding: 8px 12px; font-size: 14px;
    color: #3D2B1F; text-align: left; font-family: inherit; cursor: pointer;
}
.np-casilla { color: #A79684; display: flex; }
.np-casilla.si { color: #3D2B1F; }
.av select.av-quien { font-size: 16px; height: 44px; }

/* ══ Incidencias ══════════════════════════════════════════════════════════════ */
.inc { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; }
.inc-nueva {
    height: 46px; border: none; border-radius: 14px; background: #8A6D3B; color: #fff; font-size: 14px; font-family: inherit; cursor: pointer;
}
.inc-buscar {
    width: 100%; box-sizing: border-box; border: none; border-radius: 16px; background: #fff; padding: 12px 14px; font-size: 16px;
    font-family: inherit; color: #3D2B1F; margin: 6px 0 2px; outline: none;
}
.inc-vacio { text-align: center; color: #9CA3AF; font-size: 14px; padding-top: 40px; }
.inc-item {
    display: flex; background: #fff; border: none; border-radius: 14px; overflow: hidden; padding: 0; text-align: left; font-family: inherit;
    cursor: pointer; width: 100%;
}
.inc-barra { width: 6px; flex-shrink: 0; }
.inc-textos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; }
.inc-textos b { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.inc-pie { display: flex; align-items: center; gap: 8px; }
.inc-pie i { font-style: normal; font-size: 10px; font-weight: 700; border-radius: 6px; padding: 2px 8px; white-space: nowrap; }
.inc-pie small { font-size: 10px; color: #9CA3AF; }

.inc-det { display: flex; flex-direction: column; padding-bottom: 32px; }
.inc-completar {
    height: 46px; border: none; border-radius: 14px; background: #5B7C5F; color: #fff; font-size: 14px; font-weight: 700; font-family: inherit;
    cursor: pointer; margin-bottom: 12px; display: flex; align-items: center; justify-content: center; gap: 10px;
}
.inc-completar b { font-size: 16px; }
.inc-rotulo { font-size: 10px; font-weight: 700; color: #9CA3AF; margin: 0 0 8px 4px; display: flex; align-items: center; gap: 8px; }
.inc-caja {
    background: #fff; border-radius: 14px; padding: 16px; font-size: 14px; color: #3D2B1F; margin-bottom: 16px; white-space: pre-wrap;
    overflow-wrap: anywhere; line-height: 1.4;
}
.inc-caja.sin-padding { padding: 0; white-space: normal; }
.inc-nombre { border: none; text-align: left; font-family: inherit; font-size: 15px; font-weight: 700; cursor: pointer; margin-bottom: 12px; width: 100%; }
.inc-tel { color: #2563EB; }
.inc-dato { display: flex; align-items: center; gap: 8px; padding: 14px; text-decoration: none; color: inherit; }
.inc-dato-ic { width: 30px; text-align: center; font-size: 18px; flex-shrink: 0; }
.inc-dato-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.inc-dato-tx small { font-size: 10px; color: #9CA3AF; }
.inc-dato-tx span { font-size: 13px; color: #3D2B1F; }
.inc-dato-tx span.vacio { color: #9CA3AF; }
.inc-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.inc-docs button {
    height: 85px; border: none; border-radius: 14px; background: #fff; display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 5px; cursor: pointer; font-family: inherit;
}
.inc-docs span { font-size: 22px; }
.inc-docs b { font-size: 11px; color: #3D2B1F; }
.inc-video {
    width: 96px; height: 96px; border: none; border-radius: 12px; background: #3D2B1F; color: #fff; font-size: 30px; cursor: pointer;
}
.ff-anadir.inc-anadir { background: #F0EAE0; border: none; }
.ff-anadir.inc-anadir b { color: #9CA3AF; font-size: 30px; font-weight: 400; }

.ni { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.ni-tarjeta {
    display: flex; flex-direction: column; gap: 2px; background: #fff; border: none; border-radius: 14px; padding: 10px 14px; text-align: left;
    font-family: inherit; box-sizing: border-box; width: 100%;
}
.ni-tarjeta small { font-size: 10px; color: #9CA3AF; }
.ni-tarjeta input, .ni-tarjeta textarea {
    border: none; outline: none; background: transparent; font-size: 16px; color: #3D2B1F; font-family: inherit; padding: 4px 0;
    resize: none; width: 100%; box-sizing: border-box;
}
.ni-selector { flex-direction: row; align-items: center; cursor: pointer; }
.ni-sel-tx { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ni-sel-tx span { font-size: 15px; color: #3D2B1F; }
.ni-sel-tx span.vacio { color: #B8A99A; }
.ni-fotos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.ni-foto { position: relative; width: 72px; height: 72px; }
.ni-foto img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; display: block; }
.ni-foto button {
    position: absolute; top: 0; right: 0; border: none; background: #C0392B; color: #fff; font-size: 12px; padding: 1px 6px; cursor: pointer;
}
.fi-btn-sec.ni-anadir {
    position: relative; overflow: hidden; width: 100%; margin: 6px 0 0; height: 40px; display: flex; align-items: center;
    justify-content: center; cursor: pointer; white-space: normal;
}
.ni-aviso { font-size: 12px; color: #C0392B; margin: 0 4px; }
.ni-crear {
    height: 50px; border: none; border-radius: 14px; background: #8A6D3B; color: #fff; font-weight: 700; font-size: 15px; font-family: inherit;
    cursor: pointer;
}
.ni-crear:disabled { opacity: .6; }

/* ══ Calendario de trabajos (CalendarioPage) ══════════════════════════════════ */
.cal { display: flex; flex-direction: column; padding-bottom: 90px; min-height: 60vh; }
.cal-cab { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; padding: 2px 0 8px; }
.cal-cab b { text-align: center; font-size: 20px; color: #1C1917; }
.cal .cal-nav, .mc .cal-nav {
    width: 44px; height: 44px; border-radius: 22px; border: none; background: #fff; color: #3D2B1F; display: flex; align-items: center;
    justify-content: center; cursor: pointer; margin: 0; gap: 0; padding: 0;
}
.mc .cal-nav.plano { background: transparent; color: #6B5A4E; }
.cal-agenda { display: flex; flex-direction: column; gap: 10px; }
.cal-dia { display: flex; flex-direction: column; gap: 6px; scroll-margin-top: 70px; }
.cal-dia-cab { display: flex; align-items: center; gap: 8px; }
.cal-dia-cab b { font-size: 14px; }
.cal-hoy { background: #16A34A; color: #fff; font-size: 10px; font-weight: 700; border-radius: 9px; padding: 2px 8px; }
.cal-guion { font-size: 12px; color: #D8CFC2; margin: 0 0 2px 2px; }
.cal-evento { display: flex; border-radius: 14px; overflow: hidden; }
.cal-evento > i { width: 6px; flex-shrink: 0; }
.cal-evento-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; padding: 12px 14px 12px 12px; }
.cal-evento-tx b { font-size: 15px; color: #1C1917; overflow-wrap: anywhere; }
.cal-meta { font-size: 12px; color: #A09080; }
.cal-meta strong { font-weight: 700; }
.cal-evento-tx small { font-size: 12px; color: #6B5A4E; overflow-wrap: anywhere; }
.cal-evento-tx small.desc { color: #8B7B6E; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cal .cal-mes { min-width: 0; font-size: inherit; font-weight: inherit; text-align: left; }
.cal-semana { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin: 4px 0 6px; }
.cal-semana b { text-align: center; font-size: 12px; color: #A09080; }
.cal-rejilla { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
.cal-celda {
    min-height: 96px; background: #FAF7F2; border-radius: 8px; padding: 4px 4px 6px; display: flex; flex-direction: column; gap: 2px;
    cursor: pointer; box-sizing: border-box; border: 2px solid transparent; min-width: 0;
}
.cal-celda.llena { background: #fff; }
.cal-celda.fuera { background: #F2EEE7; cursor: default; }
.cal-celda.fuera b { color: #CFC5B6; }
.cal-celda.hoy { border-color: #16A34A; }
.cal-celda b { font-size: 13px; color: #3D2B1F; }
.cal-celda b.verde { color: #16A34A; }
.cal-chip { font-size: 10px; font-weight: 700; border-radius: 4px; padding: 2px 4px; overflow-wrap: anywhere; line-height: 1.2; }
.cal-celda small { font-size: 9px; color: #A09080; }
.cal-pie {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #F7F4EF; display: flex; align-items: center; gap: 8px;
    flex-wrap: wrap; padding: 8px 16px calc(10px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #EDE5D8;
}
.cal-leyenda { flex: 1; display: flex; flex-wrap: wrap; gap: 4px 12px; min-width: 150px; }
.cal-leyenda span { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #6B5A4E; }
.cal-leyenda i { width: 14px; height: 14px; border-radius: 4px; }
.cal-botones { display: flex; gap: 6px; }
.cal-botones button {
    height: 36px; border: none; border-radius: 18px; background: #fff; color: #3D2B1F; font-size: 11px; font-weight: 700; padding: 0 10px;
    font-family: inherit; cursor: pointer;
}
.cal-botones button.verde { background: #16A34A; color: #fff; }
.cal-fondo { position: fixed; inset: 0; z-index: 2500; background: rgba(0,0,0,.5); display: flex; align-items: flex-end; }
.cal-hoja {
    width: 100%; background: #fff; border-radius: 22px 22px 0 0; padding: 18px 20px calc(24px + env(safe-area-inset-bottom, 0px));
    display: flex; flex-direction: column; gap: 10px; box-sizing: border-box; max-height: 90vh; overflow-y: auto;
}
.cal-hoja-cab { display: grid; grid-template-columns: auto 1fr auto; align-items: center; }
.cal-hoja-cab b { text-align: center; font-size: 16px; color: #1C1917; }
.cal-hoja-cab button { border: none; background: transparent; color: #6B5A4E; padding: 4px 10px; cursor: pointer; display: flex; }
.cal-hoja-lista { display: flex; flex-direction: column; gap: 6px; max-height: 330px; overflow-y: auto; }
.cal-linea {
    display: flex; align-items: center; gap: 10px; border: none; border-radius: 10px; padding: 8px 10px; text-align: left; font-family: inherit;
    cursor: pointer; width: 100%;
}
.cal-linea:disabled { cursor: default; opacity: 1; }
.cal-linea > i { width: 6px; height: 34px; border-radius: 3px; flex-shrink: 0; }
.cal-linea > span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.cal-linea b { font-size: 13px; color: #3D2B1F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-linea small { font-size: 11px; color: #A09080; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-linea em { font-style: normal; font-size: 12px; }
.cal-hoja-btn { height: 40px; border: none; border-radius: 10px; background: #F0EAE0; color: #3D2B1F; font-size: 14px; font-family: inherit; cursor: pointer; }
.cal-hoja-btn.oscuro { background: #3D2B1F; color: #C9B99A; height: 44px; }
.cal-hoja-cerrar { height: 36px; border: none; background: transparent; color: #A09080; font-size: 14px; font-family: inherit; cursor: pointer; }
.cal-filtro-tit { font-size: 16px; color: #1C1917; margin-bottom: 8px; }
.cal-interruptor { display: flex; align-items: center; gap: 12px; padding: 10px 0; font-size: 15px; color: #3D2B1F; cursor: pointer; }
.cal-interruptor i { width: 16px; height: 16px; border-radius: 4px; }
.cal-interruptor span { flex: 1; }

/* Interruptor tipo Switch de la app */
.ev-switch {
    appearance: none; -webkit-appearance: none; width: 50px; height: 30px; border-radius: 15px; background: #D6D0C7; position: relative;
    cursor: pointer; transition: background .15s; flex-shrink: 0; margin: 0;
}
.ev-switch::after {
    content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 12px; background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: left .15s;
}
.ev-switch:checked { background: var(--on, #16A34A); }
.ev-switch.morado:checked { background: #7B68EE; }
.ev-switch:checked::after { left: 23px; }

/* ══ Nuevo / editar trabajo del calendario (NuevoTrabajoPage) ════════════════ */
.ev-caja { background: #fff; border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.ev-caja > small { font-size: 12px; color: #A09080; }
.ev-tipos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ev-tipo, .ev-lista {
    border: 2px solid transparent; background: #fff; border-radius: 12px; padding: 10px 12px; font-size: 15px; font-weight: 700; color: #3D2B1F;
    display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; font-family: inherit; box-shadow: 0 0 0 1px #EDE5D8 inset;
}
.ev-tipo i { width: 16px; height: 16px; border-radius: 4px; background: var(--c); }
.ev-tipo.on { border-color: var(--c); box-shadow: none; background: color-mix(in srgb, var(--c) 10%, #fff); }
.ev-lista { font-size: 14px; }
.ev-lista.on { border-color: #7B68EE; box-shadow: none; background: #F3F0FB; }
.ev-entrada {
    width: 100%; box-sizing: border-box; border: none; border-bottom: 1px solid #EDE5D8; outline: none; background: transparent; font-size: 16px;
    color: #3D2B1F; padding: 8px 0; font-family: inherit; border-radius: 0; resize: none;
}
.ev-fila { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 14px; color: #3D2B1F; cursor: pointer; }
.ev-fila span { display: flex; flex-direction: column; gap: 1px; }
.ev-fila small { font-size: 11px; color: #A09080; }
.ev-fechas { display: flex; gap: 8px; }
.ev-hora { width: 110px; flex-shrink: 0; }
.ev-elegida { display: flex; align-items: center; gap: 10px; background: #F3F0FB; border-radius: 10px; padding: 10px 12px; }
.ev-elegida i { width: 14px; height: 14px; border-radius: 4px; flex-shrink: 0; }
.ev-elegida span { flex: 1; min-width: 0; font-size: 13px; color: #3D2B1F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-elegida button { border: none; background: transparent; color: #7B68EE; font-weight: 700; font-size: 12px; cursor: pointer; }
.ev-tarea { display: flex; align-items: center; gap: 10px; border: none; border-radius: 10px; padding: 9px 12px; text-align: left; font-family: inherit; cursor: pointer; }
.ev-tarea i { width: 12px; height: 12px; border-radius: 6px; flex-shrink: 0; }
.ev-tarea > span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.ev-tarea > span > span { font-size: 13px; color: #1C1917; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-tarea small { font-size: 10px; font-weight: 700; }
.ev-guardar { height: 52px; border: none; border-radius: 14px; background: #16A34A; color: #fff; font-weight: 700; font-size: 15px; font-family: inherit; cursor: pointer; }
.ev-guardar:disabled { opacity: .6; }
.ev-eliminar { height: 48px; border: none; background: transparent; color: #DC2626; font-weight: 700; font-size: 14px; font-family: inherit; cursor: pointer; }

/* ══ Calendario de montajes (CalendarioMontajesPage / DiaCalendarioPage) ═════ */
.mc { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; }
.mc-leyenda { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 4px; }
.mc-leyenda span { font-size: 10px; border-radius: 9px; padding: 2px 8px; }
.mc-semana { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; }
.mc-semana b { text-align: center; font-size: 11px; color: #A09080; }
.mc-rejilla {
    display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: #DDD0C4; border: 4px solid #fff; border-radius: 14px;
    overflow: hidden;
}
.mc-vacia { background: #EDE5D8; min-height: 52px; }
.mc-celda {
    background: #fff; min-height: 52px; padding: 2px 2px 3px; display: flex; flex-direction: column; gap: 1px; cursor: pointer; min-width: 0;
}
.mc-celda.finde { background: #FAF5EF; }
.mc-celda > b { font-size: 11px; color: #6B5A4E; font-weight: 400; }
.mc-celda > b.hoy { color: #C0392B; font-weight: 700; }
.mc-chip { font-size: 8px; border-radius: 6px; padding: 1px 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-celda small { font-size: 9px; color: #A09080; }
.mc-prev { font-size: 12px; color: #6B5A4E; margin: 2px 4px 0; }
/* Chips que encienden/apagan cada calendario, botones de los comerciales y listas de debajo */
.mc-capa { font-size: 11px; font-weight: 700; border-radius: 12px; padding: 4px 10px; border: 1px solid; background: #fff; cursor: pointer; font-family: inherit; }
.mc-capa.off { text-decoration: line-through; }
.mc-acciones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mc-acciones button { height: 42px; border: none; border-radius: 12px; color: #fff; font-size: 13px; font-weight: 700; font-family: inherit; cursor: pointer; }
.mc-celda > b.vacas { color: #7C3AED; font-weight: 700; }
.mc-vaca { background: #EDE3FB; color: #5B21B6; border-radius: 10px; padding: 7px 12px; font-size: 13px; }
.mc-rotulo { font-size: 11px; font-weight: 700; color: #6B5A4E; letter-spacing: 1px; margin: 10px 4px 0; }
.mc-dia-capa .sm-cuerpo { gap: 12px; }
.mc-dia-cab { display: grid; grid-template-columns: auto 1fr auto; align-items: center; background: #3D2B1F; border-radius: 16px; padding: 14px 8px; }
.mc-dia-cab button { border: none; background: transparent; color: #C9B99A; padding: 0 10px; display: flex; cursor: pointer; }
.mc-dia-cab span { display: flex; flex-direction: column; gap: 2px; }
.mc-dia-cab small { font-size: 11px; color: #C9B99A; letter-spacing: 1.5px; }
.mc-dia-cab b { font-size: 20px; color: #fff; }
.mc-tarjeta {
    display: flex; flex-direction: column; gap: 3px; background: #fff; border: 1px solid #EDE5D8; border-radius: 14px; padding: 12px 14px;
    text-align: left; font-family: inherit; cursor: pointer; width: 100%; box-sizing: border-box;
}
.mc-tarjeta b { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.mc-tarjeta small { font-size: 11px; }
.mc-tarjeta small.tenue { color: #A09080; }
.mc-nota { font-size: 12px; color: #6B5A4E; white-space: pre-wrap; }
.mc-vinculo {
    align-self: flex-start; border: none; background: #EFE7DA; color: #6B5A4E; border-radius: 10px; padding: 4px 9px; font-size: 11px;
    font-family: inherit; cursor: pointer; margin-top: 2px;
}
.mc-anadir { padding: 8px 14px calc(14px + env(safe-area-inset-bottom, 0px)); background: #F5EFE6; flex-shrink: 0; }
.mc-anadir button {
    width: 100%; height: 46px; border: none; border-radius: 14px; background: #3D2B1F; color: #C9B99A; font-size: 14px; font-family: inherit;
    cursor: pointer;
}
.dlg-campo.mc-corto { width: 110px; margin: 0; }

/* ══ Objetivos, gastos por mes y retrasos ════════════════════════════════════ */
.ob { display: flex; flex-direction: column; padding-bottom: 24px; }
.ob-cab { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; margin: 0 0 4px; }
.ob-anios { display: flex; justify-content: center; }
.ob-anios button { border: none; padding: 7px 18px; font-size: 13px; font-weight: 700; background: #F0EAE0; color: #3D2B1F; border-radius: 12px; cursor: pointer; font-family: inherit; }
.ob-anios button.on { background: #3D2B1F; color: #C9B99A; }
.ob-retrasos { border: none; border-radius: 12px; padding: 7px 10px; background: #F0EAE0; color: #9CA3AF; font-size: 13px; cursor: pointer; font-family: inherit; }
.ob-retrasos.hay { background: #FEE2E2; color: #DC2626; }
.ob-meses { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0 8px; scrollbar-width: none; }
.ob-meses::-webkit-scrollbar { display: none; }
.ob-meses button {
    flex-shrink: 0; border: none; border-radius: 20px; padding: 6px 14px; font-size: 13px; font-weight: 700; background: #F0EAE0; color: #3D2B1F;
    cursor: pointer; font-family: inherit;
}
.ob-meses button.on { background: #3D2B1F; color: #C9B99A; }
.ob-meses button.anio { color: #8A6D3B; }
.ob-meses button.anio.on { background: #8A6D3B; color: #fff; }
.ob-resumen { background: #fff; border-radius: 16px; padding: 16px 20px; display: grid; grid-template-columns: 1fr auto 1fr; margin-bottom: 8px; }
.ob-col { display: flex; flex-direction: column; gap: 1px; }
.ob-col.tocable { cursor: pointer; }
.ob-col small { font-size: 11px; color: #9CA3AF; }
.ob-col b { font-size: 18px; }
.ob-col span { font-size: 11px; }
.ob-col em { font-style: normal; font-size: 10px; color: #9CA3AF; }
.ob-col .verde { color: #16A34A; }
.ob-col .rojo { color: #DC2626; }
.ob-raya { width: 1px; background: #F0EAE0; margin: 0 12px; }
.ob-total {
    grid-column: 1 / -1; background: #F5EFE6; border-radius: 10px; padding: 10px 0 6px; margin-top: 12px; display: flex; flex-direction: column;
    align-items: center; gap: 2px;
}
.ob-total small { font-size: 10px; font-weight: 700; color: #9CA3AF; }
.ob-total b { font-size: 28px; }
.ob-total span { font-size: 13px; font-weight: 700; }
.ob-tareas { margin: 2px 4px 8px; font-size: 12px; font-weight: 700; color: #6B5D4F; }
.ob-vacio { text-align: center; color: #9CA3AF; font-size: 14px; padding-top: 40px; }
.ob-item {
    width: 100%; background: #fff; border: none; border-radius: 14px; padding: 10px 14px; margin-bottom: 8px; display: flex; flex-direction: column;
    gap: 4px; text-align: left; font-family: inherit; cursor: pointer; box-sizing: border-box;
}
.ob-item-fila { display: flex; align-items: center; gap: 6px; }
.ob-item-fila > b { flex: 1; min-width: 0; font-size: 13px; color: #3D2B1F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ob-item-fila > b.ob-gasto { flex: none; }
.ob-valores { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex-shrink: 0; }
.ob-valores strong { font-size: 15px; }
.ob-valores small { font-size: 11px; font-weight: 700; }
.ob-estado { display: flex; align-items: center; gap: 6px; }
.ob-estado i { font-style: normal; font-size: 10px; font-weight: 700; border-radius: 6px; padding: 2px 7px; }
.ob-estado small { font-size: 10px; color: #9CA3AF; }
.ob-anual-cab { display: grid; grid-template-columns: 64px 1fr 1fr 1fr; padding: 2px 14px; }
.ob-anual-cab span { font-size: 10px; font-weight: 700; color: #9CA3AF; text-align: right; }
.ob-anual-cab span:first-child { text-align: left; }
.ob-anual {
    display: grid; grid-template-columns: 64px 1fr 1fr 1fr; align-items: center; background: #fff; border: none; border-radius: 14px;
    padding: 10px 14px; margin-bottom: 8px; font-family: inherit; cursor: pointer; width: 100%; text-align: left;
}
.ob-anual > b { font-size: 14px; color: #3D2B1F; }
.ob-celda { display: flex; flex-direction: column; align-items: flex-end; }
.ob-celda strong { font-size: 14px; }
.ob-celda small { font-size: 11px; }
.ob-nota { font-size: 11px; color: #9CA3AF; margin: 6px 4px; }

.gm { display: flex; flex-direction: column; gap: 12px; }
.gm-cab { background: #3D2B1F; border-radius: 16px; padding: 12px 6px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.gm-mes { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; }
.gm-mes button { border: none; background: transparent; color: #C9B99A; padding: 0 12px; display: flex; cursor: pointer; }
.gm-mes b { text-align: center; font-size: 18px; color: #fff; }
.gm-cab strong { font-size: 22px; color: #fff; }
.gm-cab small { font-size: 14px; color: #C9B99A; }
.gm-ficha { background: #fff; border: 1px solid #EDE5D8; border-radius: 14px; padding: 12px 14px; }
.gm-ficha-cab { display: flex; align-items: center; gap: 8px; }
.gm-ficha-cab > b { flex: 1; font-size: 16px; color: #3D2B1F; }
.gm-ficha-cab > span { display: flex; flex-direction: column; align-items: flex-end; color: #C0392B; }
.gm-ficha-cab strong { font-size: 15px; }
.gm-ficha-cab small { font-size: 12px; }
.gm-menu { border: none; background: transparent; color: #A09080; font-size: 22px; padding: 0 8px; cursor: pointer; }
.gm-linea {
    width: 100%; display: grid; grid-template-columns: 1fr auto 62px; gap: 12px; align-items: center; border: none; background: transparent;
    padding: 8px 2px; text-align: left; font-family: inherit; cursor: pointer;
}
.gm-linea span { font-size: 14px; color: #6B5A4E; overflow-wrap: anywhere; }
.gm-linea span.vacio { color: #A09080; }
.gm-linea b { font-size: 14px; color: #3D2B1F; font-weight: 400; }
.gm-linea small { font-size: 13px; color: #A09080; text-align: right; }
.gm-anadir { border: none; background: transparent; color: #8A6D3B; font-weight: 700; font-size: 13px; padding: 10px 2px 2px; cursor: pointer; font-family: inherit; }
.gm-pie {
    position: fixed; left: 0; right: 0; bottom: 0; padding: 8px 14px calc(14px + env(safe-area-inset-bottom, 0px)); background: #F5EFE6; z-index: 50;
}
.gm-pie button { width: 100%; height: 46px; border: none; border-radius: 14px; background: #3D2B1F; color: #C9B99A; font-size: 14px; font-family: inherit; cursor: pointer; }
.gm-recalcular { align-self: flex-start; border: none; background: transparent; color: #8A6D3B; font-size: 12px; padding: 4px; cursor: pointer; font-family: inherit; }

.rt { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.rt-cab { display: flex; align-items: center; gap: 10px; background: #DC2626; border-radius: 14px; padding: 14px 20px; }
.rt-cab > span:first-child { font-size: 20px; }
.rt-cab > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.rt-cab b { font-size: 16px; color: #fff; }
.rt-cab small { font-size: 11px; color: #FECACA; }
.rt-item {
    display: flex; gap: 10px; background: #fff; border: none; border-radius: 14px; padding: 12px 14px; text-align: left; font-family: inherit;
    cursor: pointer; width: 100%; box-sizing: border-box;
}
.rt-item > i { width: 4px; border-radius: 2px; background: #DC2626; flex-shrink: 0; }
.rt-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.rt-tx b { font-size: 13px; color: #3D2B1F; overflow-wrap: anywhere; }
.rt-tx em { font-style: normal; font-size: 10px; font-weight: 700; border-radius: 6px; padding: 2px 7px; }
.rt-mes { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; flex-shrink: 0; }
.rt-mes small { font-size: 9px; color: #9CA3AF; }
.rt-mes b { font-size: 11px; color: #DC2626; }

/* ══ Nóminas, documentos y firma ═════════════════════════════════════════════ */
.nd { display: flex; flex-direction: column; gap: 12px; padding-bottom: 24px; }
.nd-item {
    display: flex; align-items: center; gap: 14px; background: #fff; border: none; border-radius: 16px; padding: 14px 16px; text-align: left;
    font-family: inherit; cursor: pointer; width: 100%; box-sizing: border-box;
}
.nd-icono { width: 44px; height: 44px; border-radius: 12px; background: #F0EAE0; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.nd-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nd-tx b { font-size: 15px; color: #3D2B1F; overflow-wrap: anywhere; }
.nd-tx small { font-size: 11px; color: #A09080; }
.nd-tx strong { font-size: 12px; color: #3D2B1F; }
.nd-tx em { font-style: normal; font-size: 11px; font-weight: 700; }
.nd-bajar { font-size: 18px; color: #3D2B1F; }
.nd-accion { font-size: 14px; font-weight: 700; color: #8B6148; flex-shrink: 0; }
a.hoja-op.pdf-op { text-decoration: none; text-align: center; box-sizing: border-box; }
.fr { display: flex; flex-direction: column; gap: 14px; padding-bottom: 24px; }
.fr-caja { background: #fff; border-radius: 16px; padding: 20px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.fr-icono { font-size: 34px; }
.fr-caja b { font-size: 17px; color: #3D2B1F; }
.fr-caja p { margin: 0; font-size: 14px; color: #6B5A4E; line-height: 1.5; }
.fr-abrir {
    display: flex; align-items: center; justify-content: center; height: 52px; border-radius: 14px; background: #3D2B1F; color: #C9B99A;
    font-size: 15px; font-weight: 700; text-decoration: none;
}
.fr-hecho { height: 52px; border: none; border-radius: 14px; background: #16A34A; color: #fff; font-size: 15px; font-weight: 700; font-family: inherit; cursor: pointer; }
.fr-hecho:disabled { opacity: .6; }

/* ══ Albaranes ════════════════════════════════════════════════════════════════ */
.al { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.al-subir {
    position: relative; overflow: hidden; height: 52px; border-radius: 14px; background: #3D2B1F; color: #fff; font-size: 15px; font-weight: 700;
    display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.al-rotulo { font-size: 10px; font-weight: 700; color: #9CA3AF; margin: 8px 0 2px 4px; }
.al-rotulo.rojo { color: #C0392B; margin-top: 4px; }
.al-tarjeta {
    display: flex; align-items: center; gap: 12px; background: #fff; border: none; border-radius: 14px; padding: 10px 12px; text-align: left;
    font-family: inherit; cursor: pointer; width: 100%; box-sizing: border-box;
}
.al-tarjeta.pregunta { background: #FFF7ED; border: 1px solid #F0D9B5; }
.al-tarjeta img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; background: #E5DDD4; flex-shrink: 0; }
.al-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.al-tx b { font-size: 14px; color: #3D2B1F; font-weight: 400; overflow-wrap: anywhere; }
.al-tarjeta.pregunta .al-tx b { font-size: 13px; }
.al-tx small { font-size: 11px; color: #A09080; }
.al-tx small.nota { color: #6B5A4E; }
.al-tx em { font-size: 11px; color: #C0392B; }

/* ══ Mis jornadas y fichaje ═══════════════════════════════════════════════════ */
.jc { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; }
.jc-caja {
    background: #fff; border: none; border-radius: 14px; padding: 10px 14px; font-size: 16px; color: #3D2B1F; font-family: inherit;
    width: 100%; box-sizing: border-box;
}
.jc-emp { display: flex; align-items: center; gap: 10px; }
.jc-emp b { font-size: 13px; }
.jc-emp select { flex: 1; min-width: 0; border: none; background: transparent; font-size: 16px; color: #3D2B1F; font-family: inherit; }
.jc-filtros { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.jc-resumen { display: flex; align-items: center; justify-content: space-between; background: #3D2B1F; border-radius: 14px; padding: 12px 16px; margin-bottom: 4px; }
.jc-resumen span { font-size: 13px; color: #C9B99A; }
.jc-resumen b { font-size: 18px; color: #fff; }
.jc-dia { display: grid; grid-template-columns: 58px 1fr 70px; gap: 10px; align-items: center; background: #fff; border-radius: 12px; padding: 10px 14px; }
.jc-dia.nolab { background: #F0EAE0; }
.jc-dia.tocable { cursor: pointer; }
.jc-fecha { font-size: 13px; }
.jc-centro { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.jc-centro strong { font-size: 14px; }
.jc-centro small { font-size: 11px; }
.jc-barra { display: block; height: 12px; border-radius: 6px; background: #E8DDD0; overflow: hidden; }
.jc-barra i { display: block; height: 100%; border-radius: 6px; }
.jc-editor { display: flex; flex-direction: column; gap: 12px; }
.jc-horas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.jc-horas label { display: flex; flex-direction: column; gap: 4px; }
.jc-horas b { font-size: 12px; color: #6B5A4E; }
.jc-horas input { background: #F0EAE0; border: none; border-radius: 12px; padding: 10px; font-size: 16px; color: #3D2B1F; font-family: inherit; }
.jc-botones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.jc-botones button { height: 44px; border: none; border-radius: 14px; font-size: 15px; font-family: inherit; cursor: pointer; }
.jc-botones .cancelar { background: #E8DDD0; color: #3D2B1F; }
.jc-botones .enviar { background: #3D2B1F; color: #fff; }

.fc { display: flex; flex-direction: column; gap: 24px; padding: 4px 4px 24px; }
.fc-fecha { text-align: center; font-size: 14px; color: #9CA3AF; }
.fc-boton {
    height: 200px; border: none; border-radius: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
    cursor: pointer; font-family: inherit; box-shadow: 0 6px 18px rgba(0,0,0,.18); -webkit-tap-highlight-color: transparent;
}
.fc-boton:active { transform: scale(.98); }
.fc-boton.entrada { background: #16A34A; }
.fc-boton.salida { background: #DC2626; }
.fc-boton:disabled { opacity: .85; }
.fc-boton b { font-size: 20px; color: #fff; }
.fc-boton span { font-size: 16px; color: #dcfce7; }
.fc-tit { font-size: 16px; color: #1C1917; }
.fc-vacio { background: #fff; border-radius: 16px; padding: 32px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.fc-vacio span { font-size: 40px; }
.fc-vacio small { font-size: 15px; color: #9CA3AF; }
.fc-lista { display: flex; flex-direction: column; gap: 1px; margin-top: -12px; }
.fc-fila { display: flex; align-items: center; gap: 12px; background: #fff; padding: 12px 16px; }
.fc-fila i { width: 8px; height: 8px; border-radius: 4px; margin: 0 2px; }
.fc-fila span { display: flex; flex-direction: column; gap: 2px; }
.fc-fila b { font-size: 15px; color: #1C1917; }
.fc-fila small { font-size: 13px; color: #9CA3AF; }
.cfg-caja { background: #fff; border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.cfg-caja b { font-size: 15px; color: #3D2B1F; }
.cfg-caja small { font-size: 12px; color: #A09080; line-height: 1.4; }

/* ══ Vacaciones ═══════════════════════════════════════════════════════════════ */
.vc { display: flex; flex-direction: column; gap: 12px; padding-bottom: 24px; }
.vc-panel { background: #fff; border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.vc-panel > b { font-size: 13px; color: #3D2B1F; }
.vc-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vc-kpi { background: #F5EFE6; border-radius: 12px; padding: 10px; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.vc-kpi.verde { background: #ECFDF5; }
.vc-kpi.azul { background: #EFF6FF; }
.vc-kpi strong { font-size: 24px; color: #3D2B1F; }
.vc-kpi small { font-size: 10px; color: #A09080; }
.vc-mes { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; }
.vc-mes b { text-align: center; font-size: 17px; color: #3D2B1F; }
.vc-mes button { width: 44px; height: 44px; border-radius: 22px; border: none; background: #fff; color: #3D2B1F; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.vc-rejilla { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: #DDD0C4; border: 1px solid #DDD0C4; border-radius: 12px; overflow: hidden; }
.vc-celda { background: #fff; min-height: 52px; padding: 2px 2px 3px; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.vc-celda.finde { background: #FAF5EF; }
.vc-celda > b { align-self: flex-end; font-size: 11px; font-weight: 400; margin: 0 4px 2px 0; }
.vc-celda > b.vc-hoy { width: 24px; height: 24px; border-radius: 12px; background: #3D2B1F; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 2px 2px 0; }
.vc-chip { font-size: 9px; font-weight: 700; color: #fff; border-radius: 2px; padding: 0 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 15px; }
.vc-celda small { font-size: 8px; color: #6B5A4E; margin-left: 3px; }
.vc-raya { height: 1px; background: #E8DDD0; margin: 4px 0; }
.vc-tit { font-size: 14px; color: #3D2B1F; }
.vc-pend { display: grid; grid-template-columns: 1fr 76px 76px; gap: 6px; align-items: center; background: #fff; border-radius: 16px; padding: 10px 14px; }
.vc-pend > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vc-pend b { font-size: 13px; color: #3D2B1F; }
.vc-pend small { font-size: 11px; color: #A09080; }
.vc-pend button { height: 36px; border: none; border-radius: 12px; font-size: 11px; font-weight: 700; font-family: inherit; cursor: pointer; }
.vc-pend .aprobar { background: #D1FAE5; color: #065F46; }
.vc-pend .rechazar { background: #FEE2E2; color: #991B1B; }
.vc-solicitar { height: 54px; border: none; border-radius: 22px; background: #3D2B1F; color: #C9B99A; font-size: 15px; font-weight: 700; font-family: inherit; cursor: pointer; }
.vc-solicitar:disabled { opacity: .6; }
.vc-sol { display: flex; align-items: center; justify-content: space-between; gap: 8px; background: #fff; border-radius: 14px; padding: 10px 14px; }
.vc-sol span { font-size: 13px; color: #3D2B1F; }
.vc-sol em { font-style: normal; font-size: 11px; font-weight: 700; border-radius: 10px; padding: 3px 8px; white-space: nowrap; }
.vc-campo { display: flex; flex-direction: column; gap: 6px; }
.vc-campo small { font-size: 12px; font-weight: 700; color: #6B5A4E; }
.vc-campo input, .vc-campo textarea {
    background: #fff; border: none; border-radius: 14px; padding: 12px 14px; font-size: 16px; color: #3D2B1F; font-family: inherit; resize: none;
    box-sizing: border-box; width: 100%;
}

/* ══ Bolsa de horas ═══════════════════════════════════════════════════════════ */
.bh { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.bh-total { display: flex; align-items: center; gap: 10px; background: #3D2B1F; border-radius: 14px; padding: 14px 16px; }
.bh-total span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.bh-total b { font-size: 13px; color: #C9B99A; font-weight: 400; }
.bh-total small { font-size: 11px; color: #A09080; }
.bh-total strong { font-size: 22px; color: #fff; }
.bh-botones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bh-botones button { height: 44px; border: none; border-radius: 14px; color: #fff; font-size: 14px; font-family: inherit; cursor: pointer; }
.bh-botones .oscuro { background: #3D2B1F; }
.bh-botones .marron { background: #8B6148; }
.bh-cab { display: flex; align-items: center; justify-content: space-between; margin: 6px 4px 0; }
.bh-cab small { font-size: 12px; font-weight: 700; color: #A09080; }
.bh-cab button { height: 36px; border: none; border-radius: 12px; background: #F0EAE0; color: #C0392B; font-size: 12px; padding: 0 14px; font-family: inherit; cursor: pointer; }
.bh-mov { display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 16px; padding: 10px 14px; }
.bh-ic { font-size: 20px; }
.bh-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bh-tx b { font-size: 15px; color: #3D2B1F; overflow-wrap: anywhere; }
.bh-tx small { font-size: 11px; color: #A09080; }
.bh-mov > strong { font-size: 15px; white-space: nowrap; }
.bh-borrar { width: 38px; height: 38px; border-radius: 19px; border: none; background: #F0EAE0; color: #C0392B; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
.bh-campo { display: flex; flex-direction: column; gap: 4px; }
.bh-campo b { font-size: 12px; color: #6B5A4E; }
.bh-campo input { background: #F0EAE0; border: none; border-radius: 12px; padding: 10px 12px; font-size: 16px; color: #3D2B1F; font-family: inherit; }
.bh-campo input.claro { background: #F7F2EA; }
.bh-switch { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #3D2B1F; cursor: pointer; }
.bh-persona { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #fff; border: none; border-radius: 16px; padding: 16px; font-family: inherit; cursor: pointer; width: 100%; text-align: left; }
.bh-persona b { font-size: 15px; color: #3D2B1F; }
.bh-persona strong { font-size: 16px; }

/* ══ Perfil ═══════════════════════════════════════════════════════════════════ */
.pf { display: flex; flex-direction: column; gap: 20px; padding: 8px 8px 32px; }
.pf-avatar {
    width: 100px; height: 100px; border-radius: 50px; background: #3D2B1F; color: #C9B99A; font-size: 40px; font-weight: 700; display: flex;
    align-items: center; justify-content: center; align-self: center; margin-top: 24px;
}
.pf-nombre { text-align: center; font-size: 22px; font-weight: 700; color: #3D2B1F; margin-top: -12px; }
.pf-rol { align-self: center; background: #3D2B1F; color: #C9B99A; font-size: 12px; font-weight: 700; border-radius: 12px; padding: 5px 16px; margin-top: -12px; }
.pf-caja { background: #fff; border-radius: 16px; padding: 8px 20px; }
.pf-dato { display: flex; flex-direction: column; gap: 2px; padding: 12px 0 10px; }
.pf-dato small { font-size: 12px; color: #9CA3AF; }
.pf-dato b { font-size: 15px; color: #3D2B1F; }
.pf-dato span { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.pf-vista { display: flex; align-items: center; gap: 12px; background: #FEF3C7; border-radius: 14px; padding: 12px 16px; margin-top: -8px; }
.pf-vista span { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.pf-vista small { font-size: 10px; font-weight: 700; color: #92400E; }
.pf-vista b { font-size: 13px; color: #78350F; font-weight: 400; }
.pf-vista button { border: none; background: #92400E; color: #fff; border-radius: 10px; padding: 6px 12px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: inherit; }
.pf-picker { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 10px; }
.pf-picker small { font-size: 11px; color: #9CA3AF; }
.pf-picker select { border: none; background: transparent; font-size: 16px; color: #3D2B1F; font-family: inherit; padding: 2px 0; }
.pf-aplicar, .pf-notis, .pf-salir { height: 50px; border: none; border-radius: 12px; font-size: 15px; font-weight: 700; font-family: inherit; cursor: pointer; }
.pf-aplicar { background: #5B7C5F; color: #fff; margin-top: -8px; }
.pf-notis { background: #E8DFD2; color: #3D2B1F; }
.pf-salir { background: #3D2B1F; color: #C9B99A; height: 52px; font-size: 16px; }

/* ══ Sugerencias y notas ══════════════════════════════════════════════════════ */
.sg { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.sg-nueva { height: 46px; border: none; border-radius: 14px; background: #3D2B1F; color: #C9B99A; font-weight: 700; font-size: 14px; font-family: inherit; cursor: pointer; }
.sg-nueva:disabled { opacity: .6; }
.sg-card { background: #fff; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }

/* Fotos y videos adjuntados a una sugerencia */
.sg-medios { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.sg-medios a { display: block; width: 72px; height: 72px; border-radius: 10px; overflow: hidden; background: #E5DDD4; }
.sg-medios img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sg-video { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center;
            background: #3D2B1F; color: #fff; font-size: 24px; }
.sg-adjuntar { position: relative; display: flex; align-items: center; justify-content: center;
               height: 42px; border-radius: 10px; background: #F5EFE6; color: #3D2B1F;
               font-size: 13px; cursor: pointer; overflow: hidden; }
.sg-adjuntar input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.sg-quitar { border: 1px solid #D8CFC2; background: #fff; color: #3D2B1F; border-radius: 8px;
             padding: 4px 8px; font-size: 11px; font-family: inherit; cursor: pointer;
             max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sg-card.tocable { cursor: pointer; }
.sg-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sg-cab small { font-size: 11px; font-weight: 700; color: #8B6148; }
.sg-cab em { font-style: normal; font-size: 10px; font-weight: 700; border-radius: 9px; padding: 3px 8px; white-space: nowrap; }
.sg-card > b { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.sg-card > span { font-size: 12px; color: #6B5A4E; white-space: pre-wrap; overflow-wrap: anywhere; }
.sg-card small.autor { font-size: 10px; color: #A09080; }
.sg-card i.nota { font-size: 11px; color: #1E40AF; }
.sg-sep { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 2px; }
.sg-sep i { height: 2px; background: #D8CFC2; }
.sg-sep small { font-size: 11px; font-weight: 700; color: #A09080; }

.nt { display: flex; flex-direction: column; gap: 12px; }
.nt-item { background: #fff; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; }
.nt-item.media { padding: 8px; gap: 6px; }
.nt-item small { font-size: 11px; color: #9CA3AF; }
.nt-item > span { font-size: 14px; color: #3D2B1F; white-space: pre-wrap; overflow-wrap: anywhere; }
.nt-item img { width: 100%; max-height: 220px; object-fit: contain; background: #E5DDD4; border-radius: 6px; cursor: pointer; }
.nt-item video { width: 100%; max-height: 320px; border-radius: 6px; background: #000; }
.nt-video { height: 160px; border: none; background: #3D2B1F; color: #fff; font-size: 18px; font-weight: 700; border-radius: 6px; cursor: pointer; font-family: inherit; }
.nt-barra {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #fff; border-top: 1px solid #E5DDD4; display: flex; align-items: center;
    gap: 6px; padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
}
.nt-img { position: relative; overflow: hidden; width: 44px; height: 44px; border-radius: 22px; background: #F0EAE0; display: flex; align-items: center; justify-content: center; font-size: 20px; cursor: pointer; flex-shrink: 0; }
.nt-input { flex: 1; min-width: 0; border: none; outline: none; font-size: 16px; color: #3D2B1F; font-family: inherit; padding: 10px 6px; background: transparent; }
.nt-enviar { height: 44px; border: none; border-radius: 22px; background: #3D2B1F; color: #C9B99A; font-weight: 700; font-size: 13px; padding: 0 14px; font-family: inherit; cursor: pointer; flex-shrink: 0; }

/* ══ Pantallas de administración (festivos, horario, informe, equipo…) ═══════ */
.ad { display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.ad-caja { background: #fff; border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.ad-caja > b { font-size: 13px; color: #3D2B1F; }
.ad-horizontal { flex-direction: row; align-items: center; gap: 12px; display: flex; }
.ad-fila2 { display: grid; grid-template-columns: auto 1fr; gap: 10px; }
.ad-fila2 label { display: flex; flex-direction: column; gap: 4px; }
.ad-rot { font-size: 12px; color: #A09080; }
.ad-input {
    border: none; border-bottom: 1px solid #EDE5D8; background: transparent; font-size: 16px; color: #3D2B1F; font-family: inherit; padding: 8px 0;
    width: 100%; box-sizing: border-box; min-width: 0; border-radius: 0; outline: none;
}
.ad-input.corto { width: auto; }
.ad-boton { height: 44px; border: none; border-radius: 12px; background: #3D2B1F; color: #C9B99A; font-weight: 700; font-size: 14px; font-family: inherit; cursor: pointer; }
.ad-boton.marron { background: #8B6148; color: #fff; height: 48px; border-radius: 14px; }
.ad-boton:disabled { opacity: .6; }
.ad-item { display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 12px; padding: 10px 14px; }
.ad-fecha { width: 70px; flex-shrink: 0; font-size: 13px; color: #3D2B1F; }
.ad-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ad-tx > span, .ad-tx > b { font-size: 13px; color: #3D2B1F; overflow-wrap: anywhere; }
.ad-tx > b { font-size: 15px; }
.ad-tx small { font-size: 11px; color: #A09080; }
.ad-quitar { border: none; background: #FEE2E2; color: #991B1B; font-size: 12px; font-weight: 700; border-radius: 10px; padding: 6px 12px; cursor: pointer; font-family: inherit; }
.ad-dia { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; font-size: 15px; color: #3D2B1F; }
.ad-dia input { width: 90px; text-align: center; border: none; border-bottom: 1px solid #EDE5D8; font-size: 16px; color: #3D2B1F; font-family: inherit; padding: 6px 0; background: transparent; outline: none; }
.ad-csv { background: #3D2B1F; color: #C9B99A; font-size: 12px; font-weight: 700; border-radius: 12px; padding: 6px 12px; text-decoration: none; white-space: nowrap; }
.ad-tabla { display: grid; grid-template-columns: 1fr auto auto auto; gap: 10px; padding: 5px 0; font-size: 13px; color: #3D2B1F; }
.ad-tabla > * { min-width: 44px; }
.ad-tabla > *:first-child { min-width: 0; }
.ad-tabla.cab { font-size: 11px; font-weight: 700; color: #A09080; padding: 4px 0 0; }
.ad-seccion { font-size: 12px; font-weight: 700; color: #A09080; margin: 10px 0 2px 4px; }
.ad-punto { width: 10px; height: 10px; border-radius: 5px; flex-shrink: 0; }
.ad-sep { height: 1px; background: #EDE5D8; }
.ad-nombre { font-size: 18px; color: #3D2B1F; margin: 0 4px; }
.ad-ayuda { font-size: 12px; color: #A09080; margin: 0 4px; }
.ad-caja .ad-ayuda { margin: 0; }
.ad-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ad-dos label { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ad-item.ancho { padding: 12px 16px; }
.ad-caja select.ad-input { appearance: auto; }

/* ══ Reseñas, ventas y usuarios ══════════════════════════════════════════════ */
.rs-google { background: #3D2B1F; border-radius: 14px; padding: 12px 16px; display: flex; align-items: center; gap: 10px; }
.rs-google span { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.rs-google b { font-size: 13px; font-weight: 400; color: #C9B99A; }
.rs-google small { font-size: 11px; color: #A09080; }
.rs-google em { font-style: normal; font-size: 20px; font-weight: 700; color: #fff; }
.rs-semana { font-size: 22px; color: #16A34A; }
.rs-card { background: #fff; border-radius: 16px; padding: 12px 16px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; }
.rs-card .sg-cab b { font-size: 15px; color: #3D2B1F; overflow-wrap: anywhere; }
.rs-tel { font-size: 12px; color: #6B5A4E; }
.rs-nota { font-size: 12px; color: #A09080; white-space: pre-wrap; overflow-wrap: anywhere; }
.ad-modal { background: #fff; border-radius: 20px; padding: 20px; width: 100%; max-width: 380px; display: flex; flex-direction: column; gap: 12px; box-sizing: border-box; }
.ad-modal-tit { font-size: 17px; color: #3D2B1F; }
.ad-modal label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; color: #6B5A4E; }
.ad-modal input, .ad-modal textarea {
    background: #F7F2EA; border: none; border-radius: 12px; padding: 12px; font-size: 16px; color: #3D2B1F; font-family: inherit; font-weight: 400;
    outline: none; width: 100%; box-sizing: border-box; resize: none;
}
.ad-modal-bots { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 4px; }
.ad-modal-bots button { height: 44px; border: none; border-radius: 14px; font-size: 14px; font-family: inherit; cursor: pointer; }
.ad-modal-bots .no { background: #E8DDD0; color: #3D2B1F; }
.ad-modal-bots .si { background: #3D2B1F; color: #fff; }

.vn { display: flex; flex-direction: column; gap: 8px; padding-bottom: calc(170px + env(safe-area-inset-bottom, 0px)); }
.vn-chips { position: relative; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; }
.vn-chips::-webkit-scrollbar { display: none; }
.vn-chip { flex-shrink: 0; border: none; border-radius: 20px; padding: 7px 14px; background: #F0EAE0; color: #3D2B1F; font-size: 13px; font-weight: 700; font-family: inherit; cursor: pointer; }
.vn-chip.on { background: #3D2B1F; color: #C9B99A; }
.vn-card { background: #fff; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; cursor: pointer; }
.vn-fila { display: flex; align-items: flex-start; gap: 8px; }
.vn-fila b { flex: 1; min-width: 0; font-size: 14px; color: #3D2B1F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vn-fila em { font-style: normal; font-size: 10px; font-weight: 700; border-radius: 8px; padding: 3px 8px; white-space: nowrap; }
.vn-card small { font-size: 11px; color: #9CA3AF; display: flex; align-items: center; gap: 6px; }
.vn-card small i { width: 1px; height: 10px; background: #D6CABD; }
.vn-grafica {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #fff; border-radius: 20px 20px 0 0;
    padding: 14px 16px calc(10px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; gap: 10px;
    box-shadow: 0 -2px 12px rgba(61, 43, 31, .06); max-width: 720px; margin: 0 auto;
}
.vn-grafica > b { font-size: 12px; color: #3D2B1F; }
.vn-barras { display: grid; grid-template-columns: repeat(12, 1fr); gap: 5px; height: 100px; }
.vn-col { display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; cursor: pointer; }
.vn-col .n { font-size: 9px; color: #9CA3AF; text-align: center; margin-bottom: 2px; }
.vn-col i { display: block; background: #C9B99A; border-radius: 3px 3px 0 0; }
.vn-col i.cur { background: #3D2B1F; }
.vn-col .l { height: 16px; line-height: 16px; font-size: 9px; color: #9CA3AF; text-align: center; }
.vn-col .l.cur { color: #3D2B1F; font-weight: 700; }

.gu-cab { display: flex; align-items: center; gap: 8px; margin: 4px 0 0; }
.gu-cab b { flex: 1; font-size: 20px; color: #3D2B1F; }
.gu-nuevo { border: none; background: #16A34A; color: #fff; font-size: 12px; font-weight: 700; border-radius: 10px; padding: 7px 12px; font-family: inherit; cursor: pointer; }
.gu-bajas { display: flex; align-items: center; justify-content: flex-end; gap: 8px; font-size: 12px; color: #6B5A4E; cursor: pointer; }
.gu-card { background: #fff; border-radius: 16px; padding: 12px 16px; display: flex; align-items: center; gap: 12px; cursor: pointer; }
.gu-card.pendiente { border: 1px solid #FDE68A; cursor: default; gap: 8px; }
.gu-card.baja { background: #F3EEE6; cursor: default; }
.gu-avatar { width: 56px; height: 56px; border-radius: 28px; background: #3D2B1F; color: #C9B99A; font-size: 22px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gu-nombre { display: block; }
.gu-nombre b { font-size: 15px; color: #3D2B1F; overflow-wrap: anywhere; }
.gu-nombre i { margin-left: 6px; font-style: normal; font-weight: 700; color: #16A34A; font-size: 15px; }
.ad-tx small.gu-mail { font-size: 12px; color: #9CA3AF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ad-tx small.gu-contrato { font-size: 11px; color: #6B5A4E; }
.gu-rol { font-style: normal; font-size: 11px; font-weight: 700; border-radius: 10px; padding: 4px 10px; flex-shrink: 0; }
.gu-bt { border: none; height: 40px; border-radius: 10px; padding: 0 12px; font-size: 13px; font-weight: 700; font-family: inherit; cursor: pointer; flex-shrink: 0; }
.gu-bt.verde { background: #16A34A; color: #fff; }
.gu-bt.x { background: #F0EAE0; color: #B91C1C; width: 44px; padding: 0; display: flex; align-items: center; justify-content: center; }
.ad-label { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; height: 48px; box-sizing: border-box; }
.ad-label.off { opacity: .6; pointer-events: none; }
.ad-sub { font-size: 13px; color: #3D2B1F; margin: 2px 4px 0; }
.ad-firmar { border: none; background: #3D2B1F; color: #C9B99A; font-size: 12px; font-weight: 700; border-radius: 10px; padding: 6px 12px; cursor: pointer; font-family: inherit; white-space: nowrap; }
.ad-firmar:disabled { opacity: .6; }

/* ══ Banco ═══════════════════════════════════════════════════════════════════ */
.bk { display: flex; flex-direction: column; gap: 6px; padding-bottom: 24px; }
.bk-saldo { background: #3D2B1F; border-radius: 14px; padding: 12px 16px; display: flex; align-items: center; gap: 10px; margin-bottom: 2px; }
.bk-saldo-izq { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bk-saldo-izq small { font-size: 11px; color: #C9B99A; }
.bk-saldo-izq b { font-size: 23px; color: #fff; font-variant-numeric: tabular-nums; }
.bk-saldo-izq i { font-style: normal; font-size: 10px; color: #A0907C; }
.bk-saldo-izq i.ent { color: #C9B99A; margin-top: 2px; }
.bk-saldo-der { display: flex; flex-direction: column; align-items: center; gap: 3px; flex-shrink: 0; }
.bk-act { height: 32px; border: none; border-radius: 16px; padding: 0 12px; background: #C9B99A; color: #3D2B1F; font-size: 12px; font-weight: 700; font-family: inherit; cursor: pointer; white-space: nowrap; }
.bk-act.trabajando { background: #6B5A4E; color: #fff; animation: bk-latido 1.2s ease-in-out infinite; }
.bk-act:disabled:not(.trabajando) { opacity: .5; }
@keyframes bk-latido { 50% { opacity: .45; } }
.bk-saldo-der small { font-size: 9px; color: #A0907C; }
.bk-recon { height: 26px; border: 1px solid #6B5A4E; border-radius: 14px; padding: 0 10px; background: transparent; color: #C9B99A; font-size: 10px; font-family: inherit; cursor: pointer; }
.bk-aviso { background: #FEF3C7; color: #92400E; border-radius: 10px; padding: 8px 12px; font-size: 11px; }
.bk-aviso.grave { background: #FEE2E2; color: #991B1B; }
.bk-todas { align-self: flex-start; border: none; border-radius: 10px; padding: 7px 12px; background: #fff; color: #3D2B1F; font-size: 12px; font-weight: 700; font-family: inherit; cursor: pointer; }
.bk-todas.on { background: #3D2B1F; color: #fff; }
.bk-cuenta { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 10px; padding: 8px 12px; border: 2px solid transparent; cursor: pointer; }
.bk-cuenta.sel { background: #EFE7DA; border-color: #8B6148; }
.bk-cuenta span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.bk-cuenta b { font-size: 12px; color: #1C1917; overflow-wrap: anywhere; }
.bk-cuenta small { font-size: 10px; color: #A09080; }
.bk-cuenta em { font-style: normal; font-size: 13px; font-weight: 700; color: #3D2B1F; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bk-movcab { display: flex; align-items: center; gap: 6px; margin: 2px 0 0 4px; }
.bk-movcab small { flex: 1; font-size: 11px; font-weight: 700; color: #A09080; }
.bk-exp { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 30px; border: none; border-radius: 14px; background: #fff; color: #3D2B1F; font-size: 13px; font-weight: 700; cursor: pointer; }
.bk-filtro { display: inline-flex; align-items: center; gap: 4px; height: 30px; border: none; border-radius: 14px; background: #fff; color: #3D2B1F; font-size: 11px; font-weight: 700; padding: 0 12px; font-family: inherit; cursor: pointer; white-space: nowrap; }
.bk-exp.on, .bk-filtro.on { background: #C9B99A; }
.bk-dia { font-size: 11px; font-weight: 700; color: #8B6148; margin: 8px 0 0 4px; }
.bk-mov { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 9px; padding: 7px 11px; cursor: pointer; }
.bk-mov-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bk-mov-tx b { font-weight: 400; font-size: 12px; color: #1C1917; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-mov-tx b.exp { white-space: normal; overflow-wrap: anywhere; }
.bk-mov-tx small { font-size: 10px; color: #A09080; display: flex; align-items: center; gap: 4px; }
.bk-mov-tx small i { font-style: normal; font-size: 9px; }
.bk-mov em { font-style: normal; font-size: 13px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bk-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bk-chk { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 12px; padding: 10px 12px; font-size: 13px; font-weight: 700; color: #3D2B1F; cursor: pointer; }
.bk-chk input { width: 18px; height: 18px; margin: 0; }
.bk-fechas { background: #fff; border-radius: 12px; padding: 0 0 8px; display: flex; flex-direction: column; gap: 4px; }
.bk-fechas .bk-dos { padding: 0 12px; }
.bk-fechas label:not(.bk-chk) { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bk-fechas label small { font-size: 12px; color: #A09080; }
.bk-fechas input[type=date] { font-size: 16px; color: #3D2B1F; border: none; border-bottom: 1px solid #EDE5D8; background: transparent; font-family: inherit; padding: 4px 0; min-width: 0; width: 100%; }
.st-buscar { background: #fff; border: none; border-radius: 12px; padding: 12px 14px; font-size: 16px; color: #3D2B1F; font-family: inherit; outline: none; width: 100%; box-sizing: border-box; flex-shrink: 0; }
.st-item { display: flex; background: #fff; border-radius: 14px; overflow: hidden; cursor: pointer; flex-shrink: 0; }
.st-item > i { width: 6px; flex-shrink: 0; }
.st-item > span { flex: 1; min-width: 0; padding: 12px 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.st-item b { font-size: 14px; color: #3D2B1F; overflow-wrap: anywhere; }
.st-item em { font-style: normal; font-size: 10px; font-weight: 700; color: #6B5A4E; background: #F0EAE0; border-radius: 6px; padding: 2px 8px; }

/* ══ Galería y visor de PDF ══════════════════════════════════════════════════ */
.gl-rejilla { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding-bottom: 24px; }
@media (min-width: 700px) { .gl-rejilla { grid-template-columns: repeat(5, 1fr); } }
.gl-mini { aspect-ratio: 1; border: none; padding: 0; background: #E5DDD4; border-radius: 6px; overflow: hidden; cursor: pointer; max-width: 100%; }
.gl-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pv-movil { display: none; flex-direction: column; align-items: center; gap: 12px; background: #fff; border-radius: 16px; padding: 28px 20px; text-align: center; }
.pv-movil b { font-size: 16px; color: #3D2B1F; overflow-wrap: anywhere; }
.pv-movil small { font-size: 12px; color: #A09080; }
.pv-abrir { display: flex; align-items: center; justify-content: center; width: 100%; height: 48px; border-radius: 14px; text-decoration: none; box-sizing: border-box; }
.pv-marco { width: 100%; height: calc(100vh - 140px); border: none; border-radius: 12px; background: #fff; }
@media (max-width: 700px) { .pv-movil { display: flex; } .pv-marco { display: none; } }

/* ══ Auditoría, archivo por material y nueva ficha ═══════════════════════════ */
.au-chip, .am-chip { flex-shrink: 0; border: 1px solid #E4DAC9; border-radius: 16px; padding: 7px 14px; background: #fff; color: #2A1D14; font-size: 13px; font-family: inherit; cursor: pointer; }
.au-chip.on, .am-chip.on { background: #3D2B1F; border-color: #3D2B1F; color: #C9B99A; }
.am-chip { border: none; font-size: 12px; color: #6B5A4E; padding: 8px 14px; }
.am-chip.on { font-weight: 700; }
.am-chip.peque { font-size: 11px; padding: 6px 12px; }
.au-fila { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #E4DAC9; border-radius: 14px; padding: 10px 14px; cursor: pointer; }
.au-ico { font-size: 18px; flex-shrink: 0; }
.ad-tx b.au-res { font-size: 14px; color: #2A1D14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ad-tx .au-res + small { font-size: 12px; color: #8A7A63; }
.am-trabajo { font-size: 13px; color: #3D2B1F; margin: 6px 2px 0; cursor: pointer; overflow-wrap: anywhere; }
.am-fotos { display: flex; flex-wrap: wrap; gap: 8px; }
.am-foto { width: 96px; height: 96px; border: none; padding: 0; border-radius: 12px; overflow: hidden; background: #E5DDD4; cursor: pointer; }
.am-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nf-tarjeta { background: #fff; border-radius: 14px; padding: 10px 14px; display: flex; flex-direction: column; gap: 2px; }
.nf-tarjeta small { font-size: 10px; color: #9CA3AF; }
.nf-tarjeta input { border: none; outline: none; background: transparent; font-size: 16px; color: #3D2B1F; font-family: inherit; padding: 6px 0; width: 100%; min-width: 0; }
.nf-sug { text-align: left; border: none; background: transparent; font-size: 14px; color: #3D2B1F; padding: 7px 2px; font-family: inherit; cursor: pointer; border-top: 1px solid #F0EAE0; }

/* ══ Facturación (cuadre, factura, historial, clientes, buscar la ficha) ═════ */
.fa-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.fa-kpis span { background: #fff; border: 1px solid #E4DAC9; border-radius: 12px; padding: 8px 4px; display: flex; flex-direction: column; align-items: center; min-width: 0; }
.fa-kpis b { font-size: 15px; color: #3D2B1F; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fa-kpis small { font-size: 10px; color: #8A7A63; }
.fa-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; background: #fff; border: 1px solid #E4DAC9; border-radius: 10px; padding: 3px; }
.fa-toggle button { border: none; border-radius: 8px; padding: 9px 6px; background: transparent; color: #2A1D14; font-size: 13.5px; font-family: inherit; cursor: pointer; }
.fa-toggle button.on { background: #3D2B1F; color: #fff; }
.fa-select, .hf-anio { background: #fff; border: 1px solid #E4DAC9; border-radius: 10px; padding: 9px 10px; font-size: 16px; color: #2A1D14; font-family: inherit; min-width: 0; width: 100%; }
.fa-botones { display: flex; flex-wrap: wrap; gap: 8px; }
.fa-botones button { border: 1px solid #C9B99A; background: transparent; color: #3D2B1F; border-radius: 9px; padding: 9px 14px; font-size: 13.5px; font-family: inherit; cursor: pointer; }
.fa-botones button.principal { background: #3D2B1F; border-color: #3D2B1F; color: #fff; }
.fa-panel { background: #fff; border: 1px solid #E4DAC9; border-radius: 14px; overflow: hidden; }
.fa-vinc { display: flex; flex-direction: column; gap: 6px; padding: 10px 14px; }
.fa-vinc small { font-size: 12.5px; color: #8A7A63; }
.fa-panel-cab { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid #E4DAC9; }
.fa-panel-cab > b, .fa-panel-cab > span { flex: 1; min-width: 0; font-size: 14px; color: #2A1D14; display: flex; flex-direction: column; }
.fa-panel-cab > span b { font-size: 14px; }
.fa-panel-cab small { font-size: 12px; font-weight: 700; color: #8A7A63; white-space: nowrap; }
.fa-panel-cab small.pista { font-size: 10.5px; font-weight: 400; color: #C9B99A; }
.fa-vacio { padding: 12px 14px; font-size: 12.5px; color: #8A7A63; }
.fa-fila { display: flex; align-items: center; gap: 8px; padding: 9px 14px; border-bottom: 1px solid #E4DAC9; cursor: pointer; }
.fa-fila:last-child { border-bottom: none; }
.fa-izq { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.fa-izq > b { font-size: 13.5px; color: #2A1D14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fa-izq small { font-size: 11.5px; color: #8A7A63; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fa-izq small.aviso { color: #B5651D; font-weight: 700; white-space: normal; }
.fa-izq small.acento { color: #B08D57; }
.fa-izq .verde, .fa-fila em.verde, .grande.verde { color: #2F6B2F; }
.fa-fila em { font-style: normal; font-size: 14px; font-weight: 700; color: #3D2B1F; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fa-ficha { font-style: normal; font-size: 15px; }
.fa-flecha { display: flex; align-items: center; gap: 6px; color: #C9B99A; margin-top: 2px; min-width: 0; }
.fa-flecha b { font-size: 13px; color: #2A1D14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fa-cod { width: 64px; flex-shrink: 0; text-align: center; background: #FBF7F0; border: 1px solid #E4DAC9; border-radius: 10px; padding: 6px 4px; font-size: 20px; font-weight: 700; color: #3D2B1F; }
.fa-coinc { gap: 6px; max-height: calc(100vh - 48px); overflow-y: auto; }
.fa-coinc .fa-rot { font-size: 11px; font-weight: 700; color: #8A7A63; }
.fa-coinc .grande { font-size: 20px; color: #3D2B1F; }
.fa-coinc small, .fa-coinc span { font-size: 12.5px; color: #2A1D14; overflow-wrap: anywhere; }
.fa-coinc-bots { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 8px; margin-top: 10px; }
.fa-coinc-bots button { height: 42px; border: 1px solid #C9B99A; background: transparent; color: #2A1D14; border-radius: 9px; font-size: 13.5px; font-family: inherit; cursor: pointer; }
.fa-coinc-bots button.rojo { color: #9B2C2C; }
.fa-coinc-bots button.si { background: #3D2B1F; border-color: #3D2B1F; color: #fff; }
.ad-boton.claro { background: transparent; border: 1px solid #C9B99A; color: #3D2B1F; }

.fe-cab { display: flex; align-items: flex-start; gap: 8px; }
.fe-cab span { flex: 1; display: flex; flex-direction: column; }
.fe-cab b { font-size: 20px; color: #2A1D14; }
.fe-cab small { font-size: 13px; color: #8A7A63; }
.fe-cab em { font-style: normal; font-size: 11px; font-weight: 700; border-radius: 8px; padding: 4px 10px; }
.fe-cab em.app { background: #D8E8D8; color: #2F6B2F; }
.fe-cab em.historico { background: #EDE4D3; color: #3D2B1F; }
.fe-cab em.anulada { background: #F3D6D6; color: #9B2C2C; }
.fe-sep, .bf-linea { height: 1px; background: #E4DAC9; flex-shrink: 0; }
.fe-cli { font-size: 15px; color: #2A1D14; }
.fe-sub { font-size: 12.5px; color: #8A7A63; }
.fe-campo { display: flex; flex-direction: column; gap: 2px; font-size: 11px; font-weight: 700; color: #8A7A63; min-width: 0; }
.fe-campo input { font-size: 16px; color: #2A1D14; border: none; border-bottom: 1px solid #E4DAC9; background: transparent; font-family: inherit; padding: 6px 0; min-width: 0; width: 100%; font-weight: 400; }
.fe-clirow { display: flex; align-items: center; gap: 6px; }
.fe-clirow button { width: 40px; height: 36px; flex-shrink: 0; border: 1px solid #E4DAC9; border-radius: 8px; background: transparent; color: #3D2B1F; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.fe-linea { background: #fff; border-radius: 12px; padding: 8px 12px 10px; display: flex; flex-direction: column; gap: 6px; }
.fe-linea-top { display: flex; align-items: flex-start; gap: 6px; }
.fe-linea-top textarea { flex: 1; min-width: 0; border: none; border-bottom: 1px solid #EDE5D8; font-size: 16px; color: #2A1D14; font-family: inherit; resize: none; padding: 6px 0; background: transparent; outline: none; overflow: hidden; }
.fe-quitar { width: 34px; height: 34px; border: none; background: transparent; color: #9B2C2C; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.fe-nums { display: grid; grid-template-columns: 1fr 1.3fr 1.3fr; gap: 10px; }
.fe-nums label, .fe-nums span { display: flex; flex-direction: column; gap: 2px; font-size: 10.5px; font-weight: 700; color: #8A7A63; min-width: 0; }
.fe-nums input { font-size: 16px; color: #2A1D14; border: none; border-bottom: 1px solid #EDE5D8; background: transparent; font-family: inherit; padding: 5px 0; text-align: right; min-width: 0; width: 100%; outline: none; }
.fe-nums span { align-items: flex-end; }
.fe-nums span b { font-size: 14px; color: #2A1D14; padding: 6px 0; white-space: nowrap; }
.fe-botones { display: flex; flex-wrap: wrap; gap: 8px; }
.fe-botones button { border: 1px solid #E4DAC9; background: transparent; color: #3D2B1F; border-radius: 8px; padding: 8px 12px; font-size: 13px; font-family: inherit; cursor: pointer; }
.fe-abonos { background: #EEF6EE; border: 1px solid #E4DAC9; border-radius: 8px; padding: 8px 12px; display: flex; flex-direction: column; gap: 2px; }
.fe-abonos b { font-size: 12.5px; color: #2E7D32; }
.fe-abonos small { font-size: 11.5px; color: #2A1D14; overflow-wrap: anywhere; }
.fe-totales { gap: 4px; }
.fe-totales span { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fe-totales small { font-size: 13px; color: #8A7A63; }
.fe-totales b { font-size: 13.5px; color: #2A1D14; font-variant-numeric: tabular-nums; }
.fe-totales .total { border-top: 1px solid #E4DAC9; padding-top: 6px; margin-top: 2px; }
.fe-totales .total small { font-size: 16px; font-weight: 700; color: #2A1D14; }
.fe-totales .total b { font-size: 18px; color: #3D2B1F; }
.fe-acciones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.fc-form { gap: 6px; }
.fc-form label { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; color: #8A7A63; }
.fc-form label small { font-size: 11px; color: #B08D57; }
.fc-form input { font-size: 16px; color: #2A1D14; border: none; border-bottom: 1px solid #E4DAC9; background: transparent; font-family: inherit; padding: 7px 0; outline: none; }
.fc-lista { background: #fff; border: 1px solid #E4DAC9; border-radius: 12px; overflow: hidden; flex-shrink: 0; }
.fc-cli { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; border: none; border-bottom: 1px solid #E4DAC9; background: transparent; padding: 10px 12px; font-family: inherit; cursor: pointer; }
.fc-cli:last-child { border-bottom: none; }
.fc-cli span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.fc-cli b { font-size: 14px; color: #2A1D14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-cli small { font-size: 12px; color: #8A7A63; }
.fc-cli em { font-style: normal; font-size: 13px; font-weight: 700; color: #3D2B1F; }

.hf-cli { position: relative; }
.hf-sug { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 20; background: #fff; border: 1px solid #C9B99A; border-radius: 10px; padding: 4px 0; box-shadow: 0 6px 18px rgba(61, 43, 31, .12); }
.hf-sug button { display: flex; flex-direction: column; width: 100%; text-align: left; border: none; background: transparent; padding: 7px 12px; font-family: inherit; cursor: pointer; }
.hf-sug b { font-size: 13px; font-weight: 400; color: #2A1D14; }
.hf-sug small { font-size: 11px; color: #8A7A63; }
.hf-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hf-filtros .hf-anio { width: auto; flex: 1; }
.hf-resumen { background: #FBF7F0; border: 1px solid #E4DAC9; border-radius: 10px; padding: 8px 12px; font-size: 12.5px; font-weight: 700; color: #3D2B1F; }
.hf-lista { background: #fff; border: 1px solid #E4DAC9; border-radius: 12px; overflow: hidden; }
.hf-fila { display: flex; gap: 10px; width: 100%; text-align: left; border: none; border-bottom: 1px solid #E4DAC9; background: transparent; padding: 9px 12px; font-family: inherit; cursor: pointer; }
.hf-fila:last-child { border-bottom: none; }
.hf-fila.anulada { opacity: .7; }
.hf-izq { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.hf-izq > b { font-size: 13.5px; font-weight: 400; color: #2A1D14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hf-izq small { font-size: 11.5px; color: #8A7A63; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hf-izq small b { color: #3D2B1F; }
.hf-izq small i { font-style: normal; font-size: 10px; font-weight: 700; color: #9B2C2C; margin-left: 6px; }
.hf-der { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.hf-der b { font-size: 13.5px; color: #3D2B1F; font-variant-numeric: tabular-nums; }
.hf-der small { font-size: 10.5px; color: #8A7A63; font-variant-numeric: tabular-nums; }

.bf { gap: 8px; }
.bf-nombre { font-size: 15px; color: #3D2B1F; overflow-wrap: anywhere; }
.bf-sub { font-size: 12px; color: #8A7A63; overflow-wrap: anywhere; }
.bf-acento { font-size: 11.5px; color: #B08D57; }
.bf-verde { font-size: 12.5px; color: #2F6B2F; }
.bf-verde2 { color: #2F6B2F !important; }
.bf-tarjeta { background: #fff; border: 1px solid #E4DAC9; border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 2px; cursor: pointer; flex-shrink: 0; }
.bf-tarjeta.verde { background: #EAF3EA; border-color: #2F6B2F; }
.bf-tarjeta.fuerte { border-width: 2px; }
.bf-tarjeta.crema { background: #FBF7F0; }
.bf-tarjeta b { font-size: 13.5px; color: #2A1D14; overflow-wrap: anywhere; }
.bf-tarjeta span { font-size: 12.5px; color: #2A1D14; overflow-wrap: anywhere; }
.bf-tarjeta small { font-size: 12px; color: #8A7A63; overflow-wrap: anywhere; }
.bf-plazos { align-self: flex-start; margin-top: 6px; border: none; border-radius: 8px; background: #EFE7DA; color: #3D2B1F; font-size: 12px; padding: 6px 10px; font-family: inherit; cursor: pointer; }
.bf-manual { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bf-manual button { border: 1px solid #B08D57; background: transparent; color: #3D2B1F; border-radius: 9px; padding: 9px 8px; font-size: 13px; font-family: inherit; cursor: pointer; }
.bf-lateral { background: #FBF7F0; border: 1px solid #E4DAC9; border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.bf-lateral small { font-size: 11.5px; overflow-wrap: anywhere; }
.bf-buscar { display: flex; gap: 8px; }
.bf-buscar .st-buscar { flex: 1; }

/* ══ Facturas recibidas, proveedores, partidas y casar con IA ════════════════ */
.fr-campo { display: flex; flex-direction: column; gap: 3px; font-size: 10.5px; color: #8A7A63; letter-spacing: .5px; min-width: 0; }
.fr-enlace { border: none; background: #3D2B1F; color: #fff; border-radius: 9px; padding: 9px 14px; font-size: 13.5px; text-decoration: none; }
.fr-fila { align-items: flex-start; }
.fr-der { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; flex-shrink: 0; }
.fr-der b { font-size: 14.5px; color: #3D2B1F; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fr-der small { font-size: 11px; font-weight: 700; }
.fr-bots { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fr-bots button, .fr-mini { border: 1px solid #C9B99A; background: transparent; color: #3D2B1F; border-radius: 8px; padding: 5px 10px; font-size: 12.5px; font-family: inherit; cursor: pointer; white-space: nowrap; flex-shrink: 0; }
.fr-bots button.rojo { border-color: #9B2C2C; color: #9B2C2C; }
.fr-mini.oscuro { background: #3D2B1F; border-color: #3D2B1F; color: #fff; }
.fa-botones button.rojo-borde { border-color: #9B2C2C; color: #9B2C2C; }
.fr-provs { display: flex; flex-direction: column; max-height: 190px; overflow-y: auto; border: 1px solid #E4DAC9; border-radius: 8px; }
.fr-provs button { text-align: left; border: none; border-bottom: 1px solid #F0EAE0; background: #fff; padding: 9px 10px; font-size: 14px; color: #2A1D14; font-family: inherit; cursor: pointer; }
.fr-rot { font-size: 11px; color: #8A7A63; margin: 4px 2px 0; }
.fr-texto { width: 100%; box-sizing: border-box; min-height: 200px; border: 1px solid #E4DAC9; border-radius: 8px; background: #FBF7F0; color: #2A1D14; font-size: 12px; font-family: inherit; padding: 10px; resize: vertical; flex-shrink: 0; }
.fr-tabla { background: #FBF7F0; border: 1px solid #E4DAC9; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; flex-shrink: 0; }
.fr-tabla > b { color: #fff; font-size: 11.5px; padding: 7px 10px; text-align: center; }
.fr-tabla > span { display: grid; grid-template-columns: 88px 1fr; gap: 6px; padding: 6px 10px; border-bottom: 1px solid #E4DAC9; }
.fr-tabla > span small { font-size: 11.5px; color: #8A7A63; }
.fr-tabla > span em { font-style: normal; font-size: 12.5px; color: #2A1D14; overflow-wrap: anywhere; }
.fr-tabla > span em.n { font-weight: 700; }
.fr-check { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #E4DAC9; font-size: 13px; color: #2A1D14; cursor: pointer; }
.fr-check:last-child { border-bottom: none; }
.fr-check input { width: 20px; height: 20px; margin: 0; flex-shrink: 0; }
.fr-check small { color: #8A7A63; }
.ci-fase { display: flex; align-items: center; gap: 10px; font-size: 14px; margin: 0 4px; }
.ci-rueda { width: 22px; height: 22px; border: 3px solid #E4DAC9; border-top-color: #3D2B1F; border-radius: 50%; animation: ci-gira 0.9s linear infinite; flex-shrink: 0; }
@keyframes ci-gira { to { transform: rotate(360deg); } }
.ci-tarjeta { background: #fff; border: 1px solid #E4DAC9; border-radius: 10px; padding: 10px 14px; display: flex; flex-direction: column; gap: 3px; }
.ci-tarjeta.ok { border-color: #CFE3CF; }
.ci-tarjeta b { font-size: 12px; }
.ci-tarjeta span { font-size: 13px; color: #2A1D14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ci-tarjeta small { font-size: 12px; color: #8A7A63; }
.ci-boton { align-self: flex-start; margin-top: 4px; border: 1px solid #3D2B1F; background: #3D2B1F; color: #fff; border-radius: 8px; padding: 6px 12px; font-size: 12.5px; font-family: inherit; cursor: pointer; }
.ci-boton.deshacer { background: transparent; border-color: #9B2C2C; color: #9B2C2C; }
.ci-boton:disabled { opacity: .6; }

/* ══ Elegir carpeta de Dropbox ══════════════════════════════════════════════ */
.dc-barra { display: flex; align-items: center; gap: 10px; }
.dc-barra button { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #E4DAC9; background: transparent; color: #3D2B1F; border-radius: 10px; padding: 7px 12px; font-size: 13px; font-family: inherit; cursor: pointer; flex-shrink: 0; }
.dc-barra button:disabled { opacity: .4; }
.dc-barra small { font-size: 11.5px; color: #9CA3AF; overflow-wrap: anywhere; }
.dc-carpeta { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: #fff; border: 1px solid #E4DAC9; border-radius: 12px; padding: 12px 14px; font-size: 14px; color: #3D2B1F; font-family: inherit; cursor: pointer; flex-shrink: 0; }
.dc-carpeta span { overflow-wrap: anywhere; }

/* ── Despiece: elegir qué hojas se imprimen ─────────────────────────────── */
.dh { padding: 10px 14px 24px; }
.dh-todas { display: flex; align-items: center; gap: 10px; padding: 10px 2px; font-size: 15px; color: #3D2B1F; cursor: pointer; }
.dh-todas input, .dh-hoja input { width: 20px; height: 20px; accent-color: #3D2B1F; flex-shrink: 0; }
.dh-estado { font-size: 12px; color: #8A7A63; padding: 0 2px 8px; }
.dh-lista { display: flex; flex-direction: column; gap: 8px; }
.dh-hoja {
    display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #E7DDCB;
    border-radius: 14px; padding: 8px 12px; cursor: pointer;
}
.dh-hoja.sel { border-color: #3D2B1F; }
.dh-hoja img { width: 86px; height: 120px; object-fit: contain; background: #fff; flex-shrink: 0; }
.dh-hoja span { font-size: 15px; color: #3D2B1F; }
.dh-imprimir {
    display: block; width: 100%; margin: 16px 0 0; height: 52px; border: none; border-radius: 12px;
    background: #3D2B1F; color: #fff; font-size: 16px; font-weight: 700; font-family: inherit; cursor: pointer;
}
.dh-imprimir:disabled { opacity: .45; cursor: default; }

/* Facturas rectificativas (/rectificativas) */
.rf-ayuda { color: #8A7A63; font-size: 13px; margin: 0 0 10px; }
.rf-alta { display: flex; flex-direction: column; gap: 8px; background: #fff; border: 1px solid #E4DAC9; border-radius: 12px; padding: 14px; margin-top: 12px; }
.rf-alta > b { font-size: 16px; color: #2A1D14; }
.rf-alta label { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; color: #8A7A63; }
.rf-alta input, .rf-alta textarea, .rf-alta select { font: inherit; font-size: 14px; color: #2A1D14; border: 1px solid #E4DAC9; border-radius: 9px; padding: 8px 10px; background: #fff; box-sizing: border-box; width: 100%; }
.rf-alta small { font-size: 12.5px; color: #3D2B1F; }
.rf-alta small.rf-mal { color: #9B2C2C; }
.rf-alta small.rf-calc { color: #6B3FA0; font-weight: 600; }
.rf-num { color: #6B3FA0; }
.rf-total { color: #9B2C2C; }
.sg-solucion { display: block; margin-top: 8px; color: #15803D; font-weight: 700; font-size: 12px; }
/* Ticks de lacado / cajeado bajo las puertas y costados (FichaMateriales) */
.mt-acabado { display: flex; gap: 18px; padding: 0 14px 8px 54px; font-size: 13px; color: #6B5A4E; }
.mt-acabado label { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.mt-acabado input { width: 17px; height: 17px; accent-color: #3D2B1F; cursor: pointer; }
/* Banco: una pestaña por banco (Sabadell, Ruralvía…) donde estaba el título */
.bk-bancos { display: flex; gap: 8px; margin: 2px 0 10px; }
/* el banco que se está viendo, con fondo crema; el otro, sin fondo */
.bk-banco { border: 0; border-radius: 16px; padding: 8px 18px; font-size: 15px; font-weight: 700; background: transparent; color: #8A7A63; cursor: pointer; }
.bk-banco.on { background: #EFE7DA; color: #3D2B1F; }
.bk-aviso.vincular { background: #E0F2FE; color: #075985; }

/* Vídeos en las fotos de la ficha (28-09-2026) */
.ff-celda video { width: 100%; height: 100%; object-fit: cover; display: block; background: #3D2B1F; cursor: pointer; }
.ff-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 28px; text-shadow: 0 1px 4px rgba(0,0,0,.6); cursor: pointer; pointer-events: auto; }
.ff-video-capa { position: fixed; inset: 0; z-index: 3000; background: rgba(0,0,0,.92); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 12px; }
.ff-video-cab { position: absolute; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; color: #fff; }
.ff-video-cab button { border: none; background: transparent; color: #fff; font-size: 22px; cursor: pointer; }
.ff-video-capa video { max-width: 100%; max-height: 85vh; border-radius: 10px; background: #000; }
.ff-coment { width: 96px; font-size: 10px; color: #6B5A4E; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
.mc-subrotulo { font-size: 10px; font-weight: 700; color: #A09080; letter-spacing: .8px; margin: 6px 6px 0; }
.mc-subrotulo.retrasadas { color: #B45309; }
/* Calendario mínimo del rango de fechas previstas (28-09-2026) */
.fi-minical { display: flex; gap: 10px; flex-wrap: wrap; margin: 2px 0 4px; }
.fi-minical-mes small { display: block; font-size: 9px; color: #9CA3AF; margin-bottom: 2px; }
.fi-minical-rej { display: grid; grid-template-columns: repeat(7, 9px); gap: 1.5px; }
.fi-minical-rej i { width: 9px; height: 9px; border-radius: 2px; background: #E6DDD0; display: block; }
.fi-minical-rej i.finde { background: #F3EEE6; }
.fi-minical-rej i.si { background: #8B6148; }
.fi-minical-rej i.vacio { background: transparent; }
/* Hoy enmarcado y vacaciones plegables (29-09-2026) */
.mc-celda.hoy-celda { box-shadow: inset 0 0 0 2px #C0392B; border-radius: 3px; }
.mc-vacas > summary { cursor: pointer; list-style: none; }
.mc-vacas > summary::-webkit-details-marker { display: none; }
.mc-vacas > summary::before { content: "▸ "; }
.mc-vacas[open] > summary::before { content: "▾ "; }
.mc-vacas > .mc-vaca { margin-top: 4px; }
.mc-tarjeta .fi-minical { margin-top: 4px; }
/* Ventana del apunte: calendario, quién va y buscador del trabajo (29-09-2026) */
.ap-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-chip { border: 1px solid #E0D7C8; background: #fff; color: #3D2B1F; border-radius: 16px; padding: 7px 14px; font-size: 14px; font-weight: 700; font-family: inherit; cursor: pointer; }
.ap-chip.on { background: #3D2B1F; color: #C9B99A; border-color: #3D2B1F; }
.ap-res { display: flex; flex-direction: column; gap: 3px; text-align: left; border: 1px solid #EDE5D8; border-left: 4px solid #8A6D3B; background: #fff; border-radius: 12px; padding: 8px 10px; font-family: inherit; cursor: pointer; }
.ap-res.sel { background: #F1E9DC; }
.ap-res b { font-size: 13px; color: #3D2B1F; }
.ap-res em { font-style: normal; font-size: 10px; font-weight: 700; border-radius: 6px; padding: 2px 7px; }
.mc-pastilla { display: inline-block; border-radius: 9px; padding: 1px 8px; margin: 2px 4px 2px 0; font-size: 11px; font-weight: 700; color: #3D2B1F; }

/* ── Informes del mes ── */
.inf-cab { flex-direction:column; gap:8px; }
.inf-modos { display:flex; flex-wrap:wrap; gap:6px; justify-content:center; }
.inf-modos button { border:none; border-radius:12px; padding:8px 14px; font-size:13px; font-weight:700;
                    background:#5A4232; color:#C9B99A; cursor:pointer; }
.inf-modos button.on { background:#fff; color:#3D2B1F; }
.inf-modos button.imp { background:#C9B99A; color:#3D2B1F; }
.inf-modos button:disabled { opacity:.5; cursor:default; }
.inf-marco { width:100%; min-height:70vh; border:none; display:block; background:#F7F2EA; border-radius:14px; margin-top:10px; }

/* ── Incidencia: cabecera y separación del trabajo vinculado ── */
.inc-cab-inc { font-size:12px; font-weight:800; color:#C0392B; margin:0 4px 8px; letter-spacing:.04em; }
.inc-rotulo.inc-falta { color:#C0392B; }
.inc-separa { background:#3D2B1F; color:#fff; border-top:3px solid #3D2B1F; margin:22px -2px 12px; padding:10px 14px;
              border-radius:12px; display:flex; flex-direction:column; gap:2px; }
.inc-separa b { font-size:14px; } .inc-separa small { color:#C9B99A; font-size:11px; }

/* ── Ficha de una petición de cita: el enlace a la ficha del trabajo ── */
.pet-ficha { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-items:center; width:100%;
             background:#3D2B1F; color:#fff; border:none; border-radius:14px; padding:14px 16px; text-align:left; cursor:pointer; margin:0 0 12px; }
.pet-ficha small { grid-column:1; font-size:10px; font-weight:800; color:#C9B99A; }
.pet-ficha b { grid-column:1; font-size:15px; }
.pet-ficha span { grid-column:2; grid-row:1 / span 2; font-size:28px; color:#C9B99A; }

/* ── Ficha de una cita de medición: la hora en grande ── */
.med-hora { background:#0D9488; color:#fff; border-radius:18px; padding:16px; text-align:center; margin:0 0 12px; display:flex; flex-direction:column; }
.med-hora small { font-size:11px; font-weight:800; opacity:.85; }
.med-hora b { font-size:56px; line-height:1.1; }
.med-hora span { font-size:15px; }

/* ── Electrodomésticos: apartado ESPECIAL ── */
.mt-especial { background:#FBF7F0; padding:8px 14px 6px; display:flex; flex-direction:column; border-top:1px solid #F0EAE0; }
.mt-especial b { font-size:11px; color:#8A6D3B; } .mt-especial small { font-size:10px; color:#A09080; }
.mt-mas-esp { background:none; border:none; color:#8A6D3B; font-weight:800; font-size:13px; padding:8px 14px 12px; text-align:left; cursor:pointer; }

/* ── Previsiones: medido / falta medir y estado ── */
.mc-marcas { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 2px; }
.mc-marcas em { font-style:normal; font-size:11px; font-weight:800; padding:2px 8px; border-radius:7px; }

/* ── Previsiones: semáforo de urgencia y campanita ── */
.mc-prev { display:flex; flex-direction:row-reverse; gap:10px; align-items:flex-start; cursor:pointer; }
.mc-prev-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; text-align:left; }
.mc-prev-lado { display:flex; flex-direction:column; gap:10px; }
.mc-semaforo { display:flex; flex-direction:column; align-items:center; cursor:pointer; min-width:48px; }
.mc-semaforo i { font-style:normal; font-size:24px; line-height:1.1; }
.mc-semaforo small { font-size:9px; color:#A09080; }

/* ── Inicio: quién va en cada furgoneta ── */
.ini-furgo-quien { display:flex; flex-wrap:wrap; gap:3px; margin-top:2px; }
.ini-furgo-quien em { font-style:normal; font-size:10px; font-weight:800; color:#3D2B1F; padding:0 5px; border-radius:6px; }

/* ── Avisos: nueva carga (tanda 2, 3…) ── */
.av-tanda { display:flex; align-items:center; justify-content:space-between; gap:8px; background:#FFF4E0; padding:8px 14px; margin:6px 0 2px; }
.av-tanda > span { display:flex; flex-direction:column; }
.av-tanda b { font-size:11px; color:#B45309; } .av-tanda small { font-size:10px; color:#A09080; }

/* ── Ficha: avisos generados ── */
.fi-avisos-gen summary { list-style:none; cursor:pointer; }
.fi-avisos-gen summary::-webkit-details-marker { display:none; }
.fi-aviso-gen { display:flex; flex-direction:column; gap:2px; padding:8px 16px; border-top:1px solid #F0EAE0; }
.fi-aviso-gen small { font-size:10px; font-weight:800; color:#8A6D3B; }
.fi-aviso-gen span { font-size:13px; color:#3D2B1F; }
.fi-aviso-gen em { font-style:normal; font-size:11px; }

/* ── Inicio: aviso de notificaciones ── */
.noti-aviso { background:#FFF7E6; border:1px solid #F3D9A4; border-radius:16px; padding:12px 14px; margin:0 16px 12px;
              display:flex; flex-direction:column; gap:6px; color:#3D2B1F; font-size:13px; }
.noti-aviso.mal { background:#FDECEA; border-color:#F5B7B1; }
.noti-aviso b { font-size:14px; }
.noti-aviso ol { margin:2px 0 2px 18px; padding:0; display:flex; flex-direction:column; gap:3px; }
.noti-aviso small { color:#8A6D3B; font-size:11px; }
.noti-btn { border:none; border-radius:12px; background:#3D2B1F; color:#C9B99A; font-weight:800; font-size:14px; padding:10px 14px; cursor:pointer; }
.noti-btn:disabled { opacity:.6; }
.noti-cerrar { border:none; background:none; color:#A09080; font-size:12px; align-self:flex-end; cursor:pointer; }
.noti-msg { color:#14532D !important; font-weight:700; }

/* ── Buzón ── */
.buzon { max-width:780px; margin:0 auto; padding:12px 14px 24px; display:flex; flex-direction:column; gap:8px; }
.buzon-dia { font-size:10px; font-weight:800; color:#A09080; margin:8px 4px 0; }
.buzon-msg { background:#fff; border:1px solid #EDE5D8; border-radius:14px; padding:10px 14px; display:flex; flex-direction:column; gap:3px; }
.buzon-msg.nuevo { background:#FFF7E6; border-color:#E0A526; }
.buzon-cab { display:flex; justify-content:space-between; gap:8px; }
.buzon-cab b { font-size:14px; color:#3D2B1F; } .buzon-cab small { font-size:11px; color:#A09080; white-space:nowrap; }
.buzon-msg span { font-size:13px; color:#6B5A4E; }
.buzon-chips { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.buzon-chip { border:1px solid #E8DFD2; background:#fff; color:#3D2B1F; border-radius:18px; padding:8px 14px; font-size:13px; font-weight:700; cursor:pointer; }
.buzon-chip.hay { border-color:#E0A526; }
.buzon-chip.sel { background:#3D2B1F; color:#C9B99A; }
.buzon-chip b { background:#C0392B; color:#fff; border-radius:10px; padding:0 7px; margin-left:4px; font-size:11px; }
a.buzon-msg.enlace { text-decoration:none; cursor:pointer; }
a.buzon-msg.enlace em { font-style:normal; font-size:11px; font-weight:800; color:#8A6D3B; }
/* ── Fallos ── */
.fallo-tarea { background:#3D2B1F; color:#fff; border-radius:12px; padding:8px 12px; display:flex; flex-direction:column; gap:2px; }
.fallo-tarea small { color:#C9B99A; font-size:10px; font-weight:800; }
.fallo-resultados { display:flex; flex-direction:column; gap:6px; max-height:260px; overflow:auto; }
.fallo-resultados .fi-persona { text-align:left; }
.fallos-ficha { border-color:#F3D9A4; }
.fallo-btn { color:#B45309 !important; background:#FDF1E4 !important; }
.fallo-msg { border-color:#F3D9A4; cursor:pointer; }
.fallo-trabajo { color:#8A6D3B; font-size:11px; }
.fallo-quien { color:#A09080; font-size:10px; }
.buzon-chip.fallo-persona { color:#B45309; background:#FDF1E4; border-color:#F3D9A4; }
.buzon-chip.fallo-persona.sel { background:#B45309; color:#fff; }
.av-fallo span { color:#B45309; } .av-fallo em { color:#B45309 !important; font-weight:800; }
/* ── Perfil › Notificaciones ── */
.notif-fila { display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:#fff; border:1px solid #EDE5D8; border-radius:14px; padding:10px 14px; cursor:pointer; }
.notif-tx { flex:1; display:flex; flex-direction:column; gap:2px; }
.notif-tx b { font-size:14px; color:#3D2B1F; } .notif-tx small { font-size:11px; color:#A09080; }
.notif-sw { width:46px; height:26px; border-radius:13px; background:#D6CDC0; position:relative; flex:none; transition:background .15s; }
.notif-sw i { position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:left .15s; }
.notif-sw.on { background:#2E9E5B; } .notif-sw.on i { left:23px; }
/* ── Preguntas ── */
.buzon-msg.preg .buzon-cab span { font-size:14px; color:#3D2B1F; }
.buzon-msg.preg.sinobra { border-color:#F3D9A4; }
.preg-x { border:none; background:none; color:#A09080; font-size:18px; cursor:pointer; padding:0 4px; align-self:flex-start; }
a.buzon-chip { text-decoration:none; }
