@font-face { font-family: "Inter"; font-style: normal; font-weight: 300 800; font-display: swap; src: url("fonts/Inter-latin.woff2") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 500; font-display: swap; src: url("fonts/JetBrainsMono-latin.woff2") format("woff2"); }
:root {
  --primario: #431866;
  --primario-osc: #2a0c42;
  --acento-fuerte: #8a3fd6;
  --acento: #a657ed;
  --pizarra: #665e77;
  --superficie: #f8f5fb;
  --borde: #e3e8ee;
  --texto: #2d2038;
  --ok: #15803d;      --ok-fondo: #dcfce7;
  --error: #dc2626;   --error-fondo: #fee2e2;
  --aviso: #92400e;   --aviso-fondo: #fef3c7;
  --radio: 0.75rem;
  --barra-h: 64px;
  --sombra: 0 2px 8px rgba(67, 24, 102, 0.06);
  --fuente: "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, Consolas, "Cascadia Mono", monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; padding-top: var(--barra-h); font: 14px/1.5 var(--fuente); color: var(--texto); background: var(--superficie);
       -webkit-font-smoothing: antialiased; }
a { color: var(--primario); }
a:hover { color: var(--acento); }
::selection { background: rgba(166, 87, 237, .3); }
.ic { width: 16px; height: 16px; flex-shrink: 0; vertical-align: -3px; }

