/* Fuentes de la marca. Aquí y no en un <style> del marco: la CSP del
   portal (style-src 'self') bloquea los estilos en línea. */
@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:600 700;font-display:swap;src:url('/fonts/familjen-grotesk-600-700-latin.woff2') format('woff2');}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url('/fonts/instrument-sans-400-600-latin.woff2') format('woff2');}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/dm-mono-400-latin.woff2') format('woff2');}
/* ===========================================================================
   Portal de clientes de BMS of NC.

   Aquí el CSS va como archivo aparte, no incrustado como en la portada. En
   la portada se incrusta porque una petición externa retrasaba el primer
   pintado y ahí cada milisegundo cuenta para la conversión. El portal son
   varias páginas que visita alguien que ya es cliente y que ya inició
   sesión: un archivo cacheado entre páginas es mejor que repetir 25 KB en
   cada una.

   Mismos tokens que el sitio, para que no parezca otra empresa.
   =========================================================================== */

:root {
  --paper:#F7F7F5; --tint:#E5E6E1; --card:#FFFFFF;
  --ink:#0E1310; --lime:#C9F24B; --lime-deep:#506800;
  --slate:#5C6559; --line:#D4D5CE; --line-dark:#262E27;
  --dim:#6F766D; --rojo:#A33;
  --f-display:"Familjen Grotesk", system-ui, sans-serif;
  --f-body:"Instrument Sans", system-ui, sans-serif;
  --f-mono:"DM Mono", ui-monospace, monospace;
  --r:10px;
  --ease:cubic-bezier(.2,.7,.3,1);
}

*,*::before,*::after { box-sizing:border-box }
[hidden] { display:none !important }

html { -webkit-text-size-adjust:100% }
body {
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f-body); font-size:16.5px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg { display:block; max-width:100% }
a { color:var(--lime-deep) }

h1,h2,h3 { font-family:var(--f-display); font-weight:700; line-height:1.05; letter-spacing:-.03em; margin:0 }
h1 { font-size:clamp(1.9rem,4vw,2.5rem) }
h2 { font-size:1.3rem; letter-spacing:-.02em }
h3 { font-size:1.05rem; letter-spacing:-.02em }
p { margin:0 }

:focus-visible { outline:2.5px solid var(--lime-deep); outline-offset:3px; border-radius:3px }

/* ---------- estructura ---------- */
.marco { width:100%; max-width:1080px; margin-inline:auto; padding-inline:24px }
.marco--estrecho { max-width:460px }

