/* ==========================================================================
   Progressive Multimedios · sitio público v2.7.0
   Sistema de diseño: superficies oscuras tipo consola, acento eléctrico por
   área de negocio (tecnología / servicio técnico / audio), tipografía Inter
   con etiquetas monoespaciadas. Mobile-first, min-width en cada breakpoint.
   ========================================================================== */

/* --- Tipografías auto-hospedadas (sin dependencias externas ni CSP extra) --- */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/inter-var-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/jetbrainsmono-var-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Superficies oscuras */
  --night-900: #04070f;
  --night-800: #070c18;
  --night-700: #0b1223;
  --night-600: #101a30;
  --night-500: #16233f;

  /* Superficies claras */
  --paper: #f4f7fc;
  --paper-2: #ffffff;
  --ink: #08111f;
  --ink-soft: #22334d;

  /* Marca */
  --blue: #0a6cff;
  --blue-deep: #0056d6;
  --blue-soft: #4d93ff;
  --cyan: #22d3ee;
  --violet: #8b5cf6;
  --mint: #34d399;

  /* Texto */
  --text: #eaf1ff;
  --text-dim: #9db0ce;
  --text-faint: #7c8da8;
  --muted: #55657e;

  /* Bordes y velos */
  --line-dark: rgba(140, 180, 240, 0.14);
  --line-light: rgba(10, 30, 60, 0.1);
  --veil: rgba(255, 255, 255, 0.04);
  --veil-2: rgba(255, 255, 255, 0.07);

  /* Compatibilidad con hojas heredadas */
  --navy: #070c18;
  --navy-soft: #101a30;
  --white: #ffffff;
  --line: rgba(10, 30, 60, 0.1);

  /* Tipografía fluida */
  --fs-2xs: clamp(0.625rem, 0.6rem + 0.12vw, 0.6875rem);
  --fs-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
  --fs-sm: clamp(0.8125rem, 0.79rem + 0.15vw, 0.875rem);
  --fs-base: clamp(0.9375rem, 0.9rem + 0.2vw, 1.0625rem);
  --fs-lg: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem);
  --fs-h3: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem);
  --fs-h2: clamp(1.875rem, 1.35rem + 2.3vw, 3.125rem);
  --fs-h1: clamp(2.375rem, 1.6rem + 3.7vw, 4.25rem);

  /* Escala de espacio (densidad estándar) */
  --s-1: 0.5rem;
  --s-2: 0.75rem;
  --s-3: 1rem;
  --s-4: 1.5rem;
  --s-5: 2rem;
  --s-6: 3rem;
  --s-7: 4rem;
  --s-block: clamp(4rem, 8vw, 7rem);

  /* Radios */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 18px;
  --r-xl: 26px;
  --r-full: 999px;

  /* Movimiento */
  --t-fast: 0.16s cubic-bezier(0.4, 0, 0.2, 1);
  --t-base: 0.26s cubic-bezier(0.4, 0, 0.2, 1);

  --shadow-card: 0 24px 60px -28px rgba(4, 12, 30, 0.5);
  --shadow-lift: 0 32px 70px -30px rgba(4, 20, 50, 0.45);
  --header-h: 68px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  color-scheme: dark;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 12px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: var(--fs-base);
  line-height: 1.65;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
a, button, label, select, summary, [role="button"] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(34, 211, 238, 0.18);
}
img, svg { max-width: 100%; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4 { font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 3px;
  border-radius: 4px;
}

.shell { width: min(1200px, 100% - 2.5rem); margin-inline: auto; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.75rem 1.125rem;
  overflow: visible;
  clip: auto;
  border-radius: var(--r-sm);
  color: #fff;
  background: var(--blue-deep);
  font-size: var(--fs-sm);
  font-weight: 600;
}
.icon { width: 1.25em; height: 1.25em; flex: none; display: block; }

/* --- Etiquetas mono ------------------------------------------------------ */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  margin: 0 0 var(--s-3);
  font-family: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cyan);
}
.eyebrow::before {
  content: "";
  width: 1.75rem;
  height: 1px;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
}
.eyebrow.dark { color: var(--blue-deep); }
.eyebrow.dark::before { background: linear-gradient(90deg, var(--blue-deep), var(--blue-soft)); }

/* --- Botones ------------------------------------------------------------- */
.btn {
  position: relative;
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 0 1.375rem;
  border: 1px solid transparent;
  border-radius: var(--r-full);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: transform var(--t-fast), box-shadow var(--t-base), background var(--t-base), border-color var(--t-base), color var(--t-base);
}
.btn .icon { width: 1.05em; height: 1.05em; transition: transform var(--t-base); }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn:hover .icon-arrow { transform: translateX(3px); }

.btn-primary {
  color: #fff;
  background-image: linear-gradient(100deg, var(--blue-deep), var(--blue) 55%, #22a3ff);
  box-shadow: 0 14px 32px -14px rgba(10, 108, 255, 0.8);
}
.btn-primary:hover { box-shadow: 0 20px 40px -14px rgba(10, 108, 255, 0.85); }

.btn-ghost {
  color: var(--text);
  border-color: var(--line-dark);
  background: var(--veil);
}
.btn-ghost:hover { border-color: rgba(34, 211, 238, 0.45); background: var(--veil-2); }

.btn-wa { color: #04120d; background: #25d366; box-shadow: 0 14px 32px -16px rgba(37, 211, 102, 0.9); }
.btn-wa:hover { background: #2ee270; }

.btn-block { width: 100%; }

/* --- Encabezado de sección ---------------------------------------------- */
.section { padding-block: var(--s-block); }
.section-head { margin-bottom: var(--s-5); }
.section-head h2 { margin: 0; font-size: var(--fs-h2); line-height: 1.06; }
.section-head > p { max-width: 46ch; margin: var(--s-3) 0 0; color: var(--muted); font-size: var(--fs-sm); }
.section-head.light h2 { color: var(--text); }
.section-head.light > p { color: var(--text-dim); }

/* ==========================================================================
   Encabezado del sitio
   ========================================================================== */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  padding-inline: env(safe-area-inset-left) env(safe-area-inset-right);
  z-index: 60;
  border-bottom: 1px solid transparent;
  transition: background var(--t-base), border-color var(--t-base);
}
.site-header.is-stuck {
  background: #070c18;
  border-bottom-color: var(--line-dark);
  box-shadow: 0 12px 30px -18px rgba(0, 0, 0, 0.8);
}
.nav-bar {
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
}
.site-brand { display: flex; align-items: center; flex: none; }
.site-brand img { width: clamp(150px, 34vw, 200px); height: auto; display: block; }

.site-nav { display: none; }
.nav-actions { display: flex; align-items: center; gap: 0.5rem; }
.nav-phone { display: none; }

.nav-toggle {
  width: 44px;
  height: 44px;
  display: grid;
  place-content: center;
  border: 1px solid var(--line-dark);
  border-radius: var(--r-sm);
  color: var(--text);
  background: var(--veil);
  cursor: pointer;
  transition: background var(--t-fast), border-color var(--t-fast);
}
.nav-toggle:hover { background: var(--veil-2); }
.nav-toggle .icon { width: 20px; height: 20px; }
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }
.nav-toggle[aria-expanded="true"] .icon-menu { display: none; }

.mobile-nav {
  position: fixed;
  inset: var(--header-h) 0 auto;
  z-index: 55;
  padding: var(--s-3) 1.25rem var(--s-4);
  background: #060b16;
  border-bottom: 1px solid var(--line-dark);
  max-height: calc(100dvh - var(--header-h));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mobile-nav[hidden] { display: none; }
.mobile-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  padding-inline: 0.25rem;
  border-bottom: 1px solid var(--line-dark);
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: 600;
}
.mobile-nav a .icon { color: var(--text-faint); width: 1rem; height: 1rem; }
.mobile-nav .btn { margin-top: var(--s-3); }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
  position: relative;
  isolation: isolate;
  padding-block: calc(var(--header-h) + 2.5rem) var(--s-7);
  color: var(--text);
  background: var(--night-800);
  overflow: hidden;
}
.hero::before,
.hero::after { content: ""; position: absolute; z-index: -1; pointer-events: none; }
.hero::before {
  inset: 0;
  background-image:
    linear-gradient(rgba(120, 170, 255, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120, 170, 255, 0.07) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 60% 20%, #000 20%, transparent 78%);
  mask-image: radial-gradient(ellipse 80% 70% at 60% 20%, #000 20%, transparent 78%);
}
.hero::after {
  inset: -20% -30% auto;
  height: 70%;
  background:
    radial-gradient(closest-side circle at 72% 38%, rgba(10, 108, 255, 0.34), rgba(10, 108, 255, 0.12) 45%, transparent 72%),
    radial-gradient(closest-side circle at 28% 6%, rgba(34, 211, 238, 0.16), transparent 70%);
}

.hero-layout { display: grid; gap: var(--s-6); align-items: center; }
.hero h1 { margin: 0; font-size: var(--fs-h1); line-height: 1.03; letter-spacing: -0.035em; }
.hero h1 .accent {
  display: block;
  background: linear-gradient(94deg, #64e6ff, var(--blue-soft) 55%, #b09dff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero-lead { max-width: 52ch; margin: var(--s-4) 0 0; color: var(--text-dim); font-size: var(--fs-lg); line-height: 1.6; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: var(--s-5); }

.hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-3) var(--s-4);
  margin-top: var(--s-6);
  padding-top: var(--s-4);
  border-top: 1px solid var(--line-dark);
}
.hero-stats div { min-width: 0; }
.hero-stats dt {
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: clamp(1.375rem, 1.1rem + 1.1vw, 1.75rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: #fff;
}
.hero-stats dd { margin: 0.25rem 0 0; color: var(--text-faint); font-size: var(--fs-xs); line-height: 1.45; }

/* --- Panel de áreas ------------------------------------------------------ */
.hero-panel {
  border: 1px solid var(--line-dark);
  border-radius: var(--r-lg);
  background: linear-gradient(165deg, #16233f, #080e1c);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.panel-bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--line-dark);
  background: rgba(255, 255, 255, 0.03);
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-2xs);
  letter-spacing: 0.08em;
  color: var(--text-faint);
}
.panel-bar i { width: 8px; height: 8px; border-radius: 50%; background: var(--line-dark); }
.panel-bar i:first-child { background: rgba(255, 107, 107, 0.7); }
.panel-bar i:nth-child(2) { background: rgba(255, 199, 89, 0.7); }
.panel-bar i:nth-child(3) { background: rgba(52, 211, 153, 0.7); }
.panel-bar span { margin-left: auto; }

.panel-row {
  display: grid;
  grid-template-columns: 2.75rem 1fr auto;
  align-items: center;
  gap: 0.875rem;
  padding: 1.125rem 1rem;
  border-bottom: 1px solid var(--line-dark);
}
.panel-row-icon {
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-content: center;
  border: 1px solid var(--line-dark);
  border-radius: var(--r-md);
  color: var(--accent, var(--cyan));
  background: color-mix(in srgb, var(--accent, var(--cyan)) 12%, transparent);
}
.panel-row-icon .icon { width: 1.25rem; height: 1.25rem; }
.panel-row b { display: block; color: #fff; font-size: var(--fs-sm); letter-spacing: -0.01em; }
.panel-row small { display: block; margin-top: 0.125rem; color: var(--text-faint); font-size: var(--fs-2xs); line-height: 1.45; }
.panel-tag {
  padding: 0.3rem 0.6rem;
  border-radius: var(--r-full);
  color: var(--accent, var(--cyan));
  background: color-mix(in srgb, var(--accent, var(--cyan)) 14%, transparent);
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-2xs);
  letter-spacing: 0.05em;
}
.panel-row-1 { --accent: var(--blue-soft); }
.panel-row-2 { --accent: var(--cyan); }
.panel-row-3 { --accent: var(--violet); }

.eq { display: flex; align-items: flex-end; gap: 3px; height: 1.25rem; }
.eq i {
  width: 3px;
  border-radius: 2px;
  background: var(--violet);
  animation: eq-bounce 1.1s ease-in-out infinite;
}
.eq i:nth-child(1) { height: 45%; animation-delay: -0.9s; }
.eq i:nth-child(2) { height: 85%; animation-delay: -0.5s; }
.eq i:nth-child(3) { height: 60%; animation-delay: -0.2s; }
.eq i:nth-child(4) { height: 100%; animation-delay: -0.7s; }
@keyframes eq-bounce {
  0%, 100% { transform: scaleY(0.35); }
  50% { transform: scaleY(1); }
}

.panel-foot {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  color: var(--text-dim);
  font-size: var(--fs-xs);
}
.panel-foot .dot {
  width: 8px; height: 8px; border-radius: 50%; flex: none;
  background: var(--mint);
  box-shadow: 0 0 0 4px rgba(52, 211, 153, 0.16);
}

/* ==========================================================================
   Cinta de capacidades
   ========================================================================== */
.marquee {
  position: relative;
  z-index: 2;
  padding-block: 0.875rem;
  color: var(--text-dim);
  background: var(--night-900);
  border-block: 1px solid var(--line-dark);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track {
  display: flex;
  width: max-content;
  gap: 2.5rem;
  animation: marquee-slide 36s linear infinite;
  will-change: transform;
}
.marquee:hover .marquee-track,
.marquee:focus-within .marquee-track,
.marquee.is-offscreen .marquee-track { animation-play-state: paused; }
.marquee-track > span {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}
.marquee-track > span .icon { width: 0.875rem; height: 0.875rem; color: var(--cyan); }
@keyframes marquee-slide {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ==========================================================================
   Servicios
   ========================================================================== */
.services { background: var(--paper); }
.service-grid { display: grid; gap: 1rem; }
.service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--s-4);
  border: 1px solid var(--line-light);
  border-radius: var(--r-lg);
  background: var(--paper-2);
  overflow: hidden;
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}
.service-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), transparent 85%);
}
.service-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--accent) 40%, transparent);
  box-shadow: var(--shadow-lift);
}
.service-card-1 { --accent: var(--blue); }
.service-card-2 { --accent: var(--violet); }
.service-card-3 { --accent: #0891b2; }

.service-icon {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-content: center;
  margin-bottom: var(--s-3);
  border-radius: var(--r-md);
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.service-icon .icon { width: 1.5rem; height: 1.5rem; }
.service-card h3 { margin: 0 0 0.5rem; font-size: var(--fs-h3); }
.service-card > p { margin: 0; color: var(--muted); font-size: var(--fs-sm); }
.service-card ul {
  flex: 1;
  margin: var(--s-3) 0 var(--s-3);
  padding: var(--s-3) 0 0;
  border-top: 1px solid var(--line-light);
  list-style: none;
}
.service-card li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.5rem;
  color: #35455c;
  font-size: var(--fs-xs);
}
.service-card li .icon { width: 0.95rem; height: 0.95rem; margin-top: 0.2rem; color: var(--accent); }
.service-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 44px;
  color: var(--blue-deep);
  font-size: var(--fs-xs);
  font-weight: 700;
}
.service-link .icon { width: 0.95rem; height: 0.95rem; transition: transform var(--t-base); }
.service-link:hover .icon { transform: translateX(3px); }

/* ==========================================================================
   Productos
   ========================================================================== */
.products {
  position: relative;
  padding-block: var(--s-block);
  color: var(--text);
  background: var(--night-800);
  overflow: hidden;
}
.products::before {
  content: "";
  position: absolute;
  inset: auto -20% -40% 40%;
  height: 60%;
  background: radial-gradient(closest-side circle, rgba(10, 108, 255, 0.2), rgba(10, 108, 255, 0.06) 50%, transparent 78%);
  pointer-events: none;
}
.products > .shell { position: relative; }
.product-grid { display: grid; gap: 1rem; }
.product-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line-dark);
  border-radius: var(--r-lg);
  background: linear-gradient(170deg, rgba(22, 35, 63, 0.75), rgba(8, 14, 27, 0.9));
  overflow: hidden;
  transition: transform var(--t-base), border-color var(--t-base), box-shadow var(--t-base);
}
.product-card:hover {
  transform: translateY(-4px);
  border-color: rgba(34, 211, 238, 0.35);
  box-shadow: var(--shadow-card);
}
.product-art {
  position: relative;
  height: 8.5rem;
  display: grid;
  place-content: center;
  color: var(--accent, var(--blue-soft));
  background:
    radial-gradient(circle at 50% 115%, color-mix(in srgb, var(--accent, var(--blue-soft)) 26%, transparent), transparent 62%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent);
  border-bottom: 1px solid var(--line-dark);
}
.product-art::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(140, 180, 240, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140, 180, 240, 0.08) 1px, transparent 1px);
  background-size: 28px 28px;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000, transparent 72%);
  mask-image: radial-gradient(circle at 50% 50%, #000, transparent 72%);
}
.product-art .icon { position: relative; width: 3rem; height: 3rem; stroke-width: 1.25; }
.product-body { display: flex; flex-direction: column; flex: 1; padding: 1.125rem; }
.product-meta { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.625rem; }
.product-chip {
  padding: 0.25rem 0.55rem;
  border-radius: var(--r-full);
  color: var(--accent, var(--cyan));
  background: color-mix(in srgb, var(--accent, var(--cyan)) 14%, transparent);
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-2xs);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.stock { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--text-faint); font-size: var(--fs-2xs); }
.stock i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.stock.ok { color: var(--mint); }
.stock.low { color: #fbbf24; }
.stock.out { color: var(--text-faint); }
.product-card h3 { margin: 0; color: #fff; font-size: var(--fs-base); line-height: 1.35; }
.product-card > .product-body > p {
  flex: 1;
  margin: 0.5rem 0 var(--s-3);
  color: var(--text-faint);
  font-size: var(--fs-xs);
  line-height: 1.55;
}
.product-price {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  padding-top: var(--s-3);
  border-top: 1px solid var(--line-dark);
}
.product-price strong {
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-lg);
  font-weight: 600;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: #fff;
}
.product-price span { color: var(--text-faint); font-size: var(--fs-2xs); }
.product-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 44px;
  margin-top: 0.75rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--r-full);
  color: var(--text);
  background: var(--veil);
  font-size: var(--fs-xs);
  font-weight: 600;
  transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}
.product-cta .icon { width: 1rem; height: 1rem; }
.product-cta:hover { color: #04120d; background: #25d366; border-color: #25d366; }

.products-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-top: var(--s-5); }
.products-foot p { margin: 0; color: var(--text-faint); font-size: var(--fs-xs); }

/* ==========================================================================
   Proceso
   ========================================================================== */
.process { background: var(--paper); }
.process-layout { display: grid; gap: var(--s-5); }
.process-steps { counter-reset: step; display: grid; gap: 0; }
.process-step {
  position: relative;
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 1rem;
  padding-block: var(--s-4);
  border-top: 1px solid var(--line-light);
}
.process-step:last-child { border-bottom: 1px solid var(--line-light); }
.process-step::before {
  counter-increment: step;
  content: "0" counter(step);
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-content: center;
  border: 1px solid var(--line-light);
  border-radius: var(--r-md);
  color: var(--blue-deep);
  background: #fff;
  font-family: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: var(--fs-xs);
  font-weight: 600;
}
.process-step h3 { margin: 0.35rem 0 0.25rem; font-size: var(--fs-base); }
.process-step p { margin: 0; color: var(--muted); font-size: var(--fs-sm); }

/* ==========================================================================
   Contacto
   ========================================================================== */