.barra { position: fixed; inset: 0 0 auto 0; height: var(--barra-h); z-index: 1030; display: flex; align-items: center; gap: 18px; padding: 0 22px;
         background: linear-gradient(100deg, #2a0c42 0%, #431866 55%, #55237f 100%); color: #fff; box-shadow: 0 4px 18px rgba(42, 12, 66, .28); }
.barra::after { content: ""; position: absolute; inset: auto 0 0 0; height: 3px; pointer-events: none;
                background: linear-gradient(90deg, var(--acento), #d9b8f7 45%, transparent 85%); }
.marca { display: flex; align-items: center; gap: 12px; flex-shrink: 0; text-decoration: none; color: #fff; }
.marca:hover { color: #fff; }
.marca img { height: 42px; width: 46px; padding: 3px 4px; border-radius: 12px; background: #fff; object-fit: contain; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
.marca span { display: flex; flex-direction: column; line-height: 1.15; }
.marca b { font-size: 15px; font-weight: 800; letter-spacing: -.005em; text-transform: uppercase; }
.marca small { font: 500 9px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: #d9b8f7; }

.menu { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.menu .it { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 0; border-radius: 999px;
            background: none; color: rgba(255, 255, 255, .85); font: 600 13px var(--fuente); text-decoration: none; cursor: pointer; white-space: nowrap;
            transition: background .15s, color .15s; }
.menu .it .ic { width: 17px; height: 17px; opacity: .85; }
.menu .it:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.menu .it.activo { background: #fff; color: var(--primario); box-shadow: 0 2px 10px rgba(0, 0, 0, .18); }
.menu .it.activo .ic { color: var(--acento-fuerte); opacity: 1; }
.menu .cuenta { padding: 1px 8px; border-radius: 999px; background: var(--acento-fuerte); color: #fff; font: 700 10px var(--mono); }
.menu .it.activo .cuenta { background: var(--primario); }
.menu .it.cta { margin-left: 8px; background: linear-gradient(90deg, #a657ed, var(--acento-fuerte)); color: #fff; box-shadow: 0 2px 12px rgba(166, 87, 237, .5); }
.menu .it.cta:hover { filter: brightness(1.1); }
.menu .chev { width: 12px; height: 12px; opacity: .85; transition: transform .15s; }
.desplegable { position: relative; }
.desplegable.abierto .chev { transform: rotate(180deg); }
.desplegable .lista { display: none; position: absolute; top: calc(100% + 12px); left: 0; min-width: 220px; padding: 6px; background: #fff; border: 1px solid var(--borde);
                      border-radius: 12px; box-shadow: 0 12px 32px rgba(42, 12, 66, .25); z-index: 1060; }
.desplegable.abierto .lista { display: block; }
.desplegable .lista a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 8px; font-size: 13px; font-weight: 500; text-decoration: none; color: var(--primario); }
.desplegable .lista a .ic { color: var(--acento-fuerte); }
.desplegable .lista a:hover { background: var(--superficie); color: var(--acento-fuerte); }
.desplegable .lista .sep { height: 1px; margin: 5px 4px; background: var(--borde); }
.desplegable .lista .rotulo { padding: 6px 12px 2px; font: 700 9px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--pizarra); }

.buscar { margin-left: auto; display: flex; align-items: center; border-radius: 999px; overflow: hidden; background: rgba(255, 255, 255, .14);
          border: 1px solid rgba(255, 255, 255, .2); transition: background .15s, border-color .15s, box-shadow .15s; }
.buscar:focus-within { background: #fff; border-color: #fff; box-shadow: 0 0 0 3px rgba(217, 184, 247, .45); }
.buscar input, .buscar input:focus { width: 150px; height: 36px; padding: 0 4px 0 16px; border: 0; border-radius: 0; background: transparent; box-shadow: none;
                                     color: #fff; font: 13px var(--fuente); outline: none; transition: width .2s; }
.buscar input::placeholder { color: rgba(255, 255, 255, .7); }
.buscar:focus-within input { width: 220px; color: var(--primario); }
.buscar:focus-within input::placeholder { color: var(--pizarra); }
.buscar button { width: 38px; height: 36px; display: grid; place-items: center; border: 0; background: none; color: #fff; cursor: pointer; }
.buscar:focus-within button { color: var(--primario); }

.quien { position: relative; display: flex; align-items: center; gap: 10px; }
.quien .persona { display: flex; flex-direction: column; text-align: right; line-height: 1.2; }
.quien .persona b { font-size: 13px; font-weight: 700; }
.quien .persona small { font: 500 9px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: #d9b8f7; }
.avatar { width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .85); background: linear-gradient(135deg, #a657ed, #6b2aa6); color: #fff;
          font: 800 13px var(--fuente); letter-spacing: .02em; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); transition: box-shadow .15s; }
.avatar:hover { box-shadow: 0 0 0 4px rgba(217, 184, 247, .35); }
.menu-usuario { display: none; position: absolute; right: 0; top: calc(100% + 12px); min-width: 220px; padding: 6px; background: #fff; border: 1px solid var(--borde);
                border-radius: 12px; box-shadow: 0 12px 32px rgba(42, 12, 66, .25); z-index: 1060; }
.menu-usuario.abierto { display: block; }
.menu-usuario .cab { padding: 8px 10px; margin-bottom: 4px; border-bottom: 1px solid var(--borde); display: flex; flex-direction: column; }
.menu-usuario .cab b { font-size: 13px; color: var(--primario); }
.menu-usuario .cab span { font-size: 11px; color: var(--pizarra); }
.menu-usuario a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; font-size: 13px; font-weight: 500; text-decoration: none; color: var(--primario); }
.menu-usuario a .ic { color: var(--acento-fuerte); }
.menu-usuario a:hover { background: var(--superficie); color: var(--acento-fuerte); }

.b-menu { display: none; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 10px; background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer; }
.b-menu:hover { background: rgba(255, 255, 255, .24); }

main { padding: 26px 28px 70px; max-width: 1500px; margin: 0 auto; }
body.sin-sesion main { max-width: 440px; margin: 40px auto; padding: 0 16px; }

@media (max-width: 1240px) {
  .barra { gap: 12px; padding: 0 14px; }
  .marca small { display: none; }
  .menu { margin-left: 4px; gap: 2px; }
  .menu .it:not(.cta) { padding: 0 11px; }
  .menu .desplegable:last-child .t { display: none; }
  .buscar input, .buscar input:focus { width: 90px; }
  .buscar:focus-within input { width: 150px; }
  .quien .persona { display: none; }
}
@media (max-width: 980px) {
  .menu .it:not(.cta):not(.activo) .t { display: none; }
  .buscar input, .buscar input:focus { width: 0; padding: 0; }
  .buscar:focus-within input { width: 150px; padding: 0 4px 0 14px; }
}
@media (max-width: 780px) {
  .barra { gap: 10px; padding: 0 12px; }
  .b-menu { display: grid; order: -1; }
  .buscar { display: none; }
  .quien { margin-left: auto; }
  .menu { display: none; position: fixed; top: var(--barra-h); left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 2px; margin: 0; padding: 10px;
          background: #2a0c42; box-shadow: 0 14px 28px rgba(0, 0, 0, .35); max-height: calc(100vh - var(--barra-h)); overflow-y: auto; }
  html.menu-abierto .menu { display: flex; }
  .menu .it, .menu .it:not(.cta) { height: 44px; padding: 0 16px; border-radius: 12px; }
  .menu .it:not(.cta):not(.activo) .t, .menu .it.activo .t, .menu .desplegable:last-child .t { display: inline; }
  .menu .it.cta { margin: 6px 0 0; }
  .desplegable .lista { position: static; display: block; min-width: 0; margin: 2px 0 6px 14px; padding: 0; background: transparent; border: 0; box-shadow: none; }
  .desplegable .chev { display: none; }
  .desplegable .lista a { color: rgba(255, 255, 255, .85); }
  .desplegable .lista a .ic { color: #d9b8f7; }
  .desplegable .lista a:hover { background: rgba(255, 255, 255, .12); color: #fff; }
  .desplegable .lista .sep { background: rgba(255, 255, 255, .15); }
  .desplegable .lista .rotulo { color: #d9b8f7; }
  main { padding: 18px 14px 60px; }
}

.eyebrow { font: 500 10px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--acento); margin-bottom: 4px; }
h1 { margin: 0 0 16px; font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: var(--primario); line-height: 1.2; }
h2 { margin: 0 0 10px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--pizarra); }
.muted { color: var(--pizarra); font-size: 12px; }
p.muted { margin: 4px 0 12px; font-size: 13px; }

.aviso { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--borde);
         background: #fff; border-left: 3px solid var(--acento); color: var(--texto); }
.aviso.ok { background: var(--ok-fondo); border-color: #bbf7d0; border-left-color: var(--ok); color: #14532d; }
.aviso.error { background: var(--error-fondo); border-color: #fecaca; border-left-color: var(--error); color: #991b1b; }
.aviso a { color: inherit; font-weight: 600; }

.tarjeta { margin-bottom: 16px; padding: 16px; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); }
.tarjeta h2 { margin: -16px -16px 14px; padding: 10px 16px; background: var(--superficie); border-bottom: 1px solid var(--borde);
              border-radius: var(--radio) var(--radio) 0 0; font-size: 10px; letter-spacing: .1em; }
.grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px 14px; }
.grilla .ancho { grid-column: 1 / -1; }
.cols { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; align-items: start; }
@media (max-width: 1000px) { .cols { grid-template-columns: 1fr; } }

label { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 500; color: var(--pizarra); }
input, select, textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--borde); border-radius: 8px; background: #fff; color: var(--primario);
                          font: inherit; font-size: 13px; transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px rgba(166, 87, 237, .15); }
input[readonly] { background: var(--superficie); color: var(--pizarra); }
input[type=checkbox], input[type=radio] { width: auto; accent-color: var(--primario); }
textarea { min-height: 110px; resize: vertical; }
.acciones { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; align-items: center; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; padding: 6px 18px; border-radius: 999px;
       border: 1px solid var(--primario); background: var(--primario); color: #fff; font: 600 12px var(--fuente); text-decoration: none; cursor: pointer;
       transition: opacity .15s, background .15s, border-color .15s, color .15s; white-space: nowrap; }
.btn:hover { opacity: .9; color: #fff; }
.btn.sec { background: #fff; color: var(--pizarra); border-color: var(--borde); }
.btn.sec:hover { opacity: 1; color: var(--primario); border-color: var(--acento); background: rgba(166, 87, 237, .06); }
.btn.listo { background: var(--ok); border-color: var(--ok); }
.btn.peligro { background: #fff; color: var(--error); border-color: #fca5a5; }
.btn.peligro:hover { background: var(--error-fondo); opacity: 1; color: var(--error); }
.mini { font-size: 12px; margin-left: 6px; }

.oculto { display: none !important; }
.btn:disabled { opacity: .4; cursor: not-allowed; }
.btn.mini { min-height: 26px; padding: 2px 12px; margin-left: 0; font-size: 11px; }
.btn .ic { width: 15px; height: 15px; vertical-align: -3px; }
td.der, th.der { text-align: right; white-space: nowrap; }

table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio);
        overflow: hidden; box-shadow: var(--sombra); }
th { padding: 10px 14px; text-align: left; background: var(--superficie); border-bottom: 2px solid var(--borde); color: var(--pizarra);
     font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
td { padding: 9px 14px; vertical-align: top; border-bottom: 1px solid var(--borde); font-size: 13px; }
tr:last-child td { border-bottom: 0; }
tr:hover td { background: var(--superficie); }
td a { text-decoration: none; }
td a:hover { text-decoration: underline; }
table table { box-shadow: none; }

.datos-informe { box-shadow: none; }
.datos-informe th { width: 170px; background: #fff; border-bottom: 1px solid var(--borde); vertical-align: top; letter-spacing: 0; text-transform: none;
                    font-size: 12px; color: var(--pizarra); }
.datos-informe .texto-largo { white-space: pre-wrap; margin-top: 4px; max-height: 190px; overflow: auto; font-size: 12px; color: var(--texto); }

.chip { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; background: rgba(166, 87, 237, .12); color: var(--primario);
        font-size: 11px; font-weight: 600; white-space: nowrap; text-decoration: none; }
.chip.informado, .chip.activo { background: var(--ok-fondo); color: var(--ok); }
.chip.cerrado { background: rgba(166, 87, 237, .12); color: var(--primario); }
.chip.anulado { background: var(--error-fondo); color: var(--error); }

.tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.tabs a { padding: 6px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--borde); text-decoration: none; font-size: 12px; font-weight: 500; color: var(--pizarra); }
.tabs a:hover { border-color: var(--acento); color: var(--primario); }
.tabs a.activo { background: var(--primario); color: #fff; border-color: var(--primario); }
.filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }
.filtros input, .filtros select { width: auto; }

.pasos { display: flex; flex-wrap: wrap; gap: 8px; }
.paso { border: 1px solid var(--borde); border-radius: 10px; padding: 8px 10px; min-width: 150px; background: #fff; }
.paso .nom { font-weight: 600; }
.paso.hecho { background: rgba(166, 87, 237, .1); border-color: var(--acento); }
.paso.proximo { border: 2px solid var(--ok); }
.paso .det { font-size: 12px; color: var(--pizarra); }
.dato { font-size: 13px; }
.dato b { color: var(--pizarra); font-weight: 400; display: inline-block; min-width: 130px; }
.datos-fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px 32px; }
.datos-fila .dato h2 { margin: 0 0 8px; padding: 0 0 6px; background: none; }
.datos-fila .dato b { display: inline; min-width: 0; color: var(--texto); font-weight: 600; }
.datos-fila .dato > div { line-height: 1.6; }
.bloqueado { opacity: .6; }
.traza-enc { display: grid; gap: 3px; margin-bottom: 12px; font-size: 13px; }
.traza-enc b { color: var(--pizarra); font-weight: 400; display: inline-block; min-width: 170px; }
.traza td { font-size: 13px; white-space: nowrap; }
.traza tr.hecha td { background: var(--superficie); }
.traza .accion-prox { color: var(--primario); font-weight: 600; }
.ot { color: var(--ok); }
.lt { color: var(--error); }
.historial { font-size: 12px; color: var(--pizarra); max-height: 260px; overflow: auto; }
.comentarios { margin-top: 12px; display: grid; gap: 8px; }
.comentario { border-left: 3px solid var(--acento); background: var(--superficie); border-radius: 6px; padding: 8px 12px; }
.comentario-cab { display: flex; gap: 8px; align-items: center; font-size: 12px; }
.comentario-cab form { margin-left: auto; }
.comentario-cab .enlace { background: none; border: 0; padding: 0; color: var(--pizarra); font-size: 12px; cursor: pointer; text-decoration: underline; }
.comentario-cab .enlace:hover { color: var(--error); }
.comentario-texto { white-space: pre-wrap; margin-top: 4px; font-size: 13px; }

.login { margin: 0; text-align: left; }
.login .logo { display: block; height: 64px; margin: 0 auto 14px; }
.login h1 { font-size: 22px; }

@media print {
  html, body { padding: 0 !important; background: #fff !important; }
  .barra, .no-imprimir, .aviso { display: none !important; }
  main { margin: 0 !important; padding: 0 !important; max-width: none; }
  .cols { display: block; }
  table, .tarjeta { box-shadow: none; border-radius: 0; }
  th { background: #fff !important; color: #000; border-bottom: 2px solid #000; }
  a { color: #000; text-decoration: none; }
}
fieldset.seccion { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.seccion[disabled] textarea, fieldset.seccion[disabled] select, fieldset.seccion[disabled] input { background: var(--superficie); color: var(--pizarra); }
fieldset.seccion[disabled] .acciones { display: none; }
.buscador { position: relative; }
.sugerencias { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 2px); max-height: 260px; overflow-y: auto;
               background: #fff; border: 1px solid var(--acento); border-radius: 8px; box-shadow: 0 6px 18px rgba(67, 24, 102, .15); }
.sugerencias div { padding: 6px 10px; cursor: pointer; font-size: 13px; }
.sugerencias div:hover, .sugerencias div.activo { background: #f1e7fb; color: var(--primario); }
.sugerencias .nada { color: var(--pizarra); cursor: default; font-style: italic; }
.sugerencias .nada:hover { background: #fff; color: var(--pizarra); }
.historial { font-size: 12px; color: var(--pizarra); max-height: 260px; overflow: auto; }
.tarjeta .bloque-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: -16px -16px 14px; padding: 6px 12px 6px 16px;
                       background: var(--superficie); border-bottom: 1px solid var(--borde); border-radius: var(--radio) var(--radio) 0 0; }
.tarjeta .bloque-cab h2 { margin: 0; padding: 0; background: none; border: 0; }
.estudio-bloque { border-left: 4px solid var(--acento); }
.mini-btn { padding: 3px 9px; font-size: 12px; }
.titulo-seccion { margin-top: 6px; }
.agregar-estudio { margin: 0 0 18px; }
.tabs a.bloqueado { text-decoration: line-through; }
table.matriz td.c, table.matriz th.c { text-align: center; }
table.matriz tr.grupo td { background: var(--superficie); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pizarra); }
table.matriz .si { color: var(--ok); font-weight: 600; }
table.matriz .no { color: var(--pizarra); opacity: .6; }
table.matriz .cuantos { font-size: 11px; font-weight: 400; opacity: .8; }
table.ajustes { margin-top: 10px; }
table.ajustes tr.ajustado td { background: #fbf5ff; }
.permisos-grupo { margin-top: 14px; }
.rotulo-grupo { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pizarra); margin-bottom: 4px; }
label.casilla { display: flex; gap: 8px; align-items: center; color: inherit; font-size: 14px; margin: 4px 0; }
select:disabled { background: var(--superficie); color: var(--pizarra); cursor: not-allowed; }

.panel-informe { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 16px; padding: 14px 18px; background: #fff;
                 border: 1px solid var(--borde); border-left: 4px solid var(--acento); border-radius: var(--radio); box-shadow: var(--sombra); }
.panel-informe .ic-grande { width: 30px; height: 30px; color: var(--acento-fuerte); }
.panel-informe .texto { flex: 1; min-width: 240px; }
.panel-informe .texto > b:first-child { display: block; color: var(--primario); font-size: 15px; }
.panel-informe .acciones { margin: 0; }
.firmar-yo { display: flex; gap: 6px; align-items: center; margin: 6px 0 0; font-size: 12px; color: var(--pizarra); cursor: pointer; }
.flujo-bloque { margin: 14px 0 18px; border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; }
.flujo-bloque:first-of-type { margin-top: 6px; }
.flujo-bloque table { margin: 0; }
.flujo-encab { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; padding: 9px 12px 3px; background: var(--superficie); }
.flujo-titulo { font-weight: 700; color: var(--acento-fuerte); font-size: 14px; }
.flujo-tracking { display: flex; gap: 8px 18px; align-items: center; flex-wrap: wrap; padding: 4px 12px 10px; background: var(--superficie);
                   border-bottom: 1px solid var(--borde); font-size: 13px; }
.flujo-tracking .rotulo { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pizarra); }
.flujo-tracking .dato-rec { display: inline-flex; gap: 6px; align-items: center; }
.chip.flujos { padding: 1px 9px; margin-left: 4px; background: rgba(166, 87, 237, .14); color: var(--primario); font-size: 11px; font-weight: 600;
               letter-spacing: .03em; vertical-align: middle; }
h1 .chip.flujos { font-size: 12px; }
.estado-celda { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; }
.estado-celda .muted { font-size: 12px; line-height: 1.2; }.form-estudios.sin-lote .campo-lote, .bloques > .estudio-bloque:not(:first-child) .campo-lote { display: none; }
.semaforo { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
.semaforo::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.semaforo.on_time { background: var(--ok-fondo); color: var(--ok); }
.semaforo.delayed { background: var(--aviso-fondo); color: var(--aviso); }
.semaforo.late { background: var(--error-fondo); color: var(--error); }
h1 .semaforo { font-size: 12px; vertical-align: middle; }
.semaforo-total { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; }
.semaforo-total a { display: flex; flex-direction: column; min-width: 130px; padding: 10px 16px; border-radius: var(--radio); border: 1px solid var(--borde); background: #fff;
                    text-decoration: none; box-shadow: var(--sombra); border-left-width: 4px; }
.semaforo-total a b { font-size: 24px; line-height: 1.1; }
.semaforo-total a span { font-size: 12px; font-weight: 600; color: var(--pizarra); }
.semaforo-total a.on_time { border-left-color: var(--ok); }
.semaforo-total a.on_time b { color: var(--ok); }
.semaforo-total a.delayed { border-left-color: #d97706; }
.semaforo-total a.delayed b { color: var(--aviso); }
.semaforo-total a.late { border-left-color: var(--error); }
.semaforo-total a.late b { color: var(--error); }
.semaforo-total a.activo { background: var(--superficie); box-shadow: 0 0 0 2px var(--acento); }
.filtros.auto button { display: none; }
.marca small.base-modo { margin-top: 2px; font-weight: 700; color: #7ee2a8; }
.tabla-miembros { margin-bottom: 12px; }
.tabla-miembros td { vertical-align: top; }
.tabla-miembros form.edicion { margin: 0; }
.tabla-miembros .btn { white-space: nowrap; }
.tabla-miembros tr.fila-nota td { padding-top: 0; font-size: 13px; }
form.en-linea { display: flex; gap: 6px; flex: 1; min-width: 200px; margin: 0; }
form.en-linea input { flex: 1; }
.edicion .editar { display: none; }
.edicion.editando .editar { display: block; }
.edicion.editando .ver { display: none; }
.edicion .editar label { margin-top: 6px; }
.edicion .acciones { margin-top: 8px; }
.lapiz { display: inline-flex; align-items: center; gap: 4px; margin-left: 4px; padding: 1px 8px; font-size: 12px; line-height: 1.5; color: var(--pizarra);
         background: #fff; border: 1px solid var(--borde); border-radius: 4px; cursor: pointer; text-decoration: none; }
.lapiz:hover { color: var(--primario); border-color: var(--acento); background: rgba(166, 87, 237, .06); }
.lapiz .ic { width: 12px; height: 12px; }
.pie-datos { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 14px; }
.pie-datos .btn { margin-left: auto; }

form.en-linea .buscador { flex: 1; }
.filtros select[name=ubicacion] { max-width: 240px; }
.lista-medicos { columns: 3 230px; column-gap: 20px; max-height: 420px; overflow-y: auto; padding: 4px 2px; font-size: 13px; }
.lista-medicos label { display: block; margin: 0; padding: 2px 0; break-inside: avoid; font-weight: 400; color: var(--texto); text-transform: none; letter-spacing: 0; font-size: 13px; }
.lista-medicos label input { width: auto; margin-right: 4px; }
details.importar { padding: 10px 16px; }
details.importar summary { cursor: pointer; font-weight: 600; color: var(--primario); }
details.importar[open] summary { margin-bottom: 8px; }
.galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin-bottom: 12px; }
.galeria figure { margin: 0; }
.galeria img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border: 1px solid var(--borde); border-radius: 6px; background: var(--superficie); }
.galeria figcaption { font-size: 11px; line-height: 1.35; margin-top: 4px; word-break: break-word; }
.galeria figcaption form { display: inline; margin-left: 4px; }
.galeria .enlace { background: none; border: 0; padding: 0; color: var(--pizarra); font-size: 11px; cursor: pointer; text-decoration: underline; }
.galeria .enlace:hover { color: var(--error); }
.subida { display: grid; gap: 8px; }
.visor { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; background: rgba(20, 10, 30, .88); }
.visor[hidden] { display: none; }
.visor img { max-width: 92vw; max-height: 86vh; object-fit: contain; border-radius: 4px; background: #fff; }
.visor button { position: absolute; background: rgba(255, 255, 255, .15); color: #fff; border: 0; border-radius: 999px; width: 44px; height: 44px; font-size: 28px; line-height: 1; cursor: pointer; }
.visor button:hover { background: rgba(255, 255, 255, .3); }
.visor-x { top: 16px; right: 16px; }
.visor-ant { left: 16px; top: 50%; }
.visor-sig { right: 16px; top: 50%; }
.visor-pie { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; color: #fff; font-size: 13px; }
.lote-cabecera { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 24px; margin: 14px 0 16px; }
.lote-cabecera .acciones { margin-top: 0; }
.lote-cabecera form { margin: 0; }
table.tecnicas { margin-bottom: 4px; }
table.tecnicas form { margin: 0; }
.tecnica-form { margin-top: 14px; }
.tecnica-form fieldset { border: 0; padding: 0; margin: 0; }
.tecnica-form h3 { font-size: 15px; margin: 0 0 8px; }
.tecnica-form .grilla { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 640px) { .tecnica-form .grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.checks { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 4px 0; }
.checks .check { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 400; cursor: pointer; }
.checks .check input { width: auto; margin: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.chip-sel { border: 1px solid var(--borde); background: #fff; color: var(--texto); border-radius: 999px; padding: 3px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.chip-sel:hover { border-color: var(--acento); }
.chip-sel.on { background: var(--acento); border-color: var(--acento); color: #fff; }
fieldset[disabled] .chip-sel { cursor: default; opacity: .6; }
.otra-tecnica { display: flex; gap: 8px; margin-top: 6px; max-width: 420px; }
.otra-tecnica input { flex: 1; }
.lote-cabecera .tacos-contador { margin: 0 0 0 auto; text-align: right; }
.lote-cabecera .aviso-avance { flex-basis: 100%; margin: 0; }
.cols-lote > div:first-child { display: contents; }
.cols-lote > div:first-child > * { grid-column: 1; }
.cols-lote > div:last-child { grid-column: 2; grid-row: 2 / span 2; }
@media (max-width: 1000px) { .cols-lote > div:last-child { grid-column: 1; grid-row: auto; } }
.cols-lote .lote-cabecera { margin: 0; }
.templates-usados { margin-top: 4px; }
.templates-usados .lapiz { margin-left: 6px; }
.filtro-templates { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; margin-bottom: 6px; }
.filtro-templates select { width: auto; min-width: 150px; max-width: 230px; }

.envio-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 16px; align-items: start; margin-bottom: 16px; }
@media (max-width: 1000px) { .envio-cols { grid-template-columns: 1fr; } }
.envio-cols .tarjeta { margin: 0; }
.envio-cols h2 .ic { width: 18px; height: 18px; vertical-align: -3px; margin-right: 4px; }
.dest-nombre { margin: 0 0 8px; font-size: 13px; }
.envio-botones { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 14px; }
.envio-cols input[type=email], .envio-cols input[type=text] { width: 100%; }
.dest-fila { display: flex; gap: 8px; align-items: center; }
.dest-fila input[type=checkbox] { width: auto; margin: 0; flex: none; }
.dest-fila input:not([type=checkbox]) { flex: 1; min-width: 0; }
.dest-fila.wa .btn { flex: none; white-space: nowrap; }
.envio-cols label.check { display: flex; gap: 8px; align-items: center; margin: 6px 0 0; font-weight: 400; font-size: 13px; cursor: pointer; word-break: break-all; }
.envio-cols label.check input { width: auto; margin: 0; flex: none; }
.lugar-envio { padding: 0 0 12px; margin: 0 0 12px; border-bottom: 1px solid var(--borde); }
.lugar-envio:last-of-type { border-bottom: 0; margin-bottom: 4px; }
.lugar-envio .contactos { margin-top: 6px; font-size: 12px; white-space: pre-line; }
.hecho { margin: 2px 0 0 24px; font-size: 12px; color: var(--ok, #2a7a4b); }
#form-envio.apagado .envio-cols { opacity: .55; }
.wa-btn { background: #1f8f55; border-color: #1f8f55; }
#cuenta-envio { align-self: center; }

table.destinos td { vertical-align: top; }
table.destinos .ic { width: 15px; height: 15px; vertical-align: -3px; }
table.destinos td.alcance, .agregar-destino .alcance { display: flex; flex-wrap: wrap; gap: 4px 14px; }
table.destinos td.alcance label.check, .agregar-destino label.check { display: inline-flex; gap: 6px; align-items: center; margin: 0; font-weight: 400; font-size: 13px; cursor: pointer; }
table.destinos input[type=checkbox], .agregar-destino input[type=checkbox] { width: auto; margin: 0; }
table.destinos td.acciones-fila { white-space: nowrap; }
.agregar-destino { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--borde); }
.agregar-destino .en-linea { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.no-aplica { margin: 2px 0 0 24px; font-size: 12px; color: #a35a00; }
.alcance-nota { margin: 2px 0 0 24px; font-size: 12px; }
.tel-ubic { margin-top: 8px; }

.matriz-alcance { display: grid; gap: 3px; }
.matriz-alcance .fila-tipo { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; font-size: 13px; }
.matriz-alcance .fila-tipo b { min-width: 62px; font-weight: 600; color: var(--primario); }
.matriz-alcance label.check { display: inline-flex; gap: 5px; align-items: center; margin: 0; font-weight: 400; cursor: pointer; }
.matriz-alcance input[type=checkbox] { width: auto; margin: 0; }
.agregar-destino .matriz-alcance { margin-bottom: 10px; }

.panel-malignidad { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 0 0 16px; padding: 12px 18px; background: #fff;
                    border: 1px solid var(--borde); border-left: 4px solid var(--acento); border-radius: var(--radio); box-shadow: var(--sombra); }
.panel-malignidad .texto { flex: 1; min-width: 220px; }
.panel-malignidad .texto > b:first-child { display: block; color: var(--primario); font-size: 15px; }
.malig-flujos { display: grid; gap: 8px; }
.malig-flujo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; }
.malig-tipo { min-width: 74px; font-weight: 600; color: var(--primario); font-size: 13px; }
.malig-btn { font: inherit; font-size: 13px; font-weight: 600; padding: 6px 14px; border-radius: 999px; border: 2px solid; cursor: pointer; background: #fff; display: inline-block; }
.malig-btn.sospechoso { color: #8a6100; border-color: #f2c230; }
.malig-btn.maligno { color: #a31621; border-color: #e5484d; }
.malig-btn.nma { color: #1d6b3a; border-color: #3fae6a; }
.malig-btn.sospechoso:hover, .malig-btn.sospechoso.activo { background: #f9d24a; color: #4d3800; border-color: #e0b100; }
.malig-btn.maligno:hover, .malig-btn.maligno.activo { background: #e5484d; color: #fff; border-color: #c4262c; }
.malig-btn.nma:hover, .malig-btn.nma.activo { background: #3fae6a; color: #fff; border-color: #2c8f52; }
.malig-btn.activo { box-shadow: 0 0 0 3px rgba(0, 0, 0, .08); }
.malig-quitar { font: inherit; font-size: 12px; background: none; border: 0; color: var(--pizarra); text-decoration: underline; cursor: pointer; padding: 4px; }
.malig-resumen { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 16px; font-size: 13px; }
.malig-chip { padding: 3px 12px; border-radius: 999px; font-weight: 600; font-size: 12px; background: #eee; color: #555; }
.malig-chip.sospechoso { background: #f9d24a; color: #4d3800; }
.malig-chip.maligno { background: #e5484d; color: #fff; }
.malig-chip.nma { background: #3fae6a; color: #fff; }

th.num, td.num { text-align: right; white-space: nowrap; }
input.num { text-align: right; }
.totales-fact { display: flex; flex-wrap: wrap; gap: 0; margin-top: 12px; border: 1px solid var(--borde); border-radius: 10px; background: #fff; overflow: hidden; width: fit-content; }
.totales-fact > div { display: flex; flex-direction: column; gap: 2px; padding: 8px 18px; border-right: 1px solid var(--borde); }
.totales-fact > div:last-child { border-right: 0; }
.totales-fact span { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--pizarra); }
.totales-fact b { font-size: 16px; }
.cols-factura { grid-template-columns: 3fr 1fr; }
.filtros-facturar .fila-filtros { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin-bottom: 10px; }
.filtros-facturar .fila-filtros:last-child { margin-bottom: 0; }
.filtros-facturar .campo { display: flex; flex-direction: column; gap: 4px; min-width: 120px; }
.filtros-facturar .campo.ancho-campo { min-width: 170px; flex: 1 1 170px; }
.filtros-facturar label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pizarra); margin: 0; }
.tabla-facturar td, .tabla-facturar th { padding-top: 8px; padding-bottom: 8px; }
.barra-tarifa { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 14px; }
.segmentado { display: inline-flex; border: 1px solid var(--borde); border-radius: 8px; overflow: hidden; background: #fff; }
.segmentado a { padding: 6px 14px; font-size: 13px; text-decoration: none; color: var(--texto); }
.segmentado a.activo { background: var(--superficie); font-weight: 600; box-shadow: inset 0 -2px 0 var(--acento); }
details.tarjeta > summary { cursor: pointer; list-style: none; }
details.tarjeta > summary::-webkit-details-marker { display: none; }
details.modificar > summary { cursor: pointer; display: inline-block; list-style: none; }
details.modificar[open] { min-width: 330px; }
details.modificar .acciones { margin-top: 6px; }
.coberturas-tarifa { max-height: 260px; overflow-y: auto; border: 1px solid var(--borde); border-radius: 8px; padding: 6px 10px; background: #fff; }
.coberturas-tarifa .check { display: flex; gap: 6px; align-items: center; margin: 3px 0; font-weight: 400; cursor: pointer; }
.coberturas-tarifa .check input { width: auto; margin: 0; }
.cols-admin { grid-template-columns: 230px 1fr; }
@media (max-width: 900px) { .cols-admin { grid-template-columns: 1fr; } }
.admin-menu { display: flex; flex-direction: column; gap: 12px; }
.admin-seccion { padding: 12px 14px; }
.admin-rotulo { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--pizarra); margin-bottom: 6px; }
.admin-seccion a, .admin-seccion .proximamente { display: block; padding: 7px 8px; border-radius: 6px; font-size: 13px; font-weight: 500; text-decoration: none; color: var(--texto); }
.admin-seccion a:hover { background: var(--superficie); color: var(--acento-fuerte); }
.admin-seccion .proximamente { color: var(--pizarra); opacity: .7; }
.admin-seccion .proximamente em { font-size: 11px; font-style: normal; margin-left: 4px; }
.panel-cobros { padding-bottom: 0; }
.cobros-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; padding: 4px 0 12px; }
.cobros-mes-cab { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 8px; border-bottom: 2px solid var(--borde); font-weight: 700; }
.cobro-fila { display: grid; grid-template-columns: 52px 18px 1fr auto; gap: 8px; align-items: center; padding: 6px 8px; border-bottom: 1px solid var(--borde); font-size: 13px; }
.cobro-fecha { font-family: ui-monospace, Consolas, monospace; font-size: 11px; color: var(--pizarra); }
.cobro-monto { font-family: ui-monospace, Consolas, monospace; font-size: 12px; text-align: right; }
.cobros-vacio { padding: 10px 8px; }
.cobros-sin { text-align: center; padding: 48px 0; color: var(--pizarra); }
.cobros-icono { font-size: 28px; opacity: .25; }
.punto-cobro { display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px; border-radius: 50%; font-size: 9px; font-style: normal; font-weight: 700; line-height: 1; }
.punto-cobro.fc { background: var(--acento); }
.punto-cobro.atr { background: #f59e0b; }
.punto-cobro.atr5 { background: #ef4444; }
.punto-cobro.tent { background: #94a3b8; color: #fff; }
.punto-cobro.conf { background: transparent; color: #10b981; font-size: 14px; }
.leyenda-cobros { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 10px 16px; margin: 0 -16px; border-top: 1px solid var(--borde); background: var(--superficie); font-size: 11px; color: var(--pizarra); }
.leyenda-cobros span { display: inline-flex; align-items: center; gap: 6px; }
.ic-titulo { width: 24px; height: 24px; color: var(--acento); vertical-align: -3px; margin-right: 4px; }
.admin-seccion a .ic, .admin-seccion .proximamente .ic { width: 15px; height: 15px; color: var(--acento); margin-right: 6px; vertical-align: -3px; }
.admin-seccion .proximamente .ic { opacity: .6; }
.cobros-icono { width: 30px; height: 30px; color: var(--acento); opacity: .35; font-size: inherit; }
.punto-conf { width: 14px; height: 14px; color: #10b981; stroke-width: 3; }
.grilla.grilla-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; }
@media (max-width: 560px) { .grilla.grilla-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.banner-vista { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 8px 16px; background: #fff4d6; border-bottom: 2px solid #f59e0b; color: #5c3b00; font-size: 13px; }
.banner-vista > div { flex: 1 1 320px; }
.banner-vista span { opacity: .85; }
.banner-vista form { margin: 0; }
.banner-vista select { width: auto; min-width: 160px; }
.ver-como-tarjeta { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; margin-bottom: 14px; padding: 12px 16px; }
.ver-como-tarjeta > div { flex: 1 1 380px; }
.ver-como-tarjeta .muted { margin-top: 2px; }
.condiciones-usuario { display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: center; align-self: end; min-height: 40px; }
.estado-cobro { width: 17px; height: 17px; vertical-align: middle; }
.estado-cobro.ok { color: #2e9e84; }
.estado-cobro.atr { color: #f5a342; }
.estado-cobro.atr5 { color: #e5484d; }
.cobro-fila { grid-template-columns: 56px 20px 1fr auto; }
.cobro-empresa { color: #1c6fb5; text-decoration: none; text-transform: uppercase; font-size: 12.5px; }
.cobro-empresa:hover { text-decoration: underline; }
.cobros-mes-cab { font-size: 18px; font-weight: 500; color: var(--pizarra); }
.cobros-mes-cab b { font-weight: 500; }
.editar-codigo { display: flex; gap: 6px; align-items: center; margin: 0; }
.editar-codigo input { width: 110px; }
.buscador-combo .sugerencias { position: fixed; z-index: 1000; right: auto; min-width: 280px; width: max-content; max-width: min(520px, 90vw); }
.sugerencias [data-valor] { display: flex; flex-direction: column; gap: 1px; }
.sugerencias [data-valor] b { font-weight: 600; }
.sugerencias .desc { font-size: 12px; color: var(--pizarra); white-space: normal; }
.sugerencias [data-valor].activo .desc, .sugerencias [data-valor]:hover .desc { color: var(--primario); }
.editar-codigo .buscador-combo { width: 110px; }
.zona-eliminar { border-color: #e2b4ad; }
.zona-eliminar h2 { color: #a3281b; }
.zona-eliminar p { margin-top: 0; }
tr.importe-cero td { background: #fff4e5; }
tr.importe-cero td:first-child { box-shadow: inset 3px 0 0 #e08a00; }
.chip-cero { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #e08a00; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.campo-plan[hidden] { display: none; }
.sin-vinetas { list-style: none; margin: 0 0 12px; padding: 0; }
.sin-vinetas li { padding: 2px 0; }
.totales-fact .dif-cobro b { color: #b3261e; }

.autoestado { font-size: 12px; color: var(--pizarra); }
.autoestado.ok { color: var(--ok, #2a7a4b); }
.autoestado.error { color: #b42318; }
.tareas { display: grid; gap: 8px; margin: 8px 0; }
.tarea { border-left: 3px solid var(--acento); background: var(--superficie); border-radius: 6px; padding: 8px 12px; font-size: 13px; }
.tarea.cerrada { opacity: .75; border-left-color: var(--pizarra); }
.tarea-cab { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tarea-texto { white-space: pre-wrap; margin-top: 4px; }
.tarea-pie { font-size: 12px; margin-top: 4px; }
.tarea .acciones { margin-top: 6px; }
.tarea .edicion { margin: 6px 0 0; }
.chip.urgente { background: #fde8e6; color: #b42318; }
.chip.prio-alta { background: #fde8e6; color: #b42318; }
.chip.prio-media { background: #fff3d6; color: #8a5a00; }
.chip.prio-baja { background: #e3f3e8; color: #2a7a4b; }
.tareas-cerradas summary { cursor: pointer; color: var(--pizarra); font-size: 13px; margin-top: 6px; }
.datos-tarea { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.form-tarea { max-width: 900px; }
.tarea-columnas { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.par-selects { display: grid; grid-template-columns: 1fr 2fr; gap: 8px; }
.form-tarea .opciones { display: flex; flex-wrap: wrap; gap: 12px; }
.form-tarea label.check { display: flex; gap: 6px; align-items: center; font-weight: normal; }
@media (max-width: 700px) { .tarea-columnas, .par-selects { grid-template-columns: 1fr; } }
.config-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; align-items: start; }
.config-grid .tarjeta { margin-bottom: 0; }
.accesos { display: grid; gap: 6px; }
.acceso { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--borde); border-radius: 6px; color: inherit; text-decoration: none; }
.acceso:hover { background: var(--superficie); border-color: var(--acento); }
.acceso .ic { flex: none; color: var(--acento); }
.acceso small { display: block; color: var(--pizarra); font-size: 12px; }
.menu .cuenta.urgente { background: #c0392b; }
.filtros-tareas { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 8px 0 14px; }
.tabla-tareas td { vertical-align: top; }
.tabla-tareas tr.cerrada td { opacity: .7; }
.tabla-tareas .tarea-texto { white-space: pre-wrap; font-size: 12px; margin-top: 2px; }
.tabla-tareas .edicion { margin: 0; }
.lista-ihq { margin: 6px 0 10px 20px; padding: 0; }
.lista-ihq li { padding: 3px 0; }
.lista-ihq .lapiz { margin-left: 6px; }
.agregar-ihq { display: flex; gap: 8px; align-items: stretch; margin-bottom: 12px; }
.agregar-ihq .buscador, .agregar-ihq > input { flex: 1; min-width: 0; }
.lista-ihq-caja { border: 1px solid var(--borde); border-radius: 10px; background: #fff; overflow: hidden; }
.lista-ihq-titulo { padding: 8px 12px; font-weight: 600; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; background: var(--superficie); border-bottom: 1px solid var(--borde); }
.lista-ihq-caja .lista-ihq { list-style: decimal inside; margin: 0; padding: 0; }
.lista-ihq-caja .lista-ihq li { padding: 8px 12px; border-bottom: 1px solid var(--borde); display: flex; gap: 8px; align-items: center; }
.lista-ihq-caja .lista-ihq li:last-child { border-bottom: 0; }
.lista-ihq-caja .lista-ihq li span { flex: 1; }
.zona-soltar { display: block; padding: 28px 16px; text-align: center; border: 2px dashed var(--borde); border-radius: 8px; cursor: pointer; color: var(--pizarra); }
.zona-soltar.encima, .zona-soltar:hover { border-color: var(--acento); background: var(--superficie); }
.resultados-orden { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 4px; font-size: 13px; }
.resultados-orden .ok { color: #2a7a4b; }
.resultados-orden .aviso { color: #8a5a00; }
.resultados-orden .error { color: #b42318; }
.aviso-orden { margin: 8px 0 16px; padding: 10px 14px; border-left: 3px solid #d99a00; background: #fff8e6; border-radius: 6px; font-size: 13px; }
.orden-pendiente { display: flex; gap: 14px; padding: 10px 0; border-top: 1px solid var(--borde); }
.orden-pendiente:first-of-type { border-top: 0; }
.orden-pendiente img { width: 110px; border: 1px solid var(--borde); border-radius: 4px; }
.asignar-orden { display: flex; gap: 8px; margin: 8px 0 4px; flex-wrap: wrap; }
.asignar-orden input { max-width: 240px; }
.clave-nueva { border-left: 3px solid #2a7a4b; }
.clave-texto { width: 100%; font-family: var(--mono, monospace); font-size: 14px; padding: 8px 10px; }
.pap-micro { max-width: 820px; }
.pap-micro h3 { margin: 20px 0 6px; font-size: 17px; font-weight: 500; color: var(--pizarra); }
.pap-fila { display: grid; grid-template-columns: 130px 84px minmax(0, 1fr); gap: 8px; align-items: center; margin: 5px 0; }
.pap-fila label { margin: 0; }
.pap-fila select { width: 100%; }
.pap-simple { grid-template-columns: 130px minmax(0, 340px); }
.pap-abrev { width: 100%; text-align: center; font-weight: 600; }
.pap-abrev.invalida { border-color: #d64545; background: #fdeaea; }
.pap-obs { grid-template-columns: 130px minmax(0, 1fr); align-items: start; margin-top: 14px; }
.chip.sospechoso[hidden] { display: none; }
.chip.sospechoso { grid-column: 3; justify-self: start; background: #fff1c2; color: #7a5600; }
@media (max-width: 640px) { .pap-fila, .pap-simple, .pap-obs { grid-template-columns: 1fr; } }

.cols-mitad { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 1000px) { .cols-mitad { grid-template-columns: 1fr; } }
.orden-lateral { position: sticky; top: 12px; background: var(--superficie); border: 1px solid var(--borde); border-radius: 8px; padding: 10px; }
.orden-barra { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.orden-botones { margin-left: auto; display: flex; gap: 4px; }
.orden-marco { height: calc(100vh - 110px); overflow: auto; background: #fff; border-radius: 4px; text-align: center; }
.orden-marco img { max-width: 100%; transition: transform .15s; transform-origin: center; }
.orden-marco img.girada { max-width: none; }