.barra {
  background:var(--ink); color:#fff;
  border-bottom:1px solid var(--line-dark);
}
.barra__in { display:flex; align-items:center; gap:20px; height:68px }
.barra__logo { display:inline-flex; align-items:center; text-decoration:none; flex:none }
.barra__logo img { width:30px; height:39px; object-fit:contain }
.barra__nav { display:flex; gap:20px; margin-left:auto; align-items:center }
.barra__nav a { font-size:.9rem; color:#A2AB9F; text-decoration:none; padding:10px 0; transition:color .2s }
.barra__nav a:hover, .barra__nav a[aria-current] { color:#fff }
.barra__quien { font-family:var(--f-mono); font-size:.72rem; color:#788177; margin-left:auto }
.barra__quien + .barra__nav { margin-left:0 }

.lienzo { padding-block:clamp(32px,5vw,56px) 72px }

/* ---------- tarjetas y formularios ---------- */
.tarjeta {
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--r); padding:clamp(22px,3.5vw,32px);
}
.tarjeta + .tarjeta { margin-top:18px }

.etiqueta {
  display:block; font-family:var(--f-mono); font-size:.7rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--slate); margin-bottom:8px;
}
.campo {
  width:100%; font-family:var(--f-body); font-size:1rem; color:var(--ink);
  background:var(--card); border:1px solid var(--line); border-radius:9px;
  padding:13px 15px; transition:border-color .2s;
}
.campo:focus { outline:none; border-color:var(--ink) }
.campo.is-mal { border-color:var(--rojo) }
.campo--codigo {
  font-family:var(--f-mono); font-size:1.5rem; letter-spacing:.3em; text-align:center;
}
.grupo + .grupo { margin-top:16px }

.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--f-body); font-size:.95rem; font-weight:600;
  padding:14px 22px; border-radius:9px; border:1px solid transparent;
  text-decoration:none; cursor:pointer; transition:background-color .2s,border-color .2s,color .2s;
}
.btn--principal { background:var(--lime); color:var(--ink); border-color:var(--lime) }
.btn--principal:hover { background:#d8fa6d; border-color:#d8fa6d }
.btn--linea { background:transparent; color:var(--ink); border-color:var(--line) }
.btn--linea:hover { border-color:var(--ink) }
.btn--ancho { width:100% }
.btn[disabled] { opacity:.55; cursor:not-allowed }

/* ---------- avisos ---------- */
.aviso { border-radius:9px; padding:13px 16px; font-size:.92rem; line-height:1.5; margin-bottom:20px }
.aviso--mal { background:#FBEAEA; border:1px solid #E3BDBD; color:#7A2222 }
.aviso--bien { background:#F1F8DC; border:1px solid #CFE398; color:#3D4F14 }
.aviso--info { background:var(--tint); border:1px solid var(--line); color:var(--ink) }

.pista { font-size:.85rem; color:var(--dim); line-height:1.5; margin-top:10px }

/* ---------- el secreto del MFA ---------- */
.secreto {
  font-family:var(--f-mono); font-size:1.05rem; letter-spacing:.06em;
  background:var(--tint); border:1px solid var(--line); border-radius:9px;
  padding:14px 16px; word-break:break-all; margin-block:12px;
  -webkit-user-select:all; user-select:all;
}

/* ---------- el tablero del despacho: menú lateral + contenido ---------- */
.tablero { display:grid; grid-template-columns:220px 1fr; flex:1; min-height:0 }
.lateral { background:var(--card); border-right:1px solid var(--line); padding:22px 14px }
.lateral__nav { display:flex; flex-direction:column; gap:4px; position:sticky; top:20px }
.lateral__a {
  display:flex; align-items:center; gap:11px; padding:11px 12px; border-radius:9px;
  color:var(--slate); text-decoration:none; font-size:.93rem; font-weight:500;
  transition:background-color .15s, color .15s;
}
.lateral__a:hover { background:var(--paper); color:var(--ink) }
.lateral__a.is-actual { background:var(--ink); color:#fff }
.lateral__a.is-actual .lateral__ico { stroke:var(--lime) }
.lateral__ico { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }
.lienzo--tablero { min-width:0 }
.lienzo--tablero .marco { max-width:1120px; margin-inline:0; padding-inline:clamp(20px,3vw,40px) }
@media (max-width:860px) {
  .tablero { grid-template-columns:1fr }
  .lateral { border-right:0; border-bottom:1px solid var(--line); padding:8px 12px; overflow-x:auto }
  .lateral__nav { flex-direction:row; gap:2px; position:static }
  .lateral__a { flex-direction:column; gap:5px; padding:9px 10px; font-size:.7rem; font-family:var(--f-mono); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap }
  .lateral__ico { width:20px; height:20px }
}

/* ---------- filtro "mis clientes / todos" ---------- */
.filtro { display:inline-flex; gap:4px; background:var(--tint); border:1px solid var(--line); border-radius:9px; padding:4px }
.filtro__a { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:6px; font-size:.86rem; font-weight:500; color:var(--slate); text-decoration:none; min-height:38px }
.filtro__a span { font-family:var(--f-mono); font-size:.7rem; color:var(--dim) }
.filtro__a:hover { color:var(--ink) }
.filtro__a.is-actual { background:var(--card); color:var(--ink); box-shadow:0 1px 2px rgba(14,19,16,.08) }
.filtro__a.is-actual span { color:var(--lime-deep) }

/* ---------- zona de peligro: eliminar ---------- */
.tarjeta--peligro { border-color:#E3BDBD; background:#FFFBFB }
.btn--peligro { background:var(--rojo); color:#fff; border-color:var(--rojo); width:100% }
.btn--peligro:hover { background:#8B2A2A; border-color:#8B2A2A }

/* ---------- tablas de los módulos ---------- */
.envoltorio { overflow-x:auto }
.tabla { width:100%; border-collapse:collapse; font-size:.88rem }
.tabla th { text-align:left; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); padding:0 10px 10px 0; border-bottom:1px solid var(--line); font-weight:400 }
.tabla td { padding:12px 10px 12px 0; border-bottom:1px solid var(--line); vertical-align:top }
.tabla tr:last-child td { border-bottom:0 }
.tabla a { color:var(--ink); font-weight:600; text-decoration:none }
.tabla a:hover { color:var(--lime-deep) }
.tabla .mono, .mono { font-family:var(--f-mono); font-size:.74rem; color:var(--dim) }
.tabla .num, .tabla th.num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums }
.tabla--apretada td { padding-block:8px }
.tarjeta code { font-family:var(--f-mono); font-size:.8em; background:var(--tint); padding:1px 5px; border-radius:4px }

/* ---------- indicadores ---------- */
.kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:14px; margin-bottom:22px }
.kpi { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px }
.kpi__n { font-family:var(--f-display); font-weight:700; font-size:1.7rem; letter-spacing:-.03em; line-height:1.05 }
.kpi__t { font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); margin-top:6px }
.kpi--alerta { border-color:#E3BDBD; background:#FFFBFB }
.kpi--alerta .kpi__n { color:var(--rojo) }

/* ---------- filtros en línea ---------- */
.filtros { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:18px }
.filtros .campo { padding:10px 12px; font-size:.9rem; width:auto; min-width:150px }
.filtros select.campo { appearance:auto }
.filtros .btn { padding:10px 16px; font-size:.88rem; width:auto }

/* ---------- estados (compartido cliente/despacho) ---------- */
.estado { display:inline-block; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; padding:4px 9px; border-radius:6px; border:1px solid var(--line); white-space:nowrap; color:var(--slate) }
.estado--hecho { background:#F1F8DC; border-color:#CFE398; color:#3D4F14 }
.estado--proceso { background:#FFF6DC; border-color:#F0D98A; color:#5A4600 }
.estado--espera { background:#FBEAEA; border-color:#E3BDBD; color:#7A2222 }

/* ---------- hitos de seguimiento ---------- */
.hitos { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px }
.hito { display:inline-block; font-family:var(--f-mono); font-size:.64rem; padding:3px 8px; border-radius:5px; border:1px dashed var(--line); color:var(--dim); white-space:nowrap }
.hito--si { border-style:solid; color:var(--lime-deep); border-color:#CFE398; background:#F1F8DC }
.hito--pago { border-style:solid; border-color:#F0D98A; background:#FFF6DC; color:#5A4600 }
.hito--mal { border-style:solid; border-color:#E3BDBD; background:#FBEDED; color:var(--rojo) }

/* ---------- placeholders de secciones en construcción ---------- */
.proximo { display:grid; gap:14px }
.proximo__item { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; padding:16px 0; border-top:1px solid var(--line) }
.proximo__item:first-child { border-top:0; padding-top:0 }
.proximo__num { font-family:var(--f-mono); font-size:.72rem; color:var(--lime-deep); padding-top:4px }
.proximo__item p { font-size:.92rem; color:var(--slate); margin-top:4px }

/* ---------- casilla "recordar este dispositivo" ---------- */
.casilla { display:grid; grid-template-columns:auto 1fr; gap:4px 10px; align-items:center; font-size:.92rem; cursor:pointer }
.casilla input { width:18px; height:18px; accent-color:var(--lime-deep); margin:0 }
.casilla .pista { grid-column:2; margin-top:0 }

/* ---------- elección del segundo factor en el alta (sin JavaScript) ---------- */
.metodo__radio { position:absolute; opacity:0; width:0; height:0 }
.metodo__opciones { display:grid; grid-template-columns:1fr 1fr; gap:10px }
.metodo__opcion { display:grid; gap:4px; padding:12px 14px; border:1px solid var(--line); border-radius:9px; cursor:pointer; font-size:.9rem }
.metodo__opcion span { font-size:.8rem; color:var(--slate); line-height:1.4 }
.metodo__opcion:hover { border-color:var(--ink) }
#metodo_app:checked ~ .metodo__opciones label[for="metodo_app"],
#metodo_correo:checked ~ .metodo__opciones label[for="metodo_correo"] { border-color:var(--lime-deep); background:#F1F8DC }
.metodo__radio:focus-visible ~ .metodo__opciones { outline:2.5px solid var(--lime-deep); outline-offset:3px; border-radius:9px }
.metodo__app, .metodo__correo { display:none }
#metodo_app:checked ~ .metodo__app, #metodo_correo:checked ~ .metodo__correo { display:block }
@media (max-width:520px) { .metodo__opciones { grid-template-columns:1fr } }

/* ---------- el QR del alta ---------- */
.qr { display:none; width:min(232px, 100%); aspect-ratio:1; margin:0 auto 14px; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden }
.qr--listo { display:block }
.qr svg { width:100%; height:100%; display:block }
.alternativa { margin-bottom:6px }
.alternativa summary { cursor:pointer; font-size:.88rem; color:var(--lime-deep); padding:6px 0 }
.alternativa summary:hover { color:var(--ink) }

/* ---------- pie ---------- */
.pie { border-top:1px solid var(--line); padding-block:22px 40px; margin-top:auto }
.pie p { font-size:.78rem; color:var(--dim); line-height:1.55 }

body { min-height:100dvh; display:flex; flex-direction:column }
.lienzo { flex:1 }

@media (max-width:700px) {
  .barra__in { height:60px; gap:12px }
  .barra__nav { gap:14px }
  .barra__quien { display:none }
  .btn { width:100% }
}

/* ---------------------------------------------------------------------------
   Panel del cliente: lista de documentos por servicio (requisitos.php).
   --------------------------------------------------------------------------- */

.lista { margin-bottom:24px }
.lista__cab { display:flex; gap:18px; align-items:center; margin-bottom:6px }
.anillo { width:64px; height:64px; border-radius:50%; flex:none; display:grid; place-items:center;
          background:conic-gradient(var(--lime) calc(var(--p) * 1%), var(--tint) 0) }
.anillo span { width:50px; height:50px; border-radius:50%; background:var(--card); display:grid; place-items:center;
               font-family:var(--f-display); font-weight:700; font-size:.95rem }
.lista__cols { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:28px; margin-top:20px }
.lista__sub { font-family:var(--f-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin:0 0 10px }
.preg { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); font-size:.93rem }
.preg:last-child { border-bottom:0 }
.preg form { display:flex; gap:4px; flex:none; margin:0 }
.sn { border:1px solid var(--line); background:transparent; color:var(--ink); border-radius:999px; padding:6px 14px;
      font:600 .82rem var(--f-body); cursor:pointer }
.sn.is-on { background:var(--ink); border-color:var(--ink); color:#fff }
.req-serv { margin-bottom:20px }
.req-serv h3 { font-size:1.05rem; margin-bottom:4px }
.req-aviso { font-size:.84rem; color:var(--slate); background:var(--paper); border-radius:10px; padding:10px 12px; margin:8px 0 }
.req-grupo { font-family:var(--f-mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin:14px 0 6px }
.req { list-style:none; margin:0; padding:0; display:grid; gap:6px }
.req li { display:flex; flex-wrap:wrap; gap:10px 12px; align-items:flex-start; padding:11px 12px; border:1px dashed var(--line); border-radius:12px; font-size:.92rem }
.req li small { display:block; color:var(--slate); font-size:.8rem }
.req li.is-ok { border-style:solid; color:var(--slate) }
.req li.is-ok .req__t { text-decoration:line-through }
.req li.is-na { opacity:.5 }
.req__caja { width:20px; height:20px; border-radius:6px; border:2px solid var(--slate); flex:none; margin-top:2px }
.req li.is-ok .req__caja { background:var(--lime); border-color:var(--lime) }
.req li > div:not(.req__acc) { flex:1; min-width:0 }
.req__acc { flex-basis:100%; padding-left:32px; display:flex; gap:6px; flex-wrap:wrap }
.req__acc form { margin:0; display:flex; gap:6px; flex-wrap:wrap }
.req__b { border:0; border-radius:999px; padding:6px 12px; font:600 .78rem var(--f-body); cursor:pointer; text-decoration:none;
          background:var(--paper); color:var(--ink); display:inline-block }
.req__b--subir { background:var(--lime) }
@media (max-width:800px) {
  .lista__cols { grid-template-columns:1fr }
}


/* ===========================================================================
   Panel del cliente, diseño 2026-10 (body.pc): saludo, tres respuestas,
   servicios con pasos, lista, familia y columna lateral. Modo oscuro con
   [data-tema="oscuro"] — solo en el panel del cliente.
   =========================================================================== */
.pc { --gris:#5B635E; --suave:#F0F1EE; --texto:#0E1310 }
.pc .lienzo { padding-top:0 }
.pc-mono { font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gris); margin-bottom:10px }
.pc-mono--lima { color:var(--lime) }
.pc { overflow-x:clip }
.pc-hero { background:var(--ink); color:#fff; margin:0 calc(50% - 50vw); padding:40px calc(50vw - 50%) 92px }
.pc-hero h1 { font-size:clamp(2rem,4.4vw,3rem); margin:4px 0 8px }
.pc-hero__sub { color:#C3C9C4; font-size:1.05rem }
.pc .aviso { margin-top:18px }
.pc-tres { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:-60px; position:relative }
.pc-dato { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px; display:flex; flex-direction:column; gap:8px;
           box-shadow:0 10px 30px -18px rgba(14,19,16,.35) }
.pc-dato h3 { font-size:1.2rem }
.pc-dato p:not(.pc-mono) { color:var(--gris); font-size:.93rem }
.pc-dato .pc-mono { margin-bottom:2px }
.pc-dato__acc { margin-top:auto; padding-top:8px }
.pc-dato--urgente { border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink),0 10px 30px -18px rgba(14,19,16,.35) }
.pc-punto { display:inline-block; width:8px; height:8px; border-radius:50%; background:#E5484D; margin-right:7px; vertical-align:1px }

.pc-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid transparent; border-radius:999px; padding:10px 18px;
          font:600 .9rem var(--f-body); cursor:pointer; text-decoration:none; white-space:nowrap }
.pc-btn--p { background:var(--ink); color:#fff }
.pc-btn--l { background:var(--lime); color:var(--ink) }
.pc-btn--s { background:transparent; color:var(--texto); border-color:var(--line) }
.pc-btn--s:hover { border-color:var(--texto) }
.pc-btn--ancho { width:100%; margin-top:14px }

.pc-cuerpo { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:22px; margin:26px 0 24px; align-items:start }
.pc-main, .pc-lado { display:grid; gap:20px; min-width:0 }
.pc-tarjeta { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:clamp(20px,3vw,26px); min-width:0 }
.pc-cab { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px }
.pc-cab h2 { font-size:1.3rem }
.pc-cab a { font-size:.86rem; color:var(--gris) }
.pc-cab--chico { margin-bottom:6px }
.pc-intro { margin:-6px 0 16px }

.pc-serv { border:1px solid var(--line); border-radius:14px; padding:20px }
.pc-serv + .pc-serv { margin-top:14px }
.pc-serv__top { display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap }
.pc-serv__tit { flex:1; min-width:180px }
.pc-serv h3 { font-size:1.1rem }
.pc-meta { color:var(--gris); font-size:.86rem; margin-top:3px }
.pc-ico { flex:none; width:44px; height:44px; border-radius:12px; background:var(--suave); display:grid; place-items:center }
.pc-ico svg { width:22px; height:22px; stroke:var(--texto); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }
.pc-chip { flex:none; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 10px; border-radius:999px;
           background:var(--suave); color:var(--texto); white-space:nowrap }
.pc-chip--tu { background:var(--ink); color:var(--lime) }
.pc-pasos { list-style:none; padding:0; margin:22px 0 4px; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr) }
.pc-pasos li { position:relative; text-align:center; font-size:.76rem; line-height:1.3; color:var(--gris); padding:26px 3px 0 }
.pc-pasos li::before { content:""; position:absolute; top:6px; left:50%; transform:translateX(-50%); width:14px; height:14px; border-radius:50%;
                       background:var(--card); border:2px solid var(--line); z-index:1 }
.pc-pasos li::after { content:""; position:absolute; top:12px; left:-50%; width:100%; height:2px; background:var(--line) }
.pc-pasos li:first-child::after { display:none }
.pc-pasos li.is-hecho::before { background:var(--texto); border-color:var(--texto) }
.pc-pasos li.is-hecho::after, .pc-pasos li.is-ahora::after { background:var(--texto) }
.pc-pasos li.is-ahora::before { background:var(--lime); border-color:var(--texto); box-shadow:0 0 0 4px rgba(201,242,75,.35) }
.pc-pasos li.is-ahora { color:var(--texto); font-weight:600 }
.pc-ahora { margin-top:14px; padding:13px 15px; border-radius:12px; background:var(--suave); display:flex; gap:12px; align-items:center; flex-wrap:wrap; font-size:.92rem }
.pc-ahora b { font-weight:600 }
.pc-ahora .pc-btn { margin-left:auto; padding:8px 14px; font-size:.84rem }
.pc-detalle { margin-top:10px; font-size:.88rem; color:var(--gris); white-space:pre-line }
.pc-vacio { text-align:center; padding:36px 22px }
.pc-vacio h2 { margin-bottom:8px }

.pc-equipo { display:flex; gap:14px; align-items:center }
.pc-equipo h3 { font-size:1.05rem }
.pc-equipo p { color:var(--gris); font-size:.85rem }
.pc-av { width:52px; height:52px; border-radius:50%; background:var(--ink); color:var(--lime); display:grid; place-items:center; flex:none;
         font-family:var(--f-display); font-weight:700; font-size:1.05rem }
.pc-av--chico { width:42px; height:42px; font-size:.9rem }
.pc-tel { display:block; margin-top:16px; font-family:var(--f-display); font-weight:700; font-size:1.3rem; letter-spacing:-.01em; color:inherit; text-decoration:none }
.pc-tel:hover { text-decoration:underline }
.pc-tel + .pc-link { text-align:left; margin-top:2px }
.pc-acciones { display:grid; gap:10px; margin-top:18px }
.pc-link { font-size:.84rem; color:var(--gris); text-align:center; word-break:break-all }
.pc-pago { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); font-size:.92rem }
.pc-pago:last-of-type { border-bottom:0 }
.pc-pago a { color:var(--texto); font-weight:600; text-decoration:none }
.pc-pago small { display:block; color:var(--gris); font-size:.78rem }
.pc-monto { font-family:var(--f-display); font-weight:700; font-size:1.08rem; white-space:nowrap }
.pc-monto small { display:inline; font-weight:400 }
.pc-monto--alerta { color:#E5484D }
.pc-docs { list-style:none; margin:0; padding:0 }
.pc-docs li { display:flex; gap:12px; align-items:center; padding:10px 2px; border-bottom:1px solid var(--line); font-size:.9rem }
.pc-docs li:last-child { border-bottom:0 }
.pc-docs a { color:var(--texto); text-decoration:none; font-weight:600; word-break:break-word }
.pc-docs small { display:block; color:var(--gris); font-size:.77rem }
.pc-docs svg { width:18px; height:18px; stroke:var(--gris); fill:none; stroke-width:1.8; flex:none }
.pc-candado { display:flex; gap:8px; align-items:center; margin-top:14px; color:var(--gris); font-size:.79rem; line-height:1.4 }
.pc-candado svg { width:15px; height:15px; stroke:var(--gris); fill:none; stroke-width:2; flex:none }

/* familia */
.pc-persona { border:1px solid var(--line); border-radius:14px; padding:18px; margin-bottom:12px }
.pc-persona__top { display:flex; gap:12px; align-items:center; margin-bottom:12px }
.pc-persona__tit { flex:1; min-width:0 }
.pc-persona h3 { font-size:1.02rem }
.pc-quitar { margin:0 }
.pc-agregar { border:1px dashed var(--line); border-radius:14px; padding:16px 18px; margin-top:4px }
.pc-agregar__campos { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto; gap:12px; align-items:end }
.pc-agregar .campo { padding:11px 13px }
.pc-agregar select.campo { appearance:auto }

/* historial y subida dentro del diseño nuevo */
.pc .anio-bloque summary { list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:14px; padding:8px 0 10px }
.pc .anio-bloque summary::-webkit-details-marker { display:none }
.pc .anio-bloque summary::before { content:"▸"; color:var(--lime-deep) }
.pc .anio-bloque[open] summary::before { content:"▾" }
.pc .anio__num--titulo { font-family:var(--f-display); font-weight:700; font-size:1.5rem; letter-spacing:-.04em; line-height:1 }
.pc .anio__resumen { font-family:var(--f-mono); font-size:.72rem; color:var(--gris) }
.pc .anio__cuerpo { display:grid; gap:10px; padding-bottom:6px }
.pc .bloque__titulo { font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gris); margin-bottom:10px }
.pc .servicio { padding:14px 0; border-top:1px solid var(--line) }
.pc .servicio__cab { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap }
.pc .servicio__tipo { font-family:var(--f-mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gris); margin-bottom:4px }
.pc .servicio__fecha { font-family:var(--f-mono); font-size:.72rem; color:var(--gris); margin-top:4px }
.pc .docs { list-style:none; margin:10px 0 0; padding:0; display:grid; gap:6px }
.pc .docs li { display:flex; align-items:center; gap:10px; font-size:.9rem; flex-wrap:wrap }
.pc .docs a { color:var(--texto); font-weight:600; text-decoration:none }
.pc .docs .ico { width:15px; height:15px; flex:none; fill:none; stroke:var(--lime-deep); stroke-width:1.8 }
.pc .docs__meta { font-family:var(--f-mono); font-size:.7rem; color:var(--gris) }
.pc .meses { list-style:none; margin:0 0 6px; padding:0; display:grid; grid-template-columns:repeat(6,1fr); gap:6px }
.pc .mes { border:1px solid var(--line); border-radius:8px; padding:7px 4px; text-align:center; font-size:.74rem }
.pc .mes__nombre { font-family:var(--f-mono); font-size:.68rem; text-transform:uppercase; display:block }
.pc .mes__estado { font-size:.66rem; color:var(--gris); display:block }
.pc .mes--hecho { background:#F1F8DC; border-color:#CFE398 }
.pc .mes--proceso { background:#FFF6DC; border-color:#F0D98A }
.pc .mes--espera { background:#FBEAEA; border-color:#E3BDBD }
.pc .mes--vacio, .pc .mes--futuro { border-style:dashed; color:var(--gris) }
.pc .mes--futuro { opacity:.5 }
.pc .colocar { flex-basis:100%; display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:6px }
.pc .colocar__etq { font-family:var(--f-mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gris) }
.pc .colocar .campo, .pc .colocar .btn { padding:6px 10px; font-size:.82rem; width:auto }
.pc .dos { display:grid; grid-template-columns:1fr 1fr; gap:14px }
.pc select.campo { appearance:auto }
.pc #subir { margin-bottom:24px }
.pc #subir h2 { margin-bottom:6px }

/* botón de tema en la barra */
.tema { width:38px; height:38px; border-radius:50%; border:1px solid #2A332D; background:transparent; color:#C3C9C4; display:grid; place-items:center; cursor:pointer; padding:0 }
.tema svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round }
.tema__sol { display:none }
[data-tema="oscuro"] .tema__sol { display:block }
[data-tema="oscuro"] .tema__luna { display:none }

@media (max-width:900px) {
  .pc-tres { grid-template-columns:1fr }
  .pc-cuerpo { grid-template-columns:1fr }
  .pc-agregar__campos { grid-template-columns:1fr }
  .pc .dos { grid-template-columns:1fr }
  .pc-pasos li { font-size:0; padding-top:18px }  /* en el celular solo los puntos; el paso actual va en «Ahora» */
  .pc .meses { grid-template-columns:repeat(4,1fr) }
}
@media (max-width:700px) {
  .pc-hero { padding-top:30px }
  .pc-btn { width:auto }
  .pc-dato__acc .pc-btn, .pc-acciones .pc-btn { width:100% }
  .barra__nav a[href="/portal/panel.php"] { display:none }
}

/* ---------- modo oscuro (solo panel del cliente) ---------- */
[data-tema="oscuro"] .pc {
  --paper:#0B0F0D; --card:#141A16; --line:#2A332D; --tint:#1C241F; --gris:#9DA59F; --dim:#9DA59F; --slate:#9DA59F;
  --suave:#1C241F; --texto:#F7F7F5; --ink:#0E1310; color-scheme:dark;
  background:var(--paper); color:#F7F7F5;
}
[data-tema="oscuro"] .pc .barra, [data-tema="oscuro"] .pc .pc-hero { background:#0B0F0D }
[data-tema="oscuro"] .pc .pc-hero { border-bottom:1px solid #2A332D }
[data-tema="oscuro"] .pc .pc-dato { box-shadow:none }
[data-tema="oscuro"] .pc .pc-dato--urgente { border-color:var(--lime); box-shadow:inset 0 0 0 1px var(--lime) }
[data-tema="oscuro"] .pc .pc-btn--p { background:#F7F7F5; color:#0E1310 }
[data-tema="oscuro"] .pc .pc-chip--tu { background:#F7F7F5; color:#0E1310 }
[data-tema="oscuro"] .pc .pc-av { background:#1C241F }
[data-tema="oscuro"] .pc .campo { background:#0B0F0D; color:#F7F7F5 }
[data-tema="oscuro"] .pc .sn { color:#F7F7F5 }
[data-tema="oscuro"] .pc .sn.is-on { background:var(--lime); border-color:var(--lime); color:#0E1310 }
[data-tema="oscuro"] .pc .req__b { background:#1C241F; color:#F7F7F5 }
[data-tema="oscuro"] .pc .req__b--subir { background:var(--lime); color:#0E1310 }
[data-tema="oscuro"] .pc .btn--linea { color:#F7F7F5 }
[data-tema="oscuro"] .pc .lienzo a:not([class]) { color:var(--lime) }
[data-tema="oscuro"] .pc .mes--hecho, [data-tema="oscuro"] .pc .mes--proceso, [data-tema="oscuro"] .pc .mes--espera { color:#0E1310 }
[data-tema="oscuro"] .pc .mes--hecho .mes__estado, [data-tema="oscuro"] .pc .mes--proceso .mes__estado, [data-tema="oscuro"] .pc .mes--espera .mes__estado { color:#2A332D }
[data-tema="oscuro"] .pc .aviso--bien { background:#1E2A10; border-color:#3D4F14; color:#DDF3A6 }
[data-tema="oscuro"] .pc .aviso--mal { background:#2A1414; border-color:#5A2222; color:#F4C4C4 }
[data-tema="oscuro"] .pc .pie { border-color:#2A332D }

/* Avance del anillo en pasos de 5 % (la CSP del portal no deja usar style=""). */
.anillo--0 { --p:0 }
.anillo--5 { --p:5 }
.anillo--10 { --p:10 }
.anillo--15 { --p:15 }
.anillo--20 { --p:20 }
.anillo--25 { --p:25 }
.anillo--30 { --p:30 }
.anillo--35 { --p:35 }
.anillo--40 { --p:40 }
.anillo--45 { --p:45 }
.anillo--50 { --p:50 }
.anillo--55 { --p:55 }
.anillo--60 { --p:60 }
.anillo--65 { --p:65 }
.anillo--70 { --p:70 }
.anillo--75 { --p:75 }
.anillo--80 { --p:80 }
.anillo--85 { --p:85 }
.anillo--90 { --p:90 }
.anillo--95 { --p:95 }
.anillo--100 { --p:100 }


/* ===========================================================================
   Temporada: declaración, firma, reembolso y mensajes (cliente y despacho)
   =========================================================================== */
.decl { margin-top:10px; border:1px solid var(--line); border-radius:10px; padding:10px 12px; text-align:left }
.decl summary { cursor:pointer; font-weight:600; font-size:.88rem }
.decl__estado { font-family:var(--f-mono); font-size:.68rem; color:var(--dim); margin-left:8px; font-weight:400 }
.decl__form { display:grid; gap:12px; margin-top:12px }
.decl__fila { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px }
.decl label { display:grid; gap:4px; font-size:.78rem; color:var(--dim) }
.decl__par { display:flex; gap:6px }
.decl__par .campo:first-child { flex:none; width:auto }
.decl .campo { padding:8px 10px; font-size:.88rem }
.decl__nota small { text-transform:none }
.hilo { display:grid; gap:10px; max-height:460px; overflow:auto; padding:4px 2px 10px; margin:12px 0 }
.hilo__m { max-width:80%; justify-self:start; background:var(--tint,#F0F1EE); border-radius:14px 14px 14px 4px; padding:10px 14px }
.hilo__m--yo { justify-self:end; background:var(--ink); color:#fff; border-radius:14px 14px 4px 14px }
.hilo__m--yo .hilo__quien { color:#C3C9C4 }
.hilo__quien { font-family:var(--f-mono); font-size:.66rem; color:var(--dim); margin-bottom:4px }
.hilo__t { font-size:.92rem; line-height:1.45; white-space:normal; word-break:break-word }
.hilo__form { display:grid; gap:10px }
.hilo__form textarea { resize:vertical; min-height:80px }
.hilo__pie { display:flex; gap:10px; flex-wrap:wrap; justify-content:space-between; align-items:center }
.hilo__pie .campo { width:auto; max-width:100%; flex:1; min-width:180px }
.tarjeta__tit { margin-bottom:6px }

/* panel del cliente */
.pc .hilo__m { background:var(--suave) }
.pc .hilo__m--cliente { justify-self:end; background:var(--ink); color:#fff; border-radius:14px 14px 4px 14px }
.pc .hilo__m--cliente .hilo__quien { color:#C3C9C4 }
.pc .hilo__m--yo { justify-self:start; background:var(--suave); color:var(--texto); border-radius:14px 14px 14px 4px }
.pc .hilo__m--yo .hilo__quien { color:var(--gris) }
[data-tema="oscuro"] .pc .hilo__m--cliente { background:#F7F7F5; color:#0E1310 }
[data-tema="oscuro"] .pc .hilo__m--cliente .hilo__quien { color:#5B635E }
.pc-badge { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:#E5484D; color:#fff;
            font:700 .7rem var(--f-body); margin-left:6px; vertical-align:2px }

.pc-decl { border:1px solid var(--line); border-radius:14px; padding:20px }
.pc-decl + .pc-decl { margin-top:14px }
.pc-decl--firmar { border-color:var(--texto); box-shadow:inset 0 0 0 1px var(--texto) }
.pc-decl h3 { font-size:1.12rem; margin-bottom:4px }
.pc-montos { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:16px 0 }
.pc-monto-caja { background:var(--suave); border-radius:12px; padding:14px 16px }
.pc-monto-caja .pc-mono { margin-bottom:6px }
.pc-monto-caja b { font-family:var(--f-display); font-size:1.6rem; letter-spacing:-.03em; display:block; line-height:1.1 }
.pc-monto-caja small { color:var(--gris); font-size:.8rem }
.pc-monto-caja--pagar b { color:#E5484D }
.pc-firma { list-style:none; counter-reset:f; margin:14px 0; padding:0; display:grid; gap:10px }
.pc-firma li { counter-increment:f; display:flex; gap:12px; align-items:flex-start; font-size:.93rem; line-height:1.45 }
.pc-firma li::before { content:counter(f); flex:none; width:26px; height:26px; border-radius:50%; background:var(--lime); color:#0E1310;
                       display:grid; place-items:center; font:700 .8rem var(--f-body) }
.pc-decl__acc { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px }
.pc-decl__acc form { margin:0 }
.pc-decl__nota { margin-top:12px; padding:12px 14px; border-left:3px solid var(--lime); background:var(--suave); border-radius:0 10px 10px 0; font-size:.9rem }
.pc-enlaces { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px }
.pc-alerta { color:#E5484D; font-weight:600 }
.fila > .decl { grid-column:1 / -1 }

/* Seguimiento por servicio (contabilidad, crédito, ITIN) y fechas clave */
.pc-seg { margin-top:16px; padding-top:16px; border-top:1px dashed var(--line) }
.pc-seg .pc-montos { margin:10px 0 14px }
.pc-montos--3 { grid-template-columns:repeat(3,minmax(0,1fr)) }
.pc-montos--4 { grid-template-columns:repeat(4,minmax(0,1fr)) }
.pc-seg .pc-monto-caja b { font-size:1.3rem }
.pc-monto-caja--bien b { color:#3E6B00 }
[data-tema="oscuro"] .pc .pc-monto-caja--bien b { color:var(--lime) }
.pc-tabla { width:100%; border-collapse:collapse; font-size:.86rem }
.pc-tabla th { text-align:left; font-family:var(--f-mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gris); font-weight:400; padding:6px 6px 8px 0 }
.pc-tabla td { padding:8px 6px 8px 0; border-top:1px solid var(--line) }
.pc-tabla th:not(:first-child), .pc-tabla td:not(:first-child) { text-align:right }
.pc-tabla__nota td { border-top:0; padding-top:0; color:var(--gris); font-size:.8rem; text-align:left !important }
.pc-rondas { list-style:none; padding:0; margin:0 0 10px; display:grid; gap:8px; font-size:.88rem }
.pc-rondas small { display:block; color:var(--gris); font-size:.8rem }
.pc-fechas { list-style:none; padding:0; margin:0 0 10px }
.pc-fechas li { display:flex; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:.9rem; line-height:1.35 }
.pc-fechas li:last-child { border-bottom:0 }
.pc-fechas small { display:block; color:var(--gris); font-size:.78rem }
.pc-fecha { flex:none; width:46px; height:50px; border-radius:10px; background:var(--suave); display:grid; place-content:center; text-align:center;
            font-family:var(--f-mono); font-size:.62rem; text-transform:uppercase; color:var(--gris) }
.pc-fecha b { font-family:var(--f-display); font-size:1.15rem; color:var(--texto); line-height:1 }
.pc-fechas li.is-pronto .pc-fecha { background:var(--lime) }
.pc-fechas li.is-pronto .pc-fecha, .pc-fechas li.is-pronto .pc-fecha b { color:#0E1310 }
.pc-fechas li.is-vencida small { color:#E5484D }
.pc-fechas li.is-hecho { opacity:.55 }
@media (max-width:700px) { .pc-montos--3, .pc-montos--4 { grid-template-columns:repeat(2,minmax(0,1fr)) } .pc-tabla { font-size:.8rem } }
.decl__lista { list-style:none; padding:0; margin:12px 0 0; display:grid; gap:6px; font-size:.84rem }
.fechas__fila { display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap; padding:6px 0; border-bottom:1px solid var(--line) }
.fechas__acc { display:flex; gap:6px; margin:0 }
.fechas__acc .btn { padding:6px 10px; font-size:.8rem }

/* Mi cuenta, recomendar y contratar */
.pc-hero--corto { padding-bottom:40px }
.pc-volver { color:var(--lime); text-decoration:none }
.pc-cuenta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:24px 0 }
.pc-cuenta h2 { font-size:1.2rem; margin-bottom:6px }
.pc-form { display:grid; gap:8px }
.pc-form .pc-btn { justify-self:start; margin-top:8px }
.pc-codigo { display:flex; justify-content:space-between; align-items:center; gap:10px; background:var(--suave); border-radius:12px; padding:12px 14px; margin:14px 0 4px }
.pc-codigo .pc-mono { margin:0 }
.pc-codigo b { font-family:var(--f-mono); font-size:1.1rem; letter-spacing:.06em }
.pc-catalogo { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px }
.pc-oferta { border:1px solid var(--line); border-radius:14px; padding:16px; display:flex; flex-direction:column; gap:6px; margin:0 }
.pc-oferta h3 { font-size:1rem }
.pc-oferta p { color:var(--gris); font-size:.86rem }
.pc-oferta__precio { color:var(--texto) !important; font-family:var(--f-display); font-weight:700; font-size:1.25rem !important; margin-top:auto; padding-top:6px }
.pc-oferta__precio s { color:var(--gris); font-weight:400; font-size:.95rem }
.pc-oferta__precio--cot { font-size:.95rem !important; font-family:var(--f-body); font-weight:600 }
.pc-oferta .pc-btn { width:100% }
@media (max-width:900px) { .pc-cuenta { grid-template-columns:1fr } }

/* Antes de firmar: acuerdo, firma con el dedo y verificación */
.pc-antes { background:var(--suave); border-radius:14px; padding:16px; margin-top:12px }
.pc-antes > p { margin-bottom:6px }
.pc-pasos--acuerdo { margin:12px 0 }
.pc-hero .pc-pasos--acuerdo { max-width:560px; margin-top:22px }
.pc-acuerdo { display:grid; gap:20px; margin:24px 0; max-width:820px }
.pc-acuerdo h2 { font-size:1.3rem; margin:4px 0 8px }
.pc-acuerdo__texto { max-height:420px; overflow:auto; border:1px solid var(--line); border-radius:12px; padding:18px 20px; margin:14px 0 18px; background:var(--fondo, transparent); font-size:.92rem; line-height:1.55 }
.pc-acuerdo__texto h3 { font-size:.98rem; margin:16px 0 6px }
.pc-acuerdo__texto h3:first-child { margin-top:0 }
.pc-acuerdo__texto p { margin:0 0 8px }
.pc-donde { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:10px 0 }
.pc-check { display:flex; gap:10px; align-items:flex-start; font-size:.92rem; line-height:1.45; margin:4px 0 8px; cursor:pointer }
.pc-check input { margin-top:3px; width:18px; height:18px; flex:none; accent-color:#0E1310 }
.pc-firmar { position:relative; border:1.5px dashed var(--line); border-radius:12px; background:#FFFFFF; overflow:hidden }
.pc-firmar canvas { display:block; width:100%; height:200px; touch-action:none; cursor:crosshair }
.pc-firmar canvas.is-falta { outline:2px solid #E5484D; outline-offset:-2px }
.pc-firmar__linea { position:absolute; left:18px; right:18px; bottom:42px; border-top:1px solid #DADDD9; font-family:var(--f-mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:#5B635E; padding-top:4px; pointer-events:none }
.pc-btn--chico { padding:6px 12px; font-size:.8rem; justify-self:start }
.pc-lista-simple { margin:8px 0 12px 18px; display:grid; gap:6px; font-size:.92rem }
.pc-tarjeta--lista { border-color:var(--lime) }
@media (max-width:700px) { .pc-acuerdo__texto { max-height:340px; padding:14px } .pc-firmar canvas { height:180px } }
.decl--acuerdo { font-size:.84rem; line-height:1.55 }
.pie__nota { margin-top:8px }
/* utilidades (la CSP no deja usar style="") */
.u-mt18 { margin-top:18px } .u-mb6 { margin-bottom:6px } .u-mb16 { margin-bottom:16px } .u-normal { text-transform:none; letter-spacing:0 } .u-ancho { width:100% }

/* ---------- Cumplimiento: cuestionario 8867, riesgos, copias ---------- */
.pc .pc-preguntas { border:1px solid var(--line); border-radius:14px; padding:16px 18px; margin:0 0 18px; }
.pc .pc-preguntas legend { font-weight:600; padding:0 6px; }
.pc .pc-pregunta { padding:12px 0; border-bottom:1px solid var(--line); }
.pc .pc-pregunta:last-of-type { border-bottom:0; }
.pc .pc-pregunta p { margin:0 0 8px; }
.pc .pc-opciones { display:flex; flex-wrap:wrap; gap:8px 18px; }
.pc .pc-opciones label { display:inline-flex; align-items:center; gap:6px; min-height:36px; cursor:pointer; }
.pc .pc-respuestas { display:grid; grid-template-columns:1fr auto; gap:6px 16px; margin:8px 0 16px; }
.pc .pc-respuestas dt { color:var(--gris); }
.pc .pc-respuestas dd { margin:0; font-weight:600; }
.pc .pc-riesgo { border-left:3px solid #C9F24B; padding:10px 14px; margin:14px 0; background:rgba(201,242,75,.08); border-radius:0 10px 10px 0; }
.pc .pc-riesgo p { margin:0 0 8px; }
.pc .pc-riesgo__caso { font-weight:500; }
.pc .pc-riesgo form { display:flex; flex-wrap:wrap; gap:8px; }
@media (max-width:600px) { .pc .pc-respuestas { grid-template-columns:1fr; } .pc .pc-respuestas dd { margin-bottom:8px; } }
.pc .pc-7216 summary { cursor:pointer; font-weight:600; margin-bottom:10px }
.pc .pc-7216 p { margin:0 0 10px }

/* ---------- Aviso de seguridad (filtración) ---------- */
.pc .pc-seguridad { border:2px solid #E5484D; border-radius:16px; padding:20px 22px; margin:18px 0; background:var(--card) }
.pc .pc-seguridad .pc-mono { color:#E5484D }
.pc .pc-seguridad h2 { margin:0 0 10px }
.pc .pc-seguridad__texto { margin:0 0 14px; line-height:1.55 }
.pc .pc-seguridad form { display:flex; flex-wrap:wrap; gap:8px }
.pc #documentos-todo { margin-top:12px }

/* ---------- Seguridad: aviso de filtración (despacho) ---------- */
.aviso-fil { margin-top:18px }
.aviso-fil h2, .aviso-fil > .pista { margin-bottom:12px }
.aviso-fil form { display:grid; gap:8px }
.aviso-fil .campo { width:100%; box-sizing:border-box }
.aviso-fil .casillas { display:flex; gap:18px; flex-wrap:wrap }
.aviso-fil .casilla { display:flex; gap:8px; align-items:flex-start }
.aviso-fil .btn { width:auto }
.aviso-fil .tabla { margin-top:16px }

/* ---------- Cartera (clientes por vendedor) ---------- */
.cartera-sol, .cartera-buscar { margin-bottom:24px }
.cartera-sol h2, .cartera-buscar h2 { margin-bottom:6px }
.cartera-sol .pista, .cartera-buscar .pista { margin-bottom:12px }
.cartera-buscar .campo { flex:1; min-width:220px }
.cartera-enlace { margin-top:14px }
.cartera-apoyo { margin-top:16px; display:grid; gap:8px }
.cartera-apoyo .cli__grupo { display:flex; gap:8px; align-items:center; flex-wrap:wrap }
.cartera-pers { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; margin-top:8px; font-size:.85rem }
.cartera-pers label { display:flex; gap:6px; align-items:center }
.cartera-pers__t { flex-basis:100%; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-top:4px }

/* ---------- Guías (cliente y equipo) ---------- */
.ayuda h1 { margin-bottom:8px }
.ayuda > .pista { margin-bottom:18px }
.ayuda details { border:1px solid var(--line); border-radius:12px; padding:12px 16px; margin:0 0 10px; background:var(--card, transparent) }
.ayuda summary { cursor:pointer; font-weight:600; font-size:1.02rem }
.ayuda details[open] summary { margin-bottom:8px }
.ayuda ol, .ayuda ul { margin:0 0 8px; padding-left:22px; line-height:1.6 }
.ayuda li { margin-bottom:4px }
.ayuda h2 { margin:26px 0 10px }
.ayuda .btn { width:auto; display:inline-block; margin-right:8px }

/* ---------- Panel del cliente por pestañas (panel.js) ---------- */
.pc-con-pestanas [data-tab][hidden], .pc-pestanas[hidden] { display:none !important }
.pc-pestanas { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; margin:26px 0 0; padding:8px 0;
               position:sticky; top:0; z-index:5; background:var(--paper) }
.pc-pestanas::-webkit-scrollbar { display:none }
.pc-pestana { flex:none; display:inline-flex; align-items:center; gap:6px; padding:10px 16px; border-radius:999px;
              border:1px solid var(--line); background:var(--card); color:var(--texto); font:600 .9rem var(--f-body);
              text-decoration:none; white-space:nowrap }
.pc-pestana:hover { border-color:var(--texto) }
.pc-pestana.is-actual { background:var(--ink); border-color:var(--ink); color:#fff }
[data-tema="oscuro"] .pc-pestana.is-actual { background:var(--lime); border-color:var(--lime); color:var(--ink) }
.pc-pestana .pc-badge { margin-left:2px }
.pc-con-pestanas .pc-cuerpo { margin-top:14px }
.pc-cuerpo--uno { grid-template-columns:minmax(0,1fr) }
.pc-cuerpo--sin-main > .pc-main { display:none }
.pc-cuerpo--uno > .pc-lado { max-width:none }
.pc-con-pestanas #subir { margin-top:0 }

/* ---------- Cabecera en el celular: sin desbordarse ---------- */
.barra__nav a { white-space:nowrap }
@media (max-width:700px) {
  .barra__solo-pc { display:none }
  .barra__nav { gap:12px; min-width:0; overflow-x:auto; scrollbar-width:none }
  .barra__nav::-webkit-scrollbar { display:none }
  .barra__nav a { font-size:.85rem }
  .pc-pestanas { margin-top:18px; margin-inline:-4px; padding-inline:4px }
  .pc-pestana { padding:9px 14px; font-size:.86rem }
}
.pc-con-pestanas .pc-tres { margin-top:14px }
.pc-con-pestanas .pc-hero { padding-bottom:36px }
.pc-con-pestanas .pc-pestanas { margin-top:12px }

/* ---------- Celular: que nada se salga de la pantalla ---------- */
.tarjeta, .hilo__form > * { min-width:0 }
@media (max-width:700px) {
  .tarjeta > .tabla, .tarjeta > table { display:block; overflow-x:auto }
  .cli__grupo { flex-wrap:wrap }
  .hilo__pie .campo { min-width:0; flex-basis:100% }
  .hilo__pie .btn { flex:1 }
}
select.campo { max-width:100%; min-width:0; text-overflow:ellipsis }

/* ---------- Despacho › Inspector ---------- */
.insp-cab { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:20px }
  .insp-pulso { display:inline-flex; gap:8px; align-items:center; font-family:var(--f-mono); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase }
  .insp-pulso::before { content:""; width:10px; height:10px; border-radius:50%; background:#3BB273 }
  .insp-pulso--mal::before { background:#D64545 }
  .insp-dos { display:grid; grid-template-columns:1.3fr 1fr; gap:18px; align-items:start; margin-bottom:18px }
  .insp-prob { list-style:none; margin:0; padding:0; display:grid; gap:10px }
  .insp-prob li { border-left:4px solid #E3A33B; padding:8px 12px; background:var(--tint); border-radius:6px }
  .insp-prob li.grave { border-left-color:#D64545 }
  .insp-prob li.bien { border-left-color:#3BB273 }
  .insp-prob b { display:block; margin-bottom:2px }
  .insp-prob small { color:var(--slate); font-size:.78rem }
  .insp-informe { white-space:pre-wrap; font-size:.88rem; line-height:1.55; margin:0 }
  .insp-graf { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px }
  .insp-graf p { margin:0 0 4px; font-size:.8rem; color:var(--slate) }
  .insp-linea { width:100%; height:54px; display:block }
  .insp-linea polyline { fill:none; stroke:currentColor; stroke-width:2; vector-effect:non-scaling-stroke }
  .insp-cifras { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:.86rem; margin:0 }
  .insp-cifras dt { color:var(--slate) }
  .insp-cifras dd { margin:0; text-align:right; font-family:var(--f-mono) }
  .insp-tres { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; margin-bottom:18px }
  .insp-tres h2, .insp-dos h2 { margin-bottom:10px }
  .insp-tres .tarjeta, .insp-dos .tarjeta { margin:0 }
  @media (max-width:980px) { .insp-dos, .insp-tres, .insp-graf { grid-template-columns:1fr } }
  .insp-h1 { margin-bottom:6px }
  .insp-mt { margin-top:20px }
  .insp-mt-s { margin-top:10px }
  .insp-mb { margin-bottom:10px }
  .insp-bloque { margin-bottom:18px }

/* Documentos del expediente por sección (ficha del despacho) */
.docs-cab { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin-bottom:14px }
.docs-nota { margin-bottom:14px }
.doc-sec { margin-bottom:16px }
.doc-sec__cab { cursor:pointer; display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--line, #d9dcd6) }
.doc-sec__lista { margin:8px 0 0 }
.lista .fila.doc-fila, .doc-fila { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-start; justify-content:space-between }
.doc-fila__info { flex:1 1 260px; min-width:min(260px, 100%); overflow-wrap:anywhere }
.doc-fila__archivo { display:block }
.doc-orden { flex:0 1 auto; max-width:100% }
.doc-orden > summary { cursor:pointer; list-style:none }
.doc-orden > summary::-webkit-details-marker { display:none }
.doc-orden__form { margin-top:10px; display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end }
.doc-orden__form label { display:block; min-width:0; max-width:100% }
.doc-orden__form select.campo { max-width:100% }
.doc-orden__borrar { margin-top:8px }
.doc-orden__borrar .btn { width:auto }
.doc-orden[open] { flex:1 1 100%; padding-bottom:6px }
.doc-orden__nombre { padding-bottom:10px; border-bottom:1px dashed var(--line, #d9dcd6) }
.doc-orden__nombre label { flex:1 1 240px }
.doc-orden__nombre .campo { width:100% }

/* Documentos por titular: el cliente, cada compañía, cada familiar */
.doc-tit { margin:0 0 22px; padding:14px 16px 4px; border:1px solid var(--line, #d9dcd6); border-left:4px solid var(--slate, #5b6670); border-radius:var(--r, 10px); background:var(--card, #fff) }
.doc-tit--empresa { border-left-color:var(--lime-deep, #6f8f00) }
.doc-tit--familia { border-left-color:var(--ink, #1b1f1c) }
.doc-tit__cab { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin-bottom:6px }
.doc-tit__cab h3 { margin:0; overflow-wrap:anywhere }
@media (max-width:600px) { .doc-tit { padding:12px 10px 2px } }
.doc-tit__tipo { display:inline-block; margin-right:6px; padding:2px 8px; border-radius:999px; font:600 .7rem/1.4 var(--f-mono, monospace); letter-spacing:.06em; text-transform:uppercase; background:var(--tint, #eef1ea); color:var(--ink, #1b1f1c); vertical-align:middle }

/* «¿De quién son estos documentos?» (portal del cliente) */
.titular { border:0; padding:0; margin:14px 0 0; min-width:0 }
.titular__guia { margin:4px 0 8px }
.titular__nuevo { margin-top:10px }

/* Ficha corta del cliente (superadministrador, cliente con vendedor) */
.resumen-cli { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:16px; align-items:start }
.resumen-cli h2 { margin-bottom:12px }
.resumen-cli__form { display:flex; flex-wrap:wrap; gap:8px; align-items:center }
.resumen-cli__form select.campo { flex:1 1 160px; min-width:0 }
.resumen-cli__fila { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; padding:9px 0; border-top:1px solid var(--line) }
.resumen-cli__fila:first-child { border-top:0; padding-top:0 }
.resumen-cli__mas { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:14px; font-size:.9rem }

/* Lista de clientes compacta (despacho) */
.cli-alta { margin-bottom:20px }
.cli-alta > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px }
.cli-alta > summary::-webkit-details-marker { display:none }
.cli-alta[open] > summary { margin-bottom:14px }
.cli-alta[open] > summary .btn { display:none }
.cli-filtro { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:14px }
.cli-filtro input.campo { flex:1 1 220px; min-width:0 }
.cli-filtro select.campo { appearance:auto; width:auto }
.cli-total { margin-bottom:10px }
.cli-fila { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,1.2fr) repeat(3, minmax(0,.8fr)) auto; gap:10px 16px; align-items:center; padding:14px 0; border-top:1px solid var(--line) }
.cli-fila:first-child { border-top:0 }
.cli-fila__nombre { min-width:0 }
.cli-fila__nombre .marca { margin-left:6px; vertical-align:middle }
.cli-fila__dato { display:flex; flex-direction:column; min-width:0 }
.cli-fila__mas { grid-column:1 / -1; justify-self:end }
.cli-fila__mas[open] { justify-self:stretch }
.cli-fila__mas > summary { cursor:pointer; list-style:none; display:inline-block }
.cli-fila__mas > summary::-webkit-details-marker { display:none }
.cli-fila__mas[open] > summary { margin-bottom:4px }
@media (min-width:901px) { .cli-fila__mas { grid-column:auto } .cli-fila__mas[open] { grid-column:1 / -1 } }
.docs-cli__t { margin-bottom:12px }
.docs-cli__volver { margin:0 0 12px; font-size:.9rem }
.resumen-cli > .tarjeta { margin:0 }
.resumen-cli__fila .btn, .resumen-cli__mas .btn { padding:6px 12px; font-size:.8rem }
.cli-fila__mas > summary.btn { padding:8px 14px; font-size:.84rem }
.resumen-cli .lista, .tarjeta > ul.lista { list-style:none; padding-left:0; margin-left:0 }

/* Contabilidad: estados de cuenta por compañía y revisión lado a lado */
.conta h1 { margin-bottom:6px }
.conta__migas { font-size:.88rem; margin-bottom:14px }
.conta__leyenda { list-style:none; margin:16px 0 22px; padding:0; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:.84rem; color:var(--slate) }
.conta__leyenda li { display:flex; align-items:center; gap:6px }
.luz { display:inline-block; width:11px; height:11px; border-radius:50%; flex:none; background:var(--line) }
.luz--verde { background:#3E9B4F }
.luz--amarillo { background:#E0A800 }
.luz--rojo { background:#C23B3B }
.luz--revisado { background:var(--lime-deep); box-shadow:0 0 0 2px var(--lime) }
.luz--gris { background:var(--dim); opacity:.5 }
.conta-tit__cab { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:10px }
.conta-tit__tipo { font-family:var(--f-mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate) }
.conta-tit--empresa { border-left:4px solid var(--lime-deep) }
.conta-tit--familia { border-left:4px solid var(--slate) }
.conta-pide { list-style:none; margin:0 0 14px; padding:0 }
.conta-pide__cuenta { font-size:.95rem; margin:14px 0 6px }
.conta-pide__mes { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:8px 0; border-top:1px solid #EEE }
.conta-pide__nombre { font-weight:600; min-width:9em }
.conta-pide__no summary { cursor:pointer; font-size:.86rem; color:#666 }
.conta-pide__no form { display:grid; gap:6px; margin-top:6px }
.conta-preg { border-top:1px solid #EEE; padding:12px 0 }
.conta-preg__mov { margin:0 0 4px; overflow-wrap:anywhere }
.conta-espera { margin:12px 0; padding:10px 14px; border:1px solid #F0C36D; border-radius:10px; background:#FFF8E6 }
.conta-espera summary { cursor:pointer }
.conta-espera__fila { display:flex; flex-wrap:wrap; gap:8px; align-items:center }
.conta-espera__fila .campo { flex:1 1 220px; margin:0 }
.conta-pedir__lista { margin:6px 0 12px }
.conta-pedir__botones { display:flex; flex-wrap:wrap; gap:8px }
.conta-noex { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:4px 0 }
.conta-tabla--cuentas th, .conta-tabla--cuentas td { white-space:nowrap }
.conta-falta { font-size:.86rem; color:#8A5A00; background:#FFF6DA; border:1px solid #F0DC9C; border-radius:8px; padding:8px 12px; margin:6px 0 }
/* Cuentas de banco de la contabilidad: tarjeta por cuenta con totales y
   meses en columnas alineadas (rediseño 2026-10-13). */
.conta-cu { margin:12px 0; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:12px; background:var(--card); overflow:hidden }
.conta-cu--ok { border-left-color:#3E9B4F }
.conta-cu--falta, .conta-cu--pend { border-left-color:#E0A800 }
.conta-cu--mal { border-left-color:#C23B3B }
.conta-cu > summary, .conta-res > summary { list-style:none; display:grid; grid-template-columns:minmax(0,1fr) auto 18px; gap:10px 20px; align-items:center; padding:12px 16px; cursor:pointer }
.conta-cu > summary::-webkit-details-marker, .conta-res > summary::-webkit-details-marker { display:none }
.conta-cu > summary:hover, .conta-res > summary:hover { background:var(--paper) }
.conta-cu[open] > summary, .conta-res[open] > summary { border-bottom:1px solid var(--line); background:var(--paper) }
.conta-cu__id { min-width:0 }
.conta-cu__banco { margin:0; font-size:1.06rem; font-weight:700; line-height:1.25 }
.conta-cu__meta { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; margin-top:4px; font-size:.82rem; color:var(--slate) }
.conta-cu__chip { display:inline-block; padding:1px 9px; border-radius:999px; border:1px solid; font-size:.74rem; font-weight:600; white-space:nowrap }
.conta-cu__chip--ok { background:#E8F5EA; border-color:#A9D8B2; color:#1F6B30 }
.conta-cu__chip--falta, .conta-cu__chip--pend { background:#FFF6DA; border-color:#F0DC9C; color:#8A5A00 }
.conta-cu__chip--mal { background:#FBEDED; border-color:#E3BDBD; color:var(--rojo) }
.conta-cu__tot { display:flex; gap:22px; text-align:right }
.conta-cu__tot > span { display:grid; gap:1px }
.conta-cu__tot small { font-family:var(--f-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim) }
.conta-cu__tot .conta-num { font-size:1.02rem }
.conta-cu__flecha::before { content:"▾"; display:block; text-align:center; color:var(--slate); transition:transform .15s }
details:not([open]) > summary .conta-cu__flecha::before { transform:rotate(-90deg) }
.conta-cu__cuerpo { padding:6px 16px 12px }
.conta-num { font-family:var(--f-mono); font-variant-numeric:tabular-nums; white-space:nowrap }
.conta-num--entra { color:#2F7D3E }
.conta-meses { list-style:none; margin:4px 0 0; padding:0 }
.conta-meses__cab, .conta-mes a { display:grid; grid-template-columns:11px minmax(9.5em,1.3fr) 4em repeat(3, minmax(7.5em,1fr)) minmax(8em,1.2fr); gap:14px; align-items:center; padding:7px 8px }
.conta-meses__cab { padding-top:6px; padding-bottom:6px; font-family:var(--f-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim) }
.conta-meses__cab span:nth-child(n+3):nth-child(-n+6), .conta-mes__n, .conta-mes__ent, .conta-mes__sal, .conta-mes__neto { text-align:right }
.conta-mes a { border-top:1px solid var(--line); color:inherit; text-decoration:none; border-radius:6px }
.conta-mes a:hover, .conta-mes a:focus-visible { background:var(--tint) }
.conta-mes__mes { font-weight:600; white-space:nowrap }
.conta-mes__n { font-family:var(--f-mono); font-variant-numeric:tabular-nums; font-size:.84rem; color:var(--slate) }
.conta-mes__n i { display:none; font-style:normal }
.conta-mes .conta-num { font-size:.9rem }
.conta-mes__est { display:flex; flex-wrap:wrap; gap:2px 8px; font-size:.8rem; min-width:0 }
.conta-mes__ok { color:var(--slate) }
.conta-mes__ok--revisado { color:var(--lime-deep); font-weight:600 }
.conta-mes__aclara { color:#8A5A00; font-weight:600 }
.conta-mes__dato { font-size:.86rem; color:var(--slate); min-width:0 }
.conta-mes__dato--ancho { grid-column:3 / -1 }
.conta-mes--repe .conta-mes__mes { text-decoration:line-through; color:var(--dim) }
.conta-mal { color:var(--rojo) }
.conta-res { margin-top:16px; border:1px solid var(--line); border-left:4px solid var(--lime-deep); border-radius:12px; background:var(--card); overflow:hidden }
.conta-res__tit { font-weight:700; font-size:1.02rem }
.conta-res > :not(summary) { margin-left:16px; margin-right:16px }
.conta-res > :last-child { margin-bottom:14px }
@media (max-width:760px) {
  .conta-cu > summary, .conta-res > summary { grid-template-columns:minmax(0,1fr) 18px; padding:12px }
  .conta-cu__tot { grid-column:1 / -1; grid-row:2; display:grid; grid-template-columns:repeat(3, auto); justify-content:space-between; text-align:left; gap:6px; min-width:0 }
  .conta-cu__tot .conta-num { font-size:.8rem }
  .conta-cu__flecha { grid-column:2; grid-row:1 }
  .conta-cu__cuerpo { padding:6px 10px 10px }
  .conta-meses__cab { display:none }
  .conta-mes a { display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px; padding:8px 4px }
  .conta-mes__mes { flex:1 1 auto }
  .conta-mes__n, .conta-mes__ent, .conta-mes__sal, .conta-mes__est, .conta-mes__dato--ancho { order:2; font-size:.78rem }
  .conta-mes .conta-mes__ent, .conta-mes .conta-mes__sal { font-size:.78rem }
  .conta-mes__n { margin-left:21px }
  .conta-mes__n i { display:inline }
  .conta-mes__est:empty { display:none }
  .conta-mes__est { margin-left:auto }
  .conta-mes__ok--revisado { display:none }
  .conta-mes__dato--ancho { flex-basis:100%; padding-left:21px }
  .conta-res > :not(summary) { margin-left:12px; margin-right:12px }
}
.conta-tabla { width:100%; border-collapse:collapse; margin-top:10px; font-size:.9rem }
.conta-tabla td { padding:6px 4px; border-top:1px solid var(--line) }
.conta-tabla .num { text-align:right; font-family:var(--f-mono); white-space:nowrap }
.conta-tabla--ingreso td:last-child { color:var(--lime-deep) }
.conta-tabla--pendiente td:first-child { color:#8A5A00; font-weight:600 }
.conta-rev__cab { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap }
.conta-estado { display:inline-flex; align-items:center; gap:8px; font-weight:600; border:1px solid var(--line); border-radius:999px; padding:6px 12px }
.conta-cuadre { display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin:16px 0; padding:14px; border:1px solid var(--line); border-radius:var(--r); background:var(--card) }
.conta-cuadre div { display:flex; flex-direction:column; gap:2px }
.conta-cuadre span { font-size:.76rem; color:var(--slate) }
.conta-cuadre b { font-family:var(--f-mono); font-size:1rem }
.conta-cuadre p { grid-column:1 / -1; margin:0; font-size:.9rem }
.conta-cuadre.is-ok { border-color:#9CCB8A }
.conta-cuadre.is-mal { border-color:#E3BDBD; background:#FFFBFB }
.conta-rev { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:18px; align-items:start }
.conta-rev__doc { position:sticky; top:12px }
.conta-pags { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:8px }
.conta-pags a { min-width:30px; text-align:center; padding:4px 8px; border:1px solid var(--line); border-radius:6px; text-decoration:none; color:inherit; font-size:.85rem }
.conta-pags a[aria-current] { background:var(--ink); color:var(--paper); border-color:var(--ink) }
.conta-hoja { position:relative; border:1px solid var(--line); border-radius:8px; overflow:auto; max-height:80vh; background:#fff }
.conta-hoja img { display:block; width:100%; height:auto }
.conta-hoja__marca { position:absolute; left:0; right:0; height:2.4%; min-height:14px; transform:translateY(-70%); background:rgba(201, 242, 75, .45); outline:2px solid var(--lime-deep); pointer-events:none }
.conta-movs { display:flex; flex-direction:column; gap:6px }
.conta-mov { border:1px solid var(--line); border-radius:8px; padding:8px 10px; background:var(--card); cursor:pointer }
.conta-mov:focus-visible, .conta-mov.is-activo { outline:2px solid var(--lime-deep) }
.conta-mov.is-pend { border-left:4px solid #E0A800 }
.conta-mov__a { display:grid; grid-template-columns:44px 1fr auto; gap:8px; align-items:baseline }
.conta-mov__fecha { font-family:var(--f-mono); font-size:.8rem; color:var(--slate) }
.conta-mov__desc { font-size:.88rem; min-width:0; overflow-wrap:anywhere }
.conta-mov__imp { font-family:var(--f-mono); font-size:.88rem; white-space:nowrap }
.conta-mov.is-entra .conta-mov__imp { color:var(--lime-deep) }
.conta-mov__b { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:6px; font-size:.85rem; color:var(--slate) }
.conta-mov__b select.campo { flex:1 1 210px; padding:6px 8px; font-size:.84rem; width:auto; max-width:100% }
.conta-mov__b input.campo { flex:1 1 140px; padding:6px 8px; font-size:.84rem; min-width:0 }
.conta-mov__origen { font-family:var(--f-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; color:var(--lime-deep) }
.conta-mov__mas { flex:1 1 100%; font-size:.84rem }
.conta-mov__mas summary { cursor:pointer; color:var(--slate) }
.conta-mov__mas label { display:block; margin-top:6px }
.conta-mov__mas .campo { width:100%; box-sizing:border-box; padding:6px 8px }
.conta-nuevo { margin-top:14px; border:1px dashed var(--line); border-radius:8px; padding:10px 12px }
.conta-nuevo summary { cursor:pointer; font-weight:600 }
.conta-nuevo__campos { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:8px; margin-top:10px; font-size:.84rem }
.conta-nuevo__campos .campo { width:100%; box-sizing:border-box; padding:7px 9px }
.conta-saldos { margin-top:12px }
.conta-botones { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:16px; position:sticky; bottom:0; background:var(--paper); padding:10px 0; border-top:1px solid var(--line) }
.conta-aunasi { font-size:.84rem; color:var(--slate) }
.conta-pie { margin-top:22px }
.ficha-conta__lista { list-style:none; margin:8px 0 12px; padding:0; font-size:.9rem }
.ficha-conta__lista li { display:flex; align-items:center; gap:8px; padding:4px 0 }
@media (max-width:860px) {
  .conta-rev { grid-template-columns:1fr }
  .conta-rev__doc { position:static }
  .conta-hoja { max-height:60vh }
  .conta-cuadre { grid-template-columns:1fr 1fr }
}

/* Aviso de cobro en el panel del cliente (facturas por pagar) */
.pc-cobro { position:relative; z-index:1; margin-top:-60px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:18px; align-items:center;
  background:var(--card); border:1px solid var(--line); border-radius:18px; padding:18px 22px; overflow:hidden;
  box-shadow:0 18px 40px -24px rgba(14,19,16,.45); animation:pcCobroEntra .5s cubic-bezier(.2,.8,.2,1) both }
.pc-cobro::before { content:""; position:absolute; inset:0 auto 0 0; width:6px; background:var(--lime) }
.pc-cobro::after { content:""; position:absolute; top:0; left:-40%; width:40%; height:100%; pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(201,242,75,.22), transparent); animation:pcCobroBrillo 2.4s .6s ease-out 1 both }
.pc-cobro--vencida::before { background:#E5484D }
.pc-cobro--vencida::after { background:linear-gradient(100deg, transparent, rgba(229,72,77,.14), transparent) }
.pc-cobro ~ .pc-tres { margin-top:16px }
.pc-cobro__icono { position:relative; width:52px; height:52px; border-radius:50%; background:var(--ink); color:var(--lime); display:grid; place-items:center;
  font-family:var(--f-mono); font-size:1.35rem; font-weight:700 }
.pc-cobro__icono::after { content:""; position:absolute; inset:-5px; border-radius:50%; border:2px solid var(--lime); opacity:0; animation:pcCobroPulso 2.2s 1s ease-out 3 }
.pc-cobro--vencida .pc-cobro__icono { color:#fff; background:#E5484D }
.pc-cobro--vencida .pc-cobro__icono::after { border-color:#E5484D }
.pc-cobro__texto .pc-mono { margin-bottom:4px }
.pc-cobro--vencida .pc-cobro__texto .pc-mono { color:#C9363B }
.pc-cobro__texto h2 { font-size:clamp(1.05rem,2.4vw,1.3rem); margin:0; line-height:1.25; overflow-wrap:anywhere }
.pc-cobro__dato { margin:4px 0 0; color:var(--gris) }
.pc-cobro__dato b { color:var(--texto); font-family:var(--f-mono); font-size:1.05rem }
.pc-cobro__nueva { display:inline-block; margin-left:6px; padding:1px 8px; border-radius:999px; background:var(--ink); color:var(--lime); font-size:.62rem; letter-spacing:.1em; vertical-align:1px }
.pc-cobro__lista { list-style:none; margin:6px 0 0; padding:0; font-size:.9rem }
.pc-cobro__lista li { padding:3px 0; overflow-wrap:anywhere }
.pc-cobro__lista span { color:var(--gris); font-family:var(--f-mono); font-size:.82rem }
.pc-cobro__acciones { display:flex; flex-direction:column; align-items:flex-end; gap:8px }
.pc-cobro__acciones .pc-btn { white-space:nowrap }
.pc-cobro__todas { font-size:.84rem }
[data-tema="oscuro"] .pc-cobro { box-shadow:0 18px 40px -24px rgba(0,0,0,.8) }
[data-tema="oscuro"] .pc-cobro__icono { background:#000 }
@keyframes pcCobroEntra { from { opacity:0; transform:translateY(14px) scale(.98) } to { opacity:1; transform:none } }
@keyframes pcCobroBrillo { from { left:-40% } to { left:110% } }
@keyframes pcCobroPulso { 0% { opacity:.7; transform:scale(.9) } 100% { opacity:0; transform:scale(1.35) } }
@media (prefers-reduced-motion: reduce) { .pc-cobro, .pc-cobro::after, .pc-cobro__icono::after { animation:none } }
@media (max-width:640px) {
  .pc-cobro { grid-template-columns:auto minmax(0,1fr); padding:16px 16px 16px 20px; gap:12px 14px }
  .pc-cobro__icono { width:42px; height:42px; font-size:1.1rem }
  .pc-cobro__acciones { grid-column:1 / -1; align-items:stretch }
  .pc-cobro__acciones .pc-btn { width:100% }
  .pc-cobro__todas { text-align:center }
}
.pc-con-pestanas .pc-cobro { margin-top:-16px }
.pc-hero--corto + .pc-cobro { margin-top:-16px }

/* Módulo Contabilidad (despacho/contabilidad/) */
.conta-pan__cab { margin-bottom:22px }
.conta-pan__cab h1 { margin-bottom:6px }
.conta-pan__n { display:block; font-family:var(--f-mono); font-size:.7rem; color:var(--dim); margin-top:3px }
.conta-pan__bar { display:block; width:100%; max-width:120px; height:6px; margin-top:6px }
.kpis a.kpi { color:inherit; text-decoration:none }
.kpis a.kpi[aria-current] { outline:2px solid var(--lime-deep); outline-offset:-2px }
.tabla td.num, .tabla th.num { text-align:right; white-space:nowrap }

/* W-9 de trabajadores (trabajadores.php y despacho/clientes/w9.php) */
.w9-tabla { width:100%; border-collapse:collapse; margin:8px 0 12px; font-size:.92rem }
.w9-tabla td { padding:8px 6px; border-top:1px solid #E6E6E0; vertical-align:top }
.w9-tabla small { display:block; color:#6B6B66; font-size:.8rem }
.w9-en-linea { display:inline; margin:0 }
.w9-quitar { background:none; border:0; padding:0 0 0 10px; color:#8A3B2E; text-decoration:underline; cursor:pointer; font:inherit }
.w9-paso { margin-top:14px; border-top:1px solid #E6E6E0; padding-top:10px }
.w9-paso summary { cursor:pointer; font-weight:600 }
.w9-form { display:grid; gap:10px; margin-top:10px; max-width:520px }
.w9-form label { display:grid; gap:4px; font-size:.9rem }
/* W-9 oficial con campos encima (w9Hoja + w9pdf/w9.js). En el teléfono la hoja se desplaza de lado. */
.w9h-marco { overflow-x:auto; margin:12px 0; border:1px solid var(--line); border-radius:var(--r); background:#fff; -webkit-overflow-scrolling:touch }
.w9h { position:relative; min-width:660px; max-width:980px }
.w9h img { display:block; width:100%; height:auto; user-select:none; pointer-events:none }
.w9h-campo, .w9h-caja { position:absolute; margin:0; box-sizing:border-box }
.w9h-campo { border:0; border-radius:2px; padding:0 3px; background:rgba(201,242,75,.28); outline:1px solid rgba(80,104,0,.55); color:#0E1310; font-family:Helvetica, Arial, sans-serif; line-height:1.1; resize:none }
.w9h-campo:focus { background:rgba(201,242,75,.5); outline:2px solid var(--lime-deep) }
.w9h-num { letter-spacing:.12em; text-align:center }
.w9h-caja { accent-color:var(--lime-deep); cursor:pointer }
.w9h-bloq { background:rgba(255,255,255,.85); outline:0; color:#0E1310; overflow:hidden }
textarea.w9h-campo { padding:2px 3px; overflow:hidden }
.w9h .is-falta { outline:2px solid #E5484D; background:rgba(229,72,77,.15) }
.w9-firmar { margin-top:14px }
.w9-firmar .firma-lienzo { display:block; width:100%; max-width:560px; height:150px; border:1px dashed var(--slate); border-radius:var(--r); background:#fff; touch-action:none }
.w9-firmar .firma-lienzo.is-falta { outline:2px solid #E5484D; outline-offset:-2px }
.w9-certifico { display:flex; gap:10px; align-items:flex-start; font-size:.92rem; margin-bottom:12px }
.w9-certifico input { margin-top:4px; flex:none }
.w9-certifico input.is-falta { outline:2px solid #E5484D }
.w9-hoja-form { margin-top:8px }
.conta-tabla-envoltura { overflow-x:auto }
.conta-res__sub { font-size:.92rem; margin:16px 0 0 }

/* Conciliar al estilo Xero: una tarjeta por comercio, banco a la izquierda, decisión a la derecha. */
.conciliar__cuenta { margin:14px 0 6px }
.conciliar__bloque { margin:0 0 14px }
.conciliar__tarjeta { margin:12px 0; padding:16px 18px; background:#fff; border:1px solid var(--line); border-left:5px solid #D8D8D0; border-radius:10px }
.conciliar__tarjeta--alta { border-left-color:var(--lime-deep) }
.conciliar__tarjeta--media { border-left-color:#C99A2E }
.conciliar__fila { display:flex; flex-wrap:wrap; gap:14px 28px; align-items:center; justify-content:space-between }
.conciliar__banco { flex:1 1 280px; min-width:0 }
.conciliar__banco p { margin:0 0 3px }
.conciliar__comercio { font-weight:700; overflow-wrap:anywhere }
.conciliar__importe { font-family:var(--f-mono); font-weight:600 }
.conciliar__importe--entra { color:var(--lime-deep) }
.conciliar__decision { flex:1 1 340px; display:flex; flex-wrap:wrap; gap:8px 12px; align-items:flex-end }
.conciliar__motivo { flex:1 1 100%; margin:0; font-size:.88rem }
.conciliar__sello { display:inline-block; padding:1px 8px; margin-right:4px; border-radius:20px; background:#EEF0EA; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em }
.conciliar__tarjeta--alta .conciliar__sello { background:#F1F8DC; color:var(--lime-deep) }
.conciliar__tarjeta--media .conciliar__sello { background:#FBF1D9; color:#8A5A00 }
.conciliar__cat { flex:1 1 220px; display:flex; flex-direction:column; gap:3px; font-size:.85rem }
.conciliar__cat select { width:100%; padding:8px; font-size:.95rem }
.conciliar__ok { min-width:90px; font-size:1.05rem }
.conciliar__detalle { margin-top:10px; font-size:.88rem }
.conciliar__detalle summary { cursor:pointer; color:var(--lime-deep) }

/* Clasificación en tiempo real: iguales cambiados al instante */
.conta-mov.is-igual { border-color:var(--lime-deep); background:color-mix(in srgb, var(--lime-deep) 10%, var(--card)) }
.conta-igual { position:sticky; bottom:10px; z-index:5; display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin:12px 0; padding:12px 14px; border:2px solid var(--lime-deep); border-radius:10px; background:var(--card); box-shadow:0 6px 20px rgba(0,0,0,.18) }
.conta-igual[hidden] { display:none }
.conta-igual__txt { margin:0; font-weight:600 }
.conta-igual__btns { display:flex; gap:8px }

/* Lupa del estado de cuenta */
.conta-hoja { cursor:zoom-in }
.conta-lupa { position:absolute; z-index:4; overflow:hidden; width:260px; height:260px; border-radius:50%; border:3px solid var(--ink); box-shadow:0 8px 28px rgba(0,0,0,.35); background-color:#fff; background-repeat:no-repeat; pointer-events:none }
.conta-lupa.is-cargando { opacity:.85 }
.conta-lupa[hidden] { display:none }
.conta-lupa-ctl { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:8px; font-size:.85rem }
.conta-lupa-ctl__b { padding:3px 10px; border:1px solid var(--line); border-radius:6px; background:var(--card); color:inherit; cursor:pointer; font:inherit }
.conta-lupa-ctl__b.is-on { background:var(--ink); color:var(--paper); border-color:var(--ink) }
.conta-lupa-ctl a { margin-left:auto }
@media (hover:none) { .conta-lupa { display:none } .conta-lupa-ctl__b { display:none } .conta-lupa-ctl > span { display:none } }
@media (min-width:1200px) { .conta-lupa { width:320px; height:320px } }

/* Color por estado (pedido de la dueña, 2026-10-12) */
.st-gris { --c:#8A94A6 } .st-verde { --c:#16A34A } .st-naranja { --c:#F97316 } .st-rojo { --c:#E11D2E }
.conta-mov[class*="st-"] { border:1px solid color-mix(in srgb, var(--c) 50%, var(--line)); border-left:8px solid var(--c); background:color-mix(in srgb, var(--c) 15%, var(--card)) }
.conta-mov[class*="st-"] select.campo { border:2px solid var(--c); background-color:color-mix(in srgb, var(--c) 22%, var(--card)); color:var(--ink); font-weight:600 }
.conta-mov.st-gris { background:color-mix(in srgb, var(--c) 12%, var(--card)) }
.conta-mov__chip { display:inline-block; padding:2px 10px; border-radius:999px; background:var(--c, var(--slate)); color:#fff; font-weight:600 }
.conta-mov.is-igual { box-shadow:0 0 0 3px var(--lime-deep) }
.conta-leyenda { display:flex; flex-wrap:wrap; gap:6px 14px; margin:0 0 8px; font-size:.82rem }
.conta-leyenda span { display:inline-flex; align-items:center; gap:6px }
.conta-leyenda span::before { content:""; width:14px; height:14px; border-radius:4px; background:var(--c) }

/* Análisis y consejos (2026-10-12) */
.an-tit { margin:4px 0 14px }
.an-migas { margin:0 0 6px }
.an-periodo, .ef-accesos { display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; margin:0 0 16px }
.an-periodo__tit { font-weight:700 }
.an-periodo label { display:inline-flex; gap:6px; align-items:center }
.an-periodo .campo { width:auto }
.an .ef-chip { padding:5px 12px; border:1px solid var(--line); border-radius:999px; color:var(--ink); text-decoration:none }
.an .ef-chip:hover { border-color:var(--lime-deep) }
.an .ef-chip.is-on { background:var(--ink); color:var(--card); border-color:var(--ink); font-weight:700 }
.an-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin:0 0 16px }
.an-kpi { padding:16px 18px; border-radius:14px; background:var(--card); border:1px solid var(--line); border-top:5px solid #8A94A6 }
.an-kpi small { display:block; color:var(--slate); font-size:.85rem }
.an-kpi b { font-size:1.5rem }
.an-kpi--ing { border-top-color:#16A34A } .an-kpi--gas { border-top-color:#F97316 } .an-kpi--ok { border-top-color:#16A34A; background:color-mix(in srgb,#16A34A 8%,var(--card)) } .an-kpi--mal { border-top-color:#E11D2E; background:color-mix(in srgb,#E11D2E 8%,var(--card)) }
.an-dos { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:16px; margin:0 0 16px }
.an-barra { display:grid; grid-template-columns:minmax(110px,30%) 1fr auto; gap:10px; align-items:center; margin:7px 0 }
.an-barra__nom { font-weight:600; font-size:.92rem }
.an-barra__pista { height:14px; background:color-mix(in srgb,var(--line) 60%,transparent); border-radius:999px; overflow:hidden }
.an-barra__pista span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#F97316,#E11D2E) }
.an-barra__val { font-variant-numeric:tabular-nums; white-space:nowrap; font-weight:600 }
.an-barra__val small { color:var(--slate); font-weight:400 }
.an-barra__val em { font-style:normal; font-size:.8rem; margin-left:4px; padding:1px 6px; border-radius:999px }
.an-barra__val em.sube { background:#FDE2E2; color:#B91C1C } .an-barra__val em.baja { background:#DCFCE7; color:#15803D }
.an-tabla { width:100%; border-collapse:collapse }
.an-tabla td { padding:7px 4px; border-bottom:1px solid var(--line) }
.an-tabla td small { display:block; color:var(--slate); font-size:.8rem }
.an-tabla .num { text-align:right; font-variant-numeric:tabular-nums; font-weight:600 }
.an-meses { display:flex; align-items:flex-end; gap:6px; height:120px; margin-top:8px }
.an-mes { flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100% }
.an-mes span { width:100%; max-width:34px; background:#F97316; border-radius:6px 6px 0 0 }
.an-mes small { font-size:.72rem; color:var(--slate); margin-top:4px }
.an-w0 { width:0% } .an-h0 { height:0% }
.an-w5 { width:5% } .an-h5 { height:5% }
.an-w10 { width:10% } .an-h10 { height:10% }
.an-w15 { width:15% } .an-h15 { height:15% }
.an-w20 { width:20% } .an-h20 { height:20% }
.an-w25 { width:25% } .an-h25 { height:25% }
.an-w30 { width:30% } .an-h30 { height:30% }
.an-w35 { width:35% } .an-h35 { height:35% }
.an-w40 { width:40% } .an-h40 { height:40% }
.an-w45 { width:45% } .an-h45 { height:45% }
.an-w50 { width:50% } .an-h50 { height:50% }
.an-w55 { width:55% } .an-h55 { height:55% }
.an-w60 { width:60% } .an-h60 { height:60% }
.an-w65 { width:65% } .an-h65 { height:65% }
.an-w70 { width:70% } .an-h70 { height:70% }
.an-w75 { width:75% } .an-h75 { height:75% }
.an-w80 { width:80% } .an-h80 { height:80% }
.an-w85 { width:85% } .an-h85 { height:85% }
.an-w90 { width:90% } .an-h90 { height:90% }
.an-w95 { width:95% } .an-h95 { height:95% }
.an-w100 { width:100% } .an-h100 { height:100% }
.an-tipo { margin:18px 0 8px; padding:6px 12px; border-radius:10px; font-size:1rem }
.an-tipo--ahorro { background:color-mix(in srgb,#F97316 14%,var(--card)) } .an-tipo--impuestos { background:color-mix(in srgb,#2563EB 14%,var(--card)) } .an-tipo--orden { background:color-mix(in srgb,#8A94A6 18%,var(--card)) }
.an-consejo { display:grid; gap:6px; padding:12px 14px; margin:0 0 10px; border:1px solid var(--line); border-left:6px solid #8A94A6; border-radius:12px; background:var(--card) }
.an-consejo--ahorro { border-left-color:#F97316 } .an-consejo--impuestos { border-left-color:#2563EB } .an-consejo--orden { border-left-color:#8A94A6 }
.an-consejo__usar { font-weight:600; font-size:.9rem }
.an-consejo__tit { font-weight:700 }
.an-consejo:has(input[type=checkbox]:not(:checked)) { opacity:.55 }
.an-nota { display:grid; gap:6px; margin:14px 0; font-weight:600 }
.an-acciones { display:flex; flex-wrap:wrap; gap:10px }
/* Accesos a P&L, Balance y Análisis en la lista de contabilidad */
.ef-acceso { display:flex; gap:12px; align-items:center; flex:1 1 220px; padding:14px 16px; border-radius:14px; border:1px solid var(--line); background:var(--card); color:var(--ink); text-decoration:none; transition:transform .12s, box-shadow .12s }
.ef-acceso:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(14,19,16,.12) }
.ef-acceso b { display:block } .ef-acceso small { color:var(--slate); font-size:.82rem }
.ef-acceso__ico { font-size:1.6rem; width:46px; height:46px; display:grid; place-items:center; border-radius:12px; flex:none }
.ef-acceso--pl { border-top:4px solid #16A34A } .ef-acceso--pl .ef-acceso__ico { background:color-mix(in srgb,#16A34A 15%,var(--card)) }
.ef-acceso--bs { border-top:4px solid #2563EB } .ef-acceso--bs .ef-acceso__ico { background:color-mix(in srgb,#2563EB 15%,var(--card)) }
.ef-acceso--an { border-top:4px solid #F59E0B } .ef-acceso--an .ef-acceso__ico { background:color-mix(in srgb,#F59E0B 18%,var(--card)) }
/* Reabrir junto al movimiento */
.conta-reabrir { display:flex; flex-wrap:wrap; gap:8px; margin-left:auto }
.conta-reabrir form { margin:0 }
.conta-reabrir__pista { margin:6px 0 0 }
.conta-mov__reabrir { margin-left:8px; padding:3px 10px; border:1px solid var(--c, var(--line)); border-radius:999px; background:var(--card); color:var(--ink); font:600 .8rem inherit; cursor:pointer }
.conta-mov__reabrir:hover { background:color-mix(in srgb, var(--c, #F97316) 20%, var(--card)) }
.conta-mov:target { outline:3px solid #F97316; outline-offset:2px }
/* Consejos en el portal del cliente */
.cons-item { padding:12px 14px; margin:0 0 10px; border-radius:12px; border-left:6px solid #8A94A6; background:color-mix(in srgb,#8A94A6 8%,var(--card)) }
.cons-item--ahorro { border-left-color:#F97316; background:color-mix(in srgb,#F97316 8%,var(--card)) }
.cons-item--impuestos { border-left-color:#2563EB; background:color-mix(in srgb,#2563EB 8%,var(--card)) }
.cons-item h3 { margin:0 0 4px; font-size:1rem }
.cons-item p { margin:0 }

/* Referencia al estado de cuenta desde Conciliar/Coincidencias */
.conta-ref { text-align:right; white-space:nowrap }
.conta-ref__btn { display:inline-block; padding:4px 10px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--ink); font-size:.82rem; font-weight:600; text-decoration:none }
.conta-ref__btn:hover { border-color:#2563EB; background:color-mix(in srgb,#2563EB 12%,var(--card)) }

.conta-volver { position:sticky; top:10px; z-index:20; display:inline-flex; align-items:center; gap:6px; margin:0 0 12px; padding:10px 18px; border-radius:999px; background:#2563EB; color:#fff; font-weight:700; text-decoration:none; box-shadow:0 4px 14px rgba(37,99,235,.35) }
.conta-volver:hover { background:#1D4ED8; color:#fff }
.conciliar__tarjeta:target, .conta-similares:target { outline:3px solid #2563EB; outline-offset:3px }

/* Reabrir tocando la categoría y botones flotantes (2026-10-12) */
.conta-mov__chip--btn { border:0; cursor:pointer; font:inherit; font-weight:600 }
.conta-mov__chip--btn span { opacity:.75; margin-left:2px }
.conta-mov__chip--btn:hover, .conta-mov__chip--btn:focus-visible { filter:brightness(1.12); box-shadow:0 0 0 3px color-mix(in srgb, var(--c, #F97316) 35%, transparent) }
.conta-flota { position:fixed; right:20px; bottom:20px; z-index:40; display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:10px 12px; border-radius:16px; background:var(--card); border:1px solid var(--line); box-shadow:0 10px 30px rgba(14,19,16,.22) }
.conta-flota[hidden] { display:none }
.conta-flota__txt { font-weight:700; color:var(--slate); padding:0 4px }

/* Revisar por categoría (2026-10-12) */
.cat-anios { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px }
.cat-anios .ef-chip { padding:5px 12px; border:1px solid var(--line); border-radius:999px; color:var(--ink); text-decoration:none }
.cat-anios .ef-chip.is-on { background:var(--ink); color:var(--card); border-color:var(--ink); font-weight:700 }
.cat-rejilla { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; margin:0 0 18px }
.cat-ficha { display:grid; gap:2px; padding:12px 14px; border:1px solid var(--line); border-left:6px solid #8A94A6; border-radius:12px; background:var(--card); color:var(--ink); text-decoration:none; transition:transform .12s, box-shadow .12s }
.cat-ficha:hover { transform:translateY(-2px); box-shadow:0 6px 16px rgba(14,19,16,.12) }
.cat-ficha span { color:var(--slate); font-size:.85rem; font-variant-numeric:tabular-nums }
.cat-ficha--ingreso { border-left-color:#16A34A } .cat-ficha--gasto { border-left-color:#F97316 } .cat-ficha--falta { border-left-color:#E11D2E }
.cat-ficha.is-on { outline:3px solid #2563EB; outline-offset:1px; background:color-mix(in srgb,#2563EB 8%,var(--card)) }
.cat-mover { position:sticky; top:0; z-index:5; display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:10px 0; margin:0 0 6px; background:var(--card) }
.cat-mover .campo { width:auto; min-width:260px }
.cat-rev { color:#15803D; font-weight:600 }

/* Meses que tiene cada cuenta (2026-10-12) */
.conta-mcu { margin:6px 0 10px; border:1px solid var(--line); border-radius:12px; padding:8px 12px; background:var(--card) }
.conta-mcu summary { cursor:pointer; font-weight:700 }
.conta-mcu__anio { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:10px 0; padding-top:10px; border-top:1px dashed var(--line) }
.conta-mcu__a { min-width:3.2em }
.conta-mcu__rej { display:grid; grid-template-columns:repeat(12, minmax(46px,1fr)); gap:4px; flex:1 1 560px }
.conta-mcu__m { display:grid; justify-items:center; gap:2px; padding:5px 2px; border-radius:8px; border:1px solid var(--line); font-size:.78rem; cursor:pointer; text-transform:capitalize }
.conta-mcu__m.is-tiene, .conta-mcu__ley .is-tiene { background:#DCFCE7; border-color:#86EFAC; color:#166534 }
.conta-mcu__m.is-falta, .conta-mcu__ley .is-falta { background:#FFF6DA; border-color:#F0DC9C; color:#8A5A00 }
.conta-mcu__m.is-no, .conta-mcu__ley .is-no { background:#F1F5F9; border-color:#CBD5E1; color:#64748B }
.conta-mcu__m.is-futuro { opacity:.45; cursor:default }
.conta-mcu__m.is-falta:has(input:not(:checked)) { background:#F1F5F9; color:#64748B; border-color:#CBD5E1 }
.conta-mcu__m.is-no:has(input:checked) { background:#FFF6DA; color:#8A5A00; border-color:#F0DC9C }
.conta-mcu__ley span { display:inline-block; padding:1px 8px; border-radius:999px; border:1px solid; margin-right:4px; font-size:.78rem }
@media (max-width:700px) { .conta-mcu__rej { grid-template-columns:repeat(6,1fr) } }

.conta-faltan { margin:10px 0 12px; padding:10px 14px; border:1px solid #F0DC9C; border-left:6px solid #E8A400; border-radius:10px; background:#FFF9E6 }
.conta-faltan h3 { margin:0 0 6px; font-size:1rem }
.conta-faltan p { margin:3px 0 }

/* Inicio de la compañía y subir estados desde el despacho (2026-10-12) */
.conta-alta { display:grid; gap:10px; margin:10px 0 14px; padding:12px 14px; border:1px dashed var(--line); border-radius:12px; scroll-margin-top:90px }
.conta-alta:target { outline:3px solid #2563EB; outline-offset:2px }
.conta-alta form { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 }
.conta-alta label { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-weight:700 }
.conta-alta .campo { width:auto }
.conta-alta__subir .campo[name=quees] { min-width:260px; flex:1 1 260px }
.conta-alta .pista { flex-basis:100%; margin:0 }
.conta-alta--gen summary { cursor:pointer } .conta-alta--gen[open] summary { margin-bottom:10px }
.conta-inicio { margin:0 0 16px; padding:12px 14px; border:1px solid rgba(96,165,250,.45); border-left:6px solid #3B82F6; border-radius:10px; background:rgba(59,130,246,.12); color:inherit }
.conta-inicio__p { margin:0 0 8px }
.conta-inicio__op { display:flex; flex-wrap:wrap; gap:8px; align-items:center }
.conta-inicio__op .campo { width:auto }
#subir-doc { scroll-margin-top:90px; margin-bottom:6px } #subir-doc:target { outline:3px solid #2563EB; outline-offset:6px; border-radius:6px }
#subir-general { scroll-margin-top:90px }
/* Una compañía a la vez (2026-10-12) */
.conta-elige { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin:14px 0 18px }
.conta-elige__op { display:flex; flex-direction:column; gap:6px; text-decoration:none; color:inherit; border-left:6px solid var(--line) }
.conta-elige__op:hover { box-shadow:0 4px 18px rgba(0,0,0,.12) }
.conta-elige__op.conta-tit--empresa { border-left-color:#4D7C0F } .conta-elige__op b { font-size:1.2rem }
.conta-elige__op .btn { align-self:flex-start; margin-top:6px }
.conta-solo { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; padding:10px 14px; border:2px solid #4D7C0F; border-radius:12px; background:rgba(77,124,15,.08) }
.conta-repes { margin:10px 0 14px; padding:12px 14px; border:1px solid #FCA5A5; border-left:6px solid #DC2626; border-radius:10px; background:rgba(220,38,38,.07) }
.conta-repes ul { margin:6px 0; padding-left:20px } .conta-borra { display:inline; margin:6px 0 0 } .conta-mes .conta-borra { display:block; margin:4px 0 6px 28px }
.conta-solo > span { flex:1 1 300px }
.conta-borra .btn--peligro { width:auto } .btn--chico { padding:5px 12px; font-size:.82rem; min-height:0 }
.conta-cia { border-left:6px solid var(--line) } .conta-cia--empresa { border-left-color:#4D7C0F }
.conta-cia__tipo { margin:0 0 2px; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; opacity:.7 }
.serv-de { display:inline-block; margin:2px 0; padding:2px 10px; border-radius:999px; font-size:.78rem; font-weight:600; background:rgba(77,124,15,.14); border:1px solid rgba(77,124,15,.45) }
.conta-juntas { border:2px dashed #7C3AED; margin-bottom:16px } .conta-juntas__f { display:flex; gap:10px; align-items:end; flex-wrap:wrap }
.conta-lupa__marca { position:absolute; display:block; background:rgba(201, 242, 75, .45); box-shadow:inset 0 0 0 3px var(--lime-deep); mix-blend-mode:multiply; pointer-events:none }
.conta-lupa__marca[hidden] { display:none }

/* 1099-NEC: personas, unir y montos (despacho/clientes/contratistas.php) */
.c1099-scroll { overflow-x:auto }
.c1099-tabla th { text-align:left; font-size:.8rem; font-weight:600; padding:6px 4px; color:var(--slate) }
.c1099-tabla th.num { text-align:right }
.c1099-tabla td { vertical-align:top }
.c1099-tabla .campo { width:100%; min-width:9rem }

/* cabecera: título + año y compañía */
.c1099-cab { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:14px 24px; margin-bottom:18px }
.c1099-cab h1 { font-size:clamp(1.6rem,3.4vw,2.2rem); overflow-wrap:anywhere }
.c1099-elige { display:grid; grid-template-columns:auto 1fr; gap:6px 10px; align-items:center }
.c1099-elige__t { font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate) }
.c1099-chips { display:flex; flex-wrap:wrap; gap:6px }
.c1099-chip { display:inline-block; padding:5px 12px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--ink); font-size:.86rem; text-decoration:none; line-height:1.3 }
.c1099-chip:hover { border-color:var(--ink) }
.c1099-chip[aria-current] { background:var(--ink); border-color:var(--ink); color:#fff; font-weight:600 }

/* los 3 pasos y qué toca ahora */
.c1099-pasos { background:var(--ink); color:#fff; border-radius:14px; padding:18px 20px; margin-bottom:16px }
.c1099-pasos__lista { list-style:none; margin:0 0 14px; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; counter-reset:none }
.c1099-paso { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:10px; background:#1A211C; color:#9AA39C; font-size:.9rem; line-height:1.25 }
.c1099-paso__n { flex:none; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1.5px solid #3A443D; font-family:var(--f-mono); font-size:.8rem }
.c1099-paso--actual { background:#2A332D; color:#fff; font-weight:600; box-shadow:inset 0 0 0 1.5px var(--lime) }
.c1099-paso--actual .c1099-paso__n { background:var(--lime); border-color:var(--lime); color:var(--ink) }
.c1099-paso--hecho { color:#DADDD9 }
.c1099-paso--hecho .c1099-paso__n { background:#3D4F14; border-color:#3D4F14; color:var(--lime) }
.c1099-ahora { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px }
.c1099-ahora p { flex:1 1 320px; color:#DADDD9; font-size:.98rem; line-height:1.5 }
.c1099-ahora b { color:var(--lime) }
.c1099-ahora .btn { flex:none }
.c1099-ahora .btn--linea { color:#fff; border-color:#5B635E }
.c1099-ahora .btn--linea:hover { border-color:#fff }

/* resumen */
.c1099-kpis { grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:10px; margin-bottom:16px }
.c1099-kpis .kpi { padding:12px 14px }
.c1099-kpis .kpi__n { font-size:1.45rem; overflow-wrap:anywhere }
.c1099-kpis .c1099-kpi-txt { font-size:1.05rem; line-height:1.25; padding-top:4px }

/* ¿misma persona? */
.c1099-parecidos { background:#FBFEF0; border:1px solid #CFE398; border-left:6px solid var(--lime); border-radius:12px; padding:14px 18px; margin-bottom:16px }
.c1099-parecidos h2 { font-size:1.1rem }
.c1099-parecidos .pista { margin-top:4px }
.c1099-sugerencia { padding:12px 0 2px; border-top:1px solid #E4EDC6; margin-top:10px }
.c1099-sugerencia__nombres { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:10px }
.c1099-nombrecito { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:3px 9px; font-size:.88rem }
.c1099-mas { color:var(--slate); font-weight:700 }
.c1099-sugerencia__fila { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px 10px }
.c1099-sugerencia__fila label { flex:1 1 220px; display:grid; gap:4px; font-size:.85rem; color:var(--slate) }

/* lista de personas */
.c1099-sec { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px }
.c1099-sec__pista { margin:0 }
.c1099-cuantos { display:inline-block; min-width:1.6em; padding:1px 7px; margin-left:4px; border-radius:999px; background:var(--tint); font-family:var(--f-mono); font-size:.8rem; vertical-align:middle; text-align:center; letter-spacing:0 }
.c1099-buscar { max-width:260px; padding-block:8px }
.c1099-lista { list-style:none; margin:12px 0 0; padding:0; border-top:1px solid var(--line) }
.c1099-p { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:start; border-bottom:1px solid var(--line) }
.c1099-p__unir { display:grid; place-items:center; height:52px; cursor:pointer }
.c1099-p__det > summary { list-style:none; cursor:pointer }
.c1099-p__det > summary::-webkit-details-marker { display:none }
.c1099-p__fila { display:grid; grid-template-columns:minmax(0,1fr) 7.5rem 17.5rem 4.2rem; align-items:center; gap:6px 14px; padding:10px 6px 10px 2px; border-radius:8px }
.c1099-p__fila:hover { background:#F1F2EE }
.c1099-p__nombre { min-width:0; line-height:1.3; overflow-wrap:anywhere }
.c1099-p__sub { display:block; font-size:.78rem; color:var(--dim); margin-top:2px }
.c1099-p__monto { font-family:var(--f-mono); font-size:.92rem; white-space:nowrap; text-align:right }
.c1099-p__marcas { display:flex; flex-wrap:wrap; gap:4px; justify-content:flex-start }
.c1099-ok { display:inline-block; padding:2px 8px; border-radius:6px; font-size:.74rem; white-space:nowrap; border:1px solid var(--line) }
.c1099-ok--si { background:#F1F8DC; border-color:#CFE398; color:#3D4F14 }
.c1099-ok--no { background:var(--tint); color:var(--slate) }
.c1099-ok--falta { background:#FBEAEA; border-color:#E3BDBD; color:#7A2222 }
.c1099-p__editar { font-size:.8rem; color:var(--lime-deep); font-weight:600; white-space:nowrap; text-align:right }
.c1099-p__editar::after { content:" ▾" }
.c1099-p__det[open] .c1099-p__editar::after { content:" ▴" }
.c1099-p__det[open] > summary { background:#F1F2EE }
.c1099-p--no .c1099-p__nombre b, .c1099-p--no .c1099-p__monto { color:var(--slate) }
.c1099-p__form { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:10px 14px; padding:10px 6px 16px 2px }
.c1099-p__form > label { display:grid; gap:4px; font-size:.85rem; color:var(--slate); align-content:start }
.c1099-p__form .pista { margin-top:0; font-size:.76rem }
.c1099-p__form .c1099-p__quitar { display:flex; align-items:center; gap:8px; color:var(--ink); align-self:end; padding-bottom:10px }
.c1099-p__form .c1099-pagos, .c1099-p__form .c1099-p__acc { grid-column:1 / -1 }
.c1099-pagos { font-size:.84rem }
.c1099-pagos summary { cursor:pointer; color:var(--lime-deep) }
.c1099-pagos ul { margin:6px 0 0; padding-left:1.1rem }
.c1099-pagos li .pista { margin:0 }
.c1099-p__acc { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:6px }
.c1099-p__acc .pista { margin:0; flex:1 1 260px }
.c1099-monto { text-align:right }
.c1099-unir { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin-top:12px; padding:10px 12px; border-radius:10px; background:var(--paper) }
.c1099-unir__t { flex:1 1 100%; font-size:.84rem; color:var(--slate) }
.c1099-unir .campo { flex:1 1 220px; padding-block:8px }
.c1099-nada { margin-top:10px }

/* cobro y generación */
.c1099-cobros { list-style:none; margin:12px 0 0; padding:0; border-top:1px solid var(--line) }
.c1099-cobro { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 14px; padding:10px 2px; border-bottom:1px solid var(--line) }
.c1099-cobro__nombre { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; min-width:0; overflow-wrap:anywhere }
.c1099-cobro__estado { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; justify-content:flex-end }
.c1099-cobro__estado .pista { margin:0 }
.c1099-marcar { display:flex; align-items:center; gap:6px; font-size:.9rem }
.c1099-btn-chico { padding:7px 14px; font-size:.86rem }
.c1099-revisar { max-width:none; background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin:14px 0 }
.c1099-rejilla { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px 14px; margin-top:10px }
.c1099-rejilla > label { display:grid; gap:4px; font-size:.86rem; align-content:start }
.c1099-rejilla .pista { margin-top:0 }
.c1099-ancho { grid-column:1 / -1 }
.c1099-dos { display:grid; grid-template-columns:5rem 1fr; gap:10px }
.c1099-dos label { display:grid; gap:4px; font-size:.86rem }
.c1099-tipo { border:0; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; font-size:.9rem }
.c1099-tipo legend { font-size:.86rem; padding:0; margin-bottom:4px; width:100% }
.c1099-revisar .c1099-checks { display:grid; gap:8px; margin:14px 0 4px }
.c1099-revisar .c1099-checks label, .c1099-tipo label, .c1099-p__quitar, .c1099-marcar { display:flex; flex-direction:row; align-items:center; gap:8px; margin:0 }
.c1099-revisar .c1099-checks input, .c1099-tipo input, .c1099-p__quitar input, .c1099-marcar input { width:auto; margin:0 }
.c1099-w9elige { display:flex; flex-wrap:wrap; align-items:center; gap:6px }

/* más opciones */
.c1099-mas-op { margin-top:22px }
.c1099-mas-op__t { font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-bottom:8px }
.c1099-plegable { padding-block:12px; margin-bottom:10px }
.c1099-plegable > summary { cursor:pointer; font-weight:600 }
.c1099-plegable[open] > summary { margin-bottom:8px }
.c1099-enlaces { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px }

@media (max-width:640px) {
  .c1099-pasos { padding:14px }
  .c1099-pasos__lista { gap:6px }
  .c1099-paso { flex-direction:column; text-align:center; gap:4px; padding:8px 4px; font-size:.74rem }
  .c1099-ahora .btn { width:100% }
  .c1099-kpis { grid-template-columns:1fr 1fr }
  .c1099-kpis .kpi:last-child { grid-column:1 / -1 }
  .c1099-p__fila { grid-template-columns:minmax(0,1fr) auto; gap:4px 10px }
  .c1099-p__marcas { grid-column:1; justify-content:flex-start }
  .c1099-p__editar { grid-column:2; text-align:right }
  .c1099-buscar { max-width:none; flex:1 1 100% }
  .c1099-cobro__estado { justify-content:flex-start }
}


/* Tablero por compañía / personal / familiar (despacho/clientes/titular.php, 2026-10-13) */
.tit-tablero { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-top:10px }
.tit-tablero__op { display:flex; flex-direction:column; gap:4px; padding:14px 16px; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:var(--r); background:var(--card); color:inherit; text-decoration:none }
.tit-tablero__op:hover, .tit-tablero__op:focus-visible { border-color:var(--lime-deep) }
.tit-tablero__op b { font-size:1.05rem; overflow-wrap:anywhere }
.tit-tablero__ir { margin-top:auto; font-weight:600; color:var(--lime-deep) }
.tit-tab--empresa { border-left-color:var(--lime-deep) }
.tit-tab--familia { border-left-color:var(--slate) }
.tit-tab__tipo { font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate) }
.tit-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 18px }
.tit-tab { display:flex; flex-direction:column; padding:8px 12px; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:var(--r); background:var(--card); color:inherit; text-decoration:none; font-weight:600 }
.tit-tab.tit-tab--empresa { border-left-color:var(--lime-deep) }
.tit-tab.tit-tab--familia { border-left-color:var(--slate) }
.tit-tab--activa { background:var(--ink); color:var(--paper); border-color:var(--ink) }
.tit-tab--activa .tit-tab__tipo { color:var(--lime) }
.tit-datos { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:0 0 14px }
.tit-datos dt { font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate) }
.tit-datos dd { margin:2px 0 0; font-weight:600; overflow-wrap:anywhere }
.tit-inline { display:inline-block; margin:0 8px 8px 0 }
.tit-editar { margin-top:8px }
.tit-editar > summary { list-style:none; cursor:pointer; display:inline-block; width:auto }
.tit-editar > summary::-webkit-details-marker { display:none }
.tit-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px 14px; align-items:end; margin-top:12px }
.tit-form .pista { grid-column:1 / -1; margin:0 }
.tit-form .casilla-linea, .tit-masivo .casilla-linea { display:flex; gap:8px; align-items:center }
.tit-form--fila { grid-template-columns:minmax(220px,1fr) auto }
.tit-serv { display:flex; flex-wrap:wrap; gap:10px; align-items:center }
.tit-serv__info { flex:1 1 240px; min-width:0 }
.tit-subir { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px 14px; align-items:end; margin-top:12px }
.doc-sec { margin-top:12px; border-top:1px solid var(--line); padding-top:10px }
.doc-sec > summary { cursor:pointer }
.tit-doc { display:flex; gap:10px; align-items:flex-start }
.tit-doc__marca { padding-top:3px }
.tit-doc__marca input { width:18px; height:18px }
.tit-doc__info { min-width:0; flex:1 }
.tit-doc__info a { overflow-wrap:anywhere }
.tit-masivo { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end; margin-top:16px; padding:12px 14px; background:var(--tint); border-radius:var(--r) }
.tit-peligro { border-color:#E3BDBD }
@media (max-width:560px) { .tit-form--fila { grid-template-columns:1fr } .tit-masivo > * { flex:1 1 100% } }
/* Avance de documentos en la ficha (guía, no bloquea) */
.avance-docs { margin:10px 0 4px; padding:10px 14px; border:1px solid var(--line); border-left:4px solid var(--slate); border-radius:var(--r); background:var(--card) }
.avance-docs--bien { border-left-color:var(--lime-deep) }
.avance-docs p { margin:0 0 6px }
.avance-docs__barra { display:block; width:100%; height:8px; appearance:none; -webkit-appearance:none; border:0; border-radius:4px; background:var(--tint); overflow:hidden }
.avance-docs__barra::-webkit-progress-bar { background:var(--tint); border-radius:4px }
.avance-docs__barra::-webkit-progress-value { background:var(--slate); border-radius:4px }
.avance-docs--bien .avance-docs__barra::-webkit-progress-value { background:var(--lime-deep) }
.avance-docs__barra::-moz-progress-bar { background:var(--lime-deep) }
.avance-docs details { margin-top:6px }
.avance-docs ul { margin:6px 0 0; padding-left:20px; columns:2 220px }

/* Documentos: tipo, Ver y Bajar (v51) */
.doc-tipo { display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:1px 6px; border-radius:4px; background:var(--crema,#F3EEE4); color:var(--tinta,#2b2b2b); vertical-align:1px; margin-right:2px }
.doc-tipo--pdf { background:#FBE7E4; color:#8B2A2A }
.doc-tipo--foto { background:#E5F0F8; color:#1f4e6e }
.doc-tipo--excel { background:#E4F3E8; color:#1e5c33 }
.doc-tipo--word { background:#E6EAF8; color:#283f8a }
.doc-enlace { overflow-wrap:anywhere; word-break:break-word }
.doc-botones { display:inline-flex; gap:6px; margin-left:6px; white-space:nowrap; vertical-align:middle }
.doc-boton { font-size:.78rem; padding:2px 9px; border:1px solid var(--borde,#d8d2c6); border-radius:999px; text-decoration:none }
.doc-boton:hover { background:var(--crema,#F3EEE4) }
.docs li, .doc-orden li { min-width:0 }
.tit-borrar { margin-top:14px; padding-top:12px; border-top:1px dashed var(--borde,#d8d2c6) }
.tit-borrar .btn--peligro { width:auto }
.serv-cambiar { margin:6px 0 0; font-size:.85rem }

/* «Por confirmar el mes»: nombre del archivo + aviso en dos columnas
   anchas (antes caían en la columna de 4em de la tabla de meses). */
.conta-confirmar .conta-mes a { display:grid; grid-template-columns:11px minmax(0,1fr) minmax(0,1.6fr); gap:6px 14px; align-items:start }
.conta-confirmar .conta-mes__mes { white-space:normal; overflow-wrap:anywhere }
.conta-confirmar .conta-mes__dato { grid-column:auto; line-height:1.45 }
.conta-confirmar .conta-mes .luz { margin-top:6px }
@media (max-width: 700px) {
  .conta-confirmar .conta-mes a { grid-template-columns:11px minmax(0,1fr) }
  .conta-confirmar .conta-mes__dato { grid-column:2 }
}

/* Facturación › Nueva factura: servicios por cobrar del cliente (factura rápida) */
.fr { margin-bottom:24px }
.fr__titulo { margin-bottom:6px }
.fr__pista { margin-bottom:14px; max-width:72ch }
.fr__sub { margin:16px 0 6px }
.fr-cliente__fila { display:flex; gap:8px; align-items:stretch }
.fr-cliente__fila select.campo { flex:1 1 auto; min-width:0; width:100%; appearance:auto }
.fr-cliente__ver { width:auto; flex:0 0 auto; padding:8px 14px; font-size:.84rem }
.js-fr .fr-cliente__ver { display:none }
.fr-lista { list-style:none; margin:0; padding:0; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--card) }
.fr-serv { display:flex; align-items:center; gap:10px; padding:9px 12px; border-top:1px solid var(--line) }
.fr-serv:first-child { border-top:0 }
.fr-serv__caja { display:flex; align-items:center; gap:10px; flex:1 1 auto; min-width:0; cursor:pointer }
.fr-serv__caja input { width:18px; height:18px; flex:0 0 auto; accent-color:var(--lime-deep) }
.fr-serv__txt { display:flex; flex-direction:column; min-width:0 }
.fr-serv__nombre { font-weight:600; font-size:.92rem; overflow-wrap:anywhere }
.fr-serv__meta { font-family:var(--f-mono); font-size:.72rem; color:var(--dim); overflow-wrap:anywhere }
.fr-serv__precio { display:flex; align-items:center; gap:4px; flex:0 0 auto }
.fr-serv__signo { font-family:var(--f-mono); font-size:.85rem; color:var(--dim) }
.fr-serv__precio .campo { width:96px; padding:7px 8px; text-align:right; font-family:var(--f-mono); font-size:.9rem }
.fr-serv--fuera .fr-serv__txt, .fr-serv--fuera .fr-serv__precio { opacity:.45 }
/* Servicio marcado sin precio (vacío, 0.00 o ilegible): lo marca facturar.js y, sin JS, el servidor al rechazar. */
.fr-serv__precio .campo[aria-invalid="true"] { border-color:var(--rojo); box-shadow:0 0 0 2px rgba(170,51,51,.18); background:#fff6f5 }
.fr-serv__precio .campo[aria-invalid="true"]::placeholder { color:var(--rojo); opacity:.75 }
.fr-total { display:flex; justify-content:space-between; align-items:baseline; padding:10px 12px 0; font-size:.9rem }
.fr-total strong { font-family:var(--f-display); font-size:1.35rem; font-weight:700 }
.fr-detalle { margin:10px 0 0 }
.fr-detalle summary, .fr-abiertos summary, .fr-libre summary { cursor:pointer; font-size:.86rem; font-weight:600; color:var(--lime-deep); padding:6px 0 }
.fr-detalle textarea { margin-top:6px }
.fr-boton { width:100%; margin-top:12px }
.fr-boton[disabled] { opacity:.5; cursor:not-allowed }
.fr-vacio { margin:14px 0 4px; padding:12px 14px; border:1px dashed var(--line); border-radius:var(--r); font-size:.9rem; color:var(--dim) }
.fr-abiertos { margin-top:12px }
.fr-abiertos ul { margin:4px 0 0; padding-left:18px; font-size:.86rem }
.fr-abiertos li { margin:3px 0; overflow-wrap:anywhere }
.fr-abiertos__num { font-family:var(--f-mono); font-size:.72rem; color:var(--dim) }
.fr-libre { margin-top:16px; border-top:1px solid var(--line); padding-top:8px }
.fr-libre > form { margin-top:10px }
.fr-libre .rejilla { display:grid; grid-template-columns:2fr 1fr 1fr; gap:14px }
.fr-libre .rejilla--dos { grid-template-columns:1fr 1fr }
.fr-libre select.campo { width:100%; appearance:auto }
@media (max-width:640px) {
  .fr-libre .rejilla, .fr-libre .rejilla--dos { grid-template-columns:1fr }
  .fr-serv { padding:9px 10px; gap:8px }
  .fr-serv__precio .campo { width:84px }
}

/* ---------- ficha completa del cliente: cabecera, indicadores y pestañas ---------- */
.fx-cab { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px 14px; margin-bottom:12px }
.fx-cab__fila { display:flex; gap:14px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap }
.fx-cab__quien { min-width:0; flex:1 1 320px }
.fx-cab__quien h1 { font-size:clamp(1.35rem,2.4vw,1.75rem); line-height:1.15; margin:0 0 6px }
.fx-cab__meta { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; margin:0; font-size:.82rem; color:var(--slate) }
.fx-cab__cias { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 0 }
.fx-chip { display:inline-flex; align-items:center; gap:4px; font-size:.75rem; font-weight:600; line-height:1.2; padding:4px 9px; border-radius:99px; border:1px solid var(--line); background:var(--paper); color:var(--ink); text-decoration:none; white-space:nowrap }
.fx-chip--bien { background:#F1F8DC; border-color:#CFE398; color:#3D4F14 }
.fx-chip--aviso { background:#FFF6DC; border-color:#F0D98A; color:#5A4600 }
.fx-chip--apagado { background:#2A332D; border-color:#2A332D; color:#F7F7F5 }
.fx-chip--cia:hover { border-color:var(--ink) }
.fx-cab__contacto { display:flex; flex-wrap:wrap; gap:6px; align-items:flex-start }
.fx-btn, .fx-rapidas .btn, .fx-rapidas button { padding:8px 13px; font-size:.84rem }
.fx-mas { position:relative }
.fx-mas > summary { list-style:none }
.fx-mas > summary::-webkit-details-marker { display:none }
.fx-mas__menu { position:absolute; right:0; top:calc(100% + 6px); z-index:20; background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:0 10px 30px rgba(14,19,16,.12); padding:10px; display:grid; gap:6px; min-width:220px }
.fx-mas__menu .btn { width:100%; padding:8px 12px; font-size:.84rem; justify-content:flex-start }
.fx-mas__dato { margin:0 0 4px; font-size:.78rem; color:var(--slate); word-break:break-all }
.fx-kpis { list-style:none; margin:14px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px }
.fx-kpis a { display:block; height:100%; padding:9px 12px; border:1px solid #DADDD9; border-radius:9px; background:var(--paper); color:var(--ink); text-decoration:none; transition:border-color .2s }
.fx-kpis a:hover { border-color:var(--ink) }
.fx-kpis b { display:block; font-family:var(--f-display); font-size:1.2rem; line-height:1.2 }
.fx-kpis span { display:block; font-size:.76rem; color:#5B635E; line-height:1.35 }
.fx-kpi--mal a { border-color:#E5484D; background:#FDF1F1 }
.fx-kpi--mal b { color:#B4282D }
.fx-kpi--aviso a { border-color:#F0D98A; background:#FFFBEE }
.fx-rapidas { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid #DADDD9 }
.fx-rapidas form { margin:0 }
.fx-tabs { position:sticky; top:0; z-index:15; display:flex; gap:2px; overflow-x:auto; scrollbar-width:none; background:var(--paper); border-bottom:1px solid #DADDD9; margin:0 0 14px; padding-top:4px }
.fx-tabs::-webkit-scrollbar { display:none }
.fx-tabs__a { flex:none; padding:10px 14px; font-size:.88rem; font-weight:600; color:#5B635E; text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap }
.fx-tabs__a:hover { color:var(--ink) }
.fx-tabs__a.is-actual { color:var(--ink); border-bottom-color:var(--lime) }
.fx-tabs__n { display:inline-block; min-width:20px; margin-left:4px; padding:0 6px; border-radius:99px; background:#DADDD9; color:var(--ink); font-size:.7rem; text-align:center }
.fx-tabs__a.is-actual .fx-tabs__n { background:var(--ink); color:var(--lime) }
.fx-panel > .tarjeta + .tarjeta, .fx-panel > * + .tarjeta { margin-top:12px }
.fx-panel .tarjeta { padding:clamp(16px,2.4vw,22px) }
.fx-atencion__lista { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px }
.fx-atencion__i a { display:block; padding:8px 12px; border-radius:8px; border-left:4px solid #F0D98A; background:#FFFBEE; color:var(--ink); text-decoration:none; font-size:.9rem }
.fx-atencion__i--mal a { border-left-color:#E5484D; background:#FDF1F1 }
.fx-atencion__i a:hover { text-decoration:underline }
.fx-atencion__ok { margin:6px 0 0; color:#3D4F14; font-weight:600 }
.fx-plegable { margin-top:12px; border:1px solid #DADDD9; border-radius:9px; background:var(--paper) }
.fx-plegable > summary { cursor:pointer; padding:10px 14px; font-weight:600; font-size:.92rem; list-style:none }
.fx-plegable > summary::-webkit-details-marker { display:none }
.fx-plegable > summary::after { content:"▾"; float:right; color:#5B635E }
.fx-plegable[open] > summary::after { content:"▴" }
.fx-plegable[open] { background:var(--card) }
.fx-plegable > :not(summary) { margin-left:14px; margin-right:14px }
.fx-plegable > form:last-child, .fx-plegable > :last-child { margin-bottom:14px }
.fx-tarjeta-plegable > summary { cursor:pointer; list-style:none; font-family:var(--f-display); font-size:1.15rem; font-weight:600 }
.fx-tarjeta-plegable > summary::-webkit-details-marker { display:none }
.fx-tarjeta-plegable > summary::after { content:"▾"; float:right; color:#5B635E }
.fx-tarjeta-plegable[open] > summary { margin-bottom:10px }
.fx-tarjeta-plegable[open] > summary::after { content:"▴" }
.fx-lista { margin-bottom:6px }
.fx-lista > .fila { padding-block:10px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 14px; align-items:start; border-bottom:1px solid #DADDD9 }
.fx-lista > .fila:last-child { border-bottom:0 }
.fx-lista > .fila h3 { margin:2px 0; font-size:1rem }
.fx-serv-estado { margin:4px 0 0; display:flex; flex-wrap:wrap; gap:4px 6px; align-items:center }
.fx-editar > summary { cursor:pointer; list-style:none; font-size:.8rem; font-weight:600; color:#5B635E; padding:6px 10px; border:1px solid #DADDD9; border-radius:8px; white-space:nowrap }
.fx-editar > summary::-webkit-details-marker { display:none }
.fx-editar > summary:hover { color:var(--ink); border-color:var(--ink) }
.fx-editar[open] { grid-column:1 / -1; padding:10px; border:1px solid #DADDD9; border-radius:10px; background:var(--paper) }
.fx-editar[open] > summary { display:inline-block; margin-bottom:8px }
.fx-editar--linea { display:inline-block; margin-left:6px; vertical-align:middle }
.fx-editar--linea[open] { display:block; margin:8px 0 0 }
.fx-form-fila { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 8px }
.fx-form-fila .campo { width:auto; flex:1 1 140px; padding:8px 10px; font-size:.86rem }
.fx-form-fila input[type=number] { flex:0 0 80px }
.fx-form-fila .btn { padding:8px 12px; font-size:.84rem; width:auto }
.fx-buscar { margin:4px 0 8px; padding:9px 12px; font-size:.9rem }
.fx-nota { margin:12px 0 0 }
@media (max-width:640px) {
  .fx-cab { padding:13px 12px 12px }
  .fx-cab__quien { flex-basis:100% }
  .fx-kpis { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .fx-cab__contacto { width:100%; flex-wrap:nowrap }
  .fx-cab__contacto > * { flex:1 1 0; min-width:0 }
  .fx-cab__contacto .btn, .fx-cab__contacto summary { padding:8px 4px; font-size:.8rem; text-align:center }
  .fx-cab__contacto .btn, .fx-rapidas .btn, .fx-rapidas button { width:auto }
  .fx-rapidas { display:grid; grid-template-columns:1fr 1fr; gap:6px }
  .fx-rapidas .btn, .fx-rapidas button { width:100%; padding:8px 6px; text-align:center; font-size:.8rem }
  .fx-kpis a { padding:8px 10px }
  .fx-kpis b { font-size:1.02rem }
  .fx-mas__menu { right:auto; left:0 }
}

/* Contabilidad: aviso «No hacemos contabilidades personales» */
.conta-sincomp { border-left:4px solid #b4442c; margin:0 0 18px }
.conta-sincomp p { margin:0 0 10px }
.conta-sincomp__f { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end }
.conta-sincomp__f label { display:flex; flex-direction:column; gap:4px; font-size:.85rem }
a.conta-pan__n { text-decoration:none }
a.conta-pan__n:hover { text-decoration:underline }

/* Tablero de compañía/personal: factura de cada servicio (2026-10-13) */
.tit-fact { flex-basis:100%; display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:6px }
.tit-fact__f { font-size:.85rem; background:var(--fondo-suave, #f5f3ee); border-radius:8px; padding:4px 9px }
.tit-fact__nueva > summary { list-style:none; cursor:pointer; padding:6px 12px; font-size:.82rem }
.tit-fact__nueva > summary::-webkit-details-marker { display:none }
.tit-fact__nueva[open] { flex-basis:100% }
.tit-form--serv { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:10px; align-items:end }

/* Ficha: cambiar el nombre del cliente desde la cabecera (2026-10-13) */
.cli-nombre { margin:2px 0 6px }
.cli-nombre__btn { display:inline-block; list-style:none; cursor:pointer; font-size:.8rem; color:var(--dim); text-decoration:underline; text-underline-offset:3px }
.cli-nombre__btn::-webkit-details-marker { display:none }
.cli-nombre__form { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; max-width:520px }
.cli-nombre__form .campo { flex:1 1 240px }

/* «¿Qué servicios necesitas?» al crear la cuenta (2026-10-16) */
.interes { border:0; padding:0; margin:16px 0 0; min-width:0 }
.interes legend { padding:0; margin-bottom:4px }
.interes__op { text-transform:none; letter-spacing:0 }
.interes__grupo { font-family:var(--f-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gris,#5B635E); margin:14px 0 6px }
.interes__lista { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:6px }
.interes__op-item { display:flex; gap:8px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:9px 11px; cursor:pointer; font-size:.92rem }
.interes__op-item:has(input:checked) { border-color:var(--texto,#0E1310) }
.interes__op-item input { margin:0; flex:none }
.pc-oferta--interes { border-color:var(--texto,#0E1310) }
.pc-oferta__marca { font-family:var(--f-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gris,#5B635E) }
.pc-catalogo__grupo { grid-column:1 / -1; font-family:var(--f-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gris,#5B635E); margin:10px 0 0 }
