/* R1 · añadidos sobre el diseño de V3F (mismas variables). Solo: banda de modo, pantallas de acceso, usuario y estados nuevos. */
.banda{background:var(--fg);color:#FAF7F2;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:6px 12px}
html[data-modo="demo"] .banda{background:var(--warn)}
body.r1-acceso #app main,body.r1-acceso #app footer,body.r1-acceso #app nav.tabs,body.r1-acceso #app .hmeta,body.r1-acceso #shade,body.r1-acceso #celebHost{display:none!important}
body.r1-acceso #app{padding-bottom:0}
body:not(.r1-acceso) #acceso{display:none}
.acceso{display:grid;place-items:center;padding:40px 0 20px}
.acard-in{width:100%;max-width:440px;padding:26px 26px 22px}
.acard-in h2{margin:2px 0 0}
.codigo{font-family:var(--mono);font-size:24px!important;letter-spacing:.4em;text-align:center}
.m0{margin:0}
.r1u{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.hmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chip.real{border:1.5px solid var(--ok);color:var(--ok);background:var(--ok-soft)}
.chip.real .dot,.chip .dot.ok{background:var(--ok)}
.state.hecho{color:var(--prog);background:var(--prog-soft)}
.state.hecho::before{background:var(--prog)}
.mact.hecho{border-color:#C6D7E8}
/* D1 · agenda editable en pantallas estrechas: los controles pasan a una segunda línea para que el título se lea completo. */
@media (max-width:640px){.agenda li{grid-template-columns:30px 1fr;row-gap:8px}.agenda li .ctl{grid-column:2}}
/* D2 · Riesgos de clientes: solo disposición; colores, tarjetas y etiquetas son los de V3F (.rcard, .urg, .pst, .state). */
.rkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rk-card{display:flex;flex-direction:column;justify-content:flex-start;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}
.rk-card:hover{border-color:var(--accent)}
.rk-tags{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.rk-mas{display:block;margin-top:6px;font-size:13px;font-weight:700;color:var(--accent-text)}
.rk-acc b{display:inline;color:var(--fg);margin:0}
.rk-n{font-weight:400;color:var(--muted);font-size:14px}
.rk-solomovil{display:none;margin-top:8px}
details.rk-mas-datos>summary{cursor:pointer;font-weight:700;font-size:14.5px}
@media (max-width:1000px){.rkgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.rkgrid{grid-template-columns:1fr}.rkgrid>:nth-child(n+3){display:none}.rk-solomovil{display:block}}
/* D2.2 · Navegación de cinco módulos. Escritorio: el control de pestañas de V3F. Móvil (≤ 640 px): barra inferior fija con icono y nombre;
   las pestañas superiores se ocultan y la página deja espacio libre para que la barra no tape contenido, botones, formularios ni avisos. */
.navmovil{display:none}
@media (max-width:640px){
  :root{--navm:calc(64px + env(safe-area-inset-bottom,0px))}
  nav.tabs{display:none!important}
  .navmovil{position:fixed;left:0;right:0;bottom:0;z-index:15;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px rgba(43,32,27,.06)}
  .navmovil button{position:relative;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-weight:600;font-size:11.5px;color:var(--muted);border-radius:10px;min-height:48px}
  .navmovil button[aria-current="page"]{color:var(--accent-text);background:var(--accent-soft)}
  .navmovil button[aria-current="page"] span{font-weight:700}
  .navmovil .ndot{position:absolute;top:4px;right:calc(50% - 16px);width:7px;height:7px;border-radius:50%;background:var(--accent)}
  .navmovil .ndot[hidden]{display:none}
  #app{padding-bottom:calc(var(--navm) + 16px)}
  .toast{bottom:calc(var(--navm) + 12px)}
  body.r1-acceso .navmovil{display:none}
  body.r1-acceso #app{padding-bottom:0}
}
/* D2.2 · En pantallas muy estrechas (320 px) un sello largo podía ensanchar la página y desplazar la barra fuera de la vista: los sellos pasan a dos líneas. */
@media (max-width:640px){.bhead .chip{white-space:normal;max-width:100%}}
/* B3 · Clientes: disposición con los componentes de V3F (.ftable, .stat, .pst, .rcard, .vchain). */
.pst.crit{background:var(--crit-soft);color:var(--crit)}
.cl-tabla{padding:0;overflow:hidden}
.cl-t td,.cl-t th{vertical-align:middle}
.cl-t th{white-space:nowrap}
.cl-t tr.cl-fila{cursor:pointer}
.cl-t tr.cl-fila:hover td{background:var(--surface-2)}
.cl-t td.v.neg{color:var(--crit)}
.cl-exc{display:block;margin-top:5px;font-size:12.5px;font-weight:600}
.cl-exc .crit{color:var(--crit)} .cl-exc .warn{color:var(--warn)}
.cl-av{display:block;font-size:12px;margin-top:3px}
.cl-estado .pst{font-size:15px;padding:6px 12px}
.cl-h3{margin:2px 0 0;font-family:var(--display);text-transform:uppercase;font-size:20px}
.cl-ficha{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;align-items:start}
.cl-acc{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px;font:inherit;color:inherit;cursor:pointer}
.cl-acc .hint{grid-column:1}
.cl-acc .state,.cl-acc .urg{grid-row:1/3;grid-column:2}
.cl-acc:hover{border-color:var(--accent)}
.cl-op{padding:6px 0}
.cl-op-est{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 16px}
.cl-op-x{margin:0 16px 8px;display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13.5px}
.cl-op-x>div{padding:8px 12px;border-radius:10px}
.cl-op-x .crit{background:var(--crit-soft);color:var(--crit)} .cl-op-x .warn{background:var(--warn-soft);color:var(--warn)}
.cl-et{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:9px 16px;border-top:1px solid var(--line);font-size:14px}
.cl-et .mono{font-weight:600;color:var(--accent-text)}
.cl-nota{padding:10px 16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.cl-nota b{color:var(--fg)}
.cl-eco td.v.none{color:var(--muted)}
.cl-sub{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:2px}
@media (max-width:900px){.cl-ficha{grid-template-columns:1fr}}
@media (max-width:640px){
  .cl-stats{grid-template-columns:1fr 1fr!important}
  .cl-stats .stat .num{font-size:28px}
  .cl-stats .stat:not(.wide) .s{display:block;font-size:12.5px}
  .cl-t thead{display:none}
  .cl-t,.cl-t tbody,.cl-t tr,.cl-t td{display:block;width:100%}
  .cl-tabla{background:none;border:0;overflow:visible}
  .cl-t tr.cl-fila{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:6px 0;background:var(--surface)}
  .cl-t td{border:0;padding:4px 14px}
  .cl-t td[data-k]{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:start}
  .cl-t td[data-k]::before{content:attr(data-k);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
  .cl-t td.cl-ir{padding-bottom:8px}
}
.cl-v{display:block}
/* D4 · Finanzas */
:root{--fz-c1:#C9B6A3;--fz-c2:#8E7B6E}
.fz-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.fz-per{margin:4px 0 2px}
.fz-stats .stat .s+.s{margin-top:2px}
.fz-dolar{padding:14px 18px}.fz-dolar .bhead{margin-bottom:10px}
.fz-src{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.fz-bar{display:flex;height:18px;border-radius:9px;overflow:hidden;gap:2px}.fz-bar i{display:block;height:100%}
.fz-ley{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:10px;font-size:13.5px}.fz-ley span{display:flex;align-items:center;gap:6px}.fz-ley span i{width:10px;height:10px;border-radius:3px;display:inline-block}
.fz-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;align-items:start;margin-top:4px}
.fz-m{display:inline-block;width:56px;height:6px;border-radius:3px;background:var(--line);margin-right:8px;vertical-align:middle;overflow:hidden}.fz-m i{display:block;height:100%}
.fz-d.crit{color:var(--crit)}.fz-d.warn{color:var(--warn)}.fz-d.ok{color:var(--ok)}
.fz-t .cl-ir .link{white-space:nowrap}
.fz-t tr.fz-tot td{background:var(--surface-2)}
.fz-card{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:default}
.fz-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:4px}
.fz-rest{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.fz-ul{margin:4px 0 0;padding-left:0;list-style:none;font-size:13.5px}.fz-ul li{margin:2px 0}
.fz-pv{font-size:22px;color:var(--muted)}
@media (max-width:1100px){.fz-grid{grid-template-columns:1fr}}
@media (max-width:640px){
  #vFinanzas .fz-stats{grid-template-columns:1fr 1fr}#vFinanzas .fz-stats .stat .num{font-size:28px}#vFinanzas .fz-stats .stat .s{display:block}
  .fz-ley{flex-direction:column}
  .fz-grid{display:flex;flex-direction:column;gap:18px}.fz-grid>.stack{display:contents}
  .fz-o1{order:1}.fz-o2{order:2}.fz-o3{order:3}.fz-o4{order:4}.fz-o5{order:5}.fz-o6{order:6}
  .fz-h th,.fz-h td{padding-left:8px;padding-right:8px;font-size:13px}
  .fz-hist th:nth-child(3),.fz-hist td:nth-child(3){display:none}
  .fz-chips{justify-content:flex-start}
}
@media (max-width:380px){.fz-pvr th,.fz-pvr td,.fz-hist th,.fz-hist td{padding-left:5px;padding-right:5px;font-size:12px;letter-spacing:0}.fz-pvr th:first-child{white-space:normal}}
.cl-eco .cl-sub{white-space:normal;font-family:var(--body);letter-spacing:0}.fz-nw{white-space:nowrap}
/* M1 · Centro de Operaciones PMB: barra común del portal (Operación en control.platinum-mb.com, Dirección en ceo.platinum-mb.com) */
.portal{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 0 0;font-size:12.5px}
.portal-nombre{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}
.portal-areas{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.portal-area{padding:4px 12px;border-radius:999px;color:var(--fg);text-decoration:none;font-weight:500;cursor:pointer}
.portal-area[aria-disabled="true"]{color:var(--muted);cursor:not-allowed}
.portal-area.activa{background:var(--fg);color:#fff;cursor:default}
.m1-nc,.m1-quien{margin:6px 0}
html[data-f1-ocupado] body{cursor:progress}
@media (max-width:640px){.portal{padding-top:8px}.portal-nombre{font-size:10px}}
