/* Sistema visual: vidrio claro sobre degradado (estilo iOS). */
:root {
  --azul: #0A7CFF;
  --ios-azul: #0A84FF;
  --azul-texto: #0A64C8;
  --texto: #1D1D1F;
  --texto-2: #3A3A3C;
  --g700: #374151; --g600: #4B5563; --g500: #6B7280; --g400: #9CA3AF; --g300: #D1D5DB;
  --linea: rgba(60, 60, 67, .12);
  --verde: #1E8449; --rojo: #e74c3c; --rojo-ui: #DC2626; --amarillo: #F5B942; --gris-estado: #8B93A1;
  --radio-grande: 26px; --radio-tarjeta: 18px; --radio-campo: 12px;
  --vidrio-opacidad: .55; --vidrio-blur: 20px;
  --fondo: linear-gradient(135deg, #E0F2FE 0%, #DBEAFE 35%, #EDE9FE 70%, #FCE7F3 100%);
  --textura-imagen: none; --textura-opacidad: 0;
  --curva-abre: cubic-bezier(.22, 1, .36, 1); --curva-cierra: cubic-bezier(.5, 0, .75, .3);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; min-height: 100vh; color: var(--texto); letter-spacing: -.01em;
  font: 14px/1.43 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", Roboto, system-ui, sans-serif;
  background: var(--fondo); background-attachment: fixed;
}
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: -1; background-image: var(--textura-imagen); opacity: var(--textura-opacidad); mix-blend-mode: overlay; }
body.con-fondo { background: var(--fondo-img) center / cover fixed; }
a { color: var(--azul); text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; }
h1 { font-size: 20px; line-height: 28px; font-weight: 500; margin: 0; }
h2 { font-size: 14px; font-weight: 500; margin: 0 0 12px; }
.mut { color: var(--g500); }
.xs { font-size: 12px; line-height: 16px; }
.sm { font-size: 14px; }
.oculto, [hidden] { display: none !important; }
.texto-azul { color: var(--azul); }
.rojo { color: #EF4444; }

/* ---------- vidrio ---------- */
.tarjeta-vidrio {
  background: linear-gradient(160deg, rgba(255,255,255,calc(var(--vidrio-opacidad) + .07)), rgba(255,255,255,calc(var(--vidrio-opacidad) * .55)) 60%, rgba(255,255,255,calc(var(--vidrio-opacidad) * .75)));
  -webkit-backdrop-filter: blur(calc(var(--vidrio-blur) * 1.5)) saturate(190%); backdrop-filter: blur(calc(var(--vidrio-blur) * 1.5)) saturate(190%);
  border: 1px solid rgba(255,255,255,.75); border-radius: var(--radio-grande);
  box-shadow: inset 0 1.5px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(255,255,255,.35), inset 0 0 18px rgba(255,255,255,.18), 0 12px 32px -8px rgba(40,50,90,.18), 0 2px 6px rgba(40,50,90,.06);
}
.menu-flotante {
  background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(30px) saturate(190%); backdrop-filter: blur(30px) saturate(190%);
  border: 1px solid rgba(255,255,255,.7); border-radius: 16px; box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 16px 40px -10px rgba(40,50,90,.28);
}
.vidrio-claro {
  background: linear-gradient(160deg, rgba(255,255,255,.40), rgba(255,255,255,.18)); -webkit-backdrop-filter: blur(18px) saturate(190%); backdrop-filter: blur(18px) saturate(190%);
  border: 1px solid rgba(255,255,255,.85); box-shadow: inset 0 1.5px 0 rgba(255,255,255,.95), 0 22px 48px -12px rgba(40,50,90,.35);
}

/* ---------- barra superior ---------- */
.barra {
  position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 12px; height: 56px; padding: 0 16px;
  border-radius: 0; border-width: 0 0 1px; box-shadow: 0 6px 20px -10px rgba(40,50,90,.2);
}
.barra .marca { font-weight: 600; font-size: 14px; color: var(--texto); white-space: nowrap; }
.barra nav { display: flex; gap: 6px; margin-left: 32px; align-items: center; }
.pildora-nav {
  padding: 5px 13px; border-radius: 999px; color: rgba(29,29,31,.72); font-size: 14px; white-space: nowrap; background: rgba(255,255,255,.5);
  border: 1px solid rgba(255,255,255,.7); transition: background .2s, transform .15s, box-shadow .2s; display: inline-flex; align-items: center; gap: 6px;
}
.pildora-nav:hover { background: rgba(255,255,255,.78); box-shadow: 0 4px 12px -4px rgba(40,50,90,.18); }
.pildora-nav:active { transform: scale(.96); }
.pildora-nav-activa { color: var(--ios-azul) !important; font-weight: 600; background: rgba(10,132,255,.14) !important; border-color: rgba(10,132,255,.28); }
.duo-encendido { color: var(--ios-azul); border-color: rgba(10,132,255,.4); position: relative; }
.duo-encendido::after { content: ""; position: absolute; inset: -3px; border-radius: 999px; border: 1.5px solid rgba(10,132,255,.35); animation: eco 2.4s ease-in-out infinite alternate; }
@keyframes eco { from { transform: translate(-1px, -1px); opacity: .4; } to { transform: translate(2px, 2px); opacity: .9; } }
.barra .der { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.boton-redondo { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 2px 8px -2px rgba(40,50,90,.18); }
.boton-redondo.activo { color: var(--ios-azul); background: rgba(10,132,255,.14); }
.menu-usuario { position: relative; }
.menu-usuario > button { border: 1px solid rgba(255,255,255,.8); background: rgba(255,255,255,.6); border-radius: 999px; padding: 6px 14px; font-size: 14px; }
.menu-usuario > button small { color: var(--g400); font-size: 12px; }
#menu_usuario { position: absolute; right: 0; top: calc(100% + 8px); width: 14rem; padding: 6px 0; z-index: 60; }
#menu_usuario a, #menu_usuario button, .opcion-menu { display: block; width: 100%; text-align: left; padding: 8px 16px; font-size: 14px; color: var(--texto); background: none; border: 0; }
#menu_usuario a:hover, #menu_usuario button:hover, .opcion-menu:hover { background: rgba(10,132,255,.07); }
#menu_usuario .sep { border-top: 1px solid var(--linea); margin-top: 4px; }
.revela { animation: revela .75s var(--curva-abre) both; }
.revela > * { animation: entra-opcion .5s var(--curva-abre) both; }
.revela > *:nth-child(2) { animation-delay: 70ms; } .revela > *:nth-child(3) { animation-delay: 140ms; } .revela > *:nth-child(4) { animation-delay: 210ms; } .revela > *:nth-child(5) { animation-delay: 280ms; } .revela > *:nth-child(6) { animation-delay: 350ms; }
@keyframes revela { from { -webkit-mask-image: linear-gradient(#000 0%, transparent 0%); mask-image: linear-gradient(#000 0%, transparent 0%); filter: blur(18px); } 60% { -webkit-mask-image: linear-gradient(#000 80%, transparent 100%); mask-image: linear-gradient(#000 80%, transparent 100%); } to { -webkit-mask-image: none; mask-image: none; filter: none; } }
@keyframes entra-opcion { from { opacity: 0; filter: blur(12px); transform: translateY(-10px); } }
.barra .solo-cel, .solo-cel { display: none; }
@media (max-width: 767px) {
  .barra { height: auto; padding: 8px 16px; }
  .barra nav, .barra .solo-pc { display: none; }
  .barra .solo-cel, .solo-cel { display: inline-flex; }
}
@media (max-width: 1023px) { .solo-lg { display: none !important; } }
#menu_movil { position: fixed; left: 12px; right: 12px; top: 64px; z-index: 40; padding: 14px; border-radius: 26px; display: grid; gap: 12px;
  background: linear-gradient(160deg, rgba(246,247,251,.94), rgba(246,247,251,.88)); -webkit-backdrop-filter: blur(34px); backdrop-filter: blur(34px);
  border: 1px solid rgba(255,255,255,.8); box-shadow: 0 24px 60px -16px rgba(40,50,90,.35); animation: entra .45s var(--curva-abre); }
#menu_movil .grilla { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.item-menu-movil { background: rgba(255,255,255,.85); padding: .7rem 1rem; border-radius: 999px; font-size: 14px; color: var(--texto); border: 0; text-align: left; }
.item-menu-movil.activo { color: var(--ios-azul); font-weight: 600; }
#menu_movil .titulo { font-size: 13px; color: var(--g500); padding: 0 4px; }
#menu_movil .opciones { display: grid; gap: 4px; }
#menu_movil .opciones > * { text-align: left; padding: 8px 6px; background: none; border: 0; font-size: 14px; color: var(--texto); }

/* ---------- contenido ---------- */
main { max-width: 1024px; margin: 0 auto; padding: 16px; }
@media (min-width: 768px) { main { padding: 24px; } }
main.ancho { max-width: 1400px; }
.seccion { padding: 20px; margin-bottom: 24px; }
.fila { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.entre { justify-content: space-between; }
.grid2 { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 640px) { .grid2 { grid-template-columns: 1fr 1fr; } }
.etiqueta { display: block; font-size: 12px; color: var(--g500); margin-bottom: 4px; }
main input[type=text], main input[type=tel], main input[type=email], main input[type=number], main input[type=password], main input[type=date],
main input[type=datetime-local], main input[type=search], main select, main textarea, .campo {
  width: 100%; padding: 8px 12px; border-radius: var(--radio-campo); border: 1px solid rgba(255,255,255,.55); background: rgba(120,120,135,.10);
  box-shadow: inset 0 1px 2px rgba(40,50,90,.08); outline: none; font-size: 14px; min-height: 38px; color: var(--texto);
}
main textarea { resize: vertical; }
main input:focus, main select:focus, main textarea:focus, .campo:focus { background: rgba(255,255,255,.8); box-shadow: 0 0 0 3px rgba(10,132,255,.25); }
main input[readonly] { background: rgba(120,120,135,.06); color: var(--g500); cursor: not-allowed; }
main input:disabled { opacity: .55; }

/* ---------- botones ---------- */
.acc-pildora, .acc-icono {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; white-space: nowrap; text-decoration: none;
  background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.8); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 2px 8px -2px rgba(40,50,90,.18); color: var(--texto); transition: background .2s, transform .15s;
}
.acc-pildora { padding: 6px 14px; font-size: 13px; font-weight: 500; }
.acc-icono { width: 34px; height: 34px; font-size: 15px; padding: 0; }
.acc-pildora:hover, .acc-icono:hover { background: rgba(255,255,255,.88); }
.acc-pildora:active, .acc-icono:active { transform: scale(.96); }
.acc-grande { padding: 9px 18px; font-size: 14px; }
.acc-primario { background: rgba(10,132,255,.16); border-color: rgba(10,132,255,.40); color: #0A64C8; font-weight: 600; }
.acc-entregar { background: rgba(52,199,89,.16); border-color: rgba(52,199,89,.40); color: #0B7A45; font-weight: 600; }
.acc-entregar-pendiente { color: rgba(29,29,31,.5); }
.acc-revertir { background: rgba(255,149,0,.14); border-color: rgba(255,149,0,.38); color: #B45309; font-weight: 600; }
.acc-whatsapp { color: #25D366; }
.acc-whatsapp-pildora { background: rgba(37,211,102,.16); border-color: rgba(37,211,102,.42); color: #128C4A; font-weight: 600; }
.acc-peligro { background: rgba(255,59,48,.12); border-color: rgba(255,59,48,.36); color: #D92D20; font-weight: 600; }
.acc-eliminar { color: rgba(29,29,31,.45); }
.acc-eliminar:hover { background: rgba(255,59,48,.12); color: #DC2626; }
.acc-pildora[disabled], .acc-icono[disabled] { opacity: .5; cursor: default; }
.boton-azul { background: var(--azul); color: #fff; border: 0; border-radius: 8px; padding: 8px 16px; font-size: 14px; font-weight: 500; }
.enlace { background: none; border: 0; color: var(--azul); padding: 0; font-size: 14px; }
.icono-wsp { width: 17px; height: 17px; fill: #25D366; }

/* ---------- píldora de estado ---------- */
.pildora-estado {
  display: inline-flex; align-items: center; gap: 4px; padding: 5px 12px; border-radius: 999px; font-weight: 600; font-size: 12px; line-height: 16px;
  background-image: linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.3)); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 1px 3px rgba(40,50,90,.08);
}
.pildora-estado-grande { padding: 9px 16px; font-size: 14px; }
.cambio-blur { animation: cambio .45s var(--curva-abre); }
@keyframes cambio { from { filter: blur(6px); opacity: .4; } }

/* ---------- menús flotantes (estado, PDF, WhatsApp) ---------- */
.menu-estado-vidrio { width: 17rem; max-width: 90vw; padding: 8px; border-radius: 20px; display: flex; flex-direction: column; gap: 5px; }
.menu-estado-vidrio button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 12px; border-radius: 999px; background: none; border: 0; text-align: left; font-size: 13.5px; font-weight: 500; }
.menu-estado-vidrio button::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent); flex: none; }
.menu-estado-vidrio button:hover { background: rgba(255,255,255,.55); }
.menu-estado-vidrio button.actual { font-weight: 600; background: color-mix(in srgb, currentColor 16%, transparent); }
.menu-estado-vidrio .sep { height: 1px; background: rgba(60,60,67,.14); margin: 3px 10px; }
.flotante { position: fixed; z-index: 60; }
.menu-pdf, .menu-wsp { padding: 8px; }
.menu-pdf { width: 16rem; max-width: 90vw; }
.menu-wsp { width: 18rem; max-width: 90vw; }
.menu-pdf a { display: block; padding: 8px 12px; border-radius: 10px; color: var(--texto); }
.menu-pdf a:hover, .menu-wsp .opcion:hover { background: rgba(10,132,255,.06); }
.menu-pdf a span { display: block; font-size: 12px; color: var(--g500); }
.menu-wsp .opcion { display: flex; gap: 6px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; }
.menu-wsp .opcion a { flex: 1; color: var(--texto); }
.menu-wsp .opcion a span { display: block; font-size: 12px; color: var(--g500); }
.menu-wsp .opcion .lapiz { border: 0; background: none; font-size: 14px; padding: 2px 4px; }
.menu-wsp .editor { padding: 0 10px 10px; }
.menu-wsp textarea { width: 100%; font-size: 12px; border-radius: 10px; border: 1px solid var(--linea); padding: 6px 8px; min-height: 64px; }
.menu-wsp .enviar { background: #25D366; color: #fff; border: 0; border-radius: 8px; font-size: 12px; font-weight: 500; padding: 5px 10px; margin-top: 4px; }

/* ---------- avisos flotantes ---------- */
#avisos { position: fixed; top: calc(env(safe-area-inset-top) + 64px); left: 50%; transform: translateX(-50%); z-index: 45; display: flex; flex-direction: column; gap: 8px; width: min(400px, calc(100vw - 24px)); pointer-events: none; }
.aviso { pointer-events: auto; display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 22px; cursor: pointer;
  background: linear-gradient(160deg, rgba(255,255,255,.72), rgba(255,255,255,.5)); -webkit-backdrop-filter: blur(24px) saturate(190%); backdrop-filter: blur(24px) saturate(190%);
  border: 1px solid rgba(255,255,255,.7); box-shadow: 0 18px 40px -14px rgba(40,50,90,.35); animation: aviso-entra .6s cubic-bezier(.34,1.56,.64,1); }
.aviso.sale { animation: aviso-sale .45s var(--curva-cierra) forwards; }
.aviso .ico { width: 38px; height: 38px; border-radius: 10px; flex: none; display: grid; place-items: center; color: #fff; font-weight: 700; background: linear-gradient(160deg, #4CD964, #28B446); }
.aviso.error .ico { background: linear-gradient(160deg, #FF6B5E, #E5372A); }
.aviso .cuerpo { flex: 1; min-width: 0; }
.aviso .cab { display: flex; justify-content: space-between; font-size: 14px; font-weight: 600; }
.aviso .cab small { font-weight: 400; color: var(--g500); font-size: 12px; }
.aviso .txt { font-size: 14px; font-weight: 600; }
@keyframes aviso-entra { from { transform: translateY(-40px) scale(.92); filter: blur(8px); opacity: 0; } }
@keyframes aviso-sale { to { transform: translateY(-30px); filter: blur(10px); opacity: 0; } }

/* ---------- burbuja de confirmación ---------- */
.burbuja-confirmar { position: fixed; z-index: 70; width: 16.5rem; padding: 12px; border-radius: 22px; text-align: center; font-size: 13.5px; animation: entra-opcion .35s var(--curva-abre);
  background: linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.4)); -webkit-backdrop-filter: blur(16px) saturate(190%); backdrop-filter: blur(16px) saturate(190%);
  border: 1px solid rgba(255,255,255,.85); box-shadow: inset 0 1.5px 0 rgba(255,255,255,.95), 0 22px 48px -12px rgba(40,50,90,.35); }
.burbuja-confirmar .botones { display: flex; gap: 8px; justify-content: center; margin-top: 10px; }
.burbuja-confirmar button { border-radius: 999px; border: 0; padding: 6px 14px; font-size: 13px; font-weight: 600; background: rgba(255,255,255,.7); }
.burbuja-confirmar .si { background: rgba(10,132,255,.14); color: #0A64C8; }
.burbuja-confirmar .si.peligro { background: rgba(255,59,48,.13); color: #D70015; }

/* ---------- modales ---------- */
.modal-vidrio { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(30,35,60,.16); animation: fundido .35s; }
@keyframes fundido { from { opacity: 0; } }
.modal-vidrio-caja { position: relative; width: 100%; max-width: 384px; padding: 20px 18px 16px; border-radius: 26px; animation: modal-entra .6s var(--curva-abre);
  background: linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.42)); -webkit-backdrop-filter: blur(18px) saturate(190%); backdrop-filter: blur(18px) saturate(190%);
  border: 1px solid rgba(255,255,255,.85); box-shadow: inset 0 1.5px 0 rgba(255,255,255,.95), 0 26px 60px -14px rgba(40,50,90,.42); }
.modal-vidrio.sale { animation: fundido .32s reverse forwards; }
@keyframes modal-entra { from { transform: scale(.92) translateY(8px); filter: blur(16px); opacity: 0; } }
.modal-panel { width: 100%; max-width: 24rem; max-height: 85vh; overflow-y: auto; padding: 0; }
.modal-panel .cab { position: sticky; top: 0; display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: rgba(255,255,255,.9); border-bottom: 1px solid var(--linea); font-weight: 600; z-index: 1; }
.modal-panel .cab button { border: 0; background: none; font-size: 20px; }
.modal-panel .cuerpo-panel { padding: 14px 16px 18px; display: grid; gap: 16px; }

/* ---------- interruptor iOS ---------- */
.interruptor { position: relative; width: 46px; height: 28px; flex: none; }
.interruptor input { opacity: 0; width: 0; height: 0; position: absolute; }
.interruptor span { position: absolute; inset: 0; border-radius: 999px; background: rgba(120,120,128,.28); transition: background .25s; cursor: pointer; }
.interruptor span::after { content: ""; position: absolute; left: 2px; top: 2px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.2); transition: transform .25s var(--curva-abre); }
.interruptor input:checked + span { background: #34C759; }
.interruptor input:checked + span::after { transform: translateX(18px); }
.interruptor input:disabled + span { opacity: .5; cursor: default; }

/* ---------- planilla tipo Excel ---------- */
.planilla-scroll { overflow: auto; overscroll-behavior: contain; border-radius: var(--radio-grande); }
table.hoja { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: 13px; }
.hoja th, .hoja td { border-right: 1px solid rgba(60,60,67,.10); border-bottom: 1px solid rgba(60,60,67,.10); padding: 7px 9px; white-space: nowrap; text-align: left; }
.hoja thead th { position: sticky; z-index: 3; background: rgba(246,247,251,.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.hoja thead tr.letras th { top: 0; height: 22px; font-size: 10.5px; color: var(--g400); font-weight: 500; text-align: center; padding: 2px; }
.hoja thead tr.titulos th { top: 22px; font-size: 12px; font-weight: 600; color: var(--texto-2); cursor: pointer; user-select: none; }
.hoja thead tr.titulos:first-child th { top: 0; }
.hoja thead th:hover { background: rgba(236,238,245,.95); }
.hoja thead th .flecha { font-size: 10px; color: var(--ios-azul); margin-left: 4px; }
.hoja tbody td { background: rgba(255,255,255,.62); }
.hoja tbody tr:hover td { background: rgba(236,244,255,.82); }
.hoja .num { text-align: right; font-variant-numeric: tabular-nums; }
.hoja .col-num { width: 44px; min-width: 44px; text-align: center; color: rgba(60,60,67,.45); font-size: 11px; background: rgba(246,247,251,.85) !important; position: sticky; left: 0; z-index: 2; }
.hoja thead .col-num { z-index: 4; }
.hoja td.editable { cursor: cell; }
.hoja td.celda-activa { outline: 2px solid var(--ios-azul); outline-offset: -2px; background: rgba(10,132,255,.08) !important; }
.hoja th.columna-activa, .hoja td.fila-activa { color: #0A64C8 !important; background: rgba(214,232,255,.95) !important; }
.hoja td.editando { padding: 0; outline: 2px solid var(--ios-azul); outline-offset: -2px; background: #fff !important; }
.hoja td.editando input, .hoja td.editando select { width: 100%; min-width: 0; min-height: 33px; border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 7px 10px; font: inherit; outline: none; }
.hoja td.recien-guardada { animation: guardada 1s; }
@keyframes guardada { 0% { background: rgba(52,199,89,.35); } }
.hoja tr.fila-nueva td { background: rgba(255,255,255,.42); color: rgba(60,60,67,.5); font-style: italic; }
.hoja tr.fila-nueva td.col-num { font-style: normal; color: var(--ios-azul); font-weight: 700; }
.hoja tfoot td { position: sticky; bottom: 0; z-index: 2; background: rgba(246,247,251,.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); font-weight: 600; }
.hoja .vacio { color: rgba(60,60,67,.32); }
.boton-borrar-fila { color: rgba(60,60,67,.35); padding: 2px 6px; border-radius: 8px; border: 0; background: none; }
.boton-borrar-fila:hover { color: #DC2626; background: rgba(255,59,48,.1); }
.barra-hoja input[type=search], .barra-hoja select { border-radius: 999px !important; background: rgba(255,255,255,.72) !important; }
.aparece { animation: aparece .45s var(--curva-abre); }
@keyframes aparece { from { opacity: 0; filter: blur(8px); transform: translateY(-6px); } }
.saliendo { animation: saliendo .35s var(--curva-cierra) forwards; }
@keyframes saliendo { to { opacity: 0; filter: blur(10px); transform: scale(.96); } }

/* ---------- login ---------- */
.login { min-height: 100vh; display: grid; place-items: center; padding: 16px; }
.login .tarjeta-vidrio { width: min(380px, 100%); padding: 28px; }
.login img { width: 72px; height: 72px; border-radius: 18px; display: block; margin: 0 auto 14px; object-fit: cover; }
.error { color: var(--rojo-ui); font-size: 13.5px; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
@media (prefers-reduced-transparency: reduce) { .tarjeta-vidrio { background: rgba(255,255,255,.9); } }
@media print { .barra, #avisos, .no-imprimir { display: none !important; } body { background: #fff; } }

/* ---------- dentro de DUO o pantalla completa ---------- */
html.en-duo .barra, html.en-duo #menu_movil { display: none !important; }
html.en-duo body { background: transparent; }
html.en-duo main { max-width: none; padding: 14px 16px 28px; }
html.en-duo #avisos { top: 12px; }

/* ---------- modo intenso ---------- */
html.modo-intenso body { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.12); }
html.modo-intenso .mut, html.modo-intenso .xs.mut { color: rgba(255,255,255,.78); }
html.modo-intenso .pildora-nav { color: rgba(255,255,255,.92); background: rgba(255,255,255,.18); }
html.modo-intenso .menu-flotante, html.modo-intenso main input, html.modo-intenso main select, html.modo-intenso main textarea, html.modo-intenso .modal-vidrio-caja, html.modo-intenso .burbuja-confirmar { color: var(--texto); text-shadow: none; }
html.modo-intenso main input, html.modo-intenso main select, html.modo-intenso main textarea { background: rgba(255,255,255,.75); }
html.modo-intenso [style*="#e74c3c"] { color: #FECACA !important; }
html.modo-intenso [style*="#F5B942"] { color: #FEF08A !important; }
html.modo-intenso [style*="#1E8449"] { color: #BBF7D0 !important; }
html.modo-intenso [style*="#B8860B"] { color: #FDE68A !important; }
html.modo-intenso [style*="#E67E22"] { color: #FED7AA !important; }
html.modo-intenso [style*="#8B93A1"] { color: rgba(255,255,255,.75) !important; }
html.modo-intenso .acc-pildora, html.modo-intenso .acc-icono { color: #fff; background: rgba(255,255,255,.2); }
