/* ============================================================================================
   ALBA TICKETS — interfaz del solicitante (usa las variables del tema de A.L.B.A.)
   ============================================================================================ */

/* ---------- Botones ---------- */
.tk-btn-sec{ background:var(--surface-2) !important; border:1px solid var(--border) !important; color:var(--text) !important; }
.tk-btn-sec:hover{ border-color:var(--accent) !important; }
.tk-btn-peligro{ background:color-mix(in srgb, #ef4444 12%, var(--surface-2)) !important; border:1px solid color-mix(in srgb, #ef4444 45%, var(--border)) !important; color:#fca5a5 !important; }

/* ---------- Ventanas ---------- */
.tk-modal{ position:fixed; inset:0; z-index:100000; display:grid; place-items:center; padding:16px; background:rgba(0,0,0,.66); backdrop-filter:blur(6px); }
.tk-modal-caja{ width:min(620px, 100%); max-height:calc(100vh - 32px); overflow:auto; padding:22px; border-radius:var(--radius-lg, 18px); background:var(--surface); border:1px solid var(--border); box-shadow:0 30px 80px rgba(0,0,0,.55); display:flex; flex-direction:column; gap:14px; }
.tk-modal-cab{ display:flex; align-items:center; gap:12px; }
.tk-modal-cab h2{ margin:0; font-size:1.2rem; font-weight:900; }
.tk-modal-cab small{ color:var(--text-dim); font-size:.8rem; }
.tk-x{ margin-left:auto; width:36px; height:36px; border-radius:50%; border:1px solid var(--border); background:var(--surface-2); color:var(--text); cursor:pointer; }
.tk-modal-pie{ display:flex; justify-content:flex-end; gap:8px; }
.tk-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.tk-campo{ display:flex; flex-direction:column; gap:5px; font-size:.78rem; font-weight:800; color:var(--text-dim); }
.tk-campo input, .tk-campo textarea, .tk-linea input{ width:100%; min-height:44px; padding:10px 12px; border-radius:12px; border:1px solid var(--border); background:var(--surface-2); color:var(--text); font:600 .95rem var(--font-ui); }
.tk-campo textarea{ resize:vertical; }
.tk-campo input:focus, .tk-campo textarea:focus, .tk-linea input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.tk-error{ padding:10px 12px; border-radius:12px; background:color-mix(in srgb, #ef4444 12%, transparent); border:1px solid color-mix(in srgb, #ef4444 45%, transparent); color:#fca5a5; font-size:.86rem; font-weight:700; }
.tk-listo{ display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; padding:18px 6px; }
.tk-listo h2{ margin:0; font-size:1.3rem; font-weight:900; }
.tk-listo p{ margin:0; color:var(--text-dim); max-width:440px; }
.tk-listo-ico{ font-size:46px; line-height:1; }
.tk-listo-acc{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:6px; }
.tk-folio{ font:900 1.9rem ui-monospace, Consolas, monospace; letter-spacing:.06em; color:var(--accent); padding:6px 18px; border-radius:14px; border:1px dashed var(--accent); }

/* ---------- La app ---------- */
html.tk-activo, html.tk-activo body{ overflow:hidden !important; }
.tk-app{ position:fixed; inset:0; z-index:99990; display:flex; flex-direction:column; background:var(--bg); color:var(--text); font-family:var(--font-ui); }
.tk-barra{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px clamp(14px, 3vw, 28px); border-bottom:1px solid var(--border);
  background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 10%, var(--surface)), var(--surface)); }
.tk-marca{ display:flex; align-items:center; gap:10px; }
.tk-marca img{ width:36px; height:36px; }
.tk-marca b{ display:block; font-size:1.05rem; font-weight:900; letter-spacing:.02em; }
.tk-marca small{ display:block; color:var(--text-dim); font-size:.74rem; }
.tk-usuario{ display:flex; align-items:center; gap:10px; min-width:0; }
.tk-avatar{ width:38px; height:38px; flex:none; border-radius:50%; display:grid; place-items:center; font-weight:900; font-size:.85rem; color:#04211c; background:var(--accent); }
.tk-usuario-txt{ min-width:0; }
.tk-usuario-txt b{ display:block; font-size:.88rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:220px; }
.tk-usuario-txt small{ display:block; color:var(--text-dim); font-size:.74rem; }
.tk-cuerpo{ flex:1; min-height:0; display:grid; grid-template-columns:240px minmax(0, 1fr); }
.tk-nav{ display:flex; flex-direction:column; gap:4px; padding:16px 12px; border-right:1px solid var(--border); overflow:auto; background:color-mix(in srgb, var(--surface) 55%, transparent); }
.tk-nav-btn{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:12px; border:1px solid transparent; background:transparent; color:var(--text); cursor:pointer; text-align:left; font:700 .9rem var(--font-ui); }
.tk-nav-btn:hover{ background:var(--surface-2); }
.tk-nav-btn.activo{ background:color-mix(in srgb, var(--accent) 14%, var(--surface-2)); border-color:color-mix(in srgb, var(--accent) 45%, var(--border)); }
.tk-nav-crear{ margin-bottom:8px; background:var(--accent) !important; color:#04211c !important; font-weight:900; }
.tk-nav-ico{ width:22px; text-align:center; }
.tk-nav-txt{ flex:1; }
.tk-nav-n{ min-width:24px; height:22px; padding:0 7px; border-radius:999px; display:grid; place-items:center; font-size:.74rem; font-weight:900; background:var(--surface-2); border:1px solid var(--border); color:var(--text-dim); }
.tk-nav-btn.alerta .tk-nav-n{ background:#ef4444; border-color:#ef4444; color:#fff; }
.tk-main{ overflow:auto; padding:clamp(16px, 3vw, 30px); }
.tk-pag-cab{ margin-bottom:16px; }
.tk-pag-cab h1{ margin:0; font-size:clamp(1.4rem, 3vw, 1.9rem); font-weight:900; }
.tk-pag-cab p{ margin:4px 0 0; color:var(--text-dim); }
.tk-pag-cab-fila{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.tk-card{ border-radius:var(--radius-lg, 18px); border:1px solid var(--border); background:var(--surface); padding:20px; }
.tk-form{ display:flex; flex-direction:column; gap:14px; max-width:920px; }
.tk-sec-tit{ display:flex; align-items:center; gap:10px; font-size:.78rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dim); margin-top:4px; }
.tk-sec-tit span{ width:24px; height:24px; border-radius:8px; display:grid; place-items:center; background:var(--accent); color:#04211c; letter-spacing:0; }

/* Renglones de productos */
.tk-lineas{ display:flex; flex-direction:column; gap:10px; }
.tk-linea{ display:grid; grid-template-columns:28px minmax(0, 1fr) 130px 44px; gap:10px; align-items:start; padding:12px; border-radius:14px; border:1px solid var(--border); background:var(--surface-2); }
.tk-linea-n{ width:28px; height:28px; margin-top:8px; border-radius:50%; display:grid; place-items:center; font-weight:900; font-size:.8rem; background:var(--surface); border:1px solid var(--border); }
.tk-linea-cod{ position:relative; min-width:0; }
.tk-cod{ font-family:ui-monospace, Consolas, monospace !important; text-transform:uppercase; }
.tk-cod::placeholder{ text-transform:none; font-family:var(--font-ui); }
.tk-linea-desc{ margin-top:6px; font-size:.82rem; color:var(--text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tk-linea-desc i{ color:var(--warn, #fbbf24); font-style:normal; }
.tk-linea-desc em{ color:var(--accent); font-style:normal; font-weight:800; }
.tk-linea-cant{ display:flex; flex-direction:column; gap:4px; font-size:.7rem; font-weight:800; color:var(--text-dim); }
.tk-linea-cant span{ display:none; }
.tk-quitar{ height:44px; border-radius:12px; border:1px solid var(--border); background:var(--surface); cursor:pointer; font-size:16px; }
.tk-quitar:disabled{ opacity:.35; cursor:default; }
.tk-sug{ position:absolute; left:0; right:0; top:calc(44px + 4px); z-index:5; display:flex; flex-direction:column; max-height:300px; overflow:auto; border-radius:12px; background:var(--surface); border:1px solid var(--border); box-shadow:0 18px 40px rgba(0,0,0,.45); }
.tk-sug:empty{ display:none; }
.tk-sug button{ display:flex; flex-direction:column; gap:2px; padding:10px 12px; border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.tk-sug button:hover, .tk-sug button:focus{ background:var(--surface-2); outline:none; }
.tk-sug b{ font:800 .82rem ui-monospace, Consolas, monospace; color:var(--accent); }
.tk-sug span{ font-size:.82rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tk-sug i{ font-style:normal; font-size:.72rem; color:var(--text-dim); }
.tk-sug-vacio{ padding:12px; font-size:.82rem; color:var(--text-dim); }
.tk-agregar{ align-self:flex-start; }
.tk-form-pie{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:6px; border-top:1px solid var(--border); }
.tk-form-pie span{ color:var(--text-dim); font-weight:700; }
.tk-enviar{ min-height:48px; padding:0 22px; }

/* Tarjetas de ticket */
.tk-lista{ display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:14px; }
.tk-ticket{ display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:var(--radius-lg, 18px); border:1px solid var(--border); background:var(--surface); border-top:4px solid var(--tk-c, var(--border)); }
.tk-e-pendiente{ --tk-c:#fbbf24; } .tk-e-aprobado{ --tk-c:#60a5fa; } .tk-e-entregado{ --tk-c:var(--accent); }
.tk-e-vencido{ --tk-c:#ef4444; } .tk-e-devuelto{ --tk-c:#a3a3a3; } .tk-e-rechazado{ --tk-c:#f87171; } .tk-e-cancelado{ --tk-c:#6b7280; }
.tk-ticket-cab{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.tk-ticket-cab h3{ margin:4px 0 0; font-size:1.02rem; font-weight:900; }
.tk-folio-chip{ font:800 .74rem ui-monospace, Consolas, monospace; color:var(--text-dim); }
.tk-estado{ flex:none; padding:4px 10px; border-radius:999px; font-size:.74rem; font-weight:900; color:var(--tk-c); border:1px solid color-mix(in srgb, var(--tk-c) 45%, transparent); background:color-mix(in srgb, var(--tk-c) 12%, transparent); }
.tk-ticket-motivo{ margin:0; color:var(--text-dim); font-size:.86rem; }
.tk-ticket-datos{ display:flex; flex-wrap:wrap; gap:6px; }
.tk-ticket-datos span{ display:flex; flex-direction:column; padding:6px 10px; border-radius:10px; background:var(--surface-2); font-size:.8rem; }
.tk-ticket-datos i{ font-style:normal; font-size:.62rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--text-dim); }
.tk-plazo{ font-weight:900; font-size:.86rem; color:var(--tk-c); }
.tk-rechazo{ padding:10px 12px; border-radius:12px; background:color-mix(in srgb, #ef4444 10%, transparent); font-size:.86rem; }
.tk-ticket-prod summary{ cursor:pointer; font-weight:800; font-size:.86rem; color:var(--text-dim); }
.tk-ticket-prod ul{ list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.tk-ticket-prod li{ display:flex; justify-content:space-between; gap:10px; padding:8px 10px; border-radius:10px; background:var(--surface-2); }
.tk-ticket-prod li b{ display:block; font:800 .8rem ui-monospace, Consolas, monospace; color:var(--accent); word-break:break-all; }
.tk-ticket-prod li span{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:.8rem; color:var(--text-dim); }
.tk-ticket-prod li em{ flex:none; font-style:normal; font-weight:900; }
.tk-ticket-acc{ display:flex; justify-content:flex-end; }
.tk-vacio{ display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; padding:40px 20px; color:var(--text-dim); }

.tk-toast{ position:fixed; left:50%; bottom:22px; transform:translate(-50%, 20px); z-index:100001; padding:12px 18px; border-radius:14px; background:var(--surface); border:1px solid var(--border); box-shadow:0 18px 40px rgba(0,0,0,.4); font-weight:800; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; }
.tk-toast.ver{ opacity:1; transform:translate(-50%, 0); }

/* ---------- Celular ---------- */
@media (max-width:820px){
  .tk-cuerpo{ grid-template-columns:1fr; grid-template-rows:auto minmax(0, 1fr); }
  .tk-nav{ flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--border); padding:10px; gap:6px; scrollbar-width:none; }
  .tk-nav::-webkit-scrollbar{ display:none; }
  .tk-nav-btn{ flex:none; padding:9px 12px; }
  .tk-nav-crear{ margin-bottom:0; }
  .tk-usuario-txt, .tk-marca small{ display:none; }
  .tk-grid2{ grid-template-columns:1fr; }
  .tk-linea{ grid-template-columns:minmax(0, 1fr) 44px; }
  .tk-linea-cod{ grid-column:1 / -1; }
  .tk-linea-cant{ flex-direction:row; align-items:center; gap:10px; }
  .tk-linea-cant input{ max-width:140px; }
  .tk-linea-n{ display:none; }
  .tk-linea-cant span{ display:block; }
  .tk-lista{ grid-template-columns:1fr; }
}
.tk-dev-nota{ display:block; margin-top:4px; font-size:.76rem; font-weight:600; color:var(--text-dim); }
.tk-dev-nota b{ color:var(--text); }
.tk-dev-nota.movida{ color:var(--warn, #fbbf24); }
.tk-agregar-fila{ display:flex; gap:8px; flex-wrap:wrap; }
.tk-ayuda-pegar{ margin:0; font-size:.76rem; color:var(--text-dim); }
.tk-ayuda-pegar code{ font-family:ui-monospace, Consolas, monospace; background:var(--surface-2); padding:1px 6px; border-radius:6px; }
.tk-lista-txt{ width:100%; padding:12px; border-radius:12px; border:1px solid var(--border); background:var(--surface-2); color:var(--text); font:600 .9rem ui-monospace, Consolas, monospace; resize:vertical; }
.tk-no-hay{ color:#f87171 !important; font-style:normal; font-weight:800; }
.tk-form-pie-btns{ display:flex; gap:8px; flex-wrap:wrap; }
.tk-entrega{ display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px 12px; border-radius:12px; background:color-mix(in srgb, #60a5fa 10%, var(--surface-2)); border:1px solid color-mix(in srgb, #60a5fa 35%, var(--border)); }
.tk-entrega i{ display:block; font-style:normal; font-size:.66rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); }
.tk-entrega b{ font-size:.88rem; }
.tk-firmado{ font-size:.84rem; font-weight:800; color:var(--accent); }
.tk-incid{ display:flex; flex-direction:column; gap:4px; padding:10px 12px; border-radius:12px; background:color-mix(in srgb, #fbbf24 10%, var(--surface-2)); font-size:.84rem; }
.tk-incid small{ color:var(--text-dim); }
.tk-bloqueado{ font-size:.8rem; color:var(--text-dim); }
.tk-ticket-acc{ gap:8px; flex-wrap:wrap; }

/* ---------- Almacen en A.L.B.A.: atender tickets ---------- */
.tka{ display:flex; flex-direction:column; gap:14px; }
.tka-cab{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:18px 20px; border-radius:var(--radius-lg, 18px); border:1px solid var(--border);
  background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 12%, var(--surface)), var(--surface)); }
.tka-cab h2{ margin:0; font-size:1.25rem; font-weight:900; }
.tka-cab small{ color:var(--text-dim); font-size:.8rem; }
.tka-ico{ width:46px; height:46px; flex:none; display:grid; place-items:center; border-radius:14px; font-size:24px; background:color-mix(in srgb, var(--accent) 16%, transparent); }
.tka-cab-btns{ margin-left:auto; display:flex; gap:8px; }
.tka-filtros{ display:flex; gap:6px; flex-wrap:wrap; }
.tka-filtro{ padding:9px 13px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--text); font:700 .84rem var(--font-ui); cursor:pointer; }
.tka-filtro i{ font-style:normal; margin-left:4px; padding:1px 7px; border-radius:999px; background:var(--surface-2); color:var(--text-dim); font-size:.72rem; }
.tka-filtro.activo{ border-color:var(--accent); background:color-mix(in srgb, var(--accent) 14%, var(--surface)); }
.tka-filtro.alerta i{ background:#ef4444; color:#fff; }
.tka-lista{ display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:12px; align-items:start; }
.tka-ticket{ display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:var(--radius-lg, 18px); border:1px solid var(--border); background:var(--surface); border-top:4px solid var(--tk-c, var(--border)); }
.tka-t-pendiente{ --tk-c:#fbbf24; } .tka-t-aprobado{ --tk-c:#60a5fa; } .tka-t-entregado{ --tk-c:var(--accent); } .tka-t-vencido{ --tk-c:#ef4444; }
.tka-t-devuelto{ --tk-c:#a3a3a3; } .tka-t-rechazado{ --tk-c:#f87171; } .tka-t-cancelado{ --tk-c:#6b7280; }
.tka-t-cab{ display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.tka-t-cab h3{ margin:2px 0; font-size:1.02rem; font-weight:900; }
.tka-t-cab small{ color:var(--text-dim); font-size:.78rem; }
.tka-folio{ font:800 .74rem ui-monospace, Consolas, monospace; color:var(--text-dim); }
.tka-t-estado{ flex:none; padding:4px 10px; border-radius:999px; font-size:.74rem; font-weight:900; color:var(--tk-c); border:1px solid color-mix(in srgb, var(--tk-c) 45%, transparent); background:color-mix(in srgb, var(--tk-c) 12%, transparent); }
.tka-t-motivo{ margin:0; color:var(--text-dim); font-size:.86rem; }
.tka-datos{ display:grid; grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)); gap:6px; }
.tka-datos span{ display:flex; flex-direction:column; padding:6px 8px; border-radius:8px; background:var(--surface-2); font-size:.78rem; }
.tka-datos i{ font-style:normal; font-size:.62rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); }
.tka-acc{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.tka-btn{ min-height:38px; }
.tka-prim{ background:var(--accent) !important; color:#04211c !important; border-color:var(--accent) !important; }
.tka-peligro{ background:color-mix(in srgb, #ef4444 12%, var(--surface-2)) !important; border-color:color-mix(in srgb, #ef4444 45%, var(--border)) !important; color:#fca5a5 !important; }
.tka-mini{ display:flex; flex-direction:column; gap:10px; padding:12px; border-radius:14px; border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border)); background:color-mix(in srgb, var(--accent) 6%, var(--surface-2)); }
.tka-mini select{ min-height:44px; padding:0 10px; border-radius:12px; border:1px solid var(--border); background:var(--surface-2); color:var(--text); }
.tka-vacio{ padding:30px; text-align:center; color:var(--text-dim); border:1px dashed var(--border); border-radius:16px; grid-column:1 / -1; }
.tka-aviso{ padding:10px 14px; border-radius:12px; background:var(--surface-2); border:1px solid var(--accent); font-weight:700; }

/* Firma */
.tkf{ position:fixed; inset:0; z-index:100002; display:grid; place-items:center; padding:12px; background:rgba(0,0,0,.72); backdrop-filter:blur(6px); }
.tkf-caja{ width:min(720px, 100%); max-height:calc(100vh - 24px); overflow:auto; display:flex; flex-direction:column; gap:12px; padding:18px; border-radius:20px; background:var(--surface); border:1px solid var(--border); }
.tkf-cab{ display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.tkf-cab b{ display:block; font-size:1.1rem; }
.tkf-cab small{ color:var(--text-dim); }
.tkf-texto{ margin:0; font-size:.92rem; }
.tkf-lienzo{ position:relative; height:min(46vh, 300px); border-radius:14px; background:#fff; border:2px dashed #c9ccd2; touch-action:none; }
.tkf-lienzo canvas{ position:absolute; inset:0; width:100%; height:100%; touch-action:none; cursor:crosshair; }
.tkf-linea{ position:absolute; left:8%; right:8%; bottom:22%; border-top:1.5px solid #9aa0aa; padding-top:4px; text-align:center; font-size:.72rem; color:#9aa0aa; pointer-events:none; }
.tkf-pie{ display:flex; justify-content:space-between; gap:8px; }
.tkf-pie .btn{ min-height:48px; flex:1; }
.tkf-ver{ background:#fff; border-radius:14px; padding:16px; display:grid; place-items:center; min-height:160px; }
.tkf-ver img{ max-width:100%; max-height:50vh; }
@media (max-width:720px){ .tka-lista{ grid-template-columns:1fr; } .tk-entrega{ grid-template-columns:1fr; } .tka-cab-btns{ margin-left:0; } }

/* ---------- Acceso: bienvenida de solicitante y mensajes ---------- */
.tk-bienvenida{ display:flex; align-items:center; gap:12px; margin-bottom:12px; padding:12px 14px; border-radius:14px;
  border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border)); background:color-mix(in srgb, var(--accent) 12%, var(--surface-2)); animation:tkEntra .25s ease; }
.tk-bienvenida[hidden]{ display:none !important; }
.tk-bv-ico{ width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:12px; font-size:20px; background:color-mix(in srgb, var(--accent) 22%, transparent); }
.tk-bienvenida b{ display:block; font-size:1rem; font-weight:900; }
.tk-bienvenida small{ display:inline-block; margin-top:2px; padding:2px 9px; border-radius:999px; font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:#04211c; background:var(--accent); }
.tk-bienvenida em{ display:block; margin-top:6px; font-style:normal; font-size:.78rem; font-weight:700; color:var(--warn, #fbbf24); }
html #loginCard.tk-es-sol #loginPasskeyBtn, html #loginCard.tk-es-sol .login-links{ display:none !important; }
.tk-msg{ display:flex; gap:10px; align-items:flex-start; margin-top:4px; padding:11px 13px; border-radius:14px; text-align:left; animation:tkEntra .25s ease;
  border:1px solid color-mix(in srgb, var(--tk-m, #ef4444) 45%, var(--border)); background:color-mix(in srgb, var(--tk-m, #ef4444) 10%, var(--surface-2)); }
.tk-msg-horario{ --tk-m:#fbbf24; } .tk-msg-clave{ --tk-m:#f87171; } .tk-msg-bloqueo{ --tk-m:#fb923c; } .tk-msg-cuenta{ --tk-m:#a3a3a3; }
.tk-msg-ico{ font-size:20px; line-height:1.2; }
.tk-msg b{ display:block; font-size:.92rem; color:var(--text); }
.tk-msg small{ display:block; margin-top:2px; font-size:.8rem; color:var(--text-dim); line-height:1.4; }
.tk-msg small b{ display:inline; font-size:inherit; }
/* Los errores de siempre de A.L.B.A. tambien como tarjeta */
#loginMsg.err:not(:empty):not(:has(.tk-msg)){ display:flex; gap:10px; align-items:flex-start; margin-top:4px; padding:11px 13px; border-radius:14px; text-align:left;
  border:1px solid color-mix(in srgb, #ef4444 45%, var(--border)); background:color-mix(in srgb, #ef4444 10%, var(--surface-2)); color:var(--text); font-weight:700; font-size:.86rem; }
#loginMsg.err:not(:empty):not(:has(.tk-msg))::before{ content:'🔒'; font-size:18px; line-height:1.2; }
@keyframes tkEntra{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
/* Bienvenida al entrar */
.tk-hola{ position:absolute; inset:0; z-index:5; display:grid; place-items:center; background:color-mix(in srgb, var(--bg) 85%, transparent); backdrop-filter:blur(6px); transition:opacity .35s; }
.tk-hola.fuera{ opacity:0; }
.tk-hola-caja{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:28px 34px; border-radius:22px; background:var(--surface); border:1px solid var(--border); animation:tkEntra .3s ease; text-align:center; }
.tk-hola-caja img{ width:64px; height:64px; }
.tk-hola-caja b{ font-size:1.35rem; font-weight:900; }
.tk-hola-caja span{ color:var(--accent); font-weight:800; }
html #loginCard.tk-es-sol #loginAvisoSalida{ display:none !important; }

/* ---------- Uso interno y deudores ---------- */
.tk-interno{ padding:8px clamp(14px, 3vw, 28px); font-size:.78rem; color:var(--text-dim); border-bottom:1px solid var(--border); background:color-mix(in srgb, #60a5fa 8%, var(--surface)); }
.tk-interno b{ color:var(--text); }
.tk-deuda{ display:flex; gap:10px; align-items:flex-start; padding:10px clamp(14px, 3vw, 28px); border-bottom:1px solid color-mix(in srgb, #fbbf24 45%, var(--border)); background:color-mix(in srgb, #fbbf24 12%, var(--surface)); }
.tk-deuda[hidden]{ display:none !important; }
.tk-deuda > span{ font-size:20px; }
.tk-deuda b{ display:block; font-size:.9rem; }
.tk-deuda small{ display:block; font-size:.78rem; color:var(--text-dim); }
.tk-acepto{ display:flex; gap:10px; align-items:flex-start; padding:12px; border-radius:12px; border:1px solid color-mix(in srgb, #60a5fa 40%, var(--border)); background:color-mix(in srgb, #60a5fa 8%, var(--surface-2)); font-size:.82rem; cursor:pointer; }
.tk-acepto input{ width:20px; height:20px; flex:none; margin-top:1px; accent-color:var(--accent); }
.tk-acepto b{ color:var(--text); }
.tk-bloqueo-deuda h2{ margin:0; }
.tka-deudor{ padding:8px 10px; border-radius:10px; font-size:.8rem; background:color-mix(in srgb, #fbbf24 14%, transparent); border:1px solid color-mix(in srgb, #fbbf24 45%, transparent); }
.tka-deudor-mal{ background:color-mix(in srgb, #ef4444 14%, transparent); border-color:color-mix(in srgb, #ef4444 45%, transparent); }
@media (max-width:820px){ .tk-interno{ font-size:.72rem; } }

/* ---------- Tarjetas compactas (rediseño): lo importante a la vista, lo demás plegable ---------- */
.tk-ico{ width:16px; height:16px; flex:none; vertical-align:-3px; }
.tk-ticket, .tka-ticket{ gap:8px; padding:14px; }
.tkc-cab{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.tkc-folio{ font:800 .72rem ui-monospace, Consolas, monospace; color:var(--text-dim); letter-spacing:.04em; }
.tkc-tit{ margin:0; font-size:1rem; font-weight:900; line-height:1.25; }
.tkc-quien{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:.82rem; color:var(--text); }
.tkc-quien span{ color:var(--text-dim); }
.tkc-quien span::before{ content:'· '; }
.tkc-linea{ display:flex; flex-wrap:wrap; gap:6px; }
.tkc-linea span{ display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border-radius:999px; background:var(--surface-2); border:1px solid var(--border); font-size:.76rem; color:var(--text-dim); }
.tkc-linea b{ color:var(--text); font-weight:800; }
.tkc-entrega{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:8px 10px; border-radius:12px; font-size:.82rem;
  background:color-mix(in srgb, #60a5fa 10%, var(--surface-2)); border:1px solid color-mix(in srgb, #60a5fa 35%, var(--border)); }
.tkc-entrega .tk-ico{ color:#60a5fa; }
.tkc-entrega span{ display:inline-flex; align-items:center; gap:4px; color:var(--text-dim); margin-left:auto; }
.tkc-mas{ border-radius:12px; border:1px solid var(--border); background:var(--surface-2); }
.tkc-mas > summary{ display:flex; align-items:center; gap:7px; padding:8px 11px; cursor:pointer; list-style:none; font-size:.8rem; font-weight:800; color:var(--text-dim); }
.tkc-mas > summary::-webkit-details-marker{ display:none; }
.tkc-mas > summary::after{ content:''; margin-left:auto; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .15s; }
.tkc-mas[open] > summary::after{ transform:rotate(-135deg); }
.tkc-mas[open] > summary{ border-bottom:1px solid var(--border); }
.tkc-prod{ list-style:none; margin:0; padding:6px; display:flex; flex-direction:column; gap:4px; }
.tkc-prod li{ display:flex; justify-content:space-between; gap:10px; padding:6px 8px; border-radius:8px; background:var(--surface); }
.tkc-prod b{ display:block; font:800 .76rem ui-monospace, Consolas, monospace; color:var(--accent); word-break:break-all; }
.tkc-prod span{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:.76rem; color:var(--text-dim); }
.tkc-prod em{ flex:none; font-style:normal; font-weight:900; }
.tkc-detalle{ display:flex; flex-direction:column; gap:4px; padding:8px 11px; font-size:.8rem; color:var(--text-dim); }
.tkc-detalle p{ margin:0 0 4px; color:var(--text); }
.tkc-detalle b{ color:var(--text); }
.tkc-acc{ display:flex; align-items:center; gap:8px; margin-top:2px; }
.tkc-prim{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; }
.tkc-iconos{ display:flex; gap:6px; margin-left:auto; }
.tkc-icono{ width:42px; height:42px; flex:none; display:grid; place-items:center; border-radius:12px; border:1px solid var(--border); background:var(--surface-2); color:var(--text); cursor:pointer; transition:border-color .15s, color .15s; }
.tkc-icono .tk-ico{ width:18px; height:18px; }
.tkc-icono:hover{ border-color:var(--accent); color:var(--accent); }
.tkc-icono.tkc-peligro{ color:#fca5a5; }
.tkc-icono.tkc-peligro:hover{ border-color:#ef4444; color:#ef4444; }
.tk-rechazo, .tk-firmado, .tk-bloqueado{ display:flex; align-items:flex-start; gap:6px; }
.tka-deudor{ font-size:.76rem; padding:6px 9px; }
.tka-ticket .tkc-tit, .tk-ticket .tkc-tit{ margin:0 !important; padding:0 !important; }
.tka-ticket > *, .tk-ticket > *{ margin-top:0 !important; margin-bottom:0 !important; }
@media (max-width:720px){
  .tka-filtros{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
  .tka-filtros::-webkit-scrollbar{ display:none; }
  .tka-filtro{ flex:none; }
  .tka-cab{ padding:14px; gap:10px; }
  .tka-cab small{ display:none; }
  .tka-ico{ width:38px; height:38px; font-size:20px; }
  .tka-cab-btns{ width:100%; }
  .tka-cab-btns .btn{ flex:1; min-height:40px; }
}

/* ---------- Miniaturas de producto ---------- */
.tk-mini{ flex:none; width:40px; height:40px; border-radius:10px; object-fit:contain; background:#fff; border:1px solid var(--border); cursor:zoom-in; }
.tk-mini-vacia{ display:inline-grid; place-items:center; background:var(--surface-2); color:var(--text-muted, #888); cursor:default; }
.tk-mini-vacia svg{ width:18px; height:18px; opacity:.6; }
.tk-mini-s{ width:34px; height:34px; } .tk-mini-l{ width:46px; height:46px; align-self:center; }
.tkc-prod li{ align-items:center; gap:10px; }
.tkc-prod li > div{ flex:1; min-width:0; }
.tk-sug button{ display:flex; align-items:center; gap:8px; }
.tk-foto-grande{ position:fixed; inset:0; z-index:100005; display:grid; place-items:center; padding:16px; background:rgba(0,0,0,.85); cursor:zoom-out; }
.tk-foto-grande img{ max-width:100%; max-height:100%; border-radius:14px; background:#fff; }

/* ---------- Ubicaciones (almacen) ---------- */
.tka-ub{ display:flex; flex-wrap:wrap; gap:4px; margin-top:4px; }
.tka-ub-c{ font-size:.72rem; padding:2px 7px; border-radius:999px; border:1px solid var(--border); background:var(--surface-2); }
.tka-ub-rack{ border-color:color-mix(in srgb, var(--accent) 55%, transparent); background:color-mix(in srgb, var(--accent) 14%, transparent); }
.tka-ub-man{ border-style:dashed; }
.tka-ub-nada{ font-size:.74rem; opacity:.7; display:flex; gap:4px; align-items:center; }
.tka-ub-nada svg{ width:12px; height:12px; }
.tka-quiere, .tk-devolver-ya{ display:flex; align-items:center; gap:6px; padding:8px 10px; border-radius:12px; font-size:.84rem;
  border:1px solid color-mix(in srgb, #fbbf24 50%, transparent); background:color-mix(in srgb, #fbbf24 14%, transparent); }
.tka-quiere svg, .tk-devolver-ya svg{ width:16px; height:16px; flex:none; }

/* ---------- Recorrido paso a paso ---------- */
.tkr{ position:fixed; inset:0; z-index:100003; display:grid; place-items:center; padding:12px; background:rgba(0,0,0,.72); backdrop-filter:blur(6px); }
.tkr-caja{ width:min(560px, 100%); max-height:calc(100vh - 24px); overflow:auto; display:flex; flex-direction:column; gap:14px; padding:18px; border-radius:20px; background:var(--surface); border:1px solid var(--border); }
.tkr-cab{ display:flex; align-items:center; gap:10px; } .tkr-cab b{ flex:1; }
.tkr-n{ font-size:.8rem; font-weight:800; opacity:.75; }
.tkr-barra{ height:6px; border-radius:99px; background:var(--surface-2); overflow:hidden; }
.tkr-barra i{ display:block; height:100%; background:var(--accent); transition:width .3s; }
.tkr-prod{ display:flex; gap:14px; align-items:center; }
.tkr-prod > div{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.tkr-prod b{ font-size:1.15rem; } .tkr-prod span{ opacity:.8; font-size:.9rem; }
.tk-mini.tkr-foto{ width:96px; height:96px; border-radius:14px; }
.tkr-cant{ font-size:1rem; } .tkr-cant b{ font-size:1.3rem; color:var(--accent); }
.tkr-donde{ display:flex; flex-direction:column; gap:6px; } .tkr-donde small{ font-weight:800; opacity:.7; }
.tkr-ub{ display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:12px; border:1px solid var(--border); background:var(--surface-2); }
.tkr-ub svg{ width:16px; height:16px; flex:none; } .tkr-ub b{ flex:1; } .tkr-ub span{ font-size:.78rem; opacity:.75; }
.tkr-ub-1{ border:2px solid var(--accent); background:color-mix(in srgb, var(--accent) 14%, var(--surface-2)); }
.tkr-ub-1 b{ font-size:1.15rem; }
.tkr-ub-nada{ opacity:.8; font-size:.88rem; }
.tkr-pie{ display:flex; justify-content:space-between; gap:10px; } .tkr-pie .btn{ flex:1; min-height:46px; }
.tkr-fin{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:6px; padding:10px 0; }
.tkr-fin-ico{ width:52px; height:52px; color:var(--accent); }

/* ---------- Aviso de pendientes (Admin) ---------- */
.tk-aviso-pend{ position:fixed; right:16px; bottom:16px; z-index:100004; display:flex; align-items:center; gap:12px; max-width:calc(100vw - 32px);
  padding:12px 14px; border-radius:16px; border:1px solid color-mix(in srgb, #fbbf24 55%, var(--border)); background:var(--surface); color:var(--text);
  box-shadow:0 12px 32px rgba(0,0,0,.35); text-align:left; cursor:pointer; transform:translateY(140%); opacity:0; transition:transform .35s, opacity .35s; }
.tk-aviso-pend.ver{ transform:none; opacity:1; }
.tk-aviso-pend > span{ font-size:1.6rem; } .tk-aviso-pend div{ display:flex; flex-direction:column; } .tk-aviso-pend small{ opacity:.75; }
.tk-aviso-pend i{ font-style:normal; opacity:.6; padding:4px; }

/* Acciones: los botones grandes nunca se aplastan; en celular los iconos bajan a su renglon. */
.tkc-acc{ flex-wrap:wrap; }
.tkc-prim{ min-width:150px; white-space:nowrap; word-break:normal; overflow-wrap:normal; writing-mode:horizontal-tb; }
@media (max-width: 640px){
  .tkc-prim{ flex:1 1 100%; min-width:0; }
  .tkc-iconos{ flex:1 1 100%; justify-content:flex-end; margin-left:0; }
}
button.tkr-ub{ width:100%; font:inherit; color:inherit; text-align:left; cursor:pointer; }
button.tkr-ub:not(.tkr-ub-1):hover{ border-color:color-mix(in srgb, var(--accent) 50%, var(--border)); }

/* ============================================================================================
   MODO ALBA TICKETS del Admin (tickets-modo.js): selector en el acceso + panel aparte.
   ============================================================================================ */
.tkm-elegir{ position:fixed; inset:0; z-index:99985; display:grid; place-items:center; padding:16px; background:var(--bg); overflow-y:auto; }
body.modo-elegir{ overflow:hidden; }
.tkm-elegir-caja{ width:100%; max-width:440px; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.tkm-elegir-logo{ width:64px; height:64px; margin-bottom:6px; }
.tkm-elegir-caja h2{ margin:0; font-size:1.35rem; }
.tkm-elegir-caja p{ margin:0 0 14px; color:var(--text-dim); font-size:.95rem; }
.tkm-elegir-ops{ width:100%; display:flex; flex-direction:column; gap:12px; }
.tkm-op{ display:flex; align-items:center; gap:14px; width:100%; min-height:84px; padding:14px 16px; margin:0; text-align:left;
  border-radius:var(--radius-lg, 16px); border:2px solid var(--border); background:var(--surface); color:var(--text); font:inherit; cursor:pointer; }
.tkm-op:hover, .tkm-op:focus-visible{ border-color:var(--accent2, #ff9f40); }
.tkm-op:active{ transform:scale(.98); }
.tkm-op-ico{ font-size:2rem; line-height:1; flex:0 0 auto; }
.tkm-op b{ display:block; font-size:1.05rem; }
.tkm-op small{ display:block; font-size:.8rem; color:var(--text-dim); line-height:1.35; margin-top:3px; }

body.modo-tickets{ overflow:hidden; }
.tkm{ position:fixed; inset:0; z-index:99980; display:flex; flex-direction:column; background:var(--bg); color:var(--text); font-family:var(--font-ui, inherit); }
.tkm-cab{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; padding-top:calc(12px + env(safe-area-inset-top, 0px));
  background:var(--surface); border-bottom:1px solid var(--border); }
.tkm-marca{ display:flex; align-items:center; gap:10px; min-width:0; }
.tkm-marca img{ width:36px; height:36px; flex:0 0 auto; }
.tkm-marca b{ display:block; font-size:1.05rem; line-height:1.2; }
.tkm-marca small{ display:block; font-size:.74rem; color:var(--text-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tkm-cab-btns{ display:flex; gap:8px; flex:0 0 auto; }
.tkm-btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 14px; margin:0;
  border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); color:var(--text);
  font:inherit; font-size:.85rem; font-weight:800; cursor:pointer; white-space:nowrap; }
.tkm-btn-prim{ color:#04211c; background:var(--accent2, #ff9f40); border-color:var(--accent2, #ff9f40); }
.tkm-btn-salir{ color:#f87171; border-color:color-mix(in srgb, #f87171 55%, var(--border)); }
@media (max-width:520px){ .tkm-cab .tkm-btn span:last-child{ display:none; } .tkm-cab .tkm-btn{ width:44px; padding:0; font-size:1.1rem; } }
.tkm-tabs{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:6px; padding:10px 14px; background:var(--surface); border-bottom:1px solid var(--border); }
.tkm-tab{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:56px; padding:6px 4px; margin:0;
  border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); color:var(--text-dim);
  font:inherit; font-size:.76rem; font-weight:800; line-height:1.15; text-align:center; cursor:pointer; }
.tkm-tab span:first-child{ font-size:1.2rem; }
.tkm-tab.activo{ color:var(--text); border-color:var(--accent2, #ff9f40); background:color-mix(in srgb, var(--accent2, #ff9f40) 14%, var(--surface-2)); }
.tkm-cuerpo{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:14px; padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px)); }
.tkm-cuerpo > *{ max-width:900px; margin-left:auto; margin-right:auto; }
.tka-en-modo{ margin-top:0; }
.tkm-sec-cab{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.tkm-sec-cab h2{ margin:0; font-size:1.1rem; }
.tkm-sec-cab small{ display:block; font-size:.78rem; color:var(--text-dim); margin-top:2px; }
.tkm-buscar{ display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:8px; margin-bottom:14px; }
.tkm-buscar input{ min-height:50px; width:100%; box-sizing:border-box; margin:0; font-size:1rem; }
.tkm-buscar .tkm-btn{ min-height:50px; }
.tkm-vacio{ padding:18px; text-align:center; color:var(--text-dim); font-size:.88rem; }
.tkm-prod{ display:flex; flex-direction:column; gap:12px; padding:14px; border-radius:var(--radius-lg, 16px); background:var(--surface); border:1px solid var(--border); }
.tkm-prod-cab{ display:flex; align-items:center; gap:12px; min-width:0; }
.tkm-prod-cab .tk-mini{ width:64px; height:64px; flex:0 0 auto; border-radius:12px; object-fit:cover; cursor:zoom-in; }
.tkm-prod-sinfoto{ width:64px; height:64px; flex:0 0 auto; display:grid; place-items:center; border-radius:12px; background:var(--surface-2); font-size:1.6rem; }
.tkm-prod-cab b{ display:block; font-size:.95rem; overflow-wrap:anywhere; }
.tkm-prod-cab small{ display:block; font-size:.8rem; color:var(--text-dim); line-height:1.4; margin-top:2px; }
.tkm-prod-total{ display:flex; align-items:baseline; gap:8px; padding:10px 12px; border-radius:var(--radius, 12px); background:var(--surface-2); }
.tkm-prod-total span{ font-size:.8rem; color:var(--text-dim); }
.tkm-prod-total b{ font-size:1.5rem; }
.tkm-prod-ubic{ display:flex; flex-direction:column; gap:6px; }
.tkm-prod-ubic > div{ display:flex; justify-content:space-between; gap:10px; padding:10px 12px; border-radius:var(--radius, 12px); border:1px solid var(--border); font-size:.88rem; }
.tkm-prod-ubic > div span{ overflow-wrap:anywhere; }
.tkm-form{ display:flex; flex-direction:column; gap:10px; padding:14px; margin-bottom:14px; border-radius:var(--radius-lg, 16px); background:var(--surface); border:1px solid var(--accent2, #ff9f40); }
.tkm-form label{ display:flex; flex-direction:column; gap:4px; font-size:.78rem; font-weight:700; color:var(--text-dim); }
.tkm-form input{ min-height:46px; width:100%; box-sizing:border-box; margin:0; font-size:.95rem; }
.tkm-form-btns{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.tkm-msg{ font-size:.8rem; color:#f87171; min-height:1em; }
.tkm #solicitantesSection .pending-head, .tkm #solicitantesSection .pending-sub{ display:none; }
.tkm-buscar-campo{ position:relative; min-width:0; }
.tkm-sug{ position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:5; display:flex; flex-direction:column; max-height:min(60vh, 420px); overflow-y:auto;
  border-radius:var(--radius, 12px); background:var(--surface); border:1px solid var(--border); box-shadow:0 18px 40px rgba(0,0,0,.45); }
.tkm-sug[hidden]{ display:none; }
.tkm-sug-item{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%; padding:10px 12px; margin:0; text-align:left;
  border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--text); font:inherit; cursor:pointer; }
.tkm-sug-item:last-child{ border-bottom:0; }
.tkm-sug-item.activo, .tkm-sug-item:hover{ background:var(--surface-2); }
.tkm-sug-code{ font-weight:800; font-size:.86rem; overflow-wrap:anywhere; }
.tkm-sug-code mark{ background:color-mix(in srgb, var(--accent2, #ff9f40) 35%, transparent); color:inherit; border-radius:3px; }
.tkm-sug-name{ font-size:.76rem; color:var(--text-dim); line-height:1.35; }
.tkm-sug-pz{ font-size:.72rem; font-weight:800; color:#34d399; }
.tkm-sug-vacio{ padding:12px; font-size:.82rem; color:var(--text-dim); }
.tkm-ficha{ display:flex; flex-direction:column; gap:12px; padding:14px; border-radius:var(--radius-lg, 16px); background:var(--surface); border:1px solid var(--border); }
.tkm-ficha-fotos{ display:flex; gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:4px; }
.tkm-ficha-fotos img.tkm-foto{ flex:0 0 auto; width:min(70vw, 260px); height:min(70vw, 260px); border-radius:14px; object-fit:cover; scroll-snap-align:start; cursor:zoom-in; background:var(--surface-2); }
.tkm-ficha-fotos img.tkm-foto:only-child{ width:100%; height:auto; max-height:340px; object-fit:contain; }
.tkm-ficha-sinfoto{ width:100%; display:flex; flex-direction:column; align-items:center; gap:4px; padding:24px; border-radius:14px; background:var(--surface-2); font-size:2rem; }
.tkm-ficha-sinfoto small{ font-size:.8rem; color:var(--text-dim); }
.tkm-ficha-dato{ display:flex; flex-direction:column; gap:2px; }
.tkm-ficha-dato > span{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--text-dim); }
.tkm-ficha-dato p{ margin:0; font-size:.9rem; line-height:1.45; }
.tkm-ficha-code{ font-size:1.05rem; overflow-wrap:anywhere; }
.tkm-ficha-total{ display:flex; align-items:baseline; gap:8px; padding:12px 14px; border-radius:var(--radius, 12px); background:var(--surface-2); }
.tkm-ficha-total span{ font-size:.82rem; color:var(--text-dim); }
.tkm-ficha-total b{ font-size:1.7rem; }
.tkm-ficha-total small{ font-size:.8rem; color:var(--text-dim); }
.tkm-ficha-ubic{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:8px; }
.tkm-ficha-ubic > div{ display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); }
.tkm-ficha-ubic b{ font-size:.95rem; }
.tkm-ficha-ubic span{ font-size:.82rem; color:#34d399; font-weight:800; }
.tkm-ficha-nota{ font-size:.74rem; color:var(--text-dim); text-align:center; }
.tkm-buscar input{ color:var(--text); background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius, 12px); padding:0 14px; }

/* ---------- Cambiar de entorno (Admin): Alba · Almacén ⇄ Alba Tickets (tickets-modo.js) ---------- */
.tkm-cambio-ico{ display:inline-flex; width:22px; height:22px; flex:0 0 auto; }
.tkm-cambio-ico svg{ width:100%; height:100%; }
/* Celular: en la tarjeta de la cuenta, a la derecha de la foto y el nombre. */
.drawer-cambio-entorno{ margin:0 0 0 auto; flex:0 0 auto; align-self:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  width:58px; min-height:58px; padding:6px 4px; border-radius:var(--radius, 12px);
  border:2px solid var(--accent2, #ff9f40); background:color-mix(in srgb, var(--accent2, #ff9f40) 14%, var(--surface));
  color:var(--text); font:inherit; font-size:.64rem; font-weight:800; line-height:1; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.drawer-cambio-entorno .tkm-cambio-ico{ width:24px; height:24px; color:var(--accent2, #ff9f40); }
.drawer-cambio-entorno:active{ transform:scale(.95); }
/* Computadora: un cuadro a un lado del buscador. En celular no sale (para eso esta la barra lateral). */
.pc-cambio-entorno{ display:none; }
@media (min-width:681px){
  .pc-cambio-entorno{ position:absolute; z-index:2; display:flex; align-items:center; justify-content:center; gap:6px; flex:0 0 auto;
    padding:0 12px; margin:0; border-radius:8px;
    border:2px solid color-mix(in srgb, var(--accent2, #ff9f40) 70%, transparent); background:color-mix(in srgb, var(--accent2, #ff9f40) 22%, var(--surface-2));
    color:var(--text); font:inherit; font-size:.78rem; font-weight:800; line-height:1; cursor:pointer; transition:transform .1s, filter .14s; }
  .pc-cambio-entorno .tkm-cambio-ico{ width:20px; height:20px; color:var(--accent2, #ff9f40); }
  .pc-cambio-entorno:hover{ filter:brightness(1.12); }
  .pc-cambio-entorno:active{ transform:scale(.95); }
}
/* En el encabezado de Alba Tickets */
.tkm-btn-cambio .tkm-cambio-ico{ color:var(--accent2, #ff9f40); }

/* ============================================================================================
   Ficha del ticket del panel de Tickets (rediseño 23 oct 2026, pensado para celular)
   ============================================================================================ */
.tkx{ --tkx-c:#fbbf24; position:relative; display:flex; flex-direction:column; gap:12px; padding:16px; margin:0 0 14px;
  border-radius:var(--radius-lg, 18px); background:var(--surface); border:1px solid var(--border); overflow:hidden; }
.tkx::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--tkx-c); }
.tkx-pendiente{ --tkx-c:#fbbf24; } .tkx-aprobado{ --tkx-c:#60a5fa; } .tkx-entregado{ --tkx-c:#a78bfa; }
.tkx-vencido{ --tkx-c:#f87171; } .tkx-devuelto{ --tkx-c:#34d399; } .tkx-rechazado, .tkx-cancelado{ --tkx-c:#9ca3af; }
.tkx-cab{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tkx-folio{ font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.8rem; letter-spacing:.06em; color:var(--text-dim); }
.tkx-estado{ display:inline-flex; align-items:center; gap:4px; padding:4px 12px; border-radius:999px; font-size:.8rem; font-weight:800;
  color:var(--tkx-c); background:color-mix(in srgb, var(--tkx-c) 14%, transparent); border:1px solid color-mix(in srgb, var(--tkx-c) 55%, transparent); }
.tkx-tit{ margin:0; font-size:1.12rem; line-height:1.3; font-weight:800; letter-spacing:0; text-transform:none; overflow-wrap:anywhere; }
.tkx-sol{ display:flex; align-items:center; gap:10px; }
.tkx-av{ flex:0 0 36px; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font-weight:800; color:#04211c; background:var(--accent2, #ff9f40); }
.tkx-sol b{ display:block; font-size:.95rem; }
.tkx-sol small{ display:block; font-size:.78rem; color:var(--text-dim); }
.tkx-datos{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.tkx-dato{ display:flex; align-items:flex-start; gap:8px; padding:10px; border-radius:var(--radius, 12px); background:var(--surface-2); border:1px solid var(--border); min-width:0; }
.tkx-dato .tk-ico{ width:18px; height:18px; flex:0 0 auto; margin-top:2px; color:var(--tkx-c); }
.tkx-dato small{ display:block; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--text-dim); }
.tkx-dato b{ display:block; font-size:.9rem; line-height:1.25; overflow-wrap:anywhere; }
.tkx-dato span{ display:block; font-size:.76rem; color:var(--text-dim); overflow-wrap:anywhere; }
.tkx-hechos{ display:flex; flex-direction:column; gap:6px; }
.tkx-hecho{ --h:#34d399; display:flex; align-items:flex-start; gap:8px; padding:10px 12px; border-radius:var(--radius, 12px);
  background:color-mix(in srgb, var(--h) 10%, transparent); border:1px solid color-mix(in srgb, var(--h) 40%, transparent); }
.tkx-hecho .tk-ico{ width:18px; height:18px; flex:0 0 auto; margin-top:1px; color:var(--h); }
.tkx-hecho b{ display:block; font-size:.86rem; color:var(--h); }
.tkx-hecho span, .tkx-hecho small{ display:block; font-size:.78rem; color:var(--text-dim); }
.tkx-hecho-dev{ --h:#34d399; } .tkx-hecho-ok{ --h:#a78bfa; } .tkx-hecho-mal{ --h:#f87171; } .tkx-hecho-aviso{ --h:#fbbf24; }
.tkx-sec{ display:flex; align-items:center; gap:6px; margin-top:2px; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--text-dim); }
.tkx-sec .tk-ico{ width:15px; height:15px; }
.tkx-prods{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.tkx-prods li{ display:grid; grid-template-columns:56px minmax(0, 1fr) auto; gap:10px; align-items:center; padding:10px; border-radius:var(--radius, 12px); background:var(--surface-2); border:1px solid var(--border); }
.tkx-prods .tk-mini{ width:56px; height:56px; border-radius:10px; object-fit:cover; }
.tkx-prod-info{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.tkx-prod-info > b{ font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.78rem; overflow-wrap:anywhere; color:var(--text); }
.tkx-prod-info > span{ font-size:.78rem; color:var(--text-dim); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tkx-prod-info .tka-ub{ display:flex; flex-wrap:wrap; gap:4px; margin-top:2px; }
.tkx-prods em{ font-style:normal; display:flex; flex-direction:column; align-items:center; min-width:48px; padding:6px 8px; border-radius:10px;
  background:color-mix(in srgb, var(--tkx-c) 14%, var(--surface)); color:var(--text); font-size:1.2rem; font-weight:800; line-height:1; }
.tkx-prods em small{ font-size:.6rem; font-weight:800; text-transform:uppercase; color:var(--text-dim); margin-bottom:3px; }
.tkx-mas{ border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); }
.tkx-mas summary{ display:flex; align-items:center; gap:8px; padding:12px; font-size:.86rem; font-weight:800; cursor:pointer; list-style:none; }
.tkx-mas summary::-webkit-details-marker{ display:none; }
.tkx-mas summary::after{ content:'▾'; margin-left:auto; color:var(--text-dim); transition:transform .2s; }
.tkx-mas[open] summary::after{ transform:rotate(180deg); }
.tkx-mas summary .tk-ico{ width:16px; height:16px; }
.tkx-mas dl{ display:grid; grid-template-columns:auto minmax(0, 1fr); gap:6px 12px; margin:0; padding:0 12px 12px; font-size:.84rem; }
.tkx-mas dt{ color:var(--text-dim); }
.tkx-mas dd{ margin:0; font-weight:700; overflow-wrap:anywhere; }
.tkx-acc{ display:flex; flex-direction:column; gap:8px; }
.tkx-prim{ display:flex; flex-direction:column; gap:8px; }
.tkx-prim .tkc-prim{ width:100%; min-height:50px; margin:0; display:flex; align-items:center; justify-content:center; gap:8px; }
.tkx-sec-btns{ display:grid; grid-template-columns:repeat(auto-fit, minmax(72px, 1fr)); gap:8px; }
.tkx-btn{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:56px; padding:6px 4px; margin:0;
  border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); color:var(--text);
  font:inherit; font-size:.7rem; font-weight:800; line-height:1.15; text-align:center; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.tkx-btn .tk-ico{ width:20px; height:20px; }
.tkx-btn:active{ transform:scale(.96); }
.tkx-btn-peligro{ color:#f87171; border-color:color-mix(in srgb, #f87171 50%, var(--border)); background:color-mix(in srgb, #f87171 8%, var(--surface-2)); }
.tka-en-modo .tka-filtros{ position:sticky; top:-14px; z-index:3; padding:8px 0; margin-bottom:6px; background:var(--bg); }

/* ---------- Animación al cambiar de entorno (Almacén ⇄ Tickets) ---------- */
.tkm-trans{ position:fixed; inset:0; z-index:99999; display:grid; place-items:center; pointer-events:all;
  background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent2, #ff9f40) 22%, var(--bg)) 0%, var(--bg) 70%);
  clip-path:circle(0% at var(--x, 50%) var(--y, 50%)); transition:clip-path .45s cubic-bezier(.7,0,.3,1); }
.tkm-trans.abre{ clip-path:circle(150% at var(--x, 50%) var(--y, 50%)); }
.tkm-trans.cierra{ clip-path:circle(150% at var(--x, 50%) var(--y, 50%)); opacity:0; transition:opacity .35s ease .05s; }
.tkm-trans-caja{ display:flex; flex-direction:column; align-items:center; gap:12px; transform:scale(.85); opacity:0; transition:transform .4s cubic-bezier(.2,1.4,.4,1) .15s, opacity .3s .15s; }
.tkm-trans.abre .tkm-trans-caja{ transform:scale(1); opacity:1; }
.tkm-trans-ico{ width:84px; height:84px; display:grid; place-items:center; border-radius:24px; color:#04211c; background:var(--accent2, #ff9f40);
  box-shadow:0 0 0 0 color-mix(in srgb, var(--accent2, #ff9f40) 60%, transparent); animation:tkmLatido 1s ease-out infinite; }
.tkm-trans-ico svg{ width:46px; height:46px; }
.tkm-trans-caja b{ font-size:1.25rem; }
.tkm-trans-caja small{ font-size:.85rem; color:var(--text-dim); }
@keyframes tkmLatido{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb, var(--accent2, #ff9f40) 55%, transparent); } 100%{ box-shadow:0 0 0 26px transparent; } }
@media (prefers-reduced-motion: reduce){ .tkm-trans, .tkm-trans-caja{ transition:none; } .tkm-trans-ico{ animation:none; } }

/* ---------- Pestaña Solicitantes (rediseño) ---------- */
.tkm-hero{ display:flex; align-items:center; gap:14px; padding:16px; margin-bottom:12px; border-radius:var(--radius-lg, 18px);
  background:linear-gradient(135deg, color-mix(in srgb, var(--accent2, #ff9f40) 18%, var(--surface)), var(--surface)); border:1px solid var(--border); }
.tkm-hero-ico{ width:52px; height:52px; flex:0 0 auto; display:grid; place-items:center; border-radius:16px; font-size:1.6rem; background:color-mix(in srgb, var(--accent2, #ff9f40) 22%, transparent); }
.tkm-hero h2{ margin:0; font-size:1.25rem; text-transform:none; letter-spacing:0; }
.tkm-hero small{ display:block; margin-top:3px; font-size:.8rem; line-height:1.4; color:var(--text-dim); }
.tkm-nueva{ display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:54px; margin:0 0 14px; padding:10px;
  border-radius:var(--radius-lg, 16px); border:2px dashed color-mix(in srgb, var(--accent2, #ff9f40) 70%, var(--border));
  background:color-mix(in srgb, var(--accent2, #ff9f40) 8%, transparent); color:var(--text); font:inherit; cursor:pointer; }
.tkm-nueva span{ width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--accent2, #ff9f40); color:#04211c; font-weight:900; font-size:1.1rem; }
.tkm-nueva b{ font-size:.95rem; }
.sol-barra{ display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.sol-busca{ width:100%; min-height:48px; box-sizing:border-box; margin:0; padding:0 14px; font-size:.95rem;
  border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); color:var(--text); }
.sol-filtros{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:6px; }
.sol-filtro{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 4px; margin:0; border-radius:var(--radius, 12px);
  border:1px solid var(--border); background:var(--surface-2); color:var(--text-dim); font:inherit; font-size:.68rem; font-weight:800; cursor:pointer; line-height:1.1; text-align:center; }
.sol-filtro b{ font-size:1.15rem; color:var(--text); }
.sol-filtro.activo{ border-color:var(--accent2, #ff9f40); color:var(--text); background:color-mix(in srgb, var(--accent2, #ff9f40) 14%, var(--surface-2)); }
.sol-filtro.alerta b{ color:#fbbf24; }
.sol-cab .sol-chip{ margin-left:auto; flex:0 0 auto; align-self:flex-start; }
.sol-card .sol-perm{ justify-content:space-between; align-items:center; }
.sol-card .sol-perm > span{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.sol-card .sol-perm b{ font-size:.86rem; }
.sol-card .sol-perm small{ font-size:.74rem; color:var(--text-dim); }
.sol-card .sol-perm input[role=switch]{ appearance:none; -webkit-appearance:none; flex:0 0 auto; width:46px; height:26px; margin:0; border-radius:999px;
  background:var(--border); position:relative; cursor:pointer; transition:background .2s; border:0; }
.sol-card .sol-perm input[role=switch]::after{ content:''; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.4); }
.sol-card .sol-perm input[role=switch]:checked{ background:#34d399; }
.sol-card .sol-perm input[role=switch]:checked::after{ transform:translateX(20px); }

/* Hoja de "Nueva cuenta" que sube desde abajo */
.tkm-hoja-fondo{ position:fixed; inset:0; z-index:100000; display:flex; align-items:flex-end; justify-content:center; background:rgba(0,0,0,0); transition:background .25s; }
.tkm-hoja-fondo.ver{ background:rgba(0,0,0,.6); }
.tkm-hoja{ width:100%; max-width:520px; max-height:92%; overflow-y:auto; padding:10px 16px calc(18px + env(safe-area-inset-bottom, 0px));
  border-radius:22px 22px 0 0; background:var(--surface); border:1px solid var(--border); border-bottom:0; transform:translateY(100%); transition:transform .25s cubic-bezier(.2,.9,.3,1); }
.tkm-hoja-fondo.ver .tkm-hoja{ transform:none; }
.tkm-hoja-asa{ width:44px; height:5px; border-radius:99px; background:var(--border); margin:2px auto 10px; }
.tkm-hoja h3{ margin:0; font-size:1.15rem; }
.tkm-hoja > p{ margin:2px 0 12px; font-size:.82rem; color:var(--text-dim); }
.tkm-hoja .tkm-form{ border:0; padding:0; background:none; margin:0; }

/* Confirmar que eres tú */
.tkm-verif-caja{ width:100%; max-width:380px; display:flex; flex-direction:column; gap:10px; padding:20px; border-radius:var(--radius-lg, 18px); background:var(--surface); border:1px solid var(--border); text-align:center; }
.tkm-verif-ico{ font-size:2.2rem; }
.tkm-verif-caja h3{ margin:0; font-size:1.15rem; }
.tkm-verif-caja p{ margin:0 0 4px; font-size:.86rem; color:var(--text-dim); }
.tkm-verif-huella{ display:flex; align-items:center; justify-content:center; gap:10px; min-height:56px; margin:0; border-radius:var(--radius, 12px);
  border:2px solid #34d399; background:color-mix(in srgb, #34d399 12%, var(--surface-2)); color:var(--text); font:inherit; font-size:.95rem; cursor:pointer; }
.tkm-verif-huella span{ font-size:1.5rem; }
.tkm-verif-o{ display:flex; align-items:center; gap:8px; font-size:.74rem; color:var(--text-dim); }
.tkm-verif-o::before, .tkm-verif-o::after{ content:''; flex:1; height:1px; background:var(--border); }
.tkm-verif-caja input{ min-height:48px; width:100%; box-sizing:border-box; margin:0; padding:0 14px; font-size:1rem; text-align:center;
  border-radius:var(--radius, 12px); border:1px solid var(--border); background:var(--surface-2); color:var(--text); }
.tkm-form input{ padding:0 14px; color:var(--text); background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius, 12px); }
.tkm-form input:focus, .sol-busca:focus, .tkm-verif-caja input:focus, .tkm-buscar input:focus{ outline:none; border-color:var(--accent2, #ff9f40); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent2, #ff9f40) 25%, transparent); }

/* ---------- Firma dentro de la ficha y pie de la ficha (23 oct 2026) ---------- */
.tkx-firma-btn{ display:inline-flex; align-items:center; gap:6px; margin-top:8px; padding:7px 12px; border-radius:999px;
  border:1px solid color-mix(in srgb, var(--h) 60%, transparent); background:color-mix(in srgb, var(--h) 16%, transparent);
  color:var(--text); font:inherit; font-size:.78rem; font-weight:800; cursor:pointer; }
.tkx-firma-btn .tk-ico{ width:15px !important; height:15px !important; margin:0 !important; color:var(--h); }
.tkx-firma{ margin-top:10px; }
.tkx-firma img{ display:block; width:100%; max-height:200px; object-fit:contain; border-radius:12px; background:#fff; padding:8px; box-sizing:border-box; cursor:zoom-in; }
.tkx-firma small{ display:block; margin-top:6px; font-size:.72rem; color:var(--text-dim); }
.tkx-firma-cargando{ padding:12px; border-radius:12px; background:var(--surface-2); font-size:.8rem; color:var(--text-dim); text-align:center; }
.tkx-pie{ display:flex; flex-direction:column; gap:10px; margin:4px -16px -16px; padding:14px 16px 12px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--tkx-c) 9%, var(--surface)), color-mix(in srgb, var(--tkx-c) 4%, var(--surface-2)));
  border-top:1px solid color-mix(in srgb, var(--tkx-c) 35%, var(--border)); }
.tkx-pie .tkx-prim .tkc-prim{ min-height:54px; border-radius:14px; clip-path:none; border:0; font-size:.95rem; font-weight:900; letter-spacing:.02em; text-transform:none;
  color:#04211c; background:linear-gradient(135deg, var(--tkx-c), color-mix(in srgb, var(--tkx-c) 70%, #fff));
  box-shadow:0 8px 22px color-mix(in srgb, var(--tkx-c) 35%, transparent); }
.tkx-pie .tkx-prim .tkc-prim .tk-ico{ width:20px; height:20px; }
.tkx-pie .tkx-btn{ border-radius:14px; background:color-mix(in srgb, var(--surface) 70%, transparent); }
.tkx-pie .tkx-btn .tk-ico{ color:var(--tkx-c); }
.tkx-pie .tkx-btn-peligro .tk-ico{ color:#f87171; }
.tkx-meta{ display:flex; justify-content:space-between; gap:8px; padding-top:8px; border-top:1px dashed var(--border); font-size:.72rem; color:var(--text-dim); }
.tkx-meta span{ display:inline-flex; align-items:center; gap:5px; }
.tkx-meta .tk-ico{ width:13px; height:13px; }
.tkx-meta span:last-child{ font-family:ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.05em; }
.tkx-hecho > div{ flex:1 1 auto; min-width:0; }
.tkx-pie .tkx-prim .tkc-prim{ font-weight:900 !important; }

/* ---------- "Más detalles" y fecha/folio de la ficha (rediseño) ---------- */
.tkx .tkx-mas{ border-radius:16px; border:1px solid var(--border); background:var(--surface-2); overflow:hidden; }
.tkx .tkx-mas summary{ display:flex; align-items:center; gap:12px; padding:12px 14px; }
.tkx .tkx-mas summary::after{ content:none; }
.tkx-mas-ico{ width:38px; height:38px; flex:0 0 auto; display:grid; place-items:center; border-radius:12px;
  background:color-mix(in srgb, var(--tkx-c) 16%, transparent); color:var(--tkx-c); }
.tkx-mas-ico .tk-ico{ width:19px !important; height:19px !important; }
.tkx-mas-txt{ display:flex; flex-direction:column; gap:1px; min-width:0; flex:1 1 auto; }
.tkx-mas-txt b{ font-size:.92rem; }
.tkx-mas-txt small{ font-size:.72rem; font-weight:600; color:var(--text-dim); }
.tkx-mas-flecha{ width:30px; height:30px; flex:0 0 auto; border-radius:50%; background:var(--surface); border:1px solid var(--border); position:relative; transition:transform .25s; }
.tkx-mas-flecha::before{ content:''; position:absolute; left:50%; top:45%; width:8px; height:8px; border-right:2px solid var(--text-dim); border-bottom:2px solid var(--text-dim); transform:translate(-50%, -50%) rotate(45deg); }
.tkx-mas[open] .tkx-mas-flecha{ transform:rotate(180deg); }
.tkx-mas[open] summary{ border-bottom:1px solid var(--border); }
.tkx-mas-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; padding:12px; }
.tkx-mas-dato{ display:flex; align-items:flex-start; gap:9px; padding:10px; border-radius:12px; background:var(--surface); border:1px solid var(--border); min-width:0; }
.tkx-mas-ancho{ grid-column:1 / -1; }
.tkx-mas-dato .tk-ico{ width:17px; height:17px; flex:0 0 auto; margin-top:2px; color:var(--tkx-c); }
.tkx-mas-dato small{ display:block; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--text-dim); }
.tkx-mas-dato b{ display:block; font-size:.88rem; line-height:1.3; overflow-wrap:anywhere; }
.tkx .tkx-meta{ display:flex; align-items:stretch; justify-content:space-between; gap:8px; padding-top:10px; border-top:1px dashed color-mix(in srgb, var(--tkx-c) 35%, var(--border)); }
.tkx-meta-fecha, .tkx-meta-folio{ display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:12px; background:color-mix(in srgb, var(--surface) 75%, transparent); border:1px solid var(--border); min-width:0; }
.tkx-meta-fecha .tk-ico{ width:18px !important; height:18px !important; color:var(--tkx-c); flex:0 0 auto; }
.tkx-meta small{ display:block; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); }
.tkx-meta b{ display:block; font-size:.82rem; color:var(--text); }
.tkx-meta-folio{ flex-direction:column; align-items:flex-end; justify-content:center; gap:0; border-color:color-mix(in srgb, var(--tkx-c) 55%, var(--border)); background:color-mix(in srgb, var(--tkx-c) 12%, var(--surface)); }
.tkx-meta-folio b{ font-family:ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.08em; color:var(--tkx-c); font-size:.9rem; }
.tkx .tkx-meta-fecha > span{ display:flex; flex-direction:column; gap:1px; font-family:inherit; letter-spacing:0; }
.tkx .tkx-meta-fecha b{ font-family:inherit; letter-spacing:0; }
.tkx .tkx-meta-folio small{ font-family:inherit; }
.tkx .tkx-meta-fecha small, .tkx .tkx-meta-fecha b{ text-align:left; }

/* ===== 23 oct 2026: interruptores con estado claro ===== */
.sol-card .sol-perm{ gap:10px; }
.sol-card .sol-perm input[role=switch]{ background:#ef4444 !important; border:2px solid #b91c1c !important; }
.sol-card .sol-perm input[role=switch]:checked{ background:#22c55e !important; border-color:#15803d !important; }
.sol-card .sol-perm .sol-estado-sw{ margin-left:auto; font-style:normal; font-size:.72rem; font-weight:800; padding:3px 8px; border-radius:999px; background:rgba(239,68,68,.16); color:#fca5a5; white-space:nowrap; }
.sol-card .sol-perm .sol-estado-sw::after{ content:'✕ Desactivado'; }
.sol-card .sol-perm:has(input:checked) .sol-estado-sw{ background:rgba(34,197,94,.18); color:#86efac; }
.sol-card .sol-perm:has(input:checked) .sol-estado-sw::after{ content:'✓ Activado'; }

/* ===== Nueva cuenta: vista previa y datos ===== */
.tkm-nueva-prev{ font-size:.82rem; color:var(--text-dim); min-height:1.2em; }
.tkm-nueva-prev b{ color:var(--accent,#34d399); }
.tkm-nueva-datos{ display:grid; gap:8px; margin:12px 0; }
.tkm-nueva-datos div{ background:var(--surface-2,#1b2430); border:1px solid var(--border,#2a3441); border-radius:12px; padding:10px 12px; }
.tkm-nueva-datos small{ display:block; font-size:.72rem; color:var(--text-dim); }
.tkm-nueva-datos b{ font-family:ui-monospace,monospace; font-size:1.05rem; user-select:all; }

/* ===== Ficha completa (pantalla completa) ===== */
.tkfc{ position:fixed; inset:0; z-index:99995; background:var(--bg,#0d1117); color:var(--text,#e6edf3); display:flex; flex-direction:column; opacity:0; transform:translateY(24px); transition:opacity .2s, transform .2s; height:100dvh; }
.tkfc.ver{ opacity:1; transform:none; }
.tkfc-cab{ display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--border,#2a3441); background:var(--surface,#161b22); }
.tkfc-cab > span:nth-child(2){ font-weight:800; flex:1; }
.tkfc-volver{ background:var(--surface-2,#1b2430); color:inherit; border:1px solid var(--border,#2a3441); border-radius:10px; padding:8px 12px; font-weight:700; cursor:pointer; }
.tkfc-cand{ font-size:.72rem; color:var(--text-dim); }
.tkfc-cuerpo{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:16px; max-width:980px; width:100%; margin:0 auto; box-sizing:border-box; }
@media (min-width:800px){ .tkfc-cuerpo{ display:grid; grid-template-columns:1fr 1fr; align-content:start; } .tkfc-pie{ grid-column:1/-1; } }
.tkfc-cuerpo > *{ flex:0 0 auto; }
.tkfc-grande, .tkfc-sinfoto{ aspect-ratio:auto; width:100%; height:min(46vh, 90vw); }
.tkfc-cargando{ padding:30px; text-align:center; color:var(--text-dim); }
.tkfc-fotos{ display:grid; gap:8px; }
.tkfc-grande{ width:100%; aspect-ratio:1; object-fit:contain; background:#fff; border-radius:16px; cursor:zoom-in; }
.tkfc-tiras{ display:flex; gap:6px; overflow-x:auto; }
.tkfc-tiras img{ width:64px; height:64px; object-fit:cover; border-radius:10px; border:2px solid transparent; cursor:pointer; flex:0 0 auto; background:#fff; }
.tkfc-tiras img.activa{ border-color:var(--accent,#34d399); }
.tkfc-sinfoto{ aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:3rem; background:var(--surface,#161b22); border-radius:16px; }
.tkfc-sinfoto small{ font-size:.8rem; color:var(--text-dim); }
.tkfc-info{ display:grid; gap:12px; align-content:start; }
.tkfc-code{ font-family:ui-monospace,monospace; font-size:1.5rem; font-weight:900; word-break:break-all; }
.tkfc-desc{ margin:0; font-size:1rem; line-height:1.4; }
.tkfc-total{ background:linear-gradient(135deg,var(--accent,#34d399),var(--accent-2,#22d3ee)); color:#04211c; border-radius:16px; padding:14px 16px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.tkfc-total span{ flex:1 1 100%; font-weight:700; font-size:.82rem; }
.tkfc-total b{ font-size:2.2rem; font-weight:900; }
.tkfc-sec{ font-weight:800; font-size:.9rem; }
.tkfc-ubic{ display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:8px; }
.tkfc-ubic > div{ background:var(--surface,#161b22); border:1px solid var(--border,#2a3441); border-radius:12px; padding:10px; display:flex; flex-direction:column; }
.tkfc-ubic b{ font-family:ui-monospace,monospace; }
.tkfc-ubic span{ font-size:.82rem; color:var(--text-dim); }
.tkfc-pie{ position:sticky; bottom:-16px; padding:8px 0 16px; background:var(--bg,#0d1117); }
.tkfc-agregar{ width:100%; padding:16px; border:0; border-radius:14px; font-size:1.05rem; font-weight:900; background:var(--accent,#34d399); color:#04211c; cursor:pointer; }
.tkfc-agregar:disabled{ opacity:.6; cursor:default; }

/* ===== Solicitante: consultar y carrito ===== */
.tkb-caja{ display:grid; gap:10px; }
.tkb-campo input{ width:100%; box-sizing:border-box; padding:14px; font-size:1rem; border-radius:12px; border:1px solid var(--border,#2a3441); background:var(--surface-2,#1b2430); color:inherit; }
.tkb-res{ display:grid; gap:6px; }
.tkb-vacio{ padding:18px; text-align:center; color:var(--text-dim); }
.tkb-item, .tkw-item{ display:flex; align-items:center; gap:10px; padding:10px; border-radius:12px; border:1px solid var(--border,#2a3441); background:var(--surface,#161b22); color:inherit; text-align:left; cursor:pointer; width:100%; }
.tkb-foto{ width:48px; height:48px; border-radius:10px; object-fit:cover; flex:0 0 auto; background:#fff; }
.tkb-txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.tkb-txt b{ font-family:ui-monospace,monospace; }
.tkb-txt span{ font-size:.8rem; color:var(--text-dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tkb-txt i{ font-style:normal; font-size:.76rem; color:var(--accent,#34d399); font-weight:700; }
.tkb-item em{ font-style:normal; font-size:1.3rem; color:var(--text-dim); }
.tk-carrito{ position:fixed; left:12px; right:12px; bottom:calc(76px + env(safe-area-inset-bottom)); z-index:99992; display:flex; gap:8px; max-width:640px; margin:0 auto; padding:8px; border-radius:18px; background:var(--surface,#161b22); border:1px solid var(--accent,#34d399); box-shadow:0 10px 30px rgba(0,0,0,.45); }
.tk-carrito button{ border:0; border-radius:12px; cursor:pointer; color:inherit; }
.tk-carrito-ver{ flex:1; display:flex; align-items:center; gap:10px; background:transparent; text-align:left; padding:6px; }
.tk-carrito-ver small{ display:block; font-size:.74rem; color:var(--text-dim); }
.tk-carrito-ico{ position:relative; font-size:1.5rem; }
.tk-carrito-ico i{ position:absolute; top:-6px; right:-10px; background:#ef4444; color:#fff; font-style:normal; font-size:.7rem; font-weight:900; border-radius:999px; padding:1px 6px; }
.tk-carrito-fin{ background:var(--accent,#34d399) !important; color:#04211c !important; font-weight:900; padding:0 16px; }
.tkw{ display:flex; flex-direction:column; overflow:hidden; max-height:100%; }
.tkw-cab{ display:flex; justify-content:space-between; align-items:center; font-size:.82rem; color:var(--text-dim); }
.tkw-barra{ height:6px; border-radius:999px; background:var(--surface-2,#1b2430); margin:8px 0 12px; overflow:hidden; }
.tkw-barra i{ display:block; height:100%; background:var(--accent,#34d399); transition:width .25s; }
.tkw-cuerpo{ flex:1 1 auto; min-height:0; overflow-y:auto; display:grid; gap:10px; align-content:start; }
.tkw-cuerpo h3{ margin:4px 0 0; }
.tkw-cuerpo p{ margin:0; color:var(--text-dim); font-size:.86rem; }
.tkw-cuerpo > input, .tkw-cuerpo textarea, .tkw-cuerpo input[type=date]{ width:100%; box-sizing:border-box; padding:12px; font-size:1rem; border-radius:12px; border:1px solid var(--border,#2a3441); background:var(--surface-2,#1b2430); color:inherit; }
.tkw-prod{ display:flex; gap:12px; align-items:center; }
.tkw-prod > div{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.tkw-prod b{ font-family:ui-monospace,monospace; }
.tkw-prod span{ font-size:.82rem; color:var(--text-dim); }
.tkw-prod i{ font-style:normal; font-size:.78rem; color:var(--accent,#34d399); font-weight:700; }
.tkw-foto{ width:72px; height:72px; border-radius:12px; object-fit:cover; background:#fff; flex:0 0 auto; }
.tkw-cant{ display:flex; gap:8px; align-items:stretch; }
.tkw-cant button{ width:56px; font-size:1.6rem; font-weight:900; border-radius:12px; border:1px solid var(--border,#2a3441); background:var(--surface-2,#1b2430); color:inherit; cursor:pointer; }
.tkw-cant input{ flex:1; text-align:center; font-size:1.6rem; font-weight:900; padding:10px; border-radius:12px; border:1px solid var(--border,#2a3441); background:var(--surface-2,#1b2430); color:inherit; min-width:0; }
.tkw-res{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.tkw-res > div{ background:var(--surface-2,#1b2430); border-radius:12px; padding:10px; display:flex; flex-direction:column; gap:2px; }
.tkw-res small{ font-size:.72rem; color:var(--text-dim); }
.tkw-res-ancho{ grid-column:1/-1; }
.tkw-nota{ font-size:.76rem !important; }
.tkw-lista{ display:grid; gap:6px; overflow-y:auto; min-height:0; flex:1 1 auto; margin:10px 0; }
.tkw-item{ cursor:default; }
.tkw-quitar{ border:1px solid #ef4444; color:#fca5a5; background:transparent; border-radius:10px; padding:6px 10px; cursor:pointer; }
.tkw-btns{ display:flex; justify-content:space-between; gap:8px; padding-top:12px; }
.tkw-btns .btn{ flex:1; }
/* PC: dentro del buscador, al final, solo el icono. */
@media (min-width:681px){
  .pc-cambio-entorno{ padding:0; }
  .pc-cambio-entorno .tkm-cambio-txt{ display:none; }
}

/* =================== Consultar producto: buscador, resultados y ficha (rediseño) =================== */
.cq-buscador{ display:grid; gap:14px; padding:18px; margin-bottom:14px; border-radius:var(--radius-lg, 18px);
  border:1px solid var(--border); background:linear-gradient(135deg, color-mix(in srgb, var(--accent2, #ff9f40) 12%, var(--surface)), var(--surface)); }
.cq-buscador-t{ display:flex; gap:12px; align-items:center; }
.cq-buscador-t > span{ flex:none; width:46px; height:46px; display:grid; place-items:center; font-size:1.4rem; border-radius:14px;
  background:color-mix(in srgb, var(--accent2, #ff9f40) 22%, var(--surface-2)); }
.cq-buscador-t h2{ margin:0; font-size:1.15rem; }
.cq-buscador-t small{ display:block; color:var(--text-dim); font-size:.8rem; margin-top:2px; line-height:1.35; }
.cq-barra{ display:flex; gap:8px; align-items:stretch; }
.cq-barra .tkm-buscar-campo{ flex:1; min-width:0; position:relative; }
.cq-barra input{ width:100%; box-sizing:border-box; min-height:54px; margin:0; padding:0 16px; font-size:1.05rem; font-weight:700; letter-spacing:.02em;
  color:var(--text); background:var(--surface-2); border:2px solid var(--border); border-radius:var(--radius, 14px); outline:none; font-family:ui-monospace, monospace; }
.cq-barra input:focus{ border-color:var(--accent2, #ff9f40); box-shadow:0 0 0 4px color-mix(in srgb, var(--accent2, #ff9f40) 20%, transparent); }
.cq-barra-btn{ flex:none; padding:0 20px; border-radius:var(--radius, 14px); border:0; font:inherit; font-weight:800; cursor:pointer;
  background:var(--accent2, #ff9f40); color:#1a1205; }
.cq-res{ display:flex; flex-direction:column; gap:8px; }
.cq-res-n{ font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); padding:0 4px; }
.cq-res-vacio{ padding:28px 16px; text-align:center; color:var(--text-dim); border:1px dashed var(--border); border-radius:var(--radius-lg, 18px); }
.cq-item{ display:flex; align-items:stretch; border:1px solid var(--border); border-radius:16px; background:var(--surface); overflow:hidden; transition:border-color .15s; }
.cq-item:hover, .cq-item.activo{ border-color:color-mix(in srgb, var(--accent2, #ff9f40) 60%, var(--border)); }
.cq-item-abrir{ flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:12px 14px; margin:0; border:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.cq-item-foto .cq-item-abrir{ flex-direction:row; align-items:center; gap:12px; }
.cq-item-foto .tkb-txt{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.cq-item .tk-mini.tkb-foto{ width:58px; height:58px; border-radius:12px; }
.cq-item-code{ font-family:ui-monospace, monospace; font-weight:900; font-size:.92rem; overflow-wrap:anywhere; }
.cq-item-code mark{ background:color-mix(in srgb, var(--accent2, #ff9f40) 35%, transparent); color:inherit; border-radius:3px; }
.cq-item-name{ font-size:.8rem; color:var(--text-dim); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cq-item-pz{ font-size:.74rem; font-weight:800; color:#34d399; }
.cq-item-ya{ font-size:.72rem; font-weight:800; color:var(--accent2, #ff9f40); }
.cq-copiar{ flex:none; display:grid; place-items:center; width:46px; margin:0; padding:0; border:0; border-left:1px solid var(--border);
  background:var(--surface-2); color:var(--text-dim); cursor:pointer; transition:color .15s, background .15s; }
.cq-copiar svg{ width:18px; height:18px; }
.cq-copiar:hover{ color:var(--text); background:color-mix(in srgb, var(--accent2, #ff9f40) 16%, var(--surface-2)); }
.cq-copiar.copiado{ color:#34d399; }

/* Ficha */
.tkfc.cq{ background:var(--bg, #0d1117); }
.cq-cab{ display:flex; align-items:center; gap:12px; padding:10px 14px; border-bottom:1px solid var(--border); background:var(--surface); }
.cq-volver{ flex:none; width:42px; height:42px; display:grid; place-items:center; font-size:1.6rem; line-height:1; border-radius:12px;
  border:1px solid var(--border); background:var(--surface-2); color:inherit; cursor:pointer; padding:0 0 3px; }
.cq-cab-t{ flex:1; min-width:0; } .cq-cab-t b{ display:block; } .cq-cab-t small{ color:var(--text-dim); font-size:.74rem; }
.cq-candado{ font-size:1.1rem; opacity:.7; }
.cq-cuerpo{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:18px; max-width:1040px; width:100%; margin:0 auto; box-sizing:border-box; }
.cq-cuerpo > *{ flex:0 0 auto; }
.cq-hero{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); gap:20px; align-items:start; }
.cq-galeria{ display:grid; gap:8px; }
.cq-foto-caja{ aspect-ratio:1; border-radius:20px; background:#fff; display:grid; place-items:center; overflow:hidden; border:1px solid var(--border); }
.tk-mini.cq-foto{ width:100%; height:100%; object-fit:contain; border:0; border-radius:0; cursor:zoom-in; }
.cq-sinfoto{ background:var(--surface); display:flex; flex-direction:column; justify-content:center; gap:4px; } .cq-sinfoto span{ font-size:3.4rem; } .cq-sinfoto small{ color:var(--text-dim); }
.cq-tiras{ display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; }
.cq-tiras img{ width:62px; height:62px; flex:none; object-fit:cover; border-radius:12px; border:2px solid transparent; background:#fff; cursor:pointer; }
.cq-tiras img.activa{ border-color:var(--accent2, #ff9f40); }
.cq-datos{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.cq-campo > small{ display:block; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); margin-bottom:5px; }
.cq-fila{ display:flex; align-items:stretch; border:1px solid var(--border); border-radius:14px; background:var(--surface); overflow:hidden; }
.cq-code{ flex:1; min-width:0; padding:12px 14px; font-family:ui-monospace, monospace; font-size:1.25rem; font-weight:900; overflow-wrap:anywhere; user-select:all; }
.cq-desc{ flex:1; min-width:0; margin:0; padding:12px 14px; font-size:.95rem; line-height:1.45; user-select:text; }
.cq-copiar-ambos{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 16px; border-radius:12px;
  border:1px solid color-mix(in srgb, var(--accent2, #ff9f40) 55%, var(--border)); background:color-mix(in srgb, var(--accent2, #ff9f40) 14%, var(--surface));
  color:var(--text); font:inherit; font-weight:800; cursor:pointer; }
.cq-copiar-ambos svg{ width:18px; height:18px; } .cq-copiar-ambos.copiado{ color:#34d399; border-color:#34d399; }
.cq-stats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:10px; }
.cq-stat{ display:flex; flex-direction:column; gap:2px; padding:14px 16px; border-radius:16px; border:1px solid var(--border); background:var(--surface); }
.cq-stat small{ font-size:.72rem; font-weight:800; color:var(--text-dim); text-transform:uppercase; letter-spacing:.05em; }
.cq-stat b{ font-size:2rem; line-height:1.1; } .cq-stat span{ font-size:.78rem; color:var(--text-dim); }
.cq-stat-prim{ background:linear-gradient(135deg, #34d399, #22d3ee); border:0; color:#04211c; }
.cq-stat-prim small, .cq-stat-prim span{ color:#04211c; opacity:.8; }
.cq-stat-cero{ background:var(--surface-2); color:var(--text); } .cq-stat-cero small, .cq-stat-cero span{ color:var(--text-dim); }
.cq-ubic h3{ margin:0 0 10px; font-size:1rem; }
.cq-ubic-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:8px; }
.cq-ub{ display:flex; flex-direction:column; gap:8px; padding:12px 14px; border-radius:14px; border:1px solid var(--border); background:var(--surface); }
.cq-ub-1{ border:2px solid var(--accent2, #ff9f40); }
.cq-ub-top{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.cq-ub-top b{ font-family:ui-monospace, monospace; font-size:1.02rem; } .cq-ub-top span{ font-weight:800; color:#34d399; white-space:nowrap; }
.cq-ub i{ display:block; height:6px; border-radius:99px; background:var(--surface-2); position:relative; overflow:hidden; }
.cq-ub i::after{ content:""; position:absolute; top:0; bottom:0; left:0; width:var(--p); border-radius:inherit; background:var(--accent2, #ff9f40); }
.cq-pie{ position:sticky; bottom:0; padding-top:6px; background:linear-gradient(transparent, var(--bg, #0d1117) 30%); }
.cq-agregar{ width:100%; min-height:54px; border:0; border-radius:16px; font:inherit; font-size:1rem; font-weight:900; cursor:pointer; background:var(--accent2, #ff9f40); color:#1a1205; }
.cq-agregar:disabled{ opacity:.6; cursor:default; }
.cq-vacio{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:40px 16px; text-align:center; font-size:2rem; color:var(--text-dim); }
.cq-vacio b{ font-size:.95rem; } .cq-vacio-chico{ font-size:.9rem; padding:18px; }
.cq-esqueleto{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); gap:20px; }
.cq-esqueleto i{ display:block; border-radius:16px; background:linear-gradient(90deg, var(--surface), var(--surface-2), var(--surface)); background-size:200% 100%; animation:cqBrillo 1.2s linear infinite; }
.cq-esqueleto > i{ aspect-ratio:1; } .cq-esqueleto div{ display:grid; gap:12px; align-content:start; } .cq-esqueleto div i{ height:56px; } .cq-esqueleto div i:last-child{ height:90px; }
@keyframes cqBrillo{ to{ background-position:-200% 0; } }
@media (max-width:720px){
  .cq-hero, .cq-esqueleto{ grid-template-columns:1fr; }
  .cq-foto-caja{ aspect-ratio:4/3; }
  .cq-cuerpo{ padding:14px; }
  .cq-code{ font-size:1.05rem; }
  .cq-barra-btn{ display:none; }
}
@media (prefers-reduced-motion: reduce){ .cq-esqueleto i{ animation:none; } }
.cq-item.tkm-sug-item{ flex-direction:row; align-items:stretch; padding:0; gap:0; border-bottom:1px solid var(--border); }
.cq-item.tkm-sug-item.activo, .cq-item.tkm-sug-item:hover{ background:var(--surface); }
.cq-ub-man{ border-style:dashed; }
.cq-ub-tipo{ font-size:.72rem; color:var(--text-dim); margin-top:-4px; }
/* Celular: "Activar avisos" solo con la campana, y los avisos por encima de la barra del carrito. */
@media (max-width:640px){ .tk-av-txt{ display:none; } .tk-activar-avisos{ padding-left:12px; padding-right:12px; } }
body:has(.tk-carrito-fin) .tk-aviso-pend{ bottom:160px; }
/* Cuenta regresiva de la migración a Odoo 19 dentro de Alba Tickets. */




  



@keyframes tkOdooLate{ 50%{ filter:brightness(1.15); } }



/* ---------- Tickets del Admin como boletos (pedido de Manuel, 24 oct 2026) ---------- */
/* A todo lo ancho dentro del modo Tickets. */
.tkm-cuerpo > .tka-en-modo{ max-width:none; }
.tka-en-modo .tka-cab{ max-width:none; }
.tka-lista{ grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:12px; }
.tka-boleto{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-height:96px; margin:0; padding:14px 16px 14px 20px;
  border:1px solid var(--border); border-radius:14px; background:var(--surface); color:inherit; font:inherit; text-align:left; cursor:pointer;
  border-left:6px solid var(--tk-c, var(--border)); transition:transform .15s, box-shadow .15s, border-color .15s;
  /* Muescas de boleto a los lados */
  -webkit-mask:radial-gradient(circle 9px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat;
  mask:radial-gradient(circle 9px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat; }
.tka-boleto:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.3); }
.tka-boleto.abierto{ border-color:var(--tk-c, var(--accent2, #ff9f40)); background:color-mix(in srgb, var(--tk-c, #ff9f40) 12%, var(--surface)); }
.tka-boleto-folio{ font-family:ui-monospace, monospace; font-weight:900; font-size:1.05rem; letter-spacing:.04em; color:var(--tk-c, var(--text)); }
.tka-boleto-corte{ align-self:stretch; border-top:2px dashed var(--border); margin:2px 0; }
.tka-boleto-quien{ font-weight:800; font-size:.92rem; line-height:1.25; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.tka-boleto-aviso{ position:absolute; top:10px; right:12px; font-style:normal; }
/* La ficha completa en ventana */
.tka-modal{ position:fixed; inset:0; z-index:99985; display:flex; align-items:flex-start; justify-content:center; padding:24px 12px; overflow-y:auto;
  background:rgba(0,0,0,.6); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.tka-modal-caja{ position:relative; width:min(560px, 100%); animation:tkaModalEntra .18s ease-out; }
.tka-modal-caja > article{ margin:0; }
.tka-modal-x{ position:absolute; top:-12px; right:-12px; z-index:2; width:36px; height:36px; border-radius:50%; border:1px solid var(--border); background:var(--surface-2); color:var(--text); font-size:1rem; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.4); }
@keyframes tkaModalEntra{ from{ transform:translateY(12px); opacity:0; } }
@media (max-width:520px){ .tka-lista{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; } .tka-boleto{ min-height:84px; padding:12px 12px 12px 16px; } .tka-modal-x{ right:4px; top:4px; } }
@media (prefers-reduced-motion: reduce){ .tka-boleto, .tka-modal-caja{ transition:none; animation:none; } }

/* Cambio de entorno discreto (pedido de Manuel, 24 oct 2026): en lugar del círculo que crecía y
   dejaba ver la pantalla anterior, la página se difumina y oscurece, el cambio pasa detrás del
   velo y la pantalla nueva aparece al aclararse. */
.tkm-trans{ clip-path:none !important; opacity:0; background:color-mix(in srgb, var(--bg, #0d1117) 72%, transparent);
  -webkit-backdrop-filter:blur(0px); backdrop-filter:blur(0px);
  transition:opacity .28s ease, backdrop-filter .28s ease, -webkit-backdrop-filter .28s ease !important; }
.tkm-trans.abre{ opacity:1; -webkit-backdrop-filter:blur(22px) saturate(.6); backdrop-filter:blur(22px) saturate(.6); }
.tkm-trans.cierra{ opacity:0; -webkit-backdrop-filter:blur(0px); backdrop-filter:blur(0px); transition:opacity .38s ease, backdrop-filter .38s ease, -webkit-backdrop-filter .38s ease !important; }
.tkm-trans-caja{ gap:8px; transform:translateY(6px) scale(.96); transition:transform .3s ease .08s, opacity .25s ease .08s; }
.tkm-trans.abre .tkm-trans-caja{ transform:none; }
.tkm-trans.cierra .tkm-trans-caja{ opacity:0; transform:translateY(-4px) scale(.98); transition:transform .25s ease, opacity .2s ease; }
.tkm-trans-ico{ width:56px; height:56px; border-radius:16px; animation:none; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.tkm-trans-ico svg{ width:30px; height:30px; }
.tkm-trans-caja b{ font-size:1.05rem; } .tkm-trans-caja small{ font-size:.78rem; }
@media (prefers-reduced-motion: reduce){ .tkm-trans, .tkm-trans.abre, .tkm-trans.cierra{ transition:none !important; } }

/* Ficha del ticket a lo ancho en PC */
.tka-modal.tka-modal-ancho .tka-modal-caja{ width:min(1180px, 96vw); }
.tkx-cols{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:18px; align-items:start; }
.tkx-izq, .tkx-der{ display:flex; flex-direction:column; gap:12px; min-width:0; }

/* ---------- Nueva cuenta de solicitante: recorrido a pantalla completa ---------- */
html.tkw-abierta, html.tkw-abierta body{ overflow:hidden !important; }
.tkw{ position:fixed; inset:0; z-index:99992; display:grid; grid-template-columns:minmax(260px, 320px) 1fr; background:var(--bg, #0d1117); color:var(--text);
  opacity:0; transform:scale(.985); transition:opacity .22s ease, transform .22s ease; }
.tkw.ver{ opacity:1; transform:none; }
.tkw svg{ width:18px; height:18px; flex:none; }
.tkw-lado{ display:flex; flex-direction:column; gap:18px; padding:24px 20px; border-right:1px solid var(--border); background:var(--surface); }
.tkw-marca{ display:flex; align-items:center; gap:12px; }
.tkw-marca > svg{ width:42px; height:42px; padding:10px; box-sizing:border-box; border-radius:14px; background:color-mix(in srgb, var(--accent2, #ff9f40) 20%, var(--surface-2)); color:var(--accent2, #ff9f40); }
.tkw-marca b{ display:block; font-size:1.1rem; } .tkw-marca small{ color:var(--text-dim); font-size:.78rem; }
.tkw-pasos{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; flex:1; }
.tkw-pasos li{ display:flex; align-items:center; gap:10px; padding:12px; border-radius:14px; color:var(--text-dim); border:1px solid transparent; }
.tkw-pasos li span{ width:26px; height:26px; flex:none; display:grid; place-items:center; border-radius:50%; font-weight:900; font-size:.8rem; background:var(--surface-2); }
.tkw-pasos li.ahora{ color:var(--text); border-color:color-mix(in srgb, var(--accent2, #ff9f40) 55%, var(--border)); background:color-mix(in srgb, var(--accent2, #ff9f40) 12%, var(--surface-2)); }
.tkw-pasos li.ahora span{ background:var(--accent2, #ff9f40); color:#1a1205; }
.tkw-pasos li.hecho{ color:var(--text); } .tkw-pasos li.hecho span{ background:#22c55e; color:#04211c; }
.tkw-salir{ padding:12px; border-radius:12px; border:1px solid var(--border); background:var(--surface-2); color:inherit; font:inherit; font-weight:800; cursor:pointer; }
.tkw-main{ display:flex; flex-direction:column; min-width:0; min-height:0; }
.tkw-barra{ height:5px; background:var(--surface-2); } .tkw-barra i{ display:block; height:100%; width:0; background:var(--accent2, #ff9f40); transition:width .3s ease; }
.tkw-cuerpo{ flex:1; min-height:0; overflow-y:auto; display:flex; align-items:center; justify-content:center; padding:32px clamp(18px, 6vw, 80px); }
.tkw-paso, .tkw-hecho{ width:min(760px, 100%); display:flex; flex-direction:column; gap:14px; animation:tkwEntra .25s ease; }
.tkw-num{ font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--accent2, #ff9f40); }
.tkw-paso h2, .tkw-hecho h2{ margin:0; font-size:clamp(1.5rem, 3vw, 2.2rem); }
.tkw-paso p, .tkw-hecho p{ margin:0; color:var(--text-dim); font-size:1rem; line-height:1.5; }
.tkw-input{ width:100%; box-sizing:border-box; padding:16px 18px; border-radius:16px; border:2px solid var(--border); background:var(--surface-2); color:var(--text); font:inherit; font-size:1.2rem; margin:0; outline:none; }
.tkw-input:focus{ border-color:var(--accent2, #ff9f40); box-shadow:0 0 0 4px color-mix(in srgb, var(--accent2, #ff9f40) 18%, transparent); }
.tkw-dos{ display:grid; grid-template-columns:1fr 1fr; gap:12px; } .tkw-dos label{ display:flex; flex-direction:column; gap:6px; } .tkw-dos small{ font-weight:800; color:var(--text-dim); font-size:.78rem; }
.tkw-previa, .tkw-datos{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:10px; }
.tkw-previa > div, .tkw-datos > div{ display:flex; flex-direction:column; gap:3px; padding:14px 16px; border-radius:14px; border:1px solid var(--border); background:var(--surface); }
.tkw-previa small, .tkw-datos small{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--text-dim); }
.tkw-previa b, .tkw-datos b{ font-size:1.05rem; overflow-wrap:anywhere; }
.tkw-previa .tkw-nota{ grid-column:1/-1; border:0; background:none; padding:0; }
.tkw-nota{ font-size:.85rem; color:var(--text-dim); }
.tkw-op{ display:flex; gap:12px; align-items:flex-start; padding:16px; border-radius:16px; border:1px solid var(--border); background:var(--surface); cursor:pointer; }
.tkw-op:has(input:checked){ border-color:var(--accent2, #ff9f40); background:color-mix(in srgb, var(--accent2, #ff9f40) 10%, var(--surface)); }
.tkw-op input{ width:22px; height:22px; margin:2px 0 0; flex:none; } .tkw-op span{ display:flex; flex-direction:column; gap:3px; } .tkw-op small{ color:var(--text-dim); }
.tkw-hecho{ align-items:center; text-align:center; } .tkw-hecho > svg{ width:64px; height:64px; color:#22c55e; }
.tkw-hecho .tkw-datos{ width:100%; text-align:left; }
.tkw-msg{ padding:0 clamp(18px, 6vw, 80px); color:#f87171; font-weight:700; min-height:1.2em; text-align:center; }
.tkw-pie{ display:flex; justify-content:space-between; gap:10px; padding:16px clamp(18px, 6vw, 80px) 22px; border-top:1px solid var(--border); background:var(--surface); }
.tkw-btn{ min-height:52px; padding:0 22px; border-radius:14px; border:1px solid var(--border); background:var(--surface-2); color:inherit; font:inherit; font-weight:900; font-size:1rem; cursor:pointer; }
.tkw-prim{ background:var(--accent2, #ff9f40); color:#1a1205; border-color:transparent; min-width:200px; }
.tkw-btn:disabled{ opacity:.6; }
@keyframes tkwEntra{ from{ opacity:0; transform:translateX(14px); } }
@media (max-width:820px){
  .tkw{ grid-template-columns:1fr; grid-template-rows:auto 1fr; }
  .tkw-lado{ flex-direction:row; align-items:center; padding:12px 14px; border-right:0; border-bottom:1px solid var(--border); gap:10px; }
  .tkw-marca small{ display:none; } .tkw-marca > svg{ width:36px; height:36px; padding:8px; }
  .tkw-pasos{ flex-direction:row; justify-content:flex-end; gap:4px; } .tkw-pasos li{ padding:0; border:0; background:none !important; } .tkw-pasos li b, .tkw-pasos li svg{ display:none; }
  .tkw-salir{ padding:8px 10px; font-size:.8rem; }
  .tkw-cuerpo{ align-items:flex-start; padding:22px 16px; } .tkw-dos{ grid-template-columns:1fr; }
  .tkw-pie{ padding:12px 16px 18px; } .tkw-prim{ flex:1; min-width:0; } .tkw-pie .tkw-btn{ padding:0 14px; }
}
@media (prefers-reduced-motion: reduce){ .tkw, .tkw-paso, .tkw-hecho, .tkw-barra i{ transition:none; animation:none; } }
@media (max-width:820px){ .tkw-resumen{ grid-template-columns:1fr 1fr; } .tkw-resumen > div:first-child{ grid-column:1/-1; } }
.tkw-sol{ display:flex; flex-direction:column; gap:4px; padding:14px 16px; border-radius:14px; border:1px dashed color-mix(in srgb, var(--accent2, #ff9f40) 60%, var(--border)); background:color-mix(in srgb, var(--accent2, #ff9f40) 8%, var(--surface)); text-align:left; }
.tkw-sol span{ color:var(--text-dim); font-size:.9rem; line-height:1.45; } .tkw-sol span b{ color:var(--text); }