.contact {
  position: relative;
  padding-block: var(--s-block);
  color: var(--text);
  background: linear-gradient(160deg, var(--night-700), var(--night-900));
  overflow: hidden;
}
.contact::before {
  content: "";
  position: absolute;
  inset: -30% 55% auto -20%;
  height: 80%;
  background: radial-gradient(closest-side circle, rgba(10, 108, 255, 0.26), rgba(10, 108, 255, 0.08) 48%, transparent 78%);
  pointer-events: none;
}
.contact-layout { position: relative; display: grid; gap: var(--s-5); align-items: start; }
.contact-copy h2 { margin: 0; color: var(--text); font-size: var(--fs-h2); line-height: 1.08; }
.contact-copy > p { max-width: 44ch; margin: var(--s-3) 0 var(--s-4); color: var(--text-dim); font-size: var(--fs-sm); }

.channels { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.channel {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  align-items: center;
  gap: 0.875rem;
  min-height: 56px;
  padding: 0.625rem 0.875rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--r-md);
  background: var(--veil);
  transition: border-color var(--t-fast), background var(--t-fast);
}
a.channel:hover { border-color: rgba(34, 211, 238, 0.4); background: var(--veil-2); }
.channel-icon {
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-content: center;
  border-radius: var(--r-sm);
  color: var(--cyan);
  background: rgba(34, 211, 238, 0.12);
}
.channel-icon .icon { width: 1.15rem; height: 1.15rem; }
.channel small { display: block; color: var(--text-faint); font-size: var(--fs-2xs); letter-spacing: 0.06em; text-transform: uppercase; }
.channel strong { display: block; margin-top: 0.1rem; color: var(--text); font-size: var(--fs-sm); font-weight: 600; overflow-wrap: anywhere; }

/* --- Formulario ---------------------------------------------------------- */
.contact-form {
  padding: var(--s-4);
  border: 1px solid var(--line-dark);
  border-radius: var(--r-lg);
  background: #0a1020;
  box-shadow: var(--shadow-card);
}
.contact-form h3 { margin: 0 0 var(--s-3); font-size: var(--fs-h3); color: #fff; }
.field { display: block; margin-bottom: var(--s-3); }
.field > span { display: block; margin-bottom: 0.4rem; color: var(--text-dim); font-size: var(--fs-xs); font-weight: 600; }
.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--line-dark);
  border-radius: var(--r-sm);
  outline: none;
  color: var(--text);
  background: rgba(4, 8, 18, 0.7);
  font-size: 1rem;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.field textarea { min-height: 7rem; resize: vertical; line-height: 1.6; }
.field input::placeholder,
.field textarea::placeholder { color: #61728c; }
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--cyan);
  box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.14);
}
.field option { color: #0a1426; background: #fff; }
.field-row { display: grid; gap: 0; }
.form-note { margin: var(--s-3) 0 0; color: var(--text-faint); font-size: var(--fs-2xs); line-height: 1.5; }

/* ==========================================================================
   Pie
   ========================================================================== */
.site-footer { color: var(--text-faint); background: var(--night-900); border-top: 1px solid var(--line-dark); padding-inline: env(safe-area-inset-left) env(safe-area-inset-right); }
.footer-top { display: grid; gap: var(--s-4); padding-block: var(--s-5); }
.footer-top img { width: 190px; height: auto; }
.footer-top p { margin: var(--s-2) 0 0; max-width: 38ch; font-size: var(--fs-xs); line-height: 1.6; }
.footer-nav { display: grid; gap: 0.5rem; }
.footer-nav b { color: var(--text-dim); font-size: var(--fs-2xs); letter-spacing: 0.12em; text-transform: uppercase; }
.footer-nav a { display: inline-flex; min-height: 44px; align-items: center; font-size: var(--fs-xs); transition: color var(--t-fast); }
.footer-nav a:hover { color: var(--cyan); }
.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-block: var(--s-3) calc(var(--s-3) + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line-dark);
  font-size: var(--fs-2xs);
}
.footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-bottom a:hover { color: var(--cyan); }

/* --- Flotante WhatsApp --------------------------------------------------- */
.wa-float {
  position: fixed;
  z-index: 50;
  right: calc(1rem + env(safe-area-inset-right));
  bottom: calc(1rem + env(safe-area-inset-bottom));
  width: 56px;
  height: 56px;
  display: grid;
  place-content: center;
  border-radius: 50%;
  color: #fff;
  background: #25d366;
  box-shadow: 0 16px 34px -12px rgba(37, 211, 102, 0.7);
  transition: transform var(--t-base), box-shadow var(--t-base);
}
.wa-float .icon { width: 28px; height: 28px; }
.wa-float:hover { transform: scale(1.06); box-shadow: 0 20px 40px -12px rgba(37, 211, 102, 0.85); }

