/* Grupo Xioon · ERP de ventas (maqueta). Apple × Uber: blanco, negro y grises; Inter Tight; color solo para estados. */
:root {
  --fondo: #f5f5f7; --papel: #fff; --campo: #f0f0f2; --hover: #f5f5f7; --linea: #e8e8ed; --linea-f: #d2d2d7;
  --texto: #1d1d1f; --texto-2: #424245; --texto-3: #6e6e73;
  --rojo: #d70015; --rojo-f: #fff1f2; --ambar: #b25000; --ambar-f: #fff5ed; --verde: #1a7f37; --verde-f: #eef8f0;
  --velo: rgba(0, 0, 0, .32); --raio: 18px; --sombra: 0 12px 40px rgba(0, 0, 0, .12);
  --sans: "Inter Tight", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mola: cubic-bezier(.22, 1, .36, 1); color-scheme: light;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fondo); color: var(--texto); font: 14px/1.5 var(--sans); letter-spacing: -.008em; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4, h5, p, ul, ol { margin: 0; padding: 0; } ul, ol { list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
a { color: inherit; text-decoration: none; } input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #0071e3; outline-offset: 2px; border-radius: 8px; }
small { font-size: 12px; } .fraco { color: var(--texto-3); } .suave { color: var(--texto-2); } .bloque { display: block; } .der { text-align: right; font-variant-numeric: tabular-nums; } .rojo { color: var(--rojo); }
svg { display: block; }

/* intro */
.intro { position: fixed; inset: 0; z-index: 200; background: #fff; display: grid; place-items: center; transition: opacity .45s ease, transform .55s var(--mola); }
.intro.sale { opacity: 0; transform: translateY(-24px); pointer-events: none; }
.intro-c { display: grid; justify-items: center; gap: 14px; }
.intro-logo { height: 44px; width: auto; opacity: 0; transform: translateY(8px); animation: sube .6s .05s var(--mola) forwards; }
.intro small { color: var(--texto-3); font-size: 13px; opacity: 0; animation: sube .6s .2s var(--mola) forwards; }
@keyframes sube { to { opacity: 1; transform: none; } }
body:not(.pronto) .app { opacity: 0; } .app { transition: opacity .5s ease; }
@media (min-width: 861px) { .pronto .lado { animation: l-entra .7s var(--mola) both; } }
@keyframes l-entra { from { transform: translateX(-12px); opacity: 0; } }

/* faja de demo */
.faja { position: sticky; top: 0; z-index: 60; height: 30px; white-space: nowrap; overflow: hidden; background: #000; color: #f5f5f7; font-size: 12px; font-weight: 500; padding: 6px 14px; display: flex; justify-content: center; align-items: center; gap: 8px; }
.faja-extra { color: #a1a1a6; font-weight: 400; } .faja-p { width: 6px; height: 6px; border-radius: 50%; background: #fff; flex: none; }

/* estructura */
.app { display: grid; grid-template-columns: 252px minmax(0, 1fr); min-height: calc(100vh - 30px); }
.lado { position: sticky; top: 30px; height: calc(100vh - 30px); background: #fff; border-right: 1px solid var(--linea); display: flex; flex-direction: column; padding: 20px 12px 14px; overflow-y: auto; }
.marca { display: block; padding: 2px 12px 16px; } .marca img { height: 30px; width: auto; display: block; }
.menu { display: flex; flex-direction: column; gap: 1px; }
.menu-tit { font-size: 12px; font-weight: 500; color: var(--texto-3); padding: 14px 12px 5px; } .menu-tit:first-child { padding-top: 2px; }
.menu a { display: flex; align-items: center; gap: 11px; padding: 7px 12px; border-radius: 10px; color: var(--texto); font-weight: 450; transition: background .2s, color .2s; }
.menu a svg { width: 18px; height: 18px; flex: none; color: var(--texto-3); transition: color .2s; }
.menu a:hover { background: var(--hover); }
.menu a[aria-current="page"] { background: #000; color: #fff; font-weight: 500; } .menu a[aria-current="page"] svg { color: #fff; }
.cuenta { margin-left: auto; font-size: 12px; color: var(--texto-3); font-weight: 500; font-variant-numeric: tabular-nums; } .menu a[aria-current="page"] .cuenta { color: #a1a1a6; }
.arbol-env { margin-top: 4px; } .arbol-tit { display: flex; justify-content: space-between; align-items: center; padding-right: 6px; }
.nodo { display: flex; align-items: center; border-radius: 8px; font-size: 13px; transition: background .2s; } .nodo:hover { background: var(--hover); }
.nodo.activo { background: var(--campo); font-weight: 500; }
.nodo a { display: flex; align-items: center; gap: 7px; flex: 1; min-width: 0; padding: 4px 8px 4px 0; } .nodo a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nodo a svg { width: 15px; height: 15px; flex: none; color: var(--texto-3); }
.nodo.n1 { padding-left: 12px; } .nodo.n2 { padding-left: 24px; }
.pliega { width: 20px; height: 24px; display: inline-grid; place-items: center; flex: none; color: var(--texto-3); } .pliega svg { width: 12px; height: 12px; transition: transform .25s var(--mola); } .pliega.abierto svg { transform: rotate(90deg); } .pliega-v { width: 20px; flex: none; }
.lado-pie { margin-top: auto; border-top: 1px solid var(--linea); padding: 12px 4px 0; display: grid; gap: 8px; position: sticky; bottom: -14px; background: #fff; padding-bottom: 8px; }
.ver-como { display: grid; gap: 5px; font-size: 12px; color: var(--texto-3); }
.ver-como select { background: var(--campo); color: var(--texto); border: 0; border-radius: 10px; padding: 8px 10px; font: 500 13px var(--sans); width: 100%; }
.reiniciar { background: var(--campo); border-radius: 999px; padding: 6px 10px; font-size: 12.5px; font-weight: 500; transition: background .2s; } .reiniciar:hover { background: var(--linea); }

.principal { min-width: 0; display: flex; flex-direction: column; }
.cab { display: flex; align-items: center; gap: 14px; padding: 16px 40px 12px; position: sticky; top: 30px; z-index: 20; background: var(--fondo); border-bottom: 1px solid transparent; transition: border-color .2s; }
.cab.bajo { border-bottom-color: var(--linea); }
.cab h1 { font: 600 22px/1.15 var(--sans); letter-spacing: -.022em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cab-tit { min-width: 0; } .migas { font-size: 12px; color: var(--texto-3); margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cab-esp { flex: 1; }
.yo { display: flex; align-items: center; gap: 9px; font-size: 12px; color: var(--texto-3); white-space: nowrap; } .yo b { display: block; color: var(--texto); font-weight: 500; font-size: 13px; }
.cab .btn-menu { display: none; }
.busca-btn { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 999px; padding: 7px 8px 7px 12px; color: var(--texto-3); font-size: 13px; transition: box-shadow .2s; } .busca-btn:hover { box-shadow: 0 0 0 1px var(--linea-f); } .busca-btn svg { width: 15px; height: 15px; }
.busca-btn kbd { font: 500 11px var(--sans); background: var(--campo); border-radius: 6px; padding: 1px 6px; }
.campana { position: relative; } .campana .punto { position: absolute; top: 6px; right: 7px; width: 7px; height: 7px; background: var(--rojo); border-radius: 50%; box-shadow: 0 0 0 2px var(--fondo); }
.timer { display: flex; align-items: center; gap: 7px; background: #000; color: #fff; border-radius: 999px; padding: 6px 12px; font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; }
.timer-p { width: 7px; height: 7px; border-radius: 50%; background: #ff453a; animation: late 1.4s infinite; flex: none; } @keyframes late { 50% { opacity: .35; } }
.vista { padding: 14px 40px 90px; max-width: 1480px; width: 100%; }

/* transiciones */
.entra > * { animation: entra .55s var(--mola) both; }
@keyframes entra { from { opacity: 0; transform: translateY(10px); } }
.entra > *:nth-child(2) { animation-delay: .04s } .entra > *:nth-child(3) { animation-delay: .08s } .entra > *:nth-child(4) { animation-delay: .12s } .entra > *:nth-child(5) { animation-delay: .16s } .entra > *:nth-child(n+6) { animation-delay: .2s }
.entra .grilla > * { animation: entra .55s var(--mola) both; } .entra .grilla > *:nth-child(2) { animation-delay: .05s } .entra .grilla > *:nth-child(3) { animation-delay: .1s } .entra .grilla > *:nth-child(4) { animation-delay: .15s } .entra .grilla > *:nth-child(n+5) { animation-delay: .2s }
.entra .tarjeta, .entra .fila-t { animation: item .4s var(--mola) both; } @keyframes item { from { opacity: 0; transform: translateY(5px); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } .intro { display: none; } body:not(.pronto) .app { opacity: 1; } }

/* botones */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; background: #fff; border: 1px solid var(--linea-f); border-radius: 999px; padding: 8px 15px; font-weight: 500; white-space: nowrap; transition: background .2s, transform .2s var(--mola), border-color .2s; } .btn:hover { background: var(--hover); } .btn:active { transform: scale(.97); } .btn svg { width: 15px; height: 15px; }
.btn.negro { background: #000; border-color: #000; color: #fff; } .btn.negro:hover { background: #2c2c2e; }
.btn.chico { padding: 5px 11px; font-size: 13px; } .btn.micro { padding: 1px 8px; font-size: 12px; } .btn.fantasma { border-color: transparent; background: transparent; color: var(--texto-3); margin: 0 12px 12px; } .btn.ancho { width: 100%; } .btn:disabled { opacity: .5; }
.ico { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 50%; flex: none; transition: background .2s; color: var(--texto-2); } .ico:hover { background: var(--campo); } .ico svg { width: 18px; height: 18px; }
.ico.chico { width: 24px; height: 24px; } .ico.chico svg { width: 13px; height: 13px; }
.enlace { color: var(--texto); text-decoration: underline; text-decoration-color: var(--linea-f); text-underline-offset: 3px; text-align: left; } .enlace:hover { text-decoration-color: #000; }
.fila-botones { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; } .fila-botones.fin { justify-content: space-between; margin-top: 6px; } .pad { padding: 10px 22px 22px; }
.volver { display: inline-block; color: var(--texto-3); margin-bottom: 10px; font-size: 13px; } .volver:hover { color: #000; }

/* cartones */
.cartao { background: var(--papel); border-radius: var(--raio); min-width: 0; }
.grilla { display: grid; gap: 12px; } .k4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .sep { margin-top: 12px; }
.dos { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.tarjetas { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); align-items: stretch; }
.kpi { padding: 18px 20px 16px; text-align: left; display: block; width: 100%; transition: transform .25s var(--mola), box-shadow .25s; } button.kpi:hover { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(0,0,0,.06); }
.kpi-rot { font-size: 13px; color: var(--texto-3); font-weight: 500; } .kpi-num { font: 600 34px/1.1 var(--sans); margin: 9px 0 4px; font-variant-numeric: tabular-nums; letter-spacing: -.035em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .kpi-pie { font-size: 12.5px; color: var(--texto-3); }
.carta { display: flex; flex-direction: column; } .carta-cab { padding: 18px 22px 10px; } .carta-cab h3 { font: 600 16px/1.25 var(--sans); letter-spacing: -.015em; } .carta-cab p { font-size: 13px; color: var(--texto-3); margin-top: 1px; } .carta-cab.fila { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.carta-cuerpo { padding: 4px 22px 20px; flex: 1; }
.saludo { margin: 2px 0 22px; } .saludo-f { font-size: 14px; font-weight: 500; color: var(--texto-3); margin-bottom: 5px; }
.saludo h2 { font: 600 clamp(28px, 3.4vw, 44px)/1.08 var(--sans); letter-spacing: -.035em; max-width: 26ch; } .saludo h2 em { color: var(--texto-3); font-style: normal; } .saludo p { color: var(--texto-3); margin-top: 10px; font-size: 15px; max-width: 62ch; }
.saludo.chico h2 { font-size: clamp(24px, 2.6vw, 34px); max-width: 34ch; }
.panel-barra, .barra-acc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .panel-barra { justify-content: space-between; margin-bottom: 10px; } .filtros-esp { flex: 1; }
.seccion-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin: 6px 0 14px; } .seccion-cab h2 { font: 600 26px/1.15 var(--sans); letter-spacing: -.028em; } .seccion-cab p { color: var(--texto-3); margin-top: 3px; max-width: 80ch; } .seccion-acc { display: flex; gap: 6px; flex-wrap: wrap; }
.nota-pie { color: var(--texto-3); font-size: 12px; margin-top: 26px; max-width: 80ch; }

/* chips, avatar */
.chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 500; background: var(--campo); color: var(--texto-2); white-space: nowrap; margin-right: 3px; }
.chip.verde { background: var(--verde-f); color: var(--verde); } .chip.ambar { background: var(--ambar-f); color: var(--ambar); } .chip.rojo { background: var(--rojo-f); color: var(--rojo); } .chip.negro { background: #000; color: #fff; } .chip.claro { background: #fff; border: 1px solid var(--linea-f); transition: background .2s; } .chip.claro:hover { background: var(--hover); } .chip.gris { color: var(--texto-3); }
.chip.lote-disponible { background: #fff; border: 1px solid var(--linea-f); } .chip.lote-separado { background: #8e8e93; color: #fff; } .chip.lote-vendido { background: #000; color: #fff; } .chip.lote-bloqueado { background: var(--campo); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: #1d1d1f; color: #fff; display: inline-grid; place-items: center; font-size: 12px; font-weight: 600; flex: none; letter-spacing: 0; }
.avatar.chico { width: 24px; height: 24px; font-size: 10px; } .avatar.mini { width: 20px; height: 20px; font-size: 9px; } .avatar.grande { width: 46px; height: 46px; font-size: 15px; } .avatar.neutro { background: var(--campo); color: var(--texto-2); }
.vacio { padding: 40px 20px; text-align: center; color: var(--texto-3); display: grid; gap: 3px; justify-items: center; } .vacio b { color: var(--texto); font-weight: 600; }
.tip { position: fixed; z-index: 300; display: none; pointer-events: none; background: #1d1d1f; color: #fff; padding: 6px 10px; border-radius: 9px; font-size: 12px; line-height: 1.4; max-width: 260px; } .tip b { font-weight: 600; }
.dot { width: 16px; height: 16px; border-radius: 50%; flex: none; display: inline-grid; place-items: center; background: conic-gradient(#1d1d1f calc(var(--p, 0) * 1%), #d2d2d7 0); -webkit-mask: radial-gradient(circle 5px, transparent 98%, #000); mask: radial-gradient(circle 5px, transparent 98%, #000); }
.dot.lleno { background: #000; -webkit-mask: none; mask: none; color: #fff; } .dot.lleno svg { width: 11px; height: 11px; stroke-width: 3; }
.dot.perdido { background: var(--linea-f); -webkit-mask: none; mask: none; position: relative; } .dot.perdido::after { content: ""; width: 8px; height: 1.6px; background: #fff; }
.prio svg { width: 15px; height: 15px; color: var(--linea-f); } .prio.urgente svg { color: var(--rojo); fill: var(--rojo); } .prio.alta svg { color: #000; fill: #000; } .prio.normal svg { color: #a1a1a6; } .prio.baja svg { color: var(--linea-f); } .prio { display: inline-flex; }
.vence { font-size: 12.5px; color: var(--texto-2); white-space: nowrap; font-variant-numeric: tabular-nums; } .vence.tarde { color: var(--rojo); font-weight: 500; } .vence.hoy { font-weight: 600; color: #000; }
.mini-barra { display: inline-block; width: 56px; height: 4px; background: var(--linea); border-radius: 4px; overflow: hidden; vertical-align: middle; flex: none; } .mini-barra i { display: block; height: 100%; background: #000; border-radius: 4px; transition: width .6s var(--mola); } .mini-barra.larga { width: 100%; display: block; }
.rombo { width: 9px; height: 9px; background: #000; transform: rotate(45deg); flex: none; display: inline-block; margin: 0 3px; }
.candado svg { width: 14px; height: 14px; color: var(--ambar); } .candado { display: inline-flex; }
.leyenda { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--texto-3); flex-wrap: wrap; } .leyenda i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; margin-left: 8px; } .leyenda i:first-child { margin-left: 0; }
.l-n { background: #000; } .l-a { background: #8e8e93; } .l-s { background: var(--rojo); } .l-v { background: #000; } .l-s2 { background: #8e8e93; } .l-d { background: #fff; box-shadow: inset 0 0 0 1px var(--linea-f); } .l-b { background: repeating-linear-gradient(45deg, #c7c7cc 0 2px, #fff 2px 4px); box-shadow: inset 0 0 0 1px var(--linea-f); }

/* avisos y capas */
.avisos { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); z-index: 220; display: grid; gap: 6px; justify-items: center; pointer-events: none; width: min(92vw, 440px); }
.aviso { background: #1d1d1f; color: #fff; padding: 9px 16px; border-radius: 999px; font-size: 13px; font-weight: 500; animation: av .35s var(--mola); text-align: center; transition: opacity .25s, transform .25s; } .aviso.sale { opacity: 0; transform: translateY(6px); } .aviso.error { background: var(--rojo); } @keyframes av { from { opacity: 0; transform: translateY(10px) scale(.97); } }
.velo { position: fixed; inset: 30px 0 0; z-index: 100; background: var(--velo); display: grid; place-items: center; padding: 20px; animation: fundido .22s ease; transition: opacity .2s; } .velo.sale { opacity: 0; } @keyframes fundido { from { opacity: 0; } }
.modal { background: #fff; border-radius: 22px; width: min(540px, 100%); max-height: calc(100dvh - 70px); display: flex; flex-direction: column; box-shadow: var(--sombra); animation: modal .36s var(--mola); } .modal.largo { width: min(980px, 100%); } @keyframes modal { from { transform: translateY(14px) scale(.985); opacity: 0; } }
.modal-cab { padding: 20px 22px 8px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; } .modal-cab h3 { font: 600 19px/1.2 var(--sans); letter-spacing: -.02em; } .modal-cab p { color: var(--texto-3); font-size: 13px; margin-top: 2px; }
.modal-cuerpo { padding: 8px 22px 16px; overflow-y: auto; } .modal-pie { padding: 12px 22px 18px; display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--linea); align-items: center; } .modal-pie .error { margin-right: auto; }
.campo { display: grid; gap: 4px; margin-bottom: 11px; font-size: 13px; color: var(--texto-2); font-weight: 500; min-width: 0; } .campo small { color: var(--texto-3); font-weight: 400; }
.campo input, .campo select, .campo textarea, .rg-editor input, .rg-editor select, .chat-in input, .caja-coment textarea, .ficha-desc, .doc-edit { background: var(--campo); border: 1px solid transparent; border-radius: 11px; padding: 9px 11px; width: 100%; font-weight: 400; transition: border-color .2s, background .2s; min-width: 0; font-size: 14px; color: var(--texto); }
.campo input:focus, .campo select:focus, .campo textarea:focus, .chat-in input:focus, .caja-coment textarea:focus, .ficha-desc:focus, .doc-edit:focus { outline: 0; border-color: #000; background: #fff; }
.fila-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .error { color: var(--rojo); font-size: 12.5px; }
.resumen-firma { background: var(--campo); border-radius: 12px; padding: 11px 13px; display: grid; gap: 4px; } .resumen-firma > div { display: flex; justify-content: space-between; gap: 10px; } .resumen-firma span { color: var(--texto-3); }

/* tablas */
.tabla-env { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tabla { width: 100%; border-collapse: collapse; font-size: 13.5px; } .tabla th { text-align: left; font-weight: 500; font-size: 12px; color: var(--texto-3); padding: 10px 14px; border-bottom: 1px solid var(--linea); white-space: nowrap; } .tabla td { padding: 10px 14px; border-bottom: 1px solid var(--linea); vertical-align: middle; } .tabla tr:last-child td { border-bottom: 0; }
.tabla th:first-child, .tabla td:first-child { padding-left: 22px; } .tabla th:last-child, .tabla td:last-child { padding-right: 22px; } .tabla th.der { text-align: right; }
.tabla tr.clic { cursor: pointer; transition: background .15s; } .tabla tr.clic:hover { background: var(--hover); }
.celda-nom { display: flex; align-items: center; gap: 9px; } .celda-nom small { display: block; } .pie-tabla { padding: 10px 22px 16px; font-size: 12.5px; }

/* filtros y pestañas */
.pestanas { display: inline-flex; gap: 2px; background: #e8e8ed; border-radius: 12px; padding: 3px; max-width: 100%; overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; } .pestanas::-webkit-scrollbar { display: none; }
.pestanas button { padding: 6px 12px; border-radius: 9px; font-size: 13px; font-weight: 500; color: var(--texto-2); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; transition: background .2s, color .2s; flex: none; } .pestanas button svg { width: 15px; height: 15px; } .pestanas button:hover { color: #000; } .pestanas button.activa { background: #000; color: #fff; }
.trabajo-cab { display: flex; flex-direction: column; gap: 8px; } .ruta { font-size: 13px; color: var(--texto-3); display: flex; flex-wrap: wrap; gap: 6px; } .ruta span:not(:last-child)::after { content: " /"; color: var(--linea-f); } .ruta .fin { color: #000; font-weight: 500; }
.filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 10px 0; }
.filtro { background: #fff; border: 1px solid transparent; border-radius: 999px; padding: 5px 11px; font-size: 13px; color: var(--texto-2); max-width: 170px; transition: border-color .2s, background .2s; } .filtro:hover { border-color: var(--linea-f); } .filtro.on { background: #000; color: #fff; } .filtro.texto { width: 150px; } .filtro.texto:focus { outline: 0; border-color: #000; }
.filtro.boton { font-weight: 500; white-space: nowrap; } .total-f { font-size: 12.5px; margin-right: 4px; }
.guardadas { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; font-size: 12.5px; } .guardada { display: inline-flex; align-items: center; background: #fff; border-radius: 999px; font-size: 12.5px; font-weight: 500; padding-left: 10px; } .guardada .x { width: 22px; height: 22px; display: grid; place-items: center; color: var(--texto-3); } .guardada .x svg { width: 11px; height: 11px; }
.barra-sel { display: flex; align-items: center; gap: 8px; background: #000; color: #fff; border-radius: 14px; padding: 8px 14px; margin-bottom: 10px; flex-wrap: wrap; animation: av .3s var(--mola); } .barra-sel .btn { background: transparent; color: #fff; border-color: #48484a; } .barra-sel .filtro { background: #2c2c2e; color: #fff; }
.toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texto-2); } .toggle input { accent-color: #000; }
.seg { display: inline-flex; background: var(--campo); border-radius: 9px; padding: 2px; } .seg button { padding: 3px 10px; font-size: 12.5px; font-weight: 500; border-radius: 7px; color: var(--texto-2); } .seg button.activa { background: #000; color: #fff; }
.hoja-barra { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 18px; font-size: 12.5px; border-bottom: 1px solid var(--linea); }

/* vista lista */
.grupo { margin-bottom: 10px; overflow: hidden; } .grupo-cab { display: flex; align-items: center; gap: 8px; padding: 11px 16px 11px 10px; width: 100%; text-align: left; font-size: 14px; } .grupo-cab b { font-weight: 600; } .grupo-suma { margin-left: auto; font-variant-numeric: tabular-nums; }
.fila-t { display: grid; grid-template-columns: 32px minmax(180px, 1fr) 150px 68px 76px 86px 110px; gap: 8px; align-items: center; padding: 7px 16px 7px 12px; border-top: 1px solid var(--linea); transition: background .15s; font-size: 13.5px; }
.fila-t.clic { cursor: pointer; } .fila-t.clic:hover { background: var(--hover); } .fila-t.marcada { background: var(--campo); }
.fila-t.cabecera { font-size: 12px; color: var(--texto-3); padding-top: 5px; padding-bottom: 5px; font-weight: 500; }
.c-check input { accent-color: #000; margin: 0; } .c-nom { display: flex; align-items: center; gap: 7px; min-width: 0; } .nom { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; } .c-nom small { white-space: nowrap; flex: none; }
.c-resp { display: flex; align-items: center; gap: 7px; min-width: 0; } .resp-n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12.5px; color: var(--texto-2); } .c-monto { text-align: right; font-variant-numeric: tabular-nums; color: var(--texto-2); } .c-avance { display: flex; align-items: center; gap: 6px; }
.agregar-fila { border: 0; border-top: 1px solid var(--linea); width: 100%; padding: 8px 16px 9px 52px; font-size: 13px; background: transparent; color: var(--texto); border-radius: 0 0 var(--raio) var(--raio); } .agregar-fila:focus { outline: 0; background: var(--hover); } .agregar-fila::placeholder { color: var(--texto-3); }

/* tablero */
.tablero { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 14px; align-items: flex-start; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; margin-right: -40px; padding-right: 40px; }
.columna { flex: 0 0 266px; background: #ececf0; border-radius: 16px; padding: 8px; transition: background .2s, box-shadow .2s; scroll-snap-align: start; } .columna.sobre { background: #e0e0e6; box-shadow: inset 0 0 0 2px #000; }
.columna header { display: flex; align-items: center; gap: 7px; padding: 5px 7px 9px; font-size: 13px; } .columna header b { font-weight: 600; } .col-suma { margin-left: auto; font-size: 12px; font-variant-numeric: tabular-nums; }
.col-cuerpo { display: grid; gap: 7px; min-height: 40px; } .col-vacia { font-size: 12px; color: var(--texto-3); padding: 18px 8px; text-align: center; border: 1px dashed var(--linea-f); border-radius: 11px; }
.tarjeta { background: #fff; border-radius: 13px; padding: 10px 11px; cursor: grab; display: grid; gap: 5px; transition: transform .22s var(--mola), box-shadow .22s; } .tarjeta:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.08); } .tarjeta.arrastra { opacity: .4; }
.tj-tit { display: flex; gap: 5px; align-items: flex-start; } .tj-tit b { font-weight: 500; font-size: 13.5px; line-height: 1.3; } .tj-sub { font-size: 12px; color: var(--texto-3); display: flex; justify-content: space-between; gap: 6px; } .tj-monto { color: var(--texto); font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tj-av { display: flex; align-items: center; gap: 6px; } .tj-av .mini-barra { flex: 1; } .tj-pie { display: flex; align-items: center; gap: 6px; } .tj-esp { flex: 1; } .tj-score { font-size: 11px; font-weight: 600; background: var(--campo); border-radius: 6px; padding: 0 5px; }
.solo-tactil { display: none; } @media (hover: none) { .solo-tactil { display: block; } }
.sel-estado { background: var(--campo); border: 0; border-radius: 8px; padding: 4px 6px; font-size: 12.5px; font-weight: 500; max-width: 170px; } .sel-estado.ancho { width: 100%; max-width: none; }
.sel-mini { background: var(--campo); border: 0; border-radius: 8px; padding: 4px 6px; font-size: 13px; max-width: 100%; min-width: 0; } .sel-mini.corto { width: 62px; } .sel-mini.ancho { width: 100%; margin-top: 4px; }

/* calendario */
.cal-env { padding: 14px 18px 18px; } .cal-cab { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; flex-wrap: wrap; } .cal-cab h3 { font: 600 18px var(--sans); letter-spacing: -.02em; min-width: 150px; text-align: center; } .cal-cab h3::first-letter { text-transform: uppercase; } .cal-ayuda { margin-left: auto; font-size: 12.5px; }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--linea); border: 1px solid var(--linea); border-radius: 12px; overflow: hidden; }
.cal-dia-n { background: #fff; padding: 5px 8px; font-size: 12px; color: var(--texto-3); font-weight: 500; } .cal-celda { background: #fff; min-height: 104px; padding: 4px; display: flex; flex-direction: column; gap: 2px; transition: background .15s; min-width: 0; } .cal-celda.fuera { background: #fbfbfd; } .cal-celda.fuera .cal-n { color: #c7c7cc; } .cal-celda.sobre { background: var(--campo); }
.cal-n { font-size: 12px; font-weight: 500; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; } .cal-celda.hoy .cal-n { background: #000; color: #fff; }
.cal-t { display: block; width: 100%; text-align: left; font-size: 11.5px; padding: 2px 6px; border-radius: 6px; background: var(--campo); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: background .15s; } .cal-t:hover { background: var(--linea-f); } .cal-t.tarde { color: var(--rojo); background: var(--rojo-f); } .cal-t.cerrada { color: var(--texto-3); text-decoration: line-through; } .cal-mas { font-size: 11px; color: var(--texto-3); text-align: left; padding: 0 6px; }
.agenda { display: none; } .agenda-dia h4 { font: 600 13px var(--sans); padding: 10px 0 4px; color: var(--texto-3); } .agenda-dia.hoy h4 { color: #000; } .agenda-it { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; padding: 8px 0; border-bottom: 1px solid var(--linea); } .agenda-it span:nth-child(2) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-modal { display: grid; gap: 2px; } .lm-fila { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--linea); } .lm-it { display: flex; align-items: center; gap: 8px; flex: 1; text-align: left; padding: 8px 2px; min-width: 0; } .lm-it > span:not(.dot, .vence) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* gantt */
.gantt-env { overflow: hidden; } .gantt-barra { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 16px; border-bottom: 1px solid var(--linea); font-size: 12.5px; } .gantt-ayuda { flex: 1; min-width: 200px; text-align: right; }
.gantt { display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.gantt-izq { border-right: 1px solid var(--linea); position: relative; z-index: 2; background: #fff; min-width: 0; } .gantt-esq { height: 44px; display: flex; align-items: end; padding: 0 14px 6px; font-size: 12px; color: var(--texto-3); font-weight: 500; border-bottom: 1px solid var(--linea); }
.gantt-fila { height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 14px; width: 100%; text-align: left; font-size: 13px; border-bottom: 1px solid #f2f2f5; transition: background .15s; } button.gantt-fila:hover { background: var(--hover); } .gantt-fila span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .gantt-fila.grupo { font-weight: 600; font-size: 12.5px; background: #fbfbfd; }
.gantt-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; } .gantt-dias { position: relative; height: 44px; border-bottom: 1px solid var(--linea); }
.gantt-mes { position: absolute; top: 4px; font-size: 12px; font-weight: 600; padding-left: 5px; white-space: nowrap; } .gantt-d { position: absolute; top: 24px; font-size: 11px; color: var(--texto-3); text-align: left; padding-left: 5px; } .gantt-d.hoy { color: #fff; } .gantt-d.hoy::before { content: ""; position: absolute; left: 1px; top: -2px; width: 20px; height: 19px; border-radius: 6px; background: #000; z-index: -1; }
.gantt-der { position: relative; background-image: linear-gradient(to right, #f2f2f5 1px, transparent 1px); background-size: var(--dia) 100%; } .gantt-track { position: relative; height: 38px; border-bottom: 1px solid #f2f2f5; } .gantt-track.grupo { background: #fbfbfd; }
.gantt-bar { position: absolute; top: 7px; height: 24px; background: #a1a1a6; color: #fff; border-radius: 7px; font-size: 11.5px; font-weight: 500; display: flex; align-items: center; padding: 0 8px; overflow: hidden; white-space: nowrap; cursor: grab; z-index: 2; transition: box-shadow .2s; touch-action: pan-x pan-y; } .gantt-bar span { overflow: hidden; text-overflow: ellipsis; pointer-events: none; } .gantt-bar:hover { box-shadow: 0 3px 12px rgba(0,0,0,.2); } .gantt-bar.critica { background: #000; } .gantt-bar.hecho { background: #e0e0e5; color: var(--texto-3); } .gantt-bar.tarde { background: var(--rojo); } .gantt-bar.movida { cursor: grabbing; z-index: 5; opacity: .9; }
.gantt-bar.hito { background: #000; width: 16px !important; height: 16px; top: 11px; padding: 0; border-radius: 3px; transform: rotate(45deg); } .gantt-bar.hito.hecho { background: #a1a1a6; }
.gantt-asa { position: absolute; right: 0; top: 0; bottom: 0; width: 8px; cursor: ew-resize; } .gantt-base { position: absolute; top: 31px; height: 4px; background: #c7c7cc; border-radius: 2px; }
.gantt-hoy { position: absolute; top: 0; width: 1.5px; background: #000; z-index: 3; pointer-events: none; opacity: .7; } .gantt-flechas { position: absolute; left: 0; top: 0; pointer-events: none; z-index: 1; }

/* timeline */
.tl { display: grid; grid-template-columns: 190px minmax(0, 1fr); } .tl-izq { border-right: 1px solid var(--linea); min-width: 0; } .tl-esq { height: 34px; padding: 8px 14px; font-size: 12px; color: var(--texto-3); font-weight: 500; border-bottom: 1px solid var(--linea); } .tl-rot { display: flex; align-items: flex-start; gap: 7px; padding: 8px 14px 0; border-bottom: 1px solid var(--linea); font-size: 13px; font-weight: 500; min-width: 0; } .tl-rot span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; } .tl-rot .avatar { flex: none; overflow: visible; }
.tl-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; } .tl-cab { position: relative; height: 34px; border-bottom: 1px solid var(--linea); } .tl-sem { position: absolute; top: 8px; font-size: 11.5px; color: var(--texto-3); padding-left: 4px; white-space: nowrap; }
.tl-der { position: relative; background-image: linear-gradient(to right, #f5f5f7 1px, transparent 1px); background-size: calc(var(--dia) * 7) 100%; } .tl-hoy { position: absolute; top: 0; bottom: 0; width: 1.5px; background: #000; z-index: 3; opacity: .7; } .tl-fila { position: relative; border-bottom: 1px solid var(--linea); }
.tl-bar { position: absolute; height: 28px; background: #1d1d1f; color: #fff; border-radius: 7px; font-size: 11.5px; font-weight: 500; text-align: left; padding: 0 8px; overflow: hidden; white-space: nowrap; transition: transform .2s var(--mola), background .2s; } .tl-bar span { display: block; overflow: hidden; text-overflow: ellipsis; } .tl-bar:hover { transform: translateY(-1px); background: #000; } .tl-bar.hecho { background: #e0e0e5; color: var(--texto-3); } .tl-bar.tarde { background: var(--rojo); }

/* hoja */
.hoja-env { max-height: 68vh; overflow: auto; } .tabla.hoja { font-size: 13px; } .tabla.hoja th { position: sticky; top: 0; background: #fff; z-index: 2; } .tabla.hoja td { padding: 3px 6px; border-right: 1px solid #f2f2f5; white-space: nowrap; } .tabla.hoja th { padding: 8px 8px; } .tabla.hoja tfoot td { position: sticky; bottom: 0; background: #fbfbfd; font-weight: 600; padding: 8px; border-top: 1px solid var(--linea); }
.celda { border: 1px solid transparent; background: transparent; padding: 4px 6px; border-radius: 6px; font-size: 13px; max-width: 170px; width: 100%; transition: background .15s, border-color .15s; } .celda:hover { background: var(--hover); } .celda:focus { outline: 0; border-color: #000; background: #fff; } .celda.nombre { min-width: 200px; font-weight: 500; } .celda.der { text-align: right; min-width: 88px; } input[type="date"].celda { min-width: 124px; } select.celda { min-width: 124px; }
.rating { display: inline-flex; gap: 3px; } .rating button { width: 11px; height: 11px; border-radius: 50%; background: var(--linea); } .rating button.si { background: #000; }

/* carga */
.carga { display: grid; grid-template-columns: 180px repeat(var(--sem), minmax(88px, 1fr)); min-width: 680px; } .carga-cab { padding: 9px 10px; font-size: 12px; font-weight: 500; color: var(--texto-3); border-bottom: 1px solid var(--linea); } .carga-cab.esta { color: #000; font-weight: 600; }
.carga-p { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-bottom: 1px solid var(--linea); font-size: 13px; } .carga-p b { font-weight: 500; display: block; } .carga-c { display: grid; gap: 4px; padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--linea); border-left: 1px solid #f2f2f5; transition: background .15s; } .carga-c:hover { background: var(--hover); } .carga-h { font-size: 13px; font-variant-numeric: tabular-nums; }
.carga-b { height: 5px; background: var(--linea); border-radius: 3px; overflow: hidden; display: block; } .carga-b i { display: block; height: 100%; background: #000; border-radius: 3px; transition: width .6s var(--mola); } .carga-c.alta .carga-b i { background: #8e8e93; } .carga-c.sobre .carga-b i { background: var(--rojo); } .carga-c.sobre .carga-h { color: var(--rojo); font-weight: 600; }

/* mapa */
.mapa-scroll { overflow: auto; max-height: 72vh; cursor: grab; } .mapa-scroll.mano { cursor: grabbing; user-select: none; } .mapa-lienzo { position: relative; } .mapa-svg { position: absolute; inset: 0; }
.mapa-n { position: absolute; display: flex; align-items: center; animation: item .35s var(--mola) both; } .mapa-b { display: flex; align-items: center; gap: 7px; width: 100%; height: 100%; padding: 0 12px; background: #fff; border: 1px solid var(--linea-f); border-radius: 12px; text-align: left; font-size: 13px; transition: border-color .2s, box-shadow .2s; } .mapa-b:hover { border-color: #000; box-shadow: 0 4px 14px rgba(0,0,0,.08); } .mapa-t { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; } .mapa-b small { color: var(--texto-3); } .mapa-p { color: var(--texto-3); width: 14px; flex: none; } .mapa-p svg { width: 13px; height: 13px; transition: transform .25s var(--mola); } .mapa-p.abierto svg { transform: rotate(180deg); } .mapa-n.estado .mapa-b { padding-right: 18px; }
.mapa-n.raiz .mapa-b { background: #000; color: #fff; border-color: #000; } .mapa-n.raiz .mapa-p { color: #a1a1a6; } .mapa-n.grupo .mapa-b { background: var(--campo); border-color: transparent; font-weight: 600; } .mapa-add { position: absolute; right: -11px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%; background: #000; color: #fff; display: grid; place-items: center; } .mapa-add svg { width: 12px; height: 12px; }

/* ficha lateral */
.velo.lateral { place-items: stretch end; padding: 0; } .ficha { background: #fff; width: min(600px, 100vw); height: 100%; overflow-y: auto; padding: 16px 24px 40px; animation: lateral .42s var(--mola); box-shadow: var(--sombra); } @keyframes lateral { from { transform: translateX(40px); opacity: 0; } }
.ficha-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .ficha-cab .migas { margin: 0; } .ficha-acc { display: flex; flex: none; }
.ficha-titulo { font: 600 24px/1.2 var(--sans); letter-spacing: -.025em; border: 0; width: 100%; padding: 6px 0; margin: 2px 0 8px; border-radius: 8px; background: transparent; } .ficha-titulo:focus { outline: 0; background: var(--hover); }
.bloqueo { display: flex; align-items: center; gap: 8px; background: var(--ambar-f); color: var(--ambar); border-radius: 11px; padding: 8px 12px; margin-bottom: 10px; font-size: 13px; } .bloqueo svg { width: 15px; height: 15px; flex: none; } .bloqueo .enlace { color: inherit; }
.ficha-grid { display: grid; gap: 5px; } .ficha-fila { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 8px; min-height: 30px; } .ficha-rot { color: var(--texto-3); font-size: 13px; } .ficha-val { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; min-width: 0; font-size: 13.5px; }
.ficha-sec { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--linea); } .ficha-sec h4 { font: 600 14px var(--sans); margin-bottom: 8px; } .ficha-sec h4 small { color: var(--texto-3); font-weight: 500; margin-left: 4px; } .ficha-rel { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 12px; }
.ficha-desc { resize: vertical; } .ia-caja { background: var(--campo); border-radius: 12px; padding: 10px 13px; margin-top: 8px; animation: av .3s var(--mola); } .ia-rot { font-size: 11.5px; color: var(--texto-3); font-weight: 500; margin-bottom: 2px; }
.lista-check li { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 13.5px; } .lista-check li.hecho .txt { color: var(--texto-3); text-decoration: line-through; } .lista-check .txt { flex: 1; min-width: 0; }
.casilla { width: 18px; height: 18px; border-radius: 6px; border: 1.5px solid var(--linea-f); display: grid; place-items: center; flex: none; transition: background .2s, border-color .2s; } .casilla:hover { border-color: #000; } .casilla.si { background: #000; border-color: #000; color: #fff; } .casilla svg { width: 12px; height: 12px; stroke-width: 3; }
.entrada-add { border: 0; background: transparent; width: 100%; padding: 6px 0; font-size: 13px; color: var(--texto); border-bottom: 1px dashed transparent; } .entrada-add:focus { outline: 0; border-bottom-color: var(--linea-f); } .entrada-add::placeholder { color: var(--texto-3); }
.check-bloque { margin-bottom: 8px; } .check-tit { font-size: 13px; font-weight: 500; display: flex; justify-content: space-between; color: var(--texto-2); }
.dep { display: flex; align-items: center; gap: 7px; padding: 4px 0; font-size: 13px; flex-wrap: nowrap; } .dep .enlace { flex: 1; min-width: 0; } .dep-rot { color: var(--texto-3); width: 60px; flex: none; font-size: 12px; }
.coment { display: flex; gap: 9px; margin-bottom: 11px; } .coment > div { min-width: 0; flex: 1; } .coment-cab { display: flex; gap: 8px; align-items: baseline; font-size: 12.5px; } .coment-cab b { font-weight: 600; } .coment p { font-size: 13.5px; white-space: pre-wrap; overflow-wrap: anywhere; } .coment.ia > div { background: var(--campo); border-radius: 12px; padding: 7px 11px; } .mencion { font-weight: 600; background: var(--campo); border-radius: 5px; padding: 0 3px; }
.caja-coment { position: relative; } .mencion-pop { position: absolute; bottom: 100%; left: 0; background: #fff; box-shadow: var(--sombra); border-radius: 12px; padding: 5px; width: 260px; z-index: 5; margin-bottom: 4px; } .mencion-pop button { display: flex; flex-direction: column; width: 100%; text-align: left; padding: 5px 9px; border-radius: 8px; font-size: 13px; } .mencion-pop button:hover { background: var(--hover); } .mencion-pop span { font-size: 11.5px; color: var(--texto-3); } .mencion-pop b { font-weight: 500; }
.historial li { display: flex; gap: 8px; font-size: 12.5px; padding: 2px 0; } .historial .fraco { width: 48px; flex: none; } details summary { cursor: pointer; font-weight: 600; font-size: 14px; }

/* panel */
.lista-hoy li button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 8px 0; border-bottom: 1px solid var(--linea); transition: opacity .15s; } .lista-hoy li:last-child button { border-bottom: 0; } .lista-hoy li button:hover { opacity: .7; } .hoy-txt { flex: 1; min-width: 0; } .hoy-txt b { font-weight: 500; display: block; } .hoy-txt small { color: var(--texto-3); display: block; line-height: 1.35; } .hoy-der { display: grid; justify-items: end; flex: none; }
.bh { display: grid; gap: 5px; } .bh-f { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 9px; font-size: 13px; padding: 2px 0; } .bh-et { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--texto-2); } .bh-b { height: 16px; background: var(--hover); border-radius: 4px; overflow: hidden; } .bh-b i { display: block; height: 100%; width: var(--w); background: #000; border-radius: 0 4px 4px 0; animation: crece-x .9s var(--mola) both; transform-origin: left; } @keyframes crece-x { from { transform: scaleX(0); } } .bh-v { font-variant-numeric: tabular-nums; font-weight: 500; min-width: 22px; text-align: right; } .bh-v.largo { min-width: 104px; }
.columnas { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 5px; height: 190px; align-items: end; } .col-g { display: flex; flex-direction: column; align-items: stretch; height: 100%; min-width: 0; } .col-v { height: 18px; font-size: 12px; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; } .col-b { flex: 1; display: flex; align-items: flex-end; } .col-b i { display: block; width: 100%; height: var(--h); min-height: 2px; background: #c7c7cc; border-radius: 4px 4px 0 0; animation: crece-y .9s var(--mola) both; transform-origin: bottom; transition: background .15s; } @keyframes crece-y { from { transform: scaleY(0); } } .col-g:hover .col-b i { background: #8e8e93; } .col-g.actual .col-b i { background: #000; } .col-e { font-size: 11px; color: var(--texto-3); text-align: center; padding-top: 4px; }
.invs { display: grid; gap: 14px; } .inv { display: block; } .inv-cab { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 5px; } .inv-cab b { font-weight: 500; } .inv-barra { display: flex; gap: 2px; height: 16px; } .inv-barra i { display: block; min-width: 2px; border-radius: 3px; transition: opacity .2s; } .inv-barra .v { background: #000; } .inv-barra .s { background: #8e8e93; } .inv-barra .d { background: #fff; box-shadow: inset 0 0 0 1px var(--linea-f); }
.ranking { display: grid; gap: 9px; } .rk { display: grid; grid-template-columns: 16px 24px minmax(0, 1fr) auto; gap: 8px; align-items: center; } .rk-n { font-size: 12px; color: var(--texto-3); font-weight: 600; } .rk-t b { font-weight: 500; font-size: 13px; display: block; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .rk-v { text-align: right; font-variant-numeric: tabular-nums; } .rk-v b { display: block; font-weight: 600; font-size: 13px; } .rk-v small { display: block; }
.metas-mini { display: grid; gap: 11px; } .mm { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; align-items: center; font-size: 13px; } .mm .mini-barra { grid-column: 1 / -1; grid-row: 2; } .mm b { font-weight: 600; font-variant-numeric: tabular-nums; }
.alertas li a { display: block; padding: 8px 0 8px 14px; border-bottom: 1px solid var(--linea); position: relative; transition: opacity .15s; } .alertas li:last-child a { border-bottom: 0; } .alertas li a:hover { opacity: .7; } .alertas li a::before { content: ""; position: absolute; left: 0; top: 14px; width: 7px; height: 7px; border-radius: 50%; background: var(--ambar); } .alertas li.rojo a::before { background: var(--rojo); } .alertas b { font-weight: 500; display: block; } .alertas small { color: var(--texto-3); display: block; line-height: 1.35; }
.lista-tarjetas { display: grid; gap: 3px; } .tj-op { display: flex; gap: 10px; align-items: center; padding: 7px 4px; border-radius: 9px; cursor: pointer; } .tj-op:hover { background: var(--hover); } .tj-op input { accent-color: #000; width: 16px; height: 16px; } .tj-op b { font-weight: 500; display: block; } .tj-op small { color: var(--texto-3); }

/* bandeja */
.bandeja li { display: flex; align-items: center; gap: 6px; padding: 2px 12px 2px 16px; border-bottom: 1px solid var(--linea); position: relative; } .bandeja li:last-child { border: 0; } .bj-abrir { display: flex; align-items: center; gap: 12px; flex: 1; text-align: left; padding: 9px 0; min-width: 0; } .bj-ic { width: 32px; height: 32px; background: var(--campo); border-radius: 50%; display: grid; place-items: center; flex: none; } .bj-ic svg { width: 15px; height: 15px; } .bj-t { min-width: 0; } .bj-t b { display: block; font-weight: 450; } .bj-t small { color: var(--texto-3); } .bandeja li.nueva .bj-t b { font-weight: 600; } .bandeja li.nueva::before { content: ""; position: absolute; left: 6px; top: 50%; margin-top: -3px; width: 6px; height: 6px; border-radius: 50%; background: #000; }

/* asistente */
.asistente { max-width: 860px; margin: 0 auto; } .asistente-cab { margin: 4px 0 16px; } .asistente-cab h2 { font: 600 clamp(28px, 3.4vw, 40px)/1.1 var(--sans); letter-spacing: -.033em; } .asistente-cab p { color: var(--texto-3); margin: 6px 0 8px; max-width: 62ch; }
.chat-env { display: flex; flex-direction: column; overflow: hidden; } .chat { padding: 18px 20px 8px; display: flex; flex-direction: column; gap: 10px; max-height: 52vh; min-height: 120px; overflow-y: auto; } .msg { max-width: 88%; border-radius: 16px; padding: 9px 14px; animation: av .32s var(--mola); font-size: 14px; } .msg.yo { align-self: flex-end; background: #000; color: #fff; } .msg.ia { align-self: flex-start; background: var(--campo); } .msg.ia p { line-height: 1.45; }
.ia-etapas li { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--texto-3); padding: 1px 0; animation: av .25s var(--mola); } .ia-etapas.hecho { margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid var(--linea-f); } .et-ic { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--linea-f); border-top-color: #000; animation: gira .7s linear infinite; flex: none; } li.ok .et-ic { animation: none; border: 0; background: #000; } @keyframes gira { to { transform: rotate(360deg); } }
.ia-items { display: grid; gap: 5px; margin: 8px 0 3px; } .ia-it { display: block; background: #fff; border-radius: 11px; padding: 7px 11px; text-align: left; width: 100%; transition: transform .2s var(--mola); } .ia-it:hover { transform: translateX(2px); } .ia-it b { display: block; font-weight: 500; font-size: 13.5px; } .ia-it small { color: var(--texto-3); display: block; line-height: 1.35; } .msg .btn { margin-top: 6px; }
.sugerencias { display: flex; gap: 5px; flex-wrap: wrap; padding: 8px 20px; } .sugerencias .chip { cursor: pointer; font-weight: 450; padding: 4px 10px; white-space: normal; text-align: left; margin: 0; } .chat-in { display: flex; gap: 7px; padding: 8px 14px 14px; } .chat-in input { flex: 1; border-radius: 999px; padding: 9px 15px; } .chat-in .btn { padding: 8px 12px; }

/* lotes */
.plano { padding: 18px 20px; display: grid; gap: 16px; } .manzana { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; align-items: start; } .mz-n b { display: block; font-weight: 600; } .mz-lotes { display: grid; grid-template-columns: repeat(auto-fill, minmax(38px, 1fr)); gap: 4px; }
.lote { aspect-ratio: 1; border-radius: 8px; font-size: 12px; font-weight: 500; display: grid; place-items: center; transition: transform .2s var(--mola), opacity .2s, box-shadow .2s; font-variant-numeric: tabular-nums; } .lote:hover { transform: scale(1.12); z-index: 2; box-shadow: 0 4px 14px rgba(0,0,0,.2); position: relative; } .lote.disponible { background: #fff; box-shadow: inset 0 0 0 1.5px var(--linea-f); } .lote.disponible:hover { box-shadow: inset 0 0 0 1.5px #000, 0 4px 14px rgba(0,0,0,.14); } .lote.separado { background: #8e8e93; color: #fff; } .lote.vendido { background: #000; color: #fff; } .lote.bloqueado { background: repeating-linear-gradient(45deg, #d2d2d7 0 3px, #fff 3px 6px); box-shadow: inset 0 0 0 1px var(--linea-f); } .lote.apagado { opacity: .14; }
.lote-est { margin-bottom: 10px; } .datos { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 16px; } .datos span { display: block; color: var(--texto-3); font-size: 12.5px; } .datos b { font-weight: 600; font-size: 15px; font-variant-numeric: tabular-nums; } .lote-rel { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--linea); font-size: 13.5px; } .aviso-linea { margin-top: 10px; color: var(--ambar); background: var(--ambar-f); padding: 8px 11px; border-radius: 10px; font-size: 13px; }

/* cotización */
.cot-editor { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 18px; align-items: start; } .cot-doc { border: 1px solid var(--linea); border-radius: 16px; padding: 20px 22px; background: #fff; }
.dc-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--linea); } .dc-cab img { height: 32px; } .dc-cab > div { text-align: right; } .dc-cab b { display: block; } .dc-cab small { color: var(--texto-3); }
.dc-cli { display: grid; grid-template-columns: auto 1fr; gap: 1px 12px; padding: 10px 0; font-size: 13px; } .dc-cli span { color: var(--texto-3); } .dc-cli b { font-weight: 500; } .dc-lote { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; background: var(--campo); border-radius: 11px; padding: 9px 12px; font-size: 13px; } .dc-lote span { display: block; font-size: 11.5px; color: var(--texto-3); } .dc-lote b { font-weight: 600; }
.dc-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 14px 0 10px; } .dc-cols h5 { font: 600 14px var(--sans); margin-bottom: 6px; } .dc-f { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; border-bottom: 1px solid #f2f2f5; font-size: 13px; } .dc-f span { color: var(--texto-2); } .dc-f b { font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; } .dc-f.total { border-bottom: 0; border-top: 1.5px solid #000; margin-top: 3px; padding-top: 6px; } .dc-f.total b, .dc-f.total span { font-weight: 700; color: #000; } .dc-cols small { color: var(--texto-3); } .dc-pie { font-size: 11.5px; color: var(--texto-3); border-top: 1px solid var(--linea); padding-top: 8px; }
.cuenta-reg { display: grid; gap: 3px; font-size: 12.5px; white-space: nowrap; } .cuenta-reg.roja span:first-child { color: var(--rojo); font-weight: 600; } .cuenta-reg.ambar span:first-child { color: var(--ambar); font-weight: 600; }

/* asesores */
.asesores { grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); } .asesor { padding: 18px 20px; display: grid; gap: 13px; transition: transform .25s var(--mola), box-shadow .25s; } .asesor:hover { transform: translateY(-2px); box-shadow: 0 8px 26px rgba(0,0,0,.07); } .as-cab { display: flex; align-items: center; gap: 11px; } .as-cab b { font-weight: 600; font-size: 15px; } .as-cab > div { flex: 1; min-width: 0; } .as-rank { font-size: 13px; font-weight: 600; color: var(--texto-3); } .as-num { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; } .as-num b { display: block; font: 600 20px var(--sans); letter-spacing: -.02em; font-variant-numeric: tabular-nums; } .as-num span { font-size: 12px; color: var(--texto-3); } .as-meta { display: grid; gap: 3px; font-size: 12.5px; color: var(--texto-2); } .as-pie { display: flex; align-items: center; gap: 7px; font-size: 12.5px; flex-wrap: wrap; }

/* metas */
.tit-carpeta { font: 600 15px var(--sans); margin: 18px 0 8px; color: var(--texto-2); } .metas { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); align-items: start; } .meta { padding-bottom: 6px; } .meta-cab { display: flex; justify-content: space-between; gap: 12px; padding: 16px 20px 10px; align-items: flex-start; } .meta-cab h4 { font: 600 16px/1.25 var(--sans); letter-spacing: -.015em; } .meta-duenos { display: flex; align-items: center; gap: 4px; margin-top: 5px; }
.anillo { --t: 54px; width: var(--t); height: var(--t); border-radius: 50%; background: conic-gradient(#000 calc(var(--p) * 1%), #e8e8ed 0); display: grid; place-items: center; position: relative; flex: none; } .anillo::before { content: ""; position: absolute; inset: 5px; background: #fff; border-radius: 50%; } .anillo b { position: relative; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.targets li { padding: 7px 20px; border-top: 1px solid var(--linea); display: grid; gap: 4px; } .tg-fila { display: flex; align-items: center; gap: 7px; font-size: 13px; flex-wrap: wrap; } .tg-n { flex: 1; min-width: 120px; } .tg-v { font-variant-numeric: tabular-nums; color: var(--texto-2); font-size: 12.5px; } .tg-sino { display: flex; gap: 8px; align-items: center; font-size: 13px; }

/* tiempo */
.temporizador { padding: 13px 20px; } .tm { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } .tm > div { flex: 1; min-width: 180px; } .tm b { font-weight: 500; } .tm svg { width: 18px; height: 18px; color: var(--texto-3); } .tm .btn svg { color: inherit; width: 15px; height: 15px; }
.hoja-t { display: grid; grid-template-columns: 170px repeat(var(--d), minmax(52px, 1fr)) 70px 100px; min-width: 780px; padding: 0 10px 10px; } .ht-c { padding: 8px 8px; border-bottom: 1px solid var(--linea); font-size: 13px; display: flex; align-items: center; min-width: 0; } .ht-c.ht-cab { font-size: 12px; color: var(--texto-3); font-weight: 500; } .ht-c.ht-cab.hoy { color: #000; font-weight: 700; } .ht-c.nom { gap: 7px; } .ht-c.nom span:last-child { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .ht-c.dia { font-variant-numeric: tabular-nums; color: var(--texto-3); transition: background .15s; } .ht-c.dia.con { color: #000; font-weight: 500; } .ht-c.dia.con:hover { background: var(--hover); } .ht-c.der { justify-content: flex-end; } .ht-c b { font-weight: 600; }

/* plantillas */
.plantillas { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); align-items: stretch; } .plantilla { padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; } .plantilla h4 { font: 600 17px/1.2 var(--sans); letter-spacing: -.018em; } .plantilla > p { font-size: 13px; line-height: 1.4; } .plantilla .btn { margin-top: auto; align-self: flex-start; } .pl-pasos { counter-reset: p; display: grid; gap: 3px; margin-bottom: 8px; } .pl-pasos li { counter-increment: p; display: flex; gap: 7px; font-size: 13px; } .pl-pasos li::before { content: counter(p); color: var(--texto-3); font-size: 11.5px; width: 13px; font-variant-numeric: tabular-nums; padding-top: 1px; } .pl-pasos li span { flex: 1; } .pl-check { display: flex; align-items: center; gap: 5px; font-size: 12.5px; margin-bottom: 6px; } .pl-check svg { width: 13px; height: 13px; }

/* automatizaciones */
.reglas { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 12px; margin-top: 12px; } .regla { padding: 15px 18px 11px; display: flex; flex-direction: column; gap: 8px; transition: opacity .25s; } .regla.apagada { opacity: .6; } .rg-cab { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; } .rg-cab h4 { font: 600 14.5px/1.3 var(--sans); }
.interruptor { width: 38px; height: 22px; background: var(--linea-f); border-radius: 999px; position: relative; flex: none; transition: background .25s; } .interruptor i { position: absolute; left: 2px; top: 2px; width: 18px; height: 18px; background: #fff; border-radius: 50%; transition: transform .3s var(--mola); box-shadow: 0 1px 3px rgba(0,0,0,.2); } .interruptor.on { background: #000; } .interruptor.on i { transform: translateX(16px); }
.rg-flujo { display: grid; gap: 6px; flex: 1; align-content: start; } .rg-p { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 2px 7px; font-size: 13px; align-items: baseline; } .rg-p span { color: var(--texto-3); font-size: 12px; } .rg-p b { font-weight: 500; grid-column: 2; } .rg-nota { font-size: 12px; line-height: 1.35; } .rg-pie { display: flex; align-items: center; gap: 6px; }
.rg-bloque { margin-bottom: 12px; } .rg-bloque h5 { font: 600 13px var(--sans); margin-bottom: 5px; } .rg-fila { display: flex; gap: 6px; align-items: center; margin-bottom: 5px; } .rg-fila > select, .rg-fila > input { flex: 1; }

/* formularios */
.form-editor .carta-cab { padding-bottom: 8px; } .campos-ed li { padding: 8px 22px; border-top: 1px solid var(--linea); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; align-items: center; } .ce-t input { border: 0; font-weight: 500; background: transparent; width: 100%; padding: 2px 4px; border-radius: 6px; } .ce-t input:focus { outline: 0; background: var(--campo); } .ce-t small { display: block; padding-left: 4px; } .ce-si { grid-column: 1; color: var(--texto-2); background: var(--campo); border-radius: 7px; padding: 1px 7px; justify-self: start; } .ce-acc { grid-row: 1; grid-column: 2; display: flex; align-items: center; gap: 4px; } .form-pub .btn { margin-top: 5px; } .campo.condicional { animation: av .3s var(--mola); }
.es-publico .app, .es-publico .abajo { display: none; } .publico { min-height: calc(100vh - 30px); display: grid; place-items: start center; padding: 40px 18px; background: #fff; } .pub-caja { width: min(440px, 100%); animation: entra .55s var(--mola); } .pub-logo { height: 36px; margin-bottom: 26px; } .pub-caja h1 { font: 600 32px/1.1 var(--sans); letter-spacing: -.03em; } .pub-caja > p { margin: 6px 0 20px; } .pub-nota { font-size: 12px; color: var(--texto-3); margin-top: 18px; } .pub-ok { display: grid; gap: 8px; justify-items: start; padding: 20px 0; } .pub-ok svg { width: 34px; height: 34px; background: #000; color: #fff; border-radius: 50%; padding: 7px; }

/* docs */
.docs { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 14px; align-items: start; } .docs-lado { position: sticky; top: 100px; } .docs-c { font-size: 12px; color: var(--texto-3); font-weight: 500; padding: 10px 10px 3px; } .docs-lado a { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 9px; font-size: 13.5px; transition: background .15s; } .docs-lado a svg { width: 15px; height: 15px; color: var(--texto-3); flex: none; } .docs-lado a:hover { background: #ececf0; } .docs-lado a.activo { background: #000; color: #fff; } .docs-lado a.activo svg { color: #fff; }
.doc-cab { display: flex; align-items: center; gap: 7px; padding: 12px 22px; border-bottom: 1px solid var(--linea); flex-wrap: wrap; } .doc-txt { padding: 24px 36px 40px; max-width: 720px; } .doc-txt h2 { font: 600 30px/1.15 var(--sans); letter-spacing: -.03em; margin-bottom: 10px; } .doc-txt h3 { font: 600 17px var(--sans); margin: 20px 0 6px; } .doc-txt p { font-size: 15px; line-height: 1.55; margin-bottom: 8px; } .doc-txt ul { margin-bottom: 8px; } .doc-txt li { position: relative; padding-left: 15px; font-size: 15px; line-height: 1.55; margin-bottom: 3px; } .doc-txt li::before { content: ""; position: absolute; left: 2px; top: .68em; width: 4px; height: 4px; background: #000; border-radius: 50%; } .doc-edit { display: block; width: calc(100% - 40px); margin: 16px 20px; line-height: 1.5; font-family: ui-monospace, Consolas, monospace; font-size: 13px; }

/* control */
.descuadres li { display: flex; align-items: center; gap: 12px; padding: 13px 22px; border-bottom: 1px solid var(--linea); } .descuadres li:last-child { border: 0; } .dq-punto { width: 8px; height: 8px; border-radius: 50%; background: var(--ambar); flex: none; } .rojo > .dq-punto { background: var(--rojo); } .dq-t { flex: 1; min-width: 0; } .dq-t b { display: block; font-weight: 600; } .dq-t small { color: var(--texto-2); font-size: 13px; line-height: 1.4; display: block; }

/* paleta */
.velo.arriba { place-items: start center; padding-top: 12vh; } .paleta { background: #fff; border-radius: 18px; width: min(620px, 100%); box-shadow: var(--sombra); animation: modal .3s var(--mola); overflow: hidden; } .paleta-in { display: flex; align-items: center; gap: 10px; padding: 13px 18px; border-bottom: 1px solid var(--linea); } .paleta-in svg { width: 18px; height: 18px; color: var(--texto-3); flex: none; } .paleta-in input { flex: 1; border: 0; font-size: 16px; min-width: 0; background: transparent; } .paleta-in input:focus { outline: 0; } .paleta-lista { max-height: 50vh; overflow-y: auto; padding: 6px; } .paleta-it { display: flex; align-items: center; gap: 11px; padding: 7px 11px; width: 100%; text-align: left; border-radius: 10px; } .paleta-it svg { width: 16px; height: 16px; color: var(--texto-3); flex: none; } .paleta-it span { min-width: 0; } .paleta-it b { display: block; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .paleta-it small { color: var(--texto-3); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .paleta-it.sel, .paleta-it:hover { background: var(--campo); }

/* abajo (celular) */
.abajo { display: none; }

/* ---------- pantallas medianas ---------- */
@media (max-width: 1240px) {
  .k4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .yo > div { display: none; } .busca-btn kbd { display: none; }
  .fila-t { grid-template-columns: 28px minmax(160px, 1fr) 42px 42px 70px 76px; } .c-avance { display: none !important; } .resp-n { display: none; } .fila-t.cabecera .c-resp { visibility: hidden; }
  .cot-editor { grid-template-columns: 1fr; } .dos { grid-template-columns: minmax(0, 1fr); }
}
/* ---------- celular ---------- */
@media (max-width: 860px) {
  .faja { font-size: 11.5px; } .faja-extra { display: none; }
  .app { grid-template-columns: minmax(0, 1fr); }
  .lado { position: fixed; top: 30px; left: 0; bottom: 0; height: auto; width: min(290px, 84vw); z-index: 90; transform: translateX(-104%); transition: transform .38s var(--mola); box-shadow: var(--sombra); padding-bottom: 76px; } .lado.abierto { transform: none; }
  .lado-pie { position: static; }
  .cab .btn-menu { display: inline-grid; margin-left: -6px; } .cab { padding: 10px 16px; gap: 7px; } .cab h1 { font-size: 19px; } .migas { display: none; } .busca-btn { padding: 8px; background: transparent; } .busca-btn span, .yo { display: none; } .busca-btn svg { width: 19px; height: 19px; } #btn-nuevo { padding: 7px 11px; } #btn-nuevo .txt { display: none; }
  .vista { padding: 8px 16px 110px; }
  .abajo { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; bottom: 0; left: 0; right: 0; z-index: 80; background: rgba(255,255,255,.94); backdrop-filter: blur(18px); border-top: 1px solid var(--linea); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); }
  .abajo a, .abajo button { display: grid; justify-items: center; gap: 2px; font-size: 10.5px; color: var(--texto-3); padding: 3px 0; font-weight: 500; } .abajo svg { width: 21px; height: 21px; } .abajo a[aria-current="page"] { color: #000; }
  .k4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .kpi { padding: 13px 14px 12px; } .kpi-num { font-size: 26px; } .kpi-rot, .kpi-pie { font-size: 12px; line-height: 1.3; }
  .tarjetas, .asesores, .metas, .plantillas, .reglas { grid-template-columns: minmax(0, 1fr); }
  .saludo { margin-bottom: 16px; } .saludo p { font-size: 14px; }
  .filtros { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; scrollbar-width: none; } .filtros::-webkit-scrollbar { display: none; } .filtro { flex: none; } .filtros-esp { display: none; } .barra-acc .filtros-esp { display: block; flex-basis: 100%; height: 0; }
  .barra-acc .filtro.texto { flex: 1; min-width: 120px; }
  .tablero { margin-right: -16px; padding-right: 16px; } .columna { flex-basis: 82vw; }
  .fila-t { grid-template-columns: 24px minmax(0, 1fr) 26px 18px 52px; padding: 9px 12px 9px 10px; gap: 6px; } .c-monto { display: none !important; } .fila-t.cabecera { display: none; } .c-nom small { display: none; } .agregar-fila { padding-left: 16px; font-size: 16px; }
  .cal { display: none; } .agenda { display: block; } .cal-ayuda { display: none; } .cal-cab { justify-content: center; }
  .gantt { grid-template-columns: 132px minmax(0, 1fr); } .gantt-fila { padding: 0 8px; font-size: 12px; gap: 5px; } .gantt-esq { padding: 0 8px 6px; } .gantt-ayuda { display: none; } .gantt-barra { padding: 10px; gap: 8px; }
  .tl { grid-template-columns: 112px minmax(0, 1fr); } .tl-rot { padding: 8px 8px 0; font-size: 12px; flex-wrap: wrap; align-content: flex-start; gap: 2px 5px; } .tl-rot span { flex: 1 1 100%; white-space: normal; line-height: 1.2; order: 2; } .tl-rot small { order: 3; } .tl-esq { padding: 8px; }
  .carga-p { padding: 8px; } .carga { grid-template-columns: 124px repeat(var(--sem), minmax(74px, 1fr)); min-width: 560px; }
  .ficha { padding: 12px 16px 60px; } .ficha-fila { grid-template-columns: 94px minmax(0, 1fr); } .velo.lateral { z-index: 110; } .ficha-titulo { font-size: 21px; }
  .modal { max-height: calc(100dvh - 50px); border-radius: 20px; } .velo { padding: 10px; } .modal-cab { padding: 16px 16px 6px; } .modal-cuerpo { padding: 6px 16px 12px; } .modal-pie { padding: 10px 16px 14px; }
  .campo input, .campo select, .campo textarea, .caja-coment textarea, .chat-in input, .paleta-in input, .entrada-add { font-size: 16px; }
  .sel-mini, .sel-estado { font-size: 14px; }
  .tabla.apilable thead { display: none; } .tabla.apilable, .tabla.apilable tbody, .tabla.apilable tr, .tabla.apilable td { display: block; width: 100%; } .tabla.apilable tr { padding: 10px 16px; border-bottom: 1px solid var(--linea); } .tabla.apilable tr:last-child { border-bottom: 0; }
  .tabla.apilable td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 2px 0 !important; border: 0; text-align: right; min-height: 24px; flex-wrap: wrap; } .tabla.apilable td::before { content: attr(data-t); font-size: 12px; color: var(--texto-3); text-align: left; flex: none; } .tabla.apilable td[data-t=""]::before { display: none; } .tabla.apilable td:first-child::before { display: none; } .tabla.apilable td:first-child { font-weight: 500; text-align: left; justify-content: flex-start; } .tabla.apilable td[data-t=""] { justify-content: flex-end; padding-top: 4px !important; } .tabla.apilable td .celda-nom { text-align: left; }
  .tabla th:first-child, .tabla td:first-child { padding-left: 16px; } .tabla th:last-child, .tabla td:last-child { padding-right: 16px; }
  .plano { padding: 14px; } .manzana { grid-template-columns: minmax(0, 1fr); gap: 5px; } .mz-n { display: flex; justify-content: space-between; } .mz-lotes { grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); }
  .dc-lote { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dc-cols { grid-template-columns: minmax(0, 1fr); } .cot-doc { padding: 14px; } .fila-campos { gap: 8px; }
  .docs { grid-template-columns: minmax(0, 1fr); } .docs-lado { position: static; display: flex; gap: 4px; overflow-x: auto; margin-right: -16px; padding-right: 16px; scrollbar-width: none; } .docs-lado > div { display: contents; } .docs-c { display: none; } .docs-lado a { flex: none; background: #fff; border-radius: 999px; padding: 5px 11px; font-size: 13px; } .docs-lado a svg { display: none; } .doc-txt { padding: 16px 18px 26px; } .doc-txt h2 { font-size: 24px; } .doc-cab { padding: 10px 16px; }
  .descuadres li { padding: 12px 16px; flex-wrap: wrap; } .dq-t { flex-basis: calc(100% - 24px); } .descuadres .btn { margin-left: 20px; }
  .bh-f { grid-template-columns: 96px minmax(0, 1fr) auto; } .carta-cab { padding: 15px 16px 8px; } .carta-cuerpo { padding: 4px 16px 16px; } .columnas { height: 160px; gap: 3px; } .col-e { font-size: 10px; }
  .chat { max-height: 46vh; padding: 14px 14px 6px; } .sugerencias { padding: 8px 14px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .sugerencias .chip { flex: none; white-space: nowrap; } .chat-in { padding: 8px 10px 12px; }
  .campos-ed li { padding: 8px 16px; } .pad { padding: 10px 16px 16px; } .gantt-d.hoy::before { width: 18px; }
  .avisos { bottom: 76px; } .velo.arriba { padding-top: 6vh; }
}
/* impresión */
@media print {
  .faja, .lado, .cab, .abajo, .filtros, .gantt-barra, .trabajo-cab, .nota-pie, .guardadas { display: none !important; } .app { display: block; } body { background: #fff; } .vista { padding: 0; max-width: none; } .gantt-scroll { overflow: visible; }
  body.imprime-doc .app { display: none; } body.imprime-doc .velo { position: static; background: none; display: block; padding: 0; } body.imprime-doc .modal { box-shadow: none; max-height: none; width: 100%; } body.imprime-doc .modal-cab, body.imprime-doc .modal-pie { display: none; } body.imprime-doc .modal-cuerpo { overflow: visible; }
}
