.venta-publica-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(31, 142, 241, 0.18), transparent 34%),
    radial-gradient(circle at top right, rgba(14, 165, 164, 0.16), transparent 28%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
  color: var(--text);
}

.venta-publica-shell {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 40px 0 56px;
}

.venta-publica-hero,
.venta-publica-section,
.venta-publica-status {
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)), var(--card);
  border: 1px solid var(--border);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.16);
}

.venta-publica-hero {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 20px;
}

.venta-publica-kicker {
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--accent-yellow);
  font-size: 0.78rem;
  font-weight: 700;
}

.venta-publica-description {
  max-width: 64ch;
  color: var(--muted);
}

.venta-publica-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.venta-publica-meta span,
.venta-publica-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 0.9rem;
}

.venta-publica-badge.is-highlight {
  background: rgba(14, 165, 164, 0.16);
  color: var(--accent-yellow-light);
}

.venta-publica-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.venta-publica-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.venta-publica-items,
.venta-publica-publicaciones {
  display: grid;
  gap: 14px;
}

.venta-publica-item,
.venta-publica-post {
  padding: 18px;
  border-radius: 18px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
}

.venta-publica-item {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.venta-publica-item h3,
.venta-publica-post h3 {
  margin: 0 0 8px;
}

.venta-publica-item p,
.venta-publica-post p {
  margin: 0;
  color: var(--muted);
}

.venta-publica-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 14px;
  color: var(--accent-yellow-light);
  font-weight: 700;
}

.venta-publica-item-badges {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}

.venta-publica-status {
  margin-bottom: 20px;
}

.venta-publica-status h2 {
  margin-top: 0;
}

.public-shell{
  max-width:1120px;
  margin:0 auto;
  padding:18px;
  display:grid;
  gap:16px;
}

.public-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.public-downloads{
  display:grid;
  gap:12px;
}

.public-card{
  background:var(--public-panel-bg);
  border:1px solid var(--public-panel-border);
  border-radius:18px;
  padding:16px;
  color:var(--public-panel-text);
  box-shadow:0 18px 38px var(--public-panel-shadow);
}

.public-download{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--public-panel-soft-border);
  border-radius:14px;
  padding:12px;
  background:var(--public-panel-soft-bg);
}

.public-note{
  color:var(--public-panel-muted);
}

.public-steps{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:10px;
}

.public-card-span-full{
  grid-column:1 / -1;
}

/* Landing descriptiva: tarjeta seleccionada con video */
.systems-page .systems-main {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
}

.systems-page .systems-status {
  margin: 10px 0 16px;
}

.systems-page .system-detail-card {
  border-radius: 22px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)), var(--card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 0;
}

.systems-page .system-detail-media {
  padding: 20px 18px;
  background:
    radial-gradient(circle at 15% 10%, rgba(31, 142, 241, 0.22), transparent 46%),
    radial-gradient(circle at 80% 40%, rgba(14, 165, 164, 0.18), transparent 52%),
    rgba(0,0,0,0.14);
  border-right: 1px solid rgba(255,255,255,0.08);
  display: grid;
  align-content: start;
  gap: 14px;
}

.systems-page .system-detail-media img {
  width: 100%;
  max-width: 240px;
  height: auto;
  margin: 6px auto 0;
  filter: drop-shadow(0 14px 26px rgba(0,0,0,0.28));
}

.systems-page .system-detail-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.14);
  color: var(--accent-yellow-light);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.72rem;
}

.systems-page .system-detail-caption {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.35;
}

.systems-page .system-detail-body {
  padding: 22px 22px 24px;
  display: grid;
  gap: 14px;
}

.systems-page .system-detail-kicker {
  margin: 0;
  color: var(--accent-yellow);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 800;
  font-size: 0.78rem;
}

.systems-page .system-detail-title {
  margin: 0;
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  line-height: 1.18;
}

.systems-page .system-detail-short {
  margin: 0;
  color: var(--muted);
  max-width: 72ch;
}

.systems-page .system-detail-video {
  display: grid;
  gap: 10px;
  margin-top: 6px;
}

.systems-page .system-detail-video-frame {
  position: relative;
  width: 100%;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.04);
  padding-top: 56.25%; /* 16:9 */
}

.systems-page .system-detail-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.systems-page .system-detail-video-link {
  color: var(--accent-yellow-light);
  font-weight: 800;
  text-decoration: none;
}

.systems-page .system-detail-video-link:hover {
  text-decoration: underline;
}

.systems-page .system-detail-points-wrap {
  margin-top: 4px;
  padding: 16px;
  border-radius: 18px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
}

.systems-page .system-detail-points-wrap h3 {
  margin: 0 0 10px;
  font-size: 1.05rem;
}

.systems-page .system-detail-points {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
  color: var(--text);
}

.systems-page .system-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 4px;
}

@media (max-width: 900px) {
  .systems-page .system-detail-card {
    grid-template-columns: 1fr;
  }
  .systems-page .system-detail-media {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    justify-items: center;
    text-align: center;
  }
  .systems-page .system-detail-body {
    padding: 18px 16px 20px;
  }
}

@media (max-width: 860px) {
  .venta-publica-shell {
    width: min(100% - 24px, 1180px);
    padding-top: 24px;
  }

  .venta-publica-hero,
  .venta-publica-item {
    flex-direction: column;
  }

  .venta-publica-grid {
    grid-template-columns: 1fr;
  }

  .venta-publica-item-badges {
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
  }
}

@media (max-width:900px){
  .public-grid{
    grid-template-columns:1fr;
  }

  .public-download{
    flex-direction:column;
    align-items:flex-start;
  }
}
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&family=Montserrat:wght@600;800&family=Inter:wght@400;700&display=swap');

/* Tema oscuro (Default, Azul oscuro elegante) */
:root, html[data-theme="dark"] {
  --bg: #0c1420;
  --bg-alt: #122033;
  --surface: #16253a;
  --surface-soft: #1d2f48;
  --card: #213651;
  --input-bg: #132238;
  --input-bg-soft: #162942;
  --muted: #9fb3cc;
  --text: #e8f0fb;
  --accent: #1f8ef1;
  --accent-2: #0ea5a4;
  --danger: #e45858;
  --success: #29b36b;
  --border: rgba(152,176,206,0.26);
  --focus: rgba(31,142,241,0.34);
  --accent-yellow: #ffd58a;
  --accent-yellow-light: #ffeac1;
  --form-surface-top: #1f3a52;
  --form-surface-bottom: #2c5576;
  --form-border: rgba(145,198,238,0.4);
  --form-input-bg: #0f2236;
  --page-gutter: clamp(10px, 2vw, 22px);
  --floating-menu-edge: 16px;
  --floating-menu-size: 44px;
  --floating-menu-panel-gap: 12px;
  --floating-menu-clearance: calc(var(--floating-menu-size) + var(--floating-menu-edge) + var(--floating-menu-panel-gap));
  --index-logo-size: 92px;
  --ambient-glow: rgba(34,67,107,0.35);
}

/* Tema Oscuro Violeta (Morado medianoche) */
html[data-theme="dark-violet"] {
  --bg: #130a1e;
  --bg-alt: #1c112b;
  --surface: #221434;
  --surface-soft: #2a1a40;
  --card: #32204c;
  --input-bg: #1c112b;
  --input-bg-soft: #241639;
  --muted: #b5a2cc;
  --text: #f1ebfa;
  --accent: #a361ef;
  --accent-2: #dc61ef;
  --danger: #ef617d;
  --success: #29b36b;
  --border: rgba(181,162,204,0.26);
  --focus: rgba(163,97,239,0.34);
  --accent-yellow: #ffd58a;
  --accent-yellow-light: #ffeac1;
  --form-surface-top: #2c1a44;
  --form-surface-bottom: #392257;
  --form-border: rgba(199,145,238,0.4);
  --form-input-bg: #160d22;
  --ambient-glow: rgba(126,72,187,0.34);
}

/* Tema Oscuro Esmeralda (Negro esmeralda/Cyberpunk) */
html[data-theme="dark-emerald"] {
  --bg: #051210;
  --bg-alt: #0a1f1b;
  --surface: #0e2b26;
  --surface-soft: #143b34;
  --card: #1b4a41;
  --input-bg: #081a17;
  --input-bg-soft: #0d2621;
  --muted: #8ebbaf;
  --text: #e1f5ee;
  --accent: #24d29a;
  --accent-2: #24d2c8;
  --danger: #e45858;
  --success: #24d29a;
  --border: rgba(142,187,175,0.26);
  --focus: rgba(36,210,154,0.34);
  --accent-yellow: #f4e861;
  --accent-yellow-light: #faf2aa;
  --form-surface-top: #153e37;
  --form-surface-bottom: #1e574d;
  --form-border: rgba(94,238,185,0.4);
  --form-input-bg: #071714;
  --ambient-glow: rgba(36,210,154,0.2);
}

/* Tema Oscuro Corporativo (azul sobrio del menu movil) */
html[data-theme="dark-corporate"] {
  --bg: #071525;
  --bg-alt: #0d2036;
  --surface: #122b47;
  --surface-soft: #19395b;
  --card: #20486d;
  --input-bg: #0b1d31;
  --input-bg-soft: #10263f;
  --muted: #a9bed5;
  --text: #f1f7ff;
  --accent: #3e9ef0;
  --accent-2: #19a7a6;
  --danger: #ff6b6b;
  --success: #35c27a;
  --border: rgba(169,190,213,0.28);
  --focus: rgba(62,158,240,0.3);
  --accent-yellow: #ffd58a;
  --accent-yellow-light: #ffe7b5;
  --form-surface-top: #163555;
  --form-surface-bottom: #1f4d79;
  --form-border: rgba(105,179,244,0.34);
  --form-input-bg: #0a1c2f;
  --ambient-glow: rgba(62,158,240,0.22);
}

/* Tema Negro Absoluto: interfaz empresarial sin luz ambiental */
html[data-theme="dark-absolute"] {
  --bg: #000000;
  --bg-alt: #030303;
  --surface: #070707;
  --surface-soft: #0d0d0d;
  --card: #111111;
  --input-bg: #050505;
  --input-bg-soft: #0a0a0a;
  --muted: #a8a8a8;
  --text: #f5f5f5;
  --accent: #d6d6d6;
  --accent-2: #8f8f8f;
  --danger: #ff5c5c;
  --success: #32d583;
  --border: rgba(255,255,255,0.16);
  --focus: rgba(255,255,255,0.18);
  --accent-yellow: #f2c94c;
  --accent-yellow-light: #ffe58f;
  --form-surface-top: #0a0a0a;
  --form-surface-bottom: #111111;
  --form-border: rgba(255,255,255,0.22);
  --form-input-bg: #030303;
  --ambient-glow: rgba(255,255,255,0.02);
}

/* Tema Obsidiana Profesional: negro profundo con acentos azul acero */
html[data-theme="dark-obsidian"] {
  --bg: #020407;
  --bg-alt: #060b12;
  --surface: #0a111b;
  --surface-soft: #101a27;
  --card: #142033;
  --input-bg: #050911;
  --input-bg-soft: #0b1320;
  --muted: #98a7bb;
  --text: #f2f6fb;
  --accent: #6aa3ff;
  --accent-2: #59d6c9;
  --danger: #ff6464;
  --success: #3ddc97;
  --border: rgba(139,161,190,0.22);
  --focus: rgba(106,163,255,0.24);
  --accent-yellow: #f0c96a;
  --accent-yellow-light: #ffe7a6;
  --form-surface-top: #0d1724;
  --form-surface-bottom: #111f31;
  --form-border: rgba(106,163,255,0.26);
  --form-input-bg: #050911;
  --ambient-glow: rgba(106,163,255,0.08);
}

.pcs-section-submenu{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 16px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:8px;
  background:color-mix(in srgb,var(--surface) 88%,var(--accent) 12%);
  box-shadow:var(--shadow);
}
.pcs-section-submenu button{
  border:1px solid var(--border);
  background:var(--surface-soft);
  color:var(--text);
  border-radius:8px;
  padding:9px 12px;
  font-weight:800;
  cursor:pointer;
  min-height:38px;
}
.pcs-section-submenu button.active{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--on-accent,#fff);
}
[data-pcs-submenu-section][hidden]{
  display:none !important;
}
[data-pcs-submenu-group][hidden]{
  display:none !important;
}
html[data-theme^="dark"] .pcs-section-submenu{
  background:color-mix(in srgb,var(--surface) 76%,#000 24%);
}
@media(max-width:640px){
  .pcs-section-submenu{
    overflow-x:auto;
    flex-wrap:nowrap;
    padding:8px;
  }
  .pcs-section-submenu button{
    white-space:nowrap;
  }
}

/* Override final del carrito: pantalla plana tipo tabla, sin relieves ni separaciones.
   Debe quedar al final para ganar sobre temas, modo tactil y estilos legacy posteriores. */
body.carrito-flat-page,
body.carrito-flat-page *{
  box-shadow:none !important;
  text-shadow:none !important;
  filter:none !important;
}

body.carrito-flat-page .container,
body.carrito-flat-page .form,
body.carrito-flat-page .card,
body.carrito-flat-page .advanced-card,
body.carrito-flat-page .empresa-section,
body.carrito-flat-page .carrito-workspace-card,
body.carrito-flat-page .carrito-primary-layout,
body.carrito-flat-page .carrito-primary-main,
body.carrito-flat-page .carrito-side-column,
body.carrito-flat-page .carrito-grid,
body.carrito-flat-page .carrito-grid-main,
body.carrito-flat-page .carrito-station-split,
body.carrito-flat-page .carrito-station-split-main,
body.carrito-flat-page .carrito-summary-card,
body.carrito-flat-page .carrito-item-card,
body.carrito-flat-page .carrito-payment-section-card,
body.carrito-flat-page .carrito-actions-card,
body.carrito-flat-page .carrito-worker-card,
body.carrito-flat-page .carrito-vip-card,
body.carrito-flat-page .carrito-payment-amounts-card,
body.carrito-flat-page .carrito-payment-qr-card,
body.carrito-flat-page #scannerPanel,
body.carrito-flat-page #stationCheckoutPanel,
body.carrito-flat-page #stationCartActionsCard,
body.carrito-flat-page #stationPaymentAmountsCard,
body.carrito-flat-page #stationPaymentQrCard,
body.carrito-flat-page #stationWorkerCommissionCard,
body.carrito-flat-page #stationVipAccessCard,
body.carrito-flat-page #carritoTotalsPanel,
body.carrito-flat-page #carritoSearchBlock,
body.carrito-flat-page #carritosList{
  border-radius:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body.carrito-flat-page .container{
  padding:0 !important;
}

body.carrito-flat-page .page-header{
  margin-bottom:0 !important;
}

body.carrito-flat-page .form,
body.carrito-flat-page .card,
body.carrito-flat-page .advanced-card,
body.carrito-flat-page .carrito-workspace-card{
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

body.carrito-flat-page .form,
body.carrito-flat-page .card,
body.carrito-flat-page .advanced-card{
  background:var(--surface) !important;
}

body.carrito-flat-page .form::before,
body.carrito-flat-page .advanced-card::before{
  display:none !important;
  content:none !important;
}

body.carrito-flat-page .container > *,
body.carrito-flat-page .carrito-primary-layout,
body.carrito-flat-page .carrito-primary-main,
body.carrito-flat-page .carrito-side-column,
body.carrito-flat-page .carrito-grid,
body.carrito-flat-page .carrito-grid-main,
body.carrito-flat-page .carrito-station-split,
body.carrito-flat-page .carrito-station-toolbar,
body.carrito-flat-page .form-actions{
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
}

body.carrito-flat-page .mt-6,
body.carrito-flat-page .mt-8,
body.carrito-flat-page .mt-10,
body.carrito-flat-page .mt-12,
body.carrito-flat-page .mt-14,
body.carrito-flat-page .mt-16,
body.carrito-flat-page .mt-20,
body.carrito-flat-page .mb-10,
body.carrito-flat-page .mb-12,
body.carrito-flat-page .mb-15,
body.carrito-flat-page .my-0-10,
body.carrito-flat-page .my-0-12,
body.carrito-flat-page .table-wrap-spaced,
body.carrito-flat-page .section-header-spaced,
body.carrito-flat-page .section-header-tight,
body.carrito-flat-page .carrito-actions-card .carrito-station-toolbar,
body.carrito-flat-page .carrito-item-card,
body.carrito-flat-page .carrito-catalog-card,
body.carrito-flat-page .carrito-summary-content,
body.carrito-flat-page .carrito-summary-pay-actions,
body.carrito-flat-page .carrito-vip-card .form-actions,
body.carrito-flat-page .carrito-vip-card .form-help{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body.carrito-flat-page .carrito-items-box,
body.carrito-flat-page .carrito-items-box--station-fixed,
body.carrito-flat-page .carrito-summary-row,
body.carrito-flat-page .carrito-summary-profile,
body.carrito-flat-page .carrito-station-toolbar,
body.carrito-flat-page .carrito-station-toolbar > button,
body.carrito-flat-page .carrito-station-toolbar > label,
body.carrito-flat-page .btn,
body.carrito-flat-page .form-input,
body.carrito-flat-page .form-textarea,
body.carrito-flat-page select{
  border-radius:0 !important;
}

/* Tema Oscuro Neon (alto contraste con acentos electricos) */
html[data-theme="dark-neon"] {
  --bg: #050712;
  --bg-alt: #090d22;
  --surface: #0d132b;
  --surface-soft: #111a38;
  --card: #141f42;
  --input-bg: #070b1a;
  --input-bg-soft: #0b1126;
  --muted: #a9b6e8;
  --text: #f4f7ff;
  --accent: #00e5ff;
  --accent-2: #ff2bd6;
  --danger: #ff4d7d;
  --success: #39ff88;
  --border: rgba(0,229,255,0.24);
  --focus: rgba(255,43,214,0.32);
  --accent-yellow: #faff00;
  --accent-yellow-light: #fcff91;
  --form-surface-top: #111c3e;
  --form-surface-bottom: #16144a;
  --form-border: rgba(0,229,255,0.42);
  --form-input-bg: #06091a;
  --ambient-glow: rgba(0,229,255,0.2);
}

/* Robot IA/secretaria: zona segura para no bloquear botones de las paginas. */
.robot-inline-visible .ai-chat-toggle-button.is-robot-avatar,
.robot-inline-visible .ai-chat-toggle-button.is-robot-avatar #robotAvatarGraphic,
.robot-inline-visible .ai-chat-toggle-button.is-robot-avatar .robot-3d-avatar,
.robot-inline-visible .ai-chat-toggle-button.is-robot-avatar .secretary-3d-avatar{
  pointer-events:none !important;
}

.robot-inline-visible .robot-inline-status,
.robot-inline-visible .robot-cloud-assistant,
.robot-inline-visible .robot-cloud-user{
  pointer-events:none !important;
}

.robot-inline-visible .robot-inline-chat-panel{
  right:clamp(176px, 18vw, 224px) !important;
  bottom:max(72px, env(safe-area-inset-bottom, 0px) + 56px) !important;
  width:min(390px, calc(100vw - clamp(320px, 36vw, 430px))) !important;
}

.robot-inline-visible .robot-cloud-input,
.robot-inline-visible .robot-assistant-actions,
.robot-inline-visible .robot-cloud-input *,
.robot-inline-visible .robot-assistant-actions *{
  pointer-events:auto !important;
}

.robot-inline-visible #robotHideBtn,
#robotShowBtn{
  pointer-events:auto !important;
  z-index:1686 !important;
}

@media (max-width: 900px){
  .robot-inline-visible .robot-inline-chat-panel{
    left:12px !important;
    right:112px !important;
    bottom:max(18px, env(safe-area-inset-bottom, 0px) + 12px) !important;
    width:auto !important;
    align-items:stretch !important;
    gap:8px !important;
  }

  .robot-inline-visible .robot-inline-status,
  .robot-inline-visible .robot-cloud-assistant,
  .robot-inline-visible .robot-cloud-input,
  .robot-inline-visible .robot-assistant-actions{
    width:100% !important;
    align-self:stretch !important;
  }

  .robot-inline-visible .robot-cloud-assistant{
    max-height:88px !important;
    overflow:auto !important;
    font-size:.8rem !important;
    padding:9px 10px !important;
  }

  .robot-inline-visible .robot-cloud-input{
    grid-template-columns:minmax(0,1fr) auto auto auto !important;
  }

  .robot-inline-visible #robotHideBtn{
    right:12px !important;
    bottom:max(134px, env(safe-area-inset-bottom, 0px) + 126px) !important;
  }
}

@media (max-width: 520px){
  .robot-inline-visible .ai-chat-toggle-button.is-robot-avatar{
    width:74px !important;
    height:90px !important;
    right:8px !important;
    bottom:max(8px, env(safe-area-inset-bottom, 0px) + 6px) !important;
    opacity:.86 !important;
  }

  .robot-inline-visible #robotAvatarGraphic,
  .robot-inline-visible .robot-3d-avatar,
  .robot-inline-visible .secretary-3d-avatar{
    width:74px !important;
    height:90px !important;
  }

  .robot-inline-visible .robot-inline-chat-panel{
    left:8px !important;
    right:90px !important;
    bottom:max(8px, env(safe-area-inset-bottom, 0px) + 6px) !important;
  }

  .robot-inline-visible .robot-inline-status{
    display:none !important;
  }

  .robot-inline-visible .robot-cloud-input{
    grid-template-columns:minmax(0,1fr) auto auto auto !important;
    padding:6px !important;
    gap:5px !important;
  }

  .robot-inline-visible .robot-cloud-input textarea{
    min-height:34px !important;
    max-height:84px !important;
    font-size:.84rem !important;
  }

  .robot-inline-visible .robot-cloud-input button{
    min-height:34px !important;
    padding-inline:7px !important;
    font-size:.74rem !important;
  }

  .robot-inline-visible .robot-cloud-input .robot-inline-mic,
  .robot-inline-visible .robot-cloud-input .robot-inline-stop-voice{
    width:30px !important;
    min-width:30px !important;
  }

  .robot-inline-visible #robotHideBtn{
    right:8px !important;
    bottom:max(104px, env(safe-area-inset-bottom, 0px) + 98px) !important;
    max-width:86px !important;
    min-height:30px !important;
    padding:4px 7px !important;
    font-size:.68rem !important;
    line-height:1.1 !important;
    text-align:center !important;
  }
}

/* Iconos de menu: se aplican al final para que ningun ajuste movil los convierta en iconos gigantes o monocromaticos. */
.admin-sidebar .nav a img.icon{
  width:28px !important;
  height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  flex:0 0 28px !important;
  background:var(--menu-icon-bg,#e0f2fe) !important;
  border:1px solid var(--menu-icon-border,rgba(14,165,233,.28)) !important;
  border-radius:8px !important;
  padding:5px !important;
  box-sizing:border-box !important;
  filter:none !important;
}

.page-shell{
  display:grid;
  gap:16px;
  padding:16px;
}

.two-col-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}

.three-col-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
}

.data-table{
  width:100%;
  border-collapse:collapse;
  font-size:.94rem;
}

.data-table th,
.data-table td{
  padding:10px 12px;
  border-bottom:1px solid rgba(0,0,0,.08);
  text-align:left;
  vertical-align:top;
}

.data-table thead th{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#4b5563;
}

/* Ultimos movimientos de caja: lectura movil sin texto apilado */
.caja-movements-page .card{overflow:hidden}
.caja-movements-page .table{width:100%;table-layout:auto}
.caja-movements-page .table th,
.caja-movements-page .table td{width:auto;white-space:normal;word-break:normal;overflow-wrap:break-word}
.caja-movements-page .table td:nth-child(1),
.caja-movements-page .table td:nth-child(3),
.caja-movements-page .table td:nth-child(5){white-space:nowrap}

@media (max-width: 640px){
  .caja-movements-page{overflow-x:hidden}
  .caja-movements-page .container{width:calc(100% - 16px);margin:8px;padding:0}
  .caja-movements-page .header{align-items:flex-start;gap:8px}
  .caja-movements-page h1{font-size:1rem !important;line-height:1.18}
  .caja-movements-page h2{font-size:.98rem;line-height:1.2;margin:14px 0 8px}
  .caja-movements-page .table{
    display:block;
    width:100%;
    min-width:0;
    margin-top:8px;
    overflow:visible;
  }
  .caja-movements-page .table thead{display:none}
  .caja-movements-page .table tbody,
  .caja-movements-page .table tr,
  .caja-movements-page .table td{display:block;width:100%;min-width:0}
  .caja-movements-page .table tr{
    margin:0 0 10px;
    padding:10px;
    border:1px solid var(--content-soft-border);
    border-radius:10px;
    background:var(--content-soft-bg);
  }
  .caja-movements-page .table td{
    display:grid;
    grid-template-columns:minmax(96px, 36%) minmax(0, 1fr);
    gap:8px;
    align-items:start;
    padding:7px 0;
    border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed;
    line-height:1.25;
  }
  .caja-movements-page .table td:last-child{border-bottom:0}
  .caja-movements-page .table td::before{
    content:attr(data-label);
    color:var(--muted);
    font-weight:800;
    font-size:.78rem;
    line-height:1.2;
  }
}

/* Modo claro (Blanco crudo/Azul corporativo) */
html[data-theme="light"] {
  --bg: #f3f6fb;
  --bg-alt: #f9fbff;
  --surface: #ffffff;
  --surface-soft: #f4f7fc;
  --card: #ffffff;
  --input-bg: #ffffff;
  --input-bg-soft: #f8fbff;
  --muted: #52627a;
  --text: #10243f;
  --accent: #0f6fcb;
  --accent-2: #0c8c8b;
  --danger: #c33a3a;
  --success: #1f8f54;
  --border: rgba(15,35,64,0.16);
  --focus: rgba(15,111,203,0.24);
  --accent-yellow: #d9ad58;
  --accent-yellow-light: #f3ddaf;
  --form-surface-top: #edf5ff;
  --form-surface-bottom: #dbeaff;
  --form-border: rgba(41,94,152,0.24);
  --form-input-bg: #ffffff;
  --ambient-glow: rgba(120,175,233,0.24);
}

/* Tema Claro Rosa (Tonos pastel cálidos) */
html[data-theme="light-rose"] {
  --bg: #fbf5f6;
  --bg-alt: #fdf8f9;
  --surface: #ffffff;
  --surface-soft: #fdf1f3;
  --card: #ffffff;
  --input-bg: #ffffff;
  --input-bg-soft: #fff5f7;
  --muted: #7a525c;
  --text: #3f101a;
  --accent: #cb0f56;
  --accent-2: #cb0f2e;
  --danger: #dc2626;
  --success: #1f8f54;
  --border: rgba(64,15,26,0.16);
  --focus: rgba(203,15,86,0.24);
  --accent-yellow: #d99a58;
  --accent-yellow-light: #f3cfaf;
  --form-surface-top: #ffedf2;
  --form-surface-bottom: #ffdbe5;
  --form-border: rgba(152,41,75,0.24);
  --form-input-bg: #ffffff;
  --ambient-glow: rgba(230,153,182,0.24);
}

/* Tema Claro Dorado (Blanco con dorado energético) */
html[data-theme="light-gold"] {
  --bg: #fbfaf5;
  --bg-alt: #fdfcf8;
  --surface: #ffffff;
  --surface-soft: #fcf7e8;
  --card: #ffffff;
  --input-bg: #ffffff;
  --input-bg-soft: #fbf8f0;
  --muted: #7a6e52;
  --text: #3f3510;
  --accent: #b58d04;
  --accent-2: #b56c04;
  --danger: #dc2626;
  --success: #1f8f54;
  --border: rgba(64,54,15,0.16);
  --focus: rgba(181,141,4,0.24);
  --accent-yellow: #d9ad58;
  --accent-yellow-light: #f3ddaf;
  --form-surface-top: #fffbe6;
  --form-surface-bottom: #fff7cc;
  --form-border: rgba(152,126,41,0.24);
  --form-input-bg: #ffffff;
  --ambient-glow: rgba(224,196,97,0.22);
}

/* Tema Claro Madera (calido, legible y con veta suave) */
html[data-theme="light-wood"] {
  --bg: #f3e4cf;
  --bg-alt: #fff5e6;
  --surface: #fff8ed;
  --surface-soft: #f4dfbf;
  --card: #fffaf2;
  --input-bg: #fffdf8;
  --input-bg-soft: #f9ead5;
  --muted: #715b3e;
  --text: #352312;
  --accent: #8f5a24;
  --accent-2: #b9792d;
  --danger: #b83d2f;
  --success: #2f7d46;
  --border: rgba(93,58,24,0.22);
  --focus: rgba(185,121,45,0.26);
  --accent-yellow: #9d6425;
  --accent-yellow-light: #d9a867;
  --form-surface-top: #fff0da;
  --form-surface-bottom: #eecb9c;
  --form-border: rgba(121,78,34,0.28);
  --form-input-bg: #fffaf2;
  --ambient-glow: rgba(166,105,45,0.2);
}

html[data-theme="dark"],
html[data-theme="dark-violet"],
html[data-theme="dark-emerald"],
html[data-theme="dark-corporate"],
html[data-theme="dark-absolute"],
html[data-theme="dark-obsidian"],
html[data-theme="dark-neon"] {
  --btn-primary-top: #2a9af7;
  --btn-primary-text: #f7fbff;
  --btn-primary-border: rgba(11,73,133,0.45);
  --btn-primary-shadow: rgba(7,27,55,0.38);
  --btn-add-top: #17b8b7;
  --btn-add-text: #f5fbfb;
  --btn-add-border: rgba(6,84,83,0.45);
  --btn-danger-text: #ffffff;
  --table-head-bg: rgba(15,34,56,0.44);
  --table-row-hover-start: rgba(36,76,122,0.2);
  --table-row-hover-end: rgba(24,44,71,0.18);
  --sidebar-active-end: #1475cc;
  --sidebar-active-border: rgba(20,95,162,0.6);
  --sidebar-active-shadow: rgba(7,31,58,0.42);
  --readonly-bg: rgba(255,255,255,0.06);
  --toggle-hover-bg: rgba(255,255,255,0.08);
  --login-title-color: #f5f5dc;
  --login-link-color: #ffffff;
  --portal-header-start: rgba(13,26,44,0.85);
  --portal-header-end: rgba(12,20,32,0.9);
  --portal-title-color: #f5f5dc;
  --portal-cta-bg: rgba(255,255,255,0.92);
  --portal-cta-color: #13213b;
  --portal-cta-border: rgba(255,255,255,0.62);
  --portal-cta-shadow: rgba(5,11,22,0.24);
  --portal-login-border: rgba(255,255,255,0.14);
  --portal-login-color: #fff4dd;
  --portal-login-shadow: rgba(5,12,24,0.34);
  --portal-login-gloss: linear-gradient(135deg, rgba(255,255,255,0.14), rgba(255,255,255,0.02) 48%, rgba(255,209,102,0.12));
  --portal-login-text-shadow: rgba(0,0,0,0.24);
  --public-panel-border: rgba(166,196,225,0.18);
  --public-panel-shadow: rgba(5,12,24,0.38);
  --public-panel-bg: linear-gradient(180deg, rgba(22,37,58,0.96), rgba(13,24,39,0.98));
  --public-panel-text: #f5f8ff;
  --public-panel-muted: rgba(232,240,251,0.9);
  --public-panel-accent: #8fd7ff;
  --public-panel-soft-bg: rgba(255,255,255,0.06);
  --public-panel-soft-border: rgba(255,255,255,0.08);
  --public-hero-bg: radial-gradient(circle at top right, rgba(255,255,255,0.12), rgba(255,255,255,0) 30%), linear-gradient(145deg, rgba(15,51,96,0.96), rgba(10,27,54,0.96));
  --public-hero-badge-bg: rgba(255,255,255,0.12);
  --public-hero-badge-border: rgba(255,255,255,0.18);
  --public-hero-badge-text: #f5f8ff;
  --public-hero-title: #fff4dd;
  --public-hero-copy: rgba(241,247,255,0.92);
  --content-soft-bg: rgba(255,255,255,0.04);
  --content-soft-bg-2: rgba(255,255,255,0.06);
  --content-soft-border: rgba(255,255,255,0.08);
  --content-strong-bg: rgba(12,20,35,0.92);
  --content-hero-title: #ffffff;
  --content-hero-copy: rgba(255,255,255,0.92);
  --content-hero-pill-bg: rgba(255,255,255,0.12);
  --content-hero-pill-text: #f5f8ff;
  --content-hero-pill-border: rgba(255,255,255,0.18);
  --status-empty: var(--muted);
  --status-danger: #ff8e8a;
  --status-warning: #ffd58a;
  --status-success: #80e6b4;
  --portal-card-solid-bg: #ffffff;
  --portal-card-solid-text: #10243f;
  --portal-card-solid-copy: #2a3b45;
  --portal-card-solid-border: rgba(15,35,64,0.06);
  --portal-card-solid-shadow: rgba(16,32,48,0.08);
  --portal-card-more-bg: rgba(15,35,64,0.06);
  --portal-card-more-border: rgba(15,35,64,0.1);
  --empresa-card-title: #17324b;
  --empresa-card-copy: #4f6171;
  --empresa-card-muted: #6d7785;
  --empresa-card-chip-bg: rgba(23,50,75,0.08);
  --empresa-card-chip-text: #17324b;
  --empresa-card-watermark-bg: rgba(255,255,255,0.58);
  --empresa-card-watermark-border: rgba(23,50,75,0.08);
  --empresa-action-bg: #ffffff;
  --empresa-action-text: #183153;
  --empresa-action-hover-text: #0f2745;
  --station-card-title: color-mix(in srgb, var(--text) 86%, var(--accent) 14%);
  --station-card-copy: color-mix(in srgb, var(--text) 68%, var(--muted) 32%);
  --youtube-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, #7f1d1d 10%), color-mix(in srgb, var(--surface-soft) 86%, #b91c1c 14%));
  --youtube-card-border: color-mix(in srgb, var(--danger) 34%, var(--border) 66%);
  --youtube-card-title: color-mix(in srgb, var(--text) 72%, #ff8e8a 28%);
  --youtube-card-copy: color-mix(in srgb, var(--text) 68%, var(--muted) 32%);
  --youtube-card-soft: color-mix(in srgb, var(--text) 70%, var(--danger) 30%);
  --youtube-frame-bg: var(--surface);
  --youtube-action-bg: rgba(12,20,32,0.92);
  --youtube-action-text: color-mix(in srgb, var(--text) 78%, var(--danger) 22%);
  --youtube-overlay-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, #7f1d1d 6%), color-mix(in srgb, var(--surface-soft) 88%, #b91c1c 12%));
  --notes-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, #8a6a00 10%), color-mix(in srgb, var(--surface-soft) 86%, #b0891d 14%));
  --notes-card-border: color-mix(in srgb, #ffd58a 28%, var(--border) 72%);
  --notes-card-title: color-mix(in srgb, var(--text) 76%, #ffd58a 24%);
  --notes-card-copy: color-mix(in srgb, var(--text) 68%, var(--muted) 32%);
  --notes-card-soft-text: color-mix(in srgb, var(--text) 72%, #ffd58a 28%);
  --notes-card-panel-bg: rgba(255,255,255,0.07);
  --notes-card-panel-strong-bg: rgba(255,255,255,0.11);
  --notes-card-panel-border: rgba(255,213,138,0.18);
  --notes-card-countdown-text: color-mix(in srgb, var(--text) 70%, #ffd58a 30%);
  --notes-card-alert-text: color-mix(in srgb, var(--text) 68%, var(--danger) 32%);
  --notes-card-expired-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 86%, #8f1f1f 14%), color-mix(in srgb, var(--surface-soft) 82%, #b91c1c 18%));
}

html[data-theme="light"],
html[data-theme="light-rose"],
html[data-theme="light-gold"],
html[data-theme="light-wood"] {
  --btn-primary-top: #3e9ef0;
  --btn-primary-text: #ffffff;
  --btn-primary-border: rgba(15,111,203,0.32);
  --btn-primary-shadow: rgba(15,111,203,0.18);
  --btn-add-top: #19a7a6;
  --btn-add-text: #ffffff;
  --btn-add-border: rgba(12,140,139,0.28);
  --btn-danger-text: #ffffff;
  --table-head-bg: rgba(15,35,64,0.08);
  --table-row-hover-start: rgba(15,111,203,0.08);
  --table-row-hover-end: rgba(12,140,139,0.05);
  --sidebar-active-end: color-mix(in srgb, var(--accent) 78%, white 22%);
  --sidebar-active-border: rgba(15,111,203,0.24);
  --sidebar-active-shadow: rgba(15,111,203,0.18);
  --readonly-bg: rgba(15,35,64,0.05);
  --toggle-hover-bg: rgba(15,35,64,0.08);
  --login-title-color: var(--text);
  --login-link-color: var(--accent);
  --portal-header-start: color-mix(in srgb, var(--surface-soft) 92%, white 8%);
  --portal-header-end: color-mix(in srgb, var(--surface) 92%, white 8%);
  --portal-title-color: var(--text);
  --portal-cta-bg: color-mix(in srgb, var(--surface) 94%, white 6%);
  --portal-cta-color: var(--text);
  --portal-cta-border: rgba(15,35,64,0.14);
  --portal-cta-shadow: rgba(15,35,64,0.12);
  --portal-login-border: rgba(15,35,64,0.12);
  --portal-login-color: var(--text);
  --portal-login-shadow: rgba(15,35,64,0.12);
  --portal-login-gloss: linear-gradient(135deg, rgba(255,255,255,0.65), rgba(255,255,255,0.08) 48%, rgba(15,111,203,0.08));
  --portal-login-text-shadow: rgba(255,255,255,0.1);
  --public-panel-border: rgba(15,35,64,0.12);
  --public-panel-shadow: rgba(15,35,64,0.12);
  --public-panel-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 92%, white 8%), color-mix(in srgb, var(--surface) 96%, white 4%));
  --public-panel-text: var(--text);
  --public-panel-muted: var(--muted);
  --public-panel-accent: var(--accent);
  --public-panel-soft-bg: rgba(15,35,64,0.04);
  --public-panel-soft-border: rgba(15,35,64,0.08);
  --public-hero-bg: radial-gradient(circle at top right, rgba(15,111,203,0.14), rgba(15,111,203,0) 30%), linear-gradient(145deg, color-mix(in srgb, var(--surface-soft) 94%, white 6%), color-mix(in srgb, var(--surface) 97%, white 3%));
  --public-hero-badge-bg: rgba(15,111,203,0.08);
  --public-hero-badge-border: rgba(15,111,203,0.14);
  --public-hero-badge-text: var(--accent);
  --public-hero-title: var(--text);
  --public-hero-copy: var(--muted);
  --content-soft-bg: rgba(15,35,64,0.04);
  --content-soft-bg-2: rgba(15,35,64,0.06);
  --content-soft-border: rgba(15,35,64,0.1);
  --content-strong-bg: rgba(255,255,255,0.96);
  --content-hero-title: var(--text);
  --content-hero-copy: var(--muted);
  --content-hero-pill-bg: rgba(15,111,203,0.08);
  --content-hero-pill-text: var(--accent);
  --content-hero-pill-border: rgba(15,111,203,0.14);
  --status-empty: var(--muted);
  --status-danger: var(--danger);
  --status-warning: #9c6a16;
  --status-success: var(--success);
  --portal-card-solid-bg: var(--surface);
  --portal-card-solid-text: var(--text);
  --portal-card-solid-copy: color-mix(in srgb, var(--text) 78%, var(--muted) 22%);
  --portal-card-solid-border: rgba(15,35,64,0.1);
  --portal-card-solid-shadow: rgba(16,32,48,0.08);
  --portal-card-more-bg: rgba(15,35,64,0.06);
  --portal-card-more-border: rgba(15,35,64,0.1);
  --empresa-card-title: var(--text);
  --empresa-card-copy: color-mix(in srgb, var(--text) 72%, var(--muted) 28%);
  --empresa-card-muted: var(--muted);
  --empresa-card-chip-bg: rgba(15,35,64,0.08);
  --empresa-card-chip-text: var(--text);
  --empresa-card-watermark-bg: rgba(255,255,255,0.88);
  --empresa-card-watermark-border: rgba(15,35,64,0.08);
  --empresa-action-bg: var(--surface);
  --empresa-action-text: var(--text);
  --empresa-action-hover-text: var(--accent);
  --station-card-title: color-mix(in srgb, var(--text) 88%, var(--accent) 12%);
  --station-card-copy: color-mix(in srgb, var(--text) 70%, var(--muted) 30%);
  --youtube-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 98%, #fff7f7 2%), color-mix(in srgb, var(--surface-soft) 84%, #fde8e8 16%));
  --youtube-card-border: rgba(201, 62, 62, 0.2);
  --youtube-card-title: color-mix(in srgb, var(--danger) 82%, var(--text) 18%);
  --youtube-card-copy: color-mix(in srgb, var(--text) 64%, var(--muted) 36%);
  --youtube-card-soft: color-mix(in srgb, var(--text) 72%, var(--danger) 28%);
  --youtube-frame-bg: var(--surface);
  --youtube-action-bg: rgba(255,255,255,0.95);
  --youtube-action-text: color-mix(in srgb, var(--danger) 82%, var(--text) 18%);
  --youtube-overlay-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, #fff7f7 4%), color-mix(in srgb, var(--surface-soft) 84%, #f8ecec 16%));
  --notes-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, #fffdf2 4%), color-mix(in srgb, var(--surface-soft) 80%, #f8f0c9 20%));
  --notes-card-border: rgba(176, 137, 29, 0.22);
  --notes-card-title: color-mix(in srgb, var(--text) 70%, #9c6a16 30%);
  --notes-card-copy: color-mix(in srgb, var(--text) 66%, #8b6e16 34%);
  --notes-card-soft-text: color-mix(in srgb, var(--text) 72%, #7a5e08 28%);
  --notes-card-panel-bg: rgba(255,255,255,0.84);
  --notes-card-panel-strong-bg: rgba(255,255,255,0.96);
  --notes-card-panel-border: rgba(122, 96, 8, 0.12);
  --notes-card-countdown-text: color-mix(in srgb, var(--text) 72%, #8a6a00 28%);
  --notes-card-alert-text: color-mix(in srgb, var(--danger) 88%, var(--text) 12%);
  --notes-card-expired-bg: linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, #fff1f1 6%), color-mix(in srgb, var(--surface-soft) 82%, #ffd6d6 18%));
}

*{box-sizing:border-box}
html,body{
  height:100%;
  margin:0;
  padding:0;
  background:
    radial-gradient(circle at 10% 5%, var(--ambient-glow) 0, transparent 36%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
  color:var(--text);
  font-family:"Segoe UI Variable","Segoe UI",Tahoma,sans-serif;
}

html[data-theme="dark-neon"] body{
  background:
    radial-gradient(circle at 8% 8%, rgba(0,229,255,0.2), transparent 28%),
    radial-gradient(circle at 88% 12%, rgba(255,43,214,0.18), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}

html[data-theme="dark-neon"] .card,
html[data-theme="dark-neon"] .admin-sidebar,
html[data-theme="dark-neon"] .floating-menu .fm-panel{
  box-shadow:0 18px 42px rgba(0,0,0,0.34), 0 0 24px rgba(0,229,255,0.08);
}

html[data-theme="dark-neon"] .btn,
html[data-theme="dark-neon"] .admin-sidebar .nav a.active{
  text-shadow:0 0 10px rgba(244,247,255,0.38);
  box-shadow:0 10px 24px rgba(0,229,255,0.18), 0 0 18px rgba(255,43,214,0.1);
}

html[data-theme="dark-absolute"] body{
  background:#000;
}

html[data-theme="dark-absolute"] .card,
html[data-theme="dark-absolute"] .admin-sidebar,
html[data-theme="dark-absolute"] .floating-menu .fm-panel,
html[data-theme="dark-absolute"] .floating-menu .fm-submenu,
html[data-theme="dark-absolute"] .floating-menu .fm-submenu-popup,
html[data-theme="dark-absolute"] .theme-selector-popup{
  box-shadow:none;
}

html[data-theme="dark-absolute"] .btn,
html[data-theme="dark-absolute"] .admin-sidebar .nav a.active{
  color:#fff;
  text-shadow:none;
}

html[data-theme="dark-obsidian"] body{
  background:
    radial-gradient(circle at 8% 6%, rgba(106,163,255,0.08), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}

html[data-theme="dark-obsidian"] .card,
html[data-theme="dark-obsidian"] .admin-sidebar,
html[data-theme="dark-obsidian"] .floating-menu .fm-panel{
  box-shadow:0 18px 42px rgba(0,0,0,0.42);
}

html[data-theme="light-wood"] body{
  background:
    linear-gradient(90deg, rgba(111,72,33,0.05) 0 1px, transparent 1px 18px),
    linear-gradient(105deg, rgba(142,88,32,0.08), transparent 28%, rgba(255,255,255,0.18) 42%, transparent 62%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}

html[data-theme="light-wood"] .card,
html[data-theme="light-wood"] .admin-sidebar,
html[data-theme="light-wood"] .floating-menu .fm-panel{
  background:
    linear-gradient(120deg, rgba(132,83,36,0.08), transparent 32%, rgba(255,255,255,0.45) 54%, transparent 78%),
    linear-gradient(180deg, var(--surface), var(--surface-soft));
  box-shadow:0 18px 38px rgba(93,58,24,0.12);
}

html[data-theme="light-wood"] .btn.secondary,
html[data-theme="light-wood"] .admin-sidebar .nav a,
html[data-theme="light-wood"] .form-input,
html[data-theme="light-wood"] .form-textarea{
  border-color:rgba(93,58,24,0.24);
}
img{max-width:100%;height:auto}
.container{max-width:none;width:calc(100% - (var(--page-gutter) * 2));margin:var(--page-gutter);padding:10px}
.card{
  background:linear-gradient(180deg, var(--surface-soft), var(--surface));
  border:1px solid var(--border);
  padding:14px;
  border-radius:12px;
  box-shadow:0 16px 34px rgba(5,10,20,0.42);
}
.carrito-flat-page .card,
.carrito-flat-page .form,
.carrito-flat-page .advanced-card,
.carrito-flat-page .carrito-workspace-card,
.carrito-flat-page .carrito-summary-card,
.carrito-flat-page .carrito-item-card,
.carrito-flat-page .carrito-payment-section-card,
.carrito-flat-page .carrito-actions-card,
.carrito-flat-page .carrito-worker-card,
.carrito-flat-page .carrito-vip-card,
.carrito-flat-page .carrito-payment-amounts-card,
.carrito-flat-page .carrito-payment-qr-card{
  box-shadow:none !important;
}
.carrito-flat-page .btn{
  box-shadow:none !important;
}
.carrito-flat-page .form,
.carrito-flat-page .card,
.carrito-flat-page .advanced-card{
  border-radius:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.carrito-flat-page .container > .form,
.carrito-flat-page #carritosList,
.carrito-flat-page .carrito-workspace-card,
.carrito-flat-page .carrito-grid,
.carrito-flat-page .carrito-primary-layout,
.carrito-flat-page .carrito-primary-main,
.carrito-flat-page .carrito-side-column,
.carrito-flat-page .carrito-station-split{
  gap:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.carrito-flat-page .carrito-primary-layout{
  column-gap:0 !important;
  row-gap:0 !important;
}
.carrito-flat-page .carrito-side-column{
  gap:0 !important;
}
.carrito-flat-page .card + .card,
.carrito-flat-page .form + .form,
.carrito-flat-page .form + .card,
.carrito-flat-page .card + .form{
  margin-top:0 !important;
}
.carrito-flat-page .card.mt-10,
.carrito-flat-page .card.mt-12,
.carrito-flat-page .card.mt-14,
.carrito-flat-page .form.mt-10,
.carrito-flat-page .form.mt-12,
.carrito-flat-page .form.mt-14,
.carrito-flat-page .carrito-grid.mt-14,
.carrito-flat-page .carrito-station-split.mt-12{
  margin-top:0 !important;
}
.carrito-flat-page .carrito-items-box,
.carrito-flat-page .carrito-summary-row,
.carrito-flat-page .carrito-summary-profile,
.carrito-flat-page .carrito-payment-section-card,
.carrito-flat-page .carrito-station-toolbar,
.carrito-flat-page .carrito-station-toolbar > button,
.carrito-flat-page .carrito-station-toolbar > label{
  border-radius:0 !important;
}
h1,h2,h3{margin:0 0 12px 0}
p{color:var(--muted);line-height:1.5}
.btn{display:inline-block;padding:8px 12px;background:linear-gradient(180deg, var(--btn-primary-top), var(--accent));color:var(--btn-primary-text);border-radius:8px;text-decoration:none;font-weight:700;border:1px solid var(--btn-primary-border);box-shadow:0 8px 18px var(--btn-primary-shadow);font-size:0.95rem;line-height:1;text-align:center;white-space:normal}
.btn.secondary{background:var(--surface-soft);border:1px solid var(--border);color:var(--text)}
/* Botón 'Agregar' usado en formularios CRUD */
.btn.add{background:linear-gradient(180deg,var(--btn-add-top),var(--accent-2));color:var(--btn-add-text);margin-bottom:12px;border-color:var(--btn-add-border)}
.btn:focus, .input:focus, .form-input:focus {outline: none; box-shadow: 0 0 0 4px var(--focus); border-color: var(--accent)}
.btn.add:hover{filter:brightness(0.98)}

/* Danger button */
.btn.danger{background:var(--danger);color:var(--btn-danger-text)}
.btn.danger:hover{filter:brightness(0.95)}
.pcs-btn-with-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  line-height:1.1 !important;
}
.pcs-btn-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:1.45em !important;
  min-width:1.45em !important;
  height:1.45em !important;
  border-radius:6px !important;
  background:#2563eb !important;
  color:#fff !important;
  font-size:.78em !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1 !important;
  pointer-events:none !important;
}
.pcs-btn-icon-success{background:#16a34a !important;}
.pcs-btn-icon-info{background:#2563eb !important;}
.pcs-btn-icon-warning{background:#f59e0b !important;color:#111827 !important;}
.pcs-btn-icon-danger{background:#dc2626 !important;}
.pcs-btn-icon-purple{background:#7c3aed !important;}
.pcs-btn-icon-teal{background:#0d9488 !important;}
.pcs-btn-icon-slate{background:#475569 !important;}
.pcs-btn-icon-default{background:#64748b !important;}
.table .btn.pcs-btn-with-icon,
.actions .btn.pcs-btn-with-icon{gap:5px !important;}
.table .pcs-btn-icon,
.actions .pcs-btn-icon{
  width:1.35em !important;
  min-width:1.35em !important;
  height:1.35em !important;
  font-size:.72em !important;
}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.brand{font-weight:700;letter-spacing:0.4px}
/* Helper semantic classes for patched pages */
.muted { color: var(--muted); }
.text-empty { color: var(--status-empty); }
.value-positive { color: var(--status-success); font-weight:600; }
.value-negative { color: var(--status-danger); font-weight:600; }
.text-center { text-align: center; }
.input-muted { background: var(--input-bg-soft); border:1px solid var(--form-border); padding:6px; border-radius:6px; color:var(--text); }
.pre-output { white-space:pre-wrap; background:var(--content-soft-bg); padding:10px; border-radius:8px; margin-top:8px; color:var(--text); }
.graficos-legend-dot { display:inline-block; width:12px; height:12px; border-radius:6px; margin-right:8px; background:var(--legend-color, transparent); }
.btn-success { background: linear-gradient(180deg, color-mix(in srgb, var(--success) 86%, white 14%), var(--success)); color:#fff; border-radius:8px; padding:8px 12px; border:1px solid rgba(0,0,0,0.06); }
.alert { padding:12px; border-radius:8px; }
.alert.error { background: color-mix(in srgb, var(--status-danger) 18%, var(--content-soft-bg) 82%); border:1px solid color-mix(in srgb, var(--status-danger) 30%, transparent 70%); color:var(--status-danger); }
.panel-soft { background: var(--content-soft-bg); padding:12px; border-radius:8px; border:1px solid var(--content-soft-border); }
.epayco-success { width:88px;height:88px;margin:0 auto 18px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--portal-card-solid-text);font-size:42px;font-weight:900;box-shadow:0 18px 40px rgba(15,157,88,.28); background: linear-gradient(135deg, var(--success), color-mix(in srgb, var(--success) 50%, white 50%)); }
.epayco-success-card{max-width:680px;margin:0 auto;text-align:center}
.epayco-success-title{margin-bottom:12px}
.epayco-success-copy{max-width:520px;margin:0 auto 18px}
.epayco-success-summary{max-width:560px;margin:0 auto 22px;text-align:left}
.epayco-success-actions{justify-content:center;gap:12px;flex-wrap:wrap}
/* Row helpers */
.row-paid { background-color: color-mix(in srgb, var(--status-success) 18%, var(--content-soft-bg) 82%); }
.row-cancelled { background-color: color-mix(in srgb, var(--status-danger) 14%, var(--content-soft-bg) 86%); color: var(--status-danger); text-decoration: line-through; }
.table-header { background: var(--content-soft-bg); border-bottom: 2px solid var(--content-soft-border); }
.table.table-compact { font-size: 0.92rem; }
.table.table-compact th, .table.table-compact td { padding: 8px; white-space:normal }
.table-row { border-bottom:1px solid var(--content-soft-border); }
.btn-sm { padding:6px 10px; font-size:0.86rem; border-radius:6px; }
.bg-cover { background-size:cover; background-position:center; min-height:120px; border-radius:8px; overflow:hidden }
.bg-placeholder { background:var(--input-bg-soft); display:flex; align-items:center; justify-content:center; color:var(--muted); min-height:120px; border-radius:8px }
.iframe-remote { width:100%; min-height:600px; border:1px solid var(--border); border-radius:10px }
.reportes-globales-portfolio-ring { width:88px; height:88px; border-radius:999px; display:inline-block; position:relative }
.is-hidden { display:none; }
.context-help-host{position:relative}
.context-help-host.context-help-page-host{position:relative}
.context-help-floating-host{position:relative}
.context-help-link{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.42), transparent 34%),
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,white 12%),var(--accent));
  color:var(--btn-primary-text);
  font-size:.92rem;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 28%,transparent);
  z-index:5;
}
.context-help-link:hover,
.context-help-link:focus-visible{
  transform:translateY(-1px);
  color:var(--btn-primary-text);
  text-decoration:none;
  outline:none;
  box-shadow:0 0 0 4px var(--focus),0 12px 28px color-mix(in srgb,var(--accent) 34%,transparent);
}
.context-help-link--floating{
  position:absolute;
  top:8px;
  right:8px;
}
.context-help-link--section.context-help-link--floating + *,
.context-help-floating-host > .context-help-link--floating:first-child + *{margin-top:0}
@media print{.context-help-link{display:none!important}}
.fe-vista-bloque{ margin-bottom:1rem; }
.fe-vista-indep{ color: var(--text-muted, #8a8a8a); font-size: 0.95em; }
.fe-estructurado h3{ margin-top:0; }
.fe-estructurado-pa, .fe-estructurado-ec{ margin-bottom:1rem; }
.table-full{width:100%}
.page-header-lead{margin:6px 0 0 0}
.m-0 { margin:0; }
.mt-6 { margin-top:6px; }
.mt-8 { margin-top:8px; }
.mt-10 { margin-top:10px; }
.mt-12 { margin-top:12px; }
.mt-14 { margin-top:14px; }
.mt-16 { margin-top:16px; }
.mb-0 { margin-bottom:0; }
.mb-10 { margin-bottom:10px; }
.mb-12 { margin-bottom:12px; }
.my-0-12 { margin:0 0 12px 0; }
.my-0-10 { margin:0 0 10px 0; }
.w-full { width:100%; }
.maxw-180 { max-width:180px; }
.maxw-220 { max-width:220px; }
.maxw-240 { max-width:240px; }
.minw-180 { min-width:180px; }
.flex-end { display:flex; align-items:flex-end; }
.flex-col-end { display:flex; flex-direction:column; justify-content:flex-end; }
.inline-check { display:flex; gap:8px; align-items:center; }
.section-heading { margin:0; }
.section-header-spaced { margin-top:16px; }
.section-header-tight { margin-bottom:12px; }
.inline-actions-gap-sm { gap:8px; }
.table-wrap-spaced { margin-top:10px; }
.panel-zero-top { margin-top:0; }
.body-copy-spaced { margin:0 0 10px 0; }
.text-center-lowercase { text-align:center; text-transform:lowercase; }
.min-h-20 { min-height:20px; }
.inline-flex-center-gap-10 { display:inline-flex; align-items:center; gap:10px; }
.actions-wrap { flex-wrap:wrap; }
.actions-wrap-gap-8 { flex-wrap:wrap; gap:8px; }
.actions-wrap-gap-10 { flex-wrap:wrap; gap:10px; }
.actions-wrap-gap-10-end { flex-wrap:wrap; gap:10px; align-items:flex-end; }
.minw-160 { min-width:160px; }
.minw-220 { min-width:220px; }
.minw-280 { min-width:280px; }
.maxw-800 { max-width:800px; }
.maxw-1000 { max-width:1000px; }
.mx-auto { margin-left:auto; margin-right:auto; }
.p-10 { padding:10px; }
.p-15 { padding:15px; }
.p-20 { padding:20px; }
.mr-10 { margin-right:10px; }
.mb-15 { margin-bottom:15px; }
.mt-20 { margin-top:20px; }
.text-right { text-align:right; }
.flex-1 { flex:1; }
.flex-col-gap-10 { display:flex; flex-direction:column; gap:10px; }
.flex-between-start { display:flex; justify-content:space-between; align-items:flex-start; }
.flex-gap-5 { display:flex; gap:5px; }
.flex-no-shrink { flex-shrink:0; }
.fs-08 { font-size:0.8em; }
.fs-085 { font-size:0.85em; }
.fs-09 { font-size:0.9em; }
.fs-07 { font-size:0.7em; }
.fw-normal { font-weight:normal; }
.ml-10 { margin-left:10px; }
.maxh-400 { max-height:400px; }
.overflow-y-auto { overflow-y:auto; }
.w-150 { width:150px; }
.inline-panel-empty { padding:20px; text-align:center; border:1px dashed var(--border); border-radius:6px; }
.btn-compact { font-size:0.8em; padding:4px 8px; }
.heading-block { margin:14px 0 8px 0; }
.subheading-block { margin:12px 0 6px 0; }
.help-top-0 { margin-top:0; }
.pb-5 { padding-bottom:5px; }
.section-rule-title { margin-top:0; border-bottom:1px solid var(--content-soft-border); padding-bottom:5px; }
.fw-700 { font-weight:700; }
.help-top-10 { margin-top:10px; }
.footer{color:var(--muted);font-size:13px;margin-top:18px}
.input{width:100%;padding:10px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--text)}
/* Advanced Form Cards (SaaS Professional Style) */
.form, .advanced-card {
  max-width: 900px;
  margin: 0 auto 24px auto;
  padding: 24px;
  border-radius: 16px;
  background: linear-gradient(145deg, var(--form-surface-top), var(--form-surface-bottom));
  border: 1px solid var(--form-border);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(12px);
  position: relative;
  overflow: hidden;
}
.form::before, .advanced-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
}

.form-row{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.form-col{flex:1;min-width:250px;}
.form-label{display:block;font-weight:700;margin-bottom:6px;color:var(--muted);font-size:0.95rem}
.form-input{width:100%;padding:10px;border-radius:10px;border:1px solid var(--form-border);background:var(--form-input-bg);color:var(--text)}
.form-input::placeholder{color:rgba(159,179,204,0.78)}
.form-textarea{min-height:110px;padding:10px;border-radius:10px;border:1px solid var(--form-border);background:var(--form-input-bg);color:var(--text);resize:vertical}
.form-textarea::placeholder{color:rgba(159,179,204,0.78)}
.form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.form-help{color:var(--muted);font-size:13px;margin-top:6px}
.error{color:var(--danger);font-weight:700}
.success{color:var(--success);font-weight:700}
.text-empty{color:var(--status-empty)}
.text-danger{color:var(--status-danger)}
.text-success{color:var(--status-success)}
.text-warning{color:var(--status-warning)}
.empresa-config-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:16px}
.empresa-config-map-item{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border-left:3px solid var(--accent);color:var(--text);text-decoration:none;min-height:72px}
.empresa-config-map-item:hover{background:var(--focus);color:var(--text)}
.empresa-config-map-title{font-weight:900;font-size:.9rem;color:var(--accent-yellow)}
.empresa-config-map-item span:last-child{color:var(--muted);font-size:.84rem;line-height:1.35}

/* Tablas estilizadas */
.table{width:auto;max-width:100%;table-layout:auto;border-collapse:collapse;margin-top:12px}
.table th,.table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;width:1%}
.table thead th{color:var(--muted);font-weight:700;font-size:0.95rem;background:var(--table-head-bg)}
.table tbody tr:hover{background:linear-gradient(90deg, var(--table-row-hover-start), var(--table-row-hover-end))}
.actions button{margin-right:6px}

/* Layout del panel de administración (sidebar + contenido) */
.admin-layout{display:flex;min-height:100vh;background:var(--bg);color:var(--text)}
.admin-sidebar{width:260px;padding:18px;background:linear-gradient(180deg,var(--surface-soft),var(--surface));box-shadow:2px 0 26px rgba(3,10,20,0.24);border-right:1px solid var(--border)}
.admin-sidebar h2{margin:0 0 12px 0}
.admin-sidebar h2{color:var(--accent-yellow);font-weight:800;font-size:0.95rem;white-space:nowrap;display:flex;align-items:center;gap:8px}
.admin-sidebar-kicker{margin:0 0 8px 0;color:var(--accent-yellow);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.admin-sidebar-summary{margin:0 0 14px 0;padding:14px;border-radius:16px;background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, var(--surface-soft)), var(--surface));border:1px solid color-mix(in srgb, var(--accent) 16%, var(--border));box-shadow:0 14px 28px rgba(3,10,20,0.16)}
.admin-sidebar-summary p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}
.admin-sidebar-summary-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.admin-sidebar-summary-tags span{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,0.08);border:1px solid color-mix(in srgb, var(--accent-yellow) 18%, var(--border));color:var(--text);font-size:.74rem;font-weight:800;letter-spacing:.03em}
.admin-sidebar .nav{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.admin-sidebar .nav a{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;padding:10px 14px;border-radius:10px;background:linear-gradient(180deg,var(--surface-soft),var(--surface));border:1px solid var(--border);font-weight:700;font-size:0.95rem;min-height:44px}
.admin-sidebar .nav a:hover{background:linear-gradient(180deg,var(--focus),var(--surface));color:var(--text)}
.admin-sidebar .nav a.active{background:linear-gradient(180deg,var(--accent),var(--sidebar-active-end));color:var(--btn-primary-text);border-color:var(--sidebar-active-border);box-shadow:0 10px 18px var(--sidebar-active-shadow)}
.admin-sidebar .nav a img.icon{width:28px;height:28px;vertical-align:middle;margin-right:8px;transition:transform .15s ease;background:var(--menu-icon-bg,#e0f2fe);border:1px solid var(--menu-icon-border,rgba(14,165,233,.28));border-radius:8px;padding:5px;box-sizing:border-box;filter:none !important;box-shadow:0 8px 16px rgba(15,23,42,.12)}
.vertical-integration-evidence{margin:8px 0 12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--surface-soft) 78%,var(--accent) 10%);color:var(--text);font-size:.76rem;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.vertical-integration-evidence[data-source="local"]{border-style:dashed;color:var(--muted);background:var(--surface-soft)}
.plantillas-integration-page{margin:0;background:var(--bg);color:var(--text)}
.plantillas-integration-shell{max-width:1280px;margin:0 auto;padding:22px;display:grid;gap:16px}
.plantillas-integration-head{display:grid;gap:6px}
.plantillas-integration-head p{margin:0;color:var(--accent);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.plantillas-integration-head h1{margin:0;font-size:clamp(1.45rem,2vw,2.1rem);line-height:1.12}
.plantillas-integration-head span{color:var(--muted);line-height:1.45}
.plantillas-integration-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.plantillas-integration-kpis div{min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.plantillas-integration-kpis span{display:block;color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.plantillas-integration-kpis strong{display:block;margin-top:4px;font-size:1.5rem;line-height:1.1}
.plantillas-integration-readiness{display:grid;grid-template-columns:minmax(280px,.95fr) 2fr;gap:12px;align-items:stretch}
.plantillas-integration-readiness-main,.plantillas-integration-readiness-grid div{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:14px}
.plantillas-integration-readiness-main{display:grid;gap:6px}
.plantillas-integration-readiness-main span,.plantillas-integration-readiness-grid span{display:block;color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.plantillas-integration-readiness-main strong{font-size:1.18rem;line-height:1.2}
.plantillas-integration-readiness-main small{color:var(--muted);line-height:1.35}
.plantillas-integration-readiness-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.plantillas-integration-readiness-grid strong{display:block;margin-top:4px;font-size:1.35rem;line-height:1.1}
.plantillas-integration-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.plantillas-integration-table{width:100%;border-collapse:collapse;min-width:1080px}
.plantillas-integration-table th,.plantillas-integration-table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.plantillas-integration-table th{color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-soft)}
.plantillas-integration-table td span,.plantillas-integration-table td small{display:block;margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.35}
.plantillas-integration-table mark{display:inline-flex;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,#dcfce7 72%,var(--surface));color:#166534;font-size:.75rem;font-weight:900}
.plantillas-integration-table mark[data-visible="0"]{background:color-mix(in srgb,#fee2e2 72%,var(--surface));color:#991b1b}
.plantillas-integration-table mark[data-ready="1"]{background:color-mix(in srgb,#dbeafe 72%,var(--surface));color:#1d4ed8}
.plantillas-integration-table mark[data-ready="0"]{background:color-mix(in srgb,#fef3c7 72%,var(--surface));color:#92400e}
.plantillas-integration-table code{white-space:normal;overflow-wrap:anywhere}
.plantillas-sync-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;min-height:32px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:8px;background:var(--accent);color:var(--btn-primary-text,#fff);font:inherit;font-size:.78rem;font-weight:900;cursor:pointer}
.plantillas-sync-btn:disabled{opacity:.65;cursor:wait}
.plantillas-sync-muted,.plantillas-sync-result{display:block;margin-top:7px;color:var(--muted);font-size:.78rem;line-height:1.35}
.plantillas-sync-result[data-error="1"]{color:#b91c1c}
@media (max-width:920px){.plantillas-integration-readiness{grid-template-columns:1fr}.plantillas-integration-readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.plantillas-integration-shell{padding:14px}.plantillas-integration-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.plantillas-integration-table{min-width:860px}}
.admin-sidebar .nav a:hover img.icon{transform:translateY(-1px)}
.admin-sidebar .nav a.active img.icon{background:var(--menu-icon-active-bg,#fff);border-color:rgba(255,255,255,.55);box-shadow:0 8px 18px rgba(15,23,42,.18)}
.admin-sidebar .nav a .menu-symbol-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;vertical-align:middle;margin-right:8px;transition:transform .15s ease;background:color-mix(in srgb,currentColor 10%,transparent);border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:8px;padding:5px;box-sizing:border-box;color:currentColor;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 8px 16px rgba(15,23,42,.12)}
.admin-sidebar .nav a:hover .menu-symbol-icon{transform:translateY(-1px)}
.admin-sidebar .nav a.active .menu-symbol-icon{background:color-mix(in srgb,currentColor 18%,transparent);border-color:color-mix(in srgb,currentColor 54%,transparent);box-shadow:0 8px 18px rgba(15,23,42,.18)}
.admin-sidebar .nav a[id*="Panel"]{--menu-icon-bg:#dbeafe;--menu-icon-border:#60a5fa}
.admin-sidebar .nav a[href*="chat"],.admin-sidebar .nav a[href*="tareas"],.admin-sidebar .nav a[id*="Chat"]{--menu-icon-bg:#d1fae5;--menu-icon-border:#34d399}
.admin-sidebar .nav a[href*="estaciones"],.admin-sidebar .nav a[id*="Estaciones"]{--menu-icon-bg:#fee2e2;--menu-icon-border:#f87171}
.admin-sidebar .nav a[href*="reservas"],.admin-sidebar .nav a[id*="Reservas"]{--menu-icon-bg:#fef3c7;--menu-icon-border:#f59e0b}
.admin-sidebar .nav a[href*="clientes"],.admin-sidebar .nav a[id*="Clientes"]{--menu-icon-bg:#ede9fe;--menu-icon-border:#8b5cf6}
.admin-sidebar .nav a[href*="venta"],.admin-sidebar .nav a[id*="Venta"]{--menu-icon-bg:#cffafe;--menu-icon-border:#06b6d4}
.admin-sidebar .nav a[href*="red_social"],.admin-sidebar .nav a[href*="publicar_red"],.admin-sidebar .nav a[id*="Social"]{--menu-icon-bg:#fce7f3;--menu-icon-border:#ec4899}
.admin-sidebar .nav a[href*="descuento"],.admin-sidebar .nav a[id*="Descuento"]{--menu-icon-bg:#ffedd5;--menu-icon-border:#fb923c}
.admin-sidebar .nav a[href*="producto"],.admin-sidebar .nav a[id*="Producto"]{--menu-icon-bg:#dcfce7;--menu-icon-border:#22c55e}
.admin-sidebar .nav a[href*="compra"],.admin-sidebar .nav a[id*="Compra"]{--menu-icon-bg:#e0e7ff;--menu-icon-border:#6366f1}
.admin-sidebar .nav a[href*="barra"],.admin-sidebar .nav a[id*="Barras"]{--menu-icon-bg:#f5f3ff;--menu-icon-border:#a855f7}
.admin-sidebar .nav a[href*="finanzas"],.admin-sidebar .nav a[id*="Finanzas"]{--menu-icon-bg:#dcfce7;--menu-icon-border:#16a34a}
.admin-sidebar .nav a[href*="facturacion"],.admin-sidebar .nav a[id*="Facturacion"]{--menu-icon-bg:#e0f2fe;--menu-icon-border:#0ea5e9}
.admin-sidebar .nav a[href*="impuestos"],.admin-sidebar .nav a[id*="Impuestos"]{--menu-icon-bg:#fef9c3;--menu-icon-border:#eab308}
.admin-sidebar .nav a[href*="usuario"],.admin-sidebar .nav a[id*="Usuarios"]{--menu-icon-bg:#fce7f3;--menu-icon-border:#db2777}
.admin-sidebar .nav a[href*="asistencia"],.admin-sidebar .nav a[id*="Asistencia"]{--menu-icon-bg:#ccfbf1;--menu-icon-border:#14b8a6}
.admin-sidebar .nav a[href*="vehiculo"],.admin-sidebar .nav a[id*="Vehiculos"]{--menu-icon-bg:#e2e8f0;--menu-icon-border:#64748b}
.admin-sidebar .nav a[href*="gps"],.admin-sidebar .nav a[id*="GPS"]{--menu-icon-bg:#dcfce7;--menu-icon-border:#22c55e}
.admin-sidebar .nav a[href*="report"],.admin-sidebar .nav a[id*="Reportes"]{--menu-icon-bg:#dbeafe;--menu-icon-border:#3b82f6}
.admin-sidebar .nav a[href*="auditoria"],.admin-sidebar .nav a[id*="Auditoria"]{--menu-icon-bg:#fee2e2;--menu-icon-border:#ef4444}
.admin-sidebar .nav a[href*="backup"],.admin-sidebar .nav a[id*="Backups"]{--menu-icon-bg:#ede9fe;--menu-icon-border:#7c3aed}
.admin-sidebar .nav a[href*="onlyoffice"],.admin-sidebar .nav a[id*="OnlyOffice"]{--menu-icon-bg:#dcfce7;--menu-icon-border:#22c55e}
.admin-sidebar .nav a[href*="nextcloud"],.admin-sidebar .nav a[id*="Nextcloud"]{--menu-icon-bg:#dbeafe;--menu-icon-border:#2563eb}
.admin-sidebar .nav a[href*="soporte"],.admin-sidebar .nav a[id*="Soporte"]{--menu-icon-bg:#ffedd5;--menu-icon-border:#f97316}
.admin-sidebar .nav a[href*="configuracion"],.admin-sidebar .nav a[id*="Configuracion"]{--menu-icon-bg:#e0f2fe;--menu-icon-border:#0284c7}
.admin-sidebar .nav a[href*="seleccionar_empresa"],.admin-sidebar .nav a.select-company{--menu-icon-bg:#fef3c7;--menu-icon-border:#f59e0b}
.admin-sidebar .nav.admin-nav-grouped{gap:10px}
.admin-sidebar .nav .admin-nav-group{display:flex;flex-direction:column;gap:7px;padding:10px;border:1px solid color-mix(in srgb, var(--border) 82%, transparent);border-radius:8px;background:color-mix(in srgb, var(--surface-soft) 74%, transparent)}
.admin-sidebar .nav .admin-nav-group-title{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.08em;line-height:1.2;text-transform:uppercase;padding:0 2px;background:transparent;border:0;text-align:left;font-family:inherit;cursor:pointer}
.admin-sidebar .nav .admin-nav-group-title::after{content:"+";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;border:1px solid var(--border);color:var(--text);font-size:.78rem;line-height:1;background:var(--surface)}
.admin-sidebar .nav .admin-nav-group.is-open .admin-nav-group-title::after{content:"-"}
.admin-sidebar .nav .admin-nav-group:not(.is-open) .admin-nav-sublist{display:none}
.admin-sidebar .nav .admin-nav-sublist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.admin-sidebar .nav .admin-nav-sublist li{min-width:0}
.admin-sidebar .nav .admin-nav-sublist a{min-height:40px;padding:9px 12px;border-radius:8px;font-size:.9rem}
.admin-menu-visibility-item{display:none}
.admin-menu-visibility-toggle{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;padding:10px 14px;border-radius:10px;border:1px dashed var(--border);background:var(--surface-soft);color:var(--text);font-weight:800;font-size:0.95rem;min-height:44px;cursor:pointer;box-sizing:border-box}
.admin-menu-visibility-toggle:hover{background:linear-gradient(180deg,var(--focus),var(--surface));color:var(--text)}
.admin-menu-visibility-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:1rem;line-height:1}
.empresa-submenu-shell .admin-sidebar{box-sizing:border-box;background:linear-gradient(180deg,var(--menu-bg-start,var(--surface)),var(--menu-bg-end,var(--surface-soft)));color:var(--menu-text,var(--text));border-right:1px solid var(--border)}
.empresa-submenu-shell .admin-sidebar h2{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.empresa-submenu-shell .admin-sidebar-kicker{margin:0 0 6px;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.empresa-submenu-shell .admin-sidebar-summary{width:100%;max-width:100%;box-sizing:border-box;margin:0 0 12px;color:var(--muted);font-size:.86rem;line-height:1.45;white-space:normal!important;overflow-wrap:anywhere;word-break:normal}
.empresa-submenu-shell .admin-sidebar .nav a:not(.active){background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:none}
.empresa-submenu-shell .admin-sidebar .nav a:not(.active):hover{background:var(--surface-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}
html.theme-dark .empresa-submenu-shell .admin-sidebar,
html[data-theme^="dark"] .empresa-submenu-shell .admin-sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 74%,#020617 26%),color-mix(in srgb,var(--bg) 86%,var(--surface-soft) 14%));box-shadow:2px 0 28px rgba(0,0,0,.32)}
html.theme-dark .empresa-submenu-shell .admin-sidebar .nav a:not(.active),
html[data-theme^="dark"] .empresa-submenu-shell .admin-sidebar .nav a:not(.active){background:color-mix(in srgb,var(--surface) 72%,#000 28%);border-color:color-mix(in srgb,var(--border) 80%,transparent);color:var(--text);box-shadow:none}
html.theme-dark .empresa-submenu-shell .admin-sidebar .nav a:not(.active):hover,
html[data-theme^="dark"] .empresa-submenu-shell .admin-sidebar .nav a:not(.active):hover{background:color-mix(in srgb,var(--surface-soft) 76%,var(--accent) 24%)}
.empresa-submenu-shell .admin-sidebar .nav a.active{background:var(--menu-active-bg,var(--accent));border-color:color-mix(in srgb,var(--accent) 72%,var(--border));color:var(--menu-active-text,var(--btn-primary-text,#fff));box-shadow:0 12px 26px color-mix(in srgb,var(--accent) 24%,transparent)}
.empresa-submenu-shell .admin-sidebar .nav a.active img.icon{background:var(--menu-icon-active-bg,#fff);border-color:rgba(255,255,255,.7)}
.empresa-submenu-shell .admin-layout{max-width:100%;overflow-x:hidden}
.empresa-submenu-shell .admin-content{min-width:0;max-width:100%;padding:0;background:var(--bg)}
.empresa-submenu-shell .admin-empresa-frame{max-width:100%}
.plantillas-launch-page{margin:0;background:var(--bg);color:var(--text)}
.plantillas-launch-shell{max-width:1280px;margin:0 auto;padding:22px}
.plantillas-launch-head{display:grid;gap:6px;margin-bottom:16px}
.plantillas-launch-head p{margin:0;color:var(--accent);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.plantillas-launch-head h1{margin:0;font-size:clamp(1.45rem,2vw,2.1rem);line-height:1.12}
.plantillas-launch-head span{max-width:860px;color:var(--muted);line-height:1.55}
.plantillas-launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.plantillas-launch-card{display:grid;grid-template-columns:auto 1fr;gap:8px 10px;align-items:start;min-height:124px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);text-decoration:none;box-shadow:0 10px 24px rgba(15,23,42,.06);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.plantillas-launch-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 16px 32px rgba(15,23,42,.12)}
.plantillas-launch-card img.icon{grid-row:1 / span 2;width:34px;height:34px;padding:6px;border-radius:8px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.7)}
.plantillas-launch-card strong{font-size:.98rem;line-height:1.2}
.plantillas-launch-card span{grid-column:2;color:color-mix(in srgb,var(--text) 68%,var(--muted));font-size:.86rem;line-height:1.4}
.plantillas-launch-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--border);border-radius:8px;background:var(--surface);color:var(--muted);line-height:1.45;text-align:center}
.permisos-rule-detail{display:inline-block;max-width:44ch;color:var(--muted);font-size:.82rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
#empresaPermisosPagesTable td:nth-child(3),
#empresaPermisosPagesTable th:nth-child(3){min-width:260px;white-space:normal;vertical-align:top}
.plantillas-launch-card.tone-1{background:linear-gradient(135deg,color-mix(in srgb,#e0f2fe 72%,var(--surface)),var(--surface))}
.plantillas-launch-card.tone-2{background:linear-gradient(135deg,color-mix(in srgb,#dcfce7 68%,var(--surface)),var(--surface))}
.plantillas-launch-card.tone-3{background:linear-gradient(135deg,color-mix(in srgb,#fef3c7 62%,var(--surface)),var(--surface))}
.plantillas-launch-card.tone-4{background:linear-gradient(135deg,color-mix(in srgb,#fee2e2 58%,var(--surface)),var(--surface))}
.plantillas-launch-card.tone-5{background:linear-gradient(135deg,color-mix(in srgb,#ede9fe 62%,var(--surface)),var(--surface))}
.plantillas-launch-card.tone-6{background:linear-gradient(135deg,color-mix(in srgb,#ccfbf1 62%,var(--surface)),var(--surface))}
html.theme-dark .plantillas-launch-card,
html[data-theme^="dark"] .plantillas-launch-card{box-shadow:none;background:color-mix(in srgb,var(--surface) 78%,#020617 22%)}
html.theme-dark .plantillas-launch-card.tone-1,
html[data-theme^="dark"] .plantillas-launch-card.tone-1{background:linear-gradient(135deg,color-mix(in srgb,#0f172a 66%,#0369a1),var(--surface))}
html.theme-dark .plantillas-launch-card.tone-2,
html[data-theme^="dark"] .plantillas-launch-card.tone-2{background:linear-gradient(135deg,color-mix(in srgb,#052e16 58%,#14532d),var(--surface))}
html.theme-dark .plantillas-launch-card.tone-3,
html[data-theme^="dark"] .plantillas-launch-card.tone-3{background:linear-gradient(135deg,color-mix(in srgb,#422006 62%,#713f12),var(--surface))}
html.theme-dark .plantillas-launch-card.tone-4,
html[data-theme^="dark"] .plantillas-launch-card.tone-4{background:linear-gradient(135deg,color-mix(in srgb,#450a0a 60%,#7f1d1d),var(--surface))}
html.theme-dark .plantillas-launch-card.tone-5,
html[data-theme^="dark"] .plantillas-launch-card.tone-5{background:linear-gradient(135deg,color-mix(in srgb,#312e81 58%,#1e1b4b),var(--surface))}
html.theme-dark .plantillas-launch-card.tone-6,
html[data-theme^="dark"] .plantillas-launch-card.tone-6{background:linear-gradient(135deg,color-mix(in srgb,#134e4a 58%,#042f2e),var(--surface))}
html.empresa-module-submenu-content body{padding:12px!important;background:var(--bg)!important}
html.empresa-module-submenu-content .container,
html.empresa-module-submenu-content .page-shell{max-width:none!important;width:100%!important;margin:0!important}
html.empresa-module-submenu-content .taxi-shell,
html.empresa-module-submenu-content .turnos-shell,
html.empresa-module-submenu-content .dom-shell{padding:0!important}
html.empresa-module-submenu-content .taxi-hero,
html.empresa-module-submenu-content .taxi-sidebar,
html.empresa-module-submenu-content .turnos-hero,
html.empresa-module-submenu-content .turnos-sidebar,
html.empresa-module-submenu-content .dom-hero,
html.empresa-module-submenu-content .dom-nav,
html.empresa-module-submenu-content .parking-hero,
html.empresa-module-submenu-content .parking-tabs,
html.empresa-module-submenu-content .apt-hero,
html.empresa-module-submenu-content .apt-tabs,
html.empresa-module-submenu-content .ph-hero,
html.empresa-module-submenu-content .ph-tabs,
html.empresa-module-submenu-content .odonto-hero-card,
html.empresa-module-submenu-content .odonto-sidebar,
html.empresa-module-submenu-content #odontoDashboard,
html.empresa-module-submenu-content .chat-workspace-subnav{display:none!important}
html.empresa-module-submenu-content .taxi-main,
html.empresa-module-submenu-content .turnos-main,
html.empresa-module-submenu-content .dom-main{display:block!important}
html.empresa-module-submenu-content .odonto-module-shell{padding:0!important}
html.empresa-module-submenu-content .odonto-workspace{display:block!important}
html.empresa-module-submenu-content .odonto-content{width:100%!important;max-width:none!important}
html.empresa-module-submenu-content .odonto-context-card{margin-bottom:0}
html.empresa-module-submenu-content .chat-workspace-page{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
.gym-module-body.gym-submenu-content{background:var(--bg)}
.admin-content{position:relative;flex:1;padding:10px;overflow:hidden;display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--bg-alt),var(--bg))}
.admin-frame-toolbar{position:absolute;right:18px;top:18px;z-index:12;display:flex;align-items:center;gap:8px;pointer-events:none}
.admin-favorite-btn{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 76%,var(--accent-yellow,#facc15) 24%);background:color-mix(in srgb,var(--surface) 88%,transparent);color:color-mix(in srgb,var(--muted) 78%,var(--text) 22%);font-size:1.28rem;line-height:1;box-shadow:0 14px 34px rgba(0,0,0,.16);cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease}
body.ai-chat-drawer-open .admin-frame-toolbar,
body:has(#aiChatDrawer.open) .admin-frame-toolbar{display:none!important}
.admin-empresa-shell.has-floating-menu .admin-frame-toolbar,
body.has-floating-menu.admin-empresa-shell .admin-frame-toolbar{top:calc(var(--floating-menu-clearance, 72px) + 10px)}
.admin-favorite-btn:hover,.admin-favorite-btn:focus-visible{transform:translateY(-1px);background:var(--surface-soft);color:var(--accent-yellow,#facc15);outline:none}
.admin-favorite-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--accent-yellow,#facc15) 22%,var(--surface) 78%);border-color:var(--accent-yellow,#facc15);color:var(--accent-yellow,#facc15);box-shadow:0 16px 36px color-mix(in srgb,var(--accent-yellow,#facc15) 26%,transparent)}
.ai-chat-backdrop{position:fixed;inset:0;z-index:1648;background:rgba(8,12,24,.42);opacity:0;pointer-events:none;transition:opacity .22s ease}
.ai-chat-backdrop.is-visible{opacity:1;pointer-events:auto}
.ai-chat-toggle-button{position:fixed;right:20px;bottom:20px;z-index:1660;display:inline-flex;align-items:center;gap:8px;padding:12px 16px;font-weight:800;border:none;border-radius:999px;background:var(--accent);color:var(--btn-primary-text);cursor:pointer;box-shadow:0 22px 50px rgba(0,0,0,.18);transition:transform .18s ease,box-shadow .18s ease,opacity .2s ease}
.ai-chat-toggle-button:hover{transform:translateY(-1px);box-shadow:0 24px 58px rgba(0,0,0,.22)}
.ai-chat-toggle-button img.icon{width:18px;height:18px;margin:0;filter:none}
@media (max-width: 860px){
  .ai-chat-toggle-button.is-drawer-open{min-width:0;width:48px;height:48px;padding:0;gap:0;border-radius:50%;justify-content:center;}
  .ai-chat-toggle-button.is-drawer-open .ai-chat-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;clip:rect(0 0 0 0);white-space:nowrap;}
}
@media (min-width: 861px){
  .ai-chat-toggle-button:not(.is-drawer-open){opacity:.38}
  .ai-chat-toggle-button:not(.is-drawer-open):hover,
  .ai-chat-toggle-button:not(.is-drawer-open):focus-visible{opacity:1}
}
.radio-toggle-button{left:24px;right:auto;bottom:24px;background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 100%)}
.radio-toggle-button.is-disabled{background:linear-gradient(135deg,#334155 0%,#64748b 100%);color:#f8fafc}
.radio-drawer{position:fixed;left:24px;right:auto;bottom:88px;width:min(440px,calc(100vw - 32px));max-height:70vh;padding:18px;border-radius:22px;background:linear-gradient(180deg,rgba(15,23,42,.98) 0%,rgba(30,41,59,.98) 100%);color:#e2e8f0;box-shadow:0 24px 60px rgba(15,23,42,.35);opacity:0;pointer-events:none;transform:translateY(16px);transition:opacity .2s ease,transform .2s ease;z-index:1659;overflow:auto}
.radio-drawer.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}
.radio-drawer-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.radio-drawer-header h2{margin:0 0 4px;font-size:1.1rem;color:#f8fafc}
.radio-drawer-header p{margin:0;color:#94a3b8;font-size:.92rem}
.radio-drawer-actions{display:flex;align-items:flex-start;gap:10px}
.radio-drawer-toggle{display:flex;align-items:flex-start;gap:8px;min-width:142px;padding:8px 10px;border:1px solid rgba(148,163,184,.22);border-radius:12px;background:rgba(255,255,255,.08);color:#f8fafc;cursor:pointer}
.radio-drawer-toggle input{width:18px;height:18px;margin:1px 0 0;accent-color:#60a5fa}
.radio-drawer-toggle span{display:grid;gap:2px}
.radio-drawer-toggle strong{font-size:.82rem;line-height:1.2}
.radio-drawer-toggle small{color:#cbd5e1;font-size:.72rem;line-height:1.2}
.radio-country-panel{display:grid;grid-template-columns:1fr minmax(150px,190px);gap:10px;align-items:center;margin:0 0 12px;padding:10px;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:rgba(255,255,255,.08);color:#f8fafc}
.radio-country-panel strong{display:block;font-size:.84rem;color:inherit}
.radio-country-panel small{display:block;margin-top:2px;color:#cbd5e1;font-size:.74rem;line-height:1.3}
.radio-country-panel .form-input{min-height:38px}
.radio-custom-form{display:grid;gap:10px;margin:0 0 14px;padding:10px;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:rgba(255,255,255,.06)}
.radio-custom-title{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#f8fafc}
.radio-custom-title strong{font-size:.84rem}
.radio-custom-title small{color:#cbd5e1;font-size:.74rem}
.radio-custom-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.radio-custom-fields .form-input,.radio-custom-fields .btn{min-height:38px}
.radio-station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.radio-station-card{padding:16px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(148,163,184,.18);display:grid;gap:10px}
.radio-station-card.is-active{border-color:rgba(59,130,246,.7);box-shadow:0 16px 32px rgba(37,99,235,.16)}
.radio-station-card.is-custom{border-color:rgba(34,197,94,.42)}
.radio-station-card h3{margin:0;color:#f8fafc;font-size:1rem}
.radio-station-card p{margin:0;color:#cbd5e1;line-height:1.45;font-size:.92rem}
.radio-station-badge{justify-self:start;padding:6px 10px;border-radius:999px;background:rgba(59,130,246,.16);color:#bfdbfe;font-size:.75rem;font-weight:700}
.radio-station-meta{display:flex;flex-wrap:wrap;gap:8px;color:#94a3b8;font-size:.8rem}
.radio-station-actions{display:flex;flex-wrap:wrap;gap:8px}
.radio-station-empty{grid-column:1/-1;padding:16px;border:1px dashed rgba(148,163,184,.38);border-radius:8px;color:#cbd5e1;background:rgba(255,255,255,.06);line-height:1.45}
.radio-config-panel{display:grid;gap:10px;margin:14px 0 18px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-soft)}
.radio-config-toggle{display:flex;align-items:flex-start;gap:12px;color:var(--text);font-weight:800;cursor:pointer}
.radio-config-toggle input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent)}
.radio-config-toggle span{display:grid;gap:3px}
.radio-config-toggle small{color:var(--muted);font-weight:700;line-height:1.35}
.radio-config-panel .radio-country-panel{margin:2px 0 0;background:var(--surface);border-color:var(--border);color:var(--text)}
.radio-config-panel .radio-country-panel small{color:var(--muted)}
.radio-config-panel .radio-custom-form{background:var(--surface);border-color:var(--border)}
.radio-config-panel .radio-custom-title{color:var(--text)}
.radio-config-panel .radio-custom-title small{color:var(--muted)}
.radio-config-panel + .radio-station-grid .radio-station-empty{color:var(--muted);background:var(--surface-soft);border-color:var(--border)}
.radio-config-panel + .radio-station-grid .radio-station-card{background:var(--surface);border-color:var(--border)}
.radio-config-panel + .radio-station-grid .radio-station-card h3{color:var(--text)}
.radio-config-panel + .radio-station-grid .radio-station-card p{color:var(--muted)}
.radio-config-panel + .radio-station-grid .radio-station-meta{color:var(--muted)}
.radio-station-grid.is-disabled{opacity:.58}
.radio-station-grid.is-disabled .radio-station-card{filter:saturate(.65)}
.electric-on-bolt{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;border:1px solid color-mix(in srgb,var(--warning,#f59e0b) 55%,var(--border));background:color-mix(in srgb,var(--warning,#f59e0b) 18%,var(--surface));color:#f59e0b;font-size:1rem;font-weight:900;line-height:1;box-shadow:0 0 0 4px color-mix(in srgb,var(--warning,#f59e0b) 12%,transparent)}
.radio-mini-player{position:fixed;left:24px;right:auto;bottom:88px;width:min(360px,calc(100vw - 24px));padding:12px 14px;border-radius:18px;background:rgba(15,23,42,.96);color:#f8fafc;box-shadow:0 24px 50px rgba(15,23,42,.3);z-index:1661}
.radio-mini-topline{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.radio-mini-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#93c5fd}
.radio-mini-close{border:0;background:transparent;color:#cbd5e1;font-size:1.2rem;cursor:pointer}
.radio-mini-body{display:grid;gap:10px}
.radio-mini-meta{display:grid;gap:2px}
.radio-mini-meta strong{font-size:.98rem}
.radio-mini-meta span{color:#94a3b8;font-size:.84rem;line-height:1.4}
.radio-mini-controls{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.radio-mini-controls input[type="range"]{width:100%}
@media (max-width: 860px){
  .radio-toggle-button{left:12px;right:auto;bottom:12px}
  .radio-drawer{right:12px;left:12px;width:auto;bottom:76px}
  .radio-mini-player{right:12px;left:12px;width:auto;bottom:76px}
  .radio-drawer-header{display:grid}
  .radio-drawer-actions{justify-content:space-between}
  .radio-country-panel{grid-template-columns:1fr}
  .radio-custom-fields{grid-template-columns:1fr}
}
.ai-chat-drawer{position:fixed;z-index:1650;display:flex;flex-direction:column;overflow:visible;pointer-events:none;opacity:0;transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1)}
.ai-chat-drawer.open{pointer-events:auto;opacity:1}
.ai-chat-drawer.minimized:not(.open){opacity:1;pointer-events:none}
.ai-chat-minibar{display:none;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:0 12px 36px rgba(3,10,20,.28);pointer-events:auto}
.ai-chat-drawer.minimized .ai-chat-minibar{display:flex}
.ai-chat-drawer.minimized .ai-chat-drawer-surface{display:none}
.ai-chat-minibar-label{font-weight:800;font-size:.92rem;color:var(--text)}
.ai-chat-minibar-btn{border:none;background:transparent;color:var(--text);cursor:pointer;padding:6px;border-radius:10px;line-height:0;display:inline-flex;align-items:center;justify-content:center}
.ai-chat-minibar-btn:hover{background:rgba(0,0,0,.07)}
.ai-chat-drawer-surface{display:flex;flex-direction:column;min-height:0;flex:1;background:var(--surface);overflow:hidden}
@media (min-width: 861px){
  .ai-chat-drawer{
    right:24px;bottom:24px;left:auto;top:24px;
    width:min(420px,calc(100vw - 48px));
    height:auto;max-height:calc(100vh - 48px);
    border-radius:20px;
    border:1px solid var(--border);
    box-shadow:0 24px 60px rgba(3,10,20,.35);
    transform:translateY(calc(100% + 100px)) scale(.96);
  }
  .ai-chat-drawer.open{transform:translateY(0) scale(1)}
  .ai-chat-drawer.minimized{
    right:24px;bottom:24px;width:auto;height:auto;max-height:none;
    background:transparent;border:none;box-shadow:none;transform:none;opacity:1;pointer-events:none;
    align-items:flex-end
  }
  .ai-chat-drawer.minimized .ai-chat-minibar{pointer-events:auto}
}
@media (max-width: 860px){
  .ai-chat-drawer{
    inset:0;width:100%;height:100%;height:100dvh;max-width:none;border-radius:0;
    transform:translateY(110%);
    box-shadow:none;border:none;
  }
  .ai-chat-drawer.open{transform:translateY(0)}
  .ai-chat-drawer.open .ai-chat-form{padding-bottom:max(14px,env(safe-area-inset-bottom,0px))}
}
.ai-chat-header{padding:16px 14px 12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:linear-gradient(180deg,var(--surface-soft),var(--surface));flex-shrink:0}
.ai-chat-header-title-row{display:flex;align-items:flex-start;gap:10px;min-width:0}
.ai-chat-header-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:14px;background:var(--surface-soft);border:1px solid var(--border);color:var(--accent);flex-shrink:0}
.ai-chat-header h2{margin:0;font-size:1rem;line-height:1.2;font-weight:800}
.ai-chat-header p{margin:8px 0 0;color:var(--muted);font-size:.88rem;max-width:280px}
.ai-chat-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ai-chat-header-icon-btn{border:1px solid var(--border);background:var(--surface-soft);color:var(--text);width:40px;height:40px;border-radius:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .15s ease}
.ai-chat-header-icon-btn:hover{background:var(--focus)}
.ai-chat-drawer.robot-mode .ai-chat-header{background:linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);color:var(--text)}
.ai-chat-drawer.robot-mode .ai-chat-header-icon{color:var(--text)}
.ai-chat-drawer.robot-mode .ai-chat-message.assistant{background:#fff8dc;border:1px solid #facc15}
.ai-chat-drawer.robot-mode:not(.secretary-mode) .ai-chat-header-title-row h2::after{content:' - Robot';font-size:.8rem;color:var(--muted);margin-left:8px}
.ai-chat-drawer.secretary-mode .ai-chat-header-title-row h2::after{content:' - Secretaria';font-size:.8rem;color:var(--muted);margin-left:8px}
.ai-chat-close{border:none;background:transparent;color:var(--text);font-size:1.6rem;line-height:1;width:40px;height:40px;border-radius:12px;cursor:pointer;transition:background .15s ease}
.ai-chat-close:hover{background:rgba(0,0,0,.06)}
.ai-chat-notice{display:none !important;padding:0;margin:0;border:none;background:transparent;color:inherit;font-size:inherit;line-height:inherit;flex-shrink:0}
.ai-chat-notice.ai-chat-notice-warning{display:none !important}
.ai-chat-notice.is-hidden{display:none}
#aiChatHintToggle,
.ai-chat-hints{display:none !important}
.ai-chat-body-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:12px 14px 8px;display:flex;flex-direction:column;gap:12px}
.ai-chat-messages{display:flex;flex-direction:column;gap:12px;flex-shrink:0;padding:0;overflow:visible;min-height:min-content}
.ai-chat-message{max-width:100%;border-radius:18px;padding:14px 16px;line-height:1.5;word-break:break-word;white-space:pre-wrap;box-shadow:0 10px 20px rgba(0,0,0,.06)}
.ai-chat-message.user{align-self:flex-end;background:var(--btn-primary);color:var(--btn-primary-text)}
.ai-chat-message.assistant{align-self:flex-start;background:var(--surface-soft);color:var(--text)}
.ai-chat-model-badge{
  display:inline-flex;
  align-items:center;
  margin:0 0 8px 0;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
  color:color-mix(in srgb, var(--accent) 72%, var(--text));
  font-size:.74rem;
  font-weight:800;
  line-height:1.1;
  white-space:normal;
}
.ai-chat-message.assistant.is-streaming{
  position:relative;
  border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  background:linear-gradient(135deg,color-mix(in srgb, var(--accent) 7%, var(--surface-soft)) 0%, var(--surface-soft) 100%);
  box-shadow:0 14px 28px rgba(14,165,233,.12);
}
.ai-chat-message.assistant.is-streaming::after{
  content:'En vivo';
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:4px 10px;
  border-radius:999px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.02em;
  color:color-mix(in srgb, var(--accent) 72%, var(--text));
  background:color-mix(in srgb, var(--accent) 12%, var(--surface));
  border:1px solid color-mix(in srgb, var(--accent) 26%, transparent);
}
.ai-chat-message.assistant.is-streaming > div:first-child::after{
  content:'';
  display:inline-block;
  width:8px;
  height:8px;
  margin-left:8px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 0 rgba(14,165,233,.45);
  animation:ai-chat-stream-pulse 1.4s ease-in-out infinite;
  vertical-align:middle;
}
.ai-chat-message.error{border:1px solid #d97706;background:rgba(254,226,200,.92);color:#7a341a}
@keyframes ai-chat-stream-pulse{
  0%{transform:scale(.9);box-shadow:0 0 0 0 rgba(14,165,233,.45)}
  70%{transform:scale(1.08);box-shadow:0 0 0 10px rgba(14,165,233,0)}
  100%{transform:scale(.95);box-shadow:0 0 0 0 rgba(14,165,233,0)}
}
.ai-chat-hints{padding:0;color:var(--muted);font-size:.92rem;line-height:1.5;flex-shrink:0}
.ai-chat-hints.is-hidden{display:none}
.ai-chat-hints p{margin:0 0 8px}
.ai-chat-hints ul{margin:0;padding-left:20px}
.ai-chat-hints li{margin:6px 0}
.ai-chat-form{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px;border-top:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--surface-soft));flex-shrink:0}
.ai-chat-toolbar-row{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}
.ai-chat-voice-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;margin-bottom:0}
.ai-chat-icon-btn{width:40px;height:40px;min-width:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .15s ease,box-shadow .15s ease}
.ai-chat-icon-btn:hover{background:var(--focus)}
.ai-chat-icon-btn[aria-pressed="true"]{box-shadow:0 0 0 2px rgba(96,165,250,.45);background:rgba(96,165,250,.12)}
.ai-chat-icon-btn:disabled{opacity:.45;cursor:not-allowed}
.ai-chat-icon-btn svg{display:block}
.ai-chat-controls{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}
.ai-chat-control-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.ai-chat-control-field > span{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ai-chat-document-tools.is-hidden{display:none}
.ai-chat-document-tool-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.ai-chat-document-tool-row select.form-input{min-width:92px}
.ai-chat-document-download{min-height:38px;white-space:nowrap}
.ai-chat-attachment-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.ai-chat-voice-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ai-chat-voice-controls .btn{min-width:124px}
.ai-chat-file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.ai-chat-attachment-name{font-size:.82rem;color:var(--muted);word-break:break-word}
.ai-chat-form textarea{width:100%;min-height:78px;max-height:136px;padding:11px;border:1px solid var(--border);border-radius:14px;background:var(--bg);color:var(--text);resize:none;font-family:inherit;font-size:.95rem}
.ai-chat-form textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(96,165,250,.18)}
.ai-chat-form > button[type="submit"]{align-self:flex-end;min-width:120px;white-space:nowrap}
@media (max-width: 540px){
  .ai-chat-form{gap:6px;padding:8px 10px 10px}
  .ai-chat-toolbar-row{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:none}
  .ai-chat-toolbar-row::-webkit-scrollbar{display:none}
  .ai-chat-icon-btn{width:34px;height:34px;min-width:34px;border-radius:10px}
  .ai-chat-icon-btn svg{width:18px;height:18px}
  .ai-chat-controls{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;flex:0 0 auto}
  .ai-chat-control-field{flex:0 0 auto;min-width:0;gap:0}
  .ai-chat-control-field > span{display:none}
  .ai-chat-control-field select.form-input{width:108px;min-height:34px;height:34px;padding:5px 8px;font-size:.82rem;border-radius:10px}
  .ai-chat-document-tool-row{gap:5px;flex-wrap:wrap;align-items:stretch}
  .ai-chat-document-tool-row select.form-input{width:100%;min-width:0;flex:1 1 100%}
  .ai-chat-document-download{min-height:34px;padding:5px 8px;font-size:.78rem;flex:1 1 calc(50% - 5px);justify-content:center}
  .ai-chat-attachment-row{flex:0 0 auto;min-width:0;gap:6px}
  .ai-chat-attachment-name{font-size:.74rem;line-height:1.2;max-height:2.4em;overflow:hidden}
  .ai-chat-form textarea{min-height:68px;max-height:112px;padding:9px 10px;border-radius:12px}
  .ai-chat-form > button[type="submit"]{width:100%;align-self:stretch}
}
/* Hacer que los botones dentro del contenido administrativo concuerden visualmente con el sidebar */
.admin-content .btn{
  padding:10px 14px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}

/* Hacer que el iframe de administrar_empresa ocupe el espacio restante y evitar doble scrollbar */
.admin-empresa-frame{flex:1 1 auto;width:100%;min-height:0;border:0;display:block;background:transparent}

/* Shell dedicado: desacopla el scroll del menu izquierdo del contenido cargado en iframe */
.admin-empresa-shell{overflow:hidden}
.admin-empresa-shell .admin-layout{height:100vh;min-height:100vh;overflow:hidden}
.admin-empresa-shell .admin-sidebar{
  height:100vh;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.super-admin-shell .admin-sidebar{
  width:260px;
  padding:14px 12px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 88%,#0f766e 12%),color-mix(in srgb,var(--surface-soft) 90%,#2563eb 10%));
  border-right:1px solid color-mix(in srgb,var(--border) 78%,transparent);
}
.super-console-brand{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:8px 6px}
.super-console-brand h2{margin:0;font-size:1rem;line-height:1.1;letter-spacing:0;color:var(--text)}
.super-console-brand .admin-sidebar-kicker{margin:3px 0 0;font-size:.68rem;letter-spacing:.07em}
.super-console-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;border-radius:8px;background:color-mix(in srgb,var(--accent) 88%,#0f766e 12%);color:var(--btn-primary-text,#fff);font-size:.72rem;font-weight:900;letter-spacing:.04em;box-shadow:0 12px 24px color-mix(in srgb,var(--accent) 22%,transparent)}
.super-console-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 12px;padding:0 4px}
.super-console-status span{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 7px;border:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 84%,transparent);color:var(--muted);font-size:.67rem;font-weight:850;line-height:1.05;text-align:center;overflow-wrap:anywhere}
.super-admin-shell .admin-sidebar .nav.admin-nav-grouped{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:8px;overflow:visible}
.super-admin-shell .admin-sidebar .nav.admin-nav-grouped > li,
.super-admin-shell .admin-sidebar .nav .admin-nav-group{width:100%;min-width:0;flex:0 0 auto;box-sizing:border-box}
.super-admin-shell .admin-sidebar .nav .admin-nav-group{padding:8px;border-radius:8px;background:color-mix(in srgb,var(--surface) 84%,transparent);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 5%,transparent)}
.super-admin-shell .admin-sidebar .nav .admin-nav-group-title{font-size:.67rem;letter-spacing:.07em}
.super-admin-shell .admin-sidebar .nav .admin-nav-sublist,
.super-admin-shell .admin-sidebar .nav .admin-nav-sublist li,
.super-admin-shell .admin-sidebar .nav .admin-nav-sublist a{width:100%;box-sizing:border-box}
.super-admin-shell .admin-sidebar .nav .admin-nav-sublist a{min-height:38px;padding:8px 10px;font-size:.84rem;font-weight:800}
.super-admin-shell .admin-sidebar .nav a.active{box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 18%,transparent)}
.super-admin-shell .admin-content{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 96%,#0f766e 4%),var(--bg));gap:0;overflow:auto}
.super-admin-shell .admin-empresa-frame{flex:0 0 calc(100vh - 20px);height:calc(100vh - 20px);min-height:720px}
.admin-empresa-shell .admin-content{
  height:100vh;
  min-height:0;
  overflow:hidden;
  overscroll-behavior:contain;
}
.admin-empresa-shell .admin-empresa-frame{
  height:100%;
  min-height:0;
}
.admin-empresa-shell.super-admin-shell .admin-content{
  overflow:auto;
  gap:0;
}

.portal-visit-counter{
  max-width:720px;
  margin:8px auto 34px;
  padding:0 18px;
  box-sizing:border-box;
  scroll-margin-top:96px;
}
.portal-visit-shell{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:stretch;
  border:1px solid color-mix(in srgb,var(--border) 82%,var(--accent) 18%);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-soft) 92%,transparent),var(--surface));
  border-radius:12px;
  padding:16px;
  box-shadow:0 16px 34px color-mix(in srgb,#020617 12%,transparent);
}
.portal-visit-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.portal-visit-kicker{
  display:block;
  color:var(--accent);
  font-weight:900;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:4px;
}
.portal-visit-head h2{
  margin:0;
  color:var(--text);
  font-family:'Montserrat',sans-serif;
  font-size:clamp(1.08rem,1.7vw,1.42rem);
  letter-spacing:0;
}
.portal-visit-total{min-width:132px;text-align:right}
.portal-visit-total strong{
  display:block;
  color:var(--text);
  font-size:clamp(1.45rem,3vw,2.1rem);
  font-family:'Montserrat',sans-serif;
  line-height:1;
}
.portal-visit-total span,
.portal-visit-status{color:var(--muted);font-size:.9rem}
.portal-visit-map{max-width:600px;min-height:230px;margin:0 auto;width:100%}
.portal-visit-world{width:100%;min-height:230px;display:block}
.portal-visit-map-frame{
  fill:color-mix(in srgb,var(--surface-soft) 88%,var(--accent) 12%);
  stroke:color-mix(in srgb,var(--border) 72%,var(--accent) 28%);
  stroke-width:2;
}
.portal-visit-graticule{
  fill:none;
  stroke:color-mix(in srgb,var(--border) 52%,transparent);
  stroke-width:.8;
  stroke-dasharray:4 8;
}
.portal-visit-real-map{
  opacity:.9;
  filter:drop-shadow(0 10px 18px rgba(15,23,42,.16)) saturate(1.05);
  mix-blend-mode:multiply;
}
html[data-theme^="dark"] .portal-visit-real-map,
[data-theme="dark"] .portal-visit-real-map,
.theme-dark .portal-visit-real-map{
  opacity:.82;
  filter:brightness(.86) contrast(1.12) saturate(.9) drop-shadow(0 10px 16px rgba(0,0,0,.32));
  mix-blend-mode:screen;
}
.portal-visit-marker .portal-visit-marker-halo{fill:none;stroke:currentColor;stroke-width:2;opacity:.28;filter:none}
.portal-visit-marker circle{
  stroke:#fff;
  stroke-width:3;
  filter:drop-shadow(0 7px 12px rgba(15,23,42,.22));
}
.portal-visit-marker text{
  fill:#fff;
  font-size:13px;
  font-weight:900;
  text-anchor:middle;
  pointer-events:none;
}
.portal-visit-side{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  max-width:600px;
  width:100%;
  margin:0 auto;
}
.portal-visit-country{
  display:grid;
  grid-template-columns:minmax(118px,1fr) minmax(110px,.75fr) auto;
  align-items:center;
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid color-mix(in srgb,var(--border) 82%,transparent);
}
.portal-visit-country strong,
.portal-visit-country b{color:var(--text);font-weight:900}
.portal-visit-country span{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.portal-visit-bar{
  height:9px;
  border-radius:999px;
  background:color-mix(in srgb,var(--border) 58%,transparent);
  overflow:hidden;
}
.portal-visit-bar i{display:block;height:100%;border-radius:inherit}
.portal-visit-empty{
  color:var(--muted);
  border:1px dashed var(--border);
  padding:14px;
  border-radius:10px;
}
.super-portal-visit-counter{
  width:100%;
  max-width:680px;
  margin:18px auto 28px;
  padding:0 8px;
}
.super-portal-visit-counter .portal-visit-shell{
  padding:14px;
  box-shadow:none;
}
.super-portal-visit-counter .portal-visit-map,
.super-portal-visit-counter .portal-visit-world{
  min-height:190px;
}

/* Responsive: colapsar sidebar */
@media (max-width:900px){
  .admin-layout{flex-direction:column}
  .admin-sidebar{width:100%;display:block;padding:14px 12px}
  .admin-sidebar h2{white-space:normal;margin-bottom:10px}
  .admin-sidebar .nav{display:flex;gap:8px;overflow:auto;padding-bottom:4px;scrollbar-width:thin}
  .admin-sidebar .nav li{flex:0 0 auto}
  .admin-sidebar .nav a{white-space:nowrap;flex:0 0 auto}
  .admin-sidebar .nav .admin-nav-group{min-width:220px;flex:0 0 240px}
  .admin-sidebar .nav .admin-nav-sublist li{width:100%;flex:0 0 auto}
  .admin-sidebar .nav .admin-nav-sublist a{width:100%;box-sizing:border-box}
  .admin-content{padding:8px;min-width:0}
  .admin-frame-toolbar{right:12px;top:12px}
  .admin-favorite-btn{width:38px;height:38px;font-size:1.12rem}

  .admin-empresa-shell{overflow:auto}
  .admin-empresa-shell .admin-layout{height:auto;min-height:100vh;overflow:visible}
  .admin-empresa-shell .admin-sidebar{height:auto;overflow:visible}
  .admin-empresa-shell .admin-content{height:auto;min-height:60vh;overflow:visible}
  .admin-empresa-shell .admin-empresa-frame{min-height:70vh}
}

ul{padding-left:18px}
@media (max-width:600px){.container{width:calc(100% - 16px);margin:8px;padding:8px}.card{padding:10px}}

@media (max-width:640px){
  .table{
    display:block;
    width:max-content;
    min-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .table th,
  .table td{
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
    writing-mode:horizontal-tb;
    width:auto;
    min-width:max-content;
    vertical-align:top;
    padding:8px 6px;
    font-size:0.88rem;
  }
  .form-row { gap: 8px; }
  .form-input,
  .form-textarea { padding: 8px; }
  .btn { padding: 8px 10px; font-size: 0.88rem; }
  .actions button{margin-bottom:6px}
  .admin-sidebar .nav{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(136px, 1fr));
    overflow:visible;
  }
  .admin-sidebar .nav li{min-width:0}
  .admin-sidebar .nav .admin-nav-group{min-width:0;flex:auto}
  .admin-sidebar .nav a{
    white-space:normal;
    justify-content:center;
    text-align:center;
    flex:1 1 auto;
  }
}

@media (max-width:900px){
  .card,
  .form,
  .empresa-section,
  .empresa-module-header { padding: 12px; }
  .form-row { gap: 10px; }
  .form-input,
  .form-textarea { padding: 8px; }
  .form-actions { gap: 6px; }
  .btn { padding: 8px 10px; font-size: 0.93rem; }
  .table th,
  .table td { padding: 10px 8px; font-size: 0.92rem; }
  .table { width: 100%; }
  .table th, .table td { white-space: normal; word-break: break-word; }
  .actions button { margin-bottom: 4px; }
  .section-heading { font-size: 1rem; }
}

/* Forzar menú apilado en móvil: un botón por fila, ancho completo */
@media (max-width:640px){
  .admin-sidebar .nav{display:flex;flex-direction:column;gap:8px;overflow:visible}
  .admin-sidebar .nav li{width:100%;min-width:0}
  .admin-sidebar .nav a{display:flex;width:100%;justify-content:flex-start;text-align:left;flex:0 0 auto;padding:12px 14px;box-sizing:border-box}
  .admin-sidebar .nav .admin-nav-group{width:100%;min-width:0;flex:0 0 auto;box-sizing:border-box}
  .admin-sidebar .nav .admin-nav-sublist{width:100%}
  .admin-menu-visibility-item{display:block}
  .admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed .nav{gap:0}
.admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed .nav > li:not(.admin-menu-visibility-item){display:none}
.admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed h2,
.admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed .empresa-name-menu,
.admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed .admin-sidebar-kicker,
.admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed .admin-sidebar-summary{display:none}
.admin-sidebar.admin-sidebar-mobile-collapsible.is-collapsed{padding-bottom:10px}
}

@media (max-width:640px){
  .empresa-subpage .table,
  .empresa-module .table,
  .table-wrap .table{
    width:max-content;
    min-width:100%;
  }

  .empresa-subpage .table th,
  .empresa-subpage .table td,
  .empresa-module .table th,
  .empresa-module .table td,
  .table-wrap .table th,
  .table-wrap .table td{
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed;
    hyphens:none;
  }
}

/* Sidebar: mostrar el nombre de la empresa debajo del título y alinear a la izquierda */
.admin-sidebar #empresaTitleMenu{display:block;white-space:normal;text-align:left;padding-right:8px}
.admin-sidebar .empresa-name-menu{display:block;text-align:left;color:var(--muted);font-weight:600;font-size:0.95rem;margin-top:4px}
.admin-sidebar-summary{padding:12px}
.admin-sidebar-summary p{font-size:.84rem}
.admin-sidebar-summary-tags{gap:6px}
.admin-sidebar-summary-tags span{padding:6px 10px;font-size:.71rem}

@media (max-width:420px){
  .admin-sidebar .nav{gap:6px}
  .admin-sidebar .nav a{padding:10px 12px;font-size:.9rem}
}

/* Estilos específicos para la página de login centrada */
.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;gap:12px;position:relative;overflow:hidden}
.login-page .container{max-width:420px;margin:0}
.login-page .card{text-align:center;padding:28px}
.login-executive-visual-wrap{display:none}
.login-executive-visual{display:block;width:100%;height:100%;object-fit:cover;border-radius:28px;box-shadow:0 18px 34px color-mix(in srgb,#020617 14%,transparent),0 0 0 1px color-mix(in srgb,var(--border) 44%,transparent);filter:drop-shadow(0 12px 22px color-mix(in srgb,var(--login-visual-shadow, #020617) 18%,transparent))}
.login-executive-caption{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;margin:0;padding:12px 14px;border-radius:8px;background:color-mix(in srgb,#020617 72%,transparent);color:#fff;font-family:'Playfair Display', Georgia, 'Segoe UI', Roboto, Arial, sans-serif;font-size:clamp(1.05rem,1.65vw,1.55rem);font-weight:900;line-height:1.12;text-align:left;text-shadow:0 2px 10px rgba(0,0,0,.45);box-shadow:0 10px 22px rgba(2,6,23,.18);overflow-wrap:anywhere}
.login-page{
  --login-visual-shadow:#0f172a;
  --login-visual-glow-primary:color-mix(in srgb,#ffffff 70%,transparent);
  --login-visual-glow-secondary:color-mix(in srgb,var(--accent-yellow) 22%,transparent);
  --login-visual-glow-tertiary:color-mix(in srgb,var(--accent-2) 14%,transparent);
}
html[data-theme^="dark"] .login-page,
html.theme-dark .login-page,
body.theme-dark .login-page{
  --login-visual-shadow:#020617;
  --login-visual-glow-primary:color-mix(in srgb,#93c5fd 20%,transparent);
  --login-visual-glow-secondary:color-mix(in srgb,var(--accent-yellow) 18%,transparent);
  --login-visual-glow-tertiary:color-mix(in srgb,var(--accent-2) 20%,transparent);
}
.login-page h2{font-size:1.4rem;margin-bottom:6px}
.login-page p{margin-bottom:18px}
.login-page .login-subtitle{margin:0 0 16px 0;color:var(--muted)}
.login-page .email-login,.login-page .auth-alt-form{text-align:left;max-width:none;margin:18px 0 0 0;padding:18px 0 0 0;background:transparent;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none}
.login-page .email-login h3,.login-page .auth-alt-form h3{margin:0 0 14px 0}
.login-form-actions{justify-content:center}
.login-email-submit{min-width:220px}
.login-inline-links{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}
.login-inline-links a{color:var(--accent);font-weight:700;text-decoration:none}
.login-inline-links a:hover{text-decoration:underline}
.login-page #adminLoginRecaptcha,
.login-page #adminForgotRecaptcha,
.login-page #adminResetRecaptcha,
.login-usuario-page #empresaLoginRecaptcha,
.login-usuario-page #empresaSetupRecaptcha,
.login-usuario-page #empresaRecoveryRecaptcha,
.login-usuario-page #empresaResetRecaptcha,
.login-usuario-page #empresaChangeRecaptcha{
  min-height:78px;
  margin-top:10px;
}
.login-page #adminLoginRecaptcha > div,
.login-page #adminForgotRecaptcha > div,
.login-page #adminResetRecaptcha > div,
.login-usuario-page #empresaLoginRecaptcha > div,
.login-usuario-page #empresaSetupRecaptcha > div,
.login-usuario-page #empresaRecoveryRecaptcha > div,
.login-usuario-page #empresaResetRecaptcha > div,
.login-usuario-page #empresaChangeRecaptcha > div{
  margin:0 auto;
}
.auth-alt-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.auth-alt-actions.is-centered{justify-content:center}
.auth-message{margin-top:12px;font-size:1.08rem;font-weight:700;line-height:1.5}
.auth-message.is-visible{display:block}
.auth-message.is-hidden{display:none}
.login-page .auth-alt-form .form-help{font-size:1rem;line-height:1.5}
.login-card-note{margin-top:14px;color:var(--muted);font-size:.94rem}
.login-page input[readonly]{background:var(--readonly-bg);opacity:.85}
.password-visibility-field{position:relative}
.password-visibility-field .password-visibility-input{padding-right:52px}
.password-visibility-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%);color:var(--text);cursor:pointer;border-radius:999px;box-shadow:0 6px 14px color-mix(in srgb,#020617 12%,transparent);opacity:1;z-index:3;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.password-visibility-toggle:hover,.password-visibility-toggle:focus-visible{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:color-mix(in srgb,var(--accent) 56%,var(--border));color:var(--text);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.password-visibility-toggle.is-visible{color:var(--accent)}
.password-visibility-toggle svg{width:18px;height:18px;display:block}

/* Titulo profesional para el login de administradores */
.login-page .login-header{width:100%;max-width:460px;margin:0 auto 12px auto;text-align:center}
.login-page .login-title{font-family:'Arial Black','Segoe UI Semibold','Segoe UI',Arial,sans-serif;font-weight:900;font-size:clamp(1.25rem,3.4vw,2rem);line-height:1.12;color:var(--login-title-color);margin:0 0 8px 0;letter-spacing:0;text-transform:none;white-space:nowrap;overflow-wrap:normal}
.login-page .login-title-image{display:flex;align-items:center;justify-content:center;margin:0 0 6px 0;line-height:1}
.login-page .login-brand-image{display:block;width:clamp(188px,34vw,248px);height:auto;max-height:92px;object-fit:contain}
.login-header-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.login-header-actions .btn{min-height:42px;white-space:nowrap}
.login-theme-control{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}
.login-theme-control span{font-size:.82rem;font-weight:800;color:var(--muted)}
.login-theme-control select{min-width:132px;height:32px;padding:4px 28px 4px 10px;border-radius:6px;background:var(--form-input-bg);border-color:var(--form-border);color:var(--text);font-weight:700}
.login-help-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--accent);font-weight:900;font-size:1.1rem;text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}
.login-help-icon:hover,.login-help-icon:focus-visible{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--text);outline:none}
.login-page .login-help-link{color:var(--login-link-color);text-decoration:underline;font-weight:700;font-size:0.95rem;font-family:'Playfair Display', Georgia, 'Segoe UI', Roboto, Arial, sans-serif}
.login-bottom-actions{display:flex;justify-content:center;margin-top:12px}
.login-bottom-actions .btn{min-height:42px}
.login-bottom-actions{gap:10px;flex-wrap:wrap}
.pwa-install-btn{font-weight:900}
.pwa-install-message{max-width:420px;margin:8px auto 0;text-align:center;color:var(--muted)}

@media (min-width: 980px) {
  .login-page .login-header,
  .login-page .container {
    position: relative;
    z-index: 2;
  }

  .login-executive-visual-wrap {
    display: block;
    position: fixed;
    right: clamp(-10px, 2vw, 28px);
    bottom: clamp(10px, 3vw, 48px);
    width: clamp(232px, 25vw, 408px);
    max-height: min(56vh, 430px);
    pointer-events: none;
    user-select: none;
    opacity: .96;
    z-index: 1;
    isolation: isolate;
  }

  .login-executive-visual-wrap::before,
  .login-executive-visual-wrap::after{
    content:"";
    position:absolute;
    inset:auto;
    border-radius:999px;
    pointer-events:none;
    z-index:-1;
    filter:blur(26px);
    opacity:.95;
  }

  .login-executive-visual-wrap::before{
    width:58%;
    height:42%;
    left:8%;
    bottom:8%;
    background:radial-gradient(circle, var(--login-visual-glow-secondary) 0%, transparent 74%);
  }

  .login-executive-visual-wrap::after{
    width:48%;
    height:36%;
    right:6%;
    top:10%;
    background:radial-gradient(circle, var(--login-visual-glow-primary) 0%, transparent 72%);
  }
}

@media (min-width: 980px) and (max-width: 1240px) {
  .login-executive-visual-wrap {
    right: -34px;
    width: clamp(204px, 22vw, 318px);
    opacity: .62;
  }
}
.register-admin-page .container{max-width:640px}
.register-admin-page .login-header{max-width:640px}
.register-admin-page .login-title{white-space:normal;overflow-wrap:anywhere}
.register-admin-page .card{padding:30px 32px}
.admin-link-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.auth-alt-actions .admin-link-btn{min-height:42px}
.auth-actions-top{margin-bottom:14px}
.selector-page-title{display:inline-block;margin-right:12px}
.selector-add-btn{vertical-align:middle}
.selector-form{margin-bottom:18px}
.selector-type-preview{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:0 0 14px;
  padding:14px 16px;
  border:1px solid color-mix(in srgb,var(--border) 70%,var(--accent) 30%);
  border-radius:14px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 90%,var(--accent) 10%),color-mix(in srgb,var(--surface-soft) 88%,var(--accent-2) 12%));
  box-shadow:0 14px 28px color-mix(in srgb,var(--bg) 70%,transparent);
}
.selector-type-preview[hidden]{display:none}
.selector-type-preview__media{
  width:54px;
  height:54px;
  flex:0 0 54px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:color-mix(in srgb,var(--surface) 82%,white 18%);
  border:1px solid color-mix(in srgb,var(--border) 78%,var(--accent) 22%);
}
.selector-type-preview__media img{
  width:34px;
  height:34px;
  object-fit:contain;
}
.selector-type-preview__body{
  min-width:0;
  display:grid;
  gap:5px;
}
.selector-type-preview__kicker{
  color:var(--accent);
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.selector-type-preview__body strong{
  color:var(--text);
  font-size:1rem;
}
.selector-type-preview__body p{
  margin:0;
  color:var(--muted);
  line-height:1.35;
}
.selector-type-preview__chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:4px;
}
.selector-type-preview__chips span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--accent) 12%,var(--surface));
  border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);
  color:color-mix(in srgb,var(--text) 82%,var(--accent) 18%);
  font-size:.76rem;
  font-weight:800;
}
.accept-card{text-align:center;padding:22px;border-radius:12px}
.accept-actions{display:flex;gap:12px;justify-content:center;margin-top:18px}
.accept-help{color:var(--muted);margin-top:8px}
.accept-link{color:var(--accent);font-weight:800;text-decoration:underline}
.epayco-response-card{max-width:560px;margin:0 auto;text-align:center}
.epayco-response-title{margin-bottom:10px}
.epayco-response-actions{justify-content:center;margin-top:18px}
.epayco-response-copy{max-width:32rem;margin-left:auto;margin-right:auto}

.login-usuario-body{min-height:100vh;background:var(--bg);color:var(--text)}
.login-usuario-page{position:relative;min-height:100vh;padding:24px 14px;background:radial-gradient(circle at top left, color-mix(in srgb, var(--accent-yellow) 18%, transparent), transparent 38%),radial-gradient(circle at right 10%, color-mix(in srgb, var(--accent-2) 14%, transparent), transparent 30%),linear-gradient(180deg, var(--bg-alt), var(--bg));color:var(--text);transition:background .2s ease,color .2s ease;overflow:hidden}
.login-usuario-hero-visual{position:fixed;right:clamp(-10px,2vw,28px);bottom:clamp(10px,3vw,48px);top:auto;width:clamp(232px,25vw,408px);max-height:min(56vh,430px);aspect-ratio:32/21;margin:0;z-index:1;pointer-events:none;user-select:none;opacity:.96;isolation:isolate}
.login-usuario-hero-visual::before,
.login-usuario-hero-visual::after{content:"";position:absolute;border-radius:999px;pointer-events:none;z-index:-1;filter:blur(22px)}
.login-usuario-hero-visual::before{width:62%;height:42%;left:6%;bottom:10%;background:radial-gradient(circle, var(--login-visual-glow-secondary) 0%, transparent 74%);opacity:.92}
.login-usuario-hero-visual::after{width:48%;height:38%;right:4%;top:12%;background:radial-gradient(circle, var(--login-visual-glow-tertiary) 0%, transparent 72%);opacity:.88}
.login-usuario-hero-visual img{display:block;width:100%;height:100%;object-fit:cover;border-radius:24px;box-shadow:0 16px 30px color-mix(in srgb,#020617 14%,transparent),0 0 0 1px color-mix(in srgb,var(--border) 44%,transparent);filter:drop-shadow(0 10px 18px color-mix(in srgb,var(--login-visual-shadow, #020617) 18%,transparent))}
.login-usuario-page .login-header,.login-usuario-page .container{position:relative;z-index:2}
.login-usuario-page .card{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-soft)}
.login-usuario-page .form-input,.login-usuario-page input,.login-usuario-page select,.login-usuario-page textarea{background:var(--form-input-bg);border-color:var(--form-border);color:var(--text)}
.login-usuario-page .form-input::placeholder,.login-usuario-page input::placeholder,.login-usuario-page textarea::placeholder{color:color-mix(in srgb,var(--muted) 74%,transparent)}
.login-usuario-page .form-label,.login-usuario-page h2,.login-usuario-page h3{color:var(--text)}
.login-usuario-page .login-title{color:var(--login-title-color)}
.login-usuario-page .login-inline-links a{color:var(--login-link-color)}
.login-usuario-page .password-visibility-toggle{color:var(--muted);background:transparent;border-color:var(--form-border)}
.login-usuario-page .password-visibility-toggle:hover{color:var(--text);background:var(--toggle-hover-bg)}
.login-usuario-page .auth-message.error{color:var(--status-danger)}
.login-usuario-page .auth-message.success{color:var(--status-success)}
.login-usuario-page .container.login-usuario-shell{max-width:1120px}
.login-usuario-header{max-width:900px !important}
.login-usuario-eyebrow{margin:0 0 10px 0;color:var(--accent-yellow);font-size:.84rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.login-usuario-card{padding:32px !important;text-align:left !important}
.login-usuario-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:22px;align-items:start}
.login-usuario-panel{display:flex;flex-direction:column;gap:18px}
.login-usuario-panel h2{margin:0 0 8px 0}
.login-usuario-intro p{margin:0;color:var(--muted);line-height:1.6}
.login-usuario-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:color-mix(in srgb, var(--accent-yellow) 14%, transparent);color:var(--accent-yellow);font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;border:1px solid color-mix(in srgb, var(--accent-yellow) 22%, transparent)}
.login-usuario-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.login-usuario-highlight{border:1px solid var(--public-panel-soft-border);border-radius:16px;padding:16px;background:var(--public-panel-bg);box-shadow:0 14px 28px var(--public-panel-shadow)}
.login-usuario-highlight h3{margin:0 0 8px 0;font-size:1rem}
.login-usuario-highlight p{margin:0 0 14px 0;color:var(--muted);line-height:1.5}
.login-usuario-highlight .btn{width:100%}
.login-usuario-contract{margin:14px 0;padding:14px 16px;border:1px solid color-mix(in srgb, var(--accent-yellow) 20%, var(--border));border-radius:10px;background:linear-gradient(180deg, color-mix(in srgb, var(--accent-yellow) 8%, var(--surface)), var(--surface));box-shadow:0 14px 28px color-mix(in srgb, var(--public-panel-shadow) 64%, transparent)}
.login-usuario-contract.requires-attention{border-color:var(--accent-yellow);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-yellow) 18%, transparent),0 18px 30px var(--public-panel-shadow)}
.login-usuario-contract-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.login-usuario-contract-head h3{margin:0}
.login-usuario-contract-label{margin:0 0 6px 0;color:var(--accent-yellow);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.login-usuario-contract-version{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;background:var(--content-soft-bg-2);border:1px solid var(--content-soft-border);color:var(--text);font-size:.82rem;font-weight:800;white-space:nowrap}
.login-usuario-contract-summary,.login-usuario-contract-note{margin:0;color:var(--muted);line-height:1.6}
.login-usuario-contract-note{margin-top:10px}
.login-usuario-contract-acceptance{margin-top:14px}
.login-usuario-contract-links{margin-top:10px}
.login-usuario-company-box{border:1px solid var(--public-panel-soft-border);border-radius:16px;padding:16px;background:var(--public-panel-soft-bg)}
.login-usuario-company-box .form-help,.login-usuario-company-box .login-card-note{margin-bottom:0}
.login-usuario-context-note{margin:0 0 16px;color:var(--muted);line-height:1.55;text-align:left}
.login-usuario-form-card{padding:20px;border:1px solid var(--public-panel-soft-border);border-radius:18px;background:var(--public-panel-bg);box-shadow:0 18px 28px var(--public-panel-shadow)}
.login-usuario-form-head{margin-bottom:14px}
.login-usuario-form-head h2{margin:0 0 6px 0}
.login-usuario-form-head .form-help{margin:0}
.login-usuario-form-tag{margin:0 0 8px 0;color:var(--public-panel-accent);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.login-usuario-modal[hidden]{display:none}
.login-usuario-modal{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px;color:var(--text)}
.login-usuario-modal .modal__backdrop{position:absolute;inset:0;background:color-mix(in srgb,#000 52%,transparent)}
.login-usuario-modal .modal__panel{position:relative;width:min(900px,calc(100vw - 32px));max-height:min(86vh,780px);display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.32);overflow:hidden}
.login-usuario-modal .modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.login-usuario-modal .modal__header h2{margin:0;color:var(--text)}
.login-usuario-modal .modal__body{padding:18px 20px;color:var(--text);background:var(--surface)}
.login-usuario-modal .modal__body p{margin:0 0 12px;color:var(--text)}

@media (min-width: 980px) and (max-width: 1240px){
  .login-usuario-hero-visual{
    right:-34px;
    width:clamp(204px,22vw,318px);
    opacity:.62;
  }
}

@media (max-width:960px){
  .login-usuario-page{overflow:visible}
  .login-usuario-hero-visual{position:static;width:min(188px,56vw);margin:0 auto 8px}
  .login-usuario-grid{grid-template-columns:1fr}
  .login-usuario-highlights{grid-template-columns:1fr}
}

@media (max-width:420px){
  .login-usuario-hero-visual{width:min(154px,52vw);margin-bottom:4px}
  .login-usuario-card{padding:18px !important}
  .login-usuario-contract-head{flex-direction:column}
}

.google-btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;background:white;color:#202124;padding:6px 10px;border-radius:8px;border:1px solid rgba(0,0,0,0.08);text-decoration:none;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,0.06);font-size:0.95rem}
.google-btn svg{width:18px;height:18px;flex:0 0 18px}
.google-btn span{display:inline-block}
.google-btn:hover{box-shadow:0 4px 14px rgba(2,6,23,0.12)}

/* Ajustes responsivos */
@media (max-width:420px){.login-page .card{padding:18px}.google-btn{width:100%;justify-content:center}}
@media (max-width:420px){.login-email-submit{width:100%}.login-inline-links,.auth-alt-actions{flex-direction:column;align-items:stretch}.login-inline-links a{text-align:center}.auth-alt-actions .btn{width:100%}}

/* Recordar cuenta - login */
.remember-row{margin-top:12px;margin-bottom:6px;text-align:left}
.remember-label{color:var(--muted);font-weight:600;display:inline-flex;align-items:center;gap:8px}
.remember-label input[type="checkbox"]{width:16px;height:16px}
.remember-hint{margin:0 0 10px 0;font-size:.92rem;color:var(--muted);text-align:left}
.remember-hint strong{color:var(--text)}
.remember-hint a{margin-left:8px;color:var(--accent);text-decoration:underline;font-weight:700}

/* Portal principal - layout empresarial */
.portal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;background:linear-gradient(90deg, var(--portal-header-start), var(--portal-header-end));border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;flex-wrap:wrap}
.portal-header .brand{font-size:1.15rem;font-weight:800}
.nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.nav-actions .btn{background:transparent;color:var(--text);border:1px solid transparent;padding:8px 12px;border-radius:8px}
.nav-actions .portal-header-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(196px, 19vw, 220px);
  min-height:36px;
  padding:7px 12px;
  border-radius:999px;
  font-weight:800;
  font-size:0.84rem;
  line-height:1.1;
  letter-spacing:.01em;
  text-align:center;
}
.nav-actions .portal-header-btn::before,
.nav-actions .portal-header-btn::after{
  content:none;
}
.nav-actions .portal-header-btn span{position:static}
.portal-header-actions-split{flex:1 1 auto;width:100%}
.portal-header-actions-split .portal-header-btn-contact{margin-left:auto}

.portal-main{padding:clamp(10px, 1.8vw, 18px)}
/* Reducir margen superior solo en la página del portal para subir el título */
.portal-main.container{margin-top:clamp(8px, 1.4vw, 12px)}
.portal-intro{max-width:1100px;margin:0 auto 18px auto;display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;padding:clamp(4px, 1vw, 12px) 0}
.portal-intro-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;max-width:min(100%, 52rem)}
.portal-intro h1{margin:0;font-size:clamp(2rem, 4vw, 2.8rem);color:var(--portal-title-color);font-family:'Playfair Display', Georgia,'Segoe UI',Roboto,Arial,sans-serif;font-weight:800;letter-spacing:0.6px;line-height:1.05;text-wrap:balance}
.brand-title{display:flex;flex-wrap:wrap;justify-content:center;gap:0 .3ch}
.brand-title span{display:inline-block}
.brand-title-highlight{
  display:inline-flex;
  align-self:center;
  padding:.22em .68em .28em;
  border-radius:999px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--portal-header-end) 24%, transparent), color-mix(in srgb, var(--surface) 30%, white 70%), color-mix(in srgb, var(--portal-header-end) 24%, transparent));
  border:1px solid color-mix(in srgb, var(--border) 74%, white 26%);
  box-shadow:0 18px 30px color-mix(in srgb, var(--portal-login-shadow) 55%, transparent), inset 0 1px 0 color-mix(in srgb, white 24%, transparent);
  backdrop-filter:blur(10px);
}
.brand-title-highlight span{position:relative;font-weight:800}
.portal-intro .brand-subtitle{margin:0;font-size:clamp(1rem, 1.8vw, 1.15rem);color:var(--muted);font-weight:600;max-width:44rem;text-wrap:balance}
.portal-intro .muted{display:none}
@media (max-width:720px){.portal-intro{flex-direction:column;align-items:center;text-align:center}.portal-intro .muted{margin-top:8px;display:none}}
@media (max-width:720px){
  .portal-header-actions-split{
    width:100%;
    justify-content:center;
    gap:8px;
  }
  .portal-header-actions-split .portal-header-btn{
    width:min(100%, 214px);
  }
  .portal-header-actions-split .portal-header-btn-contact{
    margin-left:0;
  }
}

/* Centro del CTA de login en la página principal */
.portal-intro .intro-cta{margin-top:18px;text-align:center}
.portal-intro .intro-cta .btn{min-width:220px;padding:12px 18px}

/* Dark mode button style for header login */
.btn.dark{background:linear-gradient(180deg,#20466f,#1a3555);color:#eef6ff;border:1px solid rgba(149,182,216,0.3);padding:10px 14px;border-radius:8px;font-weight:700}
.btn.dark:hover{background:linear-gradient(180deg,#26517f,#1d3d63);}

.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1100px;margin:0 auto}
/* Alinear tarjetas en la página de selección de empresa a la izquierda */
.portal-grid.empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start;
  grid-auto-rows:1fr;
  margin:0; /* quita el auto-centering */
  justify-items:start; /* alinea el contenido de las celdas a la izquierda */
}

/* Color blanco para el total de empresas en el encabezado de sección */
.empresa-section-header .empresa-group-total{
  color: var(--text);
}
.portal-card{background:linear-gradient(180deg,var(--surface-soft),var(--surface));border:1px solid var(--border);padding:14px;border-radius:12px;box-shadow:0 14px 30px rgba(5,12,24,0.44);display:flex;flex-direction:column;justify-content:space-between}
.portal-card h3{margin:0 0 8px 0;font-weight:800}
.portal-card p{color:var(--muted);flex:1;margin-bottom:12px}
/* Forzar: título de tarjeta en negrita; descripción con peso normal */
.portal-card .card-title{font-weight:800}
.portal-card .card-desc{font-weight:400}
.portal-card .btn.secondary{align-self:flex-start}

.portal-home-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.portal-cards-status{text-align:center;max-width:1100px;margin:10px auto 0 auto}
.portal-home-grid{gap:12px}
/* Compactar tarjetas en la página principal (index) */
.portal-home-grid .portal-card{
  padding:10px;
  border-radius:10px;
  box-shadow:0 10px 22px rgba(5,12,24,0.36);
  justify-content:flex-start;
  height:100%;
}
.portal-home-grid .portal-card h3{margin:0 0 6px 0;font-size:1.05rem}
.portal-home-grid .portal-card p{color:var(--public-panel-muted);flex:1 1 auto;margin-bottom:8px;line-height:1.38}
.portal-home-grid .portal-card .card-actions{margin-top:8px}
.portal-contact-action{display:flex;justify-content:center;align-items:center;max-width:1100px;margin:20px auto 0 auto}
.portal-contact-btn{min-width:min(100%, 240px)}

.whatsapp-floating-cta{
  position:fixed;
  top:auto;
  right:18px;
  bottom:20px;
  z-index:9998;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  background:linear-gradient(135deg,#25d366,#128c7e);
  color:#ffffff;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 18px 34px rgba(6,34,22,0.38);
  border:1px solid rgba(255,255,255,0.22);
}
.whatsapp-floating-cta:hover{filter:brightness(1.03)}
.whatsapp-floating-icon{
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(255,255,255,0.14);
  flex:0 0 36px;
}
.whatsapp-floating-icon svg{
  width:22px;
  height:22px;
  fill:currentColor;
}
.whatsapp-floating-text{
  letter-spacing:.01em;
}

.contact-page-shell{
  min-height:100vh;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, transparent), transparent 34%),
    linear-gradient(225deg, color-mix(in srgb, var(--accent-2) 8%, transparent), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
.contact-page-main{
  max-width:1120px;
  margin:0 auto;
  padding:clamp(16px, 3vw, 32px) 16px 34px;
}
.contact-hero-card{
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(260px, .65fr);
  gap:24px;
  align-items:stretch;
  margin:0 auto 18px auto;
  padding:clamp(22px, 3vw, 34px);
  border:1px solid var(--public-panel-border);
  border-radius:8px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--surface-soft) 90%, white 10%), color-mix(in srgb, var(--surface) 94%, var(--accent) 6%));
  box-shadow:0 18px 36px var(--public-panel-shadow);
}
.contact-hero-copy{
  display:grid;
  align-content:center;
  justify-items:start;
  gap:14px;
}
.contact-hero-badge{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:var(--public-hero-badge-bg);
  border:1px solid var(--public-hero-badge-border);
  color:var(--public-hero-badge-text);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.contact-hero-card h1{
  margin:0;
  color:var(--text);
  font-family:'Segoe UI', Roboto, Arial, sans-serif;
  font-size:clamp(2rem, 4vw, 3.15rem);
  line-height:1.02;
  letter-spacing:0;
}
.contact-hero-card p{
  max-width:720px;
  margin:0;
  color:var(--muted);
  font-size:clamp(1rem, 1.6vw, 1.14rem);
  line-height:1.55;
}
.contact-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:4px;
}
.contact-primary-action{
  min-width:180px;
}
.contact-hero-panel{
  display:grid;
  gap:14px;
  align-content:center;
  padding:18px;
  border-radius:8px;
  border:1px solid var(--public-panel-soft-border);
  background:color-mix(in srgb, var(--surface) 82%, var(--accent) 7%);
}
.contact-brand-image{
  display:block;
  width:min(100%, 260px);
  height:auto;
  margin:0 auto;
  object-fit:contain;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.18));
}
.contact-response-box{
  display:grid;
  gap:4px;
  padding:12px;
  border-left:4px solid var(--accent);
  background:var(--public-panel-soft-bg);
  color:var(--text);
}
.contact-response-box span{
  color:var(--muted);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.contact-card{
  padding:20px;
  border:1px solid var(--public-panel-border);
  border-radius:8px;
  background:var(--public-panel-bg);
  box-shadow:0 14px 28px var(--public-panel-shadow);
}
.contact-card h2{
  margin:0 0 14px 0;
  color:var(--public-panel-text);
  font-size:1.18rem;
  letter-spacing:0;
}
.contact-card-highlight,
.contact-advisor-card{
  background:var(--public-panel-bg);
}
.contact-channel-list{
  display:grid;
  gap:10px;
}
.contact-channel{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-height:68px;
  padding:12px;
  border-radius:8px;
  background:var(--public-panel-soft-bg);
  border:1px solid var(--public-panel-soft-border);
  text-decoration:none;
  color:var(--public-panel-text);
}
.contact-channel:hover{
  border-color:color-mix(in srgb, var(--accent) 44%, var(--public-panel-soft-border));
  background:color-mix(in srgb, var(--public-panel-soft-bg) 78%, var(--accent) 8%);
}
.contact-channel-icon{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  color:var(--btn-primary-text);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.04em;
}
.contact-channel-label{
  display:block;
  color:var(--public-panel-accent);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  margin-bottom:4px;
}
.contact-channel strong{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--public-panel-text);
  line-height:1.28;
}
.contact-channel > span:last-child{
  min-width:0;
}
.contact-actions{
  margin-top:16px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.contact-service-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.contact-service-strip article{
  display:grid;
  gap:8px;
  padding:16px;
  border-radius:8px;
  border:1px solid var(--public-panel-border);
  background:color-mix(in srgb, var(--surface) 92%, var(--accent) 4%);
}
.contact-service-strip span{
  color:var(--public-panel-accent);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
}
.contact-service-strip strong{
  color:var(--text);
  font-size:1rem;
}
.contact-service-strip p{
  margin:0;
  color:var(--muted);
  line-height:1.45;
}

@media (max-width:860px){
  .contact-hero-card,
  .contact-grid,
  .contact-service-strip{
    grid-template-columns:1fr;
  }
  .contact-hero-panel{
    order:-1;
  }
  .contact-brand-image{
    max-width:220px;
  }
}

@media (max-width:520px){
  .contact-page-main{
    padding-left:12px;
    padding-right:12px;
  }
  .contact-hero-card,
  .contact-card,
  .contact-service-strip article{
    padding:16px;
  }
  .contact-hero-actions,
  .contact-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .contact-hero-actions .btn,
  .contact-actions .btn{
    width:100%;
  }
  .contact-channel{
    grid-template-columns:36px minmax(0,1fr);
    gap:10px;
  }
  .contact-channel-icon{
    width:36px;
    height:36px;
    font-size:.72rem;
  }
  .contact-channel strong{
    font-size:.9rem;
  }
}

.public-utility-page{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 18%, transparent), transparent 30%),
    radial-gradient(circle at top right, color-mix(in srgb, var(--accent-2) 16%, transparent), transparent 26%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
  color:var(--text);
}
.public-utility-shell{
  max-width:1120px;
  margin:0 auto;
  padding:24px 16px 56px;
}
.public-utility-stack{
  display:grid;
  gap:18px;
}
.public-utility-hero,
.public-utility-card{
  border:1px solid var(--public-panel-border);
  border-radius:22px;
  box-shadow:0 18px 36px var(--public-panel-shadow);
}
.public-utility-hero{
  padding:26px;
  background:var(--public-hero-bg);
}
.public-utility-card{
  padding:20px;
  background:var(--public-panel-bg);
  color:var(--public-panel-text);
}
.public-utility-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--public-hero-badge-bg);
  border:1px solid var(--public-hero-badge-border);
  color:var(--public-hero-badge-text);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.public-utility-hero h1,
.public-utility-card h2{
  margin:0 0 10px 0;
}
.public-utility-hero h1{
  color:var(--public-hero-title);
  font-family:'Playfair Display', Georgia, 'Segoe UI', Roboto, Arial, sans-serif;
  font-size:clamp(2rem, 4vw, 2.8rem);
  line-height:1.06;
}
.public-utility-hero p,
.public-utility-copy{
  color:var(--public-hero-copy);
  line-height:1.62;
}
.public-utility-copy{
  color:var(--public-panel-muted);
}
.public-utility-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}
.public-utility-card-soft{
  padding:16px;
  border-radius:18px;
  background:var(--public-panel-soft-bg);
  border:1px solid var(--public-panel-soft-border);
}
.public-utility-inline-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.public-utility-status{
  min-height:24px;
}

@media (max-width:760px){
  .public-utility-shell{
    padding:18px 12px 44px;
  }
  .public-utility-grid{
    grid-template-columns:1fr;
  }
  .public-utility-hero,
  .public-utility-card{
    padding:18px;
    border-radius:18px;
  }
}

@media (max-width:560px){
  .whatsapp-floating-cta{
    top:auto;
    right:12px;
    bottom:calc(14px + env(safe-area-inset-bottom, 0px));
    padding:10px;
    min-width:52px;
    min-height:52px;
    justify-content:center;
  }
  .whatsapp-floating-icon{width:32px;height:32px;flex:0 0 32px}
  .whatsapp-floating-text{
    display:none;
  }
  .portal-main{padding-bottom:84px}
}

.home-offer-card{
  position:relative;
  isolation:isolate;
  min-height:280px;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:16px;
  color:#fff;
  text-align:left;
  padding:18px;
  overflow:hidden;
  box-shadow:0 18px 34px rgba(10,18,31,0.28);
  animation:homeOfferIn .45s ease both;
  background:linear-gradient(145deg,var(--home-offer-a,#ff7b54),var(--home-offer-b,#ff4d8d));
}
.home-offer-card::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-65px;
  top:-70px;
  border-radius:999px;
  background:rgba(255,255,255,0.2);
  z-index:-1;
}
.home-offer-card::after{
  content:"";
  position:absolute;
  width:120px;
  height:120px;
  left:-45px;
  bottom:-55px;
  border-radius:999px;
  background:rgba(255,255,255,0.14);
  z-index:-1;
}
.home-offer-card h3{
  margin:12px 0 0 0;
  color:#ffffff;
  font-size:1.18rem;
  letter-spacing:.02em;
  padding:12px 14px 6px;
}
.home-offer-card p{
  color:var(--accent-yellow-light);
  font-size:.98rem;
  line-height:1.45;
  font-weight:800;
  margin:0;
  padding:0 14px 14px;
  flex:1 1 auto;
}
.home-offer-card .home-offer-media{
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.portal-card .card-logo,
.home-offer-card .card-logo{
  width: var(--index-logo-size);
  height: var(--index-logo-size);
  min-width: var(--index-logo-size);
  min-height: var(--index-logo-size);
  flex: 0 0 var(--index-logo-size);
  display:block;
  object-fit: contain;
  margin:0;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,0.28));
}
.home-offer-card .card-actions{
  margin-top:auto;
  display:flex;
  justify-content:center;
  width:100%;
  padding-top:10px;
}
.home-offer-card .home-offer-btn,
.nav-actions .portal-header-btn,
.portal-contact-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 12px;
  border-radius:999px;
  background:var(--portal-cta-bg);
  color:var(--portal-cta-color);
  text-decoration:none;
  font-weight:800;
  font-size:.84rem;
  line-height:1.1;
  letter-spacing:.01em;
  border:1px solid var(--portal-cta-border);
  box-shadow:0 10px 18px var(--portal-cta-shadow);
}
.nav-actions .portal-header-btn-login{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,var(--surface-soft),var(--surface));
  border:1px solid var(--portal-login-border);
  color:var(--portal-login-color);
  box-shadow:0 16px 30px var(--portal-login-shadow);
}
.nav-actions .portal-header-btn-login::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--portal-login-gloss);
  pointer-events:none;
}
.nav-actions .portal-header-btn-login span{
  position:relative;
  font-weight:900;
  text-shadow:0 1px 6px var(--portal-login-text-shadow);
}

html[data-theme="light"] .login-usuario-page,
html[data-theme="light-rose"] .login-usuario-page,
html[data-theme="light-gold"] .login-usuario-page,
html[data-theme="light-wood"] .login-usuario-page{
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent-yellow) 20%, transparent), transparent 38%),
    radial-gradient(circle at right 10%, color-mix(in srgb, var(--accent-2) 16%, transparent), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
html[data-theme="dark"] .login-usuario-page,
html[data-theme="dark-violet"] .login-usuario-page,
html[data-theme="dark-emerald"] .login-usuario-page,
html[data-theme="dark-corporate"] .login-usuario-page,
html[data-theme="dark-absolute"] .login-usuario-page,
html[data-theme="dark-obsidian"] .login-usuario-page,
html[data-theme="dark-neon"] .login-usuario-page{
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 18%, transparent), transparent 36%),
    radial-gradient(circle at right 10%, color-mix(in srgb, var(--accent-2) 16%, transparent), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
html[data-theme="dark-neon"] .login-usuario-page{
  background:
    radial-gradient(circle at 12% 8%, rgba(0,245,255,.18), transparent 34%),
    radial-gradient(circle at 92% 8%, rgba(255,43,214,.13), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
html[data-theme="dark"] .login-usuario-page .card,
html[data-theme="dark-violet"] .login-usuario-page .card,
html[data-theme="dark-emerald"] .login-usuario-page .card,
html[data-theme="dark-corporate"] .login-usuario-page .card,
html[data-theme="dark-absolute"] .login-usuario-page .card,
html[data-theme="dark-obsidian"] .login-usuario-page .card,
html[data-theme="dark-neon"] .login-usuario-page .card,
html[data-theme="dark"] .login-theme-control,
html[data-theme="dark-violet"] .login-theme-control,
html[data-theme="dark-emerald"] .login-theme-control,
html[data-theme="dark-corporate"] .login-theme-control,
html[data-theme="dark-absolute"] .login-theme-control,
html[data-theme="dark-obsidian"] .login-theme-control,
html[data-theme="dark-neon"] .login-theme-control{
  background:color-mix(in srgb, var(--surface) 94%, black 6%);
  border-color:color-mix(in srgb, var(--border) 82%, var(--accent) 18%);
}
html[data-theme="dark-neon"] .login-usuario-page .card,
html[data-theme="dark-neon"] .login-theme-control{
  box-shadow:0 18px 38px rgba(0,0,0,.32),0 0 0 1px color-mix(in srgb, var(--accent) 24%, transparent);
}
html[data-theme="light"] .login-usuario-eyebrow,
html[data-theme="light-rose"] .login-usuario-eyebrow,
html[data-theme="light-gold"] .login-usuario-eyebrow,
html[data-theme="light"] .login-usuario-badge,
html[data-theme="light-rose"] .login-usuario-badge,
html[data-theme="light-gold"] .login-usuario-badge,
html[data-theme="light"] .login-usuario-contract-label,
html[data-theme="light-rose"] .login-usuario-contract-label,
html[data-theme="light-gold"] .login-usuario-contract-label,
html[data-theme="light"] .login-usuario-form-tag,
html[data-theme="light-rose"] .login-usuario-form-tag,
html[data-theme="light-gold"] .login-usuario-form-tag,
html[data-theme="light-wood"] .login-usuario-eyebrow,
html[data-theme="light-wood"] .login-usuario-badge,
html[data-theme="light-wood"] .login-usuario-contract-label,
html[data-theme="light-wood"] .login-usuario-form-tag{
  color:var(--accent);
}
html[data-theme="light"] .login-usuario-highlight,
html[data-theme="light-rose"] .login-usuario-highlight,
html[data-theme="light-gold"] .login-usuario-highlight,
html[data-theme="light"] .login-usuario-contract,
html[data-theme="light-rose"] .login-usuario-contract,
html[data-theme="light-gold"] .login-usuario-contract,
html[data-theme="light"] .login-usuario-company-box,
html[data-theme="light-rose"] .login-usuario-company-box,
html[data-theme="light-gold"] .login-usuario-company-box,
html[data-theme="light"] .login-usuario-form-card,
html[data-theme="light-rose"] .login-usuario-form-card,
html[data-theme="light-gold"] .login-usuario-form-card,
html[data-theme="light-wood"] .login-usuario-highlight,
html[data-theme="light-wood"] .login-usuario-contract,
html[data-theme="light-wood"] .login-usuario-company-box,
html[data-theme="light-wood"] .login-usuario-form-card{
  background:var(--public-panel-bg);
  border-color:var(--public-panel-border);
  box-shadow:0 16px 28px var(--public-panel-shadow);
}
html[data-theme="light"] .login-usuario-contract-version,
html[data-theme="light-rose"] .login-usuario-contract-version,
html[data-theme="light-gold"] .login-usuario-contract-version,
html[data-theme="light-wood"] .login-usuario-contract-version{
  background:var(--public-panel-soft-bg);
  color:var(--public-panel-text);
}
html[data-theme="dark"] .login-usuario-contract,
html[data-theme="dark-violet"] .login-usuario-contract,
html[data-theme="dark-emerald"] .login-usuario-contract,
html[data-theme="dark-corporate"] .login-usuario-contract,
html[data-theme="dark-absolute"] .login-usuario-contract,
html[data-theme="dark-obsidian"] .login-usuario-contract,
html[data-theme="dark-neon"] .login-usuario-contract{
  background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 90%, var(--accent) 10%), color-mix(in srgb, var(--surface) 96%, black 4%));
  border-color:color-mix(in srgb, var(--accent) 24%, var(--border) 76%);
}
html[data-theme="dark"] .login-usuario-modal .modal__panel,
html[data-theme="dark-violet"] .login-usuario-modal .modal__panel,
html[data-theme="dark-emerald"] .login-usuario-modal .modal__panel,
html[data-theme="dark-corporate"] .login-usuario-modal .modal__panel,
html[data-theme="dark-absolute"] .login-usuario-modal .modal__panel,
html[data-theme="dark-obsidian"] .login-usuario-modal .modal__panel,
html[data-theme="dark-neon"] .login-usuario-modal .modal__panel{
  background:var(--surface);
  color:var(--text);
  border-color:color-mix(in srgb, var(--border) 80%, var(--accent) 20%);
}
.home-offer-card .home-offer-btn:hover,
.nav-actions .portal-header-btn:hover,
.portal-contact-btn:hover{filter:brightness(0.98)}

.portal-home-grid .home-offer-card:nth-child(6n+1){--home-offer-a:#ff7b54;--home-offer-b:#ff4d8d}
.portal-home-grid .home-offer-card:nth-child(6n+2){--home-offer-a:#2563eb;--home-offer-b:#06b6d4}
.portal-home-grid .home-offer-card:nth-child(6n+3){--home-offer-a:#14b8a6;--home-offer-b:#84cc16}
.portal-home-grid .home-offer-card:nth-child(6n+4){--home-offer-a:#f59e0b;--home-offer-b:#ef4444}
.portal-home-grid .home-offer-card:nth-child(6n+5){--home-offer-a:#8b5cf6;--home-offer-b:#ec4899}
.portal-home-grid .home-offer-card:nth-child(6n+6){--home-offer-a:#0ea5e9;--home-offer-b:#22c55e}

@keyframes homeOfferIn{
  from{opacity:0;transform:translateY(12px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.systems-main{max-width:1180px;margin:0 auto;padding-bottom:32px}
.systems-main-compact{padding-top:12px}
.systems-hero,
.systems-nav-panel,
.system-detail-card{
  border:1px solid var(--public-panel-border);
  box-shadow:0 18px 36px var(--public-panel-shadow);
}
.systems-hero{
  position:relative;
  overflow:hidden;
  margin:0 auto 20px auto;
  padding:28px;
  border-radius:22px;
  background:var(--public-hero-bg);
}
.systems-hero::after{
  content:"";
  position:absolute;
  width:200px;
  height:200px;
  right:-72px;
  bottom:-86px;
  border-radius:999px;
  background:rgba(255,255,255,0.08);
}
.systems-eyebrow{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--public-hero-badge-bg);
  border:1px solid var(--public-hero-badge-border);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--public-hero-badge-text);
  margin-bottom:12px;
}
.systems-hero h1{
  margin:0 0 12px 0;
  color:var(--public-hero-title);
  font-family:'Playfair Display', Georgia, 'Segoe UI', Roboto, Arial, sans-serif;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.05;
}
.systems-hero p{
  max-width:760px;
  margin:0;
  color:var(--public-hero-copy);
  font-size:1.02rem;
}
.systems-nav-panel{
  margin:0 auto 16px auto;
  padding:18px;
  border-radius:20px;
  display:grid;
  grid-template-columns:minmax(240px, 320px) minmax(0, 1fr);
  gap:18px;
  align-items:start;
  background:var(--public-panel-bg);
  color:var(--public-panel-text);
}
.systems-nav-panel h2{
  margin:0 0 6px 0;
  color:var(--public-panel-text);
  font-size:1.08rem;
}
.systems-nav-panel p{
  margin:0 0 14px 0;
  color:var(--public-panel-muted);
}
.systems-nav-intro{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.systems-nav-menu-shell{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:16px;
  border-radius:18px;
  background:var(--public-panel-soft-bg);
  border:1px solid var(--public-panel-soft-border);
}
.systems-nav-menu-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px 16px;
}
.systems-nav-menu-head p{
  flex:1 1 320px;
  margin:0;
}
.systems-nav-menu-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);
  color:var(--public-panel-accent);
  font-size:.79rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.systems-quick-nav{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}
.systems-nav-link{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:78px;
  padding:14px 16px;
  border-radius:18px;
  background:linear-gradient(145deg, color-mix(in srgb, var(--surface-soft) 86%, var(--accent) 14%), color-mix(in srgb, var(--surface) 90%, var(--accent-2) 10%));
  border:1px solid color-mix(in srgb, var(--public-panel-accent) 18%, transparent);
  color:var(--public-panel-text);
  text-decoration:none;
  font-weight:800;
  box-shadow:0 12px 24px color-mix(in srgb, var(--bg) 72%, transparent);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.systems-nav-link:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb, var(--public-panel-accent) 38%, transparent);
  box-shadow:0 16px 30px color-mix(in srgb, var(--bg) 68%, transparent);
}
.systems-nav-item-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  min-width:48px;
  height:48px;
  border-radius:14px;
  background:color-mix(in srgb, var(--surface) 84%, white 16%);
  border:1px solid color-mix(in srgb, var(--public-panel-accent) 18%, transparent);
  color:var(--public-panel-accent);
  font-size:.88rem;
  font-weight:900;
  letter-spacing:.08em;
}
.systems-nav-item-copy{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  flex-direction:column;
  gap:4px;
}
.systems-nav-item-title{
  color:var(--public-panel-text);
  font-size:1rem;
  line-height:1.15;
}
.systems-nav-item-desc{
  color:var(--public-panel-muted);
  font-size:.86rem;
  font-weight:600;
  line-height:1.3;
}
.systems-nav-item-arrow{
  color:var(--public-panel-accent);
  font-size:1.3rem;
  font-weight:900;
}
.systems-nav-item.is-active{
  border-color:color-mix(in srgb, var(--public-panel-accent) 52%, transparent);
  background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 20%, var(--surface-soft) 80%), color-mix(in srgb, var(--accent-2) 16%, var(--surface) 84%));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--public-panel-accent) 28%, transparent), 0 18px 32px color-mix(in srgb, var(--bg) 64%, transparent);
}
.systems-nav-item.is-active .systems-nav-item-index{
  background:linear-gradient(145deg, var(--accent), color-mix(in srgb, var(--accent-2) 72%, var(--accent) 28%));
  color:var(--btn-primary-text);
  border-color:transparent;
}
.systems-status{
  text-align:center;
  margin:0 auto 16px auto;
}
.systems-main-compact .systems-status{
  margin:0 auto 8px auto;
}
.systems-sections{
  display:grid;
  gap:18px;
}
.system-detail-card{
  display:grid;
  grid-template-columns:minmax(210px,250px) minmax(0,1fr);
  gap:22px;
  padding:22px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(22,37,58,0.96), rgba(13,24,39,0.98));
  scroll-margin-top:90px;
}
.system-detail-card:target{
  border-color:rgba(255,213,138,0.42);
  box-shadow:0 0 0 2px rgba(255,213,138,0.14), 0 20px 40px rgba(5,12,24,0.42);
}
.system-detail-media{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  padding:18px;
  border-radius:18px;
  background:linear-gradient(160deg, rgba(255,255,255,0.07), rgba(255,255,255,0.02));
  border:1px solid rgba(255,255,255,0.08);
  text-align:center;
}
.system-detail-media img{
  width:min(150px, 100%);
  max-height:150px;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,0.3));
}
.system-detail-tag{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,213,138,0.14);
  border:1px solid rgba(255,213,138,0.22);
  color:#fff2cf;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.system-detail-caption{
  margin:0;
  font-size:.9rem;
  color:rgba(232,240,251,0.8);
}
.system-detail-body{
  min-width:0;
}
.system-detail-kicker{
  margin:0 0 8px 0;
  color:#8fd7ff;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  font-weight:900;
}
.system-detail-title{
  margin:0 0 10px 0;
  color:#fff8ea;
  font-family:'Playfair Display', Georgia, 'Segoe UI', Roboto, Arial, sans-serif;
  font-size:clamp(1.4rem, 2.2vw, 2rem);
  line-height:1.08;
}
.system-detail-short{
  margin:0 0 14px 0;
  color:#f6fbff;
  font-size:1.02rem;
  font-weight:700;
}
.system-detail-copy p{
  margin:0 0 12px 0;
  color:rgba(232,240,251,0.9);
}
.system-detail-points-wrap h3{
  margin:8px 0 10px 0;
  color:#f4f8ff;
  font-size:1rem;
}
.system-detail-points{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.system-detail-points li{
  min-height:100%;
  padding:12px 14px;
  border-radius:14px;
  background:linear-gradient(145deg, rgba(20,47,80,0.82), rgba(10,26,46,0.92));
  border:1px solid rgba(149,188,226,0.14);
  color:#eff6ff;
  font-weight:600;
}
.system-detail-actions{
  margin-top:18px;
}
.system-trial-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:180px;
  padding:12px 20px;
  border-radius:999px;
  background:linear-gradient(135deg, #ffd166, #ff9f43);
  color:#1a2232;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 14px 26px rgba(0,0,0,0.28);
  border:1px solid rgba(255,255,255,0.3);
}
.system-trial-btn:hover{
  filter:brightness(1.02);
}

.systems-page{
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 18%, transparent), transparent 26%),
    radial-gradient(circle at top right, color-mix(in srgb, var(--accent-2) 16%, transparent), transparent 24%),
    linear-gradient(180deg, var(--bg-alt), var(--bg) 46%, color-mix(in srgb, var(--bg) 88%, black 12%));
}

.systems-page .systems-main{
  max-width:1240px;
}

.systems-page .systems-hero,
.systems-page .systems-nav-panel{
  position:relative;
  overflow:hidden;
  border:1px solid var(--public-panel-border);
  box-shadow:0 22px 42px var(--public-panel-shadow);
}

.systems-page .systems-hero{
  background:
    radial-gradient(circle at 18% 18%, color-mix(in srgb, white 18%, transparent), transparent 30%),
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 38%, var(--surface-soft) 62%), color-mix(in srgb, #ff7b54 26%, var(--surface-soft) 74%) 34%, color-mix(in srgb, #2563eb 28%, var(--surface) 72%) 68%, color-mix(in srgb, var(--accent-2) 36%, var(--surface) 64%));
}

.systems-page .systems-hero::before{
  content:"";
  position:absolute;
  inset:auto auto -72px -44px;
  width:180px;
  height:180px;
  border-radius:999px;
  background:rgba(255,255,255,0.12);
}

.systems-page .systems-nav-panel{
  background:
    radial-gradient(circle at top right, color-mix(in srgb, white 12%, transparent), transparent 26%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface-soft) 96%, transparent), color-mix(in srgb, var(--surface) 97%, transparent));
}

.systems-page .systems-nav-link{
  background:linear-gradient(145deg, color-mix(in srgb, var(--surface) 84%, white 16%), color-mix(in srgb, var(--surface-soft) 88%, var(--accent) 12%));
  border-color:var(--public-panel-soft-border);
  box-shadow:0 14px 26px var(--public-panel-shadow);
}

.systems-page .systems-nav-link:hover{
  filter:none;
}

.systems-page .systems-sections{
  gap:22px;
}

.systems-page .system-detail-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:320px;
  border:1px solid var(--public-panel-border);
  border-radius:22px;
  color:var(--public-panel-text);
  box-shadow:0 20px 38px var(--public-panel-shadow);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, white 14%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) 84%, var(--home-offer-a,#ff7b54) 16%), color-mix(in srgb, var(--surface-soft) 84%, var(--home-offer-b,#ff4d8d) 16%));
}

.systems-page .system-detail-card::before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-80px;
  top:-86px;
  border-radius:999px;
  background:rgba(255,255,255,0.18);
  z-index:-1;
}

.systems-page .system-detail-card::after{
  content:"";
  position:absolute;
  width:150px;
  height:150px;
  left:-54px;
  bottom:-70px;
  border-radius:999px;
  background:rgba(255,255,255,0.12);
  z-index:-1;
}

.systems-page .systems-sections .system-detail-card:nth-child(6n+1){--home-offer-a:#ff7b54;--home-offer-b:#ff4d8d}
.systems-page .systems-sections .system-detail-card:nth-child(6n+2){--home-offer-a:#2563eb;--home-offer-b:#06b6d4}
.systems-page .systems-sections .system-detail-card:nth-child(6n+3){--home-offer-a:#14b8a6;--home-offer-b:#84cc16}
.systems-page .systems-sections .system-detail-card:nth-child(6n+4){--home-offer-a:#f59e0b;--home-offer-b:#ef4444}
.systems-page .systems-sections .system-detail-card:nth-child(6n+5){--home-offer-a:#8b5cf6;--home-offer-b:#ec4899}
.systems-page .systems-sections .system-detail-card:nth-child(6n+6){--home-offer-a:#0ea5e9;--home-offer-b:#22c55e}

.systems-page .system-detail-media{
  justify-content:flex-start;
  align-items:flex-start;
  text-align:left;
  border:1px solid var(--public-panel-soft-border);
  background:var(--public-panel-soft-bg);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--public-panel-border) 58%, transparent);
}

.systems-page .system-detail-media img{
  width:var(--index-logo-size);
  max-height:none;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,0.28));
}

.systems-page .system-detail-media .system-detail-photo{
  width:min(240px,100%);
  max-height:190px;
  aspect-ratio:4/3;
  object-fit:contain;
  border-radius:14px;
  padding:10px;
  background:color-mix(in srgb, var(--public-panel-bg) 72%, transparent);
  border:1px solid var(--public-panel-soft-border);
}

.systems-page .system-detail-media .system-detail-logo{
  width:42px;
  height:42px;
  object-fit:contain;
  align-self:flex-start;
  border-radius:10px;
  padding:6px;
  background:var(--public-panel-soft-bg);
  border:1px solid var(--public-panel-soft-border);
}

.systems-page .system-detail-tag{
  background:color-mix(in srgb, var(--public-panel-accent) 14%, transparent);
  border-color:color-mix(in srgb, var(--public-panel-accent) 24%, transparent);
  color:var(--public-panel-accent);
}

.systems-page .system-detail-caption,
.systems-page .system-detail-kicker{
  color:var(--public-panel-accent);
}

.systems-page .system-detail-title,
.systems-page .system-detail-short,
.systems-page .system-detail-copy p,
.systems-page .system-detail-points-wrap h3,
.systems-page .system-detail-points li{
  color:var(--public-panel-text);
}

.systems-page .system-detail-short{
  color:var(--portal-title-color);
  text-shadow:none;
}

.systems-page .system-detail-copy p{
  color:var(--public-panel-muted);
  line-height:1.58;
}

.systems-page .system-detail-points li{
  background:var(--public-panel-soft-bg);
  border:1px solid var(--public-panel-soft-border);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--public-panel-border) 54%, transparent);
}

.systems-page .system-detail-actions{
  margin-top:20px;
}

.systems-page .system-trial-btn{
  min-width:200px;
}

.systems-page .system-trial-btn.home-offer-btn{
  background:var(--portal-cta-bg);
  color:var(--portal-cta-color);
  border:1px solid var(--portal-cta-border);
  box-shadow:0 10px 18px var(--portal-cta-shadow);
}

.systems-main[data-card-size="pequeno"] .system-detail-card{min-height:280px;padding:18px;border-radius:18px}
.systems-main[data-card-size="mediano"] .system-detail-card{min-height:320px}
.systems-main[data-card-size="grande"] .system-detail-card{min-height:360px;padding:28px;border-radius:24px}
.systems-main[data-card-size="pequeno"] .system-detail-media .system-detail-photo{width:min(200px,100%);max-height:160px}
.systems-main[data-card-size="grande"] .system-detail-media .system-detail-photo{width:min(280px,100%);max-height:220px}
.systems-main[data-card-size="pequeno"] .system-detail-media .system-detail-logo{width:36px;height:36px}
.systems-main[data-card-size="grande"] .system-detail-media .system-detail-logo{width:48px;height:48px}
.systems-main[data-text-size="pequeno"] .system-detail-title{font-size:clamp(1.2rem, 2vw, 1.6rem)}
.systems-main[data-text-size="pequeno"] .system-detail-copy p{font-size:.96rem}
.systems-main[data-text-size="grande"] .system-detail-title{font-size:clamp(1.5rem, 2.5vw, 2.15rem)}
.systems-main[data-text-size="grande"] .system-detail-copy p{font-size:1.08rem}

@media (max-width:860px){
  .system-detail-card{
    grid-template-columns:1fr;
  }
  .system-detail-media{
    align-items:flex-start;
    text-align:left;
  }
}

@media (max-width:640px){
  .systems-hero,
  .systems-nav-panel,
  .system-detail-card{
    padding:18px;
    border-radius:18px;
  }
  .systems-nav-panel{
    grid-template-columns:1fr;
  }
  .systems-nav-menu-shell{
    padding:14px;
  }
  .systems-quick-nav{
    grid-template-columns:1fr;
  }
  .system-detail-points{
    grid-template-columns:1fr;
  }
  .system-trial-btn{
    width:100%;
  }
  .systems-page .system-detail-card{
    min-height:auto;
    gap:18px;
  }
  .systems-nav-link{
    min-height:72px;
    padding:12px 14px;
  }
  .systems-nav-item-index{
    width:42px;
    min-width:42px;
    height:42px;
  }
}

/* Tarjetas: fondo blanco y texto oscuro, iconos más grandes y tipografía destacada */
.portal-card.dark-mode{
  background: var(--portal-card-solid-bg);
  border:1px solid var(--portal-card-solid-border);
  color:var(--portal-card-solid-text);
  box-shadow:0 8px 20px var(--portal-card-solid-shadow);
  align-items:center;
  text-align:center;
  padding:18px;
}
.portal-card.dark-mode .card-logo{margin:0 auto;display:block;width:144px;height:auto;margin-bottom:12px;opacity:0.98;filter:none}
.portal-card.dark-mode .card-actions{display:flex;justify-content:center;gap:8px;margin-top:14px}
.portal-card .card-title, .portal-card h3{font-family: 'Segoe UI', Roboto, Arial, sans-serif; font-weight:900; font-size:calc(1.28rem + 3px)}
.portal-card p{color:var(--portal-card-solid-copy); font-size:calc(1.05rem + 3px); margin-bottom:12px}
.portal-card .card-actions .vermas{display:inline-block;padding:10px 18px;border-radius:12px;background:linear-gradient(180deg,var(--accent),#1475cc);color:#fff;font-weight:900;border:none;text-decoration:none;box-shadow:0 10px 24px rgba(20,95,162,0.18);font-size:calc(1rem + 3px)}
.portal-card .card-actions .vermas:hover{filter:brightness(0.98)}
.portal-card .card-actions{margin-top:12px}
.portal-card .more-btn{display:inline-block;padding:8px 12px;border-radius:8px;background:var(--portal-card-more-bg);color:var(--text);font-weight:700;border:1px solid var(--portal-card-more-border);text-decoration:none;margin-left:8px}

/* Caja card: left-align totals, each value on its own row, all bold and black */
.caja-card .caja-totals { text-align: left; padding: 3px 6px; font-size: calc(0.95rem + 2px); display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.caja-card .caja-totals .caja-row { margin: 0; font-weight:800; color:var(--portal-card-solid-text); width:100%; display:flex; justify-content:space-between; align-items:center; line-height:1; }
.caja-card .caja-totals .caja-row .caja-label{ font-weight:700; color:var(--portal-card-solid-text); margin-right:6px; }
.caja-card .caja-totals .caja-row .caja-value{ font-weight:900; color:var(--portal-card-solid-text); }
.caja-card .caja-title { text-align: center; margin-bottom: 2px; color: var(--portal-card-solid-text); font-weight:800; }
.caja-card .caja-actions{ margin-top:4px; display:flex; width:100%; min-width:0; }
.caja-card .caja-actions .btn{
  width:100%;
  min-height:34px;
  padding:6px 8px;
  border-radius:8px;
  font-size:clamp(0.78rem, 0.82em, 0.92rem);
  line-height:1.15;
  white-space:normal;
  overflow-wrap:anywhere;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

/* Corte de caja */
.corte-caja-page .corte-report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.corte-caja-page .corte-report-badge{border:1px solid var(--border-color,#d7dde8);border-radius:6px;padding:7px 10px;font-weight:800;background:var(--surface-muted,#f4f7fb);color:var(--text-color,#1f2937)}
.corte-caja-page .corte-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.corte-caja-page .corte-summary-card{border:1px solid var(--border-color,#d7dde8);border-radius:8px;padding:10px;background:var(--surface,#fff);min-width:0}
.corte-caja-page .corte-summary-card span{display:block;font-size:.82rem;color:var(--muted-text,#64748b);font-weight:700}
.corte-caja-page .corte-summary-card strong{display:block;margin-top:4px;font-size:1.08rem;color:var(--text-color,#111827);word-break:break-word}
.corte-caja-page .corte-summary-card small{display:block;margin-top:3px;color:var(--muted-text,#64748b)}
.corte-caja-page .corte-report-section{margin-top:16px}
.corte-caja-page .corte-final-note{margin-top:18px;padding:12px;border:2px solid var(--accent-color,#2563eb);border-radius:8px;display:flex;justify-content:space-between;gap:12px;font-size:1.05rem;background:var(--surface-muted,#f4f7fb)}
.corte-caja-page .corte-final-note span{font-weight:900}
.corte-caja-page.report-print-pos .corte-caja-report{max-width:420px;margin-left:auto;margin-right:auto}
.corte-caja-page.report-print-pos .corte-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.corte-caja-page.report-print-pos .corte-report-header{gap:8px}
.corte-caja-page.report-print-pos .corte-summary-card{padding:8px}
.corte-caja-page.report-print-pos .corte-summary-card strong{font-size:.96rem}

@media (max-width: 760px){
  .corte-caja-page .corte-report-header{flex-direction:column}
  .corte-caja-page .corte-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .corte-caja-page .corte-final-note{flex-direction:column}
}

@media print{
  .corte-caja-page{background:#fff;color:#111}
  .corte-caja-page .no-print,
  .corte-caja-page .admin-frame-toolbar{display:none!important}
  .corte-caja-page .container{max-width:none;margin:0;padding:0}
  .corte-caja-page .card{box-shadow:none;border:0;padding:0}
  .corte-caja-page .table th,
  .corte-caja-page .table td{font-size:11px;padding:5px;border-color:#bbb}
}

/* Logo dentro de tarjetas */
.portal-card .card-logo{width:72px;height:auto;margin-bottom:12px;opacity:0.95;filter:drop-shadow(0 6px 18px rgba(0,0,0,0.5))}
/* Ajuste de fuente para tarjetas: más grande y más gruesa */
.portal-card, .portal-card.warm, .portal-card.dark-mode { font-family: 'Segoe UI', Roboto, Arial, sans-serif; font-size: 1rem }
.portal-card h3 { font-weight:800; font-size:1.12rem }

/* Seleccionar Empresa: tarjetas compactas y centradas */
.empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start;
  gap:12px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  max-width: none;
  margin: 0;
  justify-items: start;
  justify-content: start;
}
.empresas-grid .portal-card{
  padding:12px;
  border-radius:10px;
  min-height:unset;
  box-shadow:0 10px 22px rgba(6,14,28,0.36);
  font-size:1.04rem;
  align-items:center;
  text-align:center;
  justify-content:center;
  aspect-ratio: 4 / 3;
  width:100%;
}
.empresas-grid .portal-card h3{font-size:1.28rem;font-weight:900;margin-bottom:0.35em}
.empresas-grid .portal-card .card-desc{margin-bottom:0.6em;font-size:1rem}
.empresas-grid .portal-card .card-actions{display:flex;justify-content:center;gap:8px;margin-top:8px}
.empresas-grid .portal-card .license-indicator{font-weight:900;font-size:0.95rem;padding:8px 12px;border-radius:999px}

.reportes-globales-container{display:flex;flex-direction:column;gap:14px}
.reportes-globales-page .reportes-globales-header{align-items:flex-start}
.reportes-globales-page .reportes-globales-header h1{font-size:1.45rem;line-height:1.15;color:var(--text)}
.reportes-globales-controlbar{display:flex;flex-direction:column;gap:12px;margin-top:14px;padding:14px;border:1px solid var(--content-soft-border);border-radius:14px;background:var(--content-soft-bg)}
.reportes-globales-control-grid{display:grid;grid-template-columns:minmax(140px,0.7fr) minmax(140px,0.7fr) minmax(260px,1.7fr) minmax(150px,0.8fr);gap:12px;align-items:end}
.reportes-globales-field{display:flex;min-width:0;flex-direction:column;gap:6px}
.reportes-globales-field-wide{min-width:220px}
.reportes-globales-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.reportes-globales-actions .btn,.reportes-globales-email-row .btn{min-height:40px}
.reportes-globales-email-row{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;align-items:center}
.reportes-globales-selection-card .empresa-section-header{align-items:flex-start}
.reportes-globales-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.reportes-globales-panel{background:var(--content-soft-bg);border:1px solid var(--content-soft-border);border-radius:14px;padding:14px}
.reportes-globales-selection-toolbar{padding:12px;border-radius:14px;background:var(--content-soft-bg);border:1px solid var(--content-soft-border)}
.reportes-globales-selection-field{display:flex;flex-direction:column;gap:6px;min-width:200px;flex:1 1 200px}
.reportes-globales-selection-resume{display:flex;flex-direction:column;gap:6px;min-width:180px;padding:10px 12px;border-radius:12px;background:var(--content-soft-bg-2);border:1px solid var(--content-soft-border)}
.reportes-globales-selection-resume strong{font-size:1rem;color:var(--text)}
.reportes-globales-empresas{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto;padding-right:4px}
.reportes-globales-empresa-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:12px;background:var(--content-soft-bg-2);border:1px solid var(--content-soft-border)}
.reportes-globales-empresa-item input{margin-top:3px}
.reportes-globales-empresa-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.reportes-globales-empresa-copy strong{font-size:0.95rem;color:var(--text)}
.reportes-globales-empresa-copy span{font-size:0.85rem;color:var(--muted)}
.reportes-globales-executive{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.reportes-globales-executive-card{border:1px solid var(--content-soft-border);border-radius:16px;padding:16px;background:linear-gradient(180deg, var(--content-soft-bg-2), var(--content-soft-bg))}
.reportes-globales-executive-card.executive-primary{background:linear-gradient(180deg, rgba(43,96,173,0.48), rgba(17,43,82,0.44));border-color:rgba(126,181,255,0.28)}
.reportes-globales-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--content-soft-bg-2);color:var(--muted);font-size:0.75rem;font-weight:800;letter-spacing:0.04em;text-transform:uppercase}
.reportes-globales-brief{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:14px;background:var(--content-soft-bg);border:1px solid var(--content-soft-border)}
.reportes-globales-narrative{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--text-soft)}
.reportes-globales-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.reportes-globales-chart-card{border:1px solid var(--content-soft-border);border-radius:16px;padding:16px;background:var(--content-soft-bg)}
.reportes-globales-chart{display:flex;flex-direction:column;gap:12px;min-height:220px;justify-content:center}
.reportes-globales-bar-row,.reportes-globales-balance-row{display:flex;flex-direction:column;gap:8px}
.reportes-globales-bar-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.reportes-globales-bar-copy strong{font-size:0.92rem;color:var(--text)}
.reportes-globales-bar-copy span{font-size:0.84rem;color:var(--muted)}
.reportes-globales-bar-track{height:12px;border-radius:999px;background:var(--content-soft-bg-2);overflow:hidden}
.reportes-globales-compare-track{display:flex;gap:8px;align-items:center}
.reportes-globales-bar-fill{display:block;height:12px;border-radius:999px;min-width:4px}
.reportes-globales-bar-fill.fill-income{background:linear-gradient(90deg, #4ccf95, #80e6b4)}
.reportes-globales-bar-fill.fill-expense{background:linear-gradient(90deg, #f2aa4c, #ffd18b)}
.reportes-globales-bar-fill.fill-balance-positive{background:linear-gradient(90deg, #4f8cff, #8cb4ff)}
.reportes-globales-bar-fill.fill-balance-negative{background:linear-gradient(90deg, #ef5350, #ff8a88)}
.reportes-globales-legend-inline{display:flex;flex-wrap:wrap;gap:10px;font-size:0.82rem;color:var(--muted)}
.reportes-globales-legend-inline .legend-income{color:color-mix(in srgb, var(--success) 72%, var(--text) 28%)}
.reportes-globales-legend-inline .legend-risk{color:color-mix(in srgb, var(--danger) 72%, var(--text) 28%)}
.reportes-globales-portfolio-ring{width:168px;height:168px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px var(--content-soft-border), 0 14px 28px rgba(0,0,0,0.18)}
.reportes-globales-portfolio-core{width:102px;height:102px;border-radius:50%;background:var(--content-strong-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}
.reportes-globales-portfolio-core strong{font-size:1.45rem;color:var(--text)}
.reportes-globales-portfolio-core span{font-size:0.82rem;color:var(--muted)}
.reportes-globales-portfolio-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.reportes-globales-portfolio-meta div{padding:10px 12px;border-radius:12px;background:var(--content-soft-bg-2);border:1px solid var(--content-soft-border)}
.reportes-globales-portfolio-meta strong{display:block;font-size:1rem;color:var(--text)}
.reportes-globales-portfolio-meta span{display:block;font-size:0.8rem;color:var(--muted);margin-top:3px}
.reportes-globales-individuales{display:flex;flex-direction:column;gap:14px}
.reportes-globales-individual-card{border:1px solid var(--content-soft-border);border-radius:14px;padding:14px;background:var(--content-soft-bg)}
.reportes-globales-empty{padding:14px;border-radius:12px;background:var(--content-soft-bg-2);color:var(--muted)}

@media (max-width: 720px){
  .reportes-globales-page .reportes-globales-header h1{font-size:1.25rem}
  .reportes-globales-control-grid{grid-template-columns:1fr}
  .reportes-globales-email-row{grid-template-columns:1fr}
  .reportes-globales-actions .btn{flex:1 1 130px}
  .reportes-globales-grid{grid-template-columns:1fr}
  .reportes-globales-chart-grid{grid-template-columns:1fr}
  .reportes-globales-executive{grid-template-columns:1fr}
  .reportes-globales-selection-field,.reportes-globales-selection-resume{min-width:100%}
  .reportes-globales-portfolio-ring{width:144px;height:144px}
  .reportes-globales-portfolio-core{width:88px;height:88px}
}

/* Indicador de sensor (pequeño recuadro en la esquina superior derecha de la tarjeta de estación) */
.portal-card{position:relative}
.portal-card .station-sensor-indicator{position:absolute;top:10px;right:10px;width:12px;height:12px;border-radius:3px;box-shadow:0 4px 10px rgba(0,0,0,0.45);border:1px solid rgba(255,255,255,0.06)}

.input-action-row{display:flex;gap:8px;align-items:center}
.input-action-row .form-input{min-width:0;flex:1}
.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 10px;border-radius:999px;font-size:.82rem;font-weight:700;background:var(--panel-muted, rgba(15,23,42,.08));color:var(--text-muted, #64748b);border:1px solid var(--border, rgba(15,23,42,.14))}
.status-pill.success{background:rgba(34,197,94,.14);color:#15803d;border-color:rgba(34,197,94,.35)}
.status-pill.muted{background:rgba(100,116,139,.12);color:var(--text-muted, #64748b)}
@media (max-width: 640px){.input-action-row{align-items:stretch}.input-action-row .btn{padding-left:12px;padding-right:12px}}

.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.table tbody tr.selected-row{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:-2px;background:color-mix(in srgb, var(--accent) 9%, transparent)}
@media (max-width: 920px){.grid-2,.grid-4{grid-template-columns:1fr}}

/* Ajustes específicos para páginas dentro de /web/super (iframe incluido: fondo y texto según tema) */
body.super-page{
  margin:0;
  min-height:100vh;
  box-sizing:border-box;
  background:var(--bg);
  color:var(--text);
}
.super-page .container{max-width:none;width:100%;margin:0;padding:0.6rem 0.8rem}
.super-page .container h1{font-size:0.95rem;margin:4px 0;color:var(--text)}
.super-page.reportes-globales-page .container h1{font-size:1.45rem;line-height:1.15;color:var(--text)}
.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.page-header h1{margin:0;font-size:0.95rem;color:var(--text)}
.page-header .btn.add{margin-bottom:0}

.pp-cards-editor{display:grid;grid-template-columns:1fr;gap:14px;margin-top:12px}
.pp-card-item{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 86%, var(--accent) 14%), color-mix(in srgb, var(--surface) 92%, black 8%));border:1px solid color-mix(in srgb, var(--border) 72%, var(--accent) 28%);border-radius:12px;padding:14px}
.pp-card-item h3{margin:0 0 10px 0;font-size:1.02rem;color:var(--content-hero-title)}
.pp-card-item[data-card-type="banner"] .pp-info-only{display:none}
.pp-card-item[data-card-type="banner"] .pp-image-preview-wrap{min-height:190px}
.pp-card-item[data-card-type="banner"] .pp-image-preview{width:100%;max-width:260px;max-height:170px;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.pp-image-upload{margin-top:8px}
.pp-col-small{max-width:220px}
.pp-col-grow{flex:1}
.pp-inline-actions{justify-content:flex-start;gap:10px}
.pp-preview-col{max-width:260px}
.pp-image-preview-wrap{display:flex;align-items:center;justify-content:center;min-height:140px;padding:10px;border:1px dashed color-mix(in srgb, var(--accent) 38%, var(--border));border-radius:12px;background:color-mix(in srgb, var(--surface) 82%, var(--accent) 18%)}
.pp-image-preview{max-width:160px;max-height:110px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(0,0,0,0.3))}

/* pagina_principal (super): el editor no debe heredar gradientes mp-card (pueden verse rosados en temas oscuros) */
.pp-main-card{
  background:linear-gradient(180deg, var(--surface-soft), var(--surface));
  border:1px solid var(--border);
  box-shadow:0 14px 30px color-mix(in srgb, var(--text) 10%, transparent);
  color:var(--text);
}
.pp-main-card .form-label,
.pp-main-card .form-help{
  color:var(--muted);
}
.pp-main-card .form-input,
.pp-main-card .form-textarea,
.pp-main-card select.form-input{
  background:var(--form-input-bg);
  border-color:var(--form-border);
  color:var(--text);
}
.pp-main-card .form-input::placeholder,
.pp-main-card .form-textarea::placeholder{
  color:color-mix(in srgb, var(--muted) 78%, transparent);
}
.pp-main-card .btn.secondary{
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-soft);
}

@media (max-width:700px){
  .super-page .container{padding:0.45rem 0.6rem}
}

/* Administrar empresa: título (nombre de la empresa) en blanco */
#empresaTitle{ color: var(--text); }

/* Reducir ancho del sidebar izquierdo solo para páginas bajo /web/super */

/* ===== Ajustes solicitados por usuario =====
  - Iconos de tarjetas +50%
  - Reducir alto de tarjetas
  - Aumentar tamaño de títulos
  - Poner descripciones en negrita
  - Subtítulo principal centrado y debajo del título
*/
.home-offer-card{ min-height:240px !important; }
.home-offer-card .card-logo{ width:138px !important; height:138px !important; }
.portal-card .card-logo{ width:108px !important; height:auto !important; }
.home-offer-card h3, .portal-card h3{ font-size:1.35rem !important; font-weight:800 !important; }
.home-offer-card p, .portal-card p{ font-weight:700 !important; }
.portal-intro h1{ font-size:clamp(2.05rem, 4vw, 2.6rem) !important; white-space:normal !important; text-wrap:balance; max-width:100%; }
.portal-intro .brand-subtitle{ font-size:clamp(1rem, 1.7vw, 1.08rem) !important; font-weight:700 !important; margin-top:0 !important; text-align:center !important; max-width:44rem; }

@media (max-width:720px){
  .portal-intro{margin-bottom:14px;padding-top:4px}
  .portal-intro-copy{gap:10px;max-width:100%}
  .brand-title{gap:2px .24ch}
  .portal-intro h1{font-size:clamp(1.55rem, 8vw, 2.1rem) !important;white-space:normal !important;}
  .portal-intro .brand-subtitle{padding:0 6px}
}

.super-page .admin-layout{display:flex}
.super-page .admin-sidebar{width:180px;padding:12px}
.super-page .admin-content{padding:12px}
@media (max-width:900px){
  .super-page .admin-sidebar{width:100%}
}

/* Formularios con fondo más oscuro sólo en páginas específicas (tipos_empresas, licencias) */
.form-bg-dark .form{background:linear-gradient(180deg,var(--form-surface-top),var(--form-surface-bottom));border-color:var(--form-border)}
.form-bg-dark .form .form-input, .form-bg-dark .form .form-textarea{background:var(--form-input-bg)}

/* Tablas CRUD: cuadricula y zebra */
.table th, .table td{padding:12px;border:1px solid var(--border);text-align:left}
.table thead th{background:var(--surface-soft)}
.table tbody tr:nth-child(odd){background:rgba(127,152,184,0.08)}
.table tbody tr:nth-child(even){background:rgba(127,152,184,0.03)}

/* Asegurar que botones en sidebar y en encabezados tengan tamaño de texto consistente */
.admin-sidebar .nav a, .page-header .btn.add{font-size:0.95rem}

@media (max-width:1000px){.portal-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.portal-grid{grid-template-columns:1fr}.portal-main{padding:14px 0}}

/* Menú flotante (esquina superior derecha) */
.floating-menu{position:fixed;top:max(var(--floating-menu-edge), env(safe-area-inset-top, 0px));right:max(var(--floating-menu-edge), env(safe-area-inset-right, 0px));z-index:9999;font-family:inherit}
.floating-menu .fm-toggle{width:44px;height:44px;border-radius:999px;background:linear-gradient(180deg,var(--surface-soft),var(--surface));border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 18px rgba(4,11,21,0.56);font-weight:700;padding:0;overflow:hidden;touch-action:manipulation}
.floating-menu .fm-toggle .fm-toggle-icon{font-size:18px;color:var(--text);display:inline-block}
.floating-menu .fm-toggle .fm-avatar{width:100%;height:100%;display:block;object-fit:cover;border-radius:999px}
.floating-menu .fm-panel{display:none;position:absolute;top:56px;right:0;background:linear-gradient(180deg,var(--surface-soft),var(--surface));border:1px solid var(--border);padding:8px;border-radius:10px;min-width:180px;box-shadow:0 14px 30px rgba(4,11,21,0.56)}
.floating-menu .fm-panel.open{display:block}
.floating-menu .fm-item{display:block;color:var(--text);text-decoration:none;padding:10px 12px;border-radius:8px;font-weight:600;word-break:break-word;touch-action:manipulation}
.floating-menu button.fm-item{width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}
.floating-menu .fm-item:hover{background:var(--focus)}
.floating-menu .fm-icon-item{display:flex;align-items:center;gap:8px}
.floating-menu .fm-item-icon{width:18px;height:18px;object-fit:contain;flex:0 0 auto}
.floating-menu .fm-submenu{position:relative}
.floating-menu .fm-submenu-toggle{width:100%;background:transparent;border:0;text-align:left;font-family:inherit;cursor:pointer}
.floating-menu .fm-submenu-popup{display:none;position:absolute;top:0;right:calc(100% + 8px);min-width:170px;padding:6px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,var(--surface-soft),var(--surface));box-shadow:0 14px 30px rgba(4,11,21,0.42);z-index:2}
.floating-menu .fm-submenu-popup.show{display:block}
.floating-menu .fm-subitem{font-size:0.94rem}

/* Estilos Selector Tema popup */
.theme-selector-popup {
  display:none;
  position:absolute;
  top:-8px;
  right:calc(100% + 8px);
  background:var(--surface);
  border:1px solid var(--border);
  padding:8px;
  border-radius:10px;
  min-width:180px;
  box-shadow:0 8px 24px rgba(4,11,21,0.56);
  z-index:9000;
}
.theme-selector-popup.show { display:block; }
.theme-opt-group { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); padding:4px 8px; margin-top:2px; font-weight:800; }
.theme-opt-group.mt-1 { margin-top:8px; }
.theme-option {
  display:block; width:100%; text-align:left; padding:8px 10px; background:transparent; border:1px solid transparent;
  color:var(--text); border-radius:6px; cursor:pointer; font-size:13px; font-weight:600; font-family:"Montserrat",sans-serif;
  margin-bottom:2px; transition:background 0.15s, border-color 0.1s;
}
.theme-option:hover { background:var(--input-bg-soft); border-color:var(--border); }
.theme-option.active { background:var(--focus); border-color:var(--accent); color:var(--accent); font-weight:800; }

.pcs-help-ticket-backdrop{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(8,12,24,.52)}
.pcs-help-ticket-backdrop.is-open{display:flex}
.pcs-help-ticket-dialog{width:min(620px,100%);max-height:calc(100vh - 36px);overflow:auto;border:1px solid var(--border);border-radius:8px;background:linear-gradient(180deg,var(--surface-soft),var(--surface));color:var(--text);box-shadow:0 28px 80px rgba(3,10,20,.36)}
.pcs-help-ticket-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 12px;border-bottom:1px solid var(--border)}
.pcs-help-ticket-header h2{margin:0;font-size:1.06rem;line-height:1.2;color:var(--text)}
.pcs-help-ticket-header p{margin:5px 0 0;color:var(--muted);font-size:.86rem;line-height:1.35}
.pcs-help-ticket-close{width:38px;height:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-weight:900;cursor:pointer}
.pcs-help-ticket-form{display:grid;gap:10px;padding:16px}
.pcs-help-ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pcs-help-ticket-context{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.8rem;font-weight:800;line-height:1.35;padding:10px 12px;overflow-wrap:anywhere}
.pcs-help-ticket-toggle{display:flex;align-items:center;gap:8px;color:var(--text);font-size:.84rem;font-weight:800;line-height:1.35}
.pcs-help-ticket-toggle input{width:17px;height:17px;accent-color:var(--accent);flex:0 0 auto}
.pcs-help-ticket-recent{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:10px;display:grid;gap:8px}
.pcs-help-ticket-recent-title{color:var(--text);font-size:.82rem;font-weight:900}
.pcs-help-ticket-recent-list{display:grid;gap:6px;color:var(--muted);font-size:.82rem}
.pcs-help-ticket-recent-item{display:grid;grid-template-columns:auto auto;gap:3px 8px;align-items:start;border-top:1px solid var(--border);padding-top:7px}
.pcs-help-ticket-recent-item:first-child{border-top:0;padding-top:0}
.pcs-help-ticket-recent-item strong{color:var(--text);font-size:.8rem}
.pcs-help-ticket-recent-item span{justify-self:end;text-transform:capitalize;color:var(--accent);font-weight:900;font-size:.75rem}
.pcs-help-ticket-recent-item p{grid-column:1/-1;margin:0;color:var(--text);line-height:1.3;overflow-wrap:anywhere}
.pcs-help-ticket-recent-item small{grid-column:1/-1;color:var(--muted)}
.pcs-help-ticket-empty{color:var(--muted);font-weight:750}
.pcs-help-ticket-status{min-height:20px;color:var(--muted);font-size:.86rem;font-weight:750}
.pcs-help-ticket-status.is-error{color:var(--danger,#ef4444)}
.pcs-help-ticket-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:640px){.pcs-help-ticket-grid{grid-template-columns:1fr}.pcs-help-ticket-actions .btn{flex:1 1 auto}}

@media(max-width: 640px) {
  .floating-menu .fm-submenu {
    border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--border) 66%);
    border-radius: 8px;
    background: color-mix(in srgb, var(--surface-soft) 82%, var(--surface) 18%);
  }
  .floating-menu .fm-submenu-toggle {
    color: var(--accent-yellow);
  }
  .floating-menu .fm-submenu-popup {
    position: static;
    width: 100%;
    margin-top: 4px;
    box-shadow: none;
    border-radius: 8px;
  }
  .theme-selector-popup {
    position: static;
    width: 100%;
    margin-top: 4px;
    box-shadow: none;
    border: 1px solid var(--border);
    background: var(--input-bg);
  }
  html[data-theme="light"] .floating-menu .fm-toggle,
  html[data-theme="light"] .floating-menu .fm-panel,
  html[data-theme="light"] .floating-menu .fm-submenu,
  html[data-theme="light"] .floating-menu .fm-submenu-popup,
  html[data-theme="light"] .theme-selector-popup {
    background: linear-gradient(180deg, var(--surface), var(--surface-soft));
    border-color: rgba(15,35,64,0.16);
    color: var(--text);
    box-shadow: 0 12px 24px rgba(15,35,64,0.14);
  }
  html[data-theme="light"] .floating-menu .fm-submenu-toggle,
  html[data-theme="light"] .floating-menu .fm-item,
  html[data-theme="light"] .theme-option {
    color: var(--text);
  }
  html[data-theme="light"] .floating-menu #themeToggle {
    color: var(--accent);
  }
}
.floating-menu .fm-country{cursor:default;background:var(--surface-soft);border:1px solid var(--border)}
.floating-menu .fm-country:hover{background:var(--surface-soft)}

/* SVG dentro de items del menú: mantener color legible según tema */
.floating-menu .fm-item svg{width:18px;height:18px;vertical-align:middle;fill:currentColor}
.floating-menu #themeToggle{background:transparent;border:none;padding:8px 12px;display:flex;width:100%;align-items:center;justify-content:flex-start;gap:8px;color:var(--accent-yellow);box-sizing:border-box;border-radius:8px;margin-bottom:6px}
html.theme-light .floating-menu #themeToggle,
html[data-theme="light"] .floating-menu #themeToggle,
html[data-theme="light-rose"] .floating-menu #themeToggle,
html[data-theme="light-gold"] .floating-menu #themeToggle{color:var(--accent-2)}

.floating-menu .google-btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;background:white;color:#202124;padding:6px 10px;border-radius:8px;border:1px solid rgba(0,0,0,0.08);text-decoration:none;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,0.06);font-size:0.95rem;width:100%;box-sizing:border-box}
.floating-menu .google-btn:hover{box-shadow:0 4px 14px rgba(2,6,23,0.12)}
.floating-menu .fm-item svg path{fill:currentColor}

/* El menú muestra avatar circular si /me devuelve foto; si no, fallback a símbolo */

body.has-floating-menu .page-header,
body.has-floating-menu .empresa-section-header,
body.has-floating-menu .portal-header,
body.has-floating-menu .header{
  padding-right: calc(var(--floating-menu-clearance) + env(safe-area-inset-right, 0px));
}

body.has-floating-menu .page-header .form-actions,
body.has-floating-menu .empresa-section-header .empresa-inline-actions,
body.has-floating-menu .header .form-actions{
  margin-right: calc(var(--floating-menu-size) + 8px);
}

@media (max-width:480px){
  :root{
    --floating-menu-edge: 8px;
    --floating-menu-clearance: calc(var(--floating-menu-size) + var(--floating-menu-edge) + 8px);
  }
  .floating-menu .fm-panel{right:0;left:auto;min-width:0;width:min(18rem, calc(100vw - 16px));max-width:calc(100vw - 16px);max-height:calc(100vh - 72px);overflow:auto}
  body.has-floating-menu .page-header,
  body.has-floating-menu .empresa-section-header,
  body.has-floating-menu .portal-header,
  body.has-floating-menu .header{
    padding-right: calc(var(--floating-menu-clearance) + env(safe-area-inset-right, 0px));
  }
  body.has-floating-menu .page-header .form-actions,
  body.has-floating-menu .empresa-section-header .empresa-inline-actions,
  body.has-floating-menu .header .form-actions{
    margin-right: 0;
  }
}

@media (max-width:560px){
  :root{--page-gutter:8px}
  .portal-header{padding:10px 8px}
  .nav-actions{width:100%;justify-content:center}
  .nav-actions .btn{
    min-width:150px;
    min-height:40px;
    padding:10px 14px;
    font-size:.92rem;
  }
  .nav-actions .portal-header-btn{min-height:36px;padding:7px 12px;border-radius:999px;font-size:.84rem}
  .portal-header .brand{width:100%;display:flex;justify-content:center}
  .home-offer-card{min-height:auto !important;padding:16px}
  .home-offer-card .card-logo{width:96px !important;height:96px !important}
  .portal-card .card-actions,
  .home-offer-card .card-actions{width:100%;justify-content:center}
  .portal-card .card-actions a,
  .portal-card .card-actions .vermas,
  .home-offer-card .card-actions a{text-align:center}
  .portal-card h3,
  .home-offer-card h3{font-size:1.15rem !important}
}

/* En pantallas muy pequeñas mover el CTA de WhatsApp a la esquina inferior izquierda
   para evitar que tape botones en la esquina inferior derecha; aumentar padding inferior
   para dejar espacio sobre el contenido. */
@media (max-width:420px){
  .whatsapp-floating-cta{
    right:auto;
    left:12px;
    bottom:calc(14px + env(safe-area-inset-bottom, 0px));
  }
  .portal-main{padding-bottom:110px}
}

/* Ajustes visuales configurables desde pagina_principal */
.portal-home-grid[data-card-size="pequeno"]{gap:16px}
.portal-home-grid[data-card-size="pequeno"] .home-offer-card{min-height:220px !important;padding:18px !important;border-radius:14px !important}
.portal-home-grid[data-card-size="pequeno"] .home-offer-card .card-logo{width:108px !important;height:108px !important}
.portal-home-grid[data-card-size="grande"]{gap:24px}
.portal-home-grid[data-card-size="grande"] .home-offer-card{min-height:320px !important;padding:28px !important;border-radius:20px !important}
.portal-home-grid[data-card-size="grande"] .home-offer-card .card-logo{width:154px !important;height:154px !important}
.portal-home-grid .home-offer-card-banner{padding:0 !important;overflow:hidden}
.portal-home-grid[data-card-size="pequeno"] .home-offer-card-banner{min-height:220px !important;padding:0 !important}
.portal-home-grid[data-card-size="grande"] .home-offer-card-banner{min-height:320px !important;padding:0 !important}
.portal-home-grid .home-offer-card-banner .home-offer-banner-img{width:100%;height:100%;min-height:inherit;object-fit:cover;display:block}
.portal-home-grid[data-text-size="pequeno"] .home-offer-card h3{font-size:1.12rem !important}
.portal-home-grid[data-text-size="pequeno"] .home-offer-card p{font-size:.94rem !important}
.portal-home-grid[data-text-size="pequeno"] .home-offer-card .home-offer-btn{font-size:.88rem !important;padding:9px 14px !important}
.portal-home-grid[data-text-size="grande"] .home-offer-card h3{font-size:1.55rem !important}
.portal-home-grid[data-text-size="grande"] .home-offer-card p{font-size:1.1rem !important}
.portal-home-grid[data-text-size="grande"] .home-offer-card .home-offer-btn{font-size:1rem !important;padding:12px 18px !important}

.systems-main[data-card-size="pequeno"] .system-detail-card{grid-template-columns:minmax(180px,220px) minmax(0,1fr);gap:18px;padding:18px;border-radius:18px}
.systems-main[data-card-size="pequeno"] .system-detail-media{padding:14px;border-radius:14px}
.systems-main[data-card-size="pequeno"] .system-detail-media img{width:min(118px,100%);max-height:118px}
.systems-main[data-card-size="grande"] .system-detail-card{grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:28px;padding:28px;border-radius:26px}
.systems-main[data-card-size="grande"] .system-detail-media{padding:22px;border-radius:20px}
.systems-main[data-card-size="grande"] .system-detail-media img{width:min(170px,100%);max-height:170px}

.systems-main[data-text-size="pequeno"] .systems-hero h1{font-size:clamp(1.75rem,3.4vw,2.5rem)}
.systems-main[data-text-size="pequeno"] .systems-hero p,
.systems-main[data-text-size="pequeno"] .systems-nav-panel p,
.systems-main[data-text-size="pequeno"] .system-detail-short,
.systems-main[data-text-size="pequeno"] .system-detail-copy p,
.systems-main[data-text-size="pequeno"] .system-detail-points li{font-size:.94rem}
.systems-main[data-text-size="pequeno"] .systems-nav-link{font-size:.9rem;min-height:48px}
.systems-main[data-text-size="pequeno"] .system-detail-title{font-size:clamp(1.24rem,2vw,1.72rem)}
.systems-main[data-text-size="pequeno"] .system-detail-points-wrap h3{font-size:.95rem}

.systems-main[data-text-size="grande"] .systems-hero h1{font-size:clamp(2.2rem,4.3vw,3.2rem)}
.systems-main[data-text-size="grande"] .systems-hero p,
.systems-main[data-text-size="grande"] .systems-nav-panel p,
.systems-main[data-text-size="grande"] .system-detail-short,
.systems-main[data-text-size="grande"] .system-detail-copy p,
.systems-main[data-text-size="grande"] .system-detail-points li{font-size:1.08rem}
.systems-main[data-text-size="grande"] .systems-nav-link{font-size:1rem;min-height:58px}
.systems-main[data-text-size="grande"] .system-detail-title{font-size:clamp(1.55rem,2.5vw,2.2rem)}
.systems-main[data-text-size="grande"] .system-detail-points-wrap h3{font-size:1.08rem}

@media (max-width:860px){
  .systems-main[data-card-size="pequeno"] .system-detail-card,
  .systems-main[data-card-size="grande"] .system-detail-card{grid-template-columns:1fr}
}

@media (max-width:640px){
  .systems-main[data-card-size="pequeno"] .system-detail-card{padding:16px;border-radius:16px}
  .systems-main[data-card-size="grande"] .system-detail-card{padding:20px;border-radius:20px}
}

@media (max-width:560px){
  .portal-home-grid[data-card-size="pequeno"] .home-offer-card,
  .portal-home-grid[data-card-size="grande"] .home-offer-card{min-height:auto !important}
  .portal-home-grid[data-card-size="pequeno"] .home-offer-card{padding:14px !important}
  .portal-home-grid[data-card-size="grande"] .home-offer-card{padding:20px !important}
  .portal-home-grid[data-card-size="pequeno"] .home-offer-card .card-logo{width:92px !important;height:92px !important}
  .portal-home-grid[data-card-size="grande"] .home-offer-card .card-logo{width:118px !important;height:118px !important}
}

/* Reglas generales responsivas para formularios */
@media (max-width:700px){
  .form{padding:14px}
  .form-row{flex-direction:column;gap:10px}
  .form-row > .form-col,
  .form-row > [class*="col"],
  .filters-grid > .form-col,
  .filters-grid > [class*="col"],
  .page-header > .form-col,
  .page-header > [class*="col"]{
    width:100%;
    max-width:none !important;
    min-width:0;
    flex:1 1 100%;
  }
  .form-row > [style*="max-width"],
  .filters-grid > [style*="max-width"],
  .page-header > [style*="max-width"],
  .empresa-inline-actions > [style*="max-width"],
  .empresa-inline-actions > [style*="width:"]{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .form-row .form-input,
  .form-row .input,
  .form-row .btn,
  .filters-grid .form-input,
  .filters-grid .input,
  .filters-grid .btn,
  .page-header .form-input,
  .page-header .input,
  .page-header .btn,
  .empresa-inline-actions .form-input,
  .empresa-inline-actions .input,
  .empresa-inline-actions .btn,
  .toolbar .form-input,
  .toolbar .input,
  .toolbar .btn{
    width:100%;
    max-width:100%;
    min-width:0 !important;
  }
  .form-actions{flex-direction:column;align-items:stretch;justify-content:stretch}
  .form-actions .btn{width:100%;justify-content:center}
  .page-header{flex-wrap:wrap;align-items:stretch}
  .page-header .btn{width:100%;justify-content:center}
  .page-header > :last-child,
  .header > :last-child{
    width:100%;
  }
  .header{flex-wrap:wrap;align-items:stretch;gap:10px}
  .container,
  .card,
  .form,
  .admin-content,
  .admin-content > *,
  .empresa-module,
  .table-wrap,
  .table-block{
    min-width:0;
  }
  .table-wrap,
  .table-block,
  .table-responsive{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .table,
  #list .table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table th,
  .table td,
  #list .table th,
  #list .table td{width:auto}
  .table td,
  .table th,
  #list .table td,
  #list .table th{
    min-width:0;
    white-space:normal;
    word-break:break-word;
    overflow-wrap:anywhere;
  }
  .table td code,
  .table th code,
  #list .table td code,
  #list .table th code{
    max-width:100%;
  }
  .table .actions,
  #list .table .actions{display:flex;flex-wrap:wrap;min-width:180px}
  .table .actions .btn,
  #list .table .actions .btn{flex:1 1 100%}
  .empresa-inline-actions,
  .hero-card .toolbar,
  .errors-toolbar,
  .toolbar-actions,
  .report-actions,
  .inline-actions{
    width:100%;
    min-width:0;
    flex-direction:column;
    align-items:stretch;
  }
  .payment-licencia-summary{flex-direction:column;align-items:flex-start}
  .payment-licencia-price{text-align:left;min-width:0}
}

@media (max-width:560px){
  .container{width:calc(100% - 12px);margin:6px;padding:6px}
  .card{padding:12px}
  .form{padding:12px}
  .table .actions,
  #list .table .actions{min-width:0}
}

/* Iconos de menu: color fijo por tema funcional, independiente de la apariencia activa. */
.admin-sidebar .nav a img.icon{
  width:28px !important;
  height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  flex:0 0 28px !important;
  background:var(--menu-icon-bg,#e0f2fe) !important;
  border:1px solid var(--menu-icon-border,rgba(14,165,233,.28)) !important;
  border-radius:8px !important;
  padding:5px !important;
  box-sizing:border-box !important;
  filter:none !important;
}

/* Modulo de creditos */
.creditos-page-title{margin:0}

.creditos-context{margin:0 0 10px 0}

.creditos-intro{margin:0 0 12px 0}

.creditos-section{margin-top:14px}

.creditos-section-first{margin-top:12px}

.creditos-section-header{margin-bottom:8px}

.creditos-section-title{margin:0;font-size:1rem}

.creditos-col-200{max-width:200px}

.creditos-col-220{max-width:220px}

.creditos-col-280{max-width:280px}

.creditos-inline-check{display:flex;align-items:center;gap:8px;margin-top:8px}

.creditos-filter-check{display:flex;align-items:center;gap:8px}

.creditos-actions-top{margin-top:10px}

.creditos-resumen-spacing{margin-top:10px}

.creditos-table-block{margin-top:10px}

.creditos-empty-cell{text-align:center;color:var(--muted)}

.creditos-detail-meta{margin-bottom:10px}

.creditos-detail-subtitle{margin:0 0 8px 0;font-size:.95rem}

.creditos-alertas-toolbar{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
  align-items:end;
}

.creditos-alertas-check{
  margin-bottom:6px;
}

.creditos-alertas-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:12px;
}

.creditos-toolbar-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
}

.creditos-resumen-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
}

.creditos-resumen-card{
  border:1px solid var(--border);
  border-radius:10px;
  background:linear-gradient(180deg, rgba(29,47,72,0.72), rgba(20,34,53,0.84));
  padding:10px;
  min-height:78px;
}

.creditos-resumen-label{
  color:var(--muted);
  font-size:0.85rem;
}

.creditos-resumen-value{
  margin-top:6px;
  font-size:1.08rem;
  font-weight:700;
  color:var(--text);
}

.creditos-actions{
  white-space:normal;
  min-width:320px;
}

.creditos-actions .btn{
  margin:0 6px 6px 0;
}

.creditos-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

@media (max-width:980px){
  .creditos-alertas-grid,
  .creditos-detail-grid{
    grid-template-columns:1fr;
  }

  .creditos-actions{
    min-width:240px;
  }

  .creditos-col-200,
  .creditos-col-220,
  .creditos-col-280{
    max-width:none;
  }
}

/* ===== Centralized admin/page-specific overrides moved from inline styles ===== */
/* Botón 'Seleccionar empresa' específico del sidebar (antes inline en HTML) */
.admin-sidebar .nav a.select-company{
  background:linear-gradient(180deg,#1f8ef1,#1778d3);
  color:#f5fbff;
  border-radius:6px;
  padding:10px 14px;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  border:1px solid rgba(137,185,233,0.38);
}
.admin-sidebar .nav a.select-company:hover{
  background:linear-gradient(180deg,#2798fb,#1e83df);
  color:#f5fbff;
  box-shadow:0 10px 18px rgba(7,30,57,0.38);
}

/* Super: Seleccionar empresa en verde */
#superSidebarNav a.select-company{
  background:linear-gradient(180deg,#22c55e,#16a34a);
  border-color:rgba(34,197,94,0.38);
}
#superSidebarNav a.select-company:hover{
  background:linear-gradient(180deg,#2dd36a,#1bb556);
  box-shadow:0 10px 18px rgba(16,58,34,0.38);
}

/* Permitir íconos que no deben invertirse (ej: tuerca roja) */
.admin-sidebar .nav a img.icon.no-invert{
  filter:none !important;
}

/* Tablas CRUD en contenedores #list: ajustar ancho por contenido y permitir scroll horizontal */
#list { overflow-x: auto; }
#list .table th, #list .table td { white-space: nowrap; }
#list .table { table-layout: auto; width: auto; }
#list .table td { overflow: visible; text-overflow: clip; }
#list .table td.actions { overflow: visible; white-space: nowrap; min-width: auto; }
#list .table .actions { min-width: auto; }

/* Asegurar botones de acción visibles y consistentes */
.actions { display:inline-flex; gap:6px; align-items:center; }
.actions button { margin-right:6px; display:inline-block; white-space:nowrap; }

/* CRUD compacto en movil: evita filas altas y acciones apiladas */
@media (max-width:700px){
  #list,
  .table-wrap,
  .table-block,
  .table-responsive{
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  #list .table,
  .table-wrap .table,
  .table-block .table,
  .table-responsive .table{
    display:table;
    width:max-content;
    min-width:100%;
    margin-top:8px;
    table-layout:auto;
  }
  .table th,
  .table td,
  #list .table th,
  #list .table td{
    padding:6px 8px;
    font-size:.82rem;
    line-height:1.22;
    vertical-align:middle;
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
  }
  .table thead th{
    font-size:.78rem;
  }
  .actions,
  .table .actions,
  #list .table .actions{
    display:inline-flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:4px;
    min-width:max-content;
    white-space:nowrap;
  }
  .actions button,
  .actions .btn,
  .table .actions button,
  .table .actions .btn,
  #list .table .actions button,
  #list .table .actions .btn{
    flex:0 0 auto;
    width:auto;
    min-height:30px;
    margin:0;
    padding:5px 8px;
    border-radius:7px;
    font-size:.78rem;
    line-height:1.15;
    white-space:nowrap;
  }
  .super-page .page-header,
  .empresa-subpage .page-header,
  .empresa-module .page-header{
    gap:6px;
  }
  .super-page .form,
  .empresa-subpage .form,
  .empresa-module .form{
    padding:10px;
  }
}

/* fin de centralizados */
/* Tarjetas de empresa - estilo cálido y centrado (para seleccionar_empresa.html) */
.portal-card.warm{
  position:relative;
  overflow:hidden;
  background: linear-gradient(145deg, rgba(255,247,231,0.98), rgba(252,233,199,0.98));
  border:1px solid rgba(182,134,67,0.2);
  color:var(--text);
  align-items:center;
  text-align:center;
  padding:18px 20px;
  box-shadow:0 18px 34px rgba(43,28,5,0.16);
}
.portal-card.warm::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.88), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0));
  pointer-events:none;
}
.portal-card.warm .card-title{position:relative;margin-bottom:8px;color:var(--empresa-card-title);font-weight:900}
.portal-card.warm .card-desc{position:relative;color:var(--empresa-card-copy);margin-bottom:12px}
.card-link{display:block;text-decoration:none}
.empresa-groups{display:flex;flex-direction:column;gap:10px}
.empresa-groups .empresa-section{margin-top:0}
.empresa-section-header .empresa-group-total{
  font-family:'Segoe UI', Roboto, Arial, sans-serif;
  font-size:1.08rem;
  font-weight:900;
  color:var(--empresa-card-title);
  letter-spacing:.01em;
}
.empresas-grid{
  grid-template-columns:repeat(auto-fill, minmax(320px, 320px));
  grid-auto-rows: 1fr;
  justify-content:flex-start;
  justify-items:stretch;
  align-items:stretch;
  align-content:start;
  margin:0;
  padding:0;
  width:100%;
}
.empresas-grid .card-link.empresa-card-link{
  display:flex;
  flex-direction:column;
  align-self:stretch;
  height:100%;
  min-height:280px;
  width:100%;
  max-width:320px;
  box-sizing:border-box;
}
.empresas-grid .card-link{display:flex;height:100%;min-height:260px;width:100%}
.empresas-grid .portal-card.warm{width:100%;height:100%;}
.empresas-grid .portal-card.empresa-card{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  justify-content:flex-start;
}
.empresas-grid .card-body{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:100%;
  padding:16px 14px 14px;
  box-sizing:border-box;
}
.empresas-grid .card-actions{margin-top:auto;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.empresas-grid .empresa-card-badge{
  position:absolute;
  top:14px;
  left:14px;
  z-index:1;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:10px;
  background:var(--empresa-card-chip-bg);
  color:var(--empresa-card-chip-text);
  font-size:0.74rem;
  font-weight:900;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.empresas-grid .empresa-card-watermark{
  position:absolute;
  right:14px;
  top:14px;
  width:48px;
  height:48px;
  border-radius:12px;
  background:var(--empresa-card-watermark-bg);
  border:1px solid var(--empresa-card-watermark-border);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 20px rgba(43,28,5,0.08);
}
.empresas-grid .empresa-card-watermark img{
  width:24px;
  height:24px;
  object-fit:contain;
}
.empresas-grid .portal-card.empresa-card .card-title{
  padding-top:42px;
}
.empresas-grid .portal-card.empresa-card.empresa-tone-food{
  background:linear-gradient(145deg, #fff6e6, #ffd9b4);
}
.empresas-grid .portal-card.empresa-card.empresa-tone-lodging{
  background:linear-gradient(145deg, #f8f3ff, #d8d0ff);
}
.empresas-grid .portal-card.empresa-card.empresa-tone-retail{
  background:linear-gradient(145deg, #eef9ff, #cfe9ff);
}
.empresas-grid .portal-card.empresa-card.empresa-tone-logistics{
  background:linear-gradient(145deg, #eefaf4, #cde8d7);
}
.empresas-grid .portal-card.empresa-card.empresa-tone-digital{
  background:linear-gradient(145deg, #fff0f5, #ffd6e6);
}
.empresas-grid .portal-card.empresa-card.empresa-tone-services{
  background:linear-gradient(145deg, #fff8ef, #ffe4c6);
}
.empresas-grid .portal-card.empresa-card.empresa-tone-generic{
  background:linear-gradient(145deg, #f8fbff, #e1ebf5);
}
.license-indicator{border:none;color:#fff;padding:10px 14px;border-radius:10px;font-weight:800;cursor:default}
.license-indicator.active{background:var(--success)}
.empresas-grid .download-data{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  border-radius:10px;
  background:var(--empresa-action-bg) !important;
  color:var(--empresa-action-text);
  cursor:pointer;
  box-shadow:0 6px 14px rgba(0,0,0,0.18);
}
.empresas-grid .download-data svg{
  width:16px;
  height:16px;
}
.empresas-grid .download-data:hover,
.empresas-grid .download-data:focus-visible{
  background:var(--empresa-action-bg) !important;
  color:var(--empresa-action-hover-text);
  transform:translateY(-1px);
}

.empresa-edit-shell{
  width:min(1120px, calc(100% - 32px));
  margin:28px auto 40px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.empresa-edit-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:24px;
}
.empresa-edit-kicker{
  margin:0 0 8px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  font-weight:800;
  color:var(--status-warning);
}
.empresa-edit-subtitle{
  margin:8px 0 0;
  max-width:760px;
}
.empresa-edit-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.empresa-edit-grid{
  display:grid;
  grid-template-columns:1.15fr .95fr;
  gap:18px;
}
.empresa-edit-card{
  padding:24px;
  color:var(--text);
}
.empresa-edit-card h2,
.empresa-edit-card h3{
  color:var(--text);
}
.empresa-edit-card .form-input,
.empresa-edit-card .form-textarea,
.empresa-edit-card input.form-input,
.empresa-edit-card textarea.form-input{
  background:var(--empresa-edit-input-bg, var(--form-input-bg));
  border-color:var(--empresa-edit-input-border, var(--form-border));
  color:var(--empresa-edit-input-text, var(--text));
  caret-color:var(--empresa-edit-input-text, var(--text));
}
.empresa-edit-card .form-input::placeholder,
.empresa-edit-card .form-textarea::placeholder,
.empresa-edit-card input.form-input::placeholder,
.empresa-edit-card textarea.form-input::placeholder{
  color:var(--empresa-edit-input-placeholder, color-mix(in srgb, var(--muted) 72%, transparent));
}
.empresa-edit-card .form-input:focus,
.empresa-edit-card .form-textarea:focus,
.empresa-edit-card input.form-input:focus,
.empresa-edit-card textarea.form-input:focus{
  background:var(--empresa-edit-input-focus-bg, var(--empresa-edit-input-bg, var(--form-input-bg)));
  border-color:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent);
}
html.theme-light .empresa-edit-card,
html[data-theme^="light"] .empresa-edit-card{
  --empresa-edit-input-bg:#ffffff;
  --empresa-edit-input-focus-bg:#ffffff;
  --empresa-edit-input-border:rgba(15,35,64,0.18);
  --empresa-edit-input-text:#10243f;
  --empresa-edit-input-placeholder:rgba(82,98,122,0.78);
  --empresa-edit-soft-bg:linear-gradient(180deg, rgba(255,255,255,.9), rgba(249,252,255,.98));
  --empresa-edit-soft-border:rgba(15,35,64,.12);
  --empresa-delete-bg:linear-gradient(180deg, rgba(255,245,242,.96), rgba(255,255,255,.98));
  --empresa-delete-border:rgba(170,56,38,.2);
  --empresa-delete-box-bg:rgba(255,255,255,.76);
  --empresa-delete-box-border:rgba(170,56,38,.32);
}
html.theme-dark .empresa-edit-card,
html[data-theme^="dark"] .empresa-edit-card{
  --empresa-edit-input-bg:color-mix(in srgb, var(--surface) 92%, #ffffff 8%);
  --empresa-edit-input-focus-bg:color-mix(in srgb, var(--surface) 86%, var(--accent) 14%);
  --empresa-edit-input-border:color-mix(in srgb, var(--border) 78%, var(--accent) 22%);
  --empresa-edit-input-text:var(--text);
  --empresa-edit-input-placeholder:color-mix(in srgb, var(--muted) 82%, transparent);
  --empresa-edit-soft-bg:color-mix(in srgb, var(--surface) 88%, #ffffff 4%);
  --empresa-edit-soft-border:color-mix(in srgb, var(--border) 82%, #ffffff 8%);
  --empresa-delete-bg:linear-gradient(180deg, color-mix(in srgb, var(--surface) 86%, #ef4444 14%), color-mix(in srgb, var(--surface) 94%, #111827 6%));
  --empresa-delete-border:color-mix(in srgb, var(--danger) 40%, var(--border));
  --empresa-delete-box-bg:color-mix(in srgb, var(--surface) 90%, #ef4444 10%);
  --empresa-delete-box-border:color-mix(in srgb, var(--danger) 46%, var(--border));
}
.empresa-edit-panel-copy{
  margin:8px 0 0;
  color:var(--muted);
}
.empresa-edit-meta-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.empresa-edit-meta-item,
.empresa-edit-delete-chip{
  border:1px solid var(--empresa-edit-soft-border, rgba(24,49,83,.08));
  border-radius:12px;
  padding:12px 14px;
  background:var(--empresa-edit-soft-bg, linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,250,242,.96)));
}
.empresa-edit-meta-item span,
.empresa-edit-delete-chip span{
  display:block;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--empresa-card-muted);
  margin-bottom:6px;
}
.empresa-edit-meta-item strong,
.empresa-edit-delete-chip strong{
  color:var(--empresa-card-title);
  font-size:1rem;
}
.empresa-edit-form{
  margin-top:14px;
}
.empresa-edit-textarea{
  min-height:150px;
  resize:vertical;
}
.form-col-full{
  flex:1 1 100%;
}
.empresa-edit-stats{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:16px;
}
.empresa-edit-stat{
  border:1px solid rgba(24,49,83,.08);
  border-radius:14px;
  padding:14px 16px;
  background:linear-gradient(180deg, rgba(255,248,235,.8), rgba(255,255,255,.96));
}
.empresa-edit-stat-label{
  display:block;
  font-size:.82rem;
  color:var(--empresa-card-muted);
  margin-bottom:6px;
}
.empresa-edit-stat strong{
  font-size:1.25rem;
  color:var(--empresa-card-title);
}
.empresa-edit-impacto{
  margin-top:16px;
  line-height:1.6;
}
.empresa-edit-delete-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.empresa-edit-delete-card .btn,
.empresa-edit-card .btn{
  border-radius:10px;
}
.empresa-edit-danger{
  border:1px solid var(--empresa-delete-border, rgba(170,56,38,.18));
  background:var(--empresa-delete-bg, linear-gradient(180deg, rgba(255,245,242,.96), rgba(255,255,255,.98)));
}
.empresa-edit-danger-box{
  margin-top:16px;
  padding:18px;
  border-radius:16px;
  border:1px dashed var(--empresa-delete-box-border, rgba(170,56,38,.32));
  background:var(--empresa-delete-box-bg, rgba(255,255,255,.72));
}
.empresa-delete-warning{
  margin-top:0;
  margin-bottom:12px;
}
.empresa-delete-download-actions{
  margin-bottom:14px;
}
.empresa-delete-checklist{
  display:grid;
  gap:8px;
  margin:12px 0 14px;
}
.empresa-delete-check-item{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--empresa-edit-soft-border, rgba(24,49,83,.08));
  background:var(--empresa-edit-soft-bg, rgba(255,255,255,.78));
  color:var(--muted);
  font-size:.88rem;
  font-weight:800;
}
.empresa-delete-check-item::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--status-warning);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--status-warning) 18%, transparent);
  flex:0 0 auto;
}
.empresa-delete-check-item.is-ok{
  color:var(--status-success);
}
.empresa-delete-check-item.is-ok::before{
  background:var(--status-success);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--status-success) 18%, transparent);
}
.empresa-delete-ack{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:12px 0;
  padding:12px;
  border:1px solid var(--empresa-delete-box-border, rgba(170,56,38,.22));
  border-radius:12px;
  background:var(--empresa-edit-soft-bg, rgba(255,255,255,.7));
  color:var(--text);
  font-weight:700;
  line-height:1.45;
}
.empresa-delete-ack input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:var(--danger);
  flex:0 0 auto;
}
.empresa-delete-progress{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0;
  padding:12px;
  border-radius:12px;
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
  border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  color:var(--text);
  font-weight:800;
}
.empresa-delete-progress[hidden]{
  display:none !important;
}
.empresa-delete-spinner{
  width:18px;
  height:18px;
  border-radius:999px;
  border:3px solid color-mix(in srgb, var(--accent) 18%, transparent);
  border-top-color:var(--accent);
  animation:empresa-delete-spin .8s linear infinite;
}
@keyframes empresa-delete-spin{
  to{transform:rotate(360deg)}
}
.selector-delete-modal[hidden]{display:none !important}
.selector-delete-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:grid;
  place-items:center;
  padding:18px;
}
.selector-delete-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(3,10,20,.62);
  backdrop-filter:blur(4px);
}
.selector-delete-modal__panel{
  position:relative;
  z-index:1;
  width:min(760px, 100%);
  max-height:min(88vh, 820px);
  overflow:auto;
  padding:22px;
  border-radius:16px;
  border:1px solid var(--empresa-delete-border, color-mix(in srgb, var(--danger) 34%, var(--border)));
  background:var(--surface);
  color:var(--text);
  box-shadow:0 32px 80px rgba(0,0,0,.42);
}
.selector-delete-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.selector-delete-kicker{
  margin:0 0 4px;
  color:var(--danger);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.selector-delete-modal__header h2{
  margin:0;
  color:var(--text);
  font-size:1.35rem;
}
.selector-delete-close{
  width:38px;
  height:38px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface-soft);
  color:var(--text);
  cursor:pointer;
  font-size:1.25rem;
}
.selector-delete-impact{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.selector-delete-impact-chip{
  padding:12px;
  border-radius:12px;
  border:1px solid var(--empresa-edit-soft-border, var(--border));
  background:var(--content-soft-bg);
}
.selector-delete-impact-chip.has-risk{
  border-color:color-mix(in srgb, var(--danger) 34%, var(--border));
  background:color-mix(in srgb, var(--danger) 12%, var(--surface));
}
.selector-delete-impact-chip span{
  display:block;
  color:var(--muted);
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
}
.selector-delete-impact-chip strong{
  display:block;
  margin-top:5px;
  color:var(--text);
  font-size:1.1rem;
}
.selector-delete-download-actions{
  margin:12px 0;
}
.selector-delete-ack{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:12px 0;
  padding:12px;
  border-radius:12px;
  border:1px solid var(--empresa-delete-box-border, var(--border));
  background:var(--content-soft-bg);
  color:var(--text);
  font-weight:700;
  line-height:1.45;
}
.selector-delete-ack input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:var(--danger);
  flex:0 0 auto;
}
.selector-delete-checklist{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:12px 0;
}
.selector-delete-check-item{
  min-height:34px;
  padding:9px 10px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--content-soft-bg);
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
}
.selector-delete-check-item.is-ok{
  color:var(--status-success);
  border-color:color-mix(in srgb, var(--status-success) 35%, var(--border));
  background:color-mix(in srgb, var(--status-success) 10%, var(--surface));
}
.selector-delete-progress{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0;
  padding:12px;
  border-radius:12px;
  border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
  color:var(--text);
  font-weight:800;
}
.selector-delete-progress[hidden]{
  display:none !important;
}
.selector-delete-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--border);
}
.selector-delete-message.error{color:var(--status-danger)}
.selector-delete-message.success{color:var(--status-success)}
body.selector-delete-modal-open{overflow:hidden}
@media (max-width:760px){
  .selector-delete-modal{padding:10px}
  .selector-delete-modal__panel{padding:16px}
  .selector-delete-impact,
  .selector-delete-checklist{grid-template-columns:1fr}
  .selector-delete-actions{flex-direction:column;align-items:stretch}
  .selector-delete-actions .btn{width:100%;justify-content:center}
}
.selector-share-notice{
  margin:0 0 14px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(18,48,71,.1);
  color:#16324a;
  font-size:0.93rem;
  font-weight:700;
  line-height:1.45;
  box-shadow:0 10px 26px rgba(15,23,42,.08);
}
.selector-share-notice.success{
  border-color:rgba(22,163,74,.35);
  background:linear-gradient(180deg,rgba(240,253,244,.96),rgba(255,255,255,.94));
  color:#14532d;
}
.selector-share-notice.error{
  border-color:rgba(220,38,38,.35);
  background:linear-gradient(180deg,rgba(254,242,242,.96),rgba(255,255,255,.94));
  color:#991b1b;
}
.empresa-edit-share-card{
  gap:16px;
}
.empresa-share-lists{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.empresa-share-list{
  display:grid;
  gap:10px;
}
.empresa-share-modules{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:8px;
  padding:10px;
  border:1px solid var(--empresa-edit-soft-border, rgba(18,48,71,.10));
  border-radius:12px;
  background:rgba(255,255,255,.72);
  max-height:260px;
  overflow:auto;
}
.empresa-share-module-option{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  font-size:.88rem;
  font-weight:700;
  color:#183247;
}
.empresa-share-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border-radius:16px;
  background:var(--empresa-edit-soft-bg, rgba(255,255,255,.72));
  border:1px solid var(--empresa-edit-soft-border, rgba(18,48,71,.08));
}
.empresa-share-item-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.empresa-share-state{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px;
  border-radius:999px;
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  background:rgba(226,232,240,.9);
  color:#334155;
}
.empresa-share-state.is-active,
.empresa-share-state.is-aceptada{
  background:rgba(220,252,231,.92);
  color:#166534;
}
.empresa-share-state.is-pendiente{
  background:rgba(254,240,138,.95);
  color:#854d0e;
}
.empresa-share-state.is-expirada,
.empresa-share-state.is-revocada,
.empresa-share-state.is-rechazada{
  background:rgba(254,226,226,.95);
  color:#b42318;
}
.form-help.error{
  color:var(--status-danger);
}
.form-help.success{
  color:var(--status-success);
}
@media (max-width: 860px){
  .empresa-edit-hero,
  .empresa-edit-grid{
    grid-template-columns:1fr;
    display:grid;
  }
  .empresa-edit-meta-strip,
  .empresa-edit-delete-summary{
    grid-template-columns:1fr;
  }
  .empresa-share-lists{
    grid-template-columns:1fr;
  }
  .empresa-edit-hero-actions{
    width:100%;
  }
}

/* Tarjetas de estaciones (administrar empresa): color dinámico por estado de carrito */
#estacionesGrid{
  --station-card-scale: 1;
  --station-card-min: 12.6em;
  --station-card-height: 8.82em;
  --station-gap: 8px;
  --station-card-title: #1f3550;
  --station-card-copy: #35506f;
  /* font-size here controls scaling of card internals (use em in children) */
  font-size: calc(1rem * var(--station-card-scale));
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--station-card-min), 1fr));
  gap: var(--station-gap);
  align-items: start;
  justify-items: center;
  width: 100%;
}
#estacionesGrid.station-size-small{ --station-card-scale: 0.85; --station-card-min: 11.4em; --station-card-height: 7.56em; }
#estacionesGrid.station-size-medium{ --station-card-scale: 1; --station-card-min: 12.6em; --station-card-height: 8.82em; }
#estacionesGrid.station-size-large{ --station-card-scale: 1.25; --station-card-min: 15em; --station-card-height: 10.5em; }
#estacionesGrid.station-size-auto_text{ --station-card-scale: 1; --station-card-min: 14em; --station-card-height: var(--station-card-auto-height, auto); }

#estacionesGrid .portal-card{
  background: var(--station-state-bg, #fff9ef);
  border: 1px solid color-mix(in srgb, var(--station-state-bg, #fff9ef) 58%, rgba(97, 73, 44, 0.5) 42%);
  box-shadow: 0 10px 24px rgba(83, 94, 120, 0.14);
  color: var(--station-card-copy);
  align-items: center;
  text-align: center;
  width: 100%;
  height: var(--station-card-height);
  padding: 0.7em;
  border-radius: 0.5em;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  box-sizing: border-box;
  overflow: hidden;
}

html[data-theme^="dark"] #estacionesGrid .portal-card{
  background: var(--station-state-bg, #fff9ef);
  border-color: color-mix(in srgb, var(--station-state-bg, #fff9ef) 62%, rgba(10, 18, 32, 0.46) 38%);
  box-shadow: 0 14px 30px rgba(0,0,0,0.24);
  color: var(--station-card-copy);
}

html[data-theme="dark-neon"] #estacionesGrid .portal-card{
  background: var(--station-state-bg, #fff9ef);
  border-color: color-mix(in srgb, var(--station-state-bg, #fff9ef) 66%, rgba(0,229,255,0.28) 34%);
  box-shadow: 0 14px 32px rgba(0,0,0,0.28);
}

#estacionesGrid .portal-card.station-card-active{
  border-color: rgba(70, 153, 115, 0.45);
  box-shadow: 0 12px 28px rgba(61, 142, 105, 0.2);
}

html[data-theme^="dark"] #estacionesGrid .portal-card.station-card-active{
  border-color: color-mix(in srgb, var(--station-state-bg, #d9fbe8) 62%, rgba(30, 111, 72, 0.5) 38%);
  box-shadow: 0 14px 30px rgba(30,111,72,0.2);
}

#estacionesGrid .portal-card.station-card-inactive{
  border-color: rgba(188, 156, 120, 0.35);
}

html[data-theme^="dark"] #estacionesGrid .portal-card.station-card-inactive{
  border-color: color-mix(in srgb, var(--station-state-bg, #fff9ef) 58%, rgba(97, 73, 44, 0.5) 42%);
}

#estacionesGrid .portal-card.station-card-dirty{
  border-color: color-mix(in srgb, var(--station-state-bg, #ffe0e0) 58%, rgba(148, 36, 36, 0.5) 42%);
  box-shadow: 0 12px 28px rgba(148, 36, 36, 0.16);
}

#estacionesGrid .portal-card.station-card-alert{
  border-color: color-mix(in srgb, var(--station-state-bg, #fff3cd) 58%, rgba(154, 104, 18, 0.5) 42%);
  box-shadow: 0 12px 28px rgba(154, 104, 18, 0.16);
}

#estacionesGrid .portal-card h3{
  color: var(--station-card-title);
  margin: 0 0 0.2em 0;
  font-size: clamp(0.95em, 1.3vw, 1.05em);
  line-height: 1.05;
  white-space: normal;
  overflow-wrap: break-word;
}

#estacionesGrid .portal-card.station-launch-card{
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.28em;
  text-align: left;
  height: var(--station-card-height);
  min-height: var(--station-card-height);
}

#estacionesGrid .portal-card.station-launch-card h3{
  width: 100%;
  text-align: center;
  margin-bottom: 0.05em;
}

#estacionesGrid .station-data{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.12em;
  min-height: 0;
}

#estacionesGrid .station-data-row{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45em;
  color: var(--station-card-copy);
  font-size: clamp(0.76em, 1.05vw, 0.9em);
  line-height: 1.05;
}

#estacionesGrid .station-data-row[hidden]{
  display: none !important;
}

#estacionesGrid .station-data-label{
  flex: 0 0 auto;
  font-weight: 800;
  color: var(--station-card-title);
}

#estacionesGrid .station-data-value{
  flex: 1 1 auto;
  min-width: 0;
  text-align: right;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#estacionesGrid.station-size-auto_text{
  grid-auto-rows: var(--station-card-auto-height, auto);
}

#estacionesGrid.station-size-auto_text .portal-card,
#estacionesGrid.station-size-auto_text .portal-card.station-launch-card,
#estacionesGrid.station-size-auto_text .youtube-station-card,
#estacionesGrid.station-size-auto_text .notas-station-card,
#estacionesGrid.station-size-auto_text .ia-pedidos-station-card{
  height: var(--station-card-auto-height, auto);
  min-height: var(--station-card-auto-height, 9.5em);
  overflow: visible;
}

#estacionesGrid.station-size-auto_text .station-data-value{
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

#estacionesGrid .portal-card p{
  color: var(--station-card-copy);
  margin: 0 0 0.25em 0;
  font-size: clamp(0.85em, 1.25vw, 0.95em);
  line-height: 1.1;
  white-space: normal;
  overflow-wrap: anywhere;
}

#estacionesGrid .station-entry-time{
  width: 100%;
  display: block;
  font-size: clamp(0.82em, 1.15vw, 0.95em);
  margin: 0 0 0.2em 0;
  line-height: 1.05;
  white-space: normal;
  overflow-wrap: anywhere;
}

#estacionesGrid .youtube-station-card{
  position: relative;
  align-items: stretch;
  text-align: left;
  justify-content: flex-start;
  height: calc(var(--station-card-height) * 1.9);
  min-height: 12.5em;
  padding: 0.8em;
  gap: 0.55em;
  background: var(--youtube-card-bg);
  border-color: var(--youtube-card-border);
}

#estacionesGrid .youtube-station-card h3{
  margin: 0;
  color: var(--youtube-card-title);
}

#estacionesGrid .notas-station-card{
  align-items: stretch;
  text-align: left;
  justify-content: flex-start;
  height: auto;
  min-height: calc(var(--station-card-height) * 1.75);
  padding: 0.8em;
  gap: 0.55em;
  background: var(--notes-card-bg);
  border-color: var(--notes-card-border);
}

#estacionesGrid .notas-station-card h3{
  margin: 0;
  color: var(--notes-card-title);
}

#estacionesGrid .notas-station-card p{
  margin: 0;
  color: var(--notes-card-copy);
  font-size: 0.82em;
}

#estacionesGrid .ia-pedidos-station-card{
  align-items: stretch;
  text-align: left;
  justify-content: flex-start;
  height: auto;
  min-height: calc(var(--station-card-height) * 2);
  padding: 0.75em;
  gap: 0.45em;
}
#estacionesGrid .ia-pedidos-station-head h3{
  margin: 0;
}
#estacionesGrid .ia-pedidos-station-head p{
  margin: 0 0 0.35em 0;
  font-size: 0.78em;
  color: var(--station-card-copy);
}
#estacionesGrid .ia-pedidos-station-frame{
  width: 100%;
  min-height: 220px;
  height: 340px;
  border: 0;
  border-radius: 8px;
  background: var(--surface, rgba(255,255,255,.06));
}

.estaciones-thumb-toggle{
  display: none;
}
@media (max-width: 640px){
  .estaciones-thumb-toggle{
    display: inline-flex;
  }
  #estacionesGrid.estaciones-thumb-mobile{
    container-type: inline-size;
    container-name: estaciones-thumb;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    /* Tamaño de texto fluido: evita 0,72 rem fijo (ilegible); se adapta al ancho de la celda con mínimo legible. */
    --station-card-scale: 1;
    font-size: clamp(0.78rem, 2.9vw + 0.2rem, 0.95rem);
    --station-card-min: 0;
    --station-card-height: 5.67em;
    --station-gap: 6px;
  }
  #estacionesGrid.estaciones-thumb-mobile .portal-card{
    padding: 0.4em 0.3em;
    line-height: 1.2;
  }
  #estacionesGrid.estaciones-thumb-mobile .portal-card h3{
    font-size: clamp(0.95em, 1em + 0.5cqi, 1.1em);
    line-height: 1.15;
  }
  #estacionesGrid.estaciones-thumb-mobile .portal-card p,
  #estacionesGrid.estaciones-thumb-mobile .station-entry-time,
  #estacionesGrid.estaciones-thumb-mobile .caja-row,
  #estacionesGrid.estaciones-thumb-mobile .notas-station-list-item{
    font-size: max(0.88em, 0.7rem);
  }
  #estacionesGrid.estaciones-thumb-mobile .caja-title{
    font-size: 1.05em;
  }
  #estacionesGrid.estaciones-thumb-mobile .ia-pedidos-station-head p,
  #estacionesGrid.estaciones-thumb-mobile .notas-station-card p,
  #estacionesGrid.estaciones-thumb-mobile .youtube-station-card p{
    font-size: max(0.8em, 0.78rem);
  }
  #estacionesGrid.estaciones-thumb-mobile .youtube-station-card,
  #estacionesGrid.estaciones-thumb-mobile .notas-station-card,
  #estacionesGrid.estaciones-thumb-mobile .ia-pedidos-station-card{
    min-height: 6.5em;
    height: auto;
  }
  #estacionesGrid.estaciones-thumb-mobile .ia-pedidos-station-frame{
    min-height: 88px;
    height: 108px;
  }
  #estacionesGrid.estaciones-thumb-mobile .youtube-station-browser-preview,
  #estacionesGrid.estaciones-thumb-mobile .youtube-station-editor{
    display: none;
  }
}

.notas-station-head{
  display: flex;
  flex-direction: column;
  gap: 0.2em;
}

.notas-station-list{
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 10.5em;
  overflow: auto;
}

.notas-station-list-item{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: 1px solid var(--notes-card-panel-border);
  background: var(--notes-card-panel-bg);
  border-radius: 10px;
  padding: 8px 10px;
  color: var(--notes-card-soft-text);
  cursor: pointer;
  text-align: left;
}

.notas-station-list-item.is-active{
  border-color: rgba(113, 83, 9, 0.34);
  box-shadow: 0 10px 16px rgba(122, 96, 8, 0.10);
  background: var(--notes-card-panel-strong-bg);
}

.notas-station-list-item.has-alert{
  border-color: rgba(181, 49, 49, 0.36);
  color: var(--notes-card-alert-text);
}

.notas-station-list-title{
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 700;
}

.notas-station-list-status{
  flex: 0 0 auto;
  font-size: 0.78em;
  font-weight: 800;
}

.notas-station-textarea{
  resize: vertical;
  min-height: 6.5em;
}

.notas-station-timer-row{
  display: grid;
  grid-template-columns: 1fr minmax(6.4em, 8em);
  gap: 8px;
  align-items: end;
}

.notas-station-label{
  margin: 0;
}

.notas-station-repeat-row{
  margin-top: -2px;
}

.notas-station-countdown{
  border-radius: 10px;
  border: 1px solid var(--notes-card-panel-border);
  background: var(--notes-card-panel-bg);
  color: var(--notes-card-countdown-text);
  font-weight: 800;
  text-align: center;
  padding: 10px 12px;
  letter-spacing: 0.05em;
}

.notas-station-actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.notas-station-actions .btn{
  flex: 1 1 140px;
}

.notas-station-inline-message{
  margin: 0;
}

#estacionesGrid .notas-station-card.notas-station-expired{
  border-color: rgba(181, 49, 49, 0.44);
  box-shadow: 0 14px 24px rgba(181, 49, 49, 0.18);
}

#estacionesGrid .notas-station-card.notas-station-blink{
  background: var(--notes-card-expired-bg);
}

#estacionesGrid .youtube-station-card p{
  margin: 0;
  color: var(--youtube-card-copy);
  font-size: 0.82em;
}

#estacionesGrid .youtube-station-card .youtube-station-source{
  color: var(--youtube-card-soft);
  font-size: 0.74em;
  word-break: break-word;
}

.youtube-station-editor{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.youtube-station-editor-label{
  margin: 0;
}

.youtube-station-editor-actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.youtube-station-editor-actions .btn{
  flex: 1 1 180px;
}

.youtube-station-editor-help,
.youtube-station-inline-message{
  margin: 0;
}

.youtube-station-head{
  display: flex;
  flex-direction: column;
  gap: 0.2em;
  padding-right: 4.8em;
}

.youtube-station-browser-preview{
  flex: 1 1 auto;
  min-height: 0;
  border-radius: 0.6em;
  overflow: hidden;
  border: 1px solid rgba(135, 34, 34, 0.16);
  background: var(--youtube-frame-bg);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.34);
}

.youtube-station-preview-frame{
  width: 100%;
  height: 100%;
  border: 0;
  background: var(--youtube-frame-bg);
}

.youtube-station-expand{
  position: absolute;
  top: 0.6em;
  right: 0.6em;
  width: 1.9em;
  height: 1.9em;
  border-radius: 0.4em;
  border: 1px solid rgba(122, 37, 37, 0.24);
  background: var(--youtube-action-bg);
  color: var(--youtube-action-text);
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 14px rgba(110, 29, 29, 0.12);
}

.youtube-station-play{
  position: absolute;
  top: 0.6em;
  right: 2.9em;
  width: 1.9em;
  height: 1.9em;
  border-radius: 0.4em;
  border: 1px solid rgba(122, 37, 37, 0.24);
  background: var(--youtube-action-bg);
  color: var(--youtube-action-text);
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 14px rgba(110, 29, 29, 0.12);
}

.youtube-station-play:hover,
.youtube-station-expand:hover,
.youtube-station-play:focus-visible,
.youtube-station-expand:focus-visible{
  background: var(--youtube-frame-bg);
  box-shadow: 0 10px 18px rgba(110, 29, 29, 0.18);
}

.youtube-station-overlay{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(6, 14, 24, 0.54);
  z-index: 10020;
}

.youtube-station-overlay[hidden]{
  display: none;
}

.youtube-station-overlay-card{
  width: min(1080px, calc(100vw - 24px));
  height: min(820px, calc(100vh - 24px));
  border-radius: 20px;
  border: 1px solid rgba(207, 82, 82, 0.24);
  background: var(--youtube-overlay-bg);
  box-shadow: 0 28px 48px rgba(6, 14, 24, 0.38);
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.youtube-station-overlay-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.youtube-station-overlay-actions{
  display: flex;
  gap: 8px;
  align-items: center;
}

.youtube-station-overlay-head strong{
  display: block;
  color: var(--youtube-action-text);
}

.youtube-station-overlay-head span{
  display: block;
  margin-top: 2px;
  color: var(--youtube-card-soft);
  font-size: 0.88rem;
}

.youtube-station-overlay-frame{
  flex: 1 1 auto;
  width: 100%;
  border: 0;
  border-radius: 16px;
  background: var(--youtube-frame-bg);
}

[style*="color:#777"],
[style*="color: #777"],
[style*="color:#666"],
[style*="color: #666"],
[style*="color:#888"],
[style*="color: #888"]{
  color:var(--muted) !important;
}

[style*="color:#d9534f"],
[style*="color: #d9534f"],
[style*="color:#ca3e3e"],
[style*="color: #ca3e3e"],
[style*="color:#B42318"],
[style*="color: #B42318"]{
  color:var(--danger) !important;
}

[style*="color:#027A48"],
[style*="color: #027A48"],
[style*="color:#28a745"],
[style*="color: #28a745"]{
  color:var(--success) !important;
}

[style*="color:#B54708"],
[style*="color: #B54708"]{
  color:var(--status-warning) !important;
}

.youtube-station-browser-page,
.youtube-station-browser-page html,
.youtube-station-browser-page body{
  min-height: 100%;
}

.youtube-station-browser-page{
  margin: 0;
  background: linear-gradient(180deg, #fff7f7, #f9eded);
  font-family: "Segoe UI Variable","Segoe UI",Tahoma,sans-serif;
}

.youtube-station-browser-shell{
  height: 100vh;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
}

.youtube-station-browser-toolbar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(179, 58, 58, 0.18);
}

.youtube-station-browser-actions{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.youtube-station-search-bar{
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: min(420px, 52vw);
}

.youtube-station-search-input{
  min-width: 0;
}

.youtube-station-browser-toolbar strong{
  display: block;
  color: #7b1f1f;
}

.youtube-station-browser-label{
  display: block;
  margin-top: 2px;
  color: #7b5a63;
  font-size: 0.82rem;
}

.youtube-station-browser-frame-wrap{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(179, 58, 58, 0.16);
  background: #ffffff;
}

.youtube-station-browser-empty{
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  text-align: center;
  color: #5d3c44;
  background:
    radial-gradient(circle at top, rgba(209, 64, 64, 0.12), rgba(209, 64, 64, 0) 46%),
    linear-gradient(180deg, #fffdfd, #f8ecec);
}

.youtube-station-browser-empty strong{
  color: #7b1f1f;
  font-size: 1rem;
}

.youtube-station-browser-empty p{
  margin: 0;
  max-width: 32rem;
  line-height: 1.5;
}

.youtube-station-browser-frame{
  width: 100%;
  height: 100%;
  border: 0;
}

.youtube-station-browser-shell[data-compact="1"]{
  padding: 0;
  gap: 0;
}

.youtube-station-browser-shell[data-compact="1"] .youtube-station-browser-toolbar{
  display: none;
}

.youtube-station-browser-shell[data-compact="1"] .youtube-station-browser-frame-wrap{
  border-radius: 0;
  border: 0;
}

@media (max-width: 640px){
  #estacionesGrid .youtube-station-card{
    height: auto;
    min-height: 14em;
  }

  #estacionesGrid .notas-station-card{
    min-height: 15em;
  }

  .youtube-station-browser-toolbar{
    flex-direction: column;
    align-items: stretch;
  }

  .notas-station-timer-row,
  .notas-station-actions{
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .notas-station-list-item{
    align-items: flex-start;
    flex-direction: column;
  }

  .youtube-station-editor-actions{
    flex-direction: column;
  }

  .youtube-station-browser-actions{
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .youtube-station-search-bar{
    width: 100%;
    min-width: 0;
  }

  .youtube-station-overlay{
    padding: 8px;
  }

  .youtube-station-overlay-card{
    width: calc(100vw - 16px);
    height: calc(100vh - 16px);
    border-radius: 14px;
    padding: 10px;
  }

  .youtube-station-overlay-head{
    flex-direction: column;
    align-items: stretch;
  }

  .youtube-station-overlay-actions{
    width: 100%;
    justify-content: flex-end;
  }
}

#estacionesGrid .station-entry-time{
  margin: -0.15em 0 0.6em;
  font-size: 0.8em;
  font-weight: 600;
  color: color-mix(in srgb, var(--success) 74%, var(--text) 26%);
}

#estacionesGrid .station-mode-label{
  margin: -0.15em 0 0.6em;
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--muted);
}

#estacionesGrid .portal-card:hover,
#estacionesGrid .portal-card:focus-visible{
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(66, 85, 114, 0.2);
}
.license-indicator.inactive{background:var(--danger)}

/* fin: tarjetas cálidas */

/* ===== Offer / License cards (vibrant, CTA-focused) ===== */
.offer-card{color:#fff;border:none;padding:20px;border-radius:12px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.offer-card .offer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.offer-card .offer-price{font-weight:900;font-size:1.45rem;display:flex;align-items:baseline;gap:6px}
.offer-card .offer-price .currency{font-size:0.9rem;opacity:0.9}
.offer-card .card-desc{color:rgba(255,255,255,0.95);margin-bottom:8px}
.offer-card .card-actions{margin-top:12px;display:flex;gap:12px;align-items:center}
.btn.buy{background:linear-gradient(90deg, rgba(255,255,255,0.12), rgba(255,255,255,0.06));color:#fff;padding:10px 16px;border-radius:10px;border:1px solid rgba(255,255,255,0.12);font-weight:900;box-shadow:0 6px 18px rgba(0,0,0,0.25)}
.btn.buy:hover{filter:brightness(1.03)}
.offer-card .small{font-size:0.9rem;color:rgba(255,255,255,0.9)}
.offer-card .license-indicator{background:rgba(0,0,0,0.14);padding:6px 8px;border-radius:8px;font-weight:700}

/* Color variants for offers */
.offer-card.variant-1{background:linear-gradient(135deg,#ff7a18,#af4261);box-shadow:0 12px 30px rgba(175,66,97,0.18)}
.offer-card.variant-2{background:linear-gradient(135deg,#6a11cb,#2575fc);box-shadow:0 12px 30px rgba(37,117,252,0.16)}
.offer-card.variant-3{background:linear-gradient(135deg,#00b09b,#96c93d);box-shadow:0 12px 30px rgba(29,161,134,0.12)}
.offer-card.variant-4{background:linear-gradient(135deg,#ff6b6b,#f94d6a);box-shadow:0 12px 30px rgba(249,77,106,0.16)}

/* Ensure readable small text on offer cards */
.offer-card .muted{opacity:0.92;color:rgba(255,255,255,0.9)}

@media (max-width:1000px){.portal-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.portal-grid{grid-template-columns:1fr}}

/* End offer styles */

/* Tarjetas de configuración avanzada con estilo profesional y estético */
.advanced-card {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--surface-soft) 84%, var(--surface) 16%),
    color-mix(in srgb, var(--surface) 90%, var(--bg) 10%)
  );
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent 12%);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22), inset 0 1px 1px color-mix(in srgb, var(--text) 9%, transparent 91%);
  border-radius: 14px;
  backdrop-filter: blur(20px);
  position: relative;
  overflow: hidden;
  padding: 30px 40px;
  color: var(--text);
  transition: transform 0.25s cubic-bezier(0.2,0.8,0.2,1), box-shadow 0.25s ease;
  margin-bottom: 24px;
}

.advanced-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.26), inset 0 1px 1px color-mix(in srgb, var(--text) 14%, transparent 86%);
}

.advanced-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--accent);
  opacity: 0.85;
}

.advanced-card[data-brand="epayco"]::before { background: linear-gradient(90deg, #ff6b00, #ff9500); }
.advanced-card[data-brand="wompi"]::before { background: linear-gradient(90deg, #144bd6, #1f8a56); }
.advanced-card[data-brand="gmail"]::before { background: linear-gradient(90deg, #ea4335, #fbbc05); }
.advanced-card[data-brand="ai"]::before { background: linear-gradient(90deg, #4285f4, #9b72cb, #d96570); }
.advanced-card[data-brand="store"]::before { background: linear-gradient(90deg, #00c6ff, #0072ff); }
.advanced-card[data-brand="system"]::before { background: linear-gradient(90deg, #8e2de2, #4a00e0); }

.advanced-card h2 {
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-top: 0;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text);
}

.advanced-card h2 svg {
  width: 24px;
  height: 24px;
  opacity: 0.9;
}

.advanced-card > .form-help {
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 28px;
}

.advanced-card .form-row {
  margin-bottom: 22px;
  background: color-mix(in srgb, var(--content-soft-bg) 84%, transparent 16%);
  padding: 22px;
  border-radius: 12px;
  border: 1px solid var(--content-soft-border);
}

.advanced-card .form-label {
  color: var(--text);
  font-weight: 600;
  font-size: 0.88rem;
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.advanced-card .form-input {
  background: var(--form-input-bg);
  border-color: var(--form-border);
  color: var(--text);
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 0.95rem;
  transition: all 0.2s;
}

.advanced-card .form-input:focus {
  background: color-mix(in srgb, var(--form-input-bg) 84%, var(--surface-soft) 16%);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent 78%);
  outline: none;
}

.advanced-card .form-input::placeholder {
  color: color-mix(in srgb, var(--muted) 72%, transparent 28%);
}

.advanced-card .form-actions {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--content-soft-border);
  display: flex;
  align-items: center;
  gap: 12px;
}

.advanced-card .btn {
  border-radius: 8px;
  font-weight: 600;
  padding: 10px 22px;
  letter-spacing: 0.02em;
}

.advanced-card .btn:not(.secondary) {
  background: linear-gradient(180deg, var(--btn-primary-top), var(--accent));
  color: var(--btn-primary-text);
  border: 1px solid var(--btn-primary-border);
  box-shadow: 0 4px 12px var(--btn-primary-shadow);
}

.advanced-card .btn:not(.secondary):hover {
  background: linear-gradient(180deg, color-mix(in srgb, var(--btn-primary-top) 88%, white 12%), color-mix(in srgb, var(--accent) 92%, black 8%));
  transform: translateY(-1px);
}

.advanced-card .btn.secondary {
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
}

.advanced-card .btn.secondary:hover {
  background: color-mix(in srgb, var(--surface-soft) 74%, var(--focus) 26%);
  color: var(--text);
}

.advanced-card .mode-switch-row {
  background: var(--content-soft-bg);
  padding: 10px 18px;
  border-radius: 30px;
  border: 1px solid var(--content-soft-border);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.advanced-card .mode-switch-row input[type="checkbox"] {
  transform: scale(1.1); /* Hace el toggle ligeramente más grande */
}

.advanced-card .mode-label {
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  color: var(--muted);
  font-weight: 600;
}

.advanced-card .form-col > .form-help {
  font-size: 0.82rem;
  color: var(--muted);
  margin-top: 10px;
  line-height: 1.45;
}

/* Cabecera general de las páginas de configuración */
.super-page .page-header {
  text-align: center;
  margin-bottom: 40px;
  padding: 30px 0 10px;
}

.super-page .page-header h1 {
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  background: linear-gradient(90deg, var(--text), color-mix(in srgb, var(--accent) 46%, white 54%));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent; /* Fallback override */
  margin-bottom: 16px;
}

/* Temas claros: el titulo con gradiente + text-fill transparente queda ilegible sobre fondo claro */
html.theme-light .super-page .page-header h1,
html[data-theme="light"] .super-page .page-header h1,
html[data-theme="light-rose"] .super-page .page-header h1,
html[data-theme="light-gold"] .super-page .page-header h1{
  background:none;
  -webkit-background-clip:unset;
  background-clip:unset;
  -webkit-text-fill-color:unset;
  color:var(--text);
}

.super-page .page-header p.form-help {
  font-size: 1.15rem;
  max-width: 650px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.6;
}

.licencias-page .page-header,
.administradores-page .page-header,
.auditoria-global-page .page-header{
  text-align:left;
}

.licencias-page .page-header p.form-help,
.administradores-page .page-header .page-subtitle,
.auditoria-global-page .page-header .page-subtitle{
  max-width:760px;
  margin:6px 0 0;
  text-align:left;
  color:var(--muted);
  line-height:1.55;
}

/* Elementos de UI general refinados para advanced vars */
.global-save-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--public-panel-bg);
  border: 1px solid var(--public-panel-border);
  padding: 16px 24px;
  border-radius: 12px;
  margin-bottom: 24px;
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 28px var(--public-panel-shadow);
}
.global-save-bar p { margin: 0; color: var(--text); font-size: 0.95rem; font-weight: 500; }
.global-save-bar.bottom { margin-bottom: 0; margin-top: 10px; }

/* Pasarela de pago (Wompi) - color alineado al estado activo del panel */
.mp-card{
  background: linear-gradient(180deg, var(--accent-2), var(--accent));
  color: #fff;
  border: 1px solid rgba(0,0,0,0.12);
  box-shadow: 0 12px 30px rgba(0,0,0,0.35);
}
.mp-card .form-label, .mp-card .form-help{ color: rgba(255,255,255,0.92); }
.mp-card .form-input{ background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.12); color: #fff }
.mp-card .form-input::placeholder{ color: rgba(255,255,255,0.8) }
.mp-card .form-actions .btn{ color: #fff; border-color: rgba(0,0,0,0.12) }
.mp-card .form{ background: transparent }

/* Paneles claros anidados dentro de mp-card (p. ej. pagina_principal): sin esto heredan #fff del padre y en modo claro no se lee */
.mp-card .card,
.mp-card .pp-card-item{
  color: var(--text);
}
.mp-card .card h2,
.mp-card .card h3,
.mp-card .pp-card-item h2,
.mp-card .pp-card-item h3{
  color: var(--text);
}
.mp-card .card .form-label,
.mp-card .pp-card-item .form-label{
  color: var(--muted);
}
.mp-card .card .form-help,
.mp-card .card p,
.mp-card .pp-card-item .form-help,
.mp-card .pp-card-item p{
  color: var(--muted);
}
.mp-card .card .form-input,
.mp-card .card .form-textarea,
.mp-card .card select.form-input,
.mp-card .pp-card-item .form-input,
.mp-card .pp-card-item .form-textarea,
.mp-card .pp-card-item select.form-input{
  background: var(--form-input-bg);
  border-color: var(--form-border);
  color: var(--text);
}
.mp-card .card .form-input::placeholder,
.mp-card .card .form-textarea::placeholder,
.mp-card .pp-card-item .form-input::placeholder,
.mp-card .pp-card-item .form-textarea::placeholder{
  color: color-mix(in srgb, var(--muted) 72%, transparent);
}
.mp-card .card code,
.mp-card .pp-card-item code{
  color: var(--text);
  background: var(--content-soft-bg);
  border-radius: 4px;
  padding: 0 4px;
}
.mp-card .card .btn.secondary,
.mp-card .pp-card-item .btn.secondary{
  color: var(--text);
  border-color: var(--border);
  background: var(--surface-soft);
}

/* mp-card: en tema claro el contenedor accent + etiquetas blancas rompe contraste (pagina principal, formatos email) */
html.theme-light .mp-card,
html[data-theme="light"] .mp-card,
html[data-theme="light-rose"] .mp-card,
html[data-theme="light-gold"] .mp-card{
  background:linear-gradient(180deg, var(--surface-soft), var(--surface));
  color:var(--text);
  border:1px solid var(--border);
  box-shadow:0 10px 28px color-mix(in srgb, var(--text) 6%, transparent);
}
html.theme-light .mp-card > h2,
html[data-theme^="light"] .mp-card > h2{
  color:var(--text);
}
html.theme-light .mp-card .form-label,
html.theme-light .mp-card .form-help,
html[data-theme^="light"] .mp-card .form-label,
html[data-theme^="light"] .mp-card .form-help{
  color:var(--muted);
}
html.theme-light .mp-card .form-input,
html.theme-light .mp-card .form-textarea,
html.theme-light .mp-card select.form-input,
html[data-theme^="light"] .mp-card .form-input,
html[data-theme^="light"] .mp-card .form-textarea,
html[data-theme^="light"] .mp-card select.form-input{
  background:var(--form-input-bg);
  border-color:var(--form-border);
  color:var(--text);
}
html.theme-light .mp-card .form-input::placeholder,
html.theme-light .mp-card .form-textarea::placeholder,
html[data-theme^="light"] .mp-card .form-input::placeholder,
html[data-theme^="light"] .mp-card .form-textarea::placeholder{
  color:color-mix(in srgb, var(--muted) 78%, transparent);
}
html.theme-light .mp-card .form-actions .btn,
html[data-theme^="light"] .mp-card .form-actions .btn{
  color:unset;
  border-color:unset;
}

html.theme-light .pp-image-preview-wrap,
html[data-theme="light"] .pp-image-preview-wrap,
html[data-theme="light-rose"] .pp-image-preview-wrap,
html[data-theme="light-gold"] .pp-image-preview-wrap{
  background: color-mix(in srgb, var(--surface-soft) 88%, var(--accent) 12%);
  border-color: var(--border);
}

/* Tarjeta de configuración Nequi/Wompi */
.nequi-card{
  background: linear-gradient(180deg, #1f8a56, #146b41);
  color: #fff;
  border: 1px solid rgba(0,0,0,0.12);
  box-shadow: 0 12px 30px rgba(0,0,0,0.35);
}
.nequi-card .form-label, .nequi-card .form-help{ color: rgba(255,255,255,0.94); }
.nequi-card .form-input{ background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.16); color: #fff }
.nequi-card .form-input::placeholder{ color: rgba(255,255,255,0.82) }
.nequi-card .form-actions .btn{ color: #fff; border-color: rgba(0,0,0,0.12) }

.mode-switch-row{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  user-select: none;
}
.mode-switch-row input[type="checkbox"]{
  width: 48px;
  height: 24px;
  accent-color: #0f5130;
  cursor: pointer;
}
.mode-switch-row .mode-label{ font-size: 0.95rem; }

/* ===== Pagar licencia: selector de metodos coloridos ===== */
.checkout-licencia-page .admin-content{
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--accent-yellow) 18%, transparent 82%), transparent 28%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 24%, transparent 76%), color-mix(in srgb, var(--surface) 18%, transparent 82%));
}
.checkout-payment-shell{
  padding:18px;
  background:
    radial-gradient(circle at top left, color-mix(in srgb, #38bdf8 16%, transparent 84%), transparent 32%),
    linear-gradient(160deg, color-mix(in srgb, var(--surface) 84%, #0ea5e9 16%), color-mix(in srgb, var(--surface-soft) 86%, #22c55e 14%));
  border:1px solid color-mix(in srgb, var(--border) 76%, #0ea5e9 24%);
}
.checkout-licencia-shell{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.checkout-licencia-hero{
  margin-bottom:0;
  padding:0;
}
.checkout-brand-title{
  justify-content:center;
}
.checkout-brand-subtitle{
  max-width:58rem;
}
.checkout-eyebrow{
  margin:0;
  color:var(--accent-yellow);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.checkout-summary-grid{
  max-width:1100px;
  margin:0 auto;
  align-items:stretch;
}
.checkout-home-card{
  min-height:100%;
}
.checkout-license-card,
.checkout-discount-card{
  --checkout-card-accent: var(--accent-yellow);
  --checkout-card-accent-2: var(--success);
  --checkout-card-surface: 52%;
  --checkout-card-tint: 48%;
  position:relative;
  overflow:hidden;
  border:1px solid color-mix(in srgb, var(--content-soft-border) 58%, var(--checkout-card-accent) 42%);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--checkout-card-accent-2) 22%, transparent 78%), transparent 38%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) var(--checkout-card-surface), var(--checkout-card-accent) var(--checkout-card-tint)), color-mix(in srgb, var(--surface-soft) 70%, var(--checkout-card-accent-2) 30%));
  box-shadow:0 18px 38px rgba(8,16,28,.2);
  color:var(--text);
}
.checkout-license-card{
  --checkout-card-accent: #2563eb;
  --checkout-card-accent-2: #06b6d4;
  --checkout-card-surface: 50%;
  --checkout-card-tint: 50%;
}
.checkout-discount-card{
  --checkout-card-accent: #f59e0b;
  --checkout-card-accent-2: #be123c;
  --checkout-card-surface: 48%;
  --checkout-card-tint: 52%;
}
.checkout-license-card::before,
.checkout-discount-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:linear-gradient(90deg, var(--checkout-card-accent), var(--checkout-card-accent-2));
}
.checkout-license-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.checkout-license-media{
  width:54px;
  height:54px;
  min-width:54px;
  border-radius:14px;
  background:color-mix(in srgb, var(--surface) 72%, var(--checkout-card-accent) 28%);
  border:1px solid color-mix(in srgb, var(--content-soft-border) 58%, var(--checkout-card-accent) 42%);
}
.checkout-license-media .card-logo{
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  min-height:34px !important;
  object-fit:contain;
}
.checkout-license-benefits{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:14px 0;
}
.checkout-license-benefits span{
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:7px 8px;
  border-radius:8px;
  background:color-mix(in srgb, var(--surface) 72%, var(--checkout-card-accent) 28%);
  border:1px solid color-mix(in srgb, var(--content-soft-border) 60%, var(--checkout-card-accent) 40%);
  color:var(--text);
  font-size:.78rem;
  font-weight:800;
}
.checkout-licencia-page .checkout-home-card h3,
.checkout-licencia-page .checkout-home-card .card-title{
  color:var(--text);
  text-shadow:none;
}
.checkout-licencia-page .checkout-home-card p,
.checkout-licencia-page .checkout-home-card .card-desc{
  color:color-mix(in srgb, var(--muted) 86%, var(--text) 14%);
}
.checkout-card-kicker{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  padding:6px 12px;
  border-radius:999px;
  background:color-mix(in srgb, var(--surface) 70%, var(--checkout-card-accent) 30%);
  border:1px solid color-mix(in srgb, var(--content-soft-border) 55%, var(--checkout-card-accent) 45%);
  color:color-mix(in srgb, var(--text) 88%, var(--checkout-card-accent) 12%);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.checkout-meta-list,
.checkout-mini-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.checkout-meta-pill,
.checkout-mini-pill{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  background:color-mix(in srgb, var(--surface) 76%, #64748b 24%);
  border:1px solid color-mix(in srgb, var(--content-soft-border) 68%, #64748b 32%);
  color:var(--text);
  font-size:.83rem;
  font-weight:700;
}
.checkout-card-actions-inline{
  justify-content:flex-start;
  margin-top:auto;
}
.checkout-license-value-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid color-mix(in srgb, var(--content-soft-border) 58%, var(--checkout-card-accent) 42%);
}
.checkout-license-value-row span{
  color:var(--muted);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.checkout-price-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:10px 16px;
  border-radius:14px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--surface) 42%, var(--checkout-card-accent) 58%), color-mix(in srgb, var(--surface-soft) 44%, var(--checkout-card-accent-2) 56%));
  border:1px solid color-mix(in srgb, var(--checkout-card-accent) 46%, var(--border) 54%);
  color:var(--text);
  font-size:1.15rem;
  font-weight:900;
  box-shadow:0 14px 26px rgba(8,16,28,0.22);
}
.checkout-discount-row{
  width:100%;
  margin:8px 0 12px;
}
.checkout-code-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  width:100%;
  margin:14px 0 12px;
}
.checkout-discount-card .form-label{
  color:var(--text);
}
.checkout-discount-card .form-input{
  background:color-mix(in srgb, var(--form-input-bg) 78%, var(--checkout-card-accent) 22%);
  border-color:color-mix(in srgb, var(--form-border) 52%, var(--checkout-card-accent) 48%);
  color:var(--text);
  min-height:46px;
}
.checkout-payment-feedback{
  max-width:1100px;
  width:100%;
  margin:0 auto;
}
.checkout-summary-card,
.checkout-free-activation{
  max-width:1100px;
  margin:14px auto 0;
  color:var(--text);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, #22d3ee 15%, transparent 85%), transparent 36%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) 52%, #14b8a6 48%), color-mix(in srgb, var(--surface-soft) 58%, #06b6d4 42%));
  border:1px solid color-mix(in srgb, var(--border) 60%, #14b8a6 40%);
}
.checkout-totals-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.checkout-total-item{
  border:1px solid color-mix(in srgb, var(--content-soft-border) 62%, #14b8a6 38%);
  border-radius:12px;
  padding:12px 14px;
  background:linear-gradient(145deg, color-mix(in srgb, var(--surface) 70%, #14b8a6 30%), color-mix(in srgb, var(--surface-soft) 72%, #06b6d4 28%));
}
.checkout-summary-card .checkout-total-item:nth-child(2){
  background:linear-gradient(145deg, color-mix(in srgb, var(--surface) 72%, #f59e0b 28%), color-mix(in srgb, var(--surface-soft) 74%, #fb7185 26%));
  border-color:color-mix(in srgb, var(--content-soft-border) 62%, #f59e0b 38%);
}
.checkout-summary-card .checkout-total-item:nth-child(3){
  background:linear-gradient(145deg, color-mix(in srgb, var(--surface) 68%, #22c55e 32%), color-mix(in srgb, var(--surface-soft) 72%, #10b981 28%));
  border-color:color-mix(in srgb, var(--content-soft-border) 58%, #22c55e 42%);
}
.checkout-total-item span{
  display:block;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.checkout-total-item strong{
  color:var(--text);
  font-size:1.16rem;
}
.checkout-total-item.total strong{
  color:color-mix(in srgb, var(--success) 74%, var(--text) 26%);
}
.checkout-free-activation{
  border:1px solid color-mix(in srgb, var(--success) 48%, var(--border) 52%);
  background:
    radial-gradient(circle at top left, color-mix(in srgb, #bef264 18%, transparent 82%), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) 58%, #16a34a 42%), color-mix(in srgb, var(--surface-soft) 62%, #84cc16 38%));
}
.checkout-free-activation .btn{
  margin-top:12px;
}
.checkout-discount-status{
  margin-top:10px;
}
.checkout-payment-hub{
  max-width:1100px;
  width:100%;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:20px;
  border-radius:22px;
  background:
    radial-gradient(circle at top right, color-mix(in srgb, #a78bfa 24%, transparent 76%), transparent 36%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) 48%, #7c3aed 52%), color-mix(in srgb, var(--surface-soft) 54%, #2563eb 46%));
  border:1px solid color-mix(in srgb, var(--border) 58%, #7c3aed 42%);
  box-shadow:0 18px 38px rgba(8,16,28,.18);
}
.checkout-license-card{
  background:linear-gradient(145deg, #dbeafe 0%, #ccfbf1 100%) !important;
}
.checkout-discount-card{
  background:linear-gradient(145deg, #fff1c2 0%, #ffe4e6 100%) !important;
}
.checkout-summary-card{
  background:linear-gradient(145deg, #ccfbf1 0%, #d1fae5 100%) !important;
}
.checkout-free-activation{
  background:linear-gradient(145deg, #bbf7d0 0%, #ecfccb 100%) !important;
}
.checkout-payment-hub{
  background:linear-gradient(145deg, #ede9fe 0%, #dbeafe 100%) !important;
}
html.theme-dark .checkout-license-card,
html[data-theme^="dark"] .checkout-license-card{
  background:linear-gradient(145deg, #102a52 0%, #064e5c 100%) !important;
}
html.theme-dark .checkout-discount-card,
html[data-theme^="dark"] .checkout-discount-card{
  background:linear-gradient(145deg, #4a2d05 0%, #4c1226 100%) !important;
}
html.theme-dark .checkout-summary-card,
html[data-theme^="dark"] .checkout-summary-card{
  background:linear-gradient(145deg, #064e3b 0%, #0f3f46 100%) !important;
}
html.theme-dark .checkout-free-activation,
html[data-theme^="dark"] .checkout-free-activation{
  background:linear-gradient(145deg, #14532d 0%, #365314 100%) !important;
}
html.theme-dark .checkout-payment-hub,
html[data-theme^="dark"] .checkout-payment-hub{
  background:linear-gradient(145deg, #2e1065 0%, #172554 100%) !important;
}
.checkout-payment-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.checkout-payment-header .payment-method-title{
  margin:4px 0 0;
  font-size:1.3rem;
  color:var(--text);
}
.checkout-payment-copy{
  max-width:32rem;
  margin:0;
  color:color-mix(in srgb, var(--muted) 86%, var(--text) 14%);
}
.checkout-single-method-help{
  margin-top:-4px;
}
.payment-licencia-summary{
  display:flex;
  gap:18px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}
.payment-licencia-info{flex:1;min-width:240px}
.payment-licencia-price{min-width:180px;text-align:right;font-size:1.5rem;font-weight:900}
.payment-method-title{margin-top:12px;margin-bottom:10px;font-size:1.05rem}
.payment-method-selector{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  margin-top:8px;
}
.payment-method-selector-licenses{
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.payment-method-card{
  border:1px solid transparent;
  border-radius:12px;
  padding:12px;
  text-align:left;
  cursor:pointer;
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.3);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.payment-method-card-licenses{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:172px;
}
.payment-method-card:hover{transform:translateY(-1px)}
.payment-method-badge{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.18);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:2px;
  color:#fff;
}
.payment-method-card .method-name{display:block;font-weight:800;margin-bottom:4px;color:#fff}
.payment-method-card .method-desc{display:block;font-size:.88rem;opacity:.95;color:rgba(255,255,255,.92)}
.payment-method-logo{
  display:block;
  width:140px;
  max-width:100%;
  height:auto;
  margin:4px 0 8px;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(8,18,38,0.22));
}
.payment-bank-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  width:min(100%, 250px);
  margin:2px 0 8px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,0.9);
  border:1px solid rgba(255,255,255,0.72);
  box-shadow:0 12px 24px rgba(8,18,38,0.18);
  color:#1f2937;
  text-shadow:none;
}
.payment-bank-logo{
  display:block;
  width:190px;
  max-width:100%;
  height:48px;
  object-fit:contain;
  object-position:left center;
}
.payment-bank-brand span{
  color:#1f2937;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.03em;
}
.payment-method-wompi .payment-bank-brand{
  background:linear-gradient(180deg,#ffffff,#fff9c2);
}
.payment-method-epayco .payment-bank-brand{
  background:linear-gradient(180deg,#ffffff,#fff1f1);
}
.payment-method-card.payment-method-mp{
  border-color:#2f78cf;
  background:linear-gradient(135deg, rgba(9,41,86,.95), rgba(17,103,177,.85));
}
.payment-method-card.payment-method-epayco{
  border-color:#ff7440;
  background:
    radial-gradient(circle at top right, rgba(255,158,73,0.24), rgba(255,158,73,0) 28%),
    linear-gradient(135deg, rgba(17,19,25,0.98), rgba(37,39,49,0.94) 56%, rgba(113,33,18,0.94));
}
.payment-method-card.payment-method-nequi{
  border-color:#30a46c;
  background:linear-gradient(135deg, rgba(12,65,39,.95), rgba(26,130,83,.88));
}
.payment-method-card.payment-method-wompi{
  border-color:#30a46c;
  background:linear-gradient(135deg, rgba(10,61,44,.96), rgba(29,147,95,.88));
}
.payment-method-card.payment-method-manual{
  border-color:#b86b1a;
  background:linear-gradient(135deg, rgba(92,47,9,.95), rgba(165,94,18,.90));
}
.payment-method-card.active{
  box-shadow:0 0 0 2px rgba(255,255,255,.16), 0 10px 24px rgba(0,0,0,.35);
}
.payment-method-epayco-catalog{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(255,116,64,0.28);
  background:
    radial-gradient(circle at top right, rgba(255,151,76,0.18), rgba(255,151,76,0) 34%),
    linear-gradient(135deg, rgba(22,24,31,0.98), rgba(38,39,48,0.94) 58%, rgba(121,27,17,0.9));
  color:#fff7f1;
}
.payment-method-options-title{
  font-size:1rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.payment-method-options-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.payment-method-option-pill{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.14);
  color:#fff8f0;
  font-size:.84rem;
  font-weight:700;
}
.payment-method-epayco-note{
  color:rgba(255,244,233,0.8);
}

@media (max-width:860px){
  .checkout-totals-grid{grid-template-columns:1fr;}
}

.payment-method-panel{
  display:none;
  margin-top:12px;
  padding:12px;
  border-radius:12px;
  border:1px solid transparent;
  color:var(--text);
}
.payment-method-panel.active{display:block}
.payment-method-panel-mp{
  border-color:#2f78cf;
  background:linear-gradient(135deg, rgba(9,41,86,.95), rgba(17,103,177,.85));
  color:#f2f7ff;
}
.payment-method-panel-epayco{
  max-width:420px;
  width:100%;
  margin:6px auto 0;
  padding:18px 18px 16px;
  border-color:rgba(219,110,63,0.28);
  background:#ffffff;
  color:#1d2d42;
  box-shadow:0 18px 38px rgba(12,24,40,0.14);
}
.payment-method-panel-nequi{
  border-color:#30a46c;
  background:linear-gradient(135deg, rgba(12,65,39,.95), rgba(26,130,83,.88));
  color:#ecfff4;
}
.payment-method-panel-wompi{
  max-width:420px;
  width:100%;
  margin:6px auto 0;
  padding:18px 18px 16px;
  border-color:#30a46c;
  background:linear-gradient(135deg, rgba(10,61,44,.96), rgba(29,147,95,.88));
  color:#ecfff4;
}
.payment-method-panel-manual{
  border-color:#b86b1a;
  background:linear-gradient(135deg, rgba(92,47,9,.95), rgba(165,94,18,.90));
  color:#fff5eb;
}
.method-panel-heading{font-weight:800;margin-bottom:8px}
.payment-method-heading-with-logo{
  display:flex;
  align-items:center;
  gap:10px;
}
.payment-method-heading-with-logo-epayco{
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:12px;
  margin-bottom:10px;
}
.payment-method-panel-logo-shell{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:96px;
  padding:12px 16px;
  border-radius:18px;
  background:linear-gradient(135deg, #18263a, #243a58);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06);
}
.payment-method-panel-logo{
  width:152px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,0.34));
}
.payment-method-panel-title{
  font-size:1.18rem;
  font-weight:900;
  letter-spacing:.02em;
  color:#1e314d;
}
.payment-method-brand-copy{
  color:rgba(255,240,228,0.86);
}
.payment-method-panel-epayco .payment-method-brand-copy{
  margin:0 0 6px;
  color:#50637b;
  text-align:center;
}
.payment-method-hint{margin-bottom:10px}
.payment-method-check{display:block;margin-bottom:8px;color:inherit}
.payment-method-links{margin-bottom:8px;color:inherit}
.payment-method-status{margin-top:8px;color:inherit}
.payment-method-input{
  width:100%;
  margin-top:6px;
  margin-bottom:8px;
  padding:10px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.92);
  color:#24120d;
}
.payment-btn-epayco{width:100%;background:linear-gradient(135deg,#ff9b2f,#f34728);color:#fff;border:none;box-shadow:0 12px 24px rgba(117,31,18,0.32)}
.payment-method-panel-epayco .payment-method-check{
  color:#33475f;
  font-weight:700;
  margin:4px 0 10px;
}
.payment-method-panel-epayco .payment-method-status{
  color:#4a5d73;
  text-align:center;
}
.payment-method-panel-epayco .payment-btn-epayco{
  max-width:260px;
  margin:0 auto;
  display:flex;
  justify-content:center;
}
.payment-btn-mp{width:100%;background:#ffd166;color:#1f2a38;border:none}
.payment-btn-wompi{width:100%;background:#7ce0a6;color:#0f3521;border:none}
.payment-btn-nequi{width:100%;background:#7ce0a6;color:#0f3521;border:none}
.payment-btn-manual{width:100%;background:#ffcc80;color:#4a2506;border:none}

.empresa-export-page{min-height:100vh;background:linear-gradient(180deg,var(--bg-alt) 0%,var(--bg) 100%);color:var(--text)}
.empresa-export-page--embedded{background:var(--bg)}
.empresa-export-minimal{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px;box-sizing:border-box}
.empresa-export-page--embedded .empresa-export-minimal{align-items:flex-start;padding-top:32px}
.empresa-export-panel{width:min(100%,560px);display:grid;gap:24px;padding:30px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}
.empresa-export-brand{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.empresa-export-brand img{width:44px;height:44px;border-radius:8px;object-fit:contain}
.empresa-export-brand span{display:block;color:var(--muted);font-weight:800;font-size:.82rem}
.empresa-export-brand strong{display:block;color:var(--text);font-size:1.05rem}
.empresa-export-copy{display:grid;gap:10px}
.empresa-export-eyebrow{display:inline-flex;width:max-content;padding:6px 10px;border-radius:6px;background:var(--focus);color:var(--accent);font-weight:900;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.empresa-export-copy h1{margin:0;color:var(--text);font-size:clamp(1.7rem,4vw,2.25rem);line-height:1.1}
.empresa-export-copy p{margin:0;color:var(--muted);font-weight:700;line-height:1.5}
.empresa-export-form{display:grid;gap:12px}
.empresa-export-form .form-label{margin:0;color:var(--text);font-weight:900}
.empresa-export-form .form-input{width:100%;min-height:48px;border:1px solid var(--form-border);border-radius:8px;background:var(--form-input-bg);color:var(--text);font-weight:800}
.empresa-export-primary{width:100%;min-height:52px;border-radius:8px;background:linear-gradient(180deg,var(--btn-primary-top),var(--accent)) !important;color:var(--btn-primary-text) !important;border:1px solid var(--btn-primary-border) !important;font-size:1.05rem;font-weight:900}
.empresa-export-primary:hover{filter:brightness(1.05)}
.empresa-export-primary:disabled{opacity:.7;cursor:wait}
.empresa-export-status{min-height:22px;margin:0;padding:12px 14px;border-radius:8px;background:var(--input-bg-soft);color:var(--muted);font-weight:800;text-align:center}
.empresa-export-status.is-success{background:color-mix(in srgb,var(--success) 14%,var(--surface));color:var(--success)}
.empresa-export-status.is-error{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}
.empresa-export-footer-actions{display:flex;justify-content:center}
.empresa-export-back{min-height:44px}

@media (max-width:700px){
  .checkout-licencia-page .admin-content{overflow-x:hidden}
  .checkout-payment-shell{
    width:100%;
    max-width:100%;
    padding:12px;
    overflow:hidden;
  }
  .checkout-licencia-shell,
  .checkout-summary-grid,
  .checkout-summary-card,
  .checkout-free-activation,
  .checkout-payment-hub{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }
  .checkout-brand-title{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    font-size:1.55rem !important;
    line-height:1.24;
  }
  .checkout-brand-title span{
    display:block;
  }
  .checkout-brand-subtitle,
  .checkout-payment-copy,
  .checkout-home-card p{
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .checkout-home-card{
    min-width:0;
  }
  .checkout-payment-header{flex-direction:column}
  .checkout-license-benefits{grid-template-columns:1fr}
  .checkout-license-value-row{align-items:flex-start;flex-direction:column}
  .checkout-price-chip{width:100%}
  .payment-method-logo{width:116px}
  .payment-method-panel-logo{width:96px;max-width:46%}
  .empresa-export-panel{padding:22px}
}

/* Subpáginas internas del módulo administrar_empresa */
.empresa-subpage{
  background:var(--bg);
  color:var(--text);
}
.estaciones-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 30%),
    radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--accent-2) 12%, transparent), transparent 28%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
  color:var(--text);
}
html[data-theme^="dark"] .estaciones-page{
  background:
    radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 32%),
    radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--accent-2) 16%, transparent), transparent 30%),
    linear-gradient(180deg, color-mix(in srgb, var(--bg-alt) 88%, #000 12%), var(--bg));
}
html[data-theme^="light"] .estaciones-page{
  background:
    radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 32%),
    radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--accent-2) 8%, transparent), transparent 30%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
html[data-theme="light-wood"] .estaciones-page{
  background:
    linear-gradient(90deg, rgba(111,72,33,0.05) 0 1px, transparent 1px 18px),
    linear-gradient(105deg, rgba(142,88,32,0.08), transparent 28%, rgba(255,255,255,0.18) 42%, transparent 62%),
    radial-gradient(circle at 8% 0%, rgba(142,88,32,0.12), transparent 32%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
.estaciones-page .empresa-module{
  min-height:calc(100vh - (var(--page-gutter) * 2));
  background:transparent;
}
.estaciones-page .empresa-section{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 82%, transparent), color-mix(in srgb, var(--surface) 92%, transparent));
  border-color:color-mix(in srgb, var(--border) 82%, var(--accent) 18%);
  box-shadow:0 18px 42px color-mix(in srgb, var(--bg) 72%, transparent);
}
html[data-theme^="dark"] .estaciones-page .empresa-section{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 88%, transparent), color-mix(in srgb, var(--surface) 96%, transparent));
  border-color:color-mix(in srgb, var(--border) 72%, var(--accent) 28%);
}
html[data-theme^="light"] .estaciones-page .empresa-section{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 94%, white 6%), color-mix(in srgb, var(--surface) 98%, white 2%));
  border-color:color-mix(in srgb, var(--border) 84%, var(--accent) 16%);
}
.estaciones-page #estacionesStatus{
  color:var(--muted);
}
.empresa-loading-status{
  margin:0 0 12px;
  text-align:center;
}
.empresa-module{
  max-width:none;
}
.empresa-module-header{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,0.95fr);
  align-items:start;
  gap:16px;
}
.empresa-module-header > div:first-child{min-width:0}
.empresa-module-header h1{margin-bottom:6px}
.empresa-module-kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
  gap:8px;
  width:100%;
}
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
}
.kpi-box{
  min-width:0;
  min-height:74px;
  padding:10px 12px;
  border-radius:10px;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.06);
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:6px;
}
.kpi-label{display:block;color:var(--muted);font-size:.82rem;line-height:1.2;text-wrap:balance}
.kpi-box strong{font-size:1.12rem;color:var(--text);line-height:1.1}

@media (max-width:1100px){
  .empresa-module-header{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .empresa-module-kpis,
  .kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .kpi-box{
    min-height:68px;
    padding:9px 10px;
  }
}

.empresa-section{margin-top:16px}
.inicio-links-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin-top:8px;
}
.inicio-link-btn{
  justify-content:center;
  text-align:center;
}
.empresa-section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.empresa-section-header > h2{
  margin:0;
  font-size:0.9rem;
  font-weight:800;
  color:var(--muted);
  letter-spacing:.01em;
}
.empresa-inline-actions{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:320px;
}
.empresa-inline-actions .form-input{min-width:260px}
.empresa-section-title{margin:0}
.empresa-inline-actions.is-compact .form-input{min-width:140px}
.empresa-inline-actions .form-input.reportes-filter-wide{min-width:260px}
.empresa-inline-actions .form-input.reportes-filter-mid{min-width:190px}
.empresa-inline-actions .form-input.reportes-filter-compact{min-width:160px}
.empresa-inline-actions .form-input.reportes-filter-tight{min-width:140px;max-width:140px}
.empresa-textarea-sm{min-height:70px}
.empresa-textarea-md{min-height:80px}
.empresa-textarea-lg{min-height:90px}
.form-row.no-bottom-margin{margin-bottom:0}
.form-col.actions-bottom-220{max-width:220px;display:flex;align-items:flex-end}
.btn.btn-block{width:100%}
.fe-detected-card{margin-bottom:12px}
.fe-detected-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.fe-detected-country{font-size:1.05rem;font-weight:700}
.email-templates-shell{gap:18px}
.email-templates-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:18px 0}
.email-templates-layout{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:18px;align-items:start}
.email-templates-content{min-width:0}
.email-templates-submenu{position:sticky;top:14px;margin:0}
.email-templates-submenu h2{margin-bottom:4px}
.email-templates-tabs{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0 14px}
.email-templates-tab{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;border:1px solid color-mix(in srgb,var(--content-soft-border) 82%,var(--accent-yellow) 18%);background:color-mix(in srgb,var(--content-soft-bg) 90%,var(--accent-yellow) 10%);color:var(--text);border-radius:8px;padding:10px 12px;cursor:pointer;text-align:left;font-weight:800;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.email-templates-tab::before{content:"";width:8px;height:8px;border-radius:999px;background:color-mix(in srgb,var(--accent-yellow) 72%,#22c55e 28%);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-yellow) 16%,transparent);flex:0 0 auto}
.email-templates-tab strong{flex:1 1 auto;min-width:0}
.email-templates-tab span{color:var(--muted);font-size:.78rem;font-weight:750;text-align:right;white-space:nowrap}
.email-templates-tab:hover,.email-templates-tab:focus-visible{background:color-mix(in srgb,var(--content-soft-bg) 76%,var(--accent-yellow) 24%);border-color:color-mix(in srgb,var(--content-soft-border) 50%,var(--accent-yellow) 50%);outline:none;transform:translateX(2px)}
.email-templates-tab.active{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-yellow) 28%,var(--content-soft-bg) 72%),color-mix(in srgb,#22c55e 10%,var(--content-soft-bg) 90%));color:var(--text);border-color:color-mix(in srgb,var(--accent-yellow) 68%,var(--content-soft-border) 32%);box-shadow:inset 3px 0 0 var(--accent-yellow)}
.email-templates-tab.active::before{background:#22c55e}
.email-template-panel[hidden]{display:none !important}
.email-template-card{margin-bottom:18px}
.email-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.email-template-vars{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.email-template-vars span{background:color-mix(in srgb, var(--accent-yellow) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent-yellow) 34%, transparent);color:color-mix(in srgb, var(--accent-yellow) 72%, var(--text) 28%);border-radius:999px;padding:6px 10px;font-size:12px}
.email-template-textarea{min-height:180px}
.email-template-html{min-height:220px}
.email-template-preview{white-space:pre-wrap;background:var(--content-soft-bg);border:1px solid var(--content-soft-border);border-radius:14px;padding:14px;color:var(--text)}
.metrics-grid{display:flex;gap:1rem;flex-wrap:wrap;margin:0 0 1rem 0}
.metric-card{flex:1 1 200px;background:var(--card);padding:1rem;border-radius:8px;border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.06);color:var(--text)}
.metric-value{font-size:1.6rem;font-weight:700;color:var(--text)}
.metrics-charts{display:grid;grid-template-columns:1fr;gap:1rem}
.contract-editor-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);gap:18px}
.contract-editor-textarea{min-height:380px;font-family:inherit;line-height:1.6}
.contract-history-list{display:flex;flex-direction:column;gap:12px}
.contract-history-item{padding:16px;border-radius:16px;border:1px solid var(--border);background:rgba(255,255,255,.03)}
.contract-history-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:8px}
.contract-history-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.contract-history-meta{color:var(--muted);font-size:.92rem}
.contract-editor-meta{color:var(--muted);margin-top:10px}
.historial-item{display:grid;grid-template-columns:100px 1fr 150px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--content-soft-border);align-items:center}
.historial-item:last-child{border-bottom:none}
.historial-date{font-size:.85rem;color:var(--muted);white-space:pre-wrap}
.historial-product-name{font-weight:600;color:var(--text);margin-bottom:.25rem}
.historial-reason{font-size:.85rem;background:var(--content-soft-bg);padding:.25rem .5rem;border-radius:var(--border-radius, 10px);display:inline-block;color:var(--muted)}
.historial-changes{font-family:monospace;background:var(--content-soft-bg);padding:.5rem;border-radius:var(--border-radius, 10px);border:1px solid var(--content-soft-border)}
.historial-changes div{margin-bottom:.25rem}
.historial-changes div:last-child{margin-bottom:0}
.amount-old{color:color-mix(in srgb, var(--danger) 72%, var(--text) 28%);text-decoration:line-through;margin-right:.5rem}
.amount-new{color:color-mix(in srgb, var(--success) 74%, var(--text) 26%);font-weight:700}
.amount-label{color:var(--muted);display:inline-block;width:70px}
.user-info{font-size:.8rem;color:var(--muted)}
.empty-note-italic{font-style:italic}
.inline-check{display:inline-flex;align-items:center;gap:8px}
.kpi-inline-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin:14px 0 18px;
}
.kpi-inline-row .kpi{
  min-width:0;
  min-height:74px;
  padding:10px 12px;
  border-radius:10px;
  background:var(--content-soft-bg);
  border:1px solid var(--content-soft-border);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:6px;
  color:var(--muted);
}
.kpi-inline-row .kpi strong{
  font-size:1.12rem;
  line-height:1.1;
  color:var(--text);
}

.factura-print-preview,
.factura-print-preview-empty{
  min-height:140px;
}

.factura-print-preview-empty{
  border:1px dashed #6b7280;
  border-radius:8px;
  padding:18px;
  color:#374151;
  background:#fff;
}

.reportes-prof-table td.is-number,
.reportes-prof-table th.is-number{
  text-align:right;
}

@media (max-width:640px){
  .kpi-inline-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px){
  .email-templates-actions{align-items:stretch}
  .email-templates-actions .form-actions{width:100%}
  .email-templates-actions .btn{width:100%}
}

@media (max-width:900px){
  .email-templates-layout{grid-template-columns:1fr}
  .email-templates-submenu{position:relative;top:auto}
  .email-templates-tabs{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
}

@media (min-width:900px){
  .metrics-charts{grid-template-columns:1fr 1fr}
}

@media (max-width:980px){
  .contract-editor-grid{grid-template-columns:1fr}
}

@media (max-width:900px){
  .historial-item{grid-template-columns:1fr;gap:.65rem}
}

.factura-print-sheet{
  border-radius:0;
  border:1px solid #111827;
  background:#fff;
  color:#111827;
  box-shadow:none;
  overflow:hidden;
  color-scheme:light;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}

.factura-print-sheet.factura{
  border-top:4px solid #111827;
}

.factura-print-sheet.comprobante{
  border-top:4px solid #111827;
}

.factura-print-sheet.nota-credito{
  border-top:4px solid #111827;
}

.factura-print-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding:24px 24px 18px;
}

.factura-print-kicker{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:0;
  background:#fff;
  border:1px solid #111827;
  color:#111827;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.factura-print-head h3{
  margin:10px 0 6px;
  font-size:1.85rem;
  color:#111827;
}

.factura-print-head p{
  margin:0;
  max-width:520px;
  color:#374151;
  line-height:1.5;
}

.factura-print-company{
  min-width:220px;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  border-radius:18px;
  background:#fff;
  border:1px solid #d1d5db;
  text-align:right;
}

.factura-print-company strong{
  font-size:1rem;
  color:#111827;
}

.factura-print-company span{
  color:#374151;
  font-size:.86rem;
}

.factura-print-logo{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.factura-print-logo .pcs-print-logos{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  flex:0 0 auto;
  max-width:126px;
  min-width:64px;
}
.factura-print-logo img{
  width:auto;
  max-width:120px;
  max-height:56px;
  min-width:48px;
  flex:0 0 auto;
  object-fit:contain;
  border-radius:0;
  border:1px solid #d1d5db;
  background:#fff;
  filter:grayscale(1) contrast(1.08);
}
.factura-print-legal{
  margin-top:14px;
  padding:14px 18px;
  border-top:1px dashed #6b7280;
  color:#111827;
  font-size:.88rem;
  line-height:1.45;
  white-space:pre-wrap;
}

.factura-print-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  border-top:1px solid #111827;
  border-bottom:1px solid #111827;
  background:#fff;
}

.factura-print-strip div{
  padding:16px 20px;
  border-right:1px solid #d1d5db;
}

.factura-print-strip div:last-child{
  border-right:none;
}

.factura-print-strip span{
  display:block;
  margin-bottom:4px;
  color:#374151;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.factura-print-strip strong{
  color:#111827;
  font-size:1rem;
}

.factura-print-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:22px 24px 0;
}

.factura-print-panel{
  border:1px solid #d1d5db;
  border-radius:0;
  background:#fff;
  padding:18px;
}

.factura-print-panel--full{
  margin:16px 24px 0;
}

.factura-print-panel h4{
  margin:0 0 12px;
  color:#111827;
  font-size:1rem;
}

.factura-print-panel dl,
.factura-print-doc-meta{
  margin:0;
  display:grid;
  gap:10px;
}

.factura-print-panel dl div,
.factura-print-doc-meta div{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-bottom:10px;
  border-bottom:1px solid #d1d5db;
}

.factura-print-panel dl div:last-child,
.factura-print-doc-meta div:last-child{
  padding-bottom:0;
  border-bottom:none;
}

.factura-print-panel dt,
.factura-print-doc-meta dt{
  color:#374151;
  font-weight:700;
}

.factura-print-panel dd,
.factura-print-doc-meta dd{
  margin:0;
  color:#111827;
  font-weight:700;
  text-align:right;
}

.factura-print-note{
  margin:16px 24px 24px;
  padding:18px;
  border-radius:0;
  background:#fff;
  border:1px dashed #6b7280;
}

.factura-print-note strong{
  display:block;
  margin-bottom:8px;
  color:#111827;
}

.factura-print-note p{
  margin:0;
  color:#111827;
  line-height:1.6;
}

.auditoria-checkbox-row{margin-top:8px}

.auditoria-pagination{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}

.auditoria-pager-info{
  color:var(--muted);
  font-size:.9rem;
  font-weight:600;
}

.auditoria-detail-pre{
  margin:0;
  padding:12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  color:var(--text);
  max-height:340px;
  overflow:auto;
  font-size:.83rem;
  line-height:1.4;
}

.auditoria-global-page .container{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.auditoria-global-header{
  align-items:flex-start;
}
.auditoria-global-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.auditoria-global-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.auditoria-global-kpis article{
  border:1px solid var(--border);
  background:var(--card);
  color:var(--text);
  border-radius:8px;
  padding:10px 12px;
}
.auditoria-global-kpis span{
  display:block;
  color:var(--muted);
  font-size:.82rem;
}
.auditoria-global-kpis strong{
  display:block;
  margin-top:4px;
  font-size:1.25rem;
  color:var(--text);
}
.auditoria-global-filtros{
  margin:0;
}
.auditoria-global-table-card{
  padding:12px;
  border-radius:8px;
}
.auditoria-global-table-head,
.auditoria-global-pagination,
.auditoria-global-dialog-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.auditoria-global-table-head{
  margin-bottom:10px;
}
.auditoria-global-table-head span{
  color:var(--muted);
  font-size:.86rem;
}
.auditoria-global-pagination{
  margin-top:10px;
}
.audit-ok,
.audit-bad{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  font-weight:700;
  font-size:.78rem;
}
.audit-ok{
  background:rgba(34,197,94,.14);
  color:var(--status-success);
}
.audit-bad{
  background:rgba(239,68,68,.14);
  color:var(--status-danger);
}
.auditoria-global-dialog{
  width:min(820px, calc(100vw - 28px));
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--card);
  color:var(--text);
  padding:14px;
}
.auditoria-global-dialog::backdrop{
  background:rgba(15,23,42,.56);
}
@media (max-width: 760px){
  .auditoria-global-actions,
  .auditoria-global-actions .btn{
    width:100%;
  }
  .auditoria-global-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 460px){
  .auditoria-global-kpis{
    grid-template-columns:1fr;
  }
}

.empresa-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}

/* Modulo nomina de sueldos */
.nomina-page .empresa-section h1,
.nomina-page .empresa-section h2{
  margin:0;
}

.nomina-kpi-grid{
  margin-top:10px;
}

.nomina-layout-grid{
  align-items:start;
}

.nomina-form-compact{
  margin-bottom:10px;
}

.nomina-filter-box{
  margin-bottom:10px;
}

.nomina-filter-actions{
  display:flex;
  align-items:flex-end;
  gap:8px;
}

.nomina-result-summary{
  margin:8px 0 10px;
  padding:10px;
  border-radius:10px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  color:var(--text);
  font-weight:600;
}

.nomina-table td small{
  color:var(--muted);
}

.nomina-summary-grid{
  margin-bottom:10px;
}

.nomina-alert-list{
  display:grid;
  gap:8px;
  margin:10px 0 12px;
}

.nomina-alert-item{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid color-mix(in srgb, #ef6c5b 35%, var(--border));
  background:color-mix(in srgb, #ef6c5b 10%, transparent);
  color:var(--text);
  font-weight:600;
}

.nomina-workflow-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}

.nomina-workflow-item{
  min-width:0;
  padding:10px;
  border:1px solid var(--border);
  border-radius:8px;
  background:rgba(255,255,255,.03);
}

.nomina-workflow-item strong,
.nomina-workflow-item span{
  display:block;
}

.nomina-workflow-item span{
  margin-top:4px;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.3;
}

.nomina-demo-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid color-mix(in srgb, var(--accent) 42%, var(--border));
  border-radius:8px;
  background:color-mix(in srgb, var(--accent) 8%, transparent);
  margin:10px 0 12px;
}

.nomina-demo-panel .form-help{
  display:block;
  margin-top:4px;
}

.nomina-control-card{
  margin:0 0 14px;
  padding:12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--surface) 82%, transparent);
  color:var(--text);
}

.nomina-control-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.nomina-control-header h3{
  margin:4px 0 0;
  font-size:1rem;
}

.nomina-control-badge{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface);
  white-space:nowrap;
  font-size:.86rem;
}

.nomina-control-card.estado-listo .nomina-control-badge{
  border-color:color-mix(in srgb, #16a34a 45%, var(--border));
  background:color-mix(in srgb, #16a34a 14%, transparent);
}

.nomina-control-card.estado-advertencia .nomina-control-badge{
  border-color:color-mix(in srgb, #f59e0b 48%, var(--border));
  background:color-mix(in srgb, #f59e0b 14%, transparent);
}

.nomina-control-card.estado-bloqueado .nomina-control-badge{
  border-color:color-mix(in srgb, #ef4444 50%, var(--border));
  background:color-mix(in srgb, #ef4444 14%, transparent);
}

.nomina-control-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.nomina-control-grid > div{
  min-width:0;
  padding:9px;
  border-radius:8px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.035);
}

.nomina-control-grid span{
  display:block;
  color:var(--muted);
  font-size:.78rem;
  font-weight:700;
}

.nomina-control-grid strong{
  display:block;
  margin-top:4px;
  overflow-wrap:anywhere;
}

.nomina-control-alerts{
  display:grid;
  gap:8px;
  margin:10px 0;
}

.nomina-control-alert,
.nomina-control-ok{
  padding:9px 10px;
  border-radius:8px;
  border:1px solid var(--border);
  color:var(--text);
  font-weight:650;
}

.nomina-control-alert.bloqueo{
  border-color:color-mix(in srgb, #ef4444 45%, var(--border));
  background:color-mix(in srgb, #ef4444 12%, transparent);
}

.nomina-control-alert.alerta{
  border-color:color-mix(in srgb, #f59e0b 45%, var(--border));
  background:color-mix(in srgb, #f59e0b 12%, transparent);
}

.nomina-control-ok{
  border-color:color-mix(in srgb, #16a34a 40%, var(--border));
  background:color-mix(in srgb, #16a34a 10%, transparent);
}

.nomina-control-confirm{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:8px 0 10px;
  padding:10px;
  border-radius:8px;
  border:1px solid color-mix(in srgb, #f59e0b 42%, var(--border));
  background:color-mix(in srgb, #f59e0b 10%, transparent);
  font-weight:650;
}

.nomina-control-confirm input{
  margin-top:3px;
}

@media (max-width: 760px){
  .nomina-workflow-grid{
    grid-template-columns:1fr 1fr;
  }
  .nomina-control-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 520px){
  .nomina-workflow-grid{
    grid-template-columns:1fr;
  }
  .nomina-demo-panel{
    align-items:stretch;
    flex-direction:column;
  }
  .nomina-control-header{
    flex-direction:column;
  }
  .nomina-control-grid{
    grid-template-columns:1fr;
  }
}

.asistencia-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.asistencia-alert-list,
.asistencia-rank-list{
  display:grid;
  gap:8px;
  margin-top:10px;
}

.asistencia-alert-item{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid color-mix(in srgb, #f59e0b 35%, var(--border));
  background:color-mix(in srgb, #f59e0b 12%, transparent);
  color:var(--text);
  font-weight:600;
}

.asistencia-rank-item{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  display:grid;
  gap:4px;
}

.asistencia-rank-item span{
  color:var(--muted);
  font-size:.92rem;
}

.asistencia-state-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.04);
  font-weight:700;
  text-transform:capitalize;
}

.asistencia-state-ok{
  border-color:#22c55e;
  background:rgba(34,197,94,0.12);
}

.asistencia-state-late{
  border-color:#f59e0b;
  background:rgba(245,158,11,0.12);
}

.asistencia-state-absent{
  border-color:#ef4444;
  background:rgba(239,68,68,0.12);
}

@media (max-width: 860px){
  .asistencia-dashboard-grid{
    grid-template-columns:1fr;
  }
}

/* Modulo graficos y estadisticas */
.graficos-page .empresa-title,
.graficos-page .empresa-subtitle{
  margin:0;
}

.graficos-inline-actions{
  min-width:420px;
  flex-wrap:wrap;
  row-gap:8px;
}

.graficos-top-input{
  max-width:120px;
  min-width:90px;
}

.graficos-id-input{
  max-width:140px;
  min-width:110px;
}

.graficos-segmento-input{
  min-width:170px;
}

.graficos-switch-inline{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  color:var(--text);
  font-weight:600;
}

.graficos-compare-input{
  min-width:140px;
}

.graficos-comparativo-grid{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.graficos-compare-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
  background:rgba(255,255,255,0.03);
}

.graficos-compare-card h3{
  margin:0 0 6px;
  font-size:.95rem;
}

.graficos-compare-values{
  margin:0;
  color:var(--muted);
  font-size:.87rem;
}

.graficos-compare-trend{
  margin:8px 0 0;
  font-weight:700;
  font-size:.9rem;
}

.graficos-trend-up{color:var(--status-success)}
.graficos-trend-down{color:var(--status-danger)}

.graficos-compare-period{
  background:rgba(14,165,233,0.08);
  border-color:rgba(14,165,233,0.35);
}

.graficos-kpi-grid{
  margin-top:12px;
}

.graficos-charts-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.graficos-bottom-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.graficos-chart-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
  background:var(--content-soft-bg);
}

.graficos-chart-card h3{
  margin:0;
  font-size:1rem;
}

.graficos-chart-meta{
  margin:8px 0 10px;
}

.graficos-chart-canvas{
  border:1px dashed var(--content-soft-border);
  border-radius:10px;
  min-height:210px;
  padding:10px;
  background: color-mix(in srgb, var(--content-soft-bg) 82%, transparent 18%);
  display:flex;
  align-items:flex-end;
  gap:7px;
  overflow-x:auto;
}

/* Modal overlay para diálogo de descarga */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.48);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:48px}
.modal-overlay .modal{width:100%;max-width:520px}

/* Estilo para el bloque de descarga en tarjetas */
.card-download{margin-top:10px}
.card-download .btn{width:100%;padding:8px 10px}

.graficos-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:30px;
  flex:1 0 30px;
}

.graficos-col-track{
  width:14px;
  min-height:160px;
  display:flex;
  align-items:flex-end;
  background:rgba(255,255,255,0.06);
  border-radius:8px;
  overflow:hidden;
}

.graficos-col-pair{
  min-height:160px;
  display:flex;
  align-items:flex-end;
  gap:4px;
}

.graficos-col-bar{
  display:block;
  width:12px;
  border-radius:8px 8px 4px 4px;
  min-height:4px;
}

.graficos-col-track .graficos-col-bar{
  width:100%;
}

.graficos-col-label{
  font-size:.72rem;
  color:var(--muted);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:rotate(180deg);
  letter-spacing:.04em;
}

.bar-sales{background:#16a34a}
.bar-income{background:#0ea5e9}
.bar-expense{background:#ef4444}
.bar-purchase{background:#f59e0b}
.bar-attendance{background:#22c55e}
.bar-absence{background:#f97316}

.graficos-donut-wrap{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:12px;
  align-items:center;
}

.graficos-donut{
  width:140px;
  height:140px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.16);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  color:var(--text);
  background:rgba(255,255,255,0.06);
}

.graficos-legend{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.graficos-legend-item{
  display:grid;
  grid-template-columns:12px 1fr auto;
  gap:8px;
  align-items:center;
  font-size:.86rem;
}

.graficos-legend-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
}

.graficos-legend-label{
  color:var(--muted);
}

.graficos-legend-empty{
  color:var(--muted);
  font-size:.9rem;
}

@media (max-width:1100px){
  .graficos-comparativo-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:900px){
  .graficos-charts-grid,
  .graficos-bottom-grid,
  .graficos-comparativo-grid{
    grid-template-columns:1fr;
  }

  .graficos-inline-actions{
    min-width:unset;
  }

  .graficos-top-input,
  .graficos-id-input,
  .graficos-compare-input,
  .graficos-segmento-input{
    min-width:unset;
    width:100%;
    max-width:none;
  }

  .graficos-switch-inline{
    width:100%;
    justify-content:flex-start;
  }
}

.msg-error{color:#ef4444}
.msg-ok{color:#22c55e}

/* Configuracion de empresa: tarjetas de opciones */
.empresa-config-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.empresa-config-check{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:var(--text);
  font-weight:600;
}

.empresa-config-check input[type="checkbox"]{
  width:16px;
  height:16px;
  margin-top:2px;
}

.empresa-operativa-extra-grid{
  margin-top:10px;
}

.empresa-operativa-extra-card{
  min-height:100%;
}

.empresa-operativa-subtitle{
  margin:0 0 10px 0;
  font-size:0.95rem;
}

.empresa-operativa-historial-row{
  align-items:flex-end;
}

.empresa-operativa-historial-actions{
  display:flex;
  gap:8px;
  justify-content:flex-start;
  flex-wrap:wrap;
}

.empresa-operativa-output{
  margin-top:10px;
  min-height:140px;
}

.empresa-operativa-historial-table th,
.empresa-operativa-historial-table td{
  white-space:nowrap;
}

.empresa-operativa-mini-btn{
  padding:6px 10px;
  font-size:.78rem;
}

@media (max-width:900px){
  .empresa-config-grid{grid-template-columns:1fr}

  .empresa-operativa-historial-actions .btn{
    width:100%;
  }
}

.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}

.carrito-workspace-card{box-sizing:border-box;margin-top:0;padding-top:12px;}
.carrito-workspace-header{justify-content:flex-start;align-items:center;gap:10px;margin-bottom:4px;}
.carrito-workspace-header .section-heading{line-height:1.15;margin:0;}
.carrito-workspace-header .btn{padding:7px 10px;}
#carritoResumen:empty{display:none;}
.carrito-primary-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(238px,306px);gap:18px;align-items:start;width:100%;}
.carrito-primary-main{min-width:0;width:100%;display:flex;flex-direction:column;}
.carrito-primary-main #stationPaymentAmountsCard{order:40;}
.carrito-primary-main #stationPaymentQrCard{order:45;}
.carrito-primary-main #stationCheckoutPanel{order:50;}
.carrito-primary-main #stationCartActionsCard{order:60;}
.carrito-primary-main #stationWorkerCommissionCard{order:70;}
.carrito-side-column{min-width:238px;max-width:306px;width:100%;display:flex;flex-direction:column;gap:12px;align-self:start;}
.carrito-side-column #stationVipAccessCard{width:fit-content;min-width:210px;max-width:100%;box-sizing:border-box;margin-top:0;align-self:flex-start;padding:9px 10px;}
.carrito-grid{display:block;}
.carrito-grid-main{min-width:0;width:100%;}
.carrito-summary-card{min-width:238px;max-width:306px;width:100%;padding:10px;}
#carritoTotalsPanel{position:sticky;top:12px;align-self:start;}
.carrito-items-box{min-height:260px;max-height:420px;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--content-soft-bg);}
.carrito-scanner-stack{display:grid;grid-template-columns:minmax(240px,1fr) minmax(110px,150px);gap:10px;align-items:start;width:100%;max-width:720px;}
.carrito-scanner-compact-grid{grid-template-columns:minmax(260px,1fr) minmax(88px,110px) minmax(104px,124px) minmax(146px,174px);max-width:none;align-items:end;gap:8px;}
.carrito-scanner-stack .form-col{max-width:none;width:100%;}
.carrito-scanner-stack .form-label{margin-top:0;}
.carrito-scanner-stack .btn{width:100%;}
.carrito-scanner-compact-grid .form-col{width:auto;min-width:0;}
.carrito-scanner-compact-grid .form-input,
.carrito-scanner-compact-grid .btn{box-sizing:border-box;min-height:38px;padding-top:8px;padding-bottom:8px;}
.carrito-customer-card{padding:10px 12px;}
.carrito-customer-header{align-items:center;gap:10px;margin-bottom:8px;}
.carrito-customer-current{margin:0;text-align:right;font-size:.78rem;line-height:1.2;}
.carrito-customer-search-grid{display:grid;grid-template-columns:minmax(128px,156px) minmax(260px,1fr) minmax(132px,172px);gap:8px;align-items:end;margin-bottom:6px;}
.carrito-customer-quick-grid{display:grid;grid-template-columns:minmax(78px,100px) minmax(120px,150px) minmax(190px,1fr) minmax(118px,140px) minmax(155px,190px) minmax(126px,150px);gap:8px;align-items:end;margin-bottom:0;}
.carrito-customer-search-grid .form-col,
.carrito-customer-quick-grid .form-col{max-width:none;width:auto;min-width:0;}
.carrito-customer-search-grid .form-label,
.carrito-customer-quick-grid .form-label{margin-top:0;}
.carrito-customer-search-grid .form-input,
.carrito-customer-search-grid .btn,
.carrito-customer-quick-grid .form-input,
.carrito-customer-quick-grid .btn{box-sizing:border-box;min-height:38px;padding-top:8px;padding-bottom:8px;}
.carrito-station-toolbar{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(142px,1fr));
  gap:0;
  align-items:stretch;
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
  background:var(--card);
}
.carrito-station-toolbar > button,
.carrito-station-toolbar > label{
  width:100%;
  min-height:48px;
  margin:0;
  border-radius:0;
  border:0;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  justify-content:center;
  box-sizing:border-box;
}
.carrito-station-toolbar .carrito-alert10-check{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 12px;
  white-space:nowrap;
  background:var(--surface-soft);
  color:var(--text);
}
.carrito-station-split{display:flex;flex-wrap:wrap;gap:18px;align-items:stretch;}
.carrito-station-split-main{flex:2;min-width:280px;}
.carrito-station-totals-aside{display:none;}
.carrito-items-box--station-fixed{min-height:220px;max-height:min(52vh,420px);}
.carrito-station-payment-inputs-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;}
.carrito-station-payment-inputs-row .form-col{flex:1;min-width:140px;}
.cash-change-hint{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:30px;
  padding:4px 8px;
  border-radius:7px;
  border:1px solid color-mix(in srgb, var(--btn-primary) 42%, var(--content-soft-border) 58%);
  background:color-mix(in srgb, var(--surface-soft) 70%, var(--btn-primary) 30%);
  color:var(--text);
  font-size:1.04rem;
  font-weight:900;
  line-height:1.05;
  white-space:nowrap;
}
.cash-change-hint.value-negative{
  border-color:color-mix(in srgb, #ef4444 54%, var(--content-soft-border) 46%);
  background:color-mix(in srgb, var(--surface-soft) 72%, #ef4444 28%);
  color:var(--text);
}
.carrito-summary-content{display:grid;gap:4px;margin-top:6px;}
.carrito-summary-profile{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:8px;background:color-mix(in srgb, var(--surface-soft) 82%, var(--btn-primary) 18%);border:1px solid color-mix(in srgb, var(--content-soft-border) 78%, var(--btn-primary) 22%);min-height:28px;}
.carrito-summary-profile span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.carrito-summary-profile strong{font-size:.78rem;text-align:right;color:var(--text);max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.carrito-summary-row{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:4px 8px;border-radius:7px;background:var(--content-soft-bg);border:1px solid var(--content-soft-border);min-height:28px;line-height:1.12;}
.carrito-summary-row span{font-size:.82rem;line-height:1.1;}
.carrito-summary-row strong{font-size:.86rem;line-height:1.1;text-align:right;}
.carrito-summary-pay-actions{margin-top:7px;}
.carrito-summary-pay-actions .btn{padding:7px 10px;}
.carrito-payment-cards{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;}
.carrito-payment-card{flex:1 1 calc(25% - 10px);min-width:120px;text-align:center;}
.carrito-payment-card.active{background:var(--btn-primary);color:var(--btn-primary-text);border-color:var(--btn-primary);}
.carrito-payment-card:disabled{opacity:.62;cursor:not-allowed;}
.carrito-payment-empty{width:100%;padding:8px 0;}
.action-toolbar{justify-content:flex-start;align-items:flex-start;}
.action-toolbar .btn{min-width:130px;}
.carrito-summary-card .section-heading{margin-bottom:0;}
.carrito-payment-section-card{
  width:100%;
  padding:10px;
  border-radius:8px;
  background:color-mix(in srgb, var(--surface) 76%, #64748b 24%);
  border:1px solid color-mix(in srgb, var(--content-soft-border) 68%, #64748b 32%);
}
.carrito-payment-section-card .section-heading{
  margin:0 0 8px;
  font-size:.9rem;
}
.carrito-payment-amounts-card{
  display:block;
}
.carrito-payment-amounts-card.is-hidden{
  display:none;
}
.carrito-payment-qr-card{
  display:block;
}
.carrito-payment-qr-card.is-hidden{
  display:none;
}
.carrito-payment-qr-layout{
  display:grid;
  grid-template-columns:minmax(180px, 240px) minmax(0, 1fr);
  gap:14px;
  align-items:start;
}
.carrito-payment-qr-canvas-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:236px;
  border:1px solid var(--border);
  background:#fff;
}
.carrito-payment-qr-meta{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px 12px;
  margin-top:10px;
  color:var(--text);
}
.carrito-payment-qr-preview{
  margin-top:10px;
}
.qr-accounts-table{
  min-width:1180px;
}
.qr-accounts-table th,
.qr-accounts-table td{
  vertical-align:top;
}
.qr-accounts-table .form-input{
  min-width:128px;
}
.qr-accounts-table textarea.form-input{
  min-width:180px;
  resize:vertical;
}
@media (max-width: 720px){
  .carrito-payment-qr-layout{
    grid-template-columns:1fr;
  }
  .carrito-payment-qr-meta{
    grid-template-columns:1fr;
  }
}
.carrito-worker-card{
  display:block;
}
.carrito-worker-card.is-hidden{
  display:none;
}
.carrito-worker-card .form-col{
  width:100%;
}
.carrito-vip-card{
  display:block;
}
.carrito-vip-card.is-hidden{
  display:none;
}
.carrito-vip-card .form-col{
  width:auto;
  min-width:0;
}
.carrito-vip-card .form-actions{
  margin-top:6px;
  justify-content:flex-start;
}
.carrito-vip-card .form-help{
  max-width:220px;
  line-height:1.25;
  margin:4px 0 0;
}
.carrito-vip-card .section-heading{
  font-size:.86rem;
  white-space:nowrap;
}
.carrito-vip-card .btn{
  padding:7px 10px;
  white-space:nowrap;
}
.carrito-actions-card .carrito-station-toolbar{
  margin-top:8px;
}
.carrito-item-card{
  margin-top:10px;
  padding:12px;
}
.carrito-item-card .empresa-section-header{
  margin-bottom:8px;
  padding-bottom:6px;
  border-bottom:1px solid var(--border);
}
.carrito-item-card .section-heading{
  margin:0;
}
.carrito-catalog-card{
  margin-bottom:10px;
}

body.cart-touch-mode .container{
  max-width:min(1500px, calc(100vw - 20px));
}

body.cart-touch-mode .carrito-workspace-card{
  padding:18px;
}

body.cart-touch-mode .carrito-primary-layout{
  grid-template-columns:minmax(0,1fr) minmax(286px,360px);
  gap:22px;
}

body.cart-touch-mode .btn,
body.cart-touch-mode .form-input,
body.cart-touch-mode .form-textarea{
  min-height:52px;
  font-size:1rem;
}

body.cart-touch-mode .form-label{
  font-size:.96rem;
}

body.cart-touch-mode .carrito-station-toolbar{
  grid-template-columns:repeat(auto-fit,minmax(172px,1fr));
  gap:8px;
  border:0;
  background:transparent;
  overflow:visible;
}

body.cart-touch-mode .carrito-station-toolbar > button,
body.cart-touch-mode .carrito-station-toolbar > label{
  min-height:62px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 14px;
}

body.cart-touch-mode .carrito-items-box{
  min-height:340px;
  max-height:min(62vh,620px);
  padding:14px;
}

body.cart-touch-mode .carrito-summary-card{
  max-width:360px;
  padding:14px;
}

body.cart-touch-mode .carrito-summary-row{
  min-height:38px;
  padding:8px 10px;
}

body.cart-touch-mode .carrito-summary-row span,
body.cart-touch-mode .carrito-summary-row strong{
  font-size:.95rem;
}

body.cart-touch-mode .carrito-payment-card{
  min-height:58px;
  touch-action:manipulation;
}

body.cart-touch-mode #btnPagarCarrito,
body.cart-touch-mode #scannerAgregarBtn,
body.cart-touch-mode #carritoBtnBuscarBotones{
  min-height:60px;
  font-size:1.05rem;
}

@media (max-width:900px){
  .carrito-primary-layout{grid-template-columns:1fr;}
  .carrito-side-column{min-width:0;max-width:none;order:-1;}
  #carritoTotalsPanel{position:static;max-width:none;order:-1;}
  .carrito-scanner-stack{grid-template-columns:1fr;}
  .carrito-scanner-compact-grid{grid-template-columns:minmax(0,1fr) minmax(96px,126px);}
  .carrito-scanner-compact-grid > .form-col,
  .carrito-customer-search-grid > .form-col,
  .carrito-customer-quick-grid > .form-col{
    width:auto;
    max-width:none !important;
    min-width:0;
    flex:initial;
  }
  .carrito-scanner-compact-grid .carrito-scanner-column,
  .carrito-scanner-compact-grid > .form-col:last-child{grid-column:1 / -1;}
  .carrito-customer-header{align-items:flex-start;}
  .carrito-customer-current{text-align:left;}
  .carrito-customer-search-grid{grid-template-columns:minmax(118px,150px) minmax(0,1fr);}
  .carrito-customer-search-grid > .form-col:last-child{grid-column:1 / -1;}
  .carrito-customer-quick-grid{grid-template-columns:minmax(88px,120px) minmax(0,1fr);}
  .carrito-customer-quick-grid > .form-col:nth-child(3),
  .carrito-customer-quick-grid > .form-col:nth-child(5),
  .carrito-customer-quick-grid > .form-col:nth-child(6){grid-column:1 / -1;}
  body.cart-touch-mode .carrito-primary-layout{grid-template-columns:1fr;}
  body.cart-touch-mode .carrito-summary-card{max-width:none;}
  body.cart-touch-mode .carrito-station-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:520px){
  .carrito-customer-search-grid,
  .carrito-customer-quick-grid{grid-template-columns:1fr;}
  .carrito-customer-search-grid > .form-col,
  .carrito-customer-quick-grid > .form-col{
    grid-column:auto;
    width:auto;
    max-width:none !important;
    flex:initial;
  }
}

@media (min-width:901px){
  .carrito-workspace-card{
    max-width:none;
    width:100%;
    margin-left:0;
    margin-right:0;
  }
}

/* Modulo ERP extendido */
.erp-title,
.erp-title-small{
  margin:0;
}

.erp-inline-actions{
  min-width:unset;
  flex-wrap:wrap;
}

.erp-help{
  margin-bottom:10px;
}

.erp-no-margin{
  margin:0;
}

.erp-col-small{
  max-width:180px;
}

.erp-section-gap{
  margin-top:12px;
}

.erp-form-compact{
  margin-bottom:0;
}

.erp-json-area{
  min-height:150px;
  font-family:"Consolas","Cascadia Mono",monospace;
}

.erp-output{
  margin:0;
  padding:12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,0.03);
  color:var(--text);
  max-height:360px;
  overflow:auto;
  white-space:pre-wrap;
  word-break:break-word;
  font-size:.84rem;
  line-height:1.45;
}

.erp-placeholder{
  padding:10px;
  border:1px dashed var(--border);
  border-radius:10px;
  color:var(--muted);
  background:rgba(255,255,255,0.02);
}

.erp-hidden{
  display:none;
}

.erp-text-success{
  color:var(--success);
}

.erp-text-error{
  color:var(--danger);
}

.erp-hub-msg{
  margin-top:8px;
}

.erp-domain-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:10px;
}

.erp-domain-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  text-decoration:none;
  color:var(--text);
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
  background:rgba(255,255,255,0.03);
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}

.erp-domain-card:hover{
  transform:translateY(-1px);
  border-color:var(--accent);
  box-shadow:0 10px 22px rgba(8,20,34,0.35);
}

.erp-domain-card h3{
  margin:0;
  font-size:1rem;
}

.erp-domain-card p{
  margin:0;
  color:var(--muted);
  min-height:44px;
}

.erp-domain-card .btn{
  align-self:flex-start;
}

.erp-domain-card.is-disabled{
  opacity:0.55;
  pointer-events:none;
}

.erp-domain-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}

.erp-domain-nav .btn.active{
  background:linear-gradient(180deg,var(--accent),#1475cc);
  color:#fff;
  border-color:rgba(20,95,162,0.6);
}

.erp-guided-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
  margin-top:8px;
}

.erp-guided-field{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:10px;
  padding:10px;
  background:rgba(255,255,255,0.02);
}

.erp-guided-textarea{
  min-height:88px;
}

.erp-guided-field.has-error{
  border-color:rgba(239,68,68,0.7);
  background:rgba(239,68,68,0.08);
}

.erp-guided-field.has-error .form-input,
.erp-guided-field.has-error .form-textarea,
.erp-guided-field.has-error select{
  border-color:rgba(239,68,68,0.75);
}

.erp-guided-help{
  margin-top:6px;
  font-size:.78rem;
  color:var(--muted);
}

.erp-guided-actions-col{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.erp-guided-actions{
  margin-top:8px;
}

.erp-guided-validation{
  margin-top:10px;
  border:1px solid rgba(239,68,68,0.7);
  border-radius:10px;
  padding:10px;
  background:rgba(239,68,68,0.08);
  color:#fecaca;
}

.erp-guided-validation ul{
  margin:8px 0 0;
  padding-left:18px;
}

.erp-guide{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}

.erp-guide-block{
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  background:rgba(255,255,255,0.02);
}

.erp-guide-title{
  margin:0;
  font-size:.95rem;
}

.erp-guide-text{
  margin:8px 0 0;
  color:var(--muted);
}

.erp-guide-block ul{
  margin:8px 0 0;
  padding-left:18px;
  color:var(--text);
}

.erp-guide-block li{
  margin-bottom:4px;
}

#rowsList .table{
  width:100%;
}

#rowsList .table td{
  max-width:260px;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media (max-width:760px){
  .erp-col-small{
    max-width:100%;
  }

  .erp-guided-grid,
  .erp-guide{
    grid-template-columns:1fr;
  }
}

.product-buttons-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:10px;
}

.product-pick-btn{
  position:relative;
  text-align:left;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  border-radius:10px;
  color:var(--text);
  padding:10px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.product-pick-btn:hover{
  border-color:var(--accent);
  transform:translateY(-1px);
}

.product-pick-btn.is-selected{
  border-color:rgba(92,245,144,0.8);
  background:rgba(92,245,144,0.08);
}

.product-pick-name{
  font-weight:700;
}

.product-pick-meta{
  color:var(--muted);
  font-size:.86rem;
}

.product-pick-qty{
  position:absolute;
  top:8px;
  right:8px;
  padding:2px 7px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-weight:700;
  font-size:.78rem;
}

.producto-thumb{
  width:44px;
  height:44px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(255,255,255,0.14);
}
.thumb-placeholder{
  display:inline-block;
  font-size:.78rem;
  color:var(--muted);
}

/* Ventas simples por estación (modo supermercado) */
.ventas-simple-page .empresa-title,
.ventas-simple-page .empresa-subtitle{
  margin: 0;
}

.ventas-simple-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}

.ventas-simple-kpi{
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  background:rgba(255,255,255,0.03);
}

.ventas-simple-kpi-label{
  display:block;
  color:var(--muted);
  font-size:.8rem;
}

.ventas-simple-kpi-value{
  display:block;
  margin-top:4px;
  font-size:1rem;
  font-weight:700;
  color:var(--text);
}

.ventas-simple-layout{
  display:grid;
  grid-template-columns:minmax(320px,1fr) minmax(360px,1.08fr);
  gap:12px;
}

.ventas-simple-search-row{
  display:grid;
  grid-template-columns:1fr 140px auto;
  gap:8px;
  align-items:end;
}

.ventas-simple-products,
.ventas-simple-items{
  max-height:360px;
  overflow:auto;
}

.ventas-simple-products .table,
.ventas-simple-items .table{
  width:100%;
}

.ventas-simple-qty-actions{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.ventas-simple-qty-value{
  min-width:42px;
  text-align:center;
  font-weight:700;
  color:var(--text);
}

.ventas-simple-qty-btn{
  min-width:30px;
  height:30px;
  padding:4px 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.ventas-simple-pay-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.ventas-simple-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(145,198,238,0.28);
  background:rgba(31,142,241,0.12);
  color:#cde5ff;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.ventas-simple-section-title{
  margin:0;
}

.ventas-simple-hidden{
  display:none;
}

.ventas-simple-sync-bar{
  margin-top:10px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:10px;
  border:1px dashed var(--border);
  border-radius:10px;
  background:rgba(255,255,255,0.02);
}

.ventas-simple-sync-tag{
  display:inline-flex;
  align-items:center;
  padding:3px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.02em;
  border:1px solid var(--border);
  color:var(--text);
  background:rgba(255,255,255,0.04);
}

.ventas-simple-sync-tag.is-online{
  border-color:rgba(92,245,144,0.4);
  background:rgba(92,245,144,0.12);
  color:#c4ffd9;
}

.ventas-simple-sync-tag.is-syncing{
  border-color:rgba(145,198,238,0.45);
  background:rgba(31,142,241,0.16);
  color:#d7ebff;
}

.ventas-simple-sync-btn{
  margin-left:auto;
}

.ventas-simple-kpis-metrics{
  margin-top:10px;
}

@media (max-width:1100px){
  .ventas-simple-layout{grid-template-columns:1fr;}
}

@media (max-width:760px){
  .ventas-simple-search-row{grid-template-columns:1fr;}
  .ventas-simple-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ventas-simple-pay-grid{grid-template-columns:1fr;}
  .ventas-simple-sync-btn{margin-left:0;}
}

@media (max-width:1100px){
  .empresa-grid-2{grid-template-columns:1fr}
  .empresa-inline-actions{width:100%;min-width:unset}
  .empresa-inline-actions .form-input{min-width:0;flex:1}
  .graficos-charts-grid,
  .graficos-bottom-grid{grid-template-columns:1fr}
  .graficos-donut-wrap{grid-template-columns:1fr}
  .graficos-donut{margin:0 auto}
}

@media (max-width:680px){
  .graficos-col-label{
    writing-mode:horizontal-tb;
    transform:none;
  }
  .graficos-col{
    min-width:26px;
    flex:1 0 26px;
  }
}

/* Modulo chat_y_tareas */
.chat-tareas-page{
  max-width:none;
}

.chat-tareas-page-header{
  align-items:flex-start;
  margin-bottom:14px;
}

.chat-tareas-page-headcopy{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.chat-tareas-page-header h1{
  font-size:1.25rem;
}

.chat-tareas-shell{
  margin:0;
  min-height:100vh;
  box-sizing:border-box;
  background:linear-gradient(180deg,var(--bg-alt),var(--bg));
  color:var(--text);
}

.chat-workspace-shell{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 18%, transparent), transparent 34rem),
    linear-gradient(180deg,var(--bg-alt),var(--bg));
  color:var(--text);
}

.chat-workspace-page{
  width:min(1480px, calc(100% - 24px));
  max-width:none;
  margin:0 auto;
  padding:18px 0 24px;
}

.chat-workspace-hero{
  display:grid;
  grid-template-columns:minmax(300px, .8fr) minmax(520px, 1.2fr);
  gap:18px;
  align-items:stretch;
  margin-bottom:16px;
}

.chat-workspace-intro,
.chat-workspace-subnav,
.chat-workspace-stage{
  border:1px solid var(--border);
  border-radius:8px;
  background:color-mix(in srgb, var(--card) 88%, transparent);
  box-shadow:0 16px 34px color-mix(in srgb, var(--bg) 26%, transparent);
}

.chat-workspace-intro{
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:190px;
}

.chat-workspace-kicker{
  margin:0 0 8px;
  color:var(--accent-yellow);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:0;
}

.chat-workspace-intro h1{
  margin:0;
  color:var(--text);
  font-size:clamp(1.8rem, 3vw, 2.7rem);
  line-height:1.04;
}

.chat-workspace-intro p{
  margin:12px 0 0;
  color:var(--muted);
  line-height:1.5;
}

.chat-workspace-badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.chat-workspace-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--text);
  background:var(--surface-soft);
  font-size:.78rem;
  font-weight:800;
}

.chat-workspace-subnav{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  padding:12px;
}

.chat-workspace-tab{
  display:grid;
  grid-template-columns:42px minmax(0, 1fr);
  gap:10px;
  min-height:98px;
  padding:13px;
  border:1px solid var(--border);
  border-radius:8px;
  text-decoration:none;
  color:var(--text);
  background:linear-gradient(180deg,var(--surface),var(--surface-soft));
}

.chat-workspace-tab:hover,
.chat-workspace-tab:focus-visible{
  border-color:color-mix(in srgb,var(--accent) 58%,var(--border));
  transform:translateY(-1px);
}

.chat-workspace-tab.active{
  border-color:color-mix(in srgb,var(--accent) 65%,var(--border));
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 22%,var(--surface)),var(--surface-soft));
}

.chat-workspace-tab-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:8px;
  background:color-mix(in srgb,var(--accent) 18%,var(--surface));
  color:var(--accent-yellow);
  font-size:1.22rem;
  font-weight:900;
}

.chat-workspace-tab strong{
  display:block;
  margin-bottom:4px;
  font-size:.96rem;
}

.chat-workspace-tab small{
  display:block;
  color:var(--muted);
  line-height:1.35;
  font-size:.78rem;
}

.chat-workspace-stage{
  overflow:hidden;
}

.chat-usuarios-shell{
  display:grid;
  gap:16px;
}

.chat-usuarios-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px 0;
}

.chat-usuarios-header h1{
  margin:8px 0 6px;
}

.chat-usuarios-live-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));
  background:color-mix(in srgb,var(--accent) 14%,var(--surface));
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.chat-usuarios-live-badge::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:#43c174;
  box-shadow:0 0 0 0 rgba(67,193,116,.45);
}

.chat-usuarios-live-badge.is-pulse::before{
  animation:chatUsuariosPulse 1.2s ease-out;
}

.chat-usuarios-grid{
  display:grid;
  grid-template-columns:minmax(260px, 320px) minmax(0, 1fr);
  gap:16px;
  align-items:start;
  padding:0 20px 20px;
}

.chat-usuarios-sidebar,
.chat-usuarios-main{
  border:1px solid var(--border);
  border-radius:12px;
  background:linear-gradient(180deg,var(--surface),var(--surface-soft));
}

.chat-usuarios-sidebar{
  padding:16px;
  display:grid;
  gap:16px;
}

.chat-usuarios-sidebar-block{
  display:grid;
  gap:10px;
}

.chat-usuarios-counter{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:12px 14px;
  border-radius:10px;
  background:color-mix(in srgb,var(--surface-soft) 72%,var(--surface));
  border:1px solid var(--border);
}

.chat-usuarios-counter strong{
  font-size:1.5rem;
  line-height:1;
}

.chat-usuarios-counter span{
  color:var(--muted);
  font-size:.84rem;
}

.chat-usuarios-participant-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

.chat-usuarios-participant-pill,
.chat-usuarios-empty-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface);
  font-size:.85rem;
}

.chat-usuarios-participant-type{
  color:var(--muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.03em;
}

.chat-usuarios-main{
  min-height:680px;
  display:grid;
  grid-template-rows:minmax(340px, 1fr) auto;
}

.chat-usuarios-message-list{
  padding:18px;
  overflow:auto;
  display:grid;
  gap:12px;
  max-height:620px;
}

.chat-usuarios-message-card{
  padding:14px 16px;
  border-radius:12px;
  border:1px solid var(--border);
  background:color-mix(in srgb,var(--surface) 88%,var(--surface-soft));
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}

.chat-usuarios-message-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:8px;
}

.chat-usuarios-message-head time{
  color:var(--muted);
  font-size:.78rem;
}

.chat-usuarios-message-body{
  white-space:normal;
  line-height:1.55;
}

.chat-usuarios-empty-state{
  display:grid;
  place-items:center;
  min-height:220px;
  padding:18px;
  text-align:center;
  color:var(--muted);
}

.chat-usuarios-empty-state strong,
.chat-usuarios-empty-state span{
  display:block;
}

.chat-usuarios-composer{
  display:grid;
  gap:12px;
  padding:18px;
  border-top:1px solid var(--border);
  background:color-mix(in srgb,var(--surface-soft) 74%,var(--surface));
}

.chat-usuarios-textarea{
  min-height:110px;
  resize:vertical;
}

.chat-usuarios-composer-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

#chatUsuariosStatus.is-error{
  color:#ef5350;
}

@keyframes chatUsuariosPulse{
  0%{ box-shadow:0 0 0 0 rgba(67,193,116,.45); }
  100%{ box-shadow:0 0 0 12px rgba(67,193,116,0); }
}

.chat-workspace-stage-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding:16px 18px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,var(--surface-soft),color-mix(in srgb,var(--surface) 86%,transparent));
}

.chat-workspace-stage-head h2{
  margin:0;
  font-size:1.18rem;
  color:var(--text);
}

.chat-workspace-stage-head p{
  margin:5px 0 0;
  color:var(--muted);
  line-height:1.45;
}

.chat-workspace-stage-pill{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  color:var(--text);
  background:var(--card);
  font-size:.78rem;
  font-weight:900;
}

.chat-workspace-frame{
  display:block;
  width:100%;
  min-height:calc(100vh - 330px);
  height:760px;
  border:0;
  background:var(--bg);
}

.chat-workspace--mail .chat-workspace-stage{
  background:linear-gradient(180deg,var(--card),var(--surface));
}

.chat-workspace--tasks .chat-workspace-stage{
  background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 82%,var(--accent-yellow) 8%),var(--card));
}

.chat-workspace--agenda .chat-workspace-stage{
  background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 82%,var(--accent-2) 10%),var(--card));
}

.chat-dashboard-strip{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:12px;
}

.chat-dashboard-actions{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:var(--surface-soft);
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}

.chat-dashboard-actions .btn{
  padding:8px 10px;
  font-size:0.82rem;
  line-height:1.05;
}

.chat-mini-form .form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  align-items:center;
}

.chat-search-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.chat-dashboard-metrics{
  max-width:min(480px,100%);
  border:1px solid var(--border);
  border-radius:10px;
  padding:6px 10px;
  background:var(--surface-soft);
  box-sizing:border-box;
}

.chat-dashboard-metrics-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.72rem;
}

.chat-dashboard-metrics-table th{
  text-align:left;
  font-weight:700;
  color:var(--muted);
  padding:3px 8px 3px 2px;
  vertical-align:middle;
  white-space:normal;
  line-height:1.25;
}

.chat-dashboard-metrics-table td{
  text-align:right;
  font-weight:800;
  color:var(--text);
  padding:3px 2px 3px 8px;
  vertical-align:middle;
  white-space:nowrap;
}

.chat-dashboard-metrics-table td.chat-metric-text{
  font-weight:700;
  font-size:0.7rem;
  color:var(--muted);
  white-space:normal;
  max-width:12rem;
}

.chat-dashboard-metrics-table tbody tr:nth-child(even) th,
.chat-dashboard-metrics-table tbody tr:nth-child(even) td{
  background:rgba(128,128,128,0.06);
}

html.theme-light .chat-dashboard-metrics-table tbody tr:nth-child(even) th,
html.theme-light .chat-dashboard-metrics-table tbody tr:nth-child(even) td{
  background:rgba(15,35,64,0.04);
}

/* Hacer los títulos de páginas pequeños y en negrita (excluye hero principal) */
/* Selector objetivo: encabezados de página y títulos administrativos comunes */
.page-header h1,
.chat-tareas-page-headcopy h1,
.admin-content h1,
.admin-empresa-shell h1,
#pageTitle {
  font-size:0.95rem !important;
  font-weight:800 !important;
  margin:0 0 8px 0;
}

/* Mantener grandes los héroes específicos que usan regla propia (.portal-intro h1) */
.portal-intro h1 { /* no cambiar: mantiene su regla existente */ }

.chat-tareas-layout{
  display:grid;
  grid-template-columns:minmax(260px,30%) minmax(320px,42%) minmax(260px,28%);
  gap:12px;
  align-items:start;
}

.chat-panel{
  min-height:74vh;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.chat-panel-header h2{
  margin:0;
  font-size:1rem;
}

.chat-panel-meta{
  color:var(--muted);
  font-size:.84rem;
}

.chat-mini-form{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.compact-row{
  margin-bottom:0;
}

.form-col-end{
  display:flex;
  align-items:flex-end;
}

.chat-search-row{
  display:flex;
  gap:8px;
  align-items:stretch;
}

.chat-conv-list,
.chat-task-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:46vh;
  overflow:auto;
  padding-right:2px;
}

.chat-conv-item,
.task-item{
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,0.03);
  padding:8px;
}

.chat-conv-item.active{
  border-color:var(--accent);
  background:rgba(31,142,241,0.12);
}

.chat-conv-select{
  width:100%;
  text-align:left;
  background:transparent;
  color:var(--text);
  border:none;
  cursor:pointer;
  padding:0;
}

.chat-conv-top{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
}

.chat-conv-mid{
  margin-top:6px;
  color:var(--muted);
  font-size:.9rem;
}

.chat-conv-meta,
.task-meta{
  margin-top:4px;
  color:var(--muted);
  font-size:.82rem;
}

.chat-conv-actions,
.task-actions{
  margin-top:8px;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.badge{
  display:inline-flex;
  align-items:center;
  padding:2px 7px;
  border-radius:999px;
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.02em;
}

.badge.mid{background:rgba(49,157,231,0.22);color:#cfe9ff}
.badge.low{background:rgba(53,187,137,0.2);color:#d4ffe9}
.badge.high{background:rgba(255,189,89,0.24);color:#ffe8bb}
.badge.urgent{background:rgba(239,83,80,0.26);color:#ffd6d6}

.chat-participants-box{
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px;
  background:rgba(255,255,255,0.02);
}

.chat-participants-header{
  font-size:.84rem;
  color:var(--muted);
  margin-bottom:6px;
}

.chat-participants-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:8px;
}

.participant-chip{
  border:1px solid var(--border);
  border-radius:999px;
  padding:3px 8px;
  background:rgba(255,255,255,0.03);
  font-size:.8rem;
}

.chat-add-participant-row,
.chat-attach-row{
  display:flex;
  gap:8px;
  align-items:center;
}

.chat-selector-box{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
  padding:10px;
  background:rgba(255,255,255,0.025);
  display:flex;
  flex-direction:column;
  gap:8px;
}

.chat-selector-box-compact{
  margin-top:8px;
}

.chat-selector-head{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}

.chat-selector-head strong{
  font-size:.88rem;
}

.chat-selector-meta{
  color:var(--muted);
  font-size:.78rem;
}

.chat-user-checklist{
  display:flex;
  flex-direction:column;
  gap:6px;
  max-height:180px;
  overflow:auto;
  padding-right:2px;
}

.chat-user-checklist-compact{
  max-height:160px;
}

.chat-user-option{
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:10px;
  padding:8px 10px;
  background:rgba(255,255,255,0.03);
  cursor:pointer;
}

.chat-user-option input{
  margin-top:2px;
}

.chat-user-option span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.chat-user-option small{
  color:var(--muted);
}

.chat-voice-row{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}

.chat-messages-list{
  flex:1;
  min-height:260px;
  max-height:44vh;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  background:rgba(255,255,255,0.02);
  display:flex;
  flex-direction:column;
  gap:8px;
}

.chat-state-card{
  border:1px dashed rgba(255,255,255,0.12);
  border-radius:14px;
  padding:16px;
  background:rgba(255,255,255,0.03);
  display:flex;
  flex-direction:column;
  gap:10px;
  color:var(--muted);
}

.chat-state-card strong{
  color:#f4fbff;
  font-size:.98rem;
}

.chat-state-card p{
  margin:0;
}

.chat-message-form{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.chat-bubble{
  max-width:86%;
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px;
  background:rgba(255,255,255,0.04);
}

.chat-bubble.self{
  margin-left:auto;
  background:rgba(31,142,241,0.16);
  border-color:rgba(31,142,241,0.4);
}

.chat-bubble header{
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:.8rem;
  color:var(--muted);
  margin-bottom:6px;
}

.chat-content{
  white-space:pre-wrap;
  word-break:break-word;
}

.chat-attachments{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.chat-attachment-image img{
  max-width:220px;
  border-radius:8px;
  border:1px solid var(--border);
}

.chat-attachment-audio audio{
  width:220px;
}

.chat-attachment-file a{
  color:var(--accent-yellow-light);
  font-weight:700;
}

.task-top{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:flex-start;
}

.task-desc{
  margin-top:6px;
  white-space:pre-wrap;
  color:var(--text);
}

.task-voice-audio{
  margin-top:8px;
}

.lic-modulos-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 10px;
}

.lic-modulo-item,
.lic-superrol-item{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.92rem;
}

.lic-history-toolbar{
  margin:0 0 16px;
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.03);
  display:grid;
  grid-template-columns:minmax(220px,320px) 1fr;
  gap:14px;
  align-items:end;
}

.lic-history-toolbar-main{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.lic-history-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:10px;
}

.lic-history-summary-card{
  border-radius:12px;
  padding:12px 14px;
  background:rgba(16,32,52,0.72);
  border:1px solid rgba(255,255,255,0.08);
}

.lic-history-summary-card span{
  display:block;
  color:var(--muted);
  font-size:.84rem;
  margin-bottom:4px;
}

.lic-history-summary-card strong{
  font-size:1.35rem;
  color:#f5fbff;
}

.lic-history-summary-card--warn{
  background:rgba(124,88,18,0.3);
  border-color:rgba(239,184,76,0.28);
}

.lic-history-summary-card--danger{
  background:rgba(122,31,31,0.3);
  border-color:rgba(236,116,116,0.28);
}

.lic-history-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;
}

.lic-history-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:18px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.08);
  background:linear-gradient(180deg, rgba(12,22,38,0.96), rgba(18,30,48,0.92));
  box-shadow:0 18px 34px rgba(5,12,24,0.34);
}

.lic-history-card--active{
  border-color:rgba(78,205,153,0.24);
}

/* ===== Overrides responsive para estaciones / tarjeta YouTube (no tocar menús) ===== */
/* Objetivo: asegurar que la vista compacta no rompa el layout en móvil y que el preview use aspect-ratio */
#estacionesGrid{grid-auto-rows:auto}
#estacionesGrid .youtube-station-card{height:auto;min-height:10.5em}
.youtube-station-browser-preview{max-height:220px;height:auto}
.youtube-station-browser-frame iframe,
.youtube-station-browser-frame video,
.youtube-station-preview-frame iframe{
  width:100%;
  height:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  max-height:220px;
  display:block;
}
.youtube-station-play,.youtube-station-expand{touch-action:manipulation}

@media (max-width:640px){
  #estacionesGrid:not(.estaciones-thumb-mobile){
    grid-template-columns:1fr;
    gap:10px;
  }
  #estacionesGrid:not(.estaciones-thumb-mobile) .portal-card.station-launch-card{
    min-height:auto;
    padding:0.72em 0.8em;
    gap:0.35em;
  }
  #estacionesGrid:not(.estaciones-thumb-mobile) .station-data{
    gap:0.2em;
  }
  #estacionesGrid:not(.estaciones-thumb-mobile) .station-data-row{
    display:grid;
    grid-template-columns:minmax(76px, 34%) minmax(0, 1fr);
    align-items:start;
    gap:0.55em;
    font-size:0.88rem;
    line-height:1.18;
  }
  #estacionesGrid:not(.estaciones-thumb-mobile) .station-data-label{
    text-align:left;
    white-space:nowrap;
  }
  #estacionesGrid:not(.estaciones-thumb-mobile) .station-data-value{
    text-align:right;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    overflow-wrap:anywhere;
  }
  #estacionesGrid.estaciones-thumb-mobile{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  #estacionesGrid .youtube-station-card{height:auto;min-height:12.5em;padding:0.6em}
  .youtube-station-browser-preview{max-height:180px}
  .youtube-station-browser-frame{height:auto}
  .youtube-station-overlay{padding:8px}
  .youtube-station-overlay-card{width:calc(100vw - 16px);height:calc(100vh - 16px);border-radius:14px;padding:10px}
}

/* Estado minimizado del overlay (JS debe alternar la clase .minimized) */
.youtube-station-overlay-card.minimized{
  position:fixed;
  width:min(420px, calc(100vw - 24px));
  height:320px;
  bottom:16px;
  right:16px;
  border-radius:12px;
  padding:8px;
  z-index:10030;
  overflow:hidden;
}

/* Ajustes de espacio para botones dentro de la tarjeta */
.youtube-station-head{padding-right:3.4em}
@media (max-width:420px){
  .youtube-station-head{padding-right:0.6em}
  .youtube-station-play,.youtube-station-expand{top:0.4em;right:0.6em;width:2.2em;height:2.2em}
  .youtube-station-play{right:2.8em}
}

/* Fin overrides estaciones/YouTube */

/* Revision integral: estaciones con tamano uniforme en PC, movil y miniaturas. */
.estaciones-thumb-toggle{
  display:none;
}

#estacionesGrid{
  grid-auto-rows:var(--station-card-height);
  align-items:stretch;
}

#estacionesGrid .portal-card,
#estacionesGrid .portal-card.station-launch-card{
  height:var(--station-card-height);
  min-height:var(--station-card-height);
}

#estacionesGrid.estaciones-thumb-mobile{
  container-type:inline-size;
  container-name:estaciones-thumb;
  grid-template-columns:repeat(auto-fit, minmax(8.64em, 1fr));
  grid-auto-rows:var(--station-card-height);
  --station-card-scale:1;
  font-size:clamp(0.78rem, 1vw + 0.28rem, 0.95rem);
  --station-card-min:0;
  --station-card-height:5.67em;
  --station-gap:6px;
}

#estacionesGrid.estaciones-thumb-mobile .portal-card,
#estacionesGrid.estaciones-thumb-mobile .youtube-station-card,
#estacionesGrid.estaciones-thumb-mobile .notas-station-card,
#estacionesGrid.estaciones-thumb-mobile .ia-pedidos-station-card{
  height:var(--station-card-height);
  min-height:var(--station-card-height);
  padding:0.4em 0.3em;
  line-height:1.2;
}

#estacionesGrid.estaciones-thumb-mobile .portal-card h3{
  font-size:clamp(0.95em, 1em + 0.5cqi, 1.1em);
  line-height:1.15;
}

#estacionesGrid.estaciones-thumb-mobile .portal-card p,
#estacionesGrid.estaciones-thumb-mobile .station-entry-time,
#estacionesGrid.estaciones-thumb-mobile .caja-row,
#estacionesGrid.estaciones-thumb-mobile .notas-station-list-item{
  font-size:max(0.88em, 0.7rem);
}

#estacionesGrid.estaciones-thumb-mobile .caja-title{
  font-size:1.05em;
}

#estacionesGrid.estaciones-thumb-mobile .caja-actions .btn{
  min-height:30px;
  padding:4px 6px;
  font-size:0.72rem;
  line-height:1.1;
}

#estacionesGrid.estaciones-thumb-mobile .ia-pedidos-station-head p,
#estacionesGrid.estaciones-thumb-mobile .notas-station-card p,
#estacionesGrid.estaciones-thumb-mobile .youtube-station-card p{
  font-size:max(0.8em, 0.78rem);
}

#estacionesGrid.estaciones-thumb-mobile .ia-pedidos-station-frame,
#estacionesGrid.estaciones-thumb-mobile .youtube-station-browser-preview,
#estacionesGrid.estaciones-thumb-mobile .youtube-station-editor{
  display:none;
}

@media (max-width:640px){
  #estacionesGrid.estaciones-thumb-mobile{
    grid-template-columns:repeat(auto-fit, minmax(8.64em, 1fr));
    font-size:clamp(0.78rem, 2.9vw + 0.2rem, 0.95rem);
  }

  #estacionesGrid:not(.estaciones-thumb-mobile) .portal-card,
  #estacionesGrid:not(.estaciones-thumb-mobile) .portal-card.station-launch-card{
    height:var(--station-card-height);
    min-height:var(--station-card-height);
  }
}

.lic-history-card--expiring{
  border-color:rgba(243,189,87,0.34);
}

.lic-history-card--expired{
  border-color:rgba(238,116,116,0.3);
}

.lic-history-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}

.lic-history-company{
  color:#9dc3dd;
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.lic-history-card h3{
  margin:6px 0 4px;
}

.lic-history-type,
.lic-history-detail,
.lic-history-meta{
  margin:0;
  color:var(--muted);
}

.lic-history-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  font-size:.82rem;
  font-weight:900;
  white-space:nowrap;
}

.lic-history-badge--active{
  color:#0d3723;
  background:#8ee5bb;
}

.lic-history-badge--expiring{
  color:#5b3d02;
  background:#ffd889;
}

.lic-history-badge--expired{
  color:#4f1414;
  background:#ffb0b0;
}

.lic-history-badge--unknown{
  color:#17324b;
  background:#d4e7ff;
}

.lic-history-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.lic-history-metrics div{
  border-radius:12px;
  padding:10px 12px;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.06);
}

.lic-history-metrics span{
  display:block;
  color:var(--muted);
  font-size:.8rem;
  margin-bottom:4px;
}

.lic-history-metrics strong{
  color:#f5fbff;
  font-size:.98rem;
}

.lic-history-foot{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin-top:auto;
}

.lic-history-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.lic-history-empty{
  border-radius:14px;
  padding:18px;
  border:1px dashed rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.03);
  color:var(--muted);
}

@media (max-width: 780px){
  .lic-history-toolbar{
    grid-template-columns:1fr;
  }

  .lic-history-metrics{
    grid-template-columns:1fr;
  }
}

.task-status.pending{color:var(--accent)}
.task-status.progress{color:var(--accent-yellow)}
.task-status.blocked{color:var(--danger)}
.task-status.done{color:var(--success)}

.chat-calendar-card{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.chat-calendar-card-primary{
  margin-top:0;
  border:1px solid var(--border);
  background:linear-gradient(180deg, var(--surface-soft), var(--card));
  box-shadow:0 12px 28px rgba(0, 0, 0, 0.12);
}

.chat-calendar-hero{
  display:grid;
  grid-template-columns:minmax(320px, 1.5fr) minmax(280px, 1fr);
  gap:16px;
  align-items:start;
  padding:8px 2px 2px;
}

.chat-calendar-hero-copy{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.chat-calendar-eyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:4px 10px;
  border-radius:999px;
  background:var(--focus);
  color:var(--accent);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.chat-calendar-hero-copy h2{
  margin:0;
  font-size:1.4rem;
  line-height:1.1;
}

.chat-calendar-hero-text{
  margin:0;
  max-width:760px;
}

.chat-calendar-hero-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.chat-calendar-stat{
  min-height:108px;
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  background:var(--surface-soft);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
}

.chat-calendar-stat-label{
  color:var(--muted);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.chat-calendar-stat strong{
  font-size:1.15rem;
  color:var(--text);
  line-height:1.15;
}

.chat-calendar-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.chat-calendar-nav{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}

.chat-calendar-month{
  min-width:190px;
  text-align:center;
  font-weight:700;
  text-transform:capitalize;
}

.chat-reminder-banner{
  border:1px solid var(--accent-yellow);
  background:rgba(255, 193, 85, 0.14);
  color:var(--text);
  border-radius:10px;
  padding:8px 10px;
  font-size:.9rem;
}

.chat-calendar-layout{
  display:grid;
  grid-template-columns:minmax(680px,2.2fr) minmax(320px,1fr);
  gap:12px;
  align-items:start;
}

.chat-calendar-main{
  width:min(550px,100%);
  height:550px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-soft);
  padding:14px;
  display:grid;
  grid-template-rows:auto 1fr;
  justify-self:start;
  overflow:hidden;
}

.chat-calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
  margin-bottom:8px;
}

.chat-calendar-weekdays span{
  text-align:center;
  color:var(--muted);
  font-size:.8rem;
  font-weight:700;
}

.chat-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  grid-template-rows:repeat(6,minmax(0,1fr));
  gap:10px;
  min-height:0;
}

.chat-calendar-day{
  min-height:0;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
  cursor:pointer;
  transition:border-color .18s ease, transform .18s ease, background .18s ease;
}

.chat-calendar-day:hover{
  border-color:rgba(31,142,241,0.55);
  transform:translateY(-1px);
}

html.theme-light .chat-calendar-day{
  border-color:var(--border);
  background:linear-gradient(180deg,var(--surface),var(--surface-soft));
}

html.theme-light .chat-calendar-day.selected{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--border));
  background:color-mix(in srgb,var(--accent) 10%,var(--surface-soft));
}

html.theme-light .chat-calendar-day.today{
  border-color:color-mix(in srgb,var(--accent-yellow) 65%,var(--border));
}

html.theme-light .chat-selector-box,
html.theme-light .chat-user-option{
  border-color:var(--border);
  background:var(--surface-soft);
}

html.theme-light .chat-state-card strong{
  color:var(--text);
}

html.theme-light .appointment-item,
html.theme-light .chat-conv-item,
html.theme-light .task-item{
  background:var(--surface-soft);
}

.chat-calendar-day.out-month{
  opacity:.48;
}

.chat-calendar-day.today{
  border-color:rgba(255,193,85,0.7);
}

.chat-calendar-day.selected{
  border-color:rgba(31,142,241,0.7);
  background:rgba(31,142,241,0.14);
}

.chat-calendar-day-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:6px;
  font-size:.78rem;
  color:var(--muted);
}

.chat-calendar-day-top small{
  font-size:.72rem;
}

.chat-calendar-day-top span{
  font-size:.92rem;
  font-weight:700;
  color:var(--text);
}

.chat-calendar-events{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.chat-calendar-event{
  border:1px solid var(--border);
  border-radius:8px;
  background:rgba(255,255,255,0.04);
  color:var(--text);
  text-align:left;
  padding:6px 8px;
  font-size:.76rem;
  cursor:pointer;
}

.chat-calendar-event.pending{
  border-color:rgba(49,157,231,0.45);
  background:rgba(49,157,231,0.18);
}

.chat-calendar-event.done{
  border-color:rgba(53,187,137,0.45);
  background:rgba(53,187,137,0.18);
}

.chat-calendar-event.cancel{
  border-color:rgba(239,83,80,0.45);
  background:rgba(239,83,80,0.16);
}

.chat-calendar-more{
  color:var(--muted);
  font-size:.73rem;
  padding-left:2px;
}

.chat-calendar-side{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.chat-appointment-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:42vh;
  overflow:auto;
  padding-right:2px;
}

.appointment-item{
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,0.03);
  padding:8px;
}

/* Custom: Seleccionar Empresa — tarjetas uniformes y alineadas a la izquierda */
.empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start;
  gap:12px;
  /* columnas de ancho fijo para garantizar mismo tamaño visual */
  grid-template-columns: repeat(auto-fill, 260px);
  grid-auto-rows: 1fr;
  justify-content: start; /* alinea las celdas a la izquierda */
  max-width: none;
  margin: 0;
}
.empresas-grid .card-link{
  /* Compactar verticalmente en PC (~50% del alto anterior 430px) */
  display:block;
  width:260px;
  height:auto;
  min-height:220px;
}
.empresas-grid a.card-link{
  display:block;
  width:260px; /* fuerza ancho uniforme por tarjeta */
  color:inherit;
  text-decoration:none;
}
.empresas-grid .portal-card{
  width:100%;
  height:200px; /* más compactas verticalmente */
  aspect-ratio: auto;
  padding:14px;
  border-radius:10px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:stretch;
  box-shadow:0 12px 28px rgba(0,0,0,0.22);
  transition:transform .12s ease,box-shadow .12s ease;
  overflow:hidden;
  min-height:0;
  box-sizing:border-box;
}
.empresa-groups{gap:14px}

@media (max-width: 780px){
  /* En celular: compactas, mismo tamaño y ocupando el ancho disponible */
  .empresas-grid{
    grid-template-columns:1fr;
    justify-items:start;
  }
  .empresas-grid .card-link,
  .empresas-grid a.card-link{
    width:100%;
    min-height:190px;
  }
  .empresas-grid .portal-card{
    height:176px;
  }
}

.empresas-grid .portal-card.empresa-card{
  --empresa-accent:#2f6fed;
  --empresa-soft:#e7f0ff;
  --empresa-soft-strong:rgba(47,111,237,0.2);
  --empresa-chip-bg:#eef4ff;
  position:relative;
  width:100%;
  height:100%;
  padding:0;
  overflow:hidden;
  align-items:stretch;
  text-align:left;
  color:#123047;
  border-radius:24px;
  border:1px solid rgba(18,48,71,0.08);
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,249,255,0.94));
  box-shadow:0 18px 42px rgba(15,23,42,0.14);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.empresas-grid .portal-card.empresa-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, var(--empresa-soft-strong), transparent 34%),
    linear-gradient(145deg, rgba(255,255,255,0.92), rgba(255,255,255,0) 50%);
  pointer-events:none;
}

.empresas-grid .portal-card.empresa-card::after{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:5px;
  background:linear-gradient(90deg, var(--empresa-accent), rgba(255,255,255,0));
  pointer-events:none;
}

.empresas-grid .portal-card.empresa-card[data-tone="food"]{
  --empresa-accent:#ed6a2d;
  --empresa-soft:#fff1e6;
  --empresa-soft-strong:rgba(237,106,45,0.26);
  --empresa-chip-bg:#fff3ea;
}

.empresas-grid .portal-card.empresa-card[data-tone="lodging"]{
  --empresa-accent:#2d5fcb;
  --empresa-soft:#e8efff;
  --empresa-soft-strong:rgba(45,95,203,0.22);
  --empresa-chip-bg:#eef3ff;
}

.empresas-grid .portal-card.empresa-card[data-tone="retail"]{
  --empresa-accent:#0f8c8c;
  --empresa-soft:#e6fbf7;
  --empresa-soft-strong:rgba(15,140,140,0.22);
  --empresa-chip-bg:#eafdfa;
}

.empresas-grid .portal-card.empresa-card[data-tone="logistics"]{
  --empresa-accent:#3f8d45;
  --empresa-soft:#eef9ea;
  --empresa-soft-strong:rgba(63,141,69,0.22);
  --empresa-chip-bg:#f1fbef;
}

.empresas-grid .portal-card.empresa-card[data-tone="digital"]{
  --empresa-accent:#d4552f;
  --empresa-soft:#fff0ea;
  --empresa-soft-strong:rgba(212,85,47,0.2);
  --empresa-chip-bg:#fff3ee;
}

.empresas-grid .portal-card.empresa-card[data-tone="services"]{
  --empresa-accent:#7a5b2e;
  --empresa-soft:#faf3e4;
  --empresa-soft-strong:rgba(122,91,46,0.2);
  --empresa-chip-bg:#fcf6ea;
}

.empresas-grid .card-link:hover .portal-card.empresa-card,
.empresas-grid .card-link:focus-visible .portal-card.empresa-card{
  transform:translateY(-6px);
  border-color:rgba(18,48,71,0.16);
  box-shadow:0 24px 48px rgba(15,23,42,0.18);
}

.empresas-grid .card-link:focus-visible{
  outline:none;
}

.empresas-grid .portal-card.empresa-card .empresa-card-shell{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  min-height:100%;
}

.empresas-grid .portal-card.empresa-card .empresa-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:20px 20px 0;
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon-shell{
  width:72px;
  height:72px;
  flex:0 0 72px;
  display:grid;
  place-items:center;
  border-radius:22px;
  background:linear-gradient(135deg, var(--empresa-soft), rgba(255,255,255,0.96));
  border:1px solid rgba(255,255,255,0.78);
  box-shadow:0 14px 24px rgba(18,48,71,0.1), inset 0 1px 0 rgba(255,255,255,0.8);
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon{
  width:42px;
  height:42px;
  object-fit:contain;
  filter:drop-shadow(0 6px 12px rgba(18,48,71,0.12));
}

.empresas-grid .portal-card.empresa-card .empresa-card-badge-stack{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.empresas-grid .portal-card.empresa-card .empresa-card-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  font-size:0.76rem;
  font-weight:800;
  letter-spacing:0.02em;
}

.empresas-grid .portal-card.empresa-card .empresa-card-chip--type{
  background:var(--empresa-chip-bg);
  color:var(--empresa-accent);
}

.empresas-grid .portal-card.empresa-card .empresa-card-chip--status{
  background:rgba(255,255,255,0.86);
  color:#27425a;
  border:1px solid rgba(18,48,71,0.08);
}

.empresas-grid .portal-card.empresa-card .empresa-card-chip--status.is-active{
  background:rgba(220,252,231,0.9);
  color:#166534;
}

.empresas-grid .portal-card.empresa-card .empresa-card-chip--status.is-inactive{
  background:rgba(254,226,226,0.92);
  color:#b42318;
}

.empresas-grid .portal-card.empresa-card .card-body.empresa-card-body{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  flex:1 1 auto;
  gap:14px;
  min-height:0;
  padding:16px 20px 20px;
  box-sizing:border-box;
}

.empresas-grid .portal-card.empresa-card .empresa-card-heading{
  display:grid;
  gap:6px;
}

.empresas-grid .portal-card.empresa-card .empresa-card-eyebrow{
  margin:0;
  font-size:0.75rem;
  font-weight:900;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--empresa-accent);
}

.empresas-grid .portal-card.empresa-card .card-title{
  margin:0;
  color:#153047;
  text-align:left;
  line-height:1.05;
  font-family:"Trebuchet MS","Segoe UI Variable",Tahoma,sans-serif;
  font-size:clamp(1.08rem, 2.2vw, 1.42rem);
  font-weight:900;
  display:block;
}

.empresas-grid .portal-card.empresa-card .empresa-card-subtitle{
  margin:0;
  color:#49647c;
  font-size:0.93rem;
  font-weight:700;
}

.empresas-grid .portal-card.empresa-card .empresa-shared-note{
  margin:0;
  color:#4f6c84;
  font-size:0.82rem;
  font-weight:800;
}

.empresas-grid .portal-card.empresa-card .card-desc{
  margin:0;
  color:#35506c;
  text-align:left;
  font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;
  font-weight:700;
  font-size:0.95rem;
  line-height:1.58;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta-item{
  display:grid;
  gap:5px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,0.78);
  border:1px solid rgba(18,48,71,0.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.84);
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta-item strong{
  font-size:0.72rem;
  font-weight:900;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#5a7389;
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta-item span{
  color:#17324b;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.empresas-grid .portal-card.empresa-card .empresa-card-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:auto;
}

.empresas-grid .portal-card.empresa-card .empresa-card-quick-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon-action{
  width:42px;
  height:42px;
  border:none;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#16324a;
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(18,48,71,0.1);
  box-shadow:0 10px 18px rgba(15,23,42,0.08);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon-action:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 24px rgba(15,23,42,0.12);
  border-color:rgba(18,48,71,0.16);
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon-action.is-open{
  color:#ffffff;
  background:linear-gradient(135deg, #2f6fed, #1e4dbe);
  border-color:transparent;
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon-action.is-disabled{
  cursor:not-allowed;
  opacity:0.58;
  box-shadow:none;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-panel{
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  z-index:4;
  width:100%;
  box-sizing:border-box;
  margin-top:12px;
  padding:14px 14px 12px;
  border-radius:18px;
  border:1px solid rgba(18,48,71,0.12);
  background:rgba(255,255,255,0.98);
  box-shadow:0 18px 34px rgba(15,23,42,0.14);
  backdrop-filter:blur(10px);
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-panel[hidden]{
  display:none !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-form{
  display:grid;
  gap:10px;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-label{
  margin:0;
  color:#16324a;
  font-size:0.84rem;
  font-weight:900;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-input{
  min-width:0;
  background:#ffffff;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-submit{
  min-height:42px;
  white-space:nowrap;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-modules{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  max-height:180px;
  overflow:auto;
  padding:8px;
  border:1px solid rgba(18,48,71,0.10);
  border-radius:12px;
  background:#fff;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-modules[hidden]{
  display:none !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-module{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  font-size:.78rem;
  font-weight:800;
  color:#183247;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-feedback{
  margin:0;
  min-height:1.1rem;
  color:#5c6f81;
  font-size:0.82rem;
  font-weight:700;
  line-height:1.45;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-feedback.is-success{
  color:#166534;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-feedback.is-error{
  color:#b42318;
}

/* Tarjeta abierta al compartir: por encima de vecinas en la cuadrícula */
.empresas-grid .portal-card.empresa-card.empresa-card--share-open{
  z-index:25;
}

.empresas-grid .portal-card.empresa-card .empresa-card-share-feedback .btn.empresa-share-resend{
  align-self:flex-start;
}

@media (max-width:760px){
  .empresas-grid{
    grid-template-columns:1fr;
  }

  .empresas-grid .card-link{
    min-height:0;
  }
}

.empresas-grid .portal-card.empresa-card .empresa-card-cta{
  color:#16324a;
  font-size:0.94rem;
  font-weight:900;
}

.empresas-grid .portal-card.empresa-card .license-indicator{
  border:none;
  border-radius:999px;
  padding:10px 14px;
  font-size:0.82rem;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
}

.empresas-grid .portal-card.empresa-card .license-indicator.active{
  color:#ffffff;
  background:linear-gradient(135deg, #169c62, #11764b);
  box-shadow:0 10px 20px rgba(17,118,75,0.2);
}

.empresas-grid .portal-card.empresa-card .license-indicator.inactive{
  color:#5d3a0a;
  background:linear-gradient(135deg, #f7cd7c, #f0a64a);
  box-shadow:0 10px 20px rgba(240,166,74,0.18);
}

.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
  width:100%;
  margin-top:auto;
  padding-top:6px;
  flex-shrink:0;
  box-sizing:border-box;
}
.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--license{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--license .license-indicator{
  white-space:nowrap;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.empresas-grid .portal-card.empresa-card .empresa-card-footer-license-spacer{
  display:block;
  width:6.5rem;
  min-width:6.5rem;
  height:2.3rem;
  min-height:2.3rem;
  flex-shrink:0;
  pointer-events:none;
  visibility:hidden;
}
.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--download,
.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--share{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  flex:0 0 auto;
}

.empresas-grid .portal-card.empresa-card .edit-empresa{
  cursor:pointer;
}
.empresas-grid .portal-card.empresa-card .edit-empresa.active{
  color:#ffffff;
  background:linear-gradient(135deg, #169c62, #11764b);
  box-shadow:0 10px 20px rgba(17,118,75,0.2);
}
.empresas-grid .portal-card.empresa-card .edit-empresa.inactive{
  color:#ffffff;
  background:linear-gradient(135deg, #dc2626, #991b1b);
  box-shadow:0 10px 20px rgba(153,27,27,0.22);
}
.empresas-grid .portal-card.empresa-card .delete-empresa{
  cursor:pointer;
  color:#ffffff;
  background:linear-gradient(135deg, #ef4444, #991b1b);
  box-shadow:0 10px 20px rgba(153,27,27,0.22);
}
.empresas-grid .portal-card.empresa-card .delete-empresa:disabled{
  cursor:not-allowed;
  opacity:.48;
  box-shadow:none;
}
.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--share .empresa-card-icon-action{
  margin:0;
}

.empresas-grid .portal-card.empresa-card .card-download{
  display:flex;
  justify-content:flex-start;
  padding:0 20px 18px;
}

.empresas-grid .portal-card.empresa-card .card-download .license-indicator{
  cursor:pointer;
  color:#123047;
  background:#ffffff;
  border:1px solid rgba(18,48,71,0.08);
  box-shadow:0 10px 18px rgba(15,23,42,0.08);
}

.empresas-grid .portal-card.empresa-card .card-download .license-indicator svg{
  width:16px;
  height:16px;
  flex:0 0 16px;
  fill:currentColor;
  display:block;
}

.empresas-grid .portal-card.empresa-card .card-download .license-indicator .download-label{
  display:inline-block;
}

.empresas-grid .portal-card.empresa-card .card-download .license-indicator:hover{
  box-shadow:0 14px 24px rgba(15,23,42,0.12);
}

@media (max-width: 780px){
  .empresas-grid .portal-card.empresa-card .empresa-card-top{
    flex-direction:column;
    align-items:flex-start;
    padding:18px 16px 0;
  }

  .empresas-grid .portal-card.empresa-card .empresa-card-badge-stack{
    justify-content:flex-start;
  }

  .empresas-grid .portal-card.empresa-card .card-body.empresa-card-body{
    padding:14px 16px 18px;
  }

  .empresas-grid .portal-card.empresa-card .empresa-card-meta{
    grid-template-columns:1fr;
  }

  .empresas-grid .portal-card.empresa-card .card-download{
    padding:0 16px 16px;
  }

  .empresas-grid .portal-card.empresa-card .empresa-card-share-row{
    grid-template-columns:1fr;
  }
}
.task-status.cancel{color:#d9c6c6}

.chat-empty{
  color:var(--muted);
  font-size:.9rem;
}

/* Modulo chat_con_inteligencia_artificial */
.ai-chat-page{
  max-width:none;
}

.ai-gemini-body{
  margin:0;
  min-height:100vh;
  box-sizing:border-box;
  background:
    radial-gradient(circle at 5% 4%, color-mix(in srgb, var(--accent) 34%, transparent) 0, transparent 40%),
    radial-gradient(circle at 90% 12%, color-mix(in srgb, var(--accent-2) 28%, transparent) 0, transparent 35%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
  color:var(--text);
}

.ai-gemini-page{
  display:flex;
  flex-direction:column;
  gap:12px;
  font-family:"Trebuchet MS","Segoe UI Variable",Tahoma,sans-serif;
}

.ai-gemini-header{
  align-items:flex-start;
}

.ai-gemini-toolbar{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.ai-gemini-context{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  background:linear-gradient(125deg, color-mix(in srgb, var(--surface-soft) 88%, var(--accent) 12%), color-mix(in srgb, var(--surface) 90%, var(--accent-2) 10%));
}

.ai-gemini-chip{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
  background:linear-gradient(180deg, var(--surface), var(--card));
  display:flex;
  flex-direction:column;
  gap:4px;
}

.ai-gemini-chip-label{
  color:var(--muted);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.ai-gemini-chip strong{
  color:var(--text);
}

.ai-gemini-auth{
  border-color:color-mix(in srgb, var(--accent-yellow) 45%, var(--border));
  background:linear-gradient(180deg, color-mix(in srgb, var(--accent-yellow) 18%, var(--surface-soft)), color-mix(in srgb, var(--accent-yellow) 10%, var(--surface)));
}

.ai-chat-shell{
  margin-top:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ai-gemini-shell{
  min-height:70vh;
  background:linear-gradient(180deg, var(--surface-soft), var(--card));
}

.ai-chat-messages{
  min-height:420px;
  max-height:58vh;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px;
  background:
    radial-gradient(circle at 5% 4%, color-mix(in srgb, var(--accent) 22%, transparent) 0, transparent 34%),
    linear-gradient(180deg, var(--surface), var(--surface-soft));
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Restore: Seleccionar Empresa — usar estilo 'warm' previo y aumentar tamaño 20% */
/* Esto anula reglas recientes de tarjetas cuadradas y ajusta dimensiones */
.empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start;
  gap:14px;
  grid-template-columns:repeat(auto-fill,minmax(288px,1fr)); /* 240px * 1.2 = 288px */
  max-width:1200px;
  margin:0 auto;
}

.empresas-grid .portal-card.empresa-card{
  aspect-ratio: auto !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border-radius: 12px !important;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  text-align:left;
  justify-content:flex-start;
  background: linear-gradient(180deg, rgba(20,34,46,0.92), rgba(12,20,30,0.96)) !important;
  border:1px solid rgba(255,255,255,0.04) !important;
  color:var(--text) !important;
  box-shadow:0 16px 38px rgba(2,8,20,0.65) !important;
  overflow: hidden;
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon-shell{
  width:72px !important;
  height:72px !important;
  flex:0 0 72px !important;
  border-radius:22px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-icon{
  width:42px !important;
  height:42px !important;
}

.empresas-grid .portal-card.empresa-card .card-title{
  font-size: clamp(1.05rem, 2vw, 1.32rem) !important;
  line-height: 1.14 !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.empresas-grid .portal-card.empresa-card .card-desc{
  font-size:0.93rem !important;
  line-height:1.45 !important;
  display:block !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:initial !important;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.empresas-grid .portal-card.empresa-card .license-indicator{
  padding:9px 12px !important;
  font-size:0.82rem !important;
  white-space:normal !important;
  text-align:center;
  line-height:1.2;
}

.empresas-grid .portal-card.empresa-card .empresa-card-top{
  padding:14px 14px 0 !important;
  gap:10px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-badge-stack{
  gap:6px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-chip{
  padding:6px 10px !important;
  font-size:0.72rem !important;
  max-width:100%;
  text-align:center;
  white-space:normal;
  line-height:1.15;
}

.empresas-grid .portal-card.empresa-card .card-body.empresa-card-body{
  gap:10px !important;
  min-height:0 !important;
  padding:12px 14px 14px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-heading{
  gap:4px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-eyebrow{
  font-size:0.68rem !important;
  line-height:1.2;
}

.empresas-grid .portal-card.empresa-card .empresa-card-subtitle{
  font-size:0.85rem !important;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta-item{
  padding:8px 10px !important;
  min-width:0;
}

.empresas-grid .portal-card.empresa-card .empresa-card-meta-item span{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.25;
}

.empresas-grid .portal-card.empresa-card .empresa-card-actions{
  gap:8px !important;
  align-items:stretch !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-cta{
  flex:1 1 140px;
  font-size:0.88rem !important;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.empresas-grid .portal-card.empresa-card .card-download{
  padding:0 14px 14px !important;
}

.empresas-grid .portal-card.empresa-card .card-download .license-indicator{
  width:100%;
}

/* Ajustes responsivos: conservar legibilidad en móvil */
@media (max-width: 780px){
  .empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start; grid-template-columns: 1fr; }
  .empresas-grid .portal-card.empresa-card .empresa-card-top{ padding:14px 12px 0 !important; }
  .empresas-grid .portal-card.empresa-card .card-body.empresa-card-body{ padding:12px 12px 14px !important; }
  .empresas-grid .portal-card.empresa-card .empresa-card-meta{ grid-template-columns:1fr !important; }
  .empresas-grid .portal-card.empresa-card .card-download{ padding:0 12px 12px !important; }
}

/* Override final del selector de empresas: nuevo estilo claro y botones cuadrados */
.empresas-grid .portal-card.empresa-card{
  min-height:240px !important;
  background:linear-gradient(145deg, #fff6e6, #ffd9b4) !important;
  border:1px solid rgba(182,134,67,0.2) !important;
  box-shadow:0 18px 34px rgba(43,28,5,0.16) !important;
}

.empresas-grid .portal-card.empresa-card.empresa-tone-lodging{background:linear-gradient(145deg, #f8f3ff, #d8d0ff) !important;}
.empresas-grid .portal-card.empresa-card.empresa-tone-retail{background:linear-gradient(145deg, #eef9ff, #cfe9ff) !important;}
.empresas-grid .portal-card.empresa-card.empresa-tone-logistics{background:linear-gradient(145deg, #eefaf4, #cde8d7) !important;}
.empresas-grid .portal-card.empresa-card.empresa-tone-digital{background:linear-gradient(145deg, #fff0f5, #ffd6e6) !important;}
.empresas-grid .portal-card.empresa-card.empresa-tone-services{background:linear-gradient(145deg, #fff8ef, #ffe4c6) !important;}
.empresas-grid .portal-card.empresa-card.empresa-tone-generic{background:linear-gradient(145deg, #f8fbff, #e1ebf5) !important;}

.empresas-grid .portal-card.empresa-card .card-body,
.empresas-grid .portal-card.empresa-card .card-body.empresa-card-body{
  position:relative !important;
  z-index:1 !important;
  padding:16px 14px 14px !important;
  justify-content:space-between !important;
  align-items:stretch !important;
  gap:0 !important;
}

.empresas-grid .portal-card.empresa-card .card-title{
  padding-top:42px !important;
  color:#17324b !important;
  text-align:center !important;
}

.empresas-grid .portal-card.empresa-card .card-desc{
  color:#4f6171 !important;
  text-align:center !important;
}

.empresas-grid .portal-card.empresa-card .card-actions,
.empresas-grid .portal-card.empresa-card .empresa-card-actions{
  margin-top:auto !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:10px !important;
  flex-wrap:wrap !important;
}

.empresas-grid .portal-card.empresa-card .license-indicator{
  border-radius:10px !important;
  padding:10px 14px !important;
  font-size:0.82rem !important;
  white-space:nowrap !important;
}

.empresas-grid .portal-card.empresa-card .download-data,
.empresas-grid .portal-card.empresa-card .card-download .license-indicator{
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  padding:0 !important;
  border-radius:10px !important;
  background:#ffffff !important;
  color:#183153 !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-badge{
  position:absolute !important;
  top:14px !important;
  left:14px !important;
  z-index:1 !important;
  border-radius:10px !important;
  background:rgba(23,50,75,0.08) !important;
  color:#17324b !important;
  padding:6px 10px !important;
  font-size:0.74rem !important;
  font-weight:900 !important;
  letter-spacing:0.05em !important;
  text-transform:uppercase !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-watermark{
  position:absolute !important;
  top:14px !important;
  right:14px !important;
  width:48px !important;
  height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:12px !important;
  background:rgba(255,255,255,0.58) !important;
  border:1px solid rgba(23,50,75,0.08) !important;
  box-shadow:0 10px 20px rgba(43,28,5,0.08) !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-watermark img{
  width:24px !important;
  height:24px !important;
  object-fit:contain !important;
}

/* Ajuste final: selector de empresas compacto y botonera al pie */
.empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start;
  gap:12px !important;
  grid-template-columns:repeat(auto-fit, minmax(228px, 240px)) !important;
  justify-content:center !important;
  max-width:1040px !important;
}

.empresas-grid .card-link{
  height:100% !important;
  justify-content:center !important;
}

.empresas-grid .card-link.empresa-card-link{
  min-height:177px !important;
}

.empresas-grid .portal-card.empresa-card{
  width:100% !important;
  max-width:240px !important;
  min-height:177px !important;
}

.empresas-grid .portal-card.empresa-card .card-body,
.empresas-grid .portal-card.empresa-card .card-body.empresa-card-body{
  display:flex !important;
  flex:1 1 auto !important;
  min-height:100% !important;
  padding:11px 10px 10px !important;
  gap:7px !important;
}

.empresas-grid .portal-card.empresa-card .card-title{
  padding-top:34px !important;
  font-size:clamp(0.98rem, 1.45vw, 1.12rem) !important;
  margin-bottom:0 !important;
}

.empresas-grid .portal-card.empresa-card .card-desc{
  flex:1 1 auto !important;
  margin-bottom:0 !important;
  font-size:0.86rem !important;
  line-height:1.35 !important;
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  overflow:hidden !important;
}

.empresas-grid .portal-card.empresa-card .card-actions,
.empresas-grid .portal-card.empresa-card .empresa-card-actions{
  width:100% !important;
  margin-top:auto !important;
  justify-content:center !important;
  align-items:flex-end !important;
  gap:8px !important;
}

.empresas-grid .portal-card.empresa-card .license-indicator{
  min-height:36px !important;
  min-width:132px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1.15 !important;
}

.empresas-grid .portal-card.empresa-card .empresa-license-action{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  padding:8px 8px !important;
  cursor:pointer !important;
  white-space:normal !important;
  text-align:center !important;
  font-size:0.75rem !important;
  line-height:1.08 !important;
}

.empresas-grid .portal-card.empresa-card .empresa-license-action span{
  display:block;
  overflow-wrap:anywhere;
}

.empresas-grid .portal-card.empresa-card .download-data,
.empresas-grid .portal-card.empresa-card .edit-empresa,
.empresas-grid .portal-card.empresa-card .delete-empresa,
.empresas-grid .portal-card.empresa-card .card-download .license-indicator{
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  min-height:32px !important;
  padding:0 !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--download{
  gap:4px !important;
}

.empresas-grid .portal-card.empresa-card .empresa-card-footer-bar__cell--share .empresa-card-icon-action{
  width:32px !important;
  height:32px !important;
  border-radius:10px !important;
}

.empresas-grid .portal-card.empresa-card.empresa-card--license-inactive .license-indicator.inactive{
  background:linear-gradient(135deg, #dc2626, #991b1b) !important;
  box-shadow:0 10px 20px rgba(153,27,27,0.22) !important;
  color:#ffffff !important;
}

@media (max-width: 780px){
  .empresas-grid{justify-content:flex-start; margin: 0; padding: 0; width: 100%; justify-items: start;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)) !important;
    max-width:none !important;
  }

  .empresas-grid .portal-card.empresa-card{
    max-width:none !important;
    min-height:171px !important;
  }

  .empresas-grid .card-link.empresa-card-link{
    min-height:171px !important;
  }
}

@media (min-width: 781px){
  #empresasPanel .container{
    margin-left:0;
    margin-right:auto;
    max-width:none;
  }

  #cards.empresa-groups{
    align-items:stretch;
    gap:22px;
  }

  #cards .selector-company-group{
    background:linear-gradient(180deg, var(--surface-soft), var(--surface)) !important;
    border:1px solid var(--border) !important;
    border-radius:16px !important;
    box-shadow:0 14px 30px color-mix(in srgb, var(--text) 10%, transparent) !important;
    padding:16px !important;
  }

  #cards .selector-company-group--inactive{
    background:linear-gradient(
      180deg,
      color-mix(in srgb, var(--surface-soft) 92%, var(--danger) 8%),
      var(--surface)
    ) !important;
    border-color:color-mix(in srgb, var(--border) 70%, var(--danger) 30%) !important;
  }

  #cards .selector-company-group .empresa-section-header{
    align-items:flex-end;
    border-bottom:1px solid color-mix(in srgb, var(--border) 85%, transparent);
    gap:12px;
    margin:0 0 12px;
    padding:0 0 10px;
  }

  #cards .selector-company-group .empresa-section-header h2{
    margin:0;
  }

  #cards .selector-company-group .empresas-grid{
    justify-content:flex-start !important;
    justify-items:start !important;
    margin-left:0 !important;
    margin-right:auto !important;
    max-width:none !important;
  }

  #cards .selector-company-group .empresas-grid .card-link.empresa-card-link,
  #cards .selector-company-group .empresas-grid .portal-card.empresa-card{
    justify-self:start !important;
  }
}

.ai-chat-bubble{
  max-width:88%;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  background:color-mix(in srgb, var(--surface) 88%, var(--text) 12%);
}

.ai-chat-bubble.user{
  margin-left:auto;
  border-color:color-mix(in srgb, var(--accent) 42%, var(--border));
  background:color-mix(in srgb, var(--accent) 22%, var(--surface));
}

.ai-chat-bubble.assistant{
  border-color:color-mix(in srgb, var(--success) 35%, var(--border));
  background:color-mix(in srgb, var(--success) 16%, var(--surface-soft));
}

.ai-chat-bubble.system{
  border-color:color-mix(in srgb, var(--accent-yellow) 40%, var(--border));
  background:color-mix(in srgb, var(--accent-yellow) 14%, var(--surface-soft));
}

.ai-chat-bubble header{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
  font-size:.8rem;
  color:var(--muted);
}

.ai-chat-content{
  white-space:pre-wrap;
  word-break:break-word;
  line-height:1.48;
}

/* Tipografía y contraste mejorados para TODOS los chats */
.ai-chat-messages,
.ai-chat-content,
.ai-chat-form textarea,
.ai-gemini-input{
  font-family:"Google Sans Flex","Segoe UI Variable","Segoe UI",system-ui,sans-serif;
  font-size:1.02rem;
}
.ai-chat-bubble.user .ai-chat-content{color:color-mix(in srgb, var(--text) 92%, var(--accent) 8%);}
.ai-chat-bubble.assistant .ai-chat-content{color:color-mix(in srgb, var(--text) 92%, var(--success) 8%);}

/* Modo chat limpio (empresa/super): solo botón nuevo + chat arriba, historial abajo */
body.ai-gemini-inline-history-mode .ai-gemini-app{grid-template-columns:1fr;}
body.ai-gemini-inline-history-mode .ai-gemini-sidebar{display:none;}
body.ai-gemini-inline-history-mode .ai-gemini-topmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
body.ai-gemini-inline-history-mode .ai-gemini-model-select,
body.ai-gemini-inline-history-mode .ai-gemini-meta-pill,
body.ai-gemini-inline-history-mode .ai-gemini-meta-pill--soft{display:none !important;}
body.ai-gemini-inline-history-mode .ai-gemini-new-chat{width:auto;text-align:center}
.ai-gemini-inline-history{
  margin-top:14px;
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
  background:linear-gradient(180deg, var(--surface-soft), var(--surface));
}
.ai-gemini-inline-history-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:8px;
}
.ai-gemini-inline-history-title{
  font-weight:900;
}

/* Chat IA: acciones confirmables desde el chat (registro via auditoria) */
.ai-action-card{
  margin-top:10px;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:color-mix(in srgb, var(--accent-yellow) 10%, var(--surface-soft));
}
.ai-action-title{
  font-weight:800;
  font-size:.9rem;
  margin-bottom:8px;
  color:var(--text);
}
.ai-action-note{
  color:var(--muted);
  font-size:.82rem;
  line-height:1.45;
  margin-bottom:10px;
}
.ai-action-item{
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px 10px;
  background:var(--surface);
  margin-bottom:8px;
}
.ai-action-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:baseline;
  flex-wrap:wrap;
  margin-bottom:6px;
}
.ai-action-mini{
  color:var(--muted);
  font-size:.75rem;
}
.ai-action-body{
  margin:0;
  padding:8px;
  border-radius:10px;
  background:var(--surface-soft);
  border:1px solid var(--border);
  overflow:auto;
  max-height:240px;
  white-space:pre;
  color:var(--text);
  font-size:.78rem;
}
.ai-action-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.ai-document-export-card{
  margin-top:10px;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:color-mix(in srgb, var(--accent) 8%, var(--surface-soft));
  white-space:normal;
}
.ai-document-export-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-start;
}
.ai-document-export-btn{
  min-height:34px;
  padding:7px 10px;
}

.ai-chat-form{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.ai-gemini-form{
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
  background:linear-gradient(180deg, var(--surface-soft), var(--surface));
}

.ai-gemini-input{
  min-height:115px;
}

.ai-chat-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}

.ai-chat-empty{
  color:var(--muted);
  font-size:.92rem;
}

/* Layout tipo Gemini: barra lateral + panel principal (chat IA empresa / super) */
.ai-gemini-app-body{
  overflow-x:hidden;
}

.ai-gemini-app{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  min-height:100vh;
  font-family:"Google Sans Flex","Segoe UI",system-ui,sans-serif;
}

.ai-gemini-sidebar{
  border-right:1px solid var(--border);
  background:color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
  padding:12px 10px;
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:auto;
}

.ai-gemini-new-chat{
  width:100%;
  text-align:left;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--accent) 18%, var(--surface-soft));
  color:var(--text);
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
}
.ai-gemini-new-chat--secondary{
  background:color-mix(in srgb, var(--surface) 92%, var(--text) 8%);
  opacity:.95;
}

.ai-gemini-new-chat:hover{
  border-color:color-mix(in srgb, var(--accent) 50%, var(--border));
}

.ai-gemini-sidebar-section-title{
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  margin-top:6px;
  padding:0 4px;
}

.ai-gemini-conv-list{
  display:flex;
  flex-direction:column;
  gap:4px;
  max-height:32vh;
  overflow:auto;
}

.ai-gemini-conv-list--server{
  max-height:28vh;
}

.ai-gemini-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}
.ai-gemini-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.55)}
.ai-gemini-modal__panel{position:relative;width:min(760px, calc(100% - 24px));max-height:min(80vh, 680px);overflow:hidden;background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)), var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,0.38)}
.ai-gemini-modal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px;border-bottom:1px solid var(--border)}
.ai-gemini-modal__body{padding:10px 10px;overflow:auto;max-height:calc(80vh - 60px)}

.ai-gemini-conv-empty{
  color:var(--muted);
  font-size:.82rem;
  padding:8px 6px;
}

.ai-gemini-conv-item{
  width:100%;
  text-align:left;
  border:0;
  border-radius:10px;
  padding:8px 10px;
  background:transparent;
  color:var(--text);
  font-size:.84rem;
  line-height:1.35;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}

.ai-gemini-conv-item:hover{
  background:color-mix(in srgb, var(--accent) 12%, transparent);
}

.ai-gemini-conv-item.is-active{
  background:color-mix(in srgb, var(--accent) 22%, var(--surface-soft));
  border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
}

.ai-gemini-conv-item-title{
  font-weight:500;
}

.ai-gemini-conv-item-meta{
  font-size:.72rem;
  color:var(--muted);
}

.ai-gemini-main{
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-width:0;
}

.ai-gemini-topbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 16px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--surface-soft) 94%, var(--bg) 6%);
}

.ai-gemini-topbar-inner{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.ai-gemini-logo-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  flex-shrink:0;
}

.ai-gemini-model-select{
  min-width:0;
  max-width:min(100%,420px);
  flex:1;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  font-size:.85rem;
}

.ai-gemini-topmeta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.ai-gemini-meta-pill{
  font-size:.75rem;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  max-width:100%;
}

.ai-gemini-meta-pill--soft{
  color:var(--muted);
  background:var(--surface-soft);
}

.ai-gemini-limit-banner{
  margin:0 16px;
  margin-top:10px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid color-mix(in srgb, var(--accent-yellow) 45%, var(--border));
  background:color-mix(in srgb, var(--accent-yellow) 14%, var(--surface-soft));
  color:var(--text);
  font-size:.88rem;
  line-height:1.45;
}

.ai-gemini-chat-area{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  padding:12px 16px 16px;
  gap:12px;
}

.ai-gemini-inline-alert{
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface-soft);
  color:var(--text);
  font-size:.88rem;
}

.ai-gemini-composer{
  margin-top:auto;
}

.ai-gemini-messages{
  flex:1;
  min-height:280px;
  max-height:none;
}

.ai-gemini-welcome{
  padding:12px;
  line-height:1.5;
}

.ai-gemini-visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.ai-gemini-form-msg--error{
  color:color-mix(in srgb, #c62828 85%, var(--text));
}

.ai-gemini-auth{
  margin:0 16px 12px;
}

.ai-chat-bubble header{
  flex-wrap:wrap;
  align-items:center;
}

.ai-chat-bubble header .ai-gemini-share-btn{
  margin-left:auto;
  font-size:.75rem;
  padding:4px 10px;
}

html.theme-light .ai-gemini-sidebar{
  background:color-mix(in srgb, var(--surface-soft) 96%, var(--text) 4%);
}

html.theme-light .ai-chat-bubble header{
  color:var(--muted);
}

html.theme-light .ai-chat-content{
  color:var(--text);
}

html.theme-light .ai-gemini-limit-banner{
  color:var(--text);
}

html.theme-light .ai-gemini-inline-alert{
  color:var(--text);
}

@media (max-width:900px){
  .ai-gemini-app{
    grid-template-columns:1fr;
  }
  .ai-gemini-sidebar{
    max-height:38vh;
    border-right:0;
    border-bottom:1px solid var(--border);
  }
  .ai-gemini-conv-list,
  .ai-gemini-conv-list--server{
    max-height:14vh;
  }
}

.ai-history-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:34vh;
  overflow:auto;
}

.ai-history-item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:9px;
  background:var(--surface-soft);
  display:flex;
  flex-direction:column;
  gap:5px;
}

.ai-history-item header{
  display:flex;
  justify-content:space-between;
  gap:8px;
  color:var(--muted);
  font-size:.82rem;
}

@media (max-width:1320px){
  .chat-workspace-hero{
    grid-template-columns:1fr;
  }

  .chat-workspace-frame{
    height:820px;
  }

  .chat-calendar-hero{
    grid-template-columns:1fr;
  }

  .chat-tareas-layout{
    grid-template-columns:1fr 1fr;
  }
  .tareas-panel{
    grid-column:1 / span 2;
  }
  .chat-calendar-layout{
    grid-template-columns:1fr;
  }
}

@media (max-width:860px){
  .chat-workspace-page{
    width:calc(100% - 16px);
    padding-top:8px;
  }

  .chat-workspace-intro{
    min-height:unset;
    padding:16px;
  }

  .chat-workspace-subnav{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    padding:6px;
  }

  .chat-workspace-tab{
    grid-template-columns:1fr;
    place-items:center;
    gap:4px;
    min-height:50px;
    padding:7px 4px;
    text-align:center;
  }

  .chat-usuarios-header{
    padding:14px 12px 0;
    flex-direction:column;
    align-items:stretch;
  }

  .chat-usuarios-grid{
    grid-template-columns:1fr;
    padding:0 12px 12px;
  }

  .chat-usuarios-main{
    min-height:unset;
  }

  .chat-usuarios-message-list{
    max-height:none;
  }

  .chat-usuarios-composer-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .chat-workspace-tab-icon{
    width:24px;
    height:24px;
    font-size:.76rem;
    border-radius:6px;
  }

  .chat-workspace-tab strong{
    margin-bottom:0;
    font-size:.72rem;
    line-height:1.05;
  }

  .chat-workspace-tab small{
    display:none;
  }

  .chat-workspace-stage-head{
    flex-direction:column;
    padding:14px;
  }

  .chat-workspace-frame{
    height:900px;
    min-height:680px;
  }

  .chat-tareas-page-header{
    align-items:stretch;
  }

  .chat-calendar-hero-stats{
    grid-template-columns:1fr;
  }

  .chat-dashboard-actions{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }

  .chat-tareas-layout{
    grid-template-columns:1fr;
  }
  .tareas-panel{grid-column:auto}
  .chat-panel{min-height:unset}
  .chat-conv-list,
  .chat-task-list,
  .chat-messages-list{
    max-height:unset;
  }
  .chat-add-participant-row,
  .chat-attach-row,
  .chat-voice-row,
  .chat-search-row{
    flex-direction:column;
    align-items:stretch;
  }

  .chat-calendar-nav{
    width:100%;
    justify-content:flex-start;
  }

  .chat-calendar-month{
    min-width:unset;
    text-align:left;
  }

  .chat-calendar-main{
    width:min(100%, 52vh);
    height:min(52vh, 460px);
    padding:10px;
    justify-self:center;
  }

  .chat-calendar-grid{
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;
  }

  .chat-calendar-day{
    min-height:0;
    padding:8px 6px;
    border-radius:10px;
  }

  .chat-calendar-day-top{
    margin-bottom:4px;
  }

  .chat-calendar-day-top span,
  .chat-calendar-day-top small,
  .chat-calendar-event,
  .chat-calendar-more{
    font-size:.68rem;
  }

  .lic-modulos-grid{
    grid-template-columns:1fr;
  }

  .ai-gemini-context{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ai-gemini-toolbar{
    width:100%;
    justify-content:flex-start;
  }

  .ai-chat-messages{
    max-height:none;
  }
}

@media (max-width:700px){
  .ai-gemini-context{
    grid-template-columns:1fr;
  }

  .ai-chat-bubble{
    max-width:96%;
  }
}

/* Iconos de menu: se aplican al final para que ningun ajuste movil los convierta en iconos gigantes o monocromaticos. */
.admin-sidebar .nav a img.icon{
  width:28px !important;
  height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  flex:0 0 28px !important;
  background:var(--menu-icon-bg,#e0f2fe) !important;
  border:1px solid var(--menu-icon-border,rgba(14,165,233,.28)) !important;
  border-radius:8px !important;
  padding:5px !important;
  box-sizing:border-box !important;
  filter:none !important;
}
.admin-sidebar .nav a .menu-symbol-icon{
  width:28px !important;
  height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  flex:0 0 28px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:currentColor !important;
  background:color-mix(in srgb,currentColor 10%,transparent) !important;
  border:1px solid color-mix(in srgb,currentColor 32%,transparent) !important;
  border-radius:8px !important;
  padding:5px !important;
  box-sizing:border-box !important;
  font-weight:950 !important;
  line-height:1 !important;
}
.admin-sidebar .nav a.active .menu-symbol-icon{
  color:currentColor !important;
  background:color-mix(in srgb,currentColor 18%,transparent) !important;
  border-color:color-mix(in srgb,currentColor 54%,transparent) !important;
}

.ai-chat-drawer .ai-chat-form{gap:8px;padding:12px}
.ai-chat-drawer .ai-chat-toolbar-row{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}
.ai-chat-drawer .ai-chat-voice-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;margin-bottom:0}
.ai-chat-drawer .ai-chat-controls{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}
.ai-chat-drawer .ai-chat-document-tool-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.ai-chat-drawer .ai-chat-attachment-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}

@media (max-width:540px){
  .ai-chat-drawer .ai-chat-form{gap:6px;padding:8px 10px 10px}
  .ai-chat-drawer .ai-chat-toolbar-row{overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:none}
  .ai-chat-drawer .ai-chat-toolbar-row::-webkit-scrollbar{display:none}
  .ai-chat-drawer .ai-chat-icon-btn{width:34px;height:34px;min-width:34px;border-radius:10px}
  .ai-chat-drawer .ai-chat-icon-btn svg{width:18px;height:18px}
  .ai-chat-drawer .ai-chat-controls{flex:0 0 auto;flex-wrap:nowrap;gap:6px}
  .ai-chat-drawer .ai-chat-control-field{flex:0 0 auto;min-width:0;gap:0}
  .ai-chat-drawer .ai-chat-control-field > span{display:none}
  .ai-chat-drawer .ai-chat-control-field select.form-input{width:108px;min-height:34px;height:34px;padding:5px 8px;font-size:.82rem;border-radius:10px}
  .ai-chat-drawer .ai-chat-document-tool-row{gap:5px;flex-wrap:wrap;align-items:stretch}
  .ai-chat-drawer .ai-chat-document-tool-row select.form-input{width:100%;min-width:0;flex:1 1 100%}
  .ai-chat-drawer .ai-chat-document-download{min-height:34px;padding:5px 8px;font-size:.78rem;flex:1 1 calc(50% - 5px);justify-content:center}
  .ai-chat-drawer .ai-chat-attachment-row{flex:0 0 auto;min-width:0;gap:6px}
  .ai-chat-drawer .ai-chat-attachment-name{font-size:.74rem;line-height:1.2;max-height:2.4em;overflow:hidden}
  .ai-chat-drawer .ai-chat-form textarea{min-height:68px;max-height:112px;padding:9px 10px;border-radius:12px}
}

/* Modulo ubicacion_gps */
.gps-page{
  max-width:none;
}

.gps-layout{
  display:grid;
  grid-template-columns:minmax(300px,32%) minmax(360px,68%);
  gap:12px;
  align-items:start;
}

.gps-panel,
.gps-map-panel{
  min-height:74vh;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.gps-panel-header h2,
.gps-map-header h2{
  margin:0;
  font-size:1rem;
}

.gps-mini-form{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.gps-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}

.gps-filter-row{
  display:flex;
  gap:8px;
  align-items:stretch;
}

.gps-device-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:48vh;
  overflow:auto;
  padding-right:2px;
}

.gps-device-item{
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,0.03);
  padding:9px;
}

.gps-device-item.selected{
  border-color:var(--accent);
  background:rgba(31,142,241,0.12);
}

.gps-device-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
}

.gps-device-meta{
  margin-top:4px;
  color:var(--muted);
  font-size:.84rem;
}

.gps-device-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
}

.gps-device-metrics span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  background:rgba(255,255,255,0.04);
  color:var(--text);
  font-size:.78rem;
}

.gps-device-actions{
  margin-top:8px;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.gps-state-badge{
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  font-size:.74rem;
  font-weight:700;
}

.gps-state-badge.active{
  background:rgba(36,136,91,0.2);
  color:#b8f5d4;
}

.gps-state-badge.inactive{
  background:rgba(239,83,80,0.2);
  color:#ffd2d0;
}

.gps-empty{
  color:var(--muted);
  font-size:.9rem;
}

.gps-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
}

.gps-toolbar-field{
  flex:1;
  min-width:230px;
}

.gps-toolbar-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.gps-help-row{
  margin-top:-2px;
}

.gps-map{
  width:100%;
  min-height:500px;
  border:1px solid var(--border);
  border-radius:10px;
  overflow:hidden;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip{
  background:var(--surface);
  color:var(--text);
}

@media (max-width:1180px){
  .gps-layout{
    grid-template-columns:1fr;
  }
  .gps-panel,
  .gps-map-panel{
    min-height:unset;
  }
}

@media (max-width:760px){
  .gps-filter-row,
  .gps-form-grid,
  .gps-toolbar,
  .gps-toolbar-actions{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .gps-map{
    min-height:420px;
  }
}

/* Modulo calculadora por empresa */
.calc-layout{
  display:grid;
  grid-template-columns:minmax(320px,420px) minmax(320px,1fr);
  gap:12px;
  align-items:start;
}

.calc-card{
  padding:12px;
}

.calc-display-wrap{
  border:1px solid var(--border);
  border-radius:12px;
  background:linear-gradient(180deg, rgba(14,33,53,0.82), rgba(11,24,39,0.88));
  padding:12px;
}

.calc-expression{
  min-height:22px;
  color:var(--muted);
  font-size:.9rem;
  text-align:right;
  word-break:break-all;
}

.calc-result{
  margin-top:6px;
  color:var(--text);
  font-size:1.9rem;
  font-weight:800;
  text-align:right;
  word-break:break-all;
}

.calc-keypad{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.calc-key{
  min-height:42px;
  border:1px solid var(--border);
  border-radius:10px;
  background:linear-gradient(180deg, rgba(29,50,75,0.9), rgba(19,34,53,0.92));
  color:var(--text);
  font-weight:700;
  cursor:pointer;
}

.calc-key:hover{
  filter:brightness(1.07);
}

.calc-key.operator{
  background:linear-gradient(180deg, rgba(31,142,241,0.9), rgba(20,102,176,0.95));
  color:#f5fbff;
}

.calc-key.util{
  background:linear-gradient(180deg, rgba(76,103,136,0.85), rgba(55,78,108,0.9));
}

.calc-key.mem{
  background:linear-gradient(180deg, rgba(14,139,139,0.86), rgba(11,111,111,0.9));
}

.calc-history-list{
  list-style:none;
  margin:0;
  padding:0;
  max-height:430px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.calc-history-empty{
  border:1px dashed var(--border);
  border-radius:10px;
  padding:10px;
  color:var(--muted);
}

.calc-history-item{
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  background:rgba(255,255,255,0.03);
}

.calc-history-expression{
  color:var(--muted);
  font-size:.9rem;
}

.calc-history-result{
  margin-top:4px;
  color:var(--text);
  font-size:1.04rem;
  font-weight:700;
}

.calc-history-meta{
  margin-top:4px;
  color:var(--muted);
  font-size:.78rem;
}

.calc-config-row{
  margin:10px 0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.calc-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:10px;
}

.calc-filter-row{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}

@media (max-width:980px){
  .calc-layout{
    grid-template-columns:1fr;
  }

  .calc-meta-grid{
    grid-template-columns:1fr;
  }

  .calc-filter-row{
    grid-template-columns:1fr;
  }
}

.backups-toolbar-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.backups-toolbar-grid-list{
  grid-template-columns:minmax(0, 2fr) minmax(0, 1fr);
  align-items:center;
}

.backups-filter-check{
  margin:0;
  display:flex;
  align-items:center;
  min-height:40px;
}

.backups-empty-cell{
  text-align:center;
  color:var(--muted);
}

.backups-actions-cell{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.backups-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.01em;
}
.backups-badge--on{
  background:rgba(14, 165, 164, 0.16);
  color:color-mix(in srgb, var(--accent-yellow-light) 40%, var(--text));
}
.backups-badge--off{
  background:rgba(239, 83, 80, 0.14);
  color:color-mix(in srgb, #ef5350 55%, var(--text));
}

.backups-summary-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.backups-kpi-card{
  min-height:90px;
}

.backups-detail-pre{
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px;
  max-height:420px;
  overflow:auto;
  background:rgba(16, 34, 56, 0.45);
  color:var(--text);
  font-size:0.86rem;
}

@media (max-width:980px){
  .backups-toolbar-grid,
  .backups-toolbar-grid-list,
  .backups-summary-grid{
    grid-template-columns:1fr;
  }
}

@media print {
  body { background: white !important; color: black !important; }
  button, nav, .menu, .header, .empresa-inline-actions { display: none !important; }
  .card { box-shadow: none !important; border: 1px solid #ccc !important; break-inside: avoid; }
  .table-wrap { overflow: visible !important; }
  table { break-inside: auto; width: 100% !important; border-collapse: collapse; }
  tr { break-inside: avoid; break-after: auto; }
  th, td { border: 1px solid #ddd; padding: 4px; }
  .reportes-globales-chart-grid { display: block !important; }
  .reportes-globales-chart-card { break-inside: avoid; margin-bottom: 20px; }
  h1, h2, h3, h4 { page-break-after: avoid; }
}


/* ---- Super: permisos por rol (pcs-pr-*) ---- */
.pcs-pr-app { max-width: 1180px; margin: 0 auto; padding: 0 0 2rem; }
.pcs-pr-hero { margin-bottom: 1.25rem; }
.pcs-pr-kicker { font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin: 0 0 0.35rem; }
.pcs-pr-hero h1 { margin: 0 0 0.5rem; font-size: 1.65rem; }
.pcs-pr-lead { color: var(--text); line-height: 1.5; max-width: 68ch; margin: 0; }
.pcs-pr-toolbar { margin-bottom: 0.75rem; padding: 1rem 1.1rem; }
.pcs-pr-toolbar-row { display: grid; grid-template-columns: 1.1fr 1.1fr 1.4fr; gap: 12px; align-items: end; }
@media (max-width: 900px) {
  .pcs-pr-toolbar-row { grid-template-columns: 1fr; }
}
.pcs-pr-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.pcs-pr-divider { display: inline-block; width: 1px; height: 24px; background: var(--border); margin: 0 4px; }
.pcs-pr-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 0.75rem 0 1.25rem; }
.pcs-pr-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0.4rem 0.7rem; border-radius: 999px; font-size: 0.86rem;
  background: color-mix(in srgb, var(--panel-elevated) 80%, var(--bg));
  border: 1px solid var(--border);
}
.pcs-pr-panel .pcs-pr-block h2 { margin: 0 0 0.25rem; font-size: 1.15rem; }
.pcs-pr-block { margin-bottom: 1.25rem; padding: 1.1rem 1.2rem; }
.pcs-pr-block-head { margin-bottom: 0.9rem; }
.pcs-pr-block-head p { margin: 0.35rem 0 0; }
.pcs-pr-mod-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 12px;
}
.pcs-pr-mod-card {
  border: 1px solid var(--border);
  border-radius: 10px; padding: 0.9rem 1rem;
  background: color-mix(in srgb, var(--bg) 92%, var(--panel-elevated));
}
.pcs-pr-mod-head { margin-bottom: 0.6rem; }
.pcs-pr-mod-title { margin: 0; font-size: 1.02rem; }
.pcs-pr-mod-key { margin: 0.2rem 0 0.5rem; font-size: 0.78rem; color: var(--muted); }
.pcs-pr-mod-bulk { display: flex; flex-wrap: wrap; gap: 6px; }
.pcs-pr-mod-bulk .btn { font-size: 0.8rem; padding: 0.3rem 0.5rem; }
.pcs-pr-ac-grid { display: flex; flex-direction: column; gap: 0.4rem; }
.pcs-pr-ac-label { display: flex; align-items: flex-start; gap: 0.4rem; cursor: pointer; font-size: 0.9rem; line-height: 1.3; }
.pcs-pr-ac-key {
  min-width: 1.1rem; font-size: 0.72rem; font-weight: 700; color: var(--muted);
}
.pcs-pr-ac-txt { color: var(--text); }
.pcs-pr-pages-wrap details.pcs-pr-group { border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; background: var(--card-bg, var(--bg)); }
.pcs-pr-group--empty { display: none; }
.pcs-pr-group-sum { font-weight: 600; padding: 0.65rem 0.9rem; cursor: pointer; list-style: none; }
.pcs-pr-group-sum::-webkit-details-marker { display: none; }
.pcs-pr-group .table-wrap { padding: 0 0.5rem 0.5rem; }
.pcs-pr-page-table { margin: 0; }
.pcs-pr-pag-row--hidden { display: none; }
.pcs-pr-td-title code { font-size: 0.75rem; color: var(--muted); }
.pcs-pr-td-sub { margin-top: 0.2rem; }
.pcs-pr-td-ck { text-align: center; width: 120px; }
.pcs-pr-badge { font-size: 0.7rem; padding: 0.1rem 0.35rem; border-radius: 4px; background: var(--border); color: var(--text); }
.pcs-pr-sticky-foot { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0.6rem 0; margin-top: 0.5rem; background: linear-gradient(180deg, transparent, var(--bg) 25%); }
.pcs-pr-aside { margin-top: 1.5rem; padding: 1rem 1.1rem; }
.pcs-pr-aside h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.pcs-pr-dots { margin: 0; padding-left: 1.2rem; line-height: 1.5; }
.pcs-pr-dots li { margin-bottom: 0.4rem; }
.pcs-pr-msg--err { color: #ef5350 !important; }
.pcs-pr-msg--ok { color: var(--success, #4caf50) !important; }
html.theme-light .pcs-pr-mod-card { background: #fff; }

/* Licencias: cobertura por módulos (línea con .lic-coverage-*) */
.lic-coverage { margin-top: 0.25rem; }
.lic-coverage-title { font-weight: 600; margin: 0 0 0.4rem; font-size: 0.95rem; }
.lic-coverage-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.lic-coverage-item {
  display: block; border: 1px solid var(--border); border-radius: 8px; padding: 0.55rem 0.6rem;
  background: color-mix(in srgb, var(--bg) 90%, var(--panel-elevated));
  cursor: pointer; transition: border-color 0.12s;
}
.lic-coverage-item:hover { border-color: var(--ring, #5c6bc0); }
.lic-coverage-item input { margin-right: 0.4rem; vertical-align: middle; }
.lic-coverage-h { display: block; font-weight: 600; font-size: 0.9rem; }
.lic-coverage-d { display: block; font-size: 0.75rem; color: var(--muted); margin-top: 0.2rem; line-height: 1.3; }
.lic-coverage-lead { font-size: 0.9rem; color: var(--text); line-height: 1.45; max-width: 70ch; }

/* Clases universales de estado segun variables globales para JS states */
.text-danger { color: var(--danger, #ef5350) !important; }
.text-success { color: var(--success, #4caf50) !important; }
.text-warning { color: rgb(var(--warning-rgb, 255, 152, 0)) !important; }

/* ROBOT/WIZARD AVATAR (Clippy Style) */
.ai-chat-toggle-button.is-robot-avatar {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}
.ai-chat-toggle-button.is-robot-avatar:hover {
  transform: translateY(-10px) scale(1.1) !important;
  box-shadow: none !important;
}
.ai-chat-toggle-button.is-robot-avatar .ai-chat-toggle-label,
.ai-chat-toggle-button.is-robot-avatar img.icon {
  display: none !important;
}

@keyframes floatRobot {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
#robotAvatarGraphic {
  animation: floatRobot 3s ease-in-out infinite;
  width: 95px;
  height: 95px;
  cursor: pointer;
  position: relative;
}

#robotHideBtn {
  position: fixed;
  bottom: 120px;
  right: 25px;
  z-index: 1660;
  border-radius: 20px;
  background: var(--surface);
  color: var(--text-muted);
  border: 1px solid var(--border);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 4px 12px;
  font-size: 0.8rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s;
}
#robotHideBtn:hover {
  background: var(--surface-soft);
  color: var(--text-strong);
}

#robotShowBtn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1660;
  border-radius: 20px;
  padding: 10px 20px;
  font-weight: 600;
  background: linear-gradient(135deg, #1f8ef1, #9d4edd);
  color: white;
  border: none;
  box-shadow: 0 4px 15px rgba(157, 78, 221, 0.4);
  cursor: pointer;
}

@keyframes blinkExec {
  0%, 96%, 100% { transform: scaleY(1); }
  98% { transform: scaleY(0.1); }
}
.exec-eye {
  transform-origin: center;
  animation: blinkExec 4s infinite;
}

@keyframes nodHeadExec {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  10% { transform: translateY(1.5px) rotate(2deg); }
  20% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(1.5px) rotate(-2deg); }
  40% { transform: translateY(0) rotate(0deg); }
}
.exec-head-group {
  color:var(--text);
  font-size:0.86rem;
}

@media (max-width:980px){
  .backups-toolbar-grid,
  .backups-toolbar-grid-list,
  .backups-summary-grid{
    grid-template-columns:1fr;
  }
}

@media print {
  body { background: white !important; color: black !important; }
  button, nav, .menu, .header, .empresa-inline-actions { display: none !important; }
  .card { box-shadow: none !important; border: 1px solid #ccc !important; break-inside: avoid; }
  .table-wrap { overflow: visible !important; }
  table { break-inside: auto; width: 100% !important; border-collapse: collapse; }
  tr { break-inside: avoid; break-after: auto; }
  th, td { border: 1px solid #ddd; padding: 4px; }
  .reportes-globales-chart-grid { display: block !important; }
  .reportes-globales-chart-card { break-inside: avoid; margin-bottom: 20px; }
  .reportes-globales-page .reportes-globales-controlbar,
  .reportes-globales-page .reportes-globales-selection-card,
  .reportes-globales-page #rgMsg { display: none !important; }
  .reportes-globales-page .reportes-globales-header h1 { color: #000 !important; font-size: 18px !important; }
  .reportes-globales-page .reportes-globales-executive-card,
  .reportes-globales-page .reportes-globales-chart-card,
  .reportes-globales-page .reportes-globales-brief { background: #fff !important; color: #000 !important; border-color: #bbb !important; }
  .reportes-globales-page .reportes-globales-bar-track,
  .reportes-globales-page .reportes-globales-compare-track { border: 1px solid #999 !important; background: #fff !important; }
  .reportes-globales-page .reportes-globales-bar-fill { background: #222 !important; }
  h1, h2, h3, h4 { page-break-after: avoid; }
}


/* ---- Super: permisos por rol (pcs-pr-*) ---- */
.pcs-pr-app { max-width: 1180px; margin: 0 auto; padding: 0 0 2rem; }
.pcs-pr-hero { margin-bottom: 1.25rem; }
.pcs-pr-kicker { font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin: 0 0 0.35rem; }
.pcs-pr-hero h1 { margin: 0 0 0.5rem; font-size: 1.65rem; }
.pcs-pr-lead { color: var(--text); line-height: 1.5; max-width: 68ch; margin: 0; }
.pcs-pr-toolbar { margin-bottom: 0.75rem; padding: 1rem 1.1rem; }
.pcs-pr-toolbar-row { display: grid; grid-template-columns: 1.1fr 1.1fr 1.4fr; gap: 12px; align-items: end; }
@media (max-width: 900px) {
  .pcs-pr-toolbar-row { grid-template-columns: 1fr; }
}
.pcs-pr-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.pcs-pr-divider { display: inline-block; width: 1px; height: 24px; background: var(--border); margin: 0 4px; }
.pcs-pr-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 0.75rem 0 1.25rem; }
.pcs-pr-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0.4rem 0.7rem; border-radius: 999px; font-size: 0.86rem;
  background: color-mix(in srgb, var(--panel-elevated) 80%, var(--bg));
  border: 1px solid var(--border);
}
.pcs-pr-panel .pcs-pr-block h2 { margin: 0 0 0.25rem; font-size: 1.15rem; }
.pcs-pr-block { margin-bottom: 1.25rem; padding: 1.1rem 1.2rem; }
.pcs-pr-block-head { margin-bottom: 0.9rem; }
.pcs-pr-block-head p { margin: 0.35rem 0 0; }
.pcs-pr-mod-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 12px;
}
.pcs-pr-mod-card {
  border: 1px solid var(--border);
  border-radius: 10px; padding: 0.9rem 1rem;
  background: color-mix(in srgb, var(--bg) 92%, var(--panel-elevated));
}
.pcs-pr-mod-head { margin-bottom: 0.6rem; }
.pcs-pr-mod-title { margin: 0; font-size: 1.02rem; }
.pcs-pr-mod-key { margin: 0.2rem 0 0.5rem; font-size: 0.78rem; color: var(--muted); }
.pcs-pr-mod-bulk { display: flex; flex-wrap: wrap; gap: 6px; }
.pcs-pr-mod-bulk .btn { font-size: 0.8rem; padding: 0.3rem 0.5rem; }
.pcs-pr-ac-grid { display: flex; flex-direction: column; gap: 0.4rem; }
.pcs-pr-ac-label { display: flex; align-items: flex-start; gap: 0.4rem; cursor: pointer; font-size: 0.9rem; line-height: 1.3; }
.pcs-pr-ac-key {
  min-width: 1.1rem; font-size: 0.72rem; font-weight: 700; color: var(--muted);
}
.pcs-pr-ac-txt { color: var(--text); }
.pcs-pr-pages-wrap details.pcs-pr-group { border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; background: var(--card-bg, var(--bg)); }
.pcs-pr-group--empty { display: none; }
.pcs-pr-group-sum { font-weight: 600; padding: 0.65rem 0.9rem; cursor: pointer; list-style: none; }
.pcs-pr-group-sum::-webkit-details-marker { display: none; }
.pcs-pr-group .table-wrap { padding: 0 0.5rem 0.5rem; }
.pcs-pr-page-table { margin: 0; }
.pcs-pr-pag-row--hidden { display: none; }
.pcs-pr-td-title code { font-size: 0.75rem; color: var(--muted); }
.pcs-pr-td-sub { margin-top: 0.2rem; }
.pcs-pr-td-sub--wrap { max-width: 42ch; white-space: normal; color: var(--muted); line-height: 1.35; }
.pcs-pr-td-ck { text-align: center; width: 120px; }
.pcs-pr-badge { font-size: 0.7rem; padding: 0.1rem 0.35rem; border-radius: 4px; background: var(--border); color: var(--text); }
.pcs-pr-sticky-foot { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0.6rem 0; margin-top: 0.5rem; background: linear-gradient(180deg, transparent, var(--bg) 25%); }
.pcs-pr-aside { margin-top: 1.5rem; padding: 1rem 1.1rem; }
.pcs-pr-aside h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.pcs-pr-dots { margin: 0; padding-left: 1.2rem; line-height: 1.5; }
.pcs-pr-dots li { margin-bottom: 0.4rem; }
.pcs-pr-msg--err { color: #ef5350 !important; }
.pcs-pr-msg--ok { color: var(--success, #4caf50) !important; }
html.theme-light .pcs-pr-mod-card { background: #fff; }

/* Licencias: cobertura por módulos (línea con .lic-coverage-*) */
.lic-coverage { margin-top: 0.25rem; }
.lic-coverage-title { font-weight: 600; margin: 0 0 0.4rem; font-size: 0.95rem; }
.lic-coverage-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.lic-coverage-item {
  display: block; border: 1px solid var(--border); border-radius: 8px; padding: 0.55rem 0.6rem;
  background: color-mix(in srgb, var(--bg) 90%, var(--panel-elevated));
  cursor: pointer; transition: border-color 0.12s;
}
.lic-coverage-item:hover { border-color: var(--ring, #5c6bc0); }
.lic-coverage-item input { margin-right: 0.4rem; vertical-align: middle; }
.lic-coverage-h { display: block; font-weight: 600; font-size: 0.9rem; }
.lic-coverage-d { display: block; font-size: 0.75rem; color: var(--muted); margin-top: 0.2rem; line-height: 1.3; }
.lic-coverage-lead { font-size: 0.9rem; color: var(--text); line-height: 1.45; max-width: 70ch; }

/* Licencias dentro de Seleccionar empresa: respetar apariencia clara/oscura */
.licencias-page .lic-history-toolbar,
.licencias-page .lic-history-card,
.licencias-page .lic-history-summary-card,
.licencias-page .lic-history-metrics div,
.licencias-page .lic-history-empty{
  background:linear-gradient(180deg, var(--surface-soft), var(--surface)) !important;
  border-color:var(--border) !important;
  color:var(--text) !important;
  box-shadow:0 12px 26px color-mix(in srgb, var(--text) 9%, transparent);
}
.licencias-page .lic-history-card--active{
  border-color:color-mix(in srgb, var(--success) 35%, var(--border)) !important;
}
.licencias-page .lic-history-card--expiring{
  border-color:color-mix(in srgb, var(--accent-yellow) 42%, var(--border)) !important;
}
.licencias-page .lic-history-card--expired{
  border-color:color-mix(in srgb, var(--danger) 38%, var(--border)) !important;
}
.licencias-page .lic-history-company,
.licencias-page .lic-history-card h3,
.licencias-page .lic-history-metrics strong,
.licencias-page .lic-history-summary-card strong{
  color:var(--text) !important;
}
.licencias-page .lic-history-type,
.licencias-page .lic-history-detail,
.licencias-page .lic-history-meta,
.licencias-page .lic-history-metrics span,
.licencias-page .lic-history-summary-card span,
.licencias-page .lic-history-empty{
  color:var(--muted) !important;
}

/* Ayuda: boton universal de regreso */
.help-back-bar{
  position:sticky;
  top:0;
  z-index:1200;
  display:flex;
  justify-content:flex-start;
  gap:8px;
  padding:8px max(10px, env(safe-area-inset-right, 0px)) 6px max(10px, env(safe-area-inset-left, 0px));
  background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 96%, transparent), color-mix(in srgb, var(--bg) 76%, transparent));
  border-bottom:1px solid color-mix(in srgb, var(--border) 78%, transparent);
  backdrop-filter:blur(10px);
}
.help-back-btn{
  min-height:36px;
  border-radius:8px;
  padding:0 14px;
}
@media (max-width:560px){
  .help-back-bar{
    padding:7px 10px;
  }
  .help-back-btn{
    width:100%;
    justify-content:center;
  }
}

/* Super: roles de usuario */
.pcs-roles-page{
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 28rem),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}
.pcs-roles-app{
  width:min(100%, 1220px);
  margin:0 auto;
  padding:22px 16px 34px;
  box-sizing:border-box;
}
.pcs-roles-hero{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:16px;
  align-items:end;
  margin-bottom:14px;
  border:1px solid var(--border);
  border-radius:8px;
  padding:16px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 88%, var(--accent) 12%), var(--surface));
  box-shadow:0 16px 34px color-mix(in srgb, var(--text) 10%, transparent);
}
.pcs-roles-hero h1{
  margin:0;
  color:var(--text);
  font-size:1.65rem;
  line-height:1.05;
  letter-spacing:0;
}
.pcs-roles-hero p{
  margin:8px 0 0;
  color:var(--muted);
  line-height:1.45;
  max-width:78ch;
}
.pcs-roles-kicker{
  margin:0 0 7px;
  color:var(--accent);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:0;
}
.pcs-roles-hero-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.pcs-roles-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin-bottom:12px;
}
.pcs-roles-kpi{
  min-width:0;
  border:1px solid var(--border);
  border-radius:8px;
  padding:12px;
  background:var(--surface);
  box-shadow:0 10px 24px color-mix(in srgb, var(--text) 8%, transparent);
}
.pcs-roles-kpi span{
  display:block;
  color:var(--muted);
  font-size:.76rem;
  font-weight:800;
  line-height:1.2;
}
.pcs-roles-kpi strong{
  display:block;
  margin-top:7px;
  color:var(--text);
  font-size:1.45rem;
  line-height:1;
}
.pcs-roles-toolbar{
  display:grid;
  grid-template-columns:minmax(230px, 1.3fr) minmax(180px, .85fr) minmax(150px, .65fr) auto;
  gap:10px;
  align-items:end;
  margin-bottom:12px;
  padding:12px;
  background:var(--surface);
  border-color:var(--border);
  border-radius:8px;
}
.pcs-roles-toolbar-actions{
  display:flex;
  align-items:end;
  justify-content:flex-end;
}
.pcs-roles-form{
  margin-bottom:12px;
  border-radius:8px;
  background:linear-gradient(180deg, var(--surface-soft), var(--surface));
  border:1px solid var(--border);
  box-shadow:0 14px 30px color-mix(in srgb, var(--text) 9%, transparent);
}
.pcs-roles-form-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.pcs-roles-form-head h2{
  margin:0;
  color:var(--text);
  font-size:1.1rem;
  letter-spacing:0;
}
.pcs-roles-badge,
.pcs-roles-status,
.pcs-roles-id{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:0 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface-soft);
  color:var(--text);
  font-size:.76rem;
  font-weight:900;
  white-space:nowrap;
}
.pcs-roles-list{
  display:grid;
  gap:10px;
  min-width:0;
}
.pcs-roles-card{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;
  min-width:0;
  border:1px solid var(--border);
  border-left-width:4px;
  border-radius:8px;
  padding:14px;
  background:var(--surface);
  box-shadow:0 12px 28px color-mix(in srgb, var(--text) 8%, transparent);
}
.pcs-roles-card.is-active{
  border-left-color:var(--success);
}
.pcs-roles-card.is-inactive{
  border-left-color:var(--danger);
  opacity:.82;
}
.pcs-roles-card-main{
  min-width:0;
}
.pcs-roles-card-top{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:8px;
}
.pcs-roles-card h2{
  margin:0;
  color:var(--text);
  font-size:1.15rem;
  line-height:1.18;
  letter-spacing:0;
}
.pcs-roles-type{
  margin:5px 0 0;
  color:var(--accent);
  font-weight:850;
  line-height:1.3;
}
.pcs-roles-desc{
  margin:7px 0 0;
  color:var(--muted);
  line-height:1.42;
}
.pcs-roles-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
  color:var(--muted);
  font-size:.78rem;
}
.pcs-roles-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
  max-width:360px;
}
.pcs-roles-empty{
  padding:18px;
  border:1px dashed var(--border);
  border-radius:8px;
  background:var(--surface);
  color:var(--muted);
  text-align:center;
}
.pcs-roles-msg--err{color:var(--danger) !important}
.pcs-roles-msg--ok{color:var(--success) !important}

/* Super: permisos por rol, robustez visual */
.pcs-pr-app{
  width:min(100%, 1220px);
}
.pcs-pr-hero,
.pcs-pr-toolbar,
.pcs-pr-block,
.pcs-pr-aside{
  border-radius:8px !important;
}
.pcs-pr-hero{
  padding:16px;
  border:1px solid var(--border);
  background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 90%, var(--accent) 10%), var(--surface));
  box-shadow:0 16px 34px color-mix(in srgb, var(--text) 10%, transparent);
}
.pcs-pr-hero h1{
  color:var(--text);
  letter-spacing:0;
}
.pcs-pr-toolbar,
.pcs-pr-block,
.pcs-pr-aside,
.pcs-pr-mod-card,
.pcs-pr-pages-wrap details.pcs-pr-group{
  background:var(--surface) !important;
  border-color:var(--border) !important;
  color:var(--text);
}
.pcs-pr-ac-label{
  min-height:34px;
  align-items:center;
  padding:6px 8px;
  border:1px solid color-mix(in srgb, var(--border) 70%, transparent);
  border-radius:8px;
  background:var(--surface-soft);
}
.pcs-pr-page-table th,
.pcs-pr-page-table td{
  vertical-align:middle;
}
.pcs-pr-sticky-foot{
  border-top:1px solid var(--border);
  background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 78%, transparent), var(--bg) 35%);
}

/* Super: roles y licencias */
.licencias-page .lic-admin-hero,
.licencias-page .lic-admin-kpi,
.licencias-page .lic-admin-toolbar,
.licencias-page .lic-admin-table-wrap,
.licencias-page .lic-form-shell,
.licencias-page .lic-admin-health-card,
.licencias-page .lic-risk-item,
.licencias-page .lic-coverage-item{
  border-radius:8px !important;
  background:var(--surface) !important;
  border-color:var(--border) !important;
  color:var(--text) !important;
}
.licencias-page .lic-admin-hero{
  background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 88%, var(--accent) 12%), var(--surface)) !important;
}
.licencias-page .lic-admin-hero h2,
.licencias-page .lic-admin-kpi strong,
.licencias-page .lic-admin-health-card strong,
.licencias-page .lic-plan-name,
.licencias-page .lic-coverage-h{
  color:var(--text) !important;
}
.licencias-page .lic-admin-hero p,
.licencias-page .lic-admin-kicker,
.licencias-page .lic-admin-kpi span,
.licencias-page .lic-admin-kpi small,
.licencias-page .lic-admin-health-card span,
.licencias-page .lic-plan-sub,
.licencias-page .lic-coverage-d,
.licencias-page .lic-coverage-lead{
  color:var(--muted) !important;
}

@media (max-width: 920px){
  .pcs-roles-hero,
  .pcs-roles-toolbar,
  .pcs-roles-card{
    grid-template-columns:1fr;
  }
  .pcs-roles-hero-actions,
  .pcs-roles-toolbar-actions,
  .pcs-roles-actions{
    justify-content:flex-start;
    max-width:none;
  }
  .pcs-roles-kpis{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px){
  .pcs-roles-app{
    padding:12px 10px 26px;
  }
  .pcs-roles-kpis{
    grid-template-columns:1fr;
  }
  .pcs-roles-hero,
  .pcs-roles-toolbar,
  .pcs-roles-form,
  .pcs-roles-card{
    padding:12px;
  }
  .pcs-roles-hero h1{
    font-size:1.35rem;
  }
  .pcs-roles-actions .btn,
  .pcs-roles-hero-actions .btn,
  .pcs-roles-toolbar-actions .btn{
    width:100%;
    justify-content:center;
  }
  .pcs-pr-mod-grid{
    grid-template-columns:1fr !important;
  }
  .pcs-pr-toolbar-actions .btn,
  .pcs-pr-sticky-foot .btn{
    width:100%;
    justify-content:center;
  }
  .pcs-pr-sticky-foot{
    display:grid;
    grid-template-columns:1fr;
  }
}

/* Clases universales de estado segun variables globales para JS states */
.text-danger { color: var(--danger, #ef5350) !important; }
.text-success { color: var(--success, #4caf50) !important; }
.text-warning { color: rgb(var(--warning-rgb, 255, 152, 0)) !important; }

/* ROBOT/WIZARD AVATAR (Clippy Style) */
.ai-chat-toggle-button.is-robot-avatar {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}
.ai-chat-toggle-button.is-robot-avatar:hover {
  transform: translateY(-10px) scale(1.1) !important;
  box-shadow: none !important;
}
.ai-chat-toggle-button.is-robot-avatar .ai-chat-toggle-label,
.ai-chat-toggle-button.is-robot-avatar img.icon {
  display: none !important;
}

@keyframes floatRobot {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
#robotAvatarGraphic {
  animation: floatRobot 3s ease-in-out infinite;
  width: 95px;
  height: 95px;
  cursor: pointer;
  position: relative;
}

#robotHideBtn {
  position: fixed;
  bottom: 120px;
  right: 25px;
  z-index: 1660;
  border-radius: 20px;
  background: var(--surface);
  color: var(--text-muted);
  border: 1px solid var(--border);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 4px 12px;
  font-size: 0.8rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s;
}
#robotHideBtn:hover {
  background: var(--surface-soft);
  color: var(--text-strong);
}

#robotShowBtn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1660;
  border-radius: 20px;
  padding: 10px 20px;
  font-weight: 600;
  background: linear-gradient(135deg, #1f8ef1, #9d4edd);
  color: white;
  border: none;
  box-shadow: 0 4px 15px rgba(157, 78, 221, 0.4);
  cursor: pointer;
}

@keyframes blinkExec {
  0%, 96%, 100% { transform: scaleY(1); }
  98% { transform: scaleY(0.1); }
}
.exec-eye {
  transform-origin: center;
  animation: blinkExec 4s infinite;
}

@keyframes nodHeadExec {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  10% { transform: translateY(1.5px) rotate(2deg); }
  20% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(1.5px) rotate(-2deg); }
  40% { transform: translateY(0) rotate(0deg); }
}
.exec-head-group {
  transform-origin: 50px 70px;
  animation: nodHeadExec 5s ease-in-out infinite;
}

@keyframes speakExec {
  0%, 100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.4) translateY(1px); }
}
.exec-mouth {
  transform-origin: 50px 55px;
  animation: speakExec 0.3s infinite;
  animation-play-state: paused;
}
.is-robot-avatar:hover .exec-mouth {
  animation-play-state: running;
}

@keyframes sparklePopExec {
  0% { transform: scale(0) rotate(0deg); opacity: 0; }
  30% { transform: scale(1.5) rotate(45deg); opacity: 1; }
  100% { transform: scale(0) rotate(90deg); opacity: 0; }
}
.exec-sparkles {
  transform-origin: center;
  opacity: 0;
}
.exec-appear .exec-sparkles {
  animation: sparklePopExec 1.5s ease-out forwards;
}

/* Chat flotante: robot con conversacion inline */
.ai-chat-toggle-button.is-robot-avatar {
  width: 116px !important;
  height: 136px !important;
  right: 24px !important;
  bottom: 24px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  overflow: visible !important;
  z-index: 1670 !important;
}

.ai-chat-toggle-button.is-robot-avatar.is-drawer-open {
  display: none !important;
}

.ai-chat-toggle-button.is-robot-avatar:hover {
  transform: translateY(-5px) !important;
}

.ai-chat-toggle-button.is-robot-avatar:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.45);
  outline-offset: 6px;
  border-radius: 18px !important;
}

.ai-chat-toggle-button.is-robot-avatar .ai-chat-toggle-label,
.ai-chat-toggle-button.is-robot-avatar img.icon {
  display: none !important;
}

#robotAvatarGraphic {
  width: 116px !important;
  height: 136px !important;
  animation: robotFloat 3.8s ease-in-out infinite !important;
  filter: drop-shadow(0 18px 22px rgba(15, 23, 42, 0.28));
}

#robotAvatarGraphic svg {
  width: 100%;
  height: 100%;
  display: block;
}

.robot-3d-avatar {
  width: 116px !important;
  height: 136px !important;
  perspective: 760px;
  transform-style: preserve-3d;
  animation: robot3dFloat 4.2s ease-in-out infinite !important;
  filter: drop-shadow(0 20px 22px rgba(15, 23, 42, 0.28));
}

.robot-3d-stage,
.robot-3d-stage * {
  box-sizing: border-box;
}

.robot-3d-stage {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transform: rotateX(7deg) rotateY(-10deg);
  transition: transform 260ms ease, filter 260ms ease;
}

.robot-3d-shadow {
  position: absolute;
  left: 24px;
  right: 18px;
  bottom: 1px;
  height: 16px;
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(15, 23, 42, 0.24), rgba(15, 23, 42, 0));
  transform: translateZ(-34px) rotateX(80deg);
}

.robot-3d-head,
.robot-3d-body,
.robot-3d-ear,
.robot-3d-arm,
.robot-3d-leg,
.robot-3d-antenna span {
  position: absolute;
  border: 1px solid rgba(82, 99, 122, 0.36);
  box-shadow:
    inset 9px 11px 16px rgba(255, 255, 255, 0.78),
    inset -12px -14px 18px rgba(30, 41, 59, 0.16),
    0 12px 22px rgba(15, 23, 42, 0.18);
}

.robot-3d-head {
  left: 24px;
  top: 22px;
  width: 70px;
  height: 58px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(190, 204, 223, 0.96) 62%, rgba(117, 139, 166, 0.92));
  transform: translateZ(28px);
}

.robot-3d-head::before {
  content: "";
  position: absolute;
  inset: 5px 7px auto auto;
  width: 23px;
  height: 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.58);
  transform: rotate(-18deg);
}

.robot-3d-face {
  position: absolute;
  left: 12px;
  top: 15px;
  width: 46px;
  height: 29px;
  border-radius: 13px;
  background:
    radial-gradient(circle at 18% 22%, rgba(125, 245, 200, 0.22), transparent 28%),
    linear-gradient(145deg, #0c1724, #172236);
  box-shadow: inset 0 0 16px rgba(14, 165, 233, 0.22), 0 4px 8px rgba(15, 23, 42, 0.16);
  transform: translateZ(10px);
}

.robot-3d-eye {
  position: absolute;
  top: 10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8df7c7;
  box-shadow: 0 0 10px rgba(141, 247, 199, 0.95);
  transform-origin: center;
  animation: robot3dBlink 5s ease-in-out infinite;
}

.robot-3d-eye-left { left: 11px; }
.robot-3d-eye-right { right: 11px; }

.robot-3d-mouth {
  position: absolute;
  left: 16px;
  bottom: 6px;
  width: 14px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #38bdf8, #22c55e);
  box-shadow: 0 0 8px rgba(56, 189, 248, 0.65);
  transform-origin: center;
}

.robot-3d-ear {
  top: 18px;
  width: 13px;
  height: 24px;
  border-radius: 10px;
  background: linear-gradient(135deg, #d8e2ef, #899bb3);
}

.robot-3d-ear-left {
  left: -10px;
  transform: translateZ(-3px) rotateY(-18deg);
}

.robot-3d-ear-right {
  right: -10px;
  transform: translateZ(-3px) rotateY(18deg);
}

.robot-3d-antenna {
  position: absolute;
  left: 55px;
  top: 4px;
  width: 8px;
  height: 24px;
  border-radius: 999px;
  background: #52637a;
  transform: translateZ(20px);
}

.robot-3d-antenna span {
  left: -5px;
  top: -10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, #ffffff 0 14%, transparent 16%),
    linear-gradient(135deg, #22c55e, #0ea5e9);
  animation: robot3dPulse 2.2s ease-in-out infinite;
}

.robot-3d-body {
  left: 32px;
  top: 78px;
  width: 54px;
  height: 44px;
  border-radius: 18px 18px 15px 15px;
  background:
    linear-gradient(140deg, rgba(255, 255, 255, 0.95), rgba(190, 204, 223, 0.98) 62%, rgba(117, 139, 166, 0.9));
  transform: translateZ(14px);
}

.robot-3d-core {
  position: absolute;
  left: 19px;
  top: 9px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #fff 0 14%, #38bdf8 18%, #0f766e 100%);
  box-shadow: 0 0 16px rgba(14, 165, 233, 0.55);
}

.robot-3d-light {
  position: absolute;
  bottom: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f59e0b;
  opacity: 0.85;
}

.robot-3d-light-a { left: 15px; background: #0ea5e9; }
.robot-3d-light-b { left: 25px; background: #22c55e; }
.robot-3d-light-c { left: 35px; background: #f59e0b; }

.robot-3d-arm {
  top: 84px;
  width: 13px;
  height: 36px;
  border-radius: 999px;
  background: linear-gradient(145deg, #d8e2ef, #7f91aa);
  transform-origin: 50% 8px;
}

.robot-3d-arm-left {
  left: 17px;
  transform: translateZ(2px) rotate(15deg);
}

.robot-3d-arm-right {
  right: 17px;
  transform: translateZ(2px) rotate(-16deg);
}

.robot-3d-leg {
  bottom: 4px;
  width: 14px;
  height: 22px;
  border-radius: 999px 999px 7px 7px;
  background: linear-gradient(145deg, #d8e2ef, #7f91aa);
}

.robot-3d-leg-left {
  left: 40px;
  transform: translateZ(2px) rotate(4deg);
}

.robot-3d-leg-right {
  right: 38px;
  transform: translateZ(2px) rotate(-4deg);
}

.robot-3d-signal {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.8);
  opacity: 0;
  transform: translateZ(34px) scale(0.4);
}

.robot-3d-signal-a { left: 18px; top: 17px; }
.robot-3d-signal-b { right: 13px; top: 35px; background: #f59e0b; }

.robot-mood-listening .robot-3d-stage {
  animation: robot3dLeanIn 1.1s ease-in-out infinite;
}

.robot-mood-listening .robot-3d-ear {
  animation: robot3dEarListen 0.85s ease-in-out infinite;
}

.robot-mood-thinking .robot-3d-stage {
  animation: robot3dThink 1.35s ease-in-out infinite;
}

.robot-mood-thinking .robot-3d-signal {
  animation: robot3dSignal 1.15s ease-in-out infinite;
}

.robot-mood-thinking .robot-3d-signal-b {
  animation-delay: 0.22s;
}

.robot-mood-speaking .robot-3d-mouth {
  animation: robot3dTalk 0.24s ease-in-out infinite;
}

.robot-mood-speaking .robot-3d-core,
.robot-mood-action .robot-3d-core {
  animation: robot3dCoreTalk 0.72s ease-in-out infinite;
}

.robot-mood-happy .robot-3d-stage {
  animation: robot3dHappy 0.72s ease-in-out 2;
}

.robot-mood-happy .robot-3d-eye {
  height: 5px;
  border-radius: 999px;
}

.robot-mood-error .robot-3d-stage {
  animation: robot3dError 0.18s linear 4;
  filter: saturate(1.15);
}

.robot-mood-error .robot-3d-face {
  box-shadow: inset 0 0 16px rgba(239, 68, 68, 0.38), 0 4px 8px rgba(15, 23, 42, 0.16);
}

.robot-mood-error .robot-3d-eye,
.robot-mood-error .robot-3d-mouth {
  background: #fb7185;
  box-shadow: 0 0 10px rgba(251, 113, 133, 0.82);
}

.robot-mood-action .robot-3d-arm-right {
  animation: robot3dWave 0.72s ease-in-out infinite;
}

.robot-mood-action .robot-3d-light {
  animation: robot3dPulse 0.72s ease-in-out infinite;
}

.robot-3d-avatar.robot-mood-hidden,
#robotAvatarGraphic.robot-mood-hidden,
.robot-mood-hidden .robot-3d-avatar {
  animation-play-state: paused;
}

.robot-eye {
  animation: robotBlink 4.8s ease-in-out infinite;
  transform-origin: center;
}

.robot-mouth {
  animation: robotTalk 1.1s ease-in-out infinite;
  transform-origin: center;
}

.robot-antenna-dot {
  animation: robotPulse 2.2s ease-in-out infinite;
}

.robot-appear #robotAvatarGraphic {
  animation: robotPop 0.42s ease-out, robotFloat 3.8s ease-in-out 0.42s infinite !important;
}

.secretary-3d-avatar {
  width: 116px !important;
  height: 136px !important;
  perspective: 760px;
  transform-style: preserve-3d;
  animation: robot3dFloat 4.2s ease-in-out infinite !important;
  filter: drop-shadow(0 20px 22px rgba(88, 28, 135, 0.24));
}

.secretary-3d-stage,
.secretary-3d-stage * {
  box-sizing: border-box;
}

.secretary-3d-stage {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transform: rotateX(6deg) rotateY(-8deg);
  transition: transform 260ms ease, filter 260ms ease;
}

.secretary-3d-shadow {
  position: absolute;
  left: 25px;
  right: 19px;
  bottom: 0;
  height: 16px;
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(88, 28, 135, 0.24), rgba(88, 28, 135, 0));
  transform: translateZ(-34px) rotateX(80deg);
}

.secretary-3d-head,
.secretary-3d-body,
.secretary-3d-arm,
.secretary-3d-leg,
.secretary-3d-tablet,
.secretary-3d-note {
  position: absolute;
  box-shadow:
    inset 9px 11px 16px rgba(255, 255, 255, 0.66),
    inset -12px -14px 18px rgba(30, 41, 59, 0.16),
    0 12px 22px rgba(15, 23, 42, 0.16);
}

.secretary-3d-head {
  left: 25px;
  top: 22px;
  width: 66px;
  height: 60px;
  border-radius: 24px 24px 28px 28px;
  background: linear-gradient(145deg, #ffd8c2, #f3a98f);
  border: 1px solid rgba(120, 53, 15, 0.22);
  z-index: 3;
}

.secretary-3d-hair-back {
  position: absolute;
  left: 18px;
  top: 15px;
  width: 78px;
  height: 78px;
  border-radius: 28px 28px 32px 32px;
  background: linear-gradient(145deg, #4c1d95, #22103f);
  box-shadow: 0 12px 22px rgba(49, 18, 86, 0.24);
  z-index: 1;
}

.secretary-3d-bang-a,
.secretary-3d-bang-b {
  position: absolute;
  top: -5px;
  height: 28px;
  background: linear-gradient(145deg, #6d28d9, #2e1065);
  z-index: 4;
}

.secretary-3d-bang-a {
  left: 5px;
  width: 36px;
  border-radius: 24px 8px 26px 10px;
  transform: rotate(-13deg);
}

.secretary-3d-bang-b {
  right: 5px;
  width: 32px;
  border-radius: 8px 24px 10px 26px;
  transform: rotate(15deg);
}

.secretary-3d-face {
  position: absolute;
  inset: 16px 11px 9px;
}

.secretary-3d-eye {
  position: absolute;
  top: 8px;
  width: 7px;
  height: 9px;
  border-radius: 50%;
  background: #111827;
  box-shadow: 0 0 7px rgba(17, 24, 39, 0.18);
  animation: blinkExec 4.4s infinite;
}

.secretary-3d-eye-left { left: 10px; }
.secretary-3d-eye-right { right: 10px; }

.secretary-3d-mouth {
  position: absolute;
  left: 19px;
  bottom: 4px;
  width: 16px;
  height: 5px;
  border-radius: 0 0 999px 999px;
  border-bottom: 3px solid #9f1239;
}

.secretary-3d-body {
  left: 30px;
  top: 78px;
  width: 58px;
  height: 45px;
  border-radius: 20px 20px 16px 16px;
  background: linear-gradient(145deg, #7c3aed, #4338ca);
  border: 1px solid rgba(67, 56, 202, 0.28);
  z-index: 2;
}

.secretary-3d-shirt {
  position: absolute;
  left: 21px;
  top: 4px;
  width: 17px;
  height: 32px;
  border-radius: 0 0 12px 12px;
  background: #fff7ed;
  clip-path: polygon(0 0, 100% 0, 76% 100%, 24% 100%);
}

.secretary-3d-badge {
  position: absolute;
  right: 9px;
  top: 12px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #facc15;
  box-shadow: 0 0 10px rgba(250, 204, 21, 0.58);
}

.secretary-3d-arm {
  top: 86px;
  width: 12px;
  height: 35px;
  border-radius: 999px;
  background: linear-gradient(145deg, #ffd8c2, #eaa083);
  border: 1px solid rgba(120, 53, 15, 0.18);
  z-index: 1;
}

.secretary-3d-arm-left { left: 18px; transform: rotate(17deg); }
.secretary-3d-arm-right { right: 18px; transform: rotate(-23deg); z-index: 4; }

.secretary-3d-tablet {
  right: 11px;
  top: 96px;
  width: 27px;
  height: 36px;
  border-radius: 7px;
  background: linear-gradient(145deg, #111827, #334155);
  border: 2px solid #94a3b8;
  z-index: 5;
}

.secretary-3d-tablet::after {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: #38bdf8;
}

.secretary-3d-leg {
  bottom: 5px;
  width: 13px;
  height: 23px;
  border-radius: 999px 999px 7px 7px;
  background: linear-gradient(145deg, #312e81, #111827);
  z-index: 1;
}

.secretary-3d-leg-left { left: 39px; transform: rotate(5deg); }
.secretary-3d-leg-right { right: 38px; transform: rotate(-5deg); }

.secretary-3d-note {
  width: 15px;
  height: 18px;
  border-radius: 4px;
  background: #fef3c7;
  border: 1px solid rgba(180, 83, 9, 0.28);
  opacity: 0.9;
}

.secretary-3d-note-a { left: 12px; top: 22px; transform: rotate(-12deg); }
.secretary-3d-note-b { right: 10px; top: 40px; transform: rotate(14deg); }

.robot-mood-listening .secretary-3d-stage { animation: robot3dLeanIn 1.1s ease-in-out infinite; }
.robot-mood-thinking .secretary-3d-stage { animation: robot3dThink 1.35s ease-in-out infinite; }
.robot-mood-thinking .secretary-3d-note { animation: robot3dSignal 1.15s ease-in-out infinite; }
.robot-mood-speaking .secretary-3d-mouth { animation: speakExec 0.24s ease-in-out infinite; }
.robot-mood-speaking .secretary-3d-tablet,
.robot-mood-action .secretary-3d-tablet { box-shadow: 0 0 18px rgba(56, 189, 248, 0.55), inset 0 0 10px rgba(56, 189, 248, 0.22); }
.robot-mood-happy .secretary-3d-stage { animation: robot3dHappy 0.72s ease-in-out 2; }
.robot-mood-error .secretary-3d-stage { animation: robot3dError 0.18s linear 4; filter: saturate(1.18); }
.robot-mood-action .secretary-3d-arm-right { animation: robot3dWave 0.72s ease-in-out infinite; }

.secretary-3d-avatar {
  filter: drop-shadow(0 22px 24px rgba(14, 116, 144, 0.2));
}

.secretary-3d-stage {
  transform: rotateX(6deg) rotateY(-6deg);
}

.secretary-3d-head {
  left: 24px;
  top: 18px;
  width: 69px;
  height: 62px;
  border-radius: 30px 30px 32px 32px;
  background: linear-gradient(145deg, #ffe1ca 0%, #f8b89f 58%, #ee967f 100%);
  border: 2px solid rgba(163, 88, 57, 0.22);
  box-shadow:
    inset 10px 12px 17px rgba(255, 255, 255, 0.68),
    inset -10px -14px 18px rgba(148, 62, 40, 0.16),
    0 13px 22px rgba(15, 23, 42, 0.14);
}

.secretary-3d-hair-back {
  left: 15px;
  top: 8px;
  width: 86px;
  height: 86px;
  border-radius: 34px 34px 42px 42px;
  background:
    radial-gradient(circle at 74% 18%, rgba(255, 236, 179, 0.36), transparent 19%),
    linear-gradient(145deg, #7c3f1d 0%, #3a1f16 62%, #1f120e 100%);
  box-shadow: 0 14px 24px rgba(88, 45, 24, 0.24);
}

.secretary-3d-bang-a,
.secretary-3d-bang-b {
  top: -8px;
  height: 32px;
  background: linear-gradient(145deg, #9a5a2c 0%, #4b2819 68%, #24120d 100%);
}

.secretary-3d-bang-a {
  left: 2px;
  width: 44px;
  border-radius: 28px 10px 28px 12px;
  transform: rotate(-11deg);
}

.secretary-3d-bang-b {
  right: 2px;
  width: 38px;
  border-radius: 10px 28px 12px 30px;
  transform: rotate(13deg);
}

.secretary-3d-face {
  inset: 15px 10px 8px;
}

.secretary-3d-eye {
  top: 8px;
  width: 9px;
  height: 12px;
  background:
    radial-gradient(circle at 35% 30%, #fff 0 18%, transparent 19%),
    linear-gradient(145deg, #1f2937, #020617);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.28), 0 2px 7px rgba(17, 24, 39, 0.24);
}

.secretary-3d-eye-left { left: 9px; }
.secretary-3d-eye-right { right: 9px; }

.secretary-3d-lash,
.secretary-3d-cheek,
.secretary-3d-ear,
.secretary-3d-neck,
.secretary-3d-lapel,
.secretary-3d-scarf,
.secretary-3d-skirt,
.secretary-3d-shoe,
.secretary-3d-spark {
  position: absolute;
}

.secretary-3d-lash {
  top: 7px;
  width: 15px;
  height: 7px;
  border-top: 2px solid #1f2937;
  border-radius: 50%;
  opacity: 0.82;
}

.secretary-3d-lash-left { left: 5px; transform: rotate(10deg); }
.secretary-3d-lash-right { right: 5px; transform: rotate(-10deg); }

.secretary-3d-cheek {
  top: 25px;
  width: 11px;
  height: 7px;
  border-radius: 50%;
  background: rgba(244, 114, 182, 0.34);
  filter: blur(0.2px);
}

.secretary-3d-cheek-left { left: 5px; }
.secretary-3d-cheek-right { right: 5px; }

.secretary-3d-mouth {
  left: 22px;
  bottom: 5px;
  width: 15px;
  height: 8px;
  border-radius: 0 0 999px 999px;
  border-bottom: 3px solid #be123c;
  background: rgba(255, 228, 230, 0.72);
}

.secretary-3d-ear {
  top: 31px;
  width: 9px;
  height: 14px;
  border-radius: 50%;
  background: #f3a98f;
  z-index: 2;
}

.secretary-3d-ear-left { left: 19px; }
.secretary-3d-ear-right { right: 18px; }

.secretary-3d-ear::after {
  content: "";
  position: absolute;
  left: 3px;
  bottom: -3px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 8px rgba(56, 189, 248, 0.55);
}

.secretary-3d-neck {
  left: 50px;
  top: 72px;
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: linear-gradient(145deg, #f7bda3, #e9977e);
  z-index: 1;
}

.secretary-3d-body {
  left: 26px;
  top: 82px;
  width: 66px;
  height: 43px;
  border-radius: 22px 22px 14px 14px;
  background: linear-gradient(145deg, #0f766e 0%, #155e75 54%, #1e3a8a 100%);
  border: 2px solid rgba(15, 118, 110, 0.25);
}

.secretary-3d-shirt {
  left: 22px;
  top: 3px;
  width: 22px;
  height: 34px;
  border-radius: 0 0 13px 13px;
  background: linear-gradient(180deg, #ffffff, #ecfeff);
  clip-path: polygon(0 0, 100% 0, 76% 100%, 24% 100%);
}

.secretary-3d-lapel {
  top: 5px;
  width: 20px;
  height: 28px;
  background: rgba(8, 47, 73, 0.34);
  z-index: 3;
}

.secretary-3d-lapel-left {
  left: 11px;
  clip-path: polygon(0 0, 100% 0, 68% 100%, 20% 50%);
}

.secretary-3d-lapel-right {
  right: 11px;
  clip-path: polygon(0 0, 100% 0, 80% 50%, 32% 100%);
}

.secretary-3d-scarf {
  left: 29px;
  top: 7px;
  width: 9px;
  height: 27px;
  border-radius: 999px;
  background: linear-gradient(180deg, #f97316, #facc15);
  z-index: 4;
}

.secretary-3d-badge {
  right: 8px;
  top: 11px;
  width: 11px;
  height: 11px;
  background: #facc15;
}

.secretary-3d-arm {
  top: 88px;
  width: 12px;
  height: 36px;
  background: linear-gradient(145deg, #ffe1ca, #e99a80);
}

.secretary-3d-arm-left { left: 16px; transform: rotate(18deg); }
.secretary-3d-arm-right { right: 15px; transform: rotate(-30deg); }

.secretary-3d-tablet {
  right: 6px;
  top: 96px;
  width: 27px;
  height: 36px;
  border-radius: 8px;
  background: linear-gradient(145deg, #020617, #164e63);
  border: 2px solid #67e8f9;
}

.secretary-3d-skirt {
  left: 36px;
  top: 119px;
  width: 46px;
  height: 20px;
  border-radius: 0 0 18px 18px;
  background: linear-gradient(145deg, #164e63, #0f172a);
  clip-path: polygon(13% 0, 87% 0, 100% 100%, 0 100%);
  z-index: 1;
}

.secretary-3d-leg {
  bottom: 3px;
  width: 11px;
  height: 24px;
  background: linear-gradient(145deg, #f4b59b, #d87b65);
}

.secretary-3d-leg-left { left: 42px; transform: rotate(3deg); }
.secretary-3d-leg-right { right: 41px; transform: rotate(-3deg); }

.secretary-3d-shoe {
  bottom: 0;
  width: 17px;
  height: 7px;
  border-radius: 999px 999px 5px 5px;
  background: #0f172a;
  z-index: 3;
}

.secretary-3d-shoe-left { left: 36px; }
.secretary-3d-shoe-right { right: 34px; }

.secretary-3d-spark {
  width: 14px;
  height: 14px;
  background: #fde68a;
  clip-path: polygon(50% 0, 63% 36%, 100% 50%, 63% 64%, 50% 100%, 37% 64%, 0 50%, 37% 36%);
  filter: drop-shadow(0 0 9px rgba(250, 204, 21, 0.55));
  opacity: 0.95;
}

.secretary-3d-spark-a { left: 8px; top: 24px; transform: rotate(-12deg); }
.secretary-3d-spark-b { right: 7px; top: 43px; transform: rotate(18deg); }

.robot-mood-thinking .secretary-3d-spark { animation: robot3dSignal 1.15s ease-in-out infinite; }
.robot-mood-speaking .secretary-3d-mouth { animation: speakExec 0.2s ease-in-out infinite; }
.robot-mood-speaking .secretary-3d-scarf,
.robot-mood-action .secretary-3d-scarf { filter: drop-shadow(0 0 9px rgba(250, 204, 21, 0.68)); }

/* Secretaria 3D: estilo ejecutivo profesional */
.secretary-3d-avatar {
  width: 118px !important;
  height: 138px !important;
  filter: drop-shadow(0 22px 26px rgba(2, 6, 23, 0.26));
}

.secretary-3d-stage {
  transform: rotateX(5deg) rotateY(-5deg);
}

.secretary-3d-shadow {
  left: 24px;
  right: 20px;
  bottom: 1px;
  height: 14px;
  background: radial-gradient(ellipse at center, rgba(2, 6, 23, 0.28), rgba(2, 6, 23, 0));
}

.secretary-3d-spark {
  display: none;
}

.secretary-3d-side-light,
.secretary-3d-hair-side,
.secretary-3d-nameplate,
.secretary-3d-button {
  position: absolute;
}

.secretary-3d-side-light {
  width: 10px;
  height: 28px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(14, 165, 233, 0.55), rgba(14, 165, 233, 0));
  opacity: 0.55;
  z-index: 0;
}

.secretary-3d-side-light-a {
  left: 7px;
  top: 34px;
  transform: rotate(-12deg);
}

.secretary-3d-side-light-b {
  right: 8px;
  top: 52px;
  transform: rotate(12deg);
}

.secretary-3d-head {
  left: 27px;
  top: 18px;
  width: 62px;
  height: 60px;
  border: 1px solid rgba(92, 45, 32, 0.24);
  border-radius: 26px 26px 28px 28px;
  background: linear-gradient(145deg, #f0c0a6, #d99178);
  box-shadow: inset 8px 10px 14px rgba(255, 255, 255, 0.46), inset -10px -12px 16px rgba(82, 36, 27, 0.18), 0 12px 22px rgba(15, 23, 42, 0.16);
}

.secretary-3d-hair-back {
  left: 20px;
  top: 9px;
  width: 76px;
  height: 82px;
  border-radius: 30px 30px 34px 34px;
  background: linear-gradient(145deg, #2b211c 0%, #17110f 70%, #0f0b0a 100%);
  box-shadow: 0 14px 22px rgba(15, 23, 42, 0.22);
}

.secretary-3d-hair-side {
  top: 29px;
  width: 15px;
  height: 50px;
  border-radius: 999px 999px 12px 12px;
  background: linear-gradient(180deg, #2a201b, #0f0b0a);
  z-index: 2;
}

.secretary-3d-hair-side-left {
  left: 19px;
  transform: rotate(7deg);
}

.secretary-3d-hair-side-right {
  right: 18px;
  transform: rotate(-7deg);
}

.secretary-3d-bang-a,
.secretary-3d-bang-b {
  top: -6px;
  height: 23px;
  background: linear-gradient(145deg, #35251d, #130e0c);
}

.secretary-3d-bang-a {
  left: 4px;
  width: 35px;
  border-radius: 24px 10px 22px 8px;
  transform: rotate(-8deg);
}

.secretary-3d-bang-b {
  right: 4px;
  width: 30px;
  border-radius: 8px 22px 8px 22px;
  transform: rotate(10deg);
}

.secretary-3d-face {
  inset: 16px 10px 8px;
}

.secretary-3d-eye {
  top: 9px;
  width: 7px;
  height: 8px;
  background: #111827;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.24);
}

.secretary-3d-eye-left {
  left: 10px;
}

.secretary-3d-eye-right {
  right: 10px;
}

.secretary-3d-lash {
  display: none;
}

.secretary-3d-cheek {
  width: 8px;
  height: 4px;
  background: #9f1239;
  opacity: 0.12;
}

.secretary-3d-mouth {
  left: 21px;
  bottom: 6px;
  width: 14px;
  height: 5px;
  border-bottom: 2px solid #7f1d1d;
  background: transparent;
}

.secretary-3d-ear {
  top: 32px;
  width: 7px;
  height: 12px;
  background: #d99178;
}

.secretary-3d-ear-left {
  left: 24px;
}

.secretary-3d-ear-right {
  right: 24px;
}

.secretary-3d-ear::after {
  width: 4px;
  height: 4px;
  background: #e5e7eb;
  box-shadow: none;
}

.secretary-3d-neck {
  left: 50px;
  top: 72px;
  width: 17px;
  height: 17px;
  background: linear-gradient(145deg, #dca085, #bf725e);
}

.secretary-3d-body {
  left: 25px;
  top: 82px;
  width: 68px;
  height: 45px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 18px 18px 12px 12px;
  background: linear-gradient(145deg, #111827 0%, #1f2937 55%, #0f172a 100%);
  box-shadow: inset 8px 10px 14px rgba(255, 255, 255, 0.1), inset -10px -12px 16px rgba(0, 0, 0, 0.28), 0 14px 22px rgba(2, 6, 23, 0.18);
}

.secretary-3d-shirt {
  left: 22px;
  top: 3px;
  width: 24px;
  height: 36px;
  background: linear-gradient(180deg, #f8fafc, #dbeafe);
  clip-path: polygon(0 0, 100% 0, 74% 100%, 26% 100%);
}

.secretary-3d-lapel {
  top: 6px;
  width: 21px;
  height: 30px;
  background: rgba(2, 6, 23, 0.34);
}

.secretary-3d-scarf {
  left: 30px;
  top: 8px;
  width: 8px;
  height: 28px;
  border-radius: 999px;
  background: linear-gradient(180deg, #1d4ed8, #0ea5e9);
}

.secretary-3d-badge {
  right: 9px;
  top: 12px;
  width: 13px;
  height: 8px;
  border-radius: 3px;
  background: linear-gradient(90deg, #e5e7eb, #94a3b8);
  box-shadow: none;
}

.secretary-3d-nameplate {
  right: 7px;
  top: 23px;
  width: 17px;
  height: 5px;
  border-radius: 999px;
  background: #38bdf8;
  opacity: 0.75;
  z-index: 5;
}

.secretary-3d-button {
  left: 31px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #cbd5e1;
  z-index: 5;
}

.secretary-3d-button-a {
  top: 21px;
}

.secretary-3d-button-b {
  top: 30px;
}

.secretary-3d-arm {
  top: 89px;
  width: 11px;
  height: 35px;
  border-color: rgba(148, 163, 184, 0.2);
  background: linear-gradient(145deg, #1f2937, #0f172a);
}

.secretary-3d-arm-left {
  left: 17px;
  transform: rotate(12deg);
}

.secretary-3d-arm-right {
  right: 14px;
  transform: rotate(-24deg);
}

.secretary-3d-tablet {
  right: 5px;
  top: 97px;
  width: 28px;
  height: 36px;
  border: 2px solid #64748b;
  border-radius: 6px;
  background: linear-gradient(145deg, #111827, #020617);
}

.secretary-3d-tablet::after {
  background: #0ea5e9;
}

.secretary-3d-skirt {
  left: 36px;
  top: 120px;
  width: 46px;
  height: 18px;
  border-radius: 0 0 14px 14px;
  background: linear-gradient(145deg, #111827, #020617);
}

.secretary-3d-leg {
  bottom: 3px;
  width: 10px;
  height: 22px;
  background: linear-gradient(145deg, #334155, #0f172a);
}

.secretary-3d-shoe {
  background: #020617;
}

.robot-mood-thinking .secretary-3d-side-light {
  animation: robot3dSignal 1.15s ease-in-out infinite;
}

.robot-mood-speaking .secretary-3d-scarf,
.robot-mood-action .secretary-3d-scarf {
  filter: drop-shadow(0 0 8px rgba(14, 165, 233, 0.58));
}

.robot-inline-chat-panel {
  position: fixed;
  right: 186px;
  bottom: 48px;
  z-index: 1682;
  width: min(390px, calc(100vw - 254px));
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  pointer-events: none;
}

.robot-inline-chat-panel[hidden] {
  display: none !important;
}

.robot-inline-status {
  pointer-events: auto;
  align-self: flex-end;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: min(100%, 260px);
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent, #0ea5e9) 24%, var(--border, rgba(82, 99, 122, 0.28)));
  background: color-mix(in srgb, var(--surface, #fff) 90%, var(--accent, #0ea5e9) 8%);
  color: var(--text, #162033);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.15;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.12);
}

.robot-inline-status::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent, #0ea5e9);
  box-shadow: 0 0 0 0 rgba(14, 165, 233, 0.32);
}

.robot-inline-status.is-idle::before,
.robot-inline-status.is-happy::before {
  background: #16a34a;
}

.robot-inline-status.is-listening::before {
  background: #0ea5e9;
  animation: robotStatusPulse 1.1s ease-in-out infinite;
}

.robot-inline-status.is-thinking::before {
  background: #f59e0b;
  animation: robotStatusPulse 1.35s ease-in-out infinite;
}

.robot-inline-status.is-speaking::before {
  background: #7c3aed;
  animation: robotStatusPulse 0.8s ease-in-out infinite;
}

.robot-inline-status.is-action::before {
  background: #0f766e;
  animation: robotStatusPulse 1s ease-in-out infinite;
}

.robot-inline-status.is-error::before {
  background: #dc2626;
  animation: robotStatusPulse 0.7s ease-in-out infinite;
}

.robot-inline-status.is-hidden {
  opacity: 0.72;
}

@keyframes robotStatusPulse {
  0% { transform: scale(0.92); box-shadow: 0 0 0 0 rgba(14, 165, 233, 0.28); }
  70% { transform: scale(1.08); box-shadow: 0 0 0 10px rgba(14, 165, 233, 0); }
  100% { transform: scale(0.96); box-shadow: 0 0 0 0 rgba(14, 165, 233, 0); }
}

.robot-cloud {
  pointer-events: auto;
  position: relative;
  border: 2px solid color-mix(in srgb, var(--accent, #0ea5e9) 38%, var(--border, rgba(82, 99, 122, 0.28)));
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18);
  line-height: 1.35;
}

.robot-cloud-assistant {
  align-self: flex-end;
  max-width: 100%;
  min-height: 44px;
  padding: 12px 14px;
  border-radius: 20px 20px 8px 20px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, #e7f8ff);
  border-color: color-mix(in srgb, var(--accent, #0ea5e9) 46%, var(--border, rgba(82, 99, 122, 0.28)));
  color: var(--text, #162033);
  white-space: pre-wrap;
  font-size: 0.92rem;
}

.robot-cloud-assistant::after {
  content: "";
  position: absolute;
  right: -11px;
  bottom: 14px;
  width: 18px;
  height: 18px;
  background: inherit;
  border-right: 2px solid color-mix(in srgb, var(--accent, #0ea5e9) 46%, var(--border, rgba(82, 99, 122, 0.28)));
  border-bottom: 2px solid color-mix(in srgb, var(--accent, #0ea5e9) 46%, var(--border, rgba(82, 99, 122, 0.28)));
  transform: rotate(-45deg);
}

.robot-cloud-assistant.is-thinking {
  color: var(--text-muted, #64748b);
}

.robot-cloud-assistant.is-error {
  border-color: rgba(239, 68, 68, 0.35);
  color: #b42318;
  background: #fff5f5;
}

.robot-cloud-user {
  align-self: flex-start;
  max-width: 88%;
  padding: 8px 11px;
  border-radius: 16px 16px 16px 5px;
  border-color: color-mix(in srgb, var(--accent-2, #14b8a6) 46%, var(--border, rgba(82, 99, 122, 0.28)));
  background: color-mix(in srgb, var(--surface, #fff) 86%, var(--accent-2, #14b8a6) 14%);
  color: var(--text, #123126);
  font-size: 0.84rem;
  white-space: pre-wrap;
}

.robot-assistant-actions {
  align-self: flex-end;
  width: min(100%, 330px);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  pointer-events: auto;
}

.robot-assistant-actions[hidden] {
  display: none !important;
}

.robot-assistant-action-chip {
  border: 1px solid color-mix(in srgb, var(--accent, #0ea5e9) 38%, var(--border, rgba(82, 99, 122, 0.28)));
  border-radius: 999px;
  padding: 7px 10px;
  background: color-mix(in srgb, var(--surface, #fff) 86%, var(--accent, #0ea5e9) 10%);
  color: var(--text, #162033);
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.12);
}

@media (max-width: 640px) {
  .robot-inline-chat-panel {
    right: 14px;
    left: 14px;
    bottom: 178px;
    width: auto;
    align-items: stretch;
    gap: 14px;
    z-index: 1682;
  }

  .robot-inline-status {
    align-self: center;
    width: min(100%, 340px);
    max-width: 100%;
    justify-content: center;
    text-align: center;
    padding: 8px 12px;
    font-size: 0.75rem;
  }

  .robot-cloud-assistant,
  .robot-cloud-input,
  .robot-assistant-actions {
    width: min(100%, 340px);
    align-self: center;
  }

  .robot-cloud-assistant {
    min-height: 52px;
    padding: 12px 13px;
    font-size: 0.88rem;
    border-radius: 18px 18px 8px 18px;
  }

  .robot-cloud-assistant::after {
    right: 14px;
    bottom: -8px;
    width: 14px;
    height: 14px;
    border-right-width: 1px;
    border-bottom-width: 1px;
  }

  .robot-cloud-user {
    max-width: min(88%, 290px);
    font-size: 0.8rem;
  }

  .robot-assistant-actions {
    justify-content: center;
    gap: 8px;
  }

  .robot-assistant-action-chip {
    flex: 1 1 calc(50% - 8px);
    min-height: 38px;
    text-align: center;
    justify-content: center;
  }

  .robot-cloud-input {
    grid-template-columns: 1fr auto auto auto auto;
    padding: 7px;
    gap: 6px;
    border-radius: 18px 18px 10px 18px;
  }

  .robot-cloud-input textarea {
    min-height: 38px;
    max-height: 112px;
    padding: 8px 4px;
    font-size: 0.9rem;
  }

  .robot-cloud-input button {
    min-height: 36px;
    border-radius: 12px;
  }

  #robotHideBtn {
    right: 14px;
    bottom: 212px;
    padding: 5px 10px;
    font-size: 0.74rem;
  }

  #robotShowBtn {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    padding: 9px 14px;
    font-size: 0.82rem;
  }
}

.robot-assistant-action-chip:hover,
.robot-assistant-action-chip:focus-visible {
  border-color: var(--accent, #0ea5e9);
  filter: brightness(1.04);
  outline: none;
}

.robot-cloud-input {
  align-self: flex-end;
  width: min(100%, 340px);
  display: grid;
  grid-template-columns: 1fr auto auto auto auto;
  align-items: end;
  gap: 9px;
  padding: 8px;
  border-radius: 20px 20px 8px 20px;
  border-color: color-mix(in srgb, var(--accent, #0ea5e9) 38%, var(--border, rgba(82, 99, 122, 0.28)));
  background: color-mix(in srgb, var(--surface, #fff) 96%, #ecfeff);
}

.robot-cloud-input textarea {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  max-height: 96px;
  resize: none;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text, #162033);
  font: inherit;
  line-height: 1.35;
  padding: 7px 4px;
}

.robot-cloud-input button {
  min-height: 34px;
  border: 0;
  border-radius: 14px;
  padding: 0 12px;
  background: #0f766e;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  z-index: 4;
  touch-action: manipulation;
}

.robot-cloud-input .robot-inline-mic,
.robot-cloud-input .robot-inline-stop-voice,
.robot-cloud-input .robot-inline-config {
  width: 38px;
  min-width: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--accent, #0ea5e9) 82%, #0f172a);
}

.robot-cloud-input .robot-inline-config {
  width: 34px;
  min-width: 34px;
  height: 34px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-soft, #f8fafc) 84%, var(--accent, #0ea5e9));
  color: var(--text, #162033);
  border: 1px solid color-mix(in srgb, var(--accent, #0ea5e9) 35%, transparent);
  font-size: 18px;
  line-height: 1;
}

.robot-cloud-input .robot-inline-stop-voice {
  width: 34px;
  min-width: 34px;
  height: 34px;
  border-radius: 6px;
  background: #000;
  color: #000;
}

.robot-cloud-input .robot-inline-mic svg,
.robot-cloud-input .robot-inline-stop-voice svg {
  width: 19px;
  height: 19px;
}

.robot-cloud-input .robot-inline-mic.is-listening,
.robot-cloud-input .robot-inline-mic[aria-pressed="true"] {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #0ea5e9) 32%, transparent);
  filter: brightness(1.08);
}

.robot-cloud-input button:disabled,
.robot-cloud-input textarea:disabled {
  opacity: 0.65;
  cursor: wait;
}

.ai-chat-compact-config {
  position: fixed;
  inset: 0;
  z-index: 10060;
  display: grid;
  place-items: end center;
  padding: 18px;
  background: rgba(15, 23, 42, 0.18);
}

.ai-chat-compact-config[hidden] {
  display: none !important;
}

.ai-chat-compact-config-card {
  width: min(100%, 380px);
  max-height: min(86vh, 560px);
  overflow: auto;
  border: 1px solid var(--border, rgba(148, 163, 184, 0.35));
  border-radius: 8px;
  background: var(--surface, #fff);
  color: var(--text, #162033);
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
}

.ai-chat-compact-config-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border, rgba(148, 163, 184, 0.28));
}

.ai-chat-compact-config-body {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
}

.ai-chat-compact-option {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: stretch;
  padding: 11px;
  border: 2px solid color-mix(in srgb, var(--border, #cbd5e1) 72%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface, #fff) 94%, var(--accent, #0ea5e9) 6%);
  cursor: pointer;
}

.ai-chat-compact-option:has(input:checked) {
  border-color: var(--accent, #0ea5e9);
}

.ai-chat-compact-option input {
  margin-top: 3px;
}

.ai-chat-compact-option b,
.ai-chat-compact-option small {
  display: block;
}

.ai-chat-compact-option small {
  margin-top: 4px;
  color: var(--text-muted, #64748b);
  line-height: 1.35;
}

.ai-chat-compact-option-voice {
  background: color-mix(in srgb, var(--surface, #fff) 94%, var(--accent-2, #14b8a6) 6%);
}

.ai-chat-compact-config-actions {
  display: flex;
  justify-content: flex-end;
  padding: 0 14px 12px;
}

.ai-chat-compact-config-status {
  min-height: 18px;
  padding: 0 14px 14px;
  color: var(--text-muted, #64748b);
  font-size: 0.86rem;
}

.ai-chat-compact-config-status.is-error {
  color: #b91c1c;
}

#robotHideBtn,
#robotShowBtn {
  position: fixed;
  z-index: 1680;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 1px solid rgba(82, 99, 122, 0.22);
  border-radius: 999px;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.16);
  cursor: pointer;
  font-weight: 700;
}

#robotHideBtn {
  right: 34px;
  bottom: 168px;
  padding: 5px 12px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, #edf5f7);
  color: var(--text-muted, #52637a);
  font-size: 0.78rem;
}

#robotShowBtn {
  right: 24px;
  bottom: 24px;
  padding: 8px 16px;
  background: #0f766e;
  color: #fff;
  font-size: 0.88rem;
}

@media (max-width: 900px) and (min-width: 641px) {
  .robot-inline-chat-panel {
    right: 18px;
    left: 18px;
    bottom: 176px;
    z-index: 1682;
    width: auto;
    align-items: stretch;
    gap: 14px;
  }

  .robot-inline-status,
  .robot-cloud-assistant,
  .robot-cloud-input,
  .robot-assistant-actions {
    width: min(100%, 520px);
    align-self: flex-end;
  }

  #robotHideBtn {
    right: 24px;
    bottom: 168px;
  }
}

@media (max-width: 640px) {
  #robotHideBtn {
    right: 14px;
    bottom: 204px;
  }

  #robotShowBtn {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  }
}

@keyframes robotFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}

@keyframes robotBlink {
  0%, 94%, 100% { transform: scaleY(1); }
  96% { transform: scaleY(0.12); }
}

@keyframes robotTalk {
  0%, 100% { transform: scaleY(1); opacity: 1; }
  50% { transform: scaleY(0.65); opacity: 0.82; }
}

@keyframes robotPulse {
  0%, 100% { opacity: 0.75; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.18); }
}

@keyframes robotPop {
  0% { transform: translateY(18px) scale(0.72); opacity: 0; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes robot3dFloat {
  0%, 100% { transform: translateY(0) rotateZ(0deg); }
  50% { transform: translateY(-8px) rotateZ(1.2deg); }
}

@keyframes robot3dBlink {
  0%, 93%, 100% { transform: scaleY(1); }
  95% { transform: scaleY(0.1); }
}

@keyframes robot3dPulse {
  0%, 100% { opacity: 0.72; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.16); }
}

@keyframes robot3dLeanIn {
  0%, 100% { transform: rotateX(8deg) rotateY(-14deg) translateZ(0); }
  50% { transform: rotateX(4deg) rotateY(-4deg) translateY(-2px) translateZ(8px); }
}

@keyframes robot3dEarListen {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.18); }
}

@keyframes robot3dThink {
  0%, 100% { transform: rotateX(7deg) rotateY(-10deg) rotateZ(0deg); }
  33% { transform: rotateX(9deg) rotateY(7deg) rotateZ(1.4deg); }
  66% { transform: rotateX(4deg) rotateY(-16deg) rotateZ(-1deg); }
}

@keyframes robot3dSignal {
  0% { opacity: 0; transform: translateY(8px) translateZ(34px) scale(0.35); }
  35% { opacity: 1; transform: translateY(0) translateZ(42px) scale(1); }
  100% { opacity: 0; transform: translateY(-18px) translateZ(52px) scale(0.25); }
}

@keyframes robot3dTalk {
  0%, 100% { width: 12px; height: 4px; transform: translateX(1px) scaleY(1); }
  50% { width: 20px; height: 7px; transform: translateX(-3px) scaleY(1.24); }
}

@keyframes robot3dCoreTalk {
  0%, 100% { box-shadow: 0 0 14px rgba(14, 165, 233, 0.48); transform: scale(1); }
  50% { box-shadow: 0 0 24px rgba(34, 197, 94, 0.62); transform: scale(1.12); }
}

@keyframes robot3dHappy {
  0%, 100% { transform: rotateX(7deg) rotateY(-10deg) translateY(0); }
  30% { transform: rotateX(5deg) rotateY(-5deg) translateY(-7px) scale(1.03); }
  60% { transform: rotateX(8deg) rotateY(-14deg) translateY(1px); }
}

@keyframes robot3dError {
  0%, 100% { transform: rotateX(7deg) rotateY(-10deg) translateX(0); }
  25% { transform: rotateX(7deg) rotateY(-10deg) translateX(-3px); }
  75% { transform: rotateX(7deg) rotateY(-10deg) translateX(3px); }
}

@keyframes robot3dWave {
  0%, 100% { transform: translateZ(2px) rotate(-18deg); }
  50% { transform: translateZ(12px) rotate(-62deg) translateY(-6px); }
}

@media (max-width: 640px) {
  .ai-chat-toggle-button.is-robot-avatar {
    right: 12px !important;
    bottom: 12px !important;
    width: 96px !important;
    height: 116px !important;
  }

  #robotAvatarGraphic {
    width: 96px !important;
    height: 116px !important;
  }

  .robot-3d-avatar {
    width: 96px !important;
    height: 116px !important;
  }
  .secretary-3d-avatar {
    width: 96px !important;
    height: 116px !important;
  }
  .secretary-3d-stage {
    transform: scale(0.84) rotateX(6deg) rotateY(-8deg);
    transform-origin: top right;
  }

  .robot-3d-head {
    left: 20px;
    top: 20px;
    width: 58px;
    height: 49px;
    border-radius: 18px;
  }

  .robot-3d-face {
    left: 10px;
    top: 13px;
    width: 38px;
    height: 25px;
  }

  .robot-3d-body {
    left: 27px;
    top: 68px;
    width: 45px;
    height: 37px;
  }

  .robot-3d-arm {
    top: 73px;
    height: 31px;
  }

  .robot-3d-arm-left { left: 14px; }
  .robot-3d-arm-right { right: 14px; }

  .robot-3d-leg-left { left: 32px; }
  .robot-3d-leg-right { right: 31px; }

  .robot-inline-chat-panel {
    right: 14px;
    left: 14px;
    bottom: 178px;
    z-index: 1682;
    width: auto;
    align-items: stretch;
    gap: 14px;
  }

  .robot-inline-status {
    align-self: center;
    width: min(100%, 340px);
    max-width: 100%;
    justify-content: center;
    text-align: center;
    padding: 8px 12px;
    font-size: 0.75rem;
  }

  .robot-cloud-assistant {
    width: min(100%, 340px);
    align-self: center;
    min-height: 52px;
    max-height: 150px;
    overflow: auto;
    font-size: 0.88rem;
    padding: 12px 13px;
    border-radius: 18px 18px 8px 18px;
  }

  .robot-cloud-assistant::after {
    right: 14px;
    bottom: -8px;
    width: 14px;
    height: 14px;
    border-right-width: 1px;
    border-bottom-width: 1px;
  }

  .robot-cloud-input {
    width: min(100%, 340px);
    align-self: center;
    grid-template-columns: 1fr auto auto auto auto;
    gap: 6px;
    padding: 7px;
    border-radius: 18px 18px 10px 18px;
  }

  .robot-assistant-actions {
    width: min(100%, 340px);
    align-self: center;
    justify-content: center;
    gap: 8px;
  }

  .robot-assistant-action-chip {
    flex: 1 1 calc(50% - 8px);
    min-height: 38px;
    text-align: center;
    justify-content: center;
  }

  .robot-cloud-input button {
    width: auto;
    min-height: 36px;
    padding-inline: 8px;
    border-radius: 12px;
    font-size: 0.78rem;
    line-height: 1;
  }

  .robot-cloud-input textarea {
    min-height: 38px;
    max-height: 112px;
    padding: 8px 4px;
    font-size: 0.9rem;
  }

  .robot-cloud-input .robot-inline-mic,
  .robot-cloud-input .robot-inline-config {
    width: 34px;
    min-width: 34px;
  }

  .robot-cloud-input .robot-inline-config {
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    font-size: 16px;
  }

  .robot-cloud-input .robot-inline-stop-voice {
    width: 26px;
    min-width: 26px;
    height: 26px;
    min-height: 26px;
    border-radius: 4px;
  }

  .robot-cloud-input .robot-inline-mic svg,
  .robot-cloud-input .robot-inline-stop-voice svg {
    width: 17px;
    height: 17px;
  }

  #robotHideBtn {
    right: 14px;
    bottom: 212px;
    padding: 5px 10px;
    font-size: 0.74rem;
  }

  #robotShowBtn {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    padding: 9px 14px;
    font-size: 0.82rem;
  }
}

/* Mobile repair guard: evita iconos gigantes y vistas cortadas en pantallas pequenas. */
@media (max-width: 700px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
  }

  body {
    min-height: 100dvh;
  }

  .login-page {
    width: 100%;
    min-height: 100dvh;
    justify-content: flex-start;
    align-items: center;
    overflow-x: hidden;
    padding: 16px 0 28px;
    box-sizing: border-box;
  }

  .login-page .login-header,
  .login-page .container {
    width: min(100% - 20px, 420px);
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }

  .login-page .card,
  .login-page .form,
  .login-page .email-login,
  .login-page .auth-alt-form {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: visible;
  }

  .login-page .login-title {
    font-size: clamp(1.18rem, 5.4vw, 1.7rem) !important;
    line-height: 1.12;
    white-space: nowrap;
    overflow-wrap: normal;
  }

  .login-page .login-title-image {
    line-height: 1;
  }

  .login-page .login-brand-image {
    width: min(224px, 70vw);
    max-height: 82px;
  }

  .register-admin-page .login-title {
    font-size: clamp(1.05rem, 7vw, 1.45rem) !important;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .login-page .form-actions,
  .login-page .auth-alt-actions,
  .login-page .login-inline-links {
    width: 100%;
    flex-wrap: wrap;
    min-width: 0;
  }

  .login-page .btn,
  .login-page .google-btn {
    max-width: 100%;
    min-height: 44px;
    min-width: 0;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-top: 10px;
    padding-bottom: 10px;
    line-height: 1.2;
    white-space: normal;
  }

  .login-page .login-inline-links a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 10px;
    border: 1px solid color-mix(in srgb, var(--border) 76%, var(--accent) 24%);
    border-radius: 8px;
    background: color-mix(in srgb, var(--surface) 92%, var(--accent) 8%);
    line-height: 1.25;
  }

  .login-page .password-visibility-field .password-visibility-input {
    padding-right: 60px;
  }

  .login-page .password-visibility-toggle {
    width: 44px;
    height: 44px;
    right: 6px;
  }

  .login-page .form-input,
  .login-page input,
  .login-page textarea,
  .login-page select {
    max-width: 100%;
    min-height: 44px;
    min-width: 0;
    box-sizing: border-box;
  }

  .login-page .remember-label {
    min-height: 44px;
    align-items: center;
  }

  .login-page .remember-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
  }

  body.register-admin-body .ai-chat-toggle-button:not(.is-robot-avatar) {
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    width: 52px;
    height: 52px;
    padding: 0;
    justify-content: center;
  }

  body.register-admin-body .ai-chat-toggle-button:not(.is-robot-avatar) .ai-chat-toggle-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    border: 0;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  img.icon,
  .icon,
  .admin-sidebar .nav a img.icon,
  .floating-menu .fm-item svg,
  .ai-chat-icon-btn svg,
  .ai-chat-toggle-button:not(.is-robot-avatar) img.icon,
  .google-btn svg,
  .login-page svg,
  .password-visibility-toggle svg,
  .btn > svg,
  button > svg,
  a.btn > svg {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    flex: 0 0 18px !important;
  }

  .admin-empresa-shell {
    min-height: 100dvh;
    overflow-y: auto;
    overflow-x: hidden;
  }

  .admin-empresa-shell .admin-layout {
    width: 100%;
    min-height: 100dvh;
    height: auto;
    overflow: visible;
  }

  .admin-empresa-shell .admin-sidebar,
  .admin-empresa-shell .admin-content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    box-sizing: border-box;
    overflow: visible;
  }

  .admin-empresa-shell .admin-content {
    padding: 8px;
  }

  .admin-empresa-shell .admin-empresa-frame {
    width: 100%;
    min-height: calc(100dvh - 180px);
    max-width: 100%;
  }

  .container,
  .card,
  .form,
  .page-header,
  .empresa-section,
  .empresa-module,
  .empresa-module-header {
    max-width: 100%;
    box-sizing: border-box;
  }

  .page-header,
  .form-actions,
  .toolbar,
  .actions {
    min-width: 0;
    flex-wrap: wrap;
  }
}

/* Iconos de menu: regla final para conservar color y tamano en todas las apariencias. */
.admin-sidebar .nav a img.icon{
  width:28px !important;
  height:28px !important;
  max-width:28px !important;
  max-height:28px !important;
  flex:0 0 28px !important;
  background:var(--menu-icon-bg,#e0f2fe) !important;
  border:1px solid var(--menu-icon-border,rgba(14,165,233,.28)) !important;
  border-radius:8px !important;
  padding:5px !important;
  box-sizing:border-box !important;
  filter:none !important;
}

.odonto-module-body{
  --odonto-panel:var(--surface);
  --odonto-panel-soft:var(--surface-soft);
  --odonto-card:var(--card);
  --odonto-text:var(--text);
  --odonto-muted:var(--muted);
  --odonto-line:var(--border);
  --odonto-accent:var(--accent-2);
  --odonto-accent-main:var(--accent);
  --odonto-focus:var(--focus);
  --odonto-soft-bg:color-mix(in srgb, var(--surface-soft) 88%, var(--accent-2) 12%);
  --odonto-chip-bg:color-mix(in srgb, var(--surface) 86%, var(--accent-2) 14%);
  --odonto-chip-border:color-mix(in srgb, var(--accent-2) 28%, var(--border) 72%);
  --odonto-shadow:color-mix(in srgb, #020617 18%, transparent);
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--odonto-accent-main) 14%, transparent), transparent 32%),
    radial-gradient(circle at top right, color-mix(in srgb, var(--odonto-accent) 12%, transparent), transparent 28%),
    linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
  color:var(--odonto-text);
}

.odonto-module-shell{
  gap:20px;
  padding:20px;
  color:var(--odonto-text);
}

.odonto-hero-card{
  display:grid;
  grid-template-columns:minmax(0,2.15fr) minmax(280px,1fr);
  gap:18px;
  padding:24px;
  border:1px solid var(--odonto-line);
  border-radius:8px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--odonto-card) 94%, var(--odonto-accent-main) 6%), color-mix(in srgb, var(--odonto-panel-soft) 90%, var(--odonto-accent) 10%));
  box-shadow:0 18px 44px var(--odonto-shadow);
}

.odonto-kicker,
.odonto-sidebar-kicker{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--odonto-accent) 82%, var(--odonto-text) 18%);
}

.odonto-hero-copy h1{
  margin:10px 0 10px;
  font-size:clamp(1.75rem, 2vw + 1rem, 2.6rem);
  line-height:1.05;
  color:var(--odonto-text);
}

.odonto-hero-copy p{
  max-width:68ch;
  margin:0;
  color:var(--odonto-muted);
  font-size:1rem;
  line-height:1.65;
}

.odonto-hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}

.odonto-hero-tags span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--odonto-chip-border);
  background:var(--odonto-chip-bg);
  color:var(--odonto-text);
  font-size:.84rem;
  font-weight:700;
}

.odonto-hero-side{
  padding:18px;
  border-radius:8px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--odonto-panel-soft) 86%, var(--odonto-accent) 14%), color-mix(in srgb, var(--odonto-panel) 92%, var(--odonto-accent-main) 8%));
  border:1px solid var(--odonto-line);
}

.odonto-hero-side h2{
  margin:0 0 10px;
  font-size:1rem;
  color:var(--odonto-text);
}

.odonto-hero-side ol{
  margin:0;
  padding-left:18px;
  color:var(--odonto-muted);
  display:grid;
  gap:10px;
  line-height:1.55;
}

.odonto-dashboard-grid .erp-metric-card{
  border-radius:8px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--odonto-panel) 96%, var(--odonto-accent-main) 4%), var(--odonto-panel));
  border:1px solid var(--odonto-line);
  box-shadow:0 10px 28px color-mix(in srgb, #020617 12%, transparent);
  color:var(--odonto-text);
}

.odonto-dashboard-grid .erp-metric-label{
  color:var(--odonto-muted);
}

.odonto-dashboard-grid .erp-metric-value{
  color:var(--odonto-text);
}

.odonto-workspace{
  display:grid;
  grid-template-columns:minmax(260px,320px) minmax(0,1fr);
  gap:20px;
  align-items:start;
}

.odonto-sidebar{
  position:sticky;
  top:16px;
  display:grid;
  gap:14px;
}

.odonto-sidebar-card{
  padding:18px;
  border-radius:8px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--odonto-panel) 96%, var(--odonto-accent-main) 4%), var(--odonto-panel-soft));
  border:1px solid var(--odonto-line);
  box-shadow:0 14px 34px color-mix(in srgb, #020617 13%, transparent);
}

.odonto-sidebar-card h2{
  margin:8px 0 8px;
  font-size:1.08rem;
  color:var(--odonto-text);
}

.odonto-sidebar-card p{
  margin:0;
  color:var(--odonto-muted);
  line-height:1.55;
}

.odonto-nav{
  display:grid;
  gap:10px;
}

.odonto-nav-btn{
  width:100%;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid var(--odonto-line);
  background:color-mix(in srgb, var(--odonto-panel) 95%, var(--odonto-accent-main) 5%);
  color:var(--odonto-text);
  text-align:left;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
  box-shadow:0 10px 22px color-mix(in srgb, #020617 10%, transparent);
}

.odonto-nav-btn strong{
  display:block;
  margin-bottom:4px;
  color:var(--odonto-text);
  font-size:.95rem;
}

.odonto-nav-btn span{
  display:block;
  color:var(--odonto-muted);
  font-size:.82rem;
  line-height:1.45;
}

.odonto-nav-btn:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--odonto-accent) 36%, var(--odonto-line) 64%);
  box-shadow:0 14px 28px color-mix(in srgb, #020617 14%, transparent);
}

.odonto-nav-btn.is-active{
  border-color:color-mix(in srgb, var(--odonto-accent) 46%, var(--odonto-line) 54%);
  background:linear-gradient(135deg, color-mix(in srgb, var(--odonto-panel) 82%, var(--odonto-accent) 18%), color-mix(in srgb, var(--odonto-panel-soft) 84%, var(--odonto-accent-main) 16%));
  box-shadow:0 18px 32px color-mix(in srgb, var(--odonto-accent) 18%, transparent);
}

.odonto-content{
  display:grid;
  gap:18px;
}

.odonto-context-card{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:20px 22px;
  border-radius:8px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--odonto-panel) 96%, var(--odonto-accent-main) 4%), var(--odonto-panel));
  border:1px solid var(--odonto-line);
  color:var(--odonto-text);
}

.odonto-context-card h2{
  margin:8px 0 6px;
  color:var(--odonto-text);
}

.odonto-notice{
  min-width:min(320px, 100%);
  margin-left:auto;
  padding:12px 14px;
  border-radius:8px;
  background:color-mix(in srgb, var(--odonto-panel-soft) 86%, var(--odonto-panel) 14%);
  border:1px solid var(--odonto-line);
  color:var(--odonto-muted);
  line-height:1.5;
}

.odonto-notice.is-error{
  background:color-mix(in srgb, var(--danger) 12%, var(--odonto-panel) 88%);
  border-color:color-mix(in srgb, var(--danger) 38%, var(--odonto-line) 62%);
  color:color-mix(in srgb, var(--danger) 78%, var(--odonto-text) 22%);
}

.odonto-main-grid{
  align-items:start;
}

.odonto-form-card,
.odonto-list-card{
  border-radius:8px;
  background:var(--odonto-panel);
  border:1px solid var(--odonto-line);
  color:var(--odonto-text);
  box-shadow:0 14px 32px color-mix(in srgb, #020617 12%, transparent);
}

.odonto-card-head{
  display:grid;
  gap:8px;
  margin-bottom:14px;
}

.odonto-card-head h3{
  margin:6px 0 0;
  color:var(--odonto-text);
  font-size:1.15rem;
}

.odonto-card-head p{
  margin:0;
  color:var(--odonto-muted);
  line-height:1.55;
}

.odonto-list{
  display:grid;
  gap:12px;
}

.odonto-list .erp-list-card{
  border-radius:8px;
  border:1px solid var(--odonto-line);
  background:linear-gradient(180deg, color-mix(in srgb, var(--odonto-panel) 96%, var(--odonto-accent-main) 4%), color-mix(in srgb, var(--odonto-panel-soft) 92%, var(--odonto-panel) 8%));
  color:var(--odonto-text);
  box-shadow:0 10px 24px color-mix(in srgb, #020617 10%, transparent);
}

.odonto-list .erp-list-card strong{
  color:var(--odonto-text);
}

.odonto-module-body .muted,
.odonto-module-body .form-help{
  color:var(--odonto-muted);
}

.odonto-module-body .form-input,
.odonto-module-body select.form-input,
.odonto-module-body textarea.form-input{
  background:var(--form-input-bg);
  border-color:var(--form-border);
  color:var(--odonto-text);
}

.odonto-module-body .form-input::placeholder,
.odonto-module-body textarea.form-input::placeholder{
  color:color-mix(in srgb, var(--odonto-muted) 78%, transparent);
}

@media (max-width: 1080px){
  .odonto-hero-card,
  .odonto-workspace{
    grid-template-columns:1fr;
  }

  .odonto-sidebar{
    position:static;
  }
}

@media (max-width: 720px){
  .odonto-module-shell{
    padding:14px;
  }

  .odonto-hero-card,
  .odonto-form-card,
  .odonto-list-card,
  .odonto-context-card,
  .odonto-sidebar-card{
    border-radius:18px;
  }

  .odonto-context-card{
    flex-direction:column;
  }

  .odonto-notice{
    width:100%;
    min-width:0;
    margin-left:0;
  }
}

.gym-module-body{
  --gym-panel:var(--surface);
  --gym-panel-soft:var(--surface-soft);
  --gym-ink:var(--text);
  --gym-muted:var(--muted);
  --gym-line:var(--border);
  --gym-accent:var(--accent);
  --gym-accent-2:var(--accent-2);
  --gym-shadow:color-mix(in srgb, #020617 18%, transparent);
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--gym-accent) 13%, transparent), transparent 30%),
    radial-gradient(circle at top right, color-mix(in srgb, var(--gym-accent-2) 11%, transparent), transparent 28%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
  color:var(--gym-ink);
}

.gym-module-shell{
  gap:20px;
  padding:20px;
  color:var(--gym-ink);
}

.gym-hero-card{
  display:grid;
  grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);
  gap:18px;
  padding:24px;
  border:1px solid var(--gym-line);
  border-radius:8px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--gym-panel) 96%, var(--gym-accent) 4%), color-mix(in srgb, var(--gym-panel-soft) 92%, var(--gym-accent-2) 8%));
  box-shadow:0 18px 44px var(--gym-shadow);
  min-width:0;
}

.gym-kicker,
.gym-sidebar-kicker{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--gym-accent) 86%, var(--gym-ink) 14%);
}

.gym-hero-copy h1{
  margin:10px 0 10px;
  font-size:clamp(1.8rem, 2vw + 1rem, 2.7rem);
  line-height:1.05;
  color:var(--gym-ink);
}

.gym-hero-copy p{
  max-width:70ch;
  margin:0;
  color:var(--gym-muted);
  line-height:1.65;
}

.gym-hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}

.gym-hero-tags span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--gym-accent) 28%, var(--gym-line));
  background:color-mix(in srgb, var(--gym-accent) 10%, var(--gym-panel));
  color:color-mix(in srgb, var(--gym-accent) 86%, var(--gym-ink) 14%);
  font-size:.84rem;
  font-weight:700;
}

.gym-hero-side{
  padding:18px;
  border-radius:8px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--gym-accent) 9%, var(--gym-panel)), color-mix(in srgb, var(--gym-accent-2) 8%, var(--gym-panel-soft)));
  border:1px solid color-mix(in srgb, var(--gym-accent) 22%, var(--gym-line));
  min-width:0;
}

.gym-hero-logo{
  width:64px;
  height:64px;
  object-fit:contain;
  margin-bottom:12px;
  padding:10px;
  border-radius:8px;
  border:1px solid color-mix(in srgb, var(--gym-accent) 22%, var(--gym-line));
  background:var(--gym-panel);
  box-shadow:0 12px 24px color-mix(in srgb, #020617 14%, transparent);
}

.gym-hero-side h2{
  margin:0 0 10px;
  font-size:1rem;
  color:var(--gym-ink);
}

.gym-hero-side ol{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:10px;
  color:var(--gym-muted);
  line-height:1.55;
}

.gym-workspace{
  display:grid;
  grid-template-columns:minmax(260px,320px) minmax(0,1fr);
  gap:20px;
  align-items:start;
}

.gym-sidebar{
  position:sticky;
  top:16px;
  display:grid;
  gap:14px;
}

.gym-sidebar-card{
  padding:18px;
  border-radius:8px;
  background:linear-gradient(180deg, var(--gym-panel), var(--gym-panel-soft));
  border:1px solid var(--gym-line);
  box-shadow:0 14px 34px var(--gym-shadow);
  min-width:0;
}

.gym-sidebar-card h2{
  margin:8px 0 8px;
  font-size:1.08rem;
  color:var(--gym-ink);
}

.gym-sidebar-card p{
  margin:0;
  color:var(--gym-muted);
  line-height:1.55;
}

.gym-nav{
  display:grid;
  gap:10px;
}

.gym-nav-btn{
  width:100%;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid var(--gym-line);
  background:var(--gym-panel);
  color:var(--gym-ink);
  text-align:left;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
  box-shadow:0 10px 22px color-mix(in srgb, #020617 10%, transparent);
  min-width:0;
}

.gym-nav-btn strong{
  display:block;
  margin-bottom:4px;
  color:var(--gym-ink);
  font-size:.95rem;
}

.gym-nav-btn span{
  display:block;
  color:var(--gym-muted);
  font-size:.82rem;
  line-height:1.45;
}

.gym-nav-btn:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--gym-accent) 32%, var(--gym-line));
  box-shadow:0 14px 28px color-mix(in srgb, #020617 16%, transparent);
}

.gym-nav-btn.is-active{
  border-color:color-mix(in srgb, var(--gym-accent) 42%, var(--gym-line));
  background:linear-gradient(135deg, color-mix(in srgb, var(--gym-accent) 12%, var(--gym-panel)), color-mix(in srgb, var(--gym-accent-2) 12%, var(--gym-panel-soft)));
  box-shadow:0 18px 32px color-mix(in srgb, var(--gym-accent) 20%, transparent);
}

.gym-content{
  display:grid;
  gap:18px;
}

.gym-context-card{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:20px 22px;
  border-radius:8px;
  background:var(--gym-panel);
  border:1px solid var(--gym-line);
  color:var(--gym-ink);
  box-shadow:0 14px 32px color-mix(in srgb, #020617 12%, transparent);
  min-width:0;
}

.gym-context-card > div:first-child{
  min-width:220px;
}

.gym-context-tools{
  display:grid;
  grid-template-columns:minmax(180px,260px) minmax(160px,210px);
  gap:10px;
  min-width:min(480px,100%);
  align-items:center;
}

.gym-context-card h2{
  margin:8px 0 6px;
  color:var(--gym-ink);
}

.gym-context-msg{
  min-width:min(320px,100%);
  margin-left:auto;
  padding:12px 14px;
  border-radius:8px;
  background:var(--gym-panel-soft);
  border:1px solid var(--gym-line);
  line-height:1.5;
}

.gym-stage-card,
.gym-nested-card{
  border-radius:8px;
  background:var(--gym-panel);
  border:1px solid var(--gym-line);
  color:var(--gym-ink);
  box-shadow:0 14px 32px color-mix(in srgb, #020617 12%, transparent);
  min-width:0;
  overflow:hidden;
}

.gym-stage-head{
  display:grid;
  gap:8px;
  margin-bottom:14px;
}

.gym-stage-head h3{
  margin:6px 0 0;
  color:var(--gym-ink);
  font-size:1.15rem;
}

.gym-stage-head p{
  margin:0;
  line-height:1.55;
}

.gym-command-grid{
  display:grid;
  grid-template-columns:minmax(240px,1.05fr) minmax(240px,1fr) minmax(240px,1fr);
  gap:14px;
  margin-bottom:16px;
}

.gym-command-card{
  display:grid;
  gap:12px;
  align-content:start;
  min-width:0;
  min-height:150px;
  padding:16px;
  border-radius:8px;
  border:1px solid color-mix(in srgb, var(--gym-accent) 18%, var(--gym-line));
  background:linear-gradient(180deg, color-mix(in srgb, var(--gym-panel) 94%, var(--gym-accent) 6%), var(--gym-panel));
  box-shadow:0 12px 28px color-mix(in srgb, #020617 12%, transparent);
}

.gym-score-card{
  grid-template-columns:minmax(0,1fr) 96px;
  align-items:center;
}

.gym-score-card strong{
  display:block;
  margin:8px 0 4px;
  font-size:2.55rem;
  line-height:1;
  color:var(--gym-ink);
}

.gym-score-card p{
  margin:0;
  line-height:1.4;
}

.gym-score-ring{
  width:88px;
  height:88px;
  border-radius:50%;
  background:
    radial-gradient(circle at center, var(--gym-panel) 56%, transparent 58%),
    conic-gradient(color-mix(in srgb, var(--gym-accent) 82%, #22c55e 18%) var(--gym-score-fill, 0%), color-mix(in srgb, var(--gym-line) 76%, transparent) 0);
  border:1px solid var(--gym-line);
}

.gym-alert-list,
.gym-action-list{
  display:grid;
  gap:8px;
}

.gym-alert-item,
.gym-action-item{
  width:100%;
  min-width:0;
  border-radius:8px;
  border:1px solid var(--gym-line);
  background:var(--gym-panel);
  color:var(--gym-ink);
  text-align:left;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}

.gym-alert-item{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-left:4px solid color-mix(in srgb, var(--gym-accent) 62%, var(--gym-line));
}

.gym-alert-item:hover,
.gym-action-item:hover{
  transform:translateY(-1px);
  background:var(--gym-panel-soft);
  border-color:color-mix(in srgb, var(--gym-accent) 30%, var(--gym-line));
}

.gym-alert-item strong,
.gym-action-item strong{
  color:var(--gym-ink);
}

.gym-alert-item span{
  color:var(--gym-muted);
  font-size:.84rem;
  line-height:1.35;
}

.gym-alert-ok{border-left-color:#22c55e}
.gym-alert-warn{border-left-color:#f59e0b}
.gym-alert-danger{border-left-color:#ef4444}

.gym-action-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:11px 12px;
}

.gym-action-item span{
  color:var(--gym-muted);
  font-size:.86rem;
}

.gym-status-pill{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid var(--gym-line);
  background:var(--gym-panel-soft);
  color:var(--gym-ink);
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}

.gym-status-ok{border-color:#86efac;background:#dcfce7;color:#166534}
.gym-status-warn{border-color:#fcd34d;background:#fef3c7;color:#92400e}
.gym-status-danger{border-color:#fca5a5;background:#fee2e2;color:#991b1b}

.gym-module-body .form,
.gym-module-body .form-row,
.gym-module-body .form-col{
  min-width:0;
}

.gym-module-body .form-input,
.gym-module-body .form-textarea,
.gym-module-body select{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  background:var(--input-bg);
  color:var(--text);
  border-color:var(--form-border);
}

.gym-module-body .remember-label,
.gym-module-body .form-help,
.gym-module-body p{
  color:var(--gym-muted);
}

.gym-module-body .remember-label span{
  color:var(--gym-muted);
}

.gym-module-body .table-responsive{
  width:100%;
  max-width:100%;
  overflow:auto;
  border:1px solid var(--gym-line);
  border-radius:8px;
  background:var(--gym-panel);
  margin-top:14px;
}

.gym-module-body .data-table{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
  color:var(--gym-ink);
}

.gym-module-body .data-table th,
.gym-module-body .data-table td{
  border-bottom:1px solid var(--gym-line);
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}

.gym-module-body .data-table th{
  background:var(--gym-panel-soft);
  color:var(--gym-muted);
  font-size:.78rem;
  text-transform:uppercase;
}

.gym-module-body .data-table td{
  color:var(--gym-ink);
}

.gym-module-body .kpi-grid > .card{
  background:var(--gym-panel);
  border-color:var(--gym-line);
  color:var(--gym-ink);
}

.gym-module-body .two-col-grid,
.gym-module-body .three-col-grid{
  min-width:0;
}

.gym-module-body.gym-submenu-content{
  background:var(--bg);
}

.gym-module-body.gym-submenu-content .gym-module-shell{
  width:100%;
  max-width:none;
  margin:0;
  padding:16px;
}

.gym-module-body.gym-submenu-content .gym-hero-card,
.gym-module-body.gym-submenu-content .gym-sidebar{
  display:none;
}

.gym-module-body.gym-submenu-content .gym-workspace{
  display:block;
}

.gym-module-body.gym-submenu-content .gym-content{
  gap:14px;
}

@media (max-width: 1080px){
  .gym-hero-card,
  .gym-workspace,
  .gym-command-grid{
    grid-template-columns:1fr;
  }

  .gym-sidebar{
    position:static;
  }
}

@media (max-width: 720px){
  .gym-module-shell{
    padding:14px;
  }

  .gym-hero-card,
  .gym-sidebar-card,
  .gym-context-card,
  .gym-stage-card,
  .gym-nested-card{
    border-radius:8px;
  }

  .gym-context-card{
    flex-direction:column;
  }

  .gym-context-tools{
    width:100%;
    min-width:0;
    grid-template-columns:1fr;
  }

  .gym-context-msg{
    width:100%;
    min-width:0;
    margin-left:0;
  }

  .gym-score-card{
    grid-template-columns:1fr;
  }
}

/* Capa de compatibilidad para paginas heredadas: mantiene textos, tarjetas,
   formularios y tablas alineados con la apariencia central seleccionada. */
html[data-theme] :is(
  .card,
  .portal-card,
  .empresa-section,
  .reportes-globales-panel,
  .modal__panel,
  .form,
  .table-wrap,
  .admin-card,
  .super-card,
  .panel
){
  border-color:var(--border);
  color:var(--text);
}

html[data-theme] :is(
  .card,
  .portal-card,
  .empresa-section,
  .reportes-globales-panel,
  .modal__panel,
  .form,
  .table-wrap,
  .admin-card,
  .super-card
){
  background:var(--surface);
}

html[data-theme] :is(
  .form-help,
  .help-text,
  .muted,
  .description,
  .subtitle,
  .empresa-section-subtitle,
  .empresa-group-total
){
  color:var(--muted);
}

html[data-theme] :is(input, select, textarea, .form-input, .form-textarea):not([type="color"]){
  background:var(--form-input-bg);
  color:var(--text);
  border-color:var(--form-border);
}

html[data-theme] :is(input, textarea, .form-input, .form-textarea)::placeholder{
  color:color-mix(in srgb, var(--muted) 72%, transparent);
}

html[data-theme] :is(.table, .data-table){
  color:var(--text);
}

html[data-theme] :is(.table, .data-table) :is(th, td){
  border-color:var(--border);
}

html[data-theme] :is(.table, .data-table) thead th{
  background:var(--surface-soft);
  color:var(--muted);
}

html[data-theme] :is(.status.error, .is-error, .message.error, .form-help.is-error){
  color:var(--danger);
}

html[data-theme] :is(.status.ok, .is-success, .message.success, .form-help.is-success){
  color:var(--success);
}

.empresa-context-warning{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin:0 0 16px;
  padding:16px;
  border:1px solid color-mix(in srgb, var(--warning, #f59e0b) 45%, transparent);
  border-radius:8px;
  background:color-mix(in srgb, var(--warning, #f59e0b) 10%, var(--surface, #fff));
  color:var(--text, #172033);
  box-shadow:var(--shadow-sm, 0 8px 22px rgba(15,23,42,.08));
}

.empresa-context-warning h2{
  margin:4px 0 6px;
  font-size:1.15rem;
  line-height:1.25;
  letter-spacing:0;
}

.empresa-context-warning p{
  margin:0;
  color:var(--muted, #667085);
  max-width:760px;
}

.empresa-context-warning-kicker{
  display:block;
  color:var(--warning, #b45309);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.empresa-context-warning-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.empresa-runtime-alert{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:10030;
  width:min(420px, calc(100vw - 28px));
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--danger, #dc2626) 42%, transparent);
  border-radius:8px;
  background:var(--surface, #fff);
  color:var(--text, #172033);
  box-shadow:0 18px 44px rgba(15,23,42,.22);
}

.empresa-runtime-alert strong{
  display:block;
  margin:0 0 4px;
  font-size:.95rem;
}

.empresa-runtime-alert p{
  margin:0;
  color:var(--muted, #667085);
  font-size:.86rem;
  line-height:1.35;
}

.empresa-runtime-alert-actions{
  display:flex;
  align-items:flex-start;
  gap:8px;
  flex:0 0 auto;
}

.empresa-runtime-close{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid var(--border, rgba(15,23,42,.14));
  border-radius:8px;
  background:var(--surface-soft, #f8fafc);
  color:var(--text, #172033);
  cursor:pointer;
  font-size:1.1rem;
  line-height:1;
}

.empresa-connectivity-alert{
  border-color:color-mix(in srgb, var(--warning, #f59e0b) 48%, transparent);
  background:color-mix(in srgb, var(--surface, #fff) 88%, var(--warning, #f59e0b) 12%);
}

.empresa-connectivity-alert.is-offline{
  border-color:color-mix(in srgb, var(--danger, #dc2626) 48%, transparent);
  background:color-mix(in srgb, var(--surface, #fff) 86%, var(--danger, #dc2626) 14%);
}

.empresa-connectivity-alert.is-offline strong{
  color:var(--danger, #dc2626);
}

.empresa-connectivity-alert.is-online{
  border-color:color-mix(in srgb, var(--success, #16a34a) 48%, transparent);
  background:color-mix(in srgb, var(--surface, #fff) 88%, var(--success, #16a34a) 12%);
}

.empresa-connectivity-alert.is-online strong{
  color:var(--success, #16a34a);
}

@media(max-width:680px){
  .empresa-context-warning,
  .empresa-runtime-alert{
    flex-direction:column;
  }

  .empresa-context-warning-actions,
  .empresa-runtime-alert-actions{
    width:100%;
    justify-content:flex-start;
  }
}
/* Modulos empresariales Colombia: bancos, documentos, cumplimiento, contratos y calidad */
body.modulo-colombia-page {
  margin: 0;
  --primary: var(--accent, #1769e0);
  background: var(--bg, #f6f7fb);
  color: var(--text, #172033);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
}

html[data-theme^="dark"] body.modulo-colombia-page {
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 14%, transparent), transparent 32%),
    linear-gradient(180deg, var(--bg-alt), var(--bg));
}

.mc-shell {
  width: min(1440px, calc(100% - 28px));
  margin: 0 auto;
  padding: 18px 0 28px;
  display: grid;
  gap: 14px;
}

[data-mc-view][hidden] {
  display: none !important;
}

.mc-head,
.mc-kpis article,
.mc-card {
  background: var(--surface, #fff);
  border: 1px solid color-mix(in srgb, var(--border, currentColor) 82%, transparent);
  border-radius: 8px;
  box-shadow: var(--shadow-sm, 0 8px 22px rgba(15, 23, 42, .06));
}

html[data-theme^="dark"] .mc-head,
html[data-theme^="dark"] .mc-kpis article,
html[data-theme^="dark"] .mc-card,
html[data-theme^="dark"] .mc-toolbar {
  background: color-mix(in srgb, var(--surface) 92%, #000 8%);
  border-color: color-mix(in srgb, var(--border) 84%, var(--accent) 16%);
  box-shadow: 0 16px 34px rgba(0,0,0,.2);
}

.mc-head {
  padding: 16px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.mc-head h1,
.mc-card h2 {
  margin: 0;
  letter-spacing: 0;
}

.mc-head h1 {
  font-size: 24px;
  line-height: 1.16;
}

.mc-head p {
  margin: 6px 0 0;
  color: var(--muted, #667085);
  max-width: 850px;
}

.mc-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.mc-btn,
.mc-icon-btn {
  border: 1px solid color-mix(in srgb, var(--border, currentColor) 84%, transparent);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: inherit;
  cursor: pointer;
  font-weight: 700;
  min-height: 38px;
  padding: 8px 12px;
}

.mc-btn.primary {
  background: linear-gradient(180deg, color-mix(in srgb, var(--primary, #1769e0) 88%, white 12%), var(--primary, #1769e0));
  border-color: var(--primary, #1769e0);
  color: var(--btn-primary-text, #fff);
}

html[data-theme^="dark"] .mc-btn,
html[data-theme^="dark"] .mc-icon-btn {
  background: color-mix(in srgb, var(--surface-soft) 78%, #000 22%);
  color: var(--text);
}

.mc-icon-btn {
  min-height: 30px;
  padding: 5px 9px;
  font-size: 12px;
}

.mc-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.mc-kpis article {
  padding: 12px;
}

.mc-kpis span,
.mc-table span,
.mc-event span,
.mc-evidence span,
.mc-approval span,
.mc-task span,
.mc-agenda-item span,
.mc-empty,
.mc-form label {
  color: var(--muted, #667085);
}

.mc-kpis strong {
  display: block;
  margin-top: 6px;
  font-size: 20px;
  line-height: 1.1;
}

.mc-msg {
  min-height: 22px;
  color: var(--muted, #667085);
}

.mc-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--border, currentColor) 84%, transparent);
  border-radius: 8px;
  background: var(--surface, #fff);
}

.mc-toolbar label {
  display: grid;
  gap: 4px;
  min-width: 220px;
  color: var(--muted, #667085);
  font-size: 12px;
  font-weight: 700;
}

.mc-searchbar label {
  min-width: 150px;
  flex: 1 1 150px;
}

.mc-searchbar label:first-child,
.mc-searchbar label:nth-child(6) {
  min-width: 220px;
  flex-basis: 240px;
}

.mc-toolbar input,
.mc-toolbar select {
  min-height: 38px;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 8px;
  background: var(--input-bg, var(--surface, #fff));
  color: var(--text, #172033);
  padding: 8px 10px;
}

html[data-theme^="dark"] .mc-toolbar input,
html[data-theme^="dark"] .mc-toolbar select,
html[data-theme^="dark"] .mc-form input,
html[data-theme^="dark"] .mc-form select,
html[data-theme^="dark"] .mc-form textarea,
html[data-theme^="dark"] .mc-bulk input,
html[data-theme^="dark"] .mc-bulk select {
  background: color-mix(in srgb, var(--input-bg) 88%, #000 12%);
  border-color: color-mix(in srgb, var(--border) 84%, var(--accent) 16%);
  color: var(--text);
}

.mc-bulk {
  display: flex;
  align-items: end;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 10px;
  padding: 10px;
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface, #fff) 88%, transparent);
}

.mc-bulk strong {
  min-width: 120px;
  font-size: 13px;
}

.mc-bulk label {
  display: grid;
  gap: 4px;
  min-width: 150px;
  flex: 1 1 150px;
  color: var(--muted, #667085);
  font-size: 12px;
  font-weight: 700;
}

.mc-bulk input,
.mc-bulk select {
  width: 100%;
  min-height: 36px;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 8px;
  background: var(--input-bg, var(--surface, #fff));
  color: var(--text, #172033);
  padding: 7px 9px;
}

.mc-msg.is-error {
  color: #c43737;
}

.mc-grid {
  display: grid;
  grid-template-columns: minmax(360px, .46fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.mc-grid-secondary {
  grid-template-columns: minmax(0, .55fr) minmax(0, .45fr);
}

.mc-card {
  padding: 14px;
}

.mc-card h2 {
  font-size: 16px;
  margin-bottom: 10px;
}

#mcConfig,
#mcAgenda,
#mcSLA,
#mcRiesgo,
#mcResponsables,
#mcReporte,
#mcExpediente,
#mcTable,
#mcFollowForm,
#mcApprovalForm,
#mcEvidenceForm {
  scroll-margin-top: 210px;
}

.mc-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.mc-card-head h2 {
  margin-bottom: 4px;
}

.mc-card-head p {
  margin: 0;
}

.mc-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.mc-config-diagnostics {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

.mc-config-score,
.mc-config-checks article {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface, #fff) 90%, var(--primary, #1769e0) 10%);
  padding: 10px;
}

.mc-config-score {
  display: grid;
  align-content: center;
  gap: 4px;
}

.mc-config-score strong {
  font-size: 24px;
  line-height: 1;
}

.mc-config-score span,
.mc-config-checks span {
  color: var(--muted, #667085);
}

.mc-config-score.ok,
.mc-config-checks article.ok {
  border-color: color-mix(in srgb, #159957 45%, var(--border, currentColor));
  background: color-mix(in srgb, #159957 10%, var(--surface, #fff));
}

.mc-config-score.warn,
.mc-config-checks article.warn {
  border-color: color-mix(in srgb, #b7791f 48%, var(--border, currentColor));
  background: color-mix(in srgb, #f6ad55 14%, var(--surface, #fff));
}

.mc-config-checks {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.mc-config-checks article {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.mc-config-checks strong,
.mc-config-checks span {
  overflow-wrap: anywhere;
}

.mc-config-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 10px;
  background: color-mix(in srgb, var(--surface, #fff) 90%, var(--primary, #1769e0) 10%);
}

.mc-config-card > strong {
  font-size: 13px;
}

.mc-config-card > span,
.mc-config-card code {
  color: var(--muted, #667085);
  overflow-wrap: anywhere;
}

.mc-config-card code {
  display: block;
  border-radius: 6px;
  padding: 7px;
  background: color-mix(in srgb, var(--surface, #fff) 82%, #000 4%);
  font-size: 12px;
  white-space: pre-wrap;
}

.mc-config-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.mc-config-tags span,
.mc-config-tags em {
  border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  border-radius: 999px;
  color: var(--muted, #667085);
  font-size: 12px;
  font-style: normal;
  line-height: 1.2;
  padding: 5px 8px;
}

.mc-form {
  display: grid;
  gap: 10px;
}

.mc-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.mc-form label {
  display: grid;
  gap: 4px;
  font-size: 12px;
  font-weight: 650;
}

.mc-form input,
.mc-form select,
.mc-form textarea {
  width: 100%;
  min-height: 38px;
  box-sizing: border-box;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 8px;
  background: var(--input-bg, var(--surface, #fff));
  color: var(--text, #172033);
  padding: 8px 10px;
  font: inherit;
}

.mc-form textarea {
  min-height: 84px;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 12px;
}

.mc-table-wrap {
  overflow: auto;
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
}

.mc-table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
  background: var(--surface, #fff);
}

.mc-table th,
.mc-table td {
  padding: 9px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  text-align: left;
  vertical-align: top;
  font-size: 13px;
}

.mc-table th {
  color: var(--muted, #667085);
}

.mc-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.mc-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  background: color-mix(in srgb, var(--primary, #1769e0) 12%, transparent);
  color: var(--primary, #1769e0);
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}

.mc-chip.bad {
  background: color-mix(in srgb, #ef4444 14%, transparent);
  color: #b91c1c;
}

.mc-alert,
.mc-event,
.mc-evidence,
.mc-approval,
.mc-task,
.mc-empty {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 10px;
}

.mc-alert {
  background: color-mix(in srgb, #f59e0b 10%, transparent);
}

.mc-event,
.mc-evidence,
.mc-approval,
.mc-task {
  display: grid;
  gap: 3px;
  margin-bottom: 8px;
}

.mc-evidence a {
  color: var(--primary, #1769e0);
  font-weight: 750;
  text-decoration: none;
}

.mc-approval-actions,
.mc-task-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.mc-report {
  display: grid;
  gap: 12px;
}

.mc-agenda {
  display: grid;
  gap: 10px;
}

.mc-responsables {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.mc-sla {
  display: grid;
  gap: 10px;
}

.mc-riesgo {
  display: grid;
  gap: 10px;
}

.mc-risk-head {
  border-radius: 8px;
  padding: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  background: #16a34a;
}

.mc-risk-head.medio {
  background: #d97706;
}

.mc-risk-head.alto {
  background: #dc2626;
}

.mc-risk-head strong {
  font-size: 24px;
}

.mc-risk-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.mc-risk-grid article {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 9px;
}

.mc-risk-grid strong {
  display: block;
  margin-top: 4px;
}

.mc-risk-factors {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.mc-risk-factors span {
  border-radius: 999px;
  padding: 5px 9px;
  background: color-mix(in srgb, var(--primary, #1769e0) 10%, transparent);
  color: var(--text, #172033);
  font-weight: 700;
}

.mc-sla-head {
  border-radius: 8px;
  padding: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  background: #16a34a;
}

.mc-sla-head.amarillo {
  background: #d97706;
}

.mc-sla-head.rojo {
  background: #dc2626;
}

.mc-sla-head strong {
  font-size: 24px;
}

.mc-sla-grid,
.mc-sla-buckets {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.mc-sla-grid article,
.mc-sla-buckets span {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 9px;
}

.mc-sla-grid strong {
  display: block;
  margin-top: 4px;
}

.mc-responsable {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 10px;
  display: grid;
  gap: 7px;
}

.mc-responsable-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.mc-responsable-kpis span {
  border-radius: 8px;
  background: color-mix(in srgb, var(--primary, #1769e0) 10%, transparent);
  padding: 6px 8px;
  font-weight: 750;
}

.mc-responsable em {
  color: var(--muted, #667085);
  font-style: normal;
}

.mc-agenda-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.mc-agenda-summary article {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 10px;
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--primary, #1769e0) 12%);
}

.mc-agenda-summary strong {
  display: block;
  margin-top: 4px;
}

.mc-agenda-grid {
  display: grid;
  grid-template-columns: .42fr .58fr;
  gap: 10px;
  align-items: start;
}

.mc-agenda-item {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-left: 4px solid var(--primary, #1769e0);
  border-radius: 8px;
  padding: 10px;
  display: grid;
  gap: 5px;
  margin-bottom: 8px;
}

.mc-agenda-item.critica {
  border-left-color: #dc2626;
}

.mc-agenda-item.alta {
  border-left-color: #f59e0b;
}

.mc-agenda-item.media {
  border-left-color: #2563eb;
}

.mc-expediente {
  display: grid;
  gap: 10px;
}

.mc-exp-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.mc-exp-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.mc-exp-head > div:first-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.mc-exp-head span,
.mc-exp-block em {
  color: var(--muted, #667085);
  font-style: normal;
}

.mc-exp-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.mc-exp-summary article {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 9px;
  background: color-mix(in srgb, var(--surface, #fff) 90%, var(--primary, #1769e0) 10%);
}

.mc-exp-summary strong {
  display: block;
  margin-top: 4px;
}

.mc-exp-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.mc-exp-block {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.mc-exp-block span {
  display: grid;
  gap: 2px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 8%, transparent);
  padding-bottom: 5px;
  min-width: 0;
}

.mc-exp-block b,
.mc-exp-block em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mc-report-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 9px;
}

.mc-report-summary article {
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 8px;
  padding: 10px;
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--primary, #1769e0) 12%);
}

.mc-report-summary span,
.mc-muted {
  color: var(--muted, #667085);
}

.mc-report-summary strong {
  display: block;
  margin-top: 5px;
  font-size: 16px;
}

.mc-report-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.mc-metric-list,
.mc-report-recommend {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.mc-metric-list > strong,
.mc-report-recommend > strong {
  font-size: 13px;
}

.mc-metric-list span {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 8%, transparent);
  padding-bottom: 5px;
  min-width: 0;
}

.mc-metric-list b {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mc-metric-list em {
  color: var(--muted, #667085);
  font-style: normal;
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .mc-head,
  .mc-grid,
  .mc-grid-secondary,
  .mc-config-diagnostics,
  .mc-config-grid {
    grid-template-columns: 1fr;
  }
  .mc-head {
    display: grid;
  }
  .mc-card-head {
    display: grid;
  }
  .mc-actions {
    justify-content: flex-start;
  }
  .mc-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .mc-report-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .mc-agenda-grid {
    grid-template-columns: 1fr;
  }
  .mc-responsables {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mc-sla-grid,
  .mc-sla-buckets,
  .mc-risk-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .mc-exp-summary,
  .mc-exp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mc-report-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .mc-shell {
    width: min(100% - 20px, 1440px);
    padding-top: 12px;
  }
  #mcConfig,
  #mcAgenda,
  #mcSLA,
  #mcRiesgo,
  #mcResponsables,
  #mcReporte,
  #mcExpediente,
  #mcTable,
  #mcFollowForm,
  #mcApprovalForm,
  #mcEvidenceForm {
    scroll-margin-top: 560px;
  }
  .mc-kpis,
  .mc-row,
  .mc-agenda-summary,
  .mc-responsables,
  .mc-sla-grid,
  .mc-sla-buckets,
  .mc-risk-grid,
  .mc-exp-summary,
  .mc-exp-grid,
  .mc-report-summary,
  .mc-report-grid {
    grid-template-columns: 1fr;
  }
  .mc-config-checks {
    grid-template-columns: 1fr;
  }
  .mc-table {
    min-width: 780px;
  }
}

/* Guardrail responsive para modulos administrativos legacy con estilos inline.
   Evita que encabezados, acciones y tablas empujen el ancho total de la pagina en celular. */
@media (max-width: 720px) {
  body[class*="-page"] main,
  body[class*="-page"] section,
  body[class*="-page"] article,
  body[class*="-page"] aside,
  body[class*="-page"] header,
  body[class*="-page"] nav,
  body[class*="-page"] form,
  body[class*="-page"] div {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body[class*="-page"] header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body[class*="-page"] header h1,
  body[class*="-page"] header p {
    overflow-wrap: anywhere !important;
  }

  body[class*="-page"] header [class*="-actions"],
  body[class*="-page"] header [class*="-period"] {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-content: stretch !important;
    width: 100% !important;
  }

  body[class*="-page"] header button,
  body[class*="-page"] header input,
  body[class*="-page"] header select,
  body[class*="-page"] header a[class*="btn"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body[class*="-page"] [class*="-kpis"],
  body[class*="-page"] [class*="-grid"],
  body[class*="-page"] [class*="-split"],
  body[class*="-page"] [class*="-row"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Ajuste final del robot/secretaria en movil: los globos quedan por encima del avatar
   y no interceptan el boton del asistente ni controles inferiores de la pagina. */
@media (max-width: 640px) {
  .robot-inline-visible .robot-inline-chat-panel,
  .robot-inline-chat-panel {
    left: auto !important;
    right: 10px !important;
    bottom: max(118px, env(safe-area-inset-bottom, 0px) + 112px) !important;
    width: min(260px, calc(100vw - 112px)) !important;
    max-width: min(260px, calc(100vw - 112px)) !important;
    max-height: min(52vh, 430px) !important;
  }

  .robot-inline-visible .ai-chat-toggle-button.is-robot-avatar,
  .ai-chat-toggle-button.is-robot-avatar {
    right: 10px !important;
    bottom: max(10px, env(safe-area-inset-bottom, 0px) + 8px) !important;
    width: 78px !important;
    height: 92px !important;
    z-index: 1672 !important;
  }

  .robot-inline-visible #robotAvatarGraphic,
  .robot-inline-visible .robot-3d-avatar,
  .robot-inline-visible .secretary-3d-avatar,
  #robotAvatarGraphic,
  .robot-3d-avatar,
  .secretary-3d-avatar {
    width: 78px !important;
    height: 92px !important;
  }

  .robot-inline-visible #robotHideBtn,
  #robotHideBtn,
  #robotShowBtn {
    right: 10px !important;
    bottom: max(108px, env(safe-area-inset-bottom, 0px) + 102px) !important;
    z-index: 1688 !important;
  }

  .radio-toggle-button {
    left: 10px !important;
    right: auto !important;
    bottom: max(10px, env(safe-area-inset-bottom, 0px) + 8px) !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    justify-content: center !important;
  }

  .radio-toggle-button .ai-chat-toggle-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
}

/* Reparacion movil del shell empresarial: evita cache visual antiguo, scroll doble y paginas encajonadas. */
@media (max-width: 900px) {
  body.admin-empresa-shell {
    width: 100%;
    min-width: 0;
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.admin-empresa-shell .admin-layout {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    min-height: 100dvh;
    height: auto;
    overflow: visible;
  }

  body.admin-empresa-shell .admin-sidebar {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    overflow: visible;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    box-shadow: none;
    box-sizing: border-box;
  }

  body.admin-empresa-shell .admin-content {
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: auto;
    padding: 6px;
    overflow: visible;
    box-sizing: border-box;
  }

  body.admin-empresa-shell .admin-empresa-frame {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: calc(100dvh - 156px);
    height: auto;
    border: 0;
    background: var(--bg);
  }

  body.admin-empresa-shell .admin-empresa-frame[data-mobile-auto-height="1"] {
    min-height: calc(100dvh - 156px);
  }
}

@media (max-width: 640px) {
  body.admin-empresa-shell .admin-sidebar {
    padding: 10px;
  }

  body.admin-empresa-shell .admin-sidebar .nav.admin-nav-grouped,
  body.admin-empresa-shell .admin-sidebar .nav,
  body.admin-empresa-shell .admin-sidebar .nav .admin-nav-sublist {
    display: flex;
    flex-direction: column;
    gap: 7px;
    width: 100%;
    overflow: visible;
  }

  body.admin-empresa-shell .admin-sidebar .nav li,
  body.admin-empresa-shell .admin-sidebar .nav .admin-nav-group {
    width: 100%;
    min-width: 0;
    flex: 0 0 auto;
    box-sizing: border-box;
  }

  body.admin-empresa-shell .admin-sidebar .nav a,
  body.admin-empresa-shell .admin-sidebar .nav .admin-nav-group-title,
  body.admin-empresa-shell .admin-menu-visibility-toggle {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    justify-content: flex-start;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    box-sizing: border-box;
  }

  body.admin-empresa-shell .admin-frame-toolbar {
    right: 10px;
    top: 10px;
  }

  body.admin-empresa-shell .admin-content {
    padding: 4px;
  }
}

/* Override ABSOLUTO final del carrito de compras.
   Este bloque queda al cierre del CSS para anular temas, modo tactil y estilos legacy. */
body.carrito-flat-page,
body.carrito-flat-page *{
  box-shadow:none !important;
  text-shadow:none !important;
  filter:none !important;
}

body.carrito-flat-page .container{
  padding:0 !important;
}

body.carrito-flat-page .page-header{
  margin-bottom:0 !important;
}

body.carrito-flat-page .form,
body.carrito-flat-page .card,
body.carrito-flat-page .advanced-card,
body.carrito-flat-page .empresa-section,
body.carrito-flat-page .carrito-workspace-card,
body.carrito-flat-page .carrito-primary-layout,
body.carrito-flat-page .carrito-primary-main,
body.carrito-flat-page .carrito-side-column,
body.carrito-flat-page .carrito-grid,
body.carrito-flat-page .carrito-grid-main,
body.carrito-flat-page .carrito-station-split,
body.carrito-flat-page .carrito-station-split-main,
body.carrito-flat-page .carrito-summary-card,
body.carrito-flat-page .carrito-item-card,
body.carrito-flat-page .carrito-payment-section-card,
body.carrito-flat-page .carrito-actions-card,
body.carrito-flat-page .carrito-worker-card,
body.carrito-flat-page .carrito-vip-card,
body.carrito-flat-page .carrito-payment-amounts-card,
body.carrito-flat-page .carrito-payment-qr-card,
body.carrito-flat-page #scannerPanel,
body.carrito-flat-page #stationCheckoutPanel,
body.carrito-flat-page #stationCartActionsCard,
body.carrito-flat-page #stationPaymentAmountsCard,
body.carrito-flat-page #stationPaymentQrCard,
body.carrito-flat-page #stationWorkerCommissionCard,
body.carrito-flat-page #stationVipAccessCard,
body.carrito-flat-page #carritoTotalsPanel,
body.carrito-flat-page #carritoSearchBlock,
body.carrito-flat-page #carritosList{
  max-width:none !important;
  width:100% !important;
  box-sizing:border-box !important;
  border-radius:0 !important;
  margin-top:0 !important;
  margin-right:0 !important;
  margin-bottom:0 !important;
  margin-left:0 !important;
  background:var(--surface) !important;
}

body.carrito-flat-page .form::before,
body.carrito-flat-page .advanced-card::before{
  display:none !important;
  content:none !important;
}

body.carrito-flat-page .container > *,
body.carrito-flat-page .carrito-primary-layout,
body.carrito-flat-page .carrito-primary-main,
body.carrito-flat-page .carrito-side-column,
body.carrito-flat-page .carrito-grid,
body.carrito-flat-page .carrito-grid-main,
body.carrito-flat-page .carrito-station-split,
body.carrito-flat-page .carrito-station-toolbar,
body.carrito-flat-page .form-actions{
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
}

body.carrito-flat-page .mt-6,
body.carrito-flat-page .mt-8,
body.carrito-flat-page .mt-10,
body.carrito-flat-page .mt-12,
body.carrito-flat-page .mt-14,
body.carrito-flat-page .mt-16,
body.carrito-flat-page .mt-20,
body.carrito-flat-page .mb-10,
body.carrito-flat-page .mb-12,
body.carrito-flat-page .mb-15,
body.carrito-flat-page .my-0-10,
body.carrito-flat-page .my-0-12,
body.carrito-flat-page .table-wrap-spaced,
body.carrito-flat-page .section-header-spaced,
body.carrito-flat-page .section-header-tight,
body.carrito-flat-page .carrito-actions-card .carrito-station-toolbar,
body.carrito-flat-page .carrito-item-card,
body.carrito-flat-page .carrito-catalog-card,
body.carrito-flat-page .carrito-summary-content,
body.carrito-flat-page .carrito-summary-pay-actions,
body.carrito-flat-page .carrito-vip-card .form-actions,
body.carrito-flat-page .carrito-vip-card .form-help{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body.carrito-flat-page .carrito-items-box,
body.carrito-flat-page .carrito-items-box--station-fixed,
body.carrito-flat-page .carrito-summary-row,
body.carrito-flat-page .carrito-summary-profile,
body.carrito-flat-page .carrito-station-toolbar,
body.carrito-flat-page .carrito-station-toolbar > button,
body.carrito-flat-page .carrito-station-toolbar > label,
body.carrito-flat-page .btn,
body.carrito-flat-page .form-input,
body.carrito-flat-page .form-textarea,
body.carrito-flat-page select{
  border-radius:0 !important;
}

body.carrito-flat-page .carrito-title-line{
  display:flex !important;
  align-items:baseline !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  min-width:0 !important;
}

body.carrito-flat-page .carrito-title-line h1,
body.carrito-flat-page .carrito-station-inline{
  margin:0 !important;
}

body.carrito-flat-page .carrito-station-inline{
  color:var(--muted) !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  white-space:nowrap !important;
}

body.carrito-flat-page #carritoActionToolbar{
  gap:8px !important;
  padding:8px !important;
}

body.carrito-flat-page #carritoActionToolbar > .btn{
  border:1px solid var(--border) !important;
  border-radius:8px !important;
  background:linear-gradient(180deg, var(--surface-soft), var(--surface)) !important;
  box-shadow:0 7px 14px rgba(15,23,42,.18) !important;
  color:var(--text) !important;
  min-height:38px !important;
  padding:8px 12px !important;
}

body.carrito-flat-page #carritoActionToolbar > .btn:hover{
  box-shadow:0 9px 18px rgba(15,23,42,.22) !important;
  transform:translateY(-1px) !important;
}

body.carrito-flat-page .cart-btn-with-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  line-height:1.1 !important;
}

body.carrito-flat-page .cart-btn-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:1.45em !important;
  min-width:1.45em !important;
  height:1.45em !important;
  border-radius:5px !important;
  background:#2563eb !important;
  color:#ffffff !important;
  font-size:.78em !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1 !important;
  pointer-events:none !important;
}

body.carrito-flat-page .cart-btn-icon-success{background:#16a34a !important;}
body.carrito-flat-page .cart-btn-icon-info{background:#2563eb !important;}
body.carrito-flat-page .cart-btn-icon-warning{background:#f59e0b !important;color:#111827 !important;}
body.carrito-flat-page .cart-btn-icon-danger{background:#dc2626 !important;}
body.carrito-flat-page .cart-btn-icon-purple{background:#7c3aed !important;}
body.carrito-flat-page .cart-btn-icon-teal{background:#0d9488 !important;}
body.carrito-flat-page .cart-btn-icon-slate{background:#475569 !important;}
body.carrito-flat-page .cart-btn-icon-default{background:#64748b !important;}

body.carrito-flat-page .table .btn.cart-btn-with-icon,
body.carrito-flat-page .actions .btn.cart-btn-with-icon{
  gap:5px !important;
  padding-left:8px !important;
  padding-right:8px !important;
}

body.carrito-flat-page .table .cart-btn-icon,
body.carrito-flat-page .actions .cart-btn-icon{
  width:1.35em !important;
  min-width:1.35em !important;
  height:1.35em !important;
  font-size:.72em !important;
}

@media (max-width:900px){
  body.carrito-flat-page .carrito-workspace-card{
    display:flex !important;
    flex-direction:column !important;
  }

  body.carrito-flat-page .carrito-primary-layout{
    order:-20 !important;
  }

  body.carrito-flat-page .carrito-primary-main{
    order:-2 !important;
  }

  body.carrito-flat-page #scannerPanel{
    order:-100 !important;
  }

  body.carrito-flat-page #buscarProductosActions{
    order:-90 !important;
  }

  body.carrito-flat-page #carritoResumen{
    order:10 !important;
  }

  body.carrito-flat-page .carrito-side-column,
  body.carrito-flat-page #carritoTotalsPanel{
    order:20 !important;
  }
}

@media (max-width:900px){
  body.carrito-flat-page .carrito-scanner-compact-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(92px,118px) !important;
  }

  body.carrito-flat-page .carrito-scanner-compact-grid > .form-col,
  body.carrito-flat-page .carrito-customer-search-grid > .form-col,
  body.carrito-flat-page .carrito-customer-quick-grid > .form-col{
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    flex:initial !important;
  }

  body.carrito-flat-page .carrito-scanner-compact-grid .carrito-scanner-column,
  body.carrito-flat-page .carrito-scanner-compact-grid > .form-col:last-child{
    grid-column:1 / -1 !important;
  }

  body.carrito-flat-page .carrito-customer-search-grid{
    display:grid !important;
    grid-template-columns:minmax(112px,142px) minmax(0,1fr) !important;
  }

  body.carrito-flat-page .carrito-customer-search-grid > .form-col:last-child{
    grid-column:1 / -1 !important;
  }

  body.carrito-flat-page .carrito-customer-quick-grid{
    display:grid !important;
    grid-template-columns:minmax(86px,116px) minmax(0,1fr) !important;
  }

  body.carrito-flat-page .carrito-customer-quick-grid > .form-col:nth-child(3),
  body.carrito-flat-page .carrito-customer-quick-grid > .form-col:nth-child(5),
  body.carrito-flat-page .carrito-customer-quick-grid > .form-col:nth-child(6){
    grid-column:1 / -1 !important;
  }
}

@media (max-width:520px){
  body.carrito-flat-page .carrito-customer-search-grid,
  body.carrito-flat-page .carrito-customer-quick-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }

  body.carrito-flat-page .carrito-customer-search-grid > .form-col,
  body.carrito-flat-page .carrito-customer-quick-grid > .form-col{
    grid-column:auto !important;
  }
}
/* Energia solar empresarial */
.solar-page {
  background: var(--page-bg, #f7fafc);
  color: var(--text-color, #172033);
}

.solar-page .empresa-main {
  width: min(1440px, 100%);
  margin: 0 auto;
  padding: 18px;
}

.solar-page .page-heading.compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0 18px;
}

.solar-page .page-heading h1 {
  margin: 0;
  font-size: clamp(1.7rem, 2.4vw, 2.45rem);
  letter-spacing: 0;
}

.solar-page .page-heading p {
  margin: 4px 0 0;
  max-width: 760px;
  color: var(--muted-text, #536170);
}

.solar-status {
  flex-basis: 100%;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--accent-color, #2563eb) 28%, transparent);
  background: color-mix(in srgb, var(--accent-color, #2563eb) 8%, transparent);
  border-radius: 8px;
}

.solar-status.is-error {
  border-color: rgba(220, 38, 38, .35);
  background: rgba(220, 38, 38, .08);
  color: #b91c1c;
}

.solar-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.solar-kpi {
  border: 1px solid var(--border-color, #d8e0ea);
  background: var(--card-bg, #fff);
  border-radius: 8px;
  padding: 14px;
}

.solar-kpi span {
  display: block;
  color: var(--muted-text, #617083);
  font-size: .86rem;
}

.solar-kpi strong {
  display: block;
  margin-top: 6px;
  font-size: 1.55rem;
}

.solar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .7fr);
  gap: 14px;
  align-items: start;
}

.solar-layout-secondary {
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
  margin-top: 14px;
}

.solar-panel {
  margin: 0 0 14px;
  border: 1px solid var(--border-color, #d8e0ea);
  background: var(--card-bg, #fff);
  box-shadow: none;
}

.solar-panel h2,
.solar-panel h3 {
  margin: 0 0 8px;
  letter-spacing: 0;
}

.solar-panel p {
  color: var(--muted-text, #617083);
}

.solar-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.solar-form-alerts,
.solar-form-readings {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.solar-form label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: .9rem;
  color: var(--muted-text, #536170);
}

.solar-form-wide,
.solar-form-actions {
  grid-column: 1 / -1;
}

.solar-check {
  flex-direction: row !important;
  align-items: center;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid var(--border-color, #d8e0ea);
  border-radius: 8px;
  background: color-mix(in srgb, var(--card-bg, #fff) 88%, var(--accent-color, #2563eb) 4%);
}

.solar-check input {
  width: 18px;
  height: 18px;
}

.solar-form-actions,
.page-heading-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.solar-provider-grid,
.solar-list {
  display: grid;
  gap: 8px;
}

.solar-provider-card,
.solar-system-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid var(--border-color, #d8e0ea);
  background: color-mix(in srgb, var(--card-bg, #fff) 94%, var(--accent-color, #2563eb) 4%);
  border-radius: 8px;
  padding: 10px;
}

.solar-system-row {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}

.solar-provider-card span,
.solar-system-row span,
.solar-system-row small,
.solar-provider-card small {
  color: var(--muted-text, #617083);
}

.solar-table-wrap {
  width: 100%;
  overflow: auto;
}

.solar-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}

.solar-table th,
.solar-table td {
  padding: 8px 9px;
  border-bottom: 1px solid var(--border-color, #d8e0ea);
  text-align: left;
  vertical-align: top;
}

.solar-table th {
  color: var(--muted-text, #617083);
  font-weight: 700;
}

.solar-events-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 14px;
}

.empty-state {
  margin: 0;
  padding: 12px;
  border: 1px dashed var(--border-color, #d8e0ea);
  border-radius: 8px;
  color: var(--muted-text, #617083);
}

@media (max-width: 980px) {
  .solar-page .page-heading.compact,
  .solar-layout,
  .solar-layout-secondary,
  .solar-events-grid {
    grid-template-columns: 1fr;
    display: grid;
  }
  .solar-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .solar-form,
  .solar-form-alerts,
  .solar-form-readings {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .solar-page .empresa-main {
    padding: 12px;
  }
  .solar-kpi-grid {
    grid-template-columns: 1fr;
  }
  .solar-system-row {
    align-items: stretch;
    flex-direction: column;
  }
}