/* --- Mensajes del formulario -------------------------------------------- */
.flash {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0 0 var(--s-3);
  padding: 0.75rem 0.875rem;
  border-radius: var(--r-sm);
  font-size: var(--fs-xs);
  line-height: 1.5;
}
.flash .icon { width: 1rem; height: 1rem; margin-top: 0.1rem; flex: none; }
.flash.success { color: #a7f3d8; border: 1px solid rgba(52, 211, 153, 0.28); background: rgba(16, 122, 88, 0.18); }
.flash.error { color: #fecdd3; border: 1px solid rgba(248, 113, 113, 0.28); background: rgba(159, 42, 42, 0.2); }

/* --- Revelado al hacer scroll ------------------------------------------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1); }
.reveal.is-visible { opacity: 1; transform: none; }

/* ==========================================================================
   Breakpoints (mobile-first)
   ========================================================================== */
@media (max-width: 479px) {
  .hero-actions .btn { width: 100%; }
}

@media (min-width: 640px) {
  .hero-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .field-row { grid-template-columns: 1fr 1fr; gap: 0 var(--s-3); }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-form { padding: var(--s-5); }
  .wa-float { right: 1.5rem; bottom: 1.5rem; }
}

@media (min-width: 768px) {
  :root { --header-h: 76px; }
  .footer-top { grid-template-columns: 1.4fr 1fr 1fr; align-items: start; }
  .process-layout { grid-template-columns: 0.85fr 1.15fr; gap: var(--s-6); }
  .section-head { display: grid; grid-template-columns: 1.3fr 0.7fr; align-items: end; gap: var(--s-5); }
  .section-head > p { margin-top: 0; }
}

@media (min-width: 1024px) {
  .nav-toggle { display: none; }
  .mobile-nav { display: none !important; }
  .site-nav {
    display: flex;
    align-items: center;
    gap: 0.35rem;
  }
  .site-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    height: 44px;
    padding-inline: 0.875rem;
    border-radius: var(--r-full);
    color: var(--text-dim);
    font-size: var(--fs-xs);
    font-weight: 600;
    transition: color var(--t-fast), background var(--t-fast);
  }
  .site-nav a:hover { color: #fff; background: var(--veil); }
  .nav-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    height: 44px;
    padding-inline: 0.875rem;
    border-radius: var(--r-full);
    color: var(--text-dim);
    font-size: var(--fs-xs);
    font-weight: 600;
    transition: color var(--t-fast);
  }
  .nav-phone:hover { color: var(--cyan); }
  .nav-phone .icon { width: 1rem; height: 1rem; }

  .hero { padding-block: calc(var(--header-h) + 3.5rem) var(--s-6); }
  .hero-layout { grid-template-columns: 1.05fr 0.95fr; gap: var(--s-7); }
  .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .contact-layout { grid-template-columns: 0.9fr 1.1fr; gap: var(--s-6); }
  .panel-row { padding: 1.375rem 1.25rem; }
  .service-card { padding: var(--s-5); }
}

@media (min-width: 1280px) {
  .hero-layout { gap: 5rem; }
  .product-art { height: 9.5rem; }
}

/* ==========================================================================
   Preferencias del usuario
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .marquee-track { animation: none; transform: none; }
  .reveal { opacity: 1; transform: none; }
}

@media print {
  .site-header, .mobile-nav, .wa-float, .marquee, .hero-panel { display: none !important; }
  body { background: #fff; color: #000; }
}


/* Administrative panel */
.admin-app { min-height: 100vh; display: grid; grid-template-columns: 242px 1fr; color: #142033; background: #eef2f7; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 27px 18px 20px; color: #a9b7ca; background: #07101f; border-right: 1px solid rgba(0,212,255,.1); }
.admin-brand { width: 190px; margin: 3px 8px 0; }
.admin-brand .brand-name { font-size: 20px; }
.admin-brand .brand-sub { font-size: 7px; letter-spacing: 5.3px; }
.admin-caption { margin: 24px 9px 18px; color: #43536b; font-size: 9px; font-weight:800; letter-spacing: 1.4px; text-transform: uppercase; }
.admin-sidebar nav { display: flex; flex-direction: column; gap: 4px; }
.admin-sidebar nav button { width: 100%; display: flex; align-items: center; gap: 12px; padding: 11px 12px; border: 1px solid transparent; border-radius: 8px; cursor: pointer; color: #8290a4; background: transparent; text-align: left; font-size: 11px; font-weight: 750; transition: .2s ease; }
.admin-sidebar nav button > span { width: 28px; height: 28px; display: grid; place-content: center; border-radius: 7px; color: #718198; background: rgba(255,255,255,.05); font-size: 9px; font-weight:800; }
.admin-sidebar nav button:hover { color: white; background: rgba(255,255,255,.04); }
.admin-sidebar nav button.active { color: white; border-color: rgba(0,212,255,.14); background: linear-gradient(100deg, rgba(0,102,255,.2), rgba(0,212,255,.06)); }
.admin-sidebar nav button.active > span { color: #fff; background: linear-gradient(135deg, var(--blue), #00a9ed); box-shadow: 0 8px 18px rgba(0,102,255,.25); }
.sidebar-bottom { margin-top: auto; padding: 18px 7px 0; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-bottom > a { display: block; margin: 0 5px 18px; color: #6fdfff; font-size: 10px; font-weight: 750; }
.admin-user { display: flex; align-items: center; gap: 10px; }
.admin-user > span { width: 34px; height: 34px; display: grid; place-content: center; border-radius: 50%; color: white; background: #163b6d; font-size: 9px; font-weight:800; }
.admin-user strong, .admin-user small { display: block; }
.admin-user strong { color: #d8e4f4; font-size: 10px; }
.admin-user small { margin-top: 3px; color: #52627a; font-size: 8px; }
.admin-content { min-width: 0; }
.admin-topbar { height: 72px; display: flex; align-items: center; justify-content: space-between; padding: 0 36px; border-bottom: 1px solid #dde4ee; background: rgba(255,255,255,.78); backdrop-filter: blur(14px); }
.admin-topbar p { margin: 0; color: #8390a2; font-size: 10px; font-weight: 750; }
.mobile-kicker { display: none; }
.topbar-actions { display: flex; align-items: center; gap: 18px; }
.topbar-actions > span { color: #778599; font-size: 9px; font-weight:800; letter-spacing: 1px; }
.topbar-actions button { width: 34px; height: 34px; border: 1px solid #dfe5ee; border-radius: 8px; color: #1587eb; background: white; font-size: 8px; }
.dashboard-view, .module-view { padding: 38px 36px 55px; }
.dashboard-heading, .module-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.dashboard-heading p, .module-heading p, .panel-card-head p { margin: 0 0 10px; color: #1682ed; font-size: 8px; font-weight:800; letter-spacing: 1.35px; }
.dashboard-heading h1, .module-heading h1 { margin: 0; color: #0d192b; font-size: 31px; letter-spacing: -1.4px; }
.dashboard-heading > div > span, .module-heading > div > span { display: block; margin-top: 8px; color: #7d8999; font-size: 11px; }
.admin-primary { min-height: 42px; padding: 0 17px; border: 0; border-radius: 8px; cursor: pointer; color: #fff; background: linear-gradient(115deg, #0066ff, #009de9); box-shadow: 0 10px 24px rgba(0,102,255,.18); font-size: 10px; font-weight:800; }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 30px; }
.stat-card { position: relative; min-height: 132px; padding: 21px; overflow: hidden; border: 1px solid #dfe6ef; border-radius: 11px; background: white; }
.stat-card::before { content: ""; position: absolute; width: 85px; height: 85px; right: -30px; top: -30px; border-radius: 50%; background: currentColor; opacity: .065; }
.stat-card p { margin: 0; color: #7b8798; font-size: 9px; font-weight: 750; }
.stat-card strong { display: block; margin-top: 17px; color: #101c2d; font-size: 25px; letter-spacing: -1px; }
.stat-card span { display: block; margin-top: 8px; color: currentColor; font-size: 8px; font-weight:800; }
.stat-card.blue { color: #0066ff; }.stat-card.cyan { color: #00aeca; }.stat-card.violet { color: #7a63dd; }.stat-card.amber { color: #d68b14; }
.dashboard-grid { display: grid; grid-template-columns: 1.5fr .68fr; gap: 16px; margin-top: 16px; }
.panel-card { border: 1px solid #dfe6ef; border-radius: 11px; background: white; }
.panel-card-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 21px 22px 18px; border-bottom: 1px solid #edf1f5; }
.panel-card-head h2 { margin: 0; color: #132033; font-size: 16px; letter-spacing: -.4px; }
.panel-card-head button { border: 0; cursor: pointer; color: #0878e7; background: transparent; font-size: 9px; font-weight: 800; }
.activity-list > div { display: grid; grid-template-columns: 36px 1fr auto 42px; align-items: center; gap: 12px; min-height: 67px; padding: 12px 22px; border-bottom: 1px solid #f0f3f7; }
.activity-list > div:last-child { border-bottom: 0; }
.activity-mark { width: 31px; height: 31px; display: grid; place-content: center; border-radius: 8px; font-size: 9px; font-weight:800; }
.activity-mark.sale { color: #0879e8; background: #eaf3ff; }.activity-mark.service { color: #00a2bc; background: #e7fafe; }.activity-mark.audio { color: #7560db; background: #f0edff; }.activity-mark.client { color: #bd7b0d; background: #fff6df; }
.activity-list strong { display: block; color: #26354a; font-size: 10px; }
.activity-list p { margin: 4px 0 0; color: #8894a5; font-size: 8px; }
.activity-list b { color: #40506a; font-size: 9px; }
.activity-list small { color: #a2acb9; font-size: 8px; text-align: right; }
.quick-card { padding-bottom: 8px; }
.quick-card > button { width: calc(100% - 28px); display: grid; grid-template-columns: 31px 1fr auto; align-items: center; gap: 11px; margin: 8px 14px; padding: 10px 9px; border: 0; border-radius: 8px; cursor: pointer; color: #8090a4; background: transparent; text-align: left; }
.quick-card > button:hover { background: #f4f8fd; }
.quick-card > button > span { width: 31px; height: 31px; display: grid; place-content: center; border-radius: 7px; color: #0879e8; background: #eaf3ff; font-size: 9px; font-weight:800; }
.quick-card strong, .quick-card small { display: block; }
.quick-card strong { color: #2e3c50; font-size: 9px; }.quick-card small { margin-top: 3px; color: #929dab; font-size: 8px; }
.upcoming-card { margin-top: 16px; }
.upcoming-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.upcoming-grid > div { min-height: 95px; padding: 19px 22px; border-right: 1px solid #edf1f5; }
.upcoming-grid > div:last-child { border-right: 0; }
.upcoming-grid span { color: #1682ed; font-size: 8px; font-weight:800; }
.upcoming-grid strong { display: block; margin-top: 10px; color: #28374c; font-size: 10px; }
.upcoming-grid p { margin: 5px 0 0; color: #8995a5; font-size: 8px; }

.table-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: 30px; padding: 14px 17px; border: 1px solid #dfe6ef; border-radius: 10px 10px 0 0; background: white; }
.table-toolbar label { width: min(340px, 100%); }
.table-toolbar label > span { display: block; margin-bottom: 6px; color: #8793a3; font-size: 8px; font-weight:800; text-transform: uppercase; }
.table-toolbar input { width: 100%; padding: 9px 11px; border: 1px solid #dfe5ed; border-radius: 7px; outline: none; color: #243248; background: #f9fbfd; font-size: 10px; }
.table-toolbar input:focus { border-color: #57a9ff; box-shadow: 0 0 0 3px rgba(0,102,255,.07); }
.table-toolbar > span { color: #8995a4; font-size: 9px; }
.admin-notice { margin: 12px 0 0; padding: 11px 14px; border: 1px solid #bfe9ed; border-radius: 7px; color: #18848f; background: #ebfbfc; font-size: 9px; }
.admin-table-wrap { overflow-x: auto; border: 1px solid #dfe6ef; border-top: 0; border-radius: 0 0 10px 10px; background: white; }
.admin-table { width: 100%; min-width: 830px; border-collapse: collapse; }
.admin-table th { height: 42px; padding: 0 14px; color: #929dac; background: #f8fafc; border-bottom: 1px solid #e8edf3; text-align: left; font-size: 7px; font-weight:800; letter-spacing: .7px; text-transform: uppercase; }
.admin-table td { height: 61px; padding: 0 14px; color: #69778a; border-bottom: 1px solid #edf1f5; font-size: 9px; white-space: nowrap; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-table td strong { color: #27364b; font-size: 10px; }
.admin-table td b { color: #34445b; font-size: 9px; }
.admin-table code { color: #157de6; background: #eef6ff; border-radius: 4px; padding: 4px 6px; font-family: inherit; font-size: 8px; font-weight:800; }
.admin-table td > button { border: 0; cursor: pointer; color: #8d99a8; background: transparent; }
.status-pill { display: inline-block; padding: 6px 8px; border-radius: 999px; font-size: 7px; font-weight:800; }
.status-pill.success { color: #118259; background: #e9f8f1; }.status-pill.warning { color: #a26e10; background: #fff5dc; }.status-pill.progress { color: #126bc1; background: #e8f3ff; }
.empty-state { padding: 55px; color: #7b8898; text-align: center; font-size: 10px; }

.admin-modal-backdrop { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(2,9,20,.68); backdrop-filter: blur(7px); }
.admin-modal { width: min(500px, 100%); padding: 27px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: white; box-shadow: 0 35px 90px rgba(0,0,0,.3); }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.modal-head p { margin: 0 0 6px; color: #1682ed; font-size: 8px; font-weight:800; letter-spacing: 1px; }
.modal-head h2 { margin: 0; font-size: 22px; letter-spacing: -.7px; }
.modal-head > button { border: 0; cursor: pointer; color: #7a8798; background: transparent; font-size: 24px; }
.admin-modal label { display: block; margin-bottom: 16px; color: #536176; font-size: 9px; font-weight: 800; }
.admin-modal input { width: 100%; margin-top: 7px; padding: 12px 13px; border: 1px solid #dce3ec; border-radius: 7px; outline: none; color: #243248; background: #f9fbfd; font-size: 10px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 24px; padding-top: 18px; border-top: 1px solid #edf1f5; }
.modal-actions > button:first-child { padding: 0 15px; border: 1px solid #dce3ec; border-radius: 7px; cursor: pointer; color: #647186; background: white; font-size: 9px; font-weight: 800; }

@media (max-width: 1040px) {
  .admin-app { grid-template-columns: 82px 1fr; }
  .admin-sidebar { padding-inline: 12px; }
  .admin-brand, .admin-caption, .admin-sidebar nav button:not(.active)::after, .admin-sidebar nav button { overflow: hidden; }
  .admin-brand { width: 42px; margin-inline: auto; }
  .admin-brand .brand-name { font-size: 0; }.admin-brand .brand-name::after { content: "P"; font-size: 26px; }.admin-brand .brand-sub { display: none; }
  .admin-caption { font-size: 0; height: 8px; }
  .admin-sidebar nav button { width: 49px; height: 49px; margin-inline: auto; padding: 9px; gap: 20px; white-space: nowrap; }
  .admin-sidebar nav button > span { flex: 0 0 31px; }
  .sidebar-bottom > a, .admin-user div { display: none; }
  .admin-user { justify-content: center; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .quick-card { padding-bottom: 14px; }
}

@media (max-width: 720px) {
  .admin-app { display: block; }
  .admin-sidebar { position: fixed; z-index: 30; inset: auto 0 0; width: 100%; height: 68px; display: block; padding: 8px 10px; border: 0; border-top: 1px solid rgba(0,212,255,.14); }
  .admin-sidebar > .brand, .admin-caption, .sidebar-bottom { display: none; }
  .admin-sidebar nav { display: grid; grid-template-columns: repeat(6,1fr); gap: 2px; }
  .admin-sidebar nav button { width: 100%; height: 50px; justify-content: center; margin: 0; padding: 6px; }
  .admin-sidebar nav button > span { width: 34px; flex-basis: 34px; }
  .admin-content { padding-bottom: 72px; }
  .admin-topbar { height: 62px; padding: 0 16px; }
  .mobile-kicker { display: block; color: #0877e6; font-size: 11px; font-weight:800; font-style: italic; }
  .admin-topbar p { margin-top: 3px; font-size: 8px; }
  .dashboard-view, .module-view { padding: 26px 15px 35px; }
  .dashboard-heading, .module-heading { align-items: flex-start; flex-direction: column; }
  .dashboard-heading h1, .module-heading h1 { font-size: 27px; }
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .stat-card { min-height: 120px; padding: 17px; }
  .stat-card strong { font-size: 21px; }
  .activity-list > div { grid-template-columns: 34px 1fr auto; padding-inline: 14px; }
  .activity-list small { display: none; }
  .upcoming-grid { grid-template-columns: 1fr; }
  .upcoming-grid > div { border-right: 0; border-bottom: 1px solid #edf1f5; }
  .upcoming-grid > div:last-child { border-bottom: 0; }
  .table-toolbar { align-items: stretch; flex-direction: column; }
  .table-toolbar label { width: 100%; }
}

/* cPanel application additions */
.website-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}.form-flash{margin:0 0 18px;padding:12px 14px;border-radius:7px;font-size:11px;line-height:1.5}.form-flash.success{color:#90f4df;border:1px solid rgba(73,215,166,.22);background:rgba(25,151,108,.16)}.form-flash.error{color:#ffc3c3;border:1px solid rgba(255,90,90,.2);background:rgba(188,45,45,.18)}.whatsapp-float{position:fixed;z-index:25;right:22px;bottom:22px;width:52px;height:52px;display:grid;place-content:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#00a884,#00c98f);box-shadow:0 15px 35px rgba(0,0,0,.28);font-size:11px;font-weight:800}.admin-nav-link{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid transparent;border-radius:8px;color:#8290a4;font-size:11px;font-weight:700;transition:.2s ease}.admin-nav-link>span{width:28px;height:28px;display:grid;place-content:center;flex:0 0 28px;border-radius:7px;color:#718198;background:rgba(255,255,255,.05);font-size:9px;font-weight:800}.admin-nav-link:hover{color:#fff;background:rgba(255,255,255,.04)}.admin-nav-link.active{color:#fff;border-color:rgba(0,212,255,.14);background:linear-gradient(100deg,rgba(0,102,255,.2),rgba(0,212,255,.06))}.admin-nav-link.active>span{color:#fff;background:linear-gradient(135deg,var(--blue),#00a9ed);box-shadow:0 8px 18px rgba(0,102,255,.25)}.logout-link{margin-top:15px!important;color:#65758d!important;font-size:8px!important}.online-dot{color:#00b88a!important;font-size:8px!important}.link-button{display:inline-flex;align-items:center;justify-content:center}.admin-flash{margin:18px 36px -18px;padding:12px 14px;border-radius:8px;font-size:10px}.admin-flash.success{color:#167a58;border:1px solid #bfe7d7;background:#eaf8f2}.admin-flash.error{color:#aa3737;border:1px solid #f2caca;background:#fff0f0}.panel-card-head>a{color:#0878e7;font-size:9px;font-weight:800}.quick-card>a{width:calc(100% - 28px);display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:11px;margin:8px 14px;padding:10px 9px;border-radius:8px;color:#8090a4;font-size:10px}.quick-card>a:hover{background:#f4f8fd}.quick-card>a>span{width:31px;height:31px;display:grid;place-content:center;border-radius:7px;color:#0879e8;background:#eaf3ff;font-size:9px;font-weight:800}.quick-card>a strong,.quick-card>a small{display:block}.quick-card>a strong{color:#2e3c50;font-size:9px}.quick-card>a small{margin-top:3px;color:#929dab;font-size:8px}.activity-empty{display:block!important;padding:42px 22px!important;color:#8894a5!important;text-align:center!important;font-size:10px!important}.settings-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px;margin-top:30px}.admin-form-card{padding:25px;border:1px solid #dfe6ef;border-radius:11px;background:#fff}.admin-form-card h2{margin:0 0 23px;color:#172438;font-size:18px;letter-spacing:-.5px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-form-card label{display:block;color:#5e6c80;font-size:9px;font-weight:800}.admin-form-card label sup{margin-left:3px;color:#e16060}.admin-form-card input,.admin-form-card select,.admin-form-card textarea{width:100%;margin-top:7px;padding:11px 12px;border:1px solid #dce3ec;border-radius:7px;outline:none;color:#243248;background:#f9fbfd;font-size:10px}.admin-form-card input:focus,.admin-form-card select:focus,.admin-form-card textarea:focus{border-color:#57a9ff;box-shadow:0 0 0 3px rgba(0,102,255,.07)}.admin-form-card textarea{resize:vertical;line-height:1.55}.admin-form-card .span-two{grid-column:1/-1}.admin-form-card>.admin-primary{margin-top:22px}.admin-form-card.compact{align-self:start}.entity-form{max-width:900px;margin-top:30px}.form-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid #edf1f5}.form-card-head p{margin:0 0 6px;color:#1682ed;font-size:8px;font-weight:800;letter-spacing:1px}.form-card-head h2{margin:0}.form-card-head>a{color:#8491a2;font-size:26px;line-height:1}.check-label{position:relative;display:flex!important;align-items:center;gap:10px;padding-top:18px}.check-label input{width:18px!important;height:18px;margin:0!important}.check-label span{color:#34445b;font-size:10px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:26px;padding-top:18px;border-top:1px solid #edf1f5}.form-actions>a{color:#718095;font-size:9px;font-weight:800}.row-actions{display:flex;align-items:center;gap:8px}.row-actions a,.row-actions button{border:0!important;padding:0!important;color:#1978d5!important;background:transparent!important;font-size:8px!important;font-weight:800!important;cursor:pointer}.row-actions form{display:inline}.row-actions button{color:#bd5656!important}.status-pill.neutral{color:#68758a;background:#eef2f6}.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;color:#dfeafa;background:radial-gradient(circle at 80% 20%,rgba(0,102,255,.25),transparent 34%),#07101f}.login-card{width:min(430px,100%);padding:36px;border:1px solid rgba(0,212,255,.16);border-radius:15px;background:#0a1426;box-shadow:0 35px 100px rgba(0,0,0,.35)}.admin-login-brand{width:230px}.login-copy{margin:45px 0 27px}.login-copy p{margin:0 0 9px;color:#3ecfff;font-size:8px;font-weight:800;letter-spacing:1.4px}.login-copy h1{margin:0;color:#fff;font-size:30px}.login-copy span{display:block;margin-top:9px;color:#71829a;font-size:10px;line-height:1.55}.login-form label{display:block;margin-bottom:16px;color:#aab8cb;font-size:10px;font-weight:700}.login-form input{width:100%;margin-top:7px;padding:13px;border:1px solid rgba(255,255,255,.12);border-radius:7px;outline:none;color:#fff;background:#060d1a}.login-form input:focus{border-color:#00bfea}.login-form .admin-primary{width:100%;margin-top:5px}.login-back{display:block;margin-top:22px;color:#65768f;font-size:9px}.admin-alert{margin:0 0 18px;padding:11px 13px;border-radius:7px;font-size:9px}.admin-alert.error{color:#ffc3c3;background:rgba(188,45,45,.18)}.admin-alert.success{color:#a8f4dc;background:rgba(25,151,108,.16)}
@media(max-width:1040px){.admin-nav-link{width:49px;height:49px;margin-inline:auto;overflow:hidden;padding:9px;gap:20px;white-space:nowrap}.admin-nav-link>span{flex-basis:31px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:720px){.admin-sidebar nav{overflow-x:auto}.admin-nav-link{width:100%;height:50px;justify-content:center;margin:0;padding:6px}.admin-nav-link>span{width:34px;flex-basis:34px}.admin-flash{margin:13px 15px -11px}.admin-form-grid{grid-template-columns:1fr}.admin-form-card .span-two{grid-column:auto}.settings-grid{grid-template-columns:1fr}.row-actions{gap:11px}.whatsapp-float{right:15px;bottom:84px}}
.logout-form{margin-top:14px}.logout-form button{padding:0;border:0;color:#65758d;background:transparent;font-size:8px;font-weight:800;cursor:pointer}
.topbar-logout button{padding:7px 9px;border:1px solid #dfe5ee;border-radius:7px;color:#65758d;background:#fff;font-size:8px;font-weight:800;cursor:pointer}@media(max-width:720px){.admin-sidebar nav{display:flex;grid-template-columns:none;flex-wrap:nowrap;overflow-x:auto}.admin-nav-link{flex:0 0 58px}.topbar-actions>span:first-child{display:none}}
.brand{transform:none;line-height:normal}.brand img{display:block;width:100%;height:auto}@media(max-width:1040px){.admin-brand{width:58px;margin-inline:auto}.admin-brand .brand-name,.admin-brand .brand-sub{display:none}}

/* Panel v1.2: navegación clara, menú secundario y usuarios */
.admin-app{grid-template-columns:272px 1fr}.admin-sidebar{padding:30px 20px 22px}.admin-brand{width:212px;margin-inline:9px}.admin-caption{margin:28px 10px 15px;color:#5f7088;font-size:10px}.admin-sidebar nav{gap:7px}.admin-nav-link{min-height:56px;gap:14px;padding:10px 13px;border-radius:11px;font-size:13px}.admin-nav-link>span{width:35px;height:35px;flex:0 0 35px;border-radius:9px;font-size:10px}.sidebar-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px;padding-top:15px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-tool{min-width:0;min-height:68px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;padding:9px 5px;border:1px solid rgba(255,255,255,.07);border-radius:11px;cursor:pointer;color:#9aa9bc;background:rgba(255,255,255,.035);font-size:10px;font-weight:800;text-align:center}.sidebar-tool>span{color:#59d9ff;font-size:10px;font-weight:800;letter-spacing:1px}.sidebar-tool:hover,.sidebar-tool.active,.sidebar-more[open]>summary{color:#fff;border-color:rgba(0,212,255,.24);background:rgba(0,102,255,.15)}.sidebar-more{position:relative;min-width:0}.sidebar-more>summary{width:100%;list-style:none}.sidebar-more>summary::-webkit-details-marker{display:none}.more-menu{position:absolute;z-index:25;top:77px;left:-122px;width:234px;display:flex;flex-direction:column;gap:5px;padding:9px;border:1px solid rgba(0,212,255,.14);border-radius:12px;background:#0b1729;box-shadow:0 20px 45px rgba(0,0,0,.32)}.more-menu .admin-nav-link{min-height:48px;padding:8px 10px;font-size:11px}.more-menu .admin-nav-link>span{width:30px;height:30px;flex-basis:30px}.dashboard-grid-simple{grid-template-columns:1fr}.users-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr);gap:16px;margin-top:30px}.user-create-card{align-self:start}.user-create-card .form-card-head{margin-bottom:17px}.user-create-card label{margin-top:16px}.form-help{margin:0 0 20px;color:#7c899a;font-size:10px;line-height:1.55}.users-card{overflow:hidden}.users-card-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #edf1f5}.users-card-head p{margin:0 0 7px;color:#1682ed;font-size:8px;font-weight:800;letter-spacing:1.2px}.users-card-head h2{margin:0;color:#172438;font-size:18px}.users-card-head>span{padding:7px 10px;border-radius:999px;color:#167a91;background:#e9f8fb;font-size:9px;font-weight:800}.user-list article{min-height:76px;display:grid;grid-template-columns:42px 1fr auto 126px;align-items:center;gap:14px;padding:13px 24px;border-bottom:1px solid #edf1f5}.user-list article:last-child{border-bottom:0}.user-avatar{width:40px;height:40px;display:grid;place-content:center;border-radius:11px;color:#fff;background:linear-gradient(135deg,#0066ff,#00aeea);font-size:10px;font-weight:800}.user-list strong,.user-list small{display:block}.user-list strong{color:#243248;font-size:12px}.user-list small{margin-top:4px;color:#8b97a8;font-size:9px}.user-list article>small{margin:0;text-align:right}.user-status{padding:6px 9px;border-radius:999px;color:#118259;background:#e9f8f1;font-size:8px;font-weight:800}.user-status.inactive{color:#68758a;background:#eef2f6}

@media(max-width:1040px) and (min-width:821px){.admin-app{grid-template-columns:226px 1fr}.admin-sidebar{padding-inline:14px}.admin-brand{width:185px;margin-inline:auto}.admin-caption{height:auto;font-size:9px}.admin-nav-link{width:100%;height:auto;margin:0;padding:9px 11px;gap:12px;overflow:visible;white-space:normal;font-size:12px}.admin-nav-link>span{flex-basis:33px}.sidebar-bottom>a{display:block}.admin-user{justify-content:flex-start}.admin-user div{display:block}.more-menu{left:-103px;width:198px}.users-layout{grid-template-columns:1fr}}

@media(max-width:820px){.admin-app{display:block}.admin-sidebar{position:fixed;z-index:30;inset:auto 0 0;width:100%;height:78px;display:grid;grid-template-columns:1fr 126px;gap:7px;padding:8px 10px;border:0;border-top:1px solid rgba(0,212,255,.14)}.admin-sidebar>.brand,.admin-caption,.sidebar-bottom{display:none}.admin-primary-nav{display:grid!important;grid-template-columns:repeat(4,1fr);gap:3px!important;overflow:visible!important}.admin-sidebar .admin-primary-nav .admin-nav-link{width:100%;min-height:60px;height:60px;justify-content:center;margin:0;padding:8px;overflow:hidden;font-size:0}.admin-sidebar .admin-primary-nav .admin-nav-link>span{width:38px;height:38px;flex:0 0 38px}.sidebar-tools{height:60px;gap:5px;margin:0;padding:0;border:0}.sidebar-tool{min-height:60px;padding:6px 3px;font-size:8px}.sidebar-more{position:static}.more-menu{position:fixed;z-index:35;left:12px;right:12px;bottom:87px;top:auto;width:auto;display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:10px}.more-menu .admin-nav-link{width:100%;min-height:48px;height:auto;justify-content:flex-start;margin:0;padding:8px 10px;font-size:10px}.admin-content{padding-bottom:86px}.users-layout{grid-template-columns:1fr}.user-list article{grid-template-columns:40px 1fr auto;padding-inline:16px}.user-list article>small{display:none}}

@media(max-width:520px){.admin-sidebar{grid-template-columns:1fr 105px}.admin-sidebar .admin-primary-nav .admin-nav-link>span{width:34px;height:34px;flex-basis:34px}.sidebar-tool{font-size:7px}.users-card-head{align-items:flex-start;flex-direction:column}}

/* Panel v1.3: legibilidad, accesibilidad y navegación resistente a caché */
[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;left:18px;top:14px;transform:translateY(-150%);padding:11px 15px;border-radius:8px;color:#07101f;background:#fff;font-size:14px;font-weight:800;box-shadow:0 8px 30px rgba(0,0,0,.25)}.skip-link:focus{transform:translateY(0)}
.admin-app{grid-template-columns:300px minmax(0,1fr)}.admin-sidebar{height:100vh;padding:28px 22px 22px;overflow-y:auto;overflow-x:visible}.admin-brand{width:242px;margin:4px 7px 0;overflow:visible}.admin-brand img{display:block;width:100%;height:auto}.admin-caption{height:auto;margin:29px 8px 16px;color:#7c8da5;font-size:11px;line-height:1.2;letter-spacing:1.5px}.admin-sidebar nav{gap:7px}.admin-nav-link{width:100%;min-height:62px;display:flex;align-items:center;gap:14px;margin:0;padding:10px 13px;border-radius:12px;color:#afbdd0;font-size:15px;line-height:1.25;font-weight:700;white-space:normal;overflow:visible}.admin-nav-link>b{font:inherit}.admin-nav-link>span{width:40px;height:40px;flex:0 0 40px;border-radius:10px;color:#95a6bd;background:rgba(255,255,255,.065);font-size:12px}.admin-nav-link:hover{color:#fff;background:rgba(255,255,255,.055)}.admin-nav-link.active{color:#fff;border-color:rgba(0,212,255,.25);background:linear-gradient(100deg,rgba(0,102,255,.28),rgba(0,212,255,.09))}.admin-nav-link.active>span{color:#fff}
.sidebar-tools{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-tool{width:100%;min-width:0;min-height:78px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;margin:0;padding:10px 6px;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#b5c3d5;background:rgba(255,255,255,.045);font-size:12.5px;line-height:1.15;font-weight:800;text-align:center;text-decoration:none}.sidebar-tool>b{font:inherit}.sidebar-tool>span{color:#62dcff;font-size:12px;font-weight:800;letter-spacing:1px}.sidebar-tool:hover,.sidebar-tool.active,.sidebar-tool[aria-expanded="true"]{color:#fff;border-color:rgba(0,212,255,.3);background:rgba(0,102,255,.2)}.admin-more-menu{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:9px;border:1px solid rgba(0,212,255,.16);border-radius:12px;background:#0b1729;box-shadow:0 20px 45px rgba(0,0,0,.28)}.admin-more-menu .admin-nav-link{min-height:54px;padding:8px 10px;font-size:14px}.admin-more-menu .admin-nav-link>span{width:34px;height:34px;flex-basis:34px;font-size:11px}
.sidebar-bottom{margin-top:auto;padding:20px 7px 0}.sidebar-bottom>a{display:block;margin:0 3px 19px;color:#73e2ff;font-size:12.5px;line-height:1.4;font-weight:800}.admin-user{gap:12px}.admin-user>span{width:42px;height:42px;font-size:11px}.admin-user strong{font-size:13px}.admin-user small{margin-top:4px;color:#7d8da3;font-size:10.5px}.logout-form{margin-top:18px}.logout-form button{padding:8px 3px;color:#93a4ba;font-size:11.5px;line-height:1.2}.logout-form button:hover{color:#fff}.admin-content:focus{outline:none}
.admin-nav-link:focus-visible,.sidebar-tool:focus-visible,.logout-form button:focus-visible,.topbar-logout button:focus-visible,.admin-primary:focus-visible,.row-actions a:focus-visible,.row-actions button:focus-visible{outline:3px solid #63ddff;outline-offset:2px}.admin-form-card label{font-size:11.5px}.admin-form-card input,.admin-form-card select,.admin-form-card textarea{font-size:13px}.login-form label{font-size:12px}.login-form input{font-size:14px}.row-actions a,.row-actions button{font-size:10.5px!important}.table-toolbar input{font-size:12.5px}.admin-table td{font-size:11px}.admin-table td strong{font-size:12px}

@media(max-width:1040px) and (min-width:821px){.admin-app{grid-template-columns:250px minmax(0,1fr)}.admin-sidebar{padding-inline:16px}.admin-brand{width:210px;margin-inline:auto}.admin-caption{height:auto;font-size:10px}.admin-nav-link{width:100%;height:auto;min-height:58px;margin:0;padding:9px 11px;gap:12px;overflow:visible;white-space:normal;font-size:14px}.admin-nav-link>span{width:36px;height:36px;flex-basis:36px}.sidebar-bottom>a{display:block}.admin-user{justify-content:flex-start}.admin-user div{display:block}.users-layout{grid-template-columns:1fr}}

@media(max-width:820px){.admin-app{display:block}.admin-sidebar{position:fixed;z-index:30;inset:auto 0 0;width:100%;height:82px;display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:7px;padding:8px 10px;overflow:visible;border:0;border-top:1px solid rgba(0,212,255,.18)}.admin-sidebar>.brand,.admin-caption,.sidebar-bottom{display:none}.admin-primary-nav{display:grid!important;grid-template-columns:repeat(4,1fr);gap:3px!important;overflow:visible!important}.admin-sidebar .admin-primary-nav .admin-nav-link{width:100%;min-height:64px;height:64px;justify-content:center;margin:0;padding:8px;overflow:hidden;font-size:0}.admin-sidebar .admin-primary-nav .admin-nav-link>b{display:none}.admin-sidebar .admin-primary-nav .admin-nav-link>span{width:40px;height:40px;flex:0 0 40px}.sidebar-tools{height:64px;gap:5px;margin:0;padding:0;border:0}.sidebar-tool{min-height:64px;padding:6px 3px;font-size:9px}.admin-more-menu{position:fixed;z-index:35;left:12px;right:12px;bottom:92px;display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0;padding:10px}.admin-more-menu .admin-nav-link{width:100%;min-height:54px;height:auto;justify-content:flex-start;margin:0;padding:8px 10px;font-size:12px}.admin-content{padding-bottom:92px}.users-layout{grid-template-columns:1fr}.user-list article{grid-template-columns:40px 1fr auto;padding-inline:16px}.user-list article>small{display:none}}

@media(max-width:520px){.admin-sidebar{grid-template-columns:minmax(0,1fr) 112px}.admin-sidebar .admin-primary-nav .admin-nav-link>span{width:36px;height:36px;flex-basis:36px}.sidebar-tool{font-size:8px}.users-card-head{align-items:flex-start;flex-direction:column}}

/* Panel v1.4: escala equilibrada y contenido uniforme */
.admin-app{grid-template-columns:282px minmax(0,1fr)}
.admin-sidebar{padding:26px 20px 20px;overflow-x:hidden}
.admin-brand{width:226px;margin:4px 8px 0}
.admin-caption{margin:26px 8px 15px;font-size:10.5px}
.admin-nav-link{min-height:58px;gap:13px;padding:9px 12px;font-size:13.5px}
.admin-nav-link>span{width:37px;height:37px;flex:0 0 37px;font-size:11px}
.sidebar-tools{gap:8px;margin-top:14px;padding-top:14px}
.sidebar-tool{min-height:72px;gap:7px;padding:9px 5px;font-size:11.5px}
.sidebar-tool>span{font-size:11px}
.admin-more-menu .admin-nav-link{min-height:51px;font-size:13px}
.admin-more-menu .admin-nav-link>span{width:32px;height:32px;flex-basis:32px;font-size:10px}
.sidebar-bottom{padding-top:18px}.sidebar-bottom>a{margin-bottom:17px;font-size:11.5px}
.admin-user>span{width:39px;height:39px;font-size:10px}.admin-user strong{font-size:12px}.admin-user small{font-size:9.5px}.logout-form{margin-top:14px}.logout-form button{font-size:10.5px}
.admin-topbar p{font-size:11.5px}.topbar-actions>span{font-size:10.5px}.topbar-logout button{font-size:9.5px}
.dashboard-view,.module-view{padding:35px 34px 52px}
.dashboard-heading p,.module-heading p,.panel-card-head p{font-size:9.5px}
.dashboard-heading h1,.module-heading h1{font-size:30px}
.dashboard-heading>div>span,.module-heading>div>span{font-size:12px}
.admin-primary{font-size:11.5px}
.stat-card p{font-size:10.5px}.stat-card strong{font-size:26px}.stat-card span{font-size:9.5px}
.panel-card-head h2{font-size:17px}.panel-card-head>a{font-size:10.5px}
.activity-list strong{font-size:11.5px}.activity-list p{font-size:9.5px}.activity-list b{font-size:10.5px}.activity-list small{font-size:9px}.activity-empty{font-size:11px!important}
.table-toolbar label>span{font-size:9.5px}.table-toolbar>span{font-size:10.5px}.table-toolbar input{font-size:12.5px}
.admin-table th{font-size:9px}.admin-table td{font-size:11.5px}.admin-table td strong{font-size:12px}.admin-table td b{font-size:11px}.admin-table code{font-size:9.5px}.status-pill{font-size:9px}
.admin-notice,.admin-flash,.empty-state{font-size:11px}
.form-help{font-size:11.5px}.users-card-head p{font-size:9.5px}.users-card-head>span{font-size:10px}.user-list small{font-size:10px}

@media(max-width:1040px) and (min-width:821px){.admin-app{grid-template-columns:236px minmax(0,1fr)}.admin-sidebar{padding-inline:15px}.admin-brand{width:198px}.admin-nav-link{min-height:56px;font-size:13px}.admin-nav-link>span{width:35px;height:35px;flex-basis:35px}.sidebar-tool{font-size:10.5px}.dashboard-view,.module-view{padding-inline:26px}}
@media(max-width:820px){.admin-sidebar{overflow-x:visible}.sidebar-tool{font-size:9px}.dashboard-view,.module-view{padding-inline:16px}.dashboard-heading h1,.module-heading h1{font-size:27px}.admin-table th{font-size:8.5px}}

/* Panel v2.0: cotizaciones por área, documentos y operaciones conectadas. */
.status-pill.danger{color:#c23d49;background:#fff0f1}.admin-secondary{min-height:40px;padding:0 15px;border:1px solid #cfdae7;border-radius:9px;color:#1763c8;background:#fff;font-size:11px;font-weight:800;cursor:pointer}.quote-conditional{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px;border:1px solid #dbe5f0;border-radius:12px;background:#f8fbff}.quote-conditional[hidden]{display:none}.quote-items{margin-top:22px;padding-top:22px;border-top:1px solid #dfe7f0}.quote-items-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.quote-items-head p{margin:0 0 5px;color:#087cf0;font-size:9px;font-weight:800;letter-spacing:1.4px}.quote-items-head h3{margin:0;font-size:18px}.quote-item-list{display:grid;gap:10px}.quote-item-row{display:grid;grid-template-columns:120px minmax(165px,.8fr) minmax(210px,1.35fr) 82px 118px 104px 88px 34px;gap:9px;align-items:end;padding:13px;border:1px solid #dce5ef;border-radius:11px;background:#fbfcfe}.quote-item-row label{font-size:9px}.quote-item-row input,.quote-item-row select{min-height:39px;padding:8px 9px;font-size:11px}.quote-item-row output{display:grid;place-items:center;min-height:39px;border-radius:8px;color:#0a60cc;background:#edf5ff;font-size:11px;font-weight:800}.item-remove{width:34px;height:39px;border:0;border-radius:8px;color:#c54755;background:#fff0f1;font-size:19px;cursor:pointer}.quote-summary{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(150px,.8fr) minmax(180px,.9fr);gap:12px;align-items:end;margin:20px 0 0 auto;padding:17px;border-radius:12px;background:#f1f6fc}.quote-summary>div{display:flex;min-height:61px;flex-direction:column;justify-content:center;padding:10px 14px;border:1px solid #dce6f1;border-radius:9px;background:#fff}.quote-summary small{color:#75869c;font-size:9px;font-weight:800;text-transform:uppercase}.quote-summary strong{margin-top:5px;font-size:17px}.quote-summary .quote-grand-total{color:#fff;border-color:transparent;background:linear-gradient(110deg,#0066ff,#00aeea)}.quote-summary .quote-grand-total small{color:#dff8ff}.row-actions strong{white-space:nowrap;color:#087cf0;font-size:10px}.admin-table .status-pill{white-space:nowrap}
@media(max-width:1380px){.quote-item-row{grid-template-columns:110px minmax(150px,.8fr) minmax(180px,1.2fr) 72px 104px 92px 80px 34px}}
@media(max-width:1180px){.quote-item-row{grid-template-columns:repeat(4,minmax(0,1fr))}.quote-item-row .item-description{grid-column:span 2}.quote-item-row output{align-self:end}.quote-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.quote-conditional{grid-template-columns:1fr}.quote-conditional .span-two{grid-column:auto}.quote-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-item-row .item-description{grid-column:1/-1}.quote-items-head{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.quote-item-row,.quote-summary{grid-template-columns:1fr}.quote-item-row .item-description{grid-column:auto}.quote-item-row output{min-height:44px}.item-remove{width:100%}}
.quote-item-row .field-label{display:inline-block}
.audio-quote-mode .quote-item-row{grid-template-columns:minmax(260px,1.6fr) 84px 118px 104px 88px 34px}
.audio-quote-mode .quote-item-row [data-quote-field="type"],.audio-quote-mode .quote-item-row [data-quote-field="product"]{display:none}
.audio-quote-mode .quote-item-row .item-description input{font-size:12px}
.audio-quote-mode .quote-item-row .optional-marker{display:none}
.audio-quote-mode .quote-item-row output{min-width:88px}
@media(max-width:1180px){.audio-quote-mode .quote-item-row{grid-template-columns:repeat(4,minmax(0,1fr))}.audio-quote-mode .quote-item-row .item-description{grid-column:1/-1}.audio-quote-mode .quote-item-row output,.audio-quote-mode .quote-item-row .item-remove{align-self:end}}
@media(max-width:820px){.audio-quote-mode .quote-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.audio-quote-mode .quote-item-row .item-description{grid-column:1/-1}}
@media(max-width:520px){.audio-quote-mode .quote-item-row{grid-template-columns:1fr}.audio-quote-mode .quote-item-row .item-description{grid-column:auto}}
.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.history-grid>article{padding:17px;border:1px solid #e1e8f0;border-radius:10px;background:#fafcff}.history-grid h3{display:flex;justify-content:space-between;margin:0 0 13px;font-size:13px}.history-grid h3 span{color:#1682ed}.history-grid article>div{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding:9px 0;border-top:1px solid #e6ebf1}.history-grid article>div small{grid-column:1/-1;color:#8795a8;font-size:9px}.history-grid article>p{color:#8795a8;font-size:10px}.version-list{display:grid;gap:8px}.version-list article{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:14px;border:1px solid #e1e8f0;border-radius:9px}.version-list span,.version-list small{color:#7d8ba0;font-size:10px}@media(max-width:720px){.history-grid{grid-template-columns:1fr}.version-list article{grid-template-columns:1fr}.version-list small{margin-top:3px}}

/* Panel v2.1: navegación simplificada, órdenes unificadas y permisos granulares. */
.sidebar-tools{grid-template-columns:1fr}.heading-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}.required-help{margin:0 0 18px;color:#718097;font-size:10.5px}.required-help sup,.admin-form-card label>sup{margin-left:3px;color:#d8505c}.admin-form-card label>small,.optional-marker{margin-left:4px;color:#8996a8;font-size:9.5px;font-weight:600}.status-guide{display:flex;flex-wrap:wrap;gap:8px 14px;margin:-10px 0 20px;padding:13px 15px;border:1px solid #dbe5f0;border-radius:10px;color:#64748a;background:#fff;font-size:10px}.status-guide>strong{color:#14243b}.status-guide span b{color:#1767cc}.order-toolbar{grid-template-columns:minmax(240px,1fr) minmax(190px,.45fr) auto}.order-toolbar label{margin:0}.order-toolbar select{width:100%;min-height:42px;margin-top:7px;padding:0 12px;border:1px solid #dce4ee;border-radius:8px;color:#263850;background:#fff}.permission-head{margin:24px 0 12px}.permission-head h3{margin:0;font-size:17px}.permission-head p{margin:7px 0 0;color:#75849a;font-size:10.5px}.permission-table-wrap{overflow-x:auto;border:1px solid #dce5ef;border-radius:11px}.permission-table{width:100%;border-collapse:collapse;background:#fff}.permission-table th,.permission-table td{padding:11px 13px;border-bottom:1px solid #e5ebf2;text-align:center;font-size:10.5px}.permission-table th:first-child{text-align:left}.permission-table tbody th{color:#24364d}.permission-table input{width:18px;height:18px;accent-color:#087cf0}.user-permission-form{max-width:none}.user-list article{grid-template-columns:42px minmax(160px,1fr) auto minmax(150px,.7fr) auto}.user-list article>.link-button{min-height:36px;padding-inline:13px}.users-view .users-card{max-width:none}
@media(max-width:1180px){.module-heading{align-items:flex-start}.heading-actions{justify-content:flex-start}.order-toolbar{grid-template-columns:1fr 210px}.order-toolbar>span{grid-column:1/-1}.user-list article{grid-template-columns:40px 1fr auto auto}.user-list article>small{display:none}}
@media(max-width:820px){.admin-sidebar{grid-template-columns:minmax(0,1fr) 62px}.admin-primary-nav{grid-template-columns:repeat(6,minmax(46px,1fr))!important}.sidebar-tools{grid-template-columns:1fr}.sidebar-tool{font-size:0}.sidebar-tool>b{display:none}.sidebar-tool>span{font-size:12px}.order-toolbar{grid-template-columns:1fr}.order-toolbar>span{grid-column:auto}.heading-actions{width:100%}.heading-actions .link-button{flex:1 1 150px}.status-guide{margin-top:0}.user-list article{grid-template-columns:40px 1fr auto}.user-list article>.link-button{grid-column:2/-1}.permission-table{min-width:650px}}
@media(max-width:520px){.admin-primary-nav{grid-template-columns:repeat(6,minmax(40px,1fr))!important}.admin-sidebar{grid-template-columns:minmax(0,1fr) 54px}.admin-sidebar .admin-primary-nav .admin-nav-link>span{width:32px;height:32px;flex-basis:32px}.status-guide{display:grid}.heading-actions .link-button{flex-basis:100%}}

/* Panel v2.2: nomenclatura clara, configuración central y trazabilidad segura. */
.settings-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0 0}.settings-links>a,.settings-links>div{display:flex;min-height:88px;flex-direction:column;justify-content:center;padding:16px;border:1px solid #dfe7f0;border-radius:10px;background:#fff}.settings-links>a{transition:.2s ease}.settings-links>a:hover{border-color:#9ec8f5;background:#f8fbff}.settings-links strong{color:#1d2d43;font-size:11px}.settings-links span{margin-top:6px;color:#78879a;font-size:9.5px;line-height:1.5}.settings-grid-wide{grid-template-columns:minmax(0,1.6fr) minmax(260px,.4fr)}.settings-section+.settings-section{margin-top:28px;padding-top:25px;border-top:1px solid #e5ebf2}.settings-section h2{margin-bottom:15px}.settings-section .form-help{margin:0 0 15px}.finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}.finance-summary article{padding:18px;border:1px solid #dfe7f0;border-radius:10px;background:#fff}.finance-summary small{display:block;color:#7b899c;font-size:9px;font-weight:800;text-transform:uppercase}.finance-summary strong{display:block;margin-top:7px;color:#17283f;font-size:20px}.status-guide-detailed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.status-guide-detailed>strong{grid-column:1/-1}.row-actions{flex-wrap:wrap}.danger-link{border:0;color:#bd5656;background:transparent;font-size:10px;font-weight:800;cursor:pointer}.user-list article{grid-template-columns:42px minmax(160px,1fr) auto minmax(150px,.7fr) auto auto}.user-list article>form{margin:0}.user-list article>form button{white-space:nowrap}.admin-notice{margin-bottom:16px}
@media(max-width:1100px){.settings-links{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid-wide{grid-template-columns:1fr}.user-list article{grid-template-columns:40px 1fr auto auto}.user-list article>small{display:none}.user-list article>form{grid-column:auto}}
@media(max-width:720px){.settings-links,.finance-summary,.status-guide-detailed{grid-template-columns:1fr}.status-guide-detailed>strong{grid-column:auto}.user-list article{grid-template-columns:40px 1fr auto}.user-list article>a,.user-list article>form{grid-column:2/-1}.user-list article>form button{text-align:left}}

/* Panel v2.3: tipografía consistente, navegación operativa y fichas completas. */
.admin-app,.login-body,.admin-form-card,.admin-table,.admin-app button,.admin-app input,.admin-app select,.admin-app textarea,.login-body button,.login-body input,.login-body select,.login-body textarea{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-synthesis:none}
.admin-content{font-size:14px}.module-heading p,.dashboard-heading p,.panel-card-head p,.form-card-head p{font-size:11px;letter-spacing:.14em}.module-heading span,.dashboard-heading span{font-size:14px;line-height:1.55}.module-heading h1,.dashboard-heading h1{font-weight:800;letter-spacing:-.035em}.admin-form-card label,.admin-modal label{font-size:13px;line-height:1.35}.admin-form-card input,.admin-form-card select,.admin-form-card textarea{font-size:14px;line-height:1.45}.required-help{font-size:12px}.admin-form-card label>small,.optional-marker{font-size:11px}.admin-table th{font-size:11px;letter-spacing:.055em}.admin-table td{font-size:13px}.admin-table td strong{font-size:13px}.status-pill{font-size:11px}.table-toolbar label>span{font-size:10px}.table-toolbar input,.table-toolbar select{font-size:13px}.table-toolbar>span,.admin-notice{font-size:12px;line-height:1.55}.row-actions a,.row-actions button{font-size:12px}.admin-secondary,.admin-primary,.link-button{font-size:13px}.settings-links strong{font-size:13px}.settings-links span{font-size:12px}.sidebar-tool{font-size:12px}.admin-nav-link{font-size:13px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.global-search{display:flex;align-items:center;gap:7px;width:min(440px,40vw)}.global-search input{width:100%;min-height:38px;padding:0 13px;border:1px solid #dbe4ef;border-radius:9px;color:#26364d;background:#fff;outline:none;font-size:12px}.global-search input:focus{border-color:#80b8f7;box-shadow:0 0 0 3px rgba(0,102,255,.08)}.global-search button{min-height:38px;padding:0 13px;border:0;border-radius:9px;color:#fff;background:#1179e8;font-size:11px;font-weight:800;cursor:pointer}
.order-create-actions{display:grid!important;grid-template-columns:repeat(3,minmax(190px,1fr));width:min(820px,100%);gap:10px}.order-create-button{display:flex;min-height:54px;align-items:center;justify-content:center;padding:0 18px;border:1px solid #bdd7f3;border-radius:12px;color:#0c62c9;background:#f7fbff;font-size:14px;font-weight:800;text-align:center;box-shadow:0 3px 10px rgba(26,76,135,.035);transition:.18s ease}.order-create-button:hover{border-color:#6eaef2;background:#eef7ff;transform:translateY(-1px)}.table-open-link{display:inline-flex;min-height:34px;align-items:center;padding:0 11px;border:1px solid #cfe0f2;border-radius:8px;color:#0a67cf;font-weight:800;background:#f7fbff}.order-list-table tbody tr:hover{background:#fbfdff}
.attention-panel{margin:18px 0;padding:20px;border:1px solid #dfe7f1;border-radius:14px;background:#fff}.attention-clear{padding:15px;border-radius:10px;color:#52705f;background:#f1faf5}.attention-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.attention-grid a{display:flex;min-height:86px;flex-direction:column;justify-content:center;padding:14px;border:1px solid #e1e8f0;border-radius:10px;background:#fafcff}.attention-grid strong{font-size:23px;color:#0d6ed7}.attention-grid span{margin-top:4px;color:#607086;font-size:12px;line-height:1.35}
.order-hero-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:20px 0;background:#e1e8f0;border:1px solid #e1e8f0;border-radius:13px;overflow:hidden}.order-hero-card>div{display:flex;min-height:105px;flex-direction:column;justify-content:center;padding:18px;background:#fff}.order-hero-card small{color:#8190a4;font-size:10px;font-weight:800;letter-spacing:.08em}.order-hero-card strong{margin-top:7px;color:#1d2d43;font-size:15px}.order-hero-card span:not(.status-pill){margin-top:6px;color:#718198;font-size:12px}.order-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.order-detail-grid .panel-card{min-width:0;padding:20px}.order-data-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:#e4eaf2;border:1px solid #e4eaf2;border-radius:10px;overflow:hidden}.order-data-list>div{padding:14px;background:#fff}.order-data-list dt{color:#7b899b;font-size:10px;font-weight:800;text-transform:uppercase}.order-data-list dd{margin:6px 0 0;color:#23334a;font-size:13px;line-height:1.45}.order-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.order-action-grid>a,.order-action-grid form button{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;padding:8px 10px;border:1px solid #d6e2ef;border-radius:9px;color:#0b65ca;background:#f8fbff;font-size:12px;font-weight:800;text-align:center;cursor:pointer}.order-action-grid form{margin:0}.order-action-grid .danger-link{color:#b84b56;background:#fff8f8;border-color:#f0d4d7}.compact-record-list{display:grid;gap:8px}.compact-record-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e2e8ef;border-radius:9px}.compact-record-list strong{display:block;font-size:12px}.compact-record-list span{display:block;margin-top:4px;color:#7c8a9d;font-size:11px}.compact-record-list b{font-size:13px}.empty-inline{padding:18px;color:#7b899c;background:#fafcff;border-radius:9px;font-size:12px}.timeline-list{display:grid}.timeline-list>div{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding:0 0 17px}.timeline-list>div>span{width:10px;height:10px;margin-top:4px;border-radius:50%;background:#1682ed;box-shadow:0 0 0 4px #e9f4ff}.timeline-list>div:after{content:"";position:absolute;left:4px;top:16px;bottom:0;width:2px;background:#e0e8f1}.timeline-list>div:last-child:after{display:none}.timeline-list p{margin:4px 0;color:#6e7d91;font-size:12px}.timeline-list small{color:#8a97a7;font-size:10px}.attachment-form{display:grid;grid-template-columns:160px 1fr auto;gap:8px;margin-bottom:14px}.attachment-form select,.attachment-form input,.attachment-form button{min-height:39px;border:1px solid #dbe4ee;border-radius:8px;background:#fff;padding:0 10px;font-size:11px}.attachment-form button{color:#fff;background:#0e75df;border-color:#0e75df;font-weight:800;cursor:pointer}.attachment-list{display:grid;gap:7px}.attachment-list>div{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e2e8f0;border-radius:9px}.attachment-list a{min-width:0;flex:1}.attachment-list strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.attachment-list span{display:block;margin-top:3px;color:#8491a2;font-size:10px}.attachment-list button{border:0;color:#b34d56;background:transparent;font-size:11px;font-weight:800;cursor:pointer}
.search-page-form{display:flex;gap:9px;margin:20px 0}.search-page-form input{min-height:50px;flex:1;padding:0 16px;border:1px solid #d8e2ed;border-radius:11px;font-size:14px;outline:none}.search-results{display:grid;gap:8px}.search-results>a{display:grid;grid-template-columns:145px 1fr auto;align-items:center;gap:16px;padding:15px 17px;border:1px solid #e0e7ef;border-radius:11px;background:#fff}.search-results>a>span{color:#0876e6;font-size:11px;font-weight:800}.search-results strong{font-size:14px}.search-results p{margin:4px 0 0;color:#758399;font-size:12px}.search-results b{color:#0d68cf;font-size:12px}.trash-view .admin-table-wrap{margin-top:18px}
.draft-note{display:block;margin-top:6px;color:#6b7c91;font-size:12px}.quote-mixed-target>small{display:block!important;margin:7px 0 0!important;color:#728198!important;font-size:11px!important}.quote-items-head>div>span{display:block;margin-top:5px;color:#7d8a9b;font-size:11px}.quote-form-actions{gap:9px;flex-wrap:wrap}.version-list-detailed article{grid-template-columns:1fr auto;align-items:center}.version-list-detailed article p{margin:6px 0 0;color:#67778c;font-size:11px}.version-list-detailed button{min-height:37px;padding:0 12px;border:1px solid #cfe0f1;border-radius:8px;color:#0a65ca;background:#f7fbff;font-size:11px;font-weight:800;cursor:pointer}.history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.history-summary>div{padding:14px;border:1px solid #e1e8f0;border-radius:9px;background:#fafcff}.history-summary small{display:block;color:#7c899b;font-size:10px}.history-summary strong{display:block;margin-top:5px;font-size:16px}.history-grid article>a.history-row-link{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding:10px 0;border-top:1px solid #e6ebf1}.history-row-link small{grid-column:1/-1;color:#8795a8;font-size:10px}
.finance-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.finance-toolbar .admin-notice{margin:0}.finance-toolbar form button{min-height:44px}.finance-closures{margin:16px 0;padding:17px;border:1px solid #dfe7f0;border-radius:11px;background:#fff}.finance-closures h3{margin:0 0 11px;font-size:15px}.finance-closures>div{display:grid;gap:7px}.finance-closures article{display:grid;grid-template-columns:150px 1fr auto auto;gap:12px;align-items:center;padding:10px;border-top:1px solid #edf1f5}.finance-closures article:first-child{border-top:0}.finance-closures span,.finance-closures small{color:#758399;font-size:11px}
.calendar-card{margin:0 0 18px;padding:18px;border:1px solid #dfe6ef;border-radius:13px;background:#fff}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.calendar-head>div{text-align:center}.calendar-head small{color:#0a78e7;font-size:9px;font-weight:800;letter-spacing:.12em}.calendar-head h2{margin:4px 0 0;font-size:21px}.calendar-head>a{color:#0a67cc;font-size:11px;font-weight:800}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e3e9f0}.calendar-weekdays span{padding:8px;background:#f6f9fc;color:#77869a;text-align:center;font-size:10px;font-weight:800}.calendar-day{min-height:118px;padding:8px;background:#fff}.calendar-day.muted{background:#fafbfd}.calendar-day.today{box-shadow:inset 0 0 0 2px #2489ed}.calendar-day>strong{display:block;margin-bottom:6px;color:#435268;font-size:11px}.calendar-day>a{display:grid;grid-template-columns:35px 1fr;gap:4px;margin-top:4px;padding:5px;border-radius:6px;color:#2365a9;background:#f1f7fd;font-size:9px;line-height:1.25}.calendar-day>a time{font-weight:800}.calendar-day>small{display:block;margin-top:5px;color:#7d8a9a;font-size:9px}
@media(max-width:1180px){.attention-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.order-create-actions{grid-template-columns:1fr}.global-search{width:min(360px,35vw)}.order-hero-card{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-closures article{grid-template-columns:120px 1fr auto}.finance-closures small{grid-column:2/-1}.calendar-day{min-height:95px}.calendar-day>a{grid-template-columns:1fr}.calendar-day>a time{display:none}}
@media(max-width:900px){.global-search{display:none}.attention-grid{grid-template-columns:1fr 1fr}.order-detail-grid{grid-template-columns:1fr}.attachment-form{grid-template-columns:1fr}.calendar-card{overflow-x:auto}.calendar-weekdays,.calendar-grid{min-width:760px}.finance-toolbar{grid-template-columns:1fr}.search-results>a{grid-template-columns:100px 1fr}.search-results b{grid-column:2}.history-summary{grid-template-columns:1fr}}
@media(max-width:620px){.attention-grid{grid-template-columns:1fr}.order-hero-card{grid-template-columns:1fr}.order-data-list,.order-action-grid{grid-template-columns:1fr}.search-page-form{flex-direction:column}.search-results>a{grid-template-columns:1fr}.search-results b{grid-column:auto}.version-list-detailed article{grid-template-columns:1fr}.finance-closures article{grid-template-columns:1fr}.finance-closures small{grid-column:auto}.order-create-button{min-height:50px}.admin-table td,.admin-table td strong{font-size:12px}}
/* Cierre de órdenes y consistencia final v2.3 */
.order-close-card{margin-top:16px;padding:20px}.order-close-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.order-close-checks>div{padding:14px;border:1px solid #e1e8f0;border-radius:10px;background:#fafcff}.order-close-checks small{display:block;color:#7c899b;font-size:10px;font-weight:800;letter-spacing:.06em}.order-close-checks strong{display:block;margin-top:6px;color:#24364d;font-size:13px}.order-close-checks .close-warning{color:#a25b00}.order-close-checks .close-ok{color:#08785f}.order-finalize-form{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:15px;padding-top:15px;border-top:1px solid #e5ebf2}.order-finalize-form label{display:flex;align-items:center;gap:8px;margin-right:auto;color:#6d7b8e;font-size:12px}.order-finalize-form input[type="checkbox"]{width:18px;height:18px;accent-color:#087cf0}.order-close-note{margin:15px 0 0;color:#6d7b8e;font-size:12px;line-height:1.55}
@media(max-width:760px){.order-close-checks{grid-template-columns:1fr}.order-finalize-form{align-items:stretch;flex-direction:column}.order-finalize-form label{margin-right:0}.order-finalize-form .admin-primary{width:100%}}

/* v2.3.1 — cotizaciones simples y tipografía consistente */
.quote-type-actions{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:9px;width:min(690px,100%)}
.quote-type-button{min-height:46px;display:flex;align-items:center;justify-content:center;padding:0 14px;border:1px solid #bcd5f2;border-radius:10px;color:#0a67d3;background:#fff;font-size:13px;font-weight:800;text-align:center;box-shadow:0 5px 14px rgba(27,90,160,.05);transition:border-color .18s ease,background .18s ease,transform .18s ease}
.quote-type-button:hover{border-color:#1684ee;background:#f2f8ff;transform:translateY(-1px)}
.quote-section-title{margin:2px 0 2px;padding:12px 14px;border-radius:9px;background:#f3f7fc}
.quote-section-title strong{display:block;color:#17304f;font-size:13px}
.quote-section-title span{display:block;margin-top:3px;color:#74849a;font-size:11px}
.table-primary-link{color:#086ed9;text-decoration:none}
.table-primary-link:hover{text-decoration:underline}
@media(max-width:980px){.quote-type-actions{grid-template-columns:repeat(2,minmax(140px,1fr));width:100%}.module-heading .heading-actions:has(.quote-type-actions){width:100%}}
@media(max-width:520px){.quote-type-actions{grid-template-columns:1fr}.quote-type-button{min-height:44px}}

/* Cotizaciones v2.3.2: selector y ayuda de estados más limpios */
.quote-create-panel{display:grid;grid-template-columns:minmax(170px,.32fr) minmax(0,1fr);gap:22px;align-items:center;margin:0 0 14px;padding:16px 18px;border:1px solid #dbe5f0;border-radius:12px;background:#fff}
.quote-create-copy strong{display:block;color:#14243b;font-size:14px;font-weight:800}
.quote-create-copy span{display:block;margin-top:4px;color:#78879a;font-size:11px;line-height:1.45}
.quote-create-panel .quote-type-actions{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;width:100%}
.quote-create-panel .quote-type-button{min-height:58px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:10px 14px;border:1px solid #c9d9eb;border-radius:10px;color:#0b62c9;background:#fff;text-align:left;box-shadow:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.quote-create-panel .quote-type-button strong{font-size:13px;font-weight:800;line-height:1.2}
.quote-create-panel .quote-type-button small{margin-top:4px;color:#7d8b9d;font-size:10px;font-weight:600;line-height:1.2}
.quote-create-panel .quote-type-button:hover{border-color:#1684ee;background:#f5f9fe;transform:translateY(-1px)}
.quote-create-panel .quote-type-button:focus-visible{outline:3px solid rgba(22,132,238,.18);outline-offset:2px}
.quote-status-help{margin:0 0 20px;border:1px solid #dbe5f0;border-radius:10px;background:#fff;overflow:hidden}
.quote-status-help summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 15px;color:#2368b6;font-size:11px;font-weight:800;cursor:pointer;list-style:none;user-select:none}
.quote-status-help summary::-webkit-details-marker{display:none}
.quote-status-help summary::after{content:'+';margin-left:auto;color:#7c8da2;font-size:16px;font-weight:600}
.quote-status-help[open] summary::after{content:'−'}
.quote-status-help[open] summary{border-bottom:1px solid #e6edf4}
.quote-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:7px 15px 13px}
.quote-status-grid span{padding:9px 12px;border-right:1px solid #edf1f5}
.quote-status-grid span:nth-child(4n){border-right:0}
.quote-status-grid b{display:block;color:#1764c4;font-size:10.5px;font-weight:800}
.quote-status-grid small{display:block;margin-top:3px;color:#718096;font-size:10px;line-height:1.4}
@media(max-width:1180px){.quote-create-panel{grid-template-columns:1fr}.quote-create-panel .quote-type-actions{grid-template-columns:repeat(2,minmax(140px,1fr))}.quote-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-status-grid span:nth-child(4n){border-right:1px solid #edf1f5}.quote-status-grid span:nth-child(2n){border-right:0}}
@media(max-width:620px){.quote-create-panel{padding:14px}.quote-create-panel .quote-type-actions{grid-template-columns:1fr}.quote-create-panel .quote-type-button{min-height:52px}.quote-status-grid{grid-template-columns:1fr}.quote-status-grid span,.quote-status-grid span:nth-child(2n),.quote-status-grid span:nth-child(4n){border-right:0;border-bottom:1px solid #edf1f5}.quote-status-grid span:last-child{border-bottom:0}}

/* v2.4: estados automáticos y contexto claro de pagos */
.quote-state-card{display:flex;min-height:72px;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:12px 15px;border:1px solid #dbe5f0;border-radius:10px;background:#f8fbff}
.quote-state-card>small{color:#71839a;font-size:9px;font-weight:800;letter-spacing:.8px}
.quote-state-card>p{margin:0;color:#6f7f92;font-size:10px;line-height:1.45}
.receipt-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px;padding:14px;border:1px solid #dce6f1;border-radius:11px;background:#f7faff}
.receipt-context>div{min-width:0}.receipt-context small{display:block;margin-bottom:4px;color:#79899c;font-size:9px;font-weight:800;text-transform:uppercase}.receipt-context strong{display:block;color:#18324f;font-size:12px;overflow-wrap:anywhere}.receipt-context span{display:block;margin-top:3px;color:#718096;font-size:10px}
@media(max-width:720px){.receipt-context{grid-template-columns:1fr}.quote-state-card{min-height:auto}}

/* v2.5: acciones compactas y legibles en comprobantes */
.receipt-actions{display:grid;grid-template-columns:repeat(3,max-content);gap:7px;align-items:center;justify-content:start;min-width:250px}
.receipt-actions>a,.receipt-actions>form>button{min-height:30px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 10px!important;border:1px solid #d6e2ef!important;border-radius:8px!important;color:#2866a5!important;background:#fff!important;font-size:10.5px!important;font-weight:800!important;line-height:1!important;white-space:nowrap;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.receipt-actions>a:hover,.receipt-actions>form>button:hover{border-color:#9dc5ee!important;background:#f4f9ff!important;transform:translateY(-1px)}
.receipt-actions .action-chip.primary{color:#0a64c8!important;border-color:#b9d4f1!important;background:#f5f9ff!important}
.receipt-actions .action-chip.whatsapp{color:#126b61!important;border-color:#b9ddd7!important;background:#f2fbf9!important}
.receipt-actions>form>button.danger-link,.receipt-actions>form button{color:#a64b57!important}
@media(max-width:1180px){.receipt-actions{grid-template-columns:repeat(2,max-content);min-width:190px}}
@media(max-width:720px){.receipt-actions{grid-template-columns:1fr;min-width:150px}.receipt-actions>a,.receipt-actions>form,.receipt-actions>form>button{width:100%}}

/* v2.5.1: buscador de productos y señalización de stock */
.product-picker{position:relative;display:grid;gap:6px;min-width:0}
.product-picker-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.product-picker-search{width:100%;min-height:42px;padding:0 12px!important;border:1px solid #d8e2ed!important;border-radius:9px!important;background:#fff!important;color:#22344b!important;font-size:13px!important;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.product-picker-search:focus{border-color:#78b2ef!important;box-shadow:0 0 0 3px rgba(10,105,210,.08)!important}
.product-picker-search.is-out-of-stock,.field-stock-error{border-color:#d76570!important;background:#fff6f7!important;box-shadow:0 0 0 3px rgba(199,71,85,.07)!important}
.product-picker-status{min-height:14px;margin:0!important;color:#6f8095!important;font-size:10px!important;font-weight:700!important;line-height:1.35}
.product-picker-status.is-out-of-stock{color:#bd4654!important}
.product-picker-results{position:absolute;z-index:60;top:46px;left:0;right:0;max-height:310px;overflow:auto;padding:6px;border:1px solid #d8e2ed;border-radius:10px;background:#fff;box-shadow:0 15px 34px rgba(25,55,90,.16)}
.product-picker-option{display:flex;width:100%;min-height:48px;flex-direction:column;align-items:flex-start;justify-content:center;padding:8px 10px;border:0;border-bottom:1px solid #eef2f6;border-radius:7px;color:#26374d;background:#fff;text-align:left;cursor:pointer}
.product-picker-option:last-child{border-bottom:0}.product-picker-option:hover,.product-picker-option:focus{background:#f4f8fd;outline:none}
.product-picker-option-main{font-size:12px;font-weight:800;line-height:1.35}
.product-picker-option-meta{margin-top:3px;color:#718097;font-size:10px;font-weight:700}
.product-picker-option.is-out-of-stock{color:#b93f4c;background:#fff5f6}
.product-picker-option.is-out-of-stock .product-picker-option-meta{color:#c34654}
.product-picker-empty{padding:12px;color:#78879a;font-size:11px;text-align:center}
.quote-item-row.has-out-of-stock-product{border-color:#e3a3aa;background:#fffafa}
@media(max-width:620px){.product-picker-results{max-height:250px}.product-picker-search{font-size:16px!important}}

/* v2.5.2 · Acciones compactas en cotizaciones */
.quote-actions-cell{width:1%;min-width:220px;vertical-align:top}
.quote-actions{display:block;min-width:0}
.quote-primary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:245px}
.quote-primary-actions>.action-chip,.quote-primary-actions>.action-more>summary{min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid #d6e2ef;border-radius:8px;color:#2866a5;background:#fff;font-size:10.5px;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.quote-primary-actions>.action-chip:hover,.quote-primary-actions>.action-more>summary:hover{border-color:#9dc5ee;background:#f4f9ff;transform:translateY(-1px)}
.quote-primary-actions>.action-chip.primary{color:#0a64c8;border-color:#b9d4f1;background:#f5f9ff}
.quote-primary-actions>.action-chip.whatsapp{color:#126b61;border-color:#b9ddd7;background:#f2fbf9}
.action-more{display:inline-block;min-width:0}
.action-more>summary{list-style:none}
.action-more>summary::-webkit-details-marker{display:none}
.action-more>summary::after{content:'▾';margin-left:5px;color:#8493a6;font-size:9px}
.action-more[open]{flex-basis:100%;width:100%;margin-top:2px}
.action-more[open]>summary{width:max-content}
.action-more[open]>summary::after{content:'▴'}
.action-more-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:7px;padding:8px;border:1px solid #dce6f0;border-radius:9px;background:#f8fbfe}
.action-more-menu>a,.action-more-menu>form>button{width:100%;min-height:30px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;padding:0 9px!important;border:1px solid transparent!important;border-radius:7px!important;color:#32689f!important;background:transparent!important;font-size:10.5px!important;font-weight:700!important;line-height:1.2!important;text-align:left;cursor:pointer;white-space:normal}
.action-more-menu>a:hover,.action-more-menu>form>button:hover{border-color:#d4e2f1!important;background:#fff!important}
.action-more-menu>form{margin:0;display:block}
.action-more-menu .action-danger{color:#b64f5a!important}
@media(max-width:1180px){.quote-actions-cell{min-width:190px}.quote-primary-actions{max-width:210px}.quote-primary-actions>.action-chip,.quote-primary-actions>.action-more>summary{padding-inline:8px}.action-more-menu{grid-template-columns:1fr}}
@media(max-width:720px){.quote-actions-cell{min-width:165px}.quote-primary-actions{max-width:180px}.quote-primary-actions>.action-chip,.quote-primary-actions>.action-more{flex:1 1 calc(50% - 4px)}.quote-primary-actions>.action-more>summary{width:100%}.action-more[open]{flex-basis:100%}}

/* v2.6.0 · Responsive integral: escritorio, tablet y móvil */
.mobile-extra-nav{display:none!important}
.nav-icon svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-nav-link .nav-icon,.sidebar-tool .nav-icon{display:grid;place-items:center}
.admin-content{min-width:0}
.dashboard-view,.module-view{width:100%;max-width:1680px;margin:0 auto}
.admin-form-card,.panel-card,.attention-panel,.table-toolbar,.admin-table-wrap{box-shadow:none}

/* Escritorio grande */
@media(min-width:1200px){
  .admin-app{grid-template-columns:260px minmax(0,1fr)}
  .admin-sidebar{padding:24px 18px 20px}
  .admin-brand{width:215px;margin-inline:auto}
  .dashboard-view,.module-view{padding:34px 36px 54px}
  .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
  .admin-form-card.entity-form{max-width:1180px}
  .admin-table{min-width:0}
}

/* Laptop y tablet horizontal */
@media(min-width:901px) and (max-width:1199px){
  .admin-app{grid-template-columns:220px minmax(0,1fr)}
  .admin-sidebar{padding:20px 14px}
  .admin-brand{width:178px;margin:0 auto 2px}
  .admin-caption{margin:20px 7px 12px}
  .admin-nav-link{min-height:52px;padding:8px 10px;gap:10px;font-size:12px}
  .admin-nav-link>span{width:34px;height:34px;flex-basis:34px}
  .sidebar-tools{margin-top:10px;padding-top:10px}
  .sidebar-tool{min-height:58px}
  .dashboard-view,.module-view{padding:28px 24px 48px}
  .admin-topbar{height:66px;padding-inline:24px}
  .global-search{width:min(440px,42vw)}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .attention-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-form-card.entity-form{max-width:none}
  .admin-form-grid{gap:14px}
  .quote-item-row{grid-template-columns:repeat(4,minmax(0,1fr))}
  .quote-item-row .item-description{grid-column:span 2}
}

/* Tablet vertical y móvil: navegación inferior real */
@media(max-width:900px){
  body{background:#eef2f7}
  .admin-app{display:block!important;min-height:100vh}
  .admin-sidebar{position:fixed!important;z-index:80!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;height:76px!important;display:grid!important;grid-template-columns:minmax(0,4fr) minmax(70px,1fr)!important;gap:4px!important;padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;overflow:visible!important;border:0!important;border-top:1px solid #17263c!important;background:#07101f!important;box-shadow:0 -10px 28px rgba(7,16,31,.18)!important}
  .admin-sidebar>.brand,.admin-caption,.sidebar-bottom{display:none!important}
  .admin-primary-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;min-width:0!important;overflow:visible!important}
  .admin-primary-nav .admin-nav-link:nth-child(n+5){display:none!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link,.sidebar-tool{min-width:0!important;width:100%!important;height:62px!important;min-height:62px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;margin:0!important;padding:5px 3px!important;border-radius:11px!important;font-size:9.5px!important;line-height:1!important;text-align:center!important;overflow:hidden!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link>b,.sidebar-tool>b{display:block!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link>span,.sidebar-tool>span{width:30px!important;height:30px!important;flex:0 0 30px!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link.active{background:rgba(0,112,255,.18)!important;border-color:rgba(73,196,255,.24)!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link.active>span{color:#42d6ff!important;background:rgba(0,112,255,.18)!important}
  .sidebar-tools{height:auto!important;display:block!important;margin:0!important;padding:0!important;border:0!important}
  .sidebar-tool{color:#b3c0d0!important;background:transparent!important}
  .sidebar-tool[aria-expanded="true"]{color:#fff!important;background:rgba(0,112,255,.18)!important}
  .admin-more-menu{position:fixed!important;z-index:90!important;left:10px!important;right:10px!important;bottom:84px!important;top:auto!important;width:auto!important;max-height:min(62vh,520px)!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin:0!important;padding:10px!important;overflow-y:auto!important;border:1px solid rgba(74,174,255,.22)!important;border-radius:14px!important;background:#0b1729!important;box-shadow:0 18px 50px rgba(0,0,0,.34)!important}
  .admin-more-menu[hidden]{display:none!important}
  .admin-more-menu .mobile-extra-nav{display:flex!important}
  .admin-more-menu .admin-nav-link{min-height:52px!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;padding:8px 10px!important;border-radius:10px!important;font-size:11px!important}
  .admin-more-menu .admin-nav-link>span{width:32px!important;height:32px!important;flex:0 0 32px!important}
  .admin-content{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}
  .admin-topbar{position:sticky!important;z-index:50!important;top:0!important;height:62px!important;padding:0 16px!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(12px)!important;border-bottom:1px solid #dde5ef!important}
  .mobile-kicker{display:block!important;color:#1979dc!important;font-size:11px!important;font-weight:800!important;letter-spacing:.06em!important}
  .admin-topbar>div:first-child p{margin-top:2px!important;font-size:10.5px!important}
  .global-search{display:none!important}
  .topbar-actions{gap:9px!important}
  .topbar-actions>span:not(.online-dot){display:none!important}
  .online-dot{font-size:9px!important}
  .topbar-logout button{width:42px!important;height:42px!important;border-radius:10px!important;font-size:10px!important}
  .admin-flash{margin:10px 14px -4px!important;padding:11px 13px!important;font-size:12px!important}
  .dashboard-view,.module-view{padding:24px 18px 36px!important}
  .dashboard-heading,.module-heading{align-items:flex-start!important;gap:16px!important}
  .dashboard-heading h1,.module-heading h1{font-size:30px!important;line-height:1.05!important;letter-spacing:-.035em!important}
  .dashboard-heading>div>span,.module-heading>div>span{margin-top:7px!important;font-size:13px!important;line-height:1.45!important}
  .dashboard-heading .link-button,.module-heading .link-button,.heading-actions .link-button{min-height:44px!important;padding:0 16px!important;border-radius:10px!important;font-size:12px!important}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin-top:20px!important}
  .stat-card{min-height:108px!important;padding:15px!important;border-radius:12px!important}
  .stat-card::before{display:none!important}
  .stat-card p{font-size:10.5px!important;line-height:1.3!important}
  .stat-card strong{margin-top:11px!important;font-size:24px!important;line-height:1!important}
  .stat-card span{margin-top:7px!important;font-size:10px!important;line-height:1.3!important}
  .attention-panel{margin:16px 0!important;padding:16px!important;border-radius:13px!important}
  .attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .attention-grid a{min-height:74px!important;padding:12px!important}
  .attention-grid strong{font-size:20px!important}
  .attention-grid span{font-size:10.5px!important}
  .dashboard-grid{gap:12px!important}
  .panel-card{border-radius:13px!important}
  .table-toolbar{margin-top:22px!important;padding:13px!important;gap:12px!important;border-radius:12px 12px 0 0!important}
  .table-toolbar label{width:100%!important}
  .table-toolbar input,.table-toolbar select{min-height:44px!important;font-size:14px!important}
  .admin-form-card{padding:20px!important;border-radius:13px!important}
  .entity-form{margin-top:20px!important}
  .admin-form-grid{gap:14px!important}
  .admin-form-card input,.admin-form-card select,.admin-form-card textarea{min-height:46px!important;font-size:16px!important;border-radius:9px!important}
  .admin-form-card textarea{min-height:110px!important}
  .form-actions{gap:8px!important;flex-wrap:wrap!important}
  .form-actions>a,.form-actions>button{min-height:44px!important}
  .quote-create-panel{margin-top:18px!important}
  .quote-create-panel .quote-type-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .quote-create-panel .quote-type-button{min-height:64px!important}
  .quote-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:13px!important}
  .receipt-context{grid-template-columns:1fr!important}
  .order-hero-card{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .order-detail-grid{grid-template-columns:1fr!important}
  .settings-grid,.users-layout{grid-template-columns:1fr!important}
  .calendar-card{overflow-x:auto!important}
}

/* Tablet vertical y móvil: tarjetas en vez de tablas anchas */
@media(max-width:820px){
  .dashboard-view,.module-view{padding:20px 14px 28px!important}
  .dashboard-view{display:flex!important;flex-direction:column!important}
  .dashboard-view>.dashboard-heading{order:1}
  .dashboard-view>.attention-panel{order:2}
  .dashboard-view>.stat-grid{order:3}
  .dashboard-view>.dashboard-grid{order:4}
  .dashboard-heading,.module-heading{flex-direction:column!important}
  .dashboard-heading h1,.module-heading h1{font-size:27px!important}
  .dashboard-heading>div>span,.module-heading>div>span{font-size:12.5px!important}
  .dashboard-heading .link-button{width:auto!important;align-self:flex-start!important}
  .stat-grid{margin-top:14px!important}
  .attention-panel{margin:14px 0!important}
  .panel-card-head{align-items:flex-start!important;gap:10px!important}
  .panel-card-head h2{font-size:17px!important}
  .attention-grid{grid-template-columns:1fr 1fr!important}
  .admin-table-wrap{overflow:visible!important;border:0!important;background:transparent!important;border-radius:0!important}
  .admin-table{display:block!important;width:100%!important;min-width:0!important;border-collapse:separate!important}
  .admin-table thead{display:none!important}
  .admin-table tbody{display:grid!important;gap:10px!important}
  .admin-table tr{display:block!important;padding:14px!important;border:1px solid #dde6ef!important;border-radius:13px!important;background:#fff!important;box-shadow:0 2px 8px rgba(25,55,90,.035)!important}
  .admin-table td{min-height:0!important;height:auto!important;display:grid!important;grid-template-columns:minmax(92px,34%) minmax(0,1fr)!important;align-items:start!important;gap:10px!important;padding:7px 0!important;border:0!important;border-bottom:1px solid #eef2f6!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:12.5px!important;line-height:1.45!important}
  .admin-table td:last-child{border-bottom:0!important;padding-bottom:0!important}
  .admin-table td::before{content:attr(data-label);color:#8a98aa;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
  .admin-table td strong{font-size:13px!important;white-space:normal!important}
  .admin-table td[data-label="Acciones"]{display:block!important;padding-top:11px!important}
  .admin-table td[data-label="Acciones"]::before{display:block!important;margin-bottom:8px}
  .row-actions,.quote-primary-actions,.receipt-actions{display:flex!important;flex-wrap:wrap!important;gap:7px!important;min-width:0!important;max-width:none!important}
  .row-actions>a,.row-actions>form,.quote-primary-actions>.action-chip,.quote-primary-actions>.action-more,.receipt-actions>a,.receipt-actions>form{flex:1 1 calc(50% - 4px)!important;min-width:0!important}
  .row-actions>a,.row-actions button,.quote-primary-actions>.action-chip,.quote-primary-actions>.action-more>summary,.receipt-actions>a,.receipt-actions>form>button{width:100%!important;min-height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 10px!important;border:1px solid #d7e2ee!important;border-radius:9px!important;background:#fff!important;font-size:11px!important;text-align:center!important}
  .quote-actions-cell{width:auto!important;min-width:0!important}
  .action-more[open]{flex-basis:100%!important}
  .action-more-menu{grid-template-columns:1fr!important}
  .table-toolbar{align-items:stretch!important;flex-direction:column!important;margin-top:18px!important;border-radius:12px!important;border-bottom:1px solid #dfe6ef!important}
  .table-toolbar+ .admin-table-wrap{margin-top:10px!important}
  .table-toolbar>span{align-self:flex-end!important}
  .quote-item-row,.audio-quote-mode .quote-item-row{grid-template-columns:1fr 1fr!important;padding:12px!important}
  .quote-item-row .item-description,.audio-quote-mode .quote-item-row .item-description{grid-column:1/-1!important}
  .quote-item-row output{min-height:44px!important}
  .item-remove{width:100%!important;height:44px!important}
  .quote-summary{grid-template-columns:1fr 1fr!important}
  .quote-summary>div{min-height:68px!important}
  .order-hero-card{grid-template-columns:1fr!important}
  .order-data-list,.order-action-grid{grid-template-columns:1fr!important}
  .history-summary{grid-template-columns:1fr!important}
  .history-grid{grid-template-columns:1fr!important}
  .search-page-form{flex-direction:column!important}
  .search-results>a{grid-template-columns:1fr!important}
  .search-results b{grid-column:auto!important}
  .users-card-head{align-items:flex-start!important;flex-direction:column!important}
  .user-list article{grid-template-columns:40px minmax(0,1fr)!important;gap:10px!important}
  .user-list article>*:not(.user-avatar):not(div){grid-column:2!important}
}

@media(max-width:460px){
  .admin-sidebar{height:72px!important;grid-template-columns:minmax(0,4fr) 64px!important;padding-inline:6px!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link,.sidebar-tool{height:58px!important;min-height:58px!important;font-size:8.5px!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link>span,.sidebar-tool>span{width:27px!important;height:27px!important;flex-basis:27px!important}
  .admin-more-menu{left:8px!important;right:8px!important;bottom:80px!important;grid-template-columns:1fr!important}
  .admin-content{padding-bottom:calc(80px + env(safe-area-inset-bottom))!important}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .stat-card{min-height:102px!important;padding:13px!important}
  .stat-card p{font-size:9.5px!important}
  .stat-card strong{font-size:22px!important}
  .stat-card span{font-size:9px!important}
  .attention-grid{grid-template-columns:1fr!important}
  .quote-create-panel .quote-type-actions{grid-template-columns:1fr!important}
  .quote-item-row,.audio-quote-mode .quote-item-row,.quote-summary{grid-template-columns:1fr!important}
  .admin-table td{grid-template-columns:88px minmax(0,1fr)!important}
  .row-actions>a,.row-actions>form,.quote-primary-actions>.action-chip,.quote-primary-actions>.action-more,.receipt-actions>a,.receipt-actions>form{flex-basis:100%!important}
}

/* v2.6.1 - navegación lateral móvil con botón hamburguesa y logo superior */
.topbar-brand-wrap{display:flex;align-items:center;gap:12px;min-width:0}
.topbar-heading{min-width:0}
.topbar-logo{display:none;align-items:center;flex:0 0 auto}
.topbar-logo img{display:block;height:34px;width:auto}
.mobile-nav-toggle{display:none;position:relative;flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid #dbe4ee;border-radius:10px;background:#fff;box-shadow:0 4px 12px rgba(16,36,61,.06);cursor:pointer}
.mobile-nav-toggle span{position:absolute;left:10px;right:10px;height:2px;border-radius:999px;background:#1c2f48;transition:transform .22s ease,opacity .18s ease,top .22s ease}
.mobile-nav-toggle span:nth-child(1){top:13px}
.mobile-nav-toggle span:nth-child(2){top:20px}
.mobile-nav-toggle span:nth-child(3){top:27px}
.sidebar-overlay{display:none}

@media(max-width:900px){
  .admin-app{display:block!important;min-height:100vh}
  .sidebar-overlay{display:block;position:fixed;inset:0;z-index:88;border:0;background:rgba(5,12,22,.48);opacity:0;pointer-events:none;transition:opacity .22s ease}
  body.mobile-sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}
  .admin-sidebar{position:fixed!important;z-index:90!important;left:0!important;top:0!important;bottom:0!important;right:auto!important;width:min(86vw,320px)!important;height:100vh!important;display:flex!important;flex-direction:column!important;gap:0!important;padding:22px 16px 18px!important;overflow-y:auto!important;overflow-x:hidden!important;border:0!important;border-right:1px solid rgba(0,212,255,.14)!important;border-top:0!important;background:#07101f!important;box-shadow:18px 0 42px rgba(0,0,0,.24)!important;transform:translateX(-105%);transition:transform .24s ease!important}
  body.mobile-sidebar-open .admin-sidebar{transform:translateX(0)}
  .admin-sidebar>.brand,.admin-caption,.sidebar-bottom{display:block!important}
  .admin-brand{width:190px!important;margin:0 0 4px!important}
  .admin-caption{margin:18px 8px 12px!important;color:#5f7088!important;font-size:10px!important;letter-spacing:.14em!important;text-transform:uppercase!important}
  .admin-primary-nav{display:flex!important;flex-direction:column!important;grid-template-columns:none!important;gap:6px!important;overflow:visible!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link{width:100%!important;min-height:54px!important;height:auto!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;margin:0!important;padding:10px 12px!important;border-radius:11px!important;font-size:12px!important;line-height:1.2!important;text-align:left!important;overflow:visible!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link>b{display:block!important;max-width:none!important;white-space:normal!important}
  .admin-sidebar .admin-primary-nav .admin-nav-link>span{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:9px!important;background:rgba(255,255,255,.05)!important}
  .sidebar-tools{display:block!important;margin:14px 0 0!important;padding:14px 0 0!important;border-top:1px solid rgba(255,255,255,.08)!important}
  .sidebar-tool{width:100%!important;min-height:54px!important;height:auto!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;padding:10px 12px!important;border-radius:11px!important;font-size:12px!important;text-align:left!important}
  .sidebar-tool>span{width:34px!important;height:34px!important;display:grid!important;place-content:center!important;border-radius:9px!important;background:rgba(255,255,255,.05)!important;color:#59d9ff!important}
  .sidebar-tool>b{display:block!important}
  .admin-more-menu{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;max-height:none!important;display:flex!important;flex-direction:column!important;grid-template-columns:none!important;gap:6px!important;margin-top:8px!important;padding:8px!important;overflow:visible!important;border:1px solid rgba(74,174,255,.16)!important;border-radius:12px!important;background:#0b1729!important;box-shadow:none!important}
  .admin-more-menu .admin-nav-link{min-height:50px!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;padding:8px 10px!important;border-radius:10px!important;font-size:11.5px!important}
  .admin-more-menu .admin-nav-link>span{width:32px!important;height:32px!important;flex:0 0 32px!important}
  .sidebar-bottom{margin-top:18px!important;padding:16px 7px 0!important}
  .admin-content{padding-bottom:0!important}
  .admin-topbar{position:sticky!important;z-index:70!important;top:0!important;height:74px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;padding:0 14px!important;background:rgba(255,255,255,.97)!important;backdrop-filter:blur(12px)!important;border-bottom:1px solid #dde5ef!important}
  .mobile-nav-toggle{display:inline-flex!important;align-items:center;justify-content:center}
  .topbar-logo{display:flex!important}
  .topbar-logo img{height:28px!important}
  .mobile-kicker{display:none!important}
  .topbar-heading p{margin:0!important;color:#6d7c8f!important;font-size:11px!important;font-weight:700!important;line-height:1.25!important}
  .topbar-actions{gap:8px!important}
  .topbar-actions>span:not(.online-dot){display:none!important}
  .topbar-logout button{width:42px!important;height:42px!important;padding:0 10px!important;border-radius:10px!important;font-size:10px!important}
  .global-search{display:none!important}
  body.mobile-sidebar-open{overflow:hidden}
  body.mobile-sidebar-open .mobile-nav-toggle span:nth-child(1){top:20px;transform:rotate(45deg)}
  body.mobile-sidebar-open .mobile-nav-toggle span:nth-child(2){opacity:0}
  body.mobile-sidebar-open .mobile-nav-toggle span:nth-child(3){top:20px;transform:rotate(-45deg)}
}

/* v2.6.3 - logo móvil visible y sin espacio desperdiciado */
@media(max-width:900px){
  .topbar-heading{display:none!important}
  .topbar-logo{min-width:0!important}
  .topbar-logo img{width:clamp(130px,38vw,175px)!important;height:auto!important;max-height:52px!important;object-fit:contain!important}
  .topbar-brand-wrap{gap:10px!important}
}
@media(max-width:380px){
  .topbar-logo img{width:128px!important}
  .mobile-nav-toggle{width:40px!important;height:40px!important;flex-basis:40px!important}
}


/* v2.6.11 - creación rápida de clientes desde cualquier selector */
.client-select-field{min-width:0}
.client-select-field>label{display:block}
.client-select-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:7px}
.client-select-control>select{margin-top:0!important;min-width:0}
.quick-client-trigger{min-height:42px;margin-top:7px;padding:0 12px;border:1px solid #b9d7f6;border-radius:8px;color:#096fd1;background:#f7fbff;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}
.client-select-control>.quick-client-trigger{margin-top:0;height:100%}
.quick-client-trigger:hover{border-color:#7ebcff;background:#edf7ff}
.quick-client-modal[hidden]{display:none!important}
.quick-client-modal{position:fixed;z-index:160;inset:0;display:grid;place-items:center;padding:20px}
.quick-client-backdrop{position:absolute;inset:0;background:rgba(5,13,24,.58);backdrop-filter:blur(3px)}
.quick-client-dialog{position:relative;z-index:1;width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:24px;border:1px solid #dce6f1;border-radius:15px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.quick-client-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid #eaf0f6}
.quick-client-head small{display:block;margin-bottom:5px;color:#137add;font-size:9px;font-weight:900;letter-spacing:.13em}
.quick-client-head h2{margin:0;color:#15243a;font-size:22px;letter-spacing:-.025em}
.quick-client-head p{margin:6px 0 0;color:#7d8999;font-size:12px}
.quick-client-close{width:38px;height:38px;display:grid;place-content:center;flex:0 0 38px;border:1px solid #dfe7f0;border-radius:9px;color:#718095;background:#fff;font-size:24px;line-height:1;cursor:pointer}
.quick-client-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.quick-client-grid label{display:block;color:#5e6c80;font-size:12px;font-weight:800}
.quick-client-grid label sup{color:#df5252}
.quick-client-grid label small{font-size:10px;font-weight:600;color:#8c99aa}
.quick-client-grid input,.quick-client-grid select{width:100%;min-height:45px;margin-top:7px;padding:10px 12px;border:1px solid #dce3ec;border-radius:8px;outline:none;color:#243248;background:#f9fbfd;font-size:14px}
.quick-client-grid input:focus,.quick-client-grid select:focus{border-color:#57a9ff;box-shadow:0 0 0 3px rgba(0,102,255,.07)}
.quick-client-grid .span-two{grid-column:1/-1}
.quick-client-feedback{margin-top:16px;padding:11px 13px;border:1px solid #f0caca;border-radius:8px;color:#a83d3d;background:#fff3f3;font-size:11px;line-height:1.5}
.quick-client-feedback.duplicate{border-color:#f0dba3;color:#8a6511;background:#fff9e9}
.quick-client-duplicate-actions,.quick-client-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:16px}
.quick-client-duplicate-actions{padding:12px;border:1px solid #f0dfb8;border-radius:9px;background:#fffaf0}
.quick-client-actions{padding-top:17px;border-top:1px solid #eaf0f6}
.quick-client-actions button,.quick-client-duplicate-actions button{min-height:42px}
body.quick-client-open{overflow:hidden}
@media(max-width:700px){
  .client-select-control{grid-template-columns:1fr}
  .quick-client-trigger{width:100%;min-height:44px;margin-top:7px}
  .client-select-control>.quick-client-trigger{margin-top:0}
  .quick-client-modal{padding:10px;align-items:end}
  .quick-client-dialog{width:100%;max-height:88vh;padding:18px;border-radius:15px 15px 0 0}
  .quick-client-grid{grid-template-columns:1fr;gap:12px}
  .quick-client-grid .span-two{grid-column:auto}
  .quick-client-grid input,.quick-client-grid select{font-size:16px}
  .quick-client-duplicate-actions,.quick-client-actions{flex-direction:column-reverse;align-items:stretch}
  .quick-client-duplicate-actions button,.quick-client-actions button{width:100%}
}

/* ==========================================================================
   Panel administrativo · rediseño v2.8.0
   Mismo lenguaje visual que el sitio público: Inter para texto, JetBrains Mono
   para todo dato operativo (folios, montos, SKU, fechas, cantidades), superficies
   planas con borde de 1px en vez de sombras, y una escala tipográfica legible.
   Esta sección va al final del archivo a propósito: el CSS del panel está
   construido por capas de versiones y esta debe ganar por orden de cascada.
   ========================================================================== */

:root {
  --a-bg: #f5f7fb;
  --a-surface: #ffffff;
  --a-surface-2: #fafbfd;
  --a-ink: #0d1626;
  --a-ink-2: #3d4c63;
  --a-ink-3: #64748b;
  --a-line: #e3e9f2;
  --a-line-strong: #cfd9e8;
  --a-blue: #0a6cff;
  --a-blue-deep: #0056d6;
  --a-cyan: #22d3ee;
  --a-violet: #8b5cf6;
  --a-green: #0f9d70;
  --a-amber: #b45309;
  --a-red: #d92d20;

  --a-fs-micro: 11px;
  --a-fs-sm: 12.5px;
  --a-fs-base: 13.5px;
  --a-fs-md: 15px;
  --a-fs-lg: 18px;

  --a-r: 10px;
  --a-r-lg: 14px;
  --a-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --a-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* --- Tipografía base del panel ------------------------------------------- */
.admin-app,
.login-body,
.admin-form-card,
.admin-table,
.admin-app button,
.admin-app input,
.admin-app select,
.admin-app textarea,
.login-body button,
.login-body input,
.login-body select,
.login-body textarea {
  font-family: var(--a-sans);
  font-synthesis: none;
}

.admin-app { background: var(--a-bg); color: var(--a-ink); }
.admin-content { font-size: var(--a-fs-base); }
.admin-content p,
.admin-content li,
.admin-content td { font-size: var(--a-fs-base); }

/* Datos operativos en monoespaciada: es lo que separa una herramienta de
   operación de una plantilla genérica de panel. */
.admin-table .num,
.admin-table td .num,
.stat-card strong,
.attention-grid strong,
.finance-summary strong,
.summary-total,
.sheet .num,
.order-detail-grid .num,
.folio,
.admin-table td:first-child strong {
  font-family: var(--a-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

/* ==========================================================================
   Barra lateral
   ========================================================================== */
@media (min-width: 1041px) {
  .admin-app { grid-template-columns: 224px 1fr; }
}

.admin-sidebar {
  padding: 20px 12px 16px;
  background: #05090f;
  border-right: 1px solid rgba(140, 180, 240, 0.1);
}
.admin-brand { width: 168px; margin: 2px 6px 0; }
.admin-caption {
  margin: 22px 8px 10px !important;
  color: #55657f !important;
  font-family: var(--a-mono);
  font-size: 9.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
}

.admin-sidebar .admin-nav-link {
  position: relative;
  min-height: 42px;
  gap: 10px;
  margin-bottom: 2px;
  padding: 8px 10px;
  border-radius: var(--a-r);
  color: #93a3ba;
  font-size: var(--a-fs-sm) !important;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.admin-sidebar .admin-nav-link > span {
  width: 30px;
  height: 30px;
  flex-basis: 30px;
  border-radius: 8px;
  color: #7d90aa;
  background: rgba(255, 255, 255, 0.045);
}
.admin-sidebar .admin-nav-link > span svg { width: 16px; height: 16px; }
.admin-sidebar .admin-nav-link:hover { color: #e8f0fb; background: rgba(255, 255, 255, 0.05); }
.admin-sidebar .admin-nav-link.active {
  color: #fff;
  border-color: transparent;
  background: rgba(10, 108, 255, 0.16);
}
.admin-sidebar .admin-nav-link.active::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 50%;
  width: 3px;
  height: 20px;
  border-radius: 0 3px 3px 0;
  background: var(--a-cyan);
  transform: translateY(-50%);
}
.admin-sidebar .admin-nav-link.active > span {
  color: #fff;
  background: linear-gradient(135deg, var(--a-blue), #12a8e8);
  box-shadow: 0 6px 14px -6px rgba(10, 108, 255, 0.9);
}

.sidebar-tool {
  border-radius: var(--a-r);
  color: #93a3ba;
  font-size: var(--a-fs-sm) !important;
  font-weight: 500;
}
.admin-more-menu {
  border-radius: var(--a-r-lg);
  background: #0a1120;
  border: 1px solid rgba(140, 180, 240, 0.12);
}
.admin-more-menu .admin-nav-link { font-size: var(--a-fs-sm) !important; }
.logout-link { font-size: var(--a-fs-micro) !important; color: #7b8ca5 !important; }
.online-dot { font-size: var(--a-fs-micro) !important; }

/* ==========================================================================
   Barra superior
   ========================================================================== */
.admin-topbar {
  height: 62px;
  background: var(--a-surface);
  border-bottom: 1px solid var(--a-line);
}
.admin-topbar > div:first-child p {
  color: var(--a-ink-3) !important;
  font-family: var(--a-mono);
  font-size: 10px !important;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.admin-topbar input {
  height: 38px;
  border: 1px solid var(--a-line);
  border-radius: var(--a-r);
  background: var(--a-surface-2);
  font-size: var(--a-fs-base);
}
.admin-topbar input:focus { border-color: var(--a-blue); box-shadow: 0 0 0 3px rgba(10, 108, 255, 0.1); }
.topbar-date {
  font-family: var(--a-mono);
  font-size: var(--a-fs-micro);
  letter-spacing: 0.08em;
  color: var(--a-ink-3);
}

/* ==========================================================================
   Encabezados de módulo
   ========================================================================== */
.module-heading p,
.dashboard-heading p,
.panel-card-head p,
.form-card-head p {
  color: var(--a-blue-deep) !important;
  font-family: var(--a-mono);
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
}
.dashboard-heading h1,
.module-heading h1 {
  font-size: 26px !important;
  font-weight: 700;
  letter-spacing: -0.035em;
  color: var(--a-ink);
}
.dashboard-heading > div > span,
.module-heading > div > span {
  color: var(--a-ink-3) !important;
  font-size: var(--a-fs-base) !important;
}

/* ==========================================================================
   Botones
   ========================================================================== */
.admin-primary,
.admin-secondary,
.link-button,
.action-chip,
.order-create-button,
.quote-type-button {
  font-family: var(--a-sans);
  letter-spacing: -0.01em;
}
.admin-primary {
  min-height: 40px;
  padding: 0 18px;
  border-radius: var(--a-r);
  color: #fff;
  background-image: linear-gradient(100deg, var(--a-blue-deep), var(--a-blue) 60%, #1b9ff0);
  box-shadow: 0 8px 20px -12px rgba(10, 108, 255, 0.9);
  font-size: var(--a-fs-base) !important;
  font-weight: 600;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}
.admin-primary:hover { transform: translateY(-1px); box-shadow: 0 12px 26px -12px rgba(10, 108, 255, 0.95); }
.admin-secondary {
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid var(--a-line-strong);
  border-radius: var(--a-r);
  color: var(--a-ink-2);
  background: var(--a-surface);
  font-size: var(--a-fs-base) !important;
  font-weight: 600;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.admin-secondary:hover { border-color: var(--a-blue); color: var(--a-blue-deep); background: #f4f8ff; }
.dashboard-heading .link-button,
.module-heading .link-button,
.heading-actions .link-button { font-size: var(--a-fs-base) !important; }

.action-chip {
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid var(--a-line);
  border-radius: 999px;
  color: var(--a-ink-2);
  background: var(--a-surface);
  font-size: var(--a-fs-micro) !important;
  font-weight: 600;
}
.action-chip:hover { border-color: var(--a-blue); color: var(--a-blue-deep); }
.danger-link { color: var(--a-red) !important; }

/* ==========================================================================
   Tarjetas
   ========================================================================== */
.panel-card,
.admin-form-card,
.stat-card,
.settings-main-card,
.sheet {
  border: 1px solid var(--a-line);
  border-radius: var(--a-r-lg);
  background: var(--a-surface);
  box-shadow: none;
}
.panel-card-head { border-bottom: 1px solid var(--a-line); }
.panel-card-head h2,
.admin-form-card h2 {
  font-size: var(--a-fs-lg);
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--a-ink);
}
.panel-card-head > a { font-size: var(--a-fs-sm) !important; color: var(--a-blue-deep) !important; font-weight: 600; }

/* Tarjetas de indicador: se elimina el círculo pastel decorativo y se ordena
   la jerarquía label → cifra → contexto. */
.stat-card { position: relative; overflow: hidden; padding: 18px 20px; }
.stat-card::before,
.stat-card::after { display: none !important; }
.stat-card > span:first-child,
.stat-card p:first-child {
  color: var(--a-ink-3) !important;
  font-family: var(--a-mono);
  font-size: 10px !important;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.stat-card strong {
  display: block;
  margin: 8px 0 6px;
  font-size: 28px !important;
  font-weight: 600;
  letter-spacing: -0.04em;
  color: var(--a-ink);
}
.stat-card small,
.stat-card > span:last-child { font-size: var(--a-fs-micro) !important; font-weight: 600; }
.stat-card::marker { content: none; }

/* Franja de color por tipo de indicador */
.stat-card { border-top: 2px solid var(--a-line); }
.stat-card:nth-of-type(1) { border-top-color: var(--a-green); }
.stat-card:nth-of-type(2) { border-top-color: var(--a-blue); }
.stat-card:nth-of-type(3) { border-top-color: var(--a-violet); }
.stat-card:nth-of-type(4) { border-top-color: var(--a-amber); }

/* ==========================================================================
   Tablas
   ========================================================================== */
.admin-table-wrap {
  border: 1px solid var(--a-line);
  border-radius: var(--a-r-lg);
  background: var(--a-surface);
  overflow-x: auto;
}
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th {
  padding: 11px 12px !important;
  border-bottom: 1px solid var(--a-line);
  background: var(--a-surface-2);
  color: var(--a-ink-3) !important;
  font-family: var(--a-mono);
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.admin-table td {
  padding: 12px !important;
  border-bottom: 1px solid #eef2f8;
  color: var(--a-ink-2);
  font-size: var(--a-fs-sm) !important;
  vertical-align: middle;
}
.admin-table td strong { color: var(--a-ink); font-size: var(--a-fs-base) !important; font-weight: 600; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table tbody tr:hover td { background: #f7faff; }
.admin-table .num { text-align: right; white-space: nowrap; }

.table-toolbar {
  padding: 14px 16px;
  border: 1px solid var(--a-line);
  border-bottom: 0;
  border-radius: var(--a-r-lg) var(--a-r-lg) 0 0;
  background: var(--a-surface);
}
.table-toolbar + .admin-table-wrap { border-radius: 0 0 var(--a-r-lg) var(--a-r-lg); border-top: 0; }
.table-toolbar label {
  color: var(--a-ink-3);
  font-family: var(--a-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.table-toolbar input {
  height: 38px;
  border: 1px solid var(--a-line);
  border-radius: var(--a-r);
  background: var(--a-surface-2);
  font-size: var(--a-fs-base);
}
.table-toolbar input:focus { border-color: var(--a-blue); box-shadow: 0 0 0 3px rgba(10, 108, 255, 0.1); }

/* ==========================================================================
   Distintivos de estado
   ========================================================================== */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px !important;
  border-radius: 999px;
  font-family: var(--a-mono);
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.status-pill::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex: none;
}
.status-pill.success { color: #0b7a5a; background: #e6f7f1; }
.status-pill.info { color: var(--a-blue-deep); background: #e9f2ff; }
.status-pill.warning { color: var(--a-amber); background: #fef4e6; }
.status-pill.danger { color: var(--a-red); background: #fdedeb; }
.status-pill.neutral { color: #5b6a80; background: #eef2f7; }

/* ==========================================================================
   Formularios
   ========================================================================== */
.admin-form-card { padding: 22px; }
.admin-form-card label,
.field-label {
  color: var(--a-ink-2) !important;
  font-size: var(--a-fs-sm) !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em;
}
.admin-form-card label sup { color: var(--a-red); }
.optional-marker { color: var(--a-ink-3); font-weight: 500; }
.admin-form-card input,
.admin-form-card select,
.admin-form-card textarea {
  min-height: 42px;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid var(--a-line-strong);
  border-radius: var(--a-r);
  color: var(--a-ink);
  background: var(--a-surface);
  font-size: var(--a-fs-base) !important;
}
.admin-form-card textarea { min-height: 96px; }
.admin-form-card input:focus,
.admin-form-card select:focus,
.admin-form-card textarea:focus {
  border-color: var(--a-blue);
  box-shadow: 0 0 0 3px rgba(10, 108, 255, 0.1);
}
.form-card-head { border-bottom: 1px solid var(--a-line); }
.form-card-head h2 { font-size: 20px; letter-spacing: -0.025em; }
.form-actions { border-top: 1px solid var(--a-line); }
.form-actions > a { color: var(--a-ink-3) !important; font-size: var(--a-fs-base) !important; font-weight: 600; }
.form-help,
.required-help { color: var(--a-ink-3); font-size: var(--a-fs-sm); }
.check-label span { font-size: var(--a-fs-base); color: var(--a-ink-2); }

/* ==========================================================================
   Avisos, vacíos y acciones de fila
   ========================================================================== */
.admin-flash,
.admin-notice {
  border-radius: var(--a-r);
  font-size: var(--a-fs-base) !important;
  line-height: 1.55;
}
.admin-flash.success { color: #0b6b50; border: 1px solid #bfe7d7; background: #edfaf5; }
.admin-flash.error { color: #a3271c; border: 1px solid #f4c9c3; background: #fdf0ee; }

.empty-state,
.empty-inline,
.activity-empty {
  color: var(--a-ink-3) !important;
  font-size: var(--a-fs-base) !important;
}
.empty-state {
  padding: 44px 24px;
  border: 1px dashed var(--a-line-strong);
  border-radius: var(--a-r-lg);
  background: var(--a-surface-2);
  text-align: center;
}

.row-actions a,
.row-actions button {
  color: var(--a-blue-deep) !important;
  font-size: var(--a-fs-sm) !important;
  font-weight: 600 !important;
}
.row-actions button { color: var(--a-red) !important; }
.action-more-menu > a,
.action-more-menu > form > button { font-size: var(--a-fs-sm) !important; }

/* ==========================================================================
   Cotizaciones y fichas de orden
   ========================================================================== */
.quote-type-button {
  border: 1px solid var(--a-line);
  border-radius: var(--a-r-lg);
  background: var(--a-surface);
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.quote-type-button:hover { border-color: var(--a-blue); transform: translateY(-2px); }
.quote-type-button strong { color: var(--a-blue-deep); font-size: var(--a-fs-md); }
.quote-type-button span { color: var(--a-ink-3); font-size: var(--a-fs-sm); }
.quote-section-title {
  color: var(--a-ink-3);
  font-family: var(--a-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.summary-total { font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }

.sheet { padding: 22px; }
.sheet .head strong { font-family: var(--a-mono); letter-spacing: -0.02em; }
.order-detail-grid small,
.sheet small {
  color: var(--a-ink-3);
  font-family: var(--a-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.order-detail-grid strong,
.sheet strong { font-size: var(--a-fs-base); color: var(--a-ink); }

/* ==========================================================================
   Acceso
   ========================================================================== */
.login-body { background: radial-gradient(circle at 78% 18%, rgba(10, 108, 255, 0.28), transparent 42%), #05090f; }
.login-card {
  border: 1px solid rgba(140, 180, 240, 0.14);
  border-radius: 18px;
  background: #0a1120;
}
.login-copy p {
  color: var(--a-cyan) !important;
  font-family: var(--a-mono);
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
}
.login-copy h1 { font-size: 26px; letter-spacing: -0.03em; }
.login-copy span { color: #93a3ba; font-size: var(--a-fs-base); }
.login-form label { color: #b4c2d6; font-size: var(--a-fs-sm); font-weight: 600; }
.login-form input {
  min-height: 44px;
  border: 1px solid rgba(140, 180, 240, 0.16);
  border-radius: var(--a-r);
  background: #050a14;
  font-size: var(--a-fs-base);
}
.login-form input:focus { border-color: var(--a-cyan); box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.12); }
.login-back { color: #7b8ca5; font-size: var(--a-fs-sm); }

/* ==========================================================================
   Foco visible en todo el panel
   ========================================================================== */
.admin-app :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.login-body :where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--a-blue);
  outline-offset: 2px;
  border-radius: 6px;
}
.admin-sidebar :where(a, button):focus-visible { outline-color: var(--a-cyan); }

/* ==========================================================================
   Ajustes finos por ancho
   ========================================================================== */
@media (max-width: 1240px) and (min-width: 1041px) {
  .admin-app { grid-template-columns: 200px 1fr; }
  .admin-content { padding-inline: 22px; }
  .admin-table th, .admin-table td { padding: 10px !important; }
}

/* --- Columna de acciones siempre alcanzable ------------------------------
   Las listas de inventario, órdenes y papelera superan el ancho disponible en
   pantallas de 1280 px. En vez de obligar a desplazarse a ciegas, la última
   columna queda fijada al borde derecho. Solo aplica sobre 820 px: bajo ese
   ancho las tablas ya se convierten en tarjetas. */
@media (min-width: 821px) {
  .admin-table-wrap { position: relative; }
  .admin-table th:last-child,
  .admin-table td:last-child {
    position: sticky;
    right: 0;
    z-index: 1;
    background: var(--a-surface);
    box-shadow: -10px 0 14px -12px rgba(13, 22, 38, 0.45);
  }
  .admin-table th:last-child { background: var(--a-surface-2); z-index: 2; }
  .admin-table tbody tr:hover td:last-child { background: #f7faff; }
}

/* --- Detalles que quedaban sin estilo ------------------------------------ */

/* Botón nativo del filtro de órdenes: se veía como un control gris del sistema. */
.table-toolbar button,
form.table-toolbar button[type="submit"] {
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid var(--a-line-strong);
  border-radius: var(--a-r);
  color: var(--a-ink-2);
  background: var(--a-surface);
  font-size: var(--a-fs-base);
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.table-toolbar button:hover { border-color: var(--a-blue); color: var(--a-blue-deep); background: #f4f8ff; }

/* Resumen de finanzas: ingreso, gasto y resultado se distinguen por color. */
.finance-summary article {
  padding: 18px 20px;
  border: 1px solid var(--a-line);
  border-top: 2px solid var(--a-line);
  border-radius: var(--a-r-lg);
  background: var(--a-surface);
}
.finance-summary article small {
  display: block;
  color: var(--a-ink-3);
  font-family: var(--a-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.finance-summary article strong {
  display: block;
  margin-top: 8px;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -0.04em;
}
.finance-summary article:nth-child(1) { border-top-color: var(--a-green); }
.finance-summary article:nth-child(1) strong { color: var(--a-green); }
.finance-summary article:nth-child(2) { border-top-color: var(--a-red); }
.finance-summary article:nth-child(2) strong { color: var(--a-red); }
.finance-summary article:nth-child(3) { border-top-color: var(--a-blue); }
.finance-summary article:nth-child(3) strong { color: var(--a-ink); }

/* Las acciones de fila no deben partirse a mitad de palabra. */
.row-actions { flex-wrap: wrap; gap: 6px 12px; }
.row-actions a, .row-actions button { white-space: nowrap; }

/* --- Etiquetas de las tarjetas en móvil ----------------------------------
   En pantallas angostas cada fila de tabla se convierte en tarjeta y la
   etiqueta viene de data-label. Estaba en 9,5 px: demasiado pequeña para
   leerse cómodamente. Sube a 11 px con la monoespaciada del panel. */
@media (max-width: 820px) {
  .admin-table td::before {
    color: var(--a-ink-3) !important;
    font-family: var(--a-mono);
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
  }
  .admin-table td { font-size: var(--a-fs-base) !important; }
  .admin-table td strong { font-size: var(--a-fs-md) !important; }
  /* La columna fijada no aplica cuando la tabla ya es una lista de tarjetas. */
  .admin-table th:last-child,
  .admin-table td:last-child { position: static; box-shadow: none; }
}

/* Las etiquetas de los botones no deben partirse en dos líneas. */
.admin-primary,
.admin-secondary,
.action-chip { white-space: nowrap; }

/* ==========================================================================
   v3.0.0 — Capa final del panel
   El CSS del panel está construido por capas versionadas que ganan por orden
   de cascada. Esta sección añade lo nuevo de 3.0.0 y corrige dos problemas
   medidos en móvil, sin tocar las capas anteriores.
   ========================================================================== */

/* Equivalencia en pesos de un documento en UF, bajo el total. */
.quote-clp-hint {
  display: block;
  margin-top: 6px;
  color: var(--a-ink-3);
  font-family: var(--a-mono);
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  letter-spacing: 0;
}
.quote-grand-total .quote-clp-hint { color: rgba(255, 255, 255, 0.82); }

/* Ayuda bajo el selector de moneda y bajo el buscador de órdenes. */
.admin-form-card label > small,
.product-picker > small.product-picker-status {
  display: block;
  margin-top: 6px;
  color: var(--a-ink-3);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}

/* Detalle de físico / reservado / disponible en el buscador de productos. */
.product-picker-option-meta {
  font-family: var(--a-mono);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.product-picker-option.is-out-of-stock .product-picker-option-meta { color: #c0555f; }

@media (max-width: 820px) {
  /* Safari en iOS hace zoom automático sobre cualquier campo con menos de
     16 px al enfocarlo: el formulario se descuadra y hay que volver a
     alejarlo a mano. Medido: los 15 campos del formulario estaban en 13,5 px. */
  .admin-form-card input,
  .admin-form-card select,
  .admin-form-card textarea,
  .login-form input,
  .table-toolbar input,
  .table-toolbar select,
  .search-page-form input,
  .attachment-form input,
  .attachment-form select,
  .product-picker-search {
    font-size: 16px !important;
  }

  /* Texto de acciones que había quedado por debajo de lo legible en el móvil.
     Los rótulos cortos en mayúsculas siguen en su tamaño de diseño. */
  .sidebar-tool,
  .logout-link,
  .admin-topbar button,
  .row-actions a,
  .row-actions button,
  .action-chip,
  .danger-link {
    font-size: 12px !important;
  }
  .admin-user small { font-size: 11px !important; }
  .logout-form button { font-size: 12px !important; }

  /* Las filas del detalle se apilan: en 375 px no caben siete columnas. */
  .quote-item-row {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 14px !important;
  }
  .quote-item-row .item-description,
  .quote-item-row [data-quote-field="product"] { grid-column: 1 / -1 !important; }
  .quote-item-row [data-item-total] { grid-column: 1 / -1 !important; text-align: right; }
}

@media (max-width: 480px) {
  .quote-item-row { grid-template-columns: 1fr !important; }
  .quote-summary { grid-template-columns: 1fr !important; }
  .form-actions { flex-wrap: wrap; }
  .form-actions > button,
  .form-actions > a.admin-primary,
  .form-actions > a.admin-secondary { flex: 1 1 100%; justify-content: center; }
}

/* Los rótulos del resumen estaban en 9 px, junto a las dos cifras que más se
   consultan del documento. Suben a 11 px en todas las pantallas. */
.quote-summary small {
  font-size: 11px !important;
  letter-spacing: 0.08em;
}
.quote-summary .quote-clp-hint { letter-spacing: 0; }

/* ========================================================================== 
   v3.0.3 · Catálogo público de productos
   ========================================================================== */
.products-preview {
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  background: var(--night-800);
  color: var(--text);
}
.products-preview-card {
  display: grid;
  gap: 1.5rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid var(--line-dark);
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, rgba(77,147,255,.08), rgba(34,211,238,.03));
  box-shadow: var(--shadow-card);
}
.products-preview-copy h2 { margin: .35rem 0 1rem; max-width: 15ch; color: #fff; font-size: var(--fs-h2); line-height: 1.05; }
.products-preview-copy > p:last-of-type { max-width: 62ch; color: var(--text-dim); }
.products-preview-tags { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.25rem; }
.products-preview-tags span { padding: .45rem .7rem; border: 1px solid var(--line-dark); border-radius: var(--r-full); color: var(--text-dim); background: rgba(255,255,255,.03); font-size: var(--fs-xs); }
.products-preview-action { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 1.35rem; border: 1px solid rgba(77,147,255,.18); border-radius: var(--r-lg); background: rgba(4,7,15,.35); }
.products-preview-action strong { margin-top: 1rem; color: #fff; font-size: var(--fs-lg); }
.products-preview-action > span { margin: .35rem 0 1.25rem; color: var(--text-dim); font-size: var(--fs-sm); }
.products-preview-icon { display: grid; width: 3.5rem; height: 3.5rem; place-items: center; border-radius: 14px; color: var(--cyan); background: rgba(34,211,238,.08); border: 1px solid rgba(34,211,238,.18); }
.products-preview-icon svg { width: 1.8rem; height: 1.8rem; }

.catalog-page { background: var(--paper); }
.catalog-page .site-header { background: rgba(7,12,24,.9); border-bottom-color: rgba(140,180,240,.09); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.catalog-page .site-nav a[aria-current="page"] { color: #fff; background: rgba(255,255,255,.07); }
.catalog-page .mobile-nav a[aria-current="page"] { color: var(--cyan); }
.catalog-main { min-height: 70vh; }
.catalog-hero { position: relative; overflow: hidden; padding: calc(var(--header-h) + clamp(2.75rem,5vw,4.25rem)) 0 clamp(2.75rem,5vw,4rem); color: var(--text); background: radial-gradient(circle at 82% 22%, rgba(34,211,238,.13), transparent 30%), radial-gradient(circle at 65% 0%, rgba(10,108,255,.16), transparent 34%), linear-gradient(180deg, #070c18 0%, #0b1427 100%); border-bottom: 1px solid rgba(140,180,240,.1); }
.catalog-hero::after { content:""; position:absolute; inset:auto -12% -65% auto; width:min(560px,62vw); aspect-ratio:1; border-radius:50%; border:1px solid rgba(34,211,238,.08); box-shadow:0 0 0 55px rgba(10,108,255,.025),0 0 0 110px rgba(34,211,238,.018); pointer-events:none; }
.catalog-hero .shell { position: relative; z-index: 1; }
.catalog-hero .eyebrow { margin-bottom: .7rem; }
.catalog-hero h1 { margin: 0 0 .85rem; max-width: 19ch; color: #fff; font-size: clamp(2.25rem,5vw,4rem); line-height: 1.01; }
.catalog-hero p:last-child { max-width: 62ch; margin: 0; color: var(--text-dim); font-size: var(--fs-base); line-height: 1.65; }
.catalog-section { padding: clamp(2.25rem, 5vw, 4.5rem) 0 clamp(4rem,7vw,6rem); }
.catalog-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.catalog-card { overflow: hidden; min-width: 0; border: 1px solid var(--line-light); border-radius: var(--r-lg); background: #fff; box-shadow: 0 16px 38px -28px rgba(7,18,38,.45); transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base); }
.catalog-card:hover { transform: translateY(-3px); border-color: rgba(10,108,255,.22); box-shadow: 0 25px 48px -30px rgba(7,40,90,.48); }
.catalog-card-link { display: flex; height: 100%; flex-direction: column; }
.catalog-card-media { display: grid; min-height: 210px; place-items: center; overflow: hidden; background: linear-gradient(145deg,#eef4fb,#f9fbfe); border-bottom: 1px solid rgba(10,30,60,.06); }
.catalog-card-media img { width: 100%; height: 230px; object-fit: contain; padding: 1.15rem; }
.catalog-placeholder { display: grid; width: 100%; min-height: 220px; place-items: center; color: var(--blue-soft); background: radial-gradient(circle at 50% 35%, rgba(77,147,255,.13), transparent 40%); }
.catalog-placeholder svg { width: 3.8rem; height: 3.8rem; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.catalog-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.1rem; }
.catalog-card-meta { display: flex; align-items: center; justify-content: space-between; gap: .65rem; margin-bottom: .75rem; }
.catalog-card-meta > span:first-child { color: var(--blue-deep); font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.catalog-card h2 { margin: 0; color: var(--ink); font-size: var(--fs-h3); line-height: 1.25; }
.catalog-card p { margin: .65rem 0 1.1rem; color: var(--ink-soft); font-size: var(--fs-sm); }
.catalog-card-bottom { display: flex; align-items: end; justify-content: space-between; gap: .8rem; margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--line-light); }
.catalog-card-bottom strong { color: var(--ink); font-size: var(--fs-lg); }
.catalog-card-bottom span { color: var(--blue-deep); font-size: var(--fs-xs); font-weight: 700; }
.catalog-empty { padding: clamp(2rem, 6vw, 4rem); border: 1px solid var(--line-light); border-radius: var(--r-xl); background: #fff; text-align: center; }
.catalog-empty h1,.catalog-empty h2 { margin: .35rem auto .7rem; color: var(--ink); }
.catalog-empty p { max-width: 50ch; margin: 0 auto 1.3rem; color: var(--ink-soft); }

.product-detail-main { background: linear-gradient(180deg, var(--night-800) 0 19rem, var(--paper) 19rem); }
.product-detail-section { padding: calc(var(--header-h) + 2rem) 0 clamp(4rem, 8vw, 7rem); }
.catalog-breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.2rem 0 1rem; color: var(--text-dim); font-size: var(--fs-xs); }
.catalog-breadcrumb a:hover { color: #fff; }
.product-detail-layout { display: grid; gap: 1.25rem; overflow: hidden; border: 1px solid var(--line-light); border-radius: var(--r-xl); background: #fff; box-shadow: var(--shadow-lift); }
.product-detail-media { display: grid; min-height: 340px; place-items: center; overflow: hidden; background: linear-gradient(145deg,#eef4fb,#fbfdff); }
.product-detail-media > img { width: 100%; max-height: 560px; object-fit: contain; padding: clamp(1rem,4vw,2rem); }
.product-detail-gallery { display: flex; min-width: 0; flex-direction: column; background: linear-gradient(145deg,#eef4fb,#fbfdff); }
.product-detail-gallery .product-detail-media { flex: 1; }
.product-detail-thumbs { display: flex; gap: .65rem; overflow-x: auto; padding: .8rem 1rem 1rem; border-top: 1px solid rgba(10,30,60,.08); scrollbar-width: thin; }
.product-detail-thumb { width: 78px; height: 70px; flex: 0 0 78px; padding: .25rem; overflow: hidden; border: 1px solid #d8e3ef; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast); }
.product-detail-thumb:hover { transform: translateY(-1px); border-color: rgba(10,108,255,.42); }
.product-detail-thumb[aria-current="true"] { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(10,108,255,.13); }
.product-detail-thumb img { width: 100%; height: 100%; object-fit: contain; }
.product-detail-placeholder { min-height: 340px; }
.product-detail-placeholder svg { width: 5rem; height: 5rem; }
.product-detail-copy { padding: clamp(1.35rem,4vw,2.5rem); }
.product-detail-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.product-detail-copy h1 { margin: .85rem 0 .8rem; color: var(--ink); font-size: clamp(2rem,5vw,3.6rem); line-height: 1.02; }
.product-detail-price { display: flex; align-items: baseline; gap: .8rem; padding: .7rem 0 1.2rem; border-bottom: 1px solid var(--line-light); }
.product-detail-price strong { color: var(--blue-deep); font-size: clamp(1.55rem,3vw,2.2rem); }
.product-detail-price span { color: var(--muted); font-size: var(--fs-sm); }
.product-detail-description { padding: 1.25rem 0 .4rem; }
.product-detail-description h2 { margin: 0 0 .55rem; color: var(--ink); font-size: var(--fs-lg); }
.product-detail-description p { margin: 0; color: var(--ink-soft); }
.product-detail-note { padding: .8rem 1rem; border-radius: var(--r-md); color: var(--ink-soft); background: #f3f7fc; font-size: var(--fs-xs); }
.product-detail-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.35rem; }
.product-detail-actions .btn-ghost { border-color: rgba(8,17,31,.14); color: var(--ink); background: #fff; }

/* Campo de foto del catálogo dentro del panel administrativo. */
.product-image-admin { align-items: stretch !important; }
.product-image-admin-preview { display: flex; align-items: center; gap: .8rem; margin: .65rem 0 .75rem; padding: .65rem; border: 1px solid #d9e3ef; border-radius: 10px; background: #f8fbfe; }
.product-image-admin-preview img { width: 84px; height: 70px; object-fit: contain; border-radius: 8px; background: #fff; border: 1px solid #e4ebf3; }
.product-image-admin-preview span { color: #53657c; font-size: 12px; font-weight: 700; }
.product-image-admin input[type="file"] { width: 100%; }
.product-gallery-admin { display: grid; gap: 1rem; padding: 1rem; border: 1px solid #d9e3ef; border-radius: 12px; background: #fbfdff; }
.product-gallery-admin-head strong { display: block; color: #15253b; font-size: 14px; }
.product-gallery-admin-head span { display: block; margin-top: .25rem; color: #65758a; font-size: 12px; line-height: 1.45; }
.product-image-admin-preview.is-primary { border-color: rgba(10,108,255,.24); background: #f3f8ff; }
.product-image-admin-preview > span { display: grid; gap: .15rem; }
.product-image-admin-preview > span b { color: #16375f; }
.product-image-admin-preview > span small { color: #6a7a8d; font-weight: 500; }
.product-gallery-admin-existing { display: grid; gap: .65rem; }
.product-gallery-admin-existing > strong { color: #31445d; font-size: 12px; }
.product-gallery-admin-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(145px,1fr)); gap: .7rem; }
.product-gallery-admin-item { display: grid; gap: .5rem; padding: .55rem; border: 1px solid #dce5ef; border-radius: 10px; background: #fff; }
.product-gallery-admin-item > img { width: 100%; height: 105px; object-fit: contain; border-radius: 8px; background: #f6f9fc; }
.product-gallery-admin-item label { display: flex; align-items: center; gap: .4rem; color: #4f6178; font-size: 11px; font-weight: 700; cursor: pointer; }
.product-gallery-admin-item input { width: auto !important; margin: 0; }
.product-gallery-upload { padding-top: .85rem; border-top: 1px solid #e1e8f0; }
.product-gallery-upload .field-help { display: block; margin-top: .45rem; color: #6a7a8d; font-size: 11px; line-height: 1.45; }
.product-image-remove { display: flex; align-items: center; gap: .5rem; margin-top: .65rem; color: #6e3b42; font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.product-image-remove input { width: auto !important; }

@media (min-width: 700px) {
  .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
  .products-preview-card { grid-template-columns: minmax(0,1.35fr) minmax(270px,.65fr); align-items: stretch; }
}
@media (min-width: 1024px) {
  .catalog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .product-detail-layout { grid-template-columns: minmax(0,1.08fr) minmax(400px,.92fr); align-items: stretch; }
  .product-detail-media { min-height: 560px; }
  .product-detail-placeholder { min-height: 560px; }
}
