/* Cristal y lima. Capa visual común, sin cambios en los circuitos del ERP. */
html[data-design="glass"] {
  color-scheme: light;
  --bg-body: #f7f8f5;
  --bg-main: #f7f8f5;
  --bg: #f7f8f5;
  --bg-sidebar: rgba(35, 38, 36, .72);
  --bg-card: rgba(255, 255, 255, .92);
  --surface: rgba(255, 255, 255, .92);
  --bg-input: #fafbf9;
  --bg-hover: #f0f3eb;
  --bg-deep: #f5f7f2;
  --bg-secondary: #f3f5f0;
  --border: #e1e6de;
  --border-color: #e1e6de;
  --border-light: #e7ebe3;
  --border-input: #d7ddd2;
  --text-primary: #202920;
  --text-secondary: #566257;
  --text-tertiary: #687568;
  --text-muted: #6b766b;
  --accent: #476332;
  --accent-bg: #edf3e2;
  --accent-border: #cbd8b8;
  --blue: #385e87;
  --orange: #9f621d;
  --purple: #6c5389;
  --red: #b83e38;
  --nav-active-bg: rgba(255, 255, 255, .16);
  --badge-bg: #eef1f3;
  --modal-bg: #fcfdf9;
  --table-header-bg: #f8faf6;
  --table-stripe: rgba(238, 242, 234, .16);
  --shadow: 0 2px 10px rgba(30, 42, 28, .035);
  --pre-section-bg: #f4f7ef;
  --pre-section-border: #dce4d4;
  --glass-blur: 32px;
  --glass-lime: rgba(204, 229, 146, .24);
  --glass-mint: #edf4e2;
  --glass-blue: #edf3f9;
  --glass-purple: #f1edf7;
  --glass-sand: #faf2e6;
}

html[data-design="glass"] body {
  height: 100dvh;
  background: var(--bg-body);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 15px;
  line-height: 1.45;
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
}
[data-design="glass"] body::before {
  content: '';
  position: fixed;
  inset: -70px;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 26% 34% at 2% 87%, var(--glass-lime), transparent 80%),
              radial-gradient(ellipse 31% 29% at 94% 4%, var(--glass-lime), transparent 80%),
              linear-gradient(135deg, #f5f6f3, #fdfefc 60%, #f6f7f4);
  filter: blur(44px);
}
[data-design="glass"] .app {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
[data-design="glass"] .main-content {
  min-width: 0;
  min-height: 0;
  background: rgba(255,255,255,.73) !important;
  border-radius: 0;
  border: 0;
}
[data-design="glass"] .view,
[data-design="glass"] .contab-panel {
  background: transparent !important;
  min-width: 0;
}
[data-design="glass"] .view { min-height: 0; padding: 30px 32px; }
[data-design="glass"] .view-header { gap: 20px; align-items: center; margin-bottom: 26px; }
[data-design="glass"] .view-header h1 { font-size: clamp(25px, 2.4vw, 34px); font-weight: 600; letter-spacing: -.9px; line-height: 1.2; }
[data-design="glass"] .view-subtitle { color: var(--text-secondary); font-size: 14px; margin-top: 7px; }
[data-design="glass"] .view-header-actions { flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; }
[data-design="glass"] :is(button, input, select, textarea) { font-family: inherit; }
[data-design="glass"] :is(button, a, input, select, textarea):focus-visible { outline: 2px solid #6a884c; outline-offset: 3px; }
[data-design="glass"] ::selection { background: #e3edcc; color: #263a23; }
[data-design="glass"] :is(.nav-menu, .view, .modal-content, .table-container, .gm-lista, .chatia-convs) { scrollbar-width: thin; scrollbar-color: #bfc7ba transparent; }
/* También WebKit: el tema claro heredado pintaba una franja blanca en el menú. */
[data-design="glass"] ::-webkit-scrollbar { width: 6px; height: 6px; }
[data-design="glass"] ::-webkit-scrollbar-track,
[data-design="glass"] ::-webkit-scrollbar-corner { background: transparent; }
[data-design="glass"] ::-webkit-scrollbar-thumb { background: #bfc7ba; border-radius: 6px; }
[data-design="glass"] .nav-menu { scrollbar-color: rgba(255,255,255,.26) transparent; }
[data-design="glass"] .nav-menu::-webkit-scrollbar-thumb { background: rgba(255,255,255,.26); }
[data-design="glass"] .nav-menu::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.42); }

/* Menú: el cristal conserva contraste aunque el fondo sea blanco. */
[data-design="glass"] .nav-sidebar {
  width: 240px;
  min-width: 240px;
  background: var(--bg-sidebar) !important;
  border: 0 !important;
  border-radius: 0;
  min-height: 0;
  box-shadow: none;
  backdrop-filter: blur(var(--glass-blur)) saturate(.7);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(.7);
  --text-primary: #f5f6f1;
  --text-secondary: #e3e7de;
  --text-tertiary: #d4dacf;
  --text-muted: #d4dacf;
  --accent: #eff5df;
  --bg-hover: rgba(255,255,255,.07);
  --border: rgba(255,255,255,.13);
}
[data-design="glass"] .nav-brand { gap: 15px; padding: 26px 23px 20px; border: 0; }
[data-design="glass"] .nav-logo { background: rgba(209,224,167,.79) !important; color: #35412b !important; border-radius: 7px; font-weight: 600; font-size: 23px; box-shadow: none; }
[data-design="glass"] .nav-brand-text { color: #f5f6f1 !important; font-size: 24px; font-weight: 600; letter-spacing: -.6px; }
[data-design="glass"] .nav-menu { min-height: 0; padding: 13px 10px; gap: 4px; overflow-x: hidden; overscroll-behavior-y: contain; }
[data-design="glass"] .nav-menu > * { flex-shrink: 0; }
[data-design="glass"] .nav-sidebar :is(.nav-item, .nav-group-head) {
  color: #f0f3eb !important;
  background: transparent;
  border: 0;
  border-radius: 10px;
  padding: 12px 14px;
  min-height: 46px;
  gap: 16px;
  font-size: 14px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  box-shadow: none;
}
[data-design="glass"] .nav-sidebar :is(.nav-item, .nav-group-head) svg { color: inherit !important; stroke: currentColor !important; stroke-width: 1.7; flex-shrink: 0; }
[data-design="glass"] .nav-sidebar :is(.nav-item, .nav-group-head):hover { background: rgba(255,255,255,.075) !important; }
[data-design="glass"] .nav-sidebar :is(.nav-item.active, .nav-group.active > .nav-group-head, .nav-group-head.active) { background: rgba(255,255,255,.16) !important; color: #fff !important; }
[data-design="glass"] .nav-group { border: 0; margin: 0; background: none; }
[data-design="glass"] .nav-group-body .nav-item { padding-left: 29px; font-size: 13px; }
[data-design="glass"] .nav-group-chevron { opacity: .65; }
[data-design="glass"] .nav-footer { border-top: 1px solid rgba(255,255,255,.14) !important; padding: 18px; background: transparent; }
[data-design="glass"] .nav-user-name { color: #f5f6f1 !important; font-weight: 500; font-size: 14px; }
[data-design="glass"] .nav-user-role { color: #d6ddcf !important; font-size: 12px; }
[data-design="glass"] .nav-user-avatar { background: rgba(211,224,172,.24) !important; color: #f5f6f1 !important; border-radius: 50%; font-weight: 500; }
[data-design="glass"] .btn-logout { color: #e5e9e0 !important; border-color: transparent; }
[data-design="glass"] .nav-badge { background: #a4483d !important; color: #fff !important; }

/* Superficies comunes en todos los módulos. */
[data-design="glass"] :is(.res-card, .contab-dash-card) { text-align: left; }

/* Indicadores: color suave detrás del importe, no en un icono voluminoso. */
[data-design="glass"] :is(.stats-grid, .fin-kpis, .ctz-kpis) { gap: 16px; }
[data-design="glass"] :is(.stat-card, .fin-kpi, .ctz-kpi, .tf-stat) {
  background: var(--glass-mint) !important;
  border: 1px solid rgba(220,229,210,.6) !important;
  border-radius: 14px;
  padding: 21px 22px;
  min-width: 0;
  box-shadow: none !important;
}
[data-design="glass"] :is(.stat-card, .fin-kpi, .ctz-kpi, .tf-stat):nth-child(4n+2),
[data-design="glass"] .stat-card.stat-blue { background: var(--glass-blue) !important; border-color: #e0e8f0 !important; }
[data-design="glass"] :is(.stat-card, .fin-kpi, .ctz-kpi, .tf-stat):nth-child(4n+3),
[data-design="glass"] .stat-card.stat-purple { background: var(--glass-purple) !important; border-color: #e7e0ee !important; }
[data-design="glass"] :is(.stat-card, .fin-kpi, .ctz-kpi, .tf-stat):nth-child(4n+4),
[data-design="glass"] .stat-card.stat-orange,
[data-design="glass"] .fin-kpi:has(.fin-kpi-rojo) { background: var(--glass-sand) !important; border-color: #eee4d6 !important; }
[data-design="glass"] .stat-card.stat-green { background: var(--glass-mint) !important; }
[data-design="glass"] :is(.stat-value, .fin-kpi-val, .ctz-kpi-val, .tf-stat-val, .cs2-val) { color: #202920 !important; font-size: clamp(23px, 2.1vw, 31px); font-weight: 600; letter-spacing: -.6px; font-variant-numeric: tabular-nums; line-height: 1.2; overflow-wrap: anywhere; }
[data-design="glass"] :is(.stat-label, .fin-kpi-lbl, .ctz-kpi-lbl, .tf-stat-lbl, .cs2-lbl) { font-size: 13px; color: #556254 !important; font-weight: 400; text-transform: none; letter-spacing: 0; line-height: 1.4; }
[data-design="glass"] .fin-kpi { gap: 12px; }
[data-design="glass"] .stat-icon { width: 32px; height: 32px; min-width: 32px; border-radius: 0; background: transparent !important; }
[data-design="glass"] .stat-icon svg { width: 26px; height: 26px; stroke-width: 1.7; stroke: #62794c !important; }
[data-design="glass"] .stat-blue .stat-icon svg { stroke: #527494 !important; }
[data-design="glass"] .stat-purple .stat-icon svg { stroke: #7a6897 !important; }
[data-design="glass"] .stat-orange .stat-icon svg { stroke: #987445 !important; }
[data-design="glass"] :is(.ctz-kpi-ico, .ctz-kpi-ico svg) { background: transparent !important; }
[data-design="glass"] .fin-kpi-rojo { color: #9d571b !important; }
[data-design="glass"] .contab-stats2 .stat-card { align-items: flex-start; }

/* Botones discretos: el estado destructivo mantiene su significado. */
[data-design="glass"] :is(.btn, .btn-ctz-verde, .sel2-btn, .gm-pager-btn, .ctz-menu-btn, .chatia-nueva) { border-radius: 9px; font-size: 14px; font-weight: 500; min-height: 39px; box-shadow: none; letter-spacing: 0; }
/* La acción principal de cada pantalla (nuevo, registrar, guardar, enviar) sí destaca: verde relleno. */
[data-design="glass"] .btn-primary { background: var(--action) !important; color: #fff !important; border: 1px solid var(--action) !important; font-weight: 600; box-shadow: 0 1px 2px rgba(32,48,21,.12) !important; }
[data-design="glass"] .btn-primary:hover:not(:disabled) { background: var(--action-hover) !important; border-color: var(--action-hover) !important; color: #fff !important; }
[data-design="glass"] .btn-primary:disabled { opacity: .55; }
[data-design="glass"] .btn-danger { background: #fff0ed !important; border: 1px solid #efc8c3 !important; color: #a73530 !important; }
[data-design="glass"] .btn-danger:hover { background: #fbe2de !important; }
[data-design="glass"] :is(.gm-redactar, .emp-lupa) { background: #edf3e3; color: #476332; border: 1px solid #d7e1c8; box-shadow: none; }
[data-design="glass"] .gm-toolbar .gm-redactar { background: #edf3e3; color: #476332; border-color: #d7e1c8; }
[data-design="glass"] .gm-toolbar .gm-redactar:hover { background: #e2ebd5; }
[data-design="glass"] .btn-small { min-height: 31px; font-size: 12px; border-radius: 7px; }
[data-design="glass"] :is(.btn-icon, .btn-action, .btn-icon-action) { border-radius: 7px; min-height: 30px; }
[data-design="glass"] :is(.btn-icon, .btn-action):hover { background: #edf2e5; }
[data-design="glass"] button:disabled { opacity: .5; cursor: not-allowed; }

/* Filtros y pestañas: superficies ligeras, selección inequívoca. */
[data-design="glass"] :is(.filter-bar, .contab-panel-header, .ctz-toolbar, .contab-header-actions, .form-actions) { gap: 10px; }
[data-design="glass"] :is(.filter-btn, .doc-tab, .contab-tab, .tes-tab, .sp-tab, .gm-cuenta-tab) { font-weight: 500; font-size: 14px; text-transform: none; letter-spacing: 0; }
[data-design="glass"] :is(.filter-btn, .gm-cuenta-tab) { border-radius: 9px; border-width: 1px; }
[data-design="glass"] :is(.filter-btn.active, .gm-cuenta-tab.active) { background: #edf3e3 !important; border-color: #c4d3b2 !important; color: #3c572b !important; }
[data-design="glass"] .gm-cuenta-ini { display: none; }
[data-design="glass"] .gm-cuenta-tab .gm-cuenta-badge { background: #e5ecd9; color: #405334; border: 0; border-radius: 5px; font-weight: 500; box-shadow: none; }
[data-design="glass"] :is(.contab-tab, .doc-tab, .tes-tab, .sp-tab) { border-radius: 0; background: transparent !important; }
[data-design="glass"] :is(.contab-tab.active, .doc-tab.active, .tes-tab.active, .sp-tab.active) { color: #3c572b !important; border-bottom-color: #6a8351 !important; }
[data-design="glass"] .contab-section-head { border-color: var(--border); gap: 18px; margin-bottom: 22px; }
[data-design="glass"] .contab-section-head h2 { font-size: 25px; font-weight: 600; letter-spacing: -.5px; }
[data-design="glass"] #tes-vista { background: #f5f7f1; border: 1px solid #e0e6d9; border-radius: 11px; }
[data-design="glass"] :is(#tes-modo, #tes-vista) .filter-btn { font-weight: 500; box-shadow: none; }
[data-design="glass"] :is(#tes-modo, #tes-vista) .filter-btn.active { background: #edf3e3 !important; color: #3c572b !important; border-color: #c4d3b2 !important; box-shadow: none; }

/* Listados y formularios conservan una base suficiente para leer datos. */
[data-design="glass"] .table-container { background: rgba(255,255,255,.90) !important; border: 1px solid #e6eae2; border-radius: 11px; box-shadow: none; }
[data-design="glass"] :is(.data-table, .ctz-tabla, .chatia-tabla, .fin-table, .conc-tabla) { background: rgba(255,255,255,.94) !important; border-collapse: collapse; font-variant-numeric: tabular-nums; }
[data-design="glass"] :is(.data-table, .ctz-tabla, .chatia-tabla, .fin-table, .conc-tabla) th { padding-top: 13px; padding-bottom: 13px; background: var(--table-header-bg) !important; color: #5c685b !important; font-weight: 500; text-transform: none; letter-spacing: 0; font-size: 13px; border-color: #e7ebe3 !important; }
[data-design="glass"] :is(.data-table, .ctz-tabla, .chatia-tabla, .fin-table, .conc-tabla) td { padding-top: 12px; padding-bottom: 12px; color: #344332; border-color: #e8ece5 !important; font-size: 14px; }
[data-design="glass"] .data-table tr:hover td { background: #f2f5ec !important; }
[data-design="glass"] .data-table .total-row td { background: #f1f5e9 !important; color: #273824 !important; }
[data-design="glass"] :is(.badge, .ctz-pill, .cs2-pill, .tipo-badge, .tf-badge) { font-weight: 500; font-size: 12px; border-radius: 99px; padding: 4px 10px; letter-spacing: 0; }
[data-design="glass"] .badge:empty { display: none; }
[data-design="glass"] :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]) {
  background-color: #fcfdfb !important;
  color: #273324 !important;
  border-color: #d7dfd0 !important;
  border-radius: 8px;
  font-size: 14px;
  box-shadow: none;
}
[data-design="glass"] :is(input, select, textarea):focus { border-color: #94ac77 !important; }
[data-design="glass"] :is(input, textarea)::placeholder { color: #798573 !important; opacity: 1; }
[data-design="glass"] :is(input[type="checkbox"], input[type="radio"]) { accent-color: #6b8549; }
[data-design="glass"] :is(.form-group label, .ctz-campo label, .cw-section .form-group label) { color: #52614b; font-size: 13px; text-transform: none; letter-spacing: 0; font-weight: 500; }
[data-design="glass"] :is(.factura-totales, .wizard-resumen, .asiento-lineas-container, .af-asiento-section) { background: #f5f8ef !important; border-color: #dfe7d5 !important; border-radius: 10px; }
[data-design="glass"] .dir-destacada input { background-color: #f6f9ef !important; }
[data-design="glass"] .terc-bloque { background: #fff; border: 1px solid #e1e7db; border-radius: 12px; padding: 18px; }
[data-design="glass"] :is(.terc-bloque-tit, .cw-section-title, .ctz-seccion) { text-transform: none; letter-spacing: 0; font-weight: 600; font-size: 14px; color: #405337; }
[data-design="glass"] .modal :is(.form-group label, .ctz-campo label) { text-transform: none !important; letter-spacing: 0 !important; font-weight: 500 !important; font-size: 13px !important; }
[data-design="glass"] #modal-tercero .terc-chip input:checked + span { background: #edf3e3; color: #3c572b; border-color: #bdcea8; }

/* Ventanas, buscadores y confirmaciones. Sin difuminar su contenido. */
[data-design="glass"] .modal { background: rgba(32,40,29,.23) !important; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 20px; }
[data-design="glass"] .modal-content { background: rgba(252,253,249,.98) !important; border: 1px solid rgba(255,255,255,.85) !important; border-radius: 18px; box-shadow: 0 22px 90px rgba(28,41,22,.18) !important; max-height: calc(100dvh - 40px); }
[data-design="glass"] .modal-header { border-color: #e3e9db; padding-bottom: 16px; margin-bottom: 22px; gap: 16px; }
[data-design="glass"] .modal-header h3 { font-size: 23px; letter-spacing: -.45px; font-weight: 600; }
[data-design="glass"] :is(.modal-content > .form-actions:last-child, .modal-form > .form-actions:last-child, .modal-form > form > .form-actions:last-child) { background: #fcfdf9 !important; border-color: #e1e8d9; }
[data-design="glass"] :is(.search-dropdown, .sel2-menu, .gm-ctx, .emp-panel, .ui-confirm-box, .datepicker-popover) { background: #fcfdf9 !important; border: 1px solid #dce4d3; border-radius: 12px; box-shadow: 0 12px 38px rgba(32,45,24,.14); }
[data-design="glass"] #login-screen { background: transparent !important; padding: 24px; }
[data-design="glass"] #login-screen > div { width: min(440px, 100%) !important; background: rgba(255,255,255,.81) !important; border: 1px solid rgba(255,255,255,.85) !important; border-radius: 20px !important; box-shadow: 0 20px 65px rgba(35,49,25,.085) !important; backdrop-filter: blur(32px); -webkit-backdrop-filter: blur(32px); }
[data-design="glass"] .login-user-card { background: #f8faf4; border: 1px solid #e0e7d7; border-radius: 11px; }
[data-design="glass"] .login-user-card:hover { background: #edf3e2; border-color: #c1d0ab; }

/* Calendarios, inventario, chat y correo comparten la misma base. */
[data-design="glass"] :is(.gm-carpeta.active, .gm-item.active, .email-item.active, .chatia-conv-activa) { background: #edf3e3 !important; color: #3f5a2e; border-color: #cbd7ba; }
[data-design="glass"] :is(.chatia-burbuja-user, .chatia-burbuja.usuario, .ctz-chat-user) { background: #eaf1dd !important; color: #263723; }
[data-design="glass"] :is(.chatia-burbuja, .chatia-conv, .gm-msg-card, .reply-panel) { border-color: #dfe6d7; box-shadow: none; }
[data-design="glass"] .maintenance-status { background: #fafbf7; border-color: #dde5d3; border-radius: 12px; }
[data-design="glass"] .maintenance-warning { background: #fffaf0; border-color: #e4d4ae; }

@media (max-width: 1250px) {
  [data-design="glass"] .nav-sidebar { width: 216px; min-width: 216px; }
  [data-design="glass"] .nav-brand { padding-left: 19px; gap: 12px; }
  [data-design="glass"] .view { padding: 25px 24px; }
  [data-design="glass"] :is(.stat-card, .fin-kpi, .ctz-kpi, .tf-stat) { padding: 18px 16px; }
  [data-design="glass"] :is(.stats-grid, .fin-kpis) { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  [data-design="glass"] .view-header { flex-wrap: wrap; }
}
@media (max-width: 800px) {
  [data-design="glass"] .main-content { padding: 56px 0 0; }
  [data-design="glass"] .nav-sidebar { inset: 0 auto 0 0; width: min(280px, 85vw); min-width: 0; padding-top: 48px; background: rgba(42,47,39,.94) !important; transform: translateX(-100%); }
  [data-design="glass"] .mobile-nav-open .nav-sidebar { transform: translateX(0); }
  [data-design="glass"] .nav-brand { padding-top: 14px; }
  [data-design="glass"] #mobile-nav-toggle { top: 10px; left: 16px; min-height: 40px; border-radius: 12px; background: rgba(255,255,255,.82); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid #d8e0cf; color: #33462c; box-shadow: 0 4px 14px rgba(36,47,26,.08); }
  [data-design="glass"] #mobile-nav-toggle:hover { background: #fff; border-color: #b9c9a6; }
  [data-design="glass"] .mobile-nav-open #mobile-nav-toggle { background: #edf3e3; z-index: 1102; }
  [data-design="glass"] .mobile-nav-open #mobile-nav-backdrop { background: rgba(33,43,26,.25); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  /* El menú no debe quedar por encima de los formularios ni de los asistentes. */
  [data-design="glass"] body:has(.modal:not(.hidden), .conc-wizard:not(.hidden)) :is(#mobile-nav-toggle, #mobile-nav-backdrop, .nav-sidebar) { visibility: hidden; }
  [data-design="glass"] .view { padding: 18px 16px; }
  [data-design="glass"] .view-header { align-items: flex-start; margin-bottom: 22px; }
  [data-design="glass"] .view-header-actions { justify-content: flex-start; max-width: 100%; }
  [data-design="glass"] :is(.stats-grid, .fin-kpis, .ctz-kpis, .dashboard-grid) { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 12px; }
  [data-design="glass"] :is(.gm-layout, .chatia-layout, .ctz-layout) { grid-template-columns: 1fr; }
  [data-design="glass"] .ctz-w-form { width: 100%; max-width: 100%; }
  [data-design="glass"] .ctz-w-cuerpo { flex-direction: column; overflow: auto; }
  [data-design="glass"] .ctz-w-pdf { min-height: 300px; }
  [data-design="glass"] .table-container { overflow-x: auto; max-width: 100%; }
  [data-design="glass"] .modal { padding: 10px; }
  [data-design="glass"] .modal-content { max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 14px; }
  [data-design="glass"] :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]) { font-size: 16px; max-width: 100%; }
}
@media (max-width: 520px) {
  [data-design="glass"] :is(.stat-card, .fin-kpi, .ctz-kpi, .tf-stat) { padding: 16px 13px; }
  [data-design="glass"] :is(.stat-value, .fin-kpi-val, .ctz-kpi-val, .tf-stat-val, .cs2-val) { font-size: 23px; white-space: normal; }
  [data-design="glass"] .stat-card { gap: 10px; flex-wrap: wrap; }
  [data-design="glass"] .stat-icon { width: 25px; min-width: 25px; }
  [data-design="glass"] :is(.dashboard-grid, .ctz-kpis, .res-cards, .admin-grid) { grid-template-columns: 1fr !important; }
  [data-design="glass"] .view-header h1 { font-size: 27px; }
  [data-design="glass"] .filter-bar { gap: 8px; }
  [data-design="glass"] .form-row { flex-wrap: wrap; }
  [data-design="glass"] .form-row > .form-group { min-width: min(200px, 100%); }
  [data-design="glass"] #modal-tercero .ctz-grid { grid-template-columns: minmax(0,1fr); }
  [data-design="glass"] .btn { white-space: normal; }
  [data-design="glass"] .contab-section-head { flex-wrap: wrap; }
}
/* La reducción de movimiento del ERP vive en un solo sitio: tema-interfaz.css. */
@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
  [data-design="glass"] .nav-sidebar { background: #565b51 !important; }
  [data-design="glass"] .main-content { background: #fafbf8 !important; }
}
@media print {
  [data-design="glass"] body::before { display: none; }
  [data-design="glass"] .app { margin: 0; height: auto; box-shadow: none; border: 0; }
  [data-design="glass"] :is(.nav-sidebar, #mobile-nav-toggle, #mobile-nav-backdrop) { display: none !important; }
  [data-design="glass"] :is(.main-content, .view) { overflow: visible; height: auto; padding: 0; background: #fff !important; }
}


/* ===== Compatibilidad con los elementos nuevos del sistema visual de producción (12-sep-2026) =====
   Estética «cristal y lima» (barra oscura). Aquí solo se estilan las clases nuevas
   que añadieron ui-design.js, el asistente de productos y el modal de Ajustes. */
html[data-design="glass"] { --action:#4e6dab; --action-hover:#456299; --on-action:#fff; --overlay:rgba(28,34,28,.25); --popover-shadow:0 12px 35px rgba(18,29,19,.13); --border-highlight:rgba(255,255,255,.8); --danger:#b83e38; --danger-bg:#fbeeed; --success:#4e7041; --warning:#8b611b; --warning-bg:#faf2dd; --neutral-bg:#eff1f0; --neutral-fg:#5e6862; --focus:#819c5f; --sidebar-solid:#2a2f27; }
[data-design="glass"] .ui-breadcrumb { color:var(--text-secondary); font-size:12px; margin:0 0 18px; display:flex; align-items:center; gap:10px; }
[data-design="glass"] .ui-breadcrumb span:last-child { color:var(--text-primary); }
[data-design="glass"] .data-table :is(.ui-cell-money,.ui-cell-ref) { white-space:nowrap; font-variant-numeric:tabular-nums; }
[data-design="glass"] .data-table .ui-cell-money { text-align:right; }
[data-design="glass"] .ui-company { display:flex; align-items:center; gap:12px; }
[data-design="glass"] .ui-company-avatar { width:32px; height:34px; flex-shrink:0; display:grid; place-items:center; border-radius:7px; background:var(--accent-bg); color:var(--text-primary); font-size:12px; font-weight:500; }
[data-design="glass"] .ui-confirm-overlay { background:var(--overlay); backdrop-filter:blur(7px); }
[data-design="glass"] .ui-icon { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; color:inherit; flex-shrink:0; }
[data-design="glass"] .ui-line-icon { display:block; }
[data-design="glass"] :is(button,h3)>.ui-icon { margin-right:5px; }
[data-design="glass"] .ui-company-detail { display:block; margin-top:3px; color:var(--text-secondary); font-size:12px; }
[data-design="glass"] .ui-company-name { display:block; min-width:0; }
[data-design="glass"] .ui-analytics-filters { padding-bottom:18px; margin-bottom:22px!important; border-bottom:1px solid var(--border); }
[data-design="glass"] .rdp-pop { backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); width:min(332px,calc(100vw - 24px)); background:var(--modal-bg); border-radius:11px; box-shadow:var(--popover-shadow); }
[data-design="glass"] .asi-ia-ico { background:var(--accent-bg); color:var(--accent); }
[data-design="glass"] #modal-ajustes .appearance-title { margin:0 0 6px; font-size:16px; }
[data-design="glass"] #modal-ajustes .appearance-help { margin:0 0 20px; font-size:13px; color:var(--text-secondary); }
[data-design="glass"] .appearance-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
[data-design="glass"] .appearance-choice { padding:12px; background:var(--bg-card); border:1px solid var(--border-input); border-radius:12px; color:var(--text-primary); text-align:left; font-size:14px; box-shadow:var(--shadow); }
[data-design="glass"] .appearance-choice[aria-pressed="true"] { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-border); }
[data-design="glass"] .appearance-choice-label { display:flex; align-items:center; justify-content:space-between; margin-top:12px; }
[data-design="glass"] .appearance-check { opacity:0; color:var(--accent); }
[data-design="glass"] .appearance-choice[aria-pressed="true"] .appearance-check { opacity:1; }
[data-design="glass"] .appearance-preview { display:block; height:78px; border-radius:7px; border:1px solid rgba(120,130,120,.25); background:linear-gradient(90deg,#e8efdf 0 22%,transparent 22%),linear-gradient(#fff,#f1f3ee); position:relative; overflow:hidden; }
[data-design="glass"] .appearance-preview::after { content:''; position:absolute; left:32%; top:18px; right:10px; height:40px; background:linear-gradient(#eaf1df 0 35%,transparent 35% 50%,#fff 50%); border:1px solid #e0e5da; border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.07); }
[data-design="glass"] .appearance-preview-dark { background:linear-gradient(90deg,#30352f 0 22%,transparent 22%),linear-gradient(#242826,#292d29); }
[data-design="glass"] .appearance-preview-dark::after { background:linear-gradient(#424b39 0 35%,transparent 35% 50%,#343a33 50%); border-color:#4d564a; }
[data-design="glass"] :is(.ai-assist,.asi-ia,#ncr-form-inline,.ctz-chat) { background:linear-gradient(135deg,var(--glass-mint),var(--bg-card))!important; border:1px solid var(--accent-border)!important; border-radius:16px; padding:22px; margin-bottom:26px; box-shadow:0 5px 18px rgba(48,75,30,.07),inset 0 1px 0 var(--border-highlight); }
[data-design="glass"] .ai-assist-head { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
[data-design="glass"] .ai-assist-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; flex-shrink:0; border-radius:11px; background:var(--accent-bg); border:1px solid var(--accent-border); color:var(--accent); }
[data-design="glass"] .ai-assist-title { display:block; font-size:15px; font-weight:600; color:var(--text-primary); margin:0 0 5px; }
[data-design="glass"] .ai-assist p { margin:0; color:var(--text-secondary); font-size:13px; line-height:1.55; }
[data-design="glass"] .ai-assist textarea { min-height:92px; width:100%; resize:vertical; background:var(--bg-card)!important; }
[data-design="glass"] .ai-assist-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:14px; }
[data-design="glass"] .ai-assist .ai-assist-status { margin-top:12px; font-size:13px; color:var(--accent); }
[data-design="glass"] .ai-assist-status[data-error="true"] { color:var(--danger); }
[data-design="glass"] .ai-assist .ai-assist-note { font-size:12px; }
[data-design="glass"] .modal .ai-assist-title { font-size:15px!important; font-weight:600!important; color:var(--text-primary); }
[data-design="glass"] .ui-confirm-overlay { background:var(--overlay); backdrop-filter:blur(7px); }
[data-design="glass"] .ui-confirm-box { background:var(--modal-bg)!important; border:1px solid var(--border); border-radius:12px; box-shadow:var(--popover-shadow); }
[data-design="glass"] .nav-settings { width:100%; display:flex; align-items:center; gap:12px; padding:10px 12px; margin-bottom:12px; min-height:42px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(255,255,255,.07); color:#f0f3eb; font-size:14px; font-weight:400; text-align:left; cursor:pointer; font-family:inherit; }
[data-design="glass"] .nav-settings:hover { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.24); color:#fff; }
[data-design="glass"] .nav-settings svg { flex-shrink:0; }
/* Chat: la burbuja del usuario es .chatia-usuario (no .chatia-burbuja-user): fondo claro y texto legible */
[data-design="glass"] .chatia-usuario { background:#eaf1dd!important; color:#263723!important; }
[data-design="glass"] .chatia-usuario :is(code,a) { color:#263723; }
/* Sobre fondo verde oscuro (--accent) el texto va en blanco: avatares del chat de oficina, pasos de asistentes, numeración y selecciones */
[data-design="glass"] :is(.cw-change, .cw-nuevo, .ra-primary):hover { color:#fff!important; }

/* Variables de estado que usan los distintivos (roles, avisos) */
html[data-design="glass"] { --success-bg:#edf4e5; --info:#385e87; --info-bg:#edf3f8; }
/* ===== Lista de terceros ===== */
[data-design="glass"] .ter-fila { cursor:pointer; }
[data-design="glass"] .ter-fila:hover td { background:var(--bg-hover); }
[data-design="glass"] .ter-fila td { vertical-align:middle; padding-top:12px; padding-bottom:12px; }
[data-design="glass"] .ter-avatar { width:36px; height:36px; border-radius:10px; background:var(--accent-bg); color:var(--accent); font-size:12px; font-weight:700; display:inline-grid; place-items:center; flex-shrink:0; }
[data-design="glass"] .ui-company { display:flex; align-items:center; gap:12px; }
[data-design="glass"] .ui-company-name { display:block; min-width:0; }
[data-design="glass"] .ui-company-detail { display:block; margin-top:2px; color:var(--text-secondary); font-size:12px; font-weight:400; }
[data-design="glass"] .ter-veh { display:inline-flex; align-items:center; gap:4px; margin-left:8px; padding:2px 8px; border-radius:999px; background:var(--bg-main); border:1px solid var(--border); font-size:11.5px; font-weight:600; color:var(--text-secondary); vertical-align:middle; }
[data-design="glass"] .ter-nif { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12.5px; letter-spacing:.3px; color:var(--text-primary); background:transparent; padding:0; }
[data-design="glass"] .ter-loc { font-weight:500; }
[data-design="glass"] .ter-vacio { color:var(--text-tertiary); }
[data-design="glass"] .ter-contacto { display:flex; flex-direction:column; gap:3px; min-width:0; }
[data-design="glass"] .ter-cto { display:inline-flex; align-items:center; gap:6px; color:var(--text-primary); text-decoration:none; font-size:13px; max-width:230px; }
[data-design="glass"] .ter-cto span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
[data-design="glass"] .ter-cto svg { color:var(--text-tertiary); flex-shrink:0; }
[data-design="glass"] .ter-cto:hover { color:var(--accent); }
[data-design="glass"] .ter-cnt { display:inline-block; margin-left:7px; padding:1px 7px; border-radius:999px; background:rgba(0,0,0,.06); font-size:11px; font-weight:700; color:var(--text-secondary); }
[data-design="glass"] .filter-btn.active .ter-cnt { background:rgba(71,99,50,.15); color:var(--accent); }
/* Roles con color propio */
[data-design="glass"] .badge.badge-role-cliente { background:#e6f1dc!important; color:#3f6a2a!important; }
[data-design="glass"] .badge.badge-role-proveedor { background:#e8eef7!important; color:#3b5b85!important; }
[data-design="glass"] #tabla-terceros .badge { margin:2px 4px 2px 0; }
[data-design="glass"] #tabla-terceros .action-btns { justify-content:flex-end; }

/* Las tablas anchas se desplazan dentro de su tarjeta en vez de cortarse por la derecha */
[data-design="glass"] .table-container { overflow-x:auto; max-width:100%; }
[data-design="glass"] .data-table td .action-btns { flex-wrap:nowrap; white-space:nowrap; }
[data-design="glass"] .data-table td:first-child strong { white-space:nowrap; }

/* Barra de desplazamiento horizontal siempre visible en tablas anchas (en Mac/iPad el sistema la oculta y parece que la tabla está cortada) */
[data-design="glass"] .table-container { scrollbar-width:thin; scrollbar-color:#b3bcae transparent; }
[data-design="glass"] .table-container::-webkit-scrollbar { height:9px; width:9px; }
[data-design="glass"] .table-container::-webkit-scrollbar-thumb { background:#b3bcae; border-radius:6px; border:2px solid transparent; background-clip:padding-box; }
[data-design="glass"] .table-container::-webkit-scrollbar-track { background:transparent; }
/* Tablas de muchas columnas: texto y celdas más compactos para que quepan en pantalla */
[data-design="glass"] .ra-primary { white-space:nowrap; padding:5px 9px; }

/* Iconos sobre las cajas verdes (escáner, conciliación, contabilizador, IA) en blanco */
[data-design="glass"] :is(.esc-cab-ico, .conc-imp-ico, .ctz-hero-ico, .esc-cab-ico svg, .conc-imp-ico svg, .ctz-hero-ico svg) { color:#fff!important; stroke:#fff; }
[data-design="glass"] .asi-ia-ico { background:var(--action)!important; color:#fff!important; }

/* Panel de Contabilidad: tres bloques redondeados, cada uno con su lista de accesos */
[data-design="glass"] .contab-dash-grupos { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; margin-top:8px; align-items:start; }
[data-design="glass"] .contab-dash-grupo { background:rgba(255,255,255,.72); border:1px solid #e0e6da; border-radius:22px; padding:18px 16px 14px; box-shadow:0 1px 2px rgba(32,51,25,.03), 0 10px 30px rgba(32,51,25,.05); }
[data-design="glass"] .contab-dash-grupo:nth-child(1) { background:#f1f6ec; border-color:#dfe8d6; }
[data-design="glass"] .contab-dash-grupo:nth-child(2) { background:#eef3f7; border-color:#d9e3ec; }
[data-design="glass"] .contab-dash-grupo:nth-child(3) { background:#f8f2ea; border-color:#eadfcf; }
[data-design="glass"] .contab-dash-grupo-cab { display:flex; flex-direction:column; gap:2px; margin:0 6px 12px; padding:0; border:0; }
[data-design="glass"] .contab-dash-grupo-cab h2 { margin:0; font-size:16px; font-weight:700; letter-spacing:-.3px; color:var(--text-primary); }
[data-design="glass"] .contab-dash-grupo-cab span { font-size:12.5px; color:var(--text-secondary); }
[data-design="glass"] .contab-dash-grupo .contab-dash { display:flex; flex-direction:column; gap:6px; margin:0; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card { flex-direction:row; align-items:center; gap:14px; padding:11px 12px; border-radius:16px; border:1px solid rgba(255,255,255,.9); background:rgba(255,255,255,.78)!important; box-shadow:none!important; transform:none; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card:hover { background:#fff!important; border-color:#c9d5bc!important; box-shadow:0 6px 18px rgba(32,51,25,.08)!important; transform:translateX(2px); }
[data-design="glass"] .contab-dash-grupo .contab-dash-card .cdc-ico { width:44px; height:44px; border-radius:14px; margin:0; flex-shrink:0; background:#fff!important; border:1px solid #dfe6d7!important; color:#476332!important; }
[data-design="glass"] .contab-dash-grupo:nth-child(2) .contab-dash-card .cdc-ico { color:#3b5b85!important; border-color:#d3dfe9!important; }
[data-design="glass"] .contab-dash-grupo:nth-child(3) .contab-dash-card .cdc-ico { color:#9a5a1c!important; border-color:#ead9c2!important; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card .cdc-t { font-size:14px; font-weight:650; line-height:1.2; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card .cdc-d { font-size:12px; line-height:1.3; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card > .cdc-t, [data-design="glass"] .contab-dash-grupo .contab-dash-card > .cdc-d { display:block; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card .cdc-txt { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card::after { content:'›'; color:#b7c2ad; font-size:20px; line-height:1; padding:0 4px 0 8px; }
[data-design="glass"] .contab-dash-grupo .contab-dash-card .ctz-badge { position:static!important; transform:none!important; margin-left:8px; }
@media (max-width:1100px) { [data-design="glass"] .contab-dash-grupos { grid-template-columns:1fr; } }

/* ===== Modo app en el móvil: barra inferior, hojas a pantalla completa y zonas seguras ===== */
.mobile-tabbar { display:none; }
@media (max-width:800px) {
  [data-design="glass"] .mobile-tabbar { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; position:fixed; left:0; right:0; bottom:var(--vv-hueco, 0px); z-index:1105; background:rgba(252,253,249,.94); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-top:1px solid #dfe6d7; padding:2px 4px max(2px, calc(env(safe-area-inset-bottom) - 12px)); }
  /* Todas las pestañas miden lo mismo, activas o no: el icono va siempre dentro de una cápsula (transparente si no está activa) */
  [data-design="glass"] .mobile-tabbar button { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:4px 2px; border:0; background:transparent; color:#6b766b; font:inherit; font-size:11px; font-weight:600; line-height:1.1; border-radius:12px; cursor:pointer; height:52px; }
  [data-design="glass"] .mobile-tabbar button svg { width:22px; height:22px; padding:3px 9px; box-sizing:content-box; border-radius:12px; background:transparent; transition:background .15s; }
  [data-design="glass"] .mobile-tabbar button span { display:block; height:13px; }
  [data-design="glass"] .mobile-tabbar button.active { color:#3c572b; }
  [data-design="glass"] .mobile-tabbar button.active svg { background:#e6efd8; }
  [data-design="glass"] .mtb-badge { position:absolute; top:2px; right:calc(50% - 22px); min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:#b2443e; color:#fff; font-size:10.5px; font-weight:800; display:flex; align-items:center; justify-content:center; }
  [data-design="glass"] .mtb-badge.hidden { display:none; }
  /* El botón flotante «Menú» sobra: la pestaña Menú abre el cajón lateral */
  [data-design="glass"] #mobile-nav-toggle { display:none !important; }
  [data-design="glass"] .main-content { padding:0 0 calc(58px + max(2px, calc(env(safe-area-inset-bottom) - 12px))) !important; }
  [data-design="glass"] .view { padding:calc(14px + env(safe-area-inset-top)) 14px 24px; }
  [data-design="glass"] .view-header h1 { font-size:24px; }
  [data-design="glass"] .nav-sidebar { padding-top:calc(12px + env(safe-area-inset-top)); padding-bottom:calc(80px + env(safe-area-inset-bottom)); z-index:1104; }
  [data-design="glass"] .mobile-nav-open .nav-sidebar { box-shadow:0 0 60px rgba(0,0,0,.35); }
  /* Ventanas como hojas a pantalla completa */
  [data-design="glass"] .modal { padding:0 !important; align-items:flex-end; }
  [data-design="glass"] .modal-content { width:100% !important; max-width:100% !important; max-height:calc(100dvh - env(safe-area-inset-top) - 24px) !important; border-radius:22px 22px 0 0 !important; padding-bottom:calc(16px + env(safe-area-inset-bottom)); }
  [data-design="glass"] .modal-content::before { content:''; display:block; width:40px; height:4px; border-radius:2px; background:#cfd6ca; margin:-6px auto 12px; }
  [data-design="glass"] .modal-header h3 { font-size:19px; }
  [data-design="glass"] .form-actions { position:sticky; bottom:calc(-16px - env(safe-area-inset-bottom)); background:var(--modal-bg); padding-bottom:calc(10px + env(safe-area-inset-bottom)); }
  [data-design="glass"] .form-actions .btn { flex:1; justify-content:center; min-height:46px; }
  /* Toques cómodos */
  [data-design="glass"] .btn { min-height:44px; }
  [data-design="glass"] .filter-bar { overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:2px; }
  [data-design="glass"] .filter-bar::-webkit-scrollbar { display:none; }
  [data-design="glass"] .filter-bar .filter-btn { white-space:nowrap; flex-shrink:0; }
  [data-design="glass"] .form-grid, [data-design="glass"] .form-grid-3, [data-design="glass"] .form-grid-2 { grid-template-columns:1fr !important; }
  [data-design="glass"] .me-grid { grid-template-columns:1fr; }
  [data-design="glass"] .gm-view { padding:14px; }
  [data-design="glass"] .gm-lectura .gm-acciones { flex-wrap:wrap; padding:10px 12px; }
  [data-design="glass"] .seg-dos, [data-design="glass"] .rrhh-tres { grid-template-columns:1fr; }
  [data-design="glass"] .rh-cal-dia { min-height:56px; font-size:11px; padding:4px; }
  [data-design="glass"] .view-header-actions .btn { flex:1 1 auto; justify-content:center; }
  [data-design="glass"] .rh-kiosco { padding-bottom:env(safe-area-inset-bottom); }
}
/* Instalada como app (standalone): sin barra del navegador, más aire arriba */
@media (display-mode: standalone) { [data-design="glass"] .view { padding-top:calc(18px + env(safe-area-inset-top)); } }

/* ===== Chat en móvil: a pantalla completa, lista de conversaciones como panel lateral ===== */
.chatia-mov-cab, .chatia-convs-fondo { display:none; }
@media (max-width:800px) {
  [data-design="glass"] #view-chat-ia { padding:0 !important; display:flex; flex-direction:column; height:calc(100dvh - 57px - max(2px, calc(env(safe-area-inset-bottom) - 12px))); overflow:hidden; }
  [data-design="glass"] #view-chat-ia.hidden { display:none; }
  [data-design="glass"] #view-chat-ia > .view-header { display:none; }
  [data-design="glass"] #view-chat-ia .chatia-layout { display:flex; flex-direction:column; flex:1; min-height:0; gap:0; background:transparent; border:0; }
  [data-design="glass"] .chatia-mov-cab { display:flex; align-items:center; gap:10px; padding:calc(8px + env(safe-area-inset-top)) 10px 8px; background:rgba(252,253,249,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid #dfe6d7; flex-shrink:0; }
  [data-design="glass"] .chatia-mov-tit { flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.15; }
  [data-design="glass"] .chatia-mov-tit b { font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  [data-design="glass"] .chatia-mov-tit small { font-size:11.5px; color:var(--text-secondary); }
  [data-design="glass"] .chatia-mov-btn { width:40px; height:40px; border-radius:12px; border:1px solid #dfe6d7; background:#fff; color:#3c572b; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  [data-design="glass"] .chatia-lista-col { position:fixed; top:0; left:0; bottom:0; width:min(320px, 88vw); z-index:1110; background:#fcfdf9; padding:calc(14px + env(safe-area-inset-top)) 12px calc(14px + env(safe-area-inset-bottom)); height:100dvh !important; max-height:none !important; min-height:0 !important; box-sizing:border-box; transform:translateX(-105%); transition:transform 260ms var(--ease-cajon); box-shadow:0 0 50px rgba(0,0,0,.25); overflow-y:auto; }
  [data-design="glass"] .chatia-lista-col.chatia-lista-abierta { transform:translateX(0); }
  [data-design="glass"] .chatia-convs-fondo { display:block; position:fixed; inset:0; z-index:1109; border:0; background:rgba(33,43,26,.3); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
  [data-design="glass"] .chatia-convs-fondo.hidden { display:none; }
  [data-design="glass"] .chatia-panel { flex:1; min-height:0; height:auto; border:0; border-radius:0; background:transparent; }
  [data-design="glass"] .chatia-mensajes { padding:14px 12px; }
  [data-design="glass"] .chatia-burbuja { max-width:88%; font-size:15px; }
  [data-design="glass"] .chatia-input-row, [data-design="glass"] .chatint-input-row { padding:8px 10px calc(8px + 2px); gap:8px; background:rgba(252,253,249,.96); }
  [data-design="glass"] .chatia-input-row textarea, [data-design="glass"] .chatint-input-row textarea { min-width:0; font-size:16px; padding:10px 12px; max-height:110px; }
  [data-design="glass"] .chatia-input-row textarea::placeholder { font-size:14px; }
  [data-design="glass"] #btn-chatia-enviar { min-width:0; padding:0 14px; min-height:42px; flex-shrink:0; }
  [data-design="glass"] .chatia-clip { flex-shrink:0; min-height:42px; }
}

/* Móvil: la página no puede desplazarse ni ampliarse en horizontal; el cajón lateral bloquea el fondo */
@media (max-width:800px) {
  /* Sin recortes en html/body: en Safari alteran la altura del viewport y dejan hueco bajo la barra inferior.
     El desbordamiento horizontal se corta en .app y .main-content. */
  [data-design="glass"] body { touch-action:pan-y pinch-zoom; overscroll-behavior-x:none; }
  /* Los textos solo para lectores de pantalla no deben ensanchar la página */
  [data-design="glass"] .sr-only { 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; left:0 !important; top:0 !important; }
  [data-design="glass"] .home-table-scroll, [data-design="glass"] .table-container { position:relative; }
  [data-design="glass"] .app, [data-design="glass"] .main-content, [data-design="glass"] .view { max-width:100vw; overflow-x:hidden; }
  [data-design="glass"] .view > * { max-width:100%; }
  [data-design="glass"] body.mobile-nav-open { overflow:hidden !important; }
  [data-design="glass"] .mobile-tabbar button { touch-action:manipulation; }
  [data-design="glass"] body.mobile-nav-open .main-content { overflow:hidden; }
  [data-design="glass"] .nav-sidebar { max-width:100vw; overflow-x:hidden; }
  [data-design="glass"] .mobile-tabbar { max-width:100vw; }
  [data-design="glass"] :is(img, svg, video, canvas, iframe) { max-width:100%; }
  [data-design="glass"] :is(pre, code) { white-space:pre-wrap; word-break:break-word; }
}

/* Inicio en móvil: la tabla de pendientes se desplaza dentro de su caja en vez de ensanchar la página */
@media (max-width:800px) {
  [data-design="glass"] #view-dashboard .home-table-scroll { overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; }
  [data-design="glass"] #view-dashboard .home-task-table { min-width:520px; }
  [data-design="glass"] #view-dashboard :is(.home-grid, .home-row, .home-card) { max-width:100%; min-width:0; }
}

/* ===== Correo en móvil: lista a pantalla completa y mensaje encima ===== */
.gm-mov-cab { display:none; }
@media (max-width:800px) {
  [data-design="glass"] #view-correo { padding:0 !important; }
  [data-design="glass"] #view-correo .gm-layout { display:block; height:auto; border:0; border-radius:0; background:transparent; overflow:visible; }
  [data-design="glass"] #view-correo .gm-lista-col { border:0; height:calc(100dvh - 57px - max(2px, calc(env(safe-area-inset-bottom) - 12px))); min-height:0; }
  [data-design="glass"] #view-correo .gm-cuentas { padding-top:calc(10px + env(safe-area-inset-top)); }
  [data-design="glass"] #view-correo .gm-lectura { position:fixed; top:0; left:0; right:0; bottom:calc(57px + max(2px, calc(env(safe-area-inset-bottom) - 12px))); z-index:1103; background:#fcfdf9; transform:translateX(100%); transition:transform 260ms var(--ease-cajon); display:flex; flex-direction:column; overflow:hidden; }
  [data-design="glass"] #view-correo .gm-layout.gm-lectura-abierta .gm-lectura { transform:translateX(0); }
  [data-design="glass"] #view-correo .gm-mov-cab { display:flex; order:-2; align-items:center; gap:10px; padding:calc(8px + env(safe-area-inset-top)) 10px 8px; border-bottom:1px solid #dfe6d7; background:rgba(252,253,249,.96); flex-shrink:0; }
  [data-design="glass"] #view-correo .gm-lectura .gm-acciones { order:-1; }
  [data-design="glass"] #view-correo .gm-lectura .reply-panel { flex:1; min-height:0; }
  [data-design="glass"] .gm-mov-back { display:inline-flex; align-items:center; gap:4px; padding:8px 12px 8px 6px; border:1px solid #dfe6d7; border-radius:12px; background:#fff; color:#3c572b; font:inherit; font-weight:600; font-size:14px; flex-shrink:0; }
  [data-design="glass"] .gm-mov-tit { flex:1; min-width:0; font-size:13.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  [data-design="glass"] #view-correo .gm-view { padding:14px; }
  [data-design="glass"] #view-correo .gm-view-head h2 { font-size:17px; }
  [data-design="glass"] #view-correo .gm-empty { display:none; }
  [data-design="glass"] #view-correo .gm-item { padding:12px 14px; }
  [data-design="glass"] #view-correo .reply-panel { overflow-y:auto; }
}

/* ===== Correo en móvil: cabecera, avatares de color, grupos por fecha y botón flotante ===== */
.gm-mov-head, .gm-fab { display:none; }
@media (max-width:800px) {
  [data-design="glass"] .gm-mov-head { display:flex; align-items:flex-end; justify-content:space-between; padding:calc(14px + env(safe-area-inset-top)) 16px 6px; }
  [data-design="glass"] .gm-mov-head h1 { margin:0; font-size:28px; font-weight:800; letter-spacing:-.8px; line-height:1; }
  [data-design="glass"] .gm-mov-head span { display:block; margin-top:4px; font-size:13px; color:var(--text-secondary); font-weight:500; }
  [data-design="glass"] .gm-mov-head-logo { width:34px; height:34px; border-radius:10px; background:#d1e0a7; color:#35412b; font-weight:800; font-size:18px; display:flex; align-items:center; justify-content:center; }
  [data-design="glass"] #view-correo .gm-cuentas { padding:4px 12px 0; }
  [data-design="glass"] #view-correo .gm-cuenta-tab { border-radius:999px; }
  [data-design="glass"] #view-correo .gm-toolbar { padding:8px 12px 10px; border-bottom:0; }
  [data-design="glass"] #view-correo .gm-toolbar .gm-redactar { display:none; }
  [data-design="glass"] #view-correo .gm-buscador input { background-color:#eef2ea; border-color:transparent; height:40px; border-radius:12px; }
  [data-design="glass"] #view-correo .gm-carpeta-btn { border-radius:12px; height:40px; background:#eef2ea; border-color:transparent; font-weight:700; }
  [data-design="glass"] .gm-grupo { padding:12px 16px 4px; font-size:11.5px; font-weight:800; letter-spacing:.7px; text-transform:uppercase; color:var(--text-secondary); }
  [data-design="glass"] #view-correo .gm-item { padding:12px 14px 12px 16px; gap:12px; border-bottom:1px solid #edf0ea; border-radius:0; }
  [data-design="glass"] #view-correo .gm-item .gm-avatar { width:42px; height:42px; font-size:16px; font-weight:800; border-radius:14px; }
  [data-design="glass"] #view-correo .gm-item-from { font-size:14.5px; }
  [data-design="glass"] #view-correo .gm-item-l2 { font-size:13.5px; margin-top:2px; }
  [data-design="glass"] #view-correo .gm-item-l3 { font-size:12.5px; margin-top:2px; }
  [data-design="glass"] #view-correo .gm-item-fecha { font-size:11.5px; }
  [data-design="glass"] #view-correo .gm-noleido::before { width:0; }
  [data-design="glass"] #view-correo .gm-noleido .gm-item-from::after { content:''; display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--action); margin-left:6px; vertical-align:middle; }
  [data-design="glass"] #view-correo .gm-noleido .gm-item-from { color:#1f2a1c; }
  [data-design="glass"] #view-correo .gm-item:not(.gm-noleido) .gm-item-l2 { color:var(--text-secondary); font-weight:500; }
  [data-design="glass"] #view-correo .gm-item.active { background:transparent !important; }
  [data-design="glass"] #view-correo .gm-star { font-size:18px; }
  [data-design="glass"] .gm-fab { display:flex; position:fixed; right:16px; bottom:calc(72px + max(2px, calc(env(safe-area-inset-bottom) - 12px))); width:56px; height:56px; border-radius:18px; background:var(--action); color:#fff; border:0; align-items:center; justify-content:center; box-shadow:0 8px 24px rgba(48,75,30,.35); z-index:1102; }
  [data-design="glass"] .gm-fab { transition:transform var(--dur-pulsacion) var(--ease-salida); }
  [data-design="glass"] .gm-fab:active:not(:disabled):not(:focus-visible) { transform:scale(.98); }
  [data-design="glass"] #view-correo:has(.gm-lectura-abierta) .gm-fab { display:none; }
  [data-design="glass"] #view-correo .gm-pager { padding-bottom:90px; }
}

/* ===== Ficha de tercero ===== */
[data-design="glass"] .tf-cabecera { display:grid; grid-template-columns:2fr 1fr; gap:16px; margin-bottom:16px; align-items:start; }
[data-design="glass"] .tf-contab-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
[data-design="glass"] .tf-contab-grid .tf-stat-saldo { grid-column:1 / -1; }
[data-design="glass"] .tf-rapidas { display:flex; gap:8px; flex-wrap:wrap; margin:2px 0 14px; }
[data-design="glass"] .tf-rapida { display:inline-flex; align-items:center; gap:7px; padding:9px 14px; border-radius:12px; border:1px solid var(--border); background:var(--bg-card); color:var(--text-primary); text-decoration:none; font-size:13.5px; font-weight:600; }
[data-design="glass"] .tf-rapida:hover { border-color:var(--accent); color:var(--accent); }
[data-design="glass"] .tf-rapida svg { color:var(--text-tertiary); }
[data-design="glass"] .tf-campo-val { overflow-wrap:anywhere; }

@media (max-width:800px) {
  [data-design="glass"] #tercero-ficha { padding:0 !important; }
  [data-design="glass"] #tercero-ficha > .btn { margin:calc(10px + env(safe-area-inset-top)) 14px 10px; }
  [data-design="glass"] .tf-cabecera { grid-template-columns:1fr; gap:12px; margin:0 14px 14px; }
  /* Cabecera tipo app: avatar grande, nombre centrado y chips de rol */
  [data-design="glass"] .tf-card-datos .tf-head { flex-direction:column; align-items:center; text-align:center; gap:10px; margin-bottom:14px; }
  [data-design="glass"] .tf-card-datos .tf-avatar { width:64px; height:64px; font-size:24px; border-radius:20px; }
  [data-design="glass"] .tf-card-datos .tf-head h2 { font-size:19px; line-height:1.25; }
  [data-design="glass"] .tf-card-datos #tf-badges { display:flex; gap:6px; justify-content:center; flex-wrap:wrap; }
  /* Accesos rápidos en fila, repartidos */
  [data-design="glass"] .tf-rapidas { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:8px; margin:0 0 16px; }
  [data-design="glass"] .tf-rapida { flex-direction:column; gap:4px; padding:10px 4px; font-size:11.5px; text-align:center; background:var(--bg-main); }
  [data-design="glass"] .tf-rapida svg { color:var(--accent); }
  /* Datos en dos columnas legibles, sin partir palabras */
  [data-design="glass"] .tf-datos { grid-template-columns:1fr 1fr; gap:12px 14px; }
  [data-design="glass"] .tf-campo-lbl { font-size:10.5px; letter-spacing:.4px; }
  [data-design="glass"] .tf-campo-val { font-size:13.5px; word-break:normal; overflow-wrap:break-word; hyphens:none; }
  [data-design="glass"] .tf-datos .tf-campo-ancho { grid-column:1 / -1; }
  [data-design="glass"] .tf-acciones { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  [data-design="glass"] .tf-acciones .btn { justify-content:center; }
  /* Resumen contable: tres cifras en fila */
  [data-design="glass"] .tf-contab-grid { grid-template-columns:repeat(3,1fr); gap:8px; }
  [data-design="glass"] .tf-contab-grid .tf-stat-saldo { grid-column:auto; }
  [data-design="glass"] .tf-stat { padding:9px 10px; text-align:center; }
  [data-design="glass"] .tf-stat .tf-stat-lbl { font-size:10px; }
  [data-design="glass"] .tf-stat .tf-stat-val, [data-design="glass"] .tf-stat.tf-stat-saldo .tf-stat-val { font-size:14px; white-space:nowrap; }
  /* Pestañas y filtros de la ficha */
  [data-design="glass"] #tf-tabs { flex-wrap:nowrap !important; overflow-x:auto; scrollbar-width:none; padding:0 14px 2px; margin:0 0 10px !important; }
  [data-design="glass"] #tf-tabs::-webkit-scrollbar { display:none; }
  [data-design="glass"] #tf-tabs .filter-btn { flex-shrink:0; }
  [data-design="glass"] #tercero-ficha .search-bar, [data-design="glass"] #tercero-ficha > div:nth-of-type(3) { padding-left:14px; padding-right:14px; }
  [data-design="glass"] #tf-contenido { padding:0 14px 20px; }
  [data-design="glass"] #tf-contenido .table-container { overflow-x:auto; }
}

/* ===== Contabilidad en móvil: cabecera compacta, tarjetas que caben y tablas desplazables ===== */
@media (max-width:800px) {
  /* Cabecera: sin subtítulo y con el ejercicio a mano */
  [data-design="glass"] #view-contabilidad > .view-header { flex-direction:column; align-items:stretch; gap:8px; margin-bottom:14px; }
  [data-design="glass"] #view-contabilidad > .view-header .view-subtitle { display:none; }
  [data-design="glass"] #contab-ejercicio-select { width:100%; }
  [data-design="glass"] .contab-section-head { gap:10px; margin:0 0 12px; }
  [data-design="glass"] .contab-section-head h2 { font-size:20px; letter-spacing:-.4px; }
  /* Paneles y tarjetas: sin recuadros anidados que se salen */
  [data-design="glass"] .contab-panel { padding:0; border:0; background:transparent; }
  [data-design="glass"] .contab-panel > :is(.ctz-layout, .conc-import-card, .fin-kpis, .table-container, .filter-bar) { max-width:100%; }
  [data-design="glass"] .contab-panel-header { flex-direction:column; align-items:stretch; gap:10px; }
  /* Cifras: nunca partidas a media palabra */
  [data-design="glass"] :is(#contab-stats, .contab-stats2) { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px; }
  [data-design="glass"] :is(.fin-kpi-val, .ctz-kpi-val, .tf-stat-val, .cs2-val, .stat-value) { font-size:clamp(15px, 5.2vw, 21px) !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:-.4px; }
  [data-design="glass"] :is(.fin-kpi, .ctz-kpi, .stat-card) { padding:12px 13px; min-width:0; }
  [data-design="glass"] :is(.fin-kpi-lbl, .ctz-kpi-lbl) { font-size:10.5px; }
  /* Filtros y barras de herramientas: se deslizan con el dedo */
  [data-design="glass"] .contab-panel :is(.filter-bar, #tes-vista, #tes-estado, #tes-modo, #rh-aus-filtro, #filter-tipo-balance, #filter-estado-asientos, #filter-activos-tipo, #conc-filtro, #seg-vista, #seg-filtro) { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin:0 0 10px !important; padding-bottom:2px; }
  [data-design="glass"] .contab-panel :is(.filter-bar, #tes-vista, #tes-estado, #tes-modo)::-webkit-scrollbar { display:none; }
  [data-design="glass"] .contab-panel .filter-btn { flex-shrink:0; }
  /* Botones de acción: a lo ancho y en columna */
  [data-design="glass"] .contab-panel :is(.contab-header-actions, .ctz-toolbar, .seg-barra, .ctz-hero-acciones) { flex-wrap:wrap; gap:8px; }
  [data-design="glass"] .contab-panel :is(.contab-header-actions, .ctz-hero-acciones) .btn, [data-design="glass"] .contab-panel .btn-ctz-verde { flex:1 1 46%; justify-content:center; white-space:normal; }
  /* Buscadores y selectores de periodo a ancho completo */
  [data-design="glass"] .contab-panel :is(.search-bar, .fact-filtro, .mayor-filtros, .seg-search) { width:100%; min-width:0; }
  [data-design="glass"] .contab-panel .fact-filtro select, [data-design="glass"] .contab-panel .search-bar input { width:100%; }
  [data-design="glass"] .contab-panel .fact-filtros { flex-direction:column; align-items:stretch; gap:8px; }
  /* Todas las tablas y vistas previas se desplazan dentro de su caja */
  [data-design="glass"] .contab-panel :is(.table-container, #conc-preview, .mayor-wrap, .fiscal-grid, .balance-grid, .pyg-cascada) { overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; }
  [data-design="glass"] .contab-panel .data-table { font-size:12.5px; }
  [data-design="glass"] .contab-panel .data-table :is(th, td) { padding:9px 10px; white-space:nowrap; }
  [data-design="glass"] .contab-panel .data-table td .action-btns { flex-wrap:nowrap; }
  /* Balances y cuenta de resultados: una columna */
  [data-design="glass"] :is(.balance-grid, .bal-grid, .fiscal-grid, .ana-cards, .modelos-grid) { grid-template-columns:1fr !important; }
  [data-design="glass"] .pyg-resultado { flex-direction:column; align-items:flex-start; gap:6px; padding:16px; font-size:15px; }
  [data-design="glass"] .pyg-resultado-valor { font-size:24px; }
  /* Contabilizador: panel principal y lateral apilados */
  [data-design="glass"] .ctz-layout { grid-template-columns:1fr !important; }
  [data-design="glass"] .ctz-hero { flex-direction:column; align-items:flex-start; gap:12px; padding:14px 16px; }
  [data-design="glass"] .ctz-hero-izq { gap:12px; }
  [data-design="glass"] .ctz-hero-ico { width:42px; height:42px; }
  [data-design="glass"] .ctz-kpis { grid-template-columns:1fr !important; }
  [data-design="glass"] .ctz-kpi-fila { align-items:center; }
  [data-design="glass"] .ctz-buscar, [data-design="glass"] .ctz-select { width:100%; }
  [data-design="glass"] .ctz-toolbar { flex-direction:column; align-items:stretch; }
  /* Conciliación y seguimiento */
  [data-design="glass"] .conc-imp-cab { flex-direction:column; gap:10px; }
  [data-design="glass"] .conc-import-controls { grid-template-columns:1fr; gap:10px; }
  [data-design="glass"] .conc-drop { flex-direction:column; text-align:center; gap:10px; }
  [data-design="glass"] .conc-drop .btn { width:100%; justify-content:center; }
  [data-design="glass"] .seg-barra { flex-direction:column; align-items:stretch; }
  [data-design="glass"] .seg-sms-estado { margin-left:0; }
  /* Deudas, activos y analítica: nada se sale del ancho */
  [data-design="glass"] .contab-panel :is(.ana-card, .deuda-card, .af-card) { min-width:0; }
  [data-design="glass"] .contab-panel .btn { max-width:100%; }
  [data-design="glass"] .contab-panel :is(span, small, code) { overflow-wrap:anywhere; }
  /* Nada crece más que la pantalla: barras deslizables y botones que parten el texto */
  [data-design="glass"] #view-contabilidad :is(.filter-bar, .toolbar-actions, .ctz-main, .ctz-lat, .contab-panel > div, .conc-importar) { max-width:100%; min-width:0; }
  [data-design="glass"] #view-contabilidad :is(.toolbar-actions, .contab-toolbar) { display:flex; flex-wrap:wrap; gap:8px; }
  [data-design="glass"] #view-contabilidad .btn { white-space:normal; text-align:center; }
  [data-design="glass"] #view-contabilidad .ctz-hero-izq { min-width:0; }
  [data-design="glass"] #view-contabilidad .ctz-hero-sub { overflow-wrap:anywhere; }
  /* Cabeceras con filtros a un lado y botón al otro: en columna */
  [data-design="glass"] #view-contabilidad .contab-panel > div[style*="justify-content:space-between"] { flex-direction:column; align-items:stretch !important; gap:10px; }
  [data-design="glass"] #view-contabilidad .contab-panel > div[style*="justify-content:space-between"] > .btn { width:100%; }
  /* Balance: el número de cuentas de cada epígrafe, debajo y sin partirse */
  [data-design="glass"] .bal-ep summary { display:grid; grid-template-columns:1fr auto; align-items:start; gap:10px; }
  [data-design="glass"] .bal-ep-nombre { display:grid; grid-template-columns:14px 1fr; gap:6px; min-width:0; }
  [data-design="glass"] .bal-ep-nombre small { grid-column:2; white-space:nowrap; }
  [data-design="glass"] .bal-ep-total { padding-top:1px; }
  [data-design="glass"] .bal-cuenta { grid-template-columns:auto 1fr auto; gap:8px; font-size:12px; padding-left:24px; }
  [data-design="glass"] .bal-cuenta code { white-space:nowrap; min-width:0; }
}

/* ===== App móvil (2ª vuelta): hojas sin obstáculos, listas en tarjetas, filtros plegables ===== */
.mov-filtros-btn{ display:none; }
@media (max-width:800px) {
  /* --- La barra de pestañas no puede tapar el pie de una ventana --- */
  [data-design="glass"] body.hay-modal .mobile-tabbar { display:none; }
  [data-design="glass"] body.hay-modal .main-content { padding-bottom:0 !important; }
  [data-design="glass"] .modal-content { padding-bottom:0 !important; }
  /* El pie de la ventana queda fijo abajo, con su propio fondo */
  [data-design="glass"] .form-actions,
  [data-design="glass"] .modal-content > .modal-footer {
    position:sticky; bottom:0; z-index:3; display:flex; gap:8px; margin:12px -24px 0; padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:var(--modal-bg, #fcfdf9); border-top:1px solid #e3e9dd; box-shadow:0 -8px 20px -14px rgba(20,30,15,.35);
  }
  [data-design="glass"] .form-actions .btn { flex:1; justify-content:center; min-height:46px; }

  /* --- Listados: cada fila es una tarjeta, sin desplazamiento lateral --- */
  [data-design="glass"] .tabla-tarjetas { border:0; background:transparent; }
  [data-design="glass"] .tabla-tarjetas thead { display:none; }
  [data-design="glass"] .tabla-tarjetas, [data-design="glass"] .tabla-tarjetas tbody,
  [data-design="glass"] .tabla-tarjetas tr, [data-design="glass"] .tabla-tarjetas td { display:block; width:auto; }
  [data-design="glass"] .tabla-tarjetas tbody tr {
    background:#fff; border:1px solid #e3e9dd; border-radius:16px; padding:12px 14px; margin-bottom:10px;
    box-shadow:0 1px 2px rgba(30,40,25,.04);
  }
  [data-design="glass"] .tabla-tarjetas tbody tr:last-child { margin-bottom:0; }
  [data-design="glass"] .tabla-tarjetas tbody td {
    border:0; padding:3px 0; font-size:14px; text-align:left !important;
    display:flex; align-items:baseline; justify-content:space-between; gap:14px; min-height:0;
  }
  [data-design="glass"] .tabla-tarjetas tbody td::before {
    content:attr(data-col); flex:0 0 auto; max-width:45%; color:var(--text-secondary);
    font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; line-height:1.7;
  }
  [data-design="glass"] .tabla-tarjetas tbody td:not([data-col])::before { content:none; }
  /* La primera celda hace de título de la tarjeta */
  [data-design="glass"] .tabla-tarjetas tbody td:first-child {
    display:block; font-size:16px; font-weight:700; padding:0 0 6px; margin-bottom:6px; border-bottom:1px solid #eef2e9;
  }
  [data-design="glass"] .tabla-tarjetas tbody td:first-child::before { content:none; }
  /* Celdas sin dato: no ensucian la tarjeta */
  [data-design="glass"] .tabla-tarjetas tbody td.td-vacia { display:none; }
  /* Los botones de acción, a lo ancho y al final */
  [data-design="glass"] .tabla-tarjetas tbody td.td-acciones { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; padding-top:10px; margin-top:8px; border-top:1px solid #eef2e9; }
  [data-design="glass"] .tabla-tarjetas tbody td.td-acciones::before { content:none; }
  [data-design="glass"] .tabla-tarjetas tbody td.td-acciones .btn,
  [data-design="glass"] .tabla-tarjetas tbody td.td-acciones button { flex:1 1 auto; min-height:38px; justify-content:center; }
  [data-design="glass"] .tabla-tarjetas + .table-pagination, [data-design="glass"] .tabla-tarjetas ~ .pagination { justify-content:center; }
  [data-design="glass"] .table-container:has(.tabla-tarjetas) { overflow:visible; border:0; background:transparent; padding:0; }

  /* --- Filtros plegados tras un botón, con el número de los que están puestos --- */
  [data-design="glass"] .mov-filtros-btn {
    display:flex; align-items:center; gap:8px; width:100%; min-height:44px; margin-bottom:10px; padding:0 14px;
    border:1px solid #dfe6d7; border-radius:12px; background:#fff; color:var(--text-primary); font:inherit; font-weight:600;
  }
  [data-design="glass"] .mov-filtros-btn .mfb-n { margin-left:auto; min-width:22px; height:22px; padding:0 7px; border-radius:999px; background:#e6efd8; color:#3c572b; font-size:12px; display:flex; align-items:center; justify-content:center; }
  [data-design="glass"] .mov-filtros-btn .mfb-n.vacio { display:none; }
  [data-design="glass"] .mov-filtros-btn .mfb-flecha { transition:transform .18s; }
  [data-design="glass"] .mov-filtros-btn[aria-expanded="true"] .mfb-flecha { transform:rotate(180deg); }
  [data-design="glass"] .fact-filtros.mov-plegado { display:none; }

  /* --- Barras de botones y buscadores que no se salen --- */
  [data-design="glass"] .mov-barra-flex { flex-wrap:wrap !important; justify-content:flex-start !important; gap:8px; }
  [data-design="glass"] .mov-barra-flex > input[type="text"], [data-design="glass"] .mov-barra-flex > input[type="search"] { flex:1 1 100%; min-width:0; }
  [data-design="glass"] .view-header-actions, [data-design="glass"] .search-bar { flex-wrap:wrap; }
  [data-design="glass"] .search-bar > input, [data-design="glass"] .search-bar > .search-input { flex:1 1 100%; min-width:0; }

  /* --- Planificación: un día cada vez --- */

  /* --- Foto directa desde la cámara junto a los adjuntos --- */
  [data-design="glass"] .mov-camara-btn { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:8px; padding:0 14px; border:1px solid #dfe6d7; border-radius:12px; background:#fff; color:#3c572b; font:inherit; font-weight:600; }
}

/* Accesos directos del icono y avisos: interruptor en Mi espacio */
/* Va dentro de la tarjeta de fichar, que está centrada: aquí el texto vuelve a la
   izquierda y en el móvil el botón baja debajo, que si no se quedaban peleando. */
.me-avisos { display:flex; align-items:center; gap:12px 14px; flex-wrap:wrap;
  text-align:left; margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.me-avisos-txt { flex:1 1 220px; min-width:0; }
.me-avisos-txt b { display:block; font-size:14px; }
.me-avisos-txt small { display:block; color:var(--text-secondary); line-height:1.45; }
.me-avisos .btn { flex:0 0 auto; }
/* En columna, el flex-basis manda sobre el alto, no sobre el ancho: con 220px de
   base el texto se quedaba con un palmo de hueco debajo y el botón caía al fondo. */
@media (max-width: 560px) { .me-avisos { flex-direction:column; align-items:flex-start; } .me-avisos-txt { flex:0 0 auto; width:100%; } }

/* ===== Chat en el ordenador: menos cajas, más aire ===== */
@media (min-width: 801px) {
  [data-design="glass"] #view-chat-ia .chatia-layout { grid-template-columns: 268px 1fr; gap: 20px; }

  /* --- Columna de conversaciones: un panel propio, como el de la derecha --- */
  [data-design="glass"] .chatia-lista-col {
    gap: 10px; padding: 12px;
    background: rgba(255,255,255,.72); border: 1px solid #e6ebe1; border-radius: 20px;
    box-shadow: 0 3px 18px rgba(30,42,28,.05);
  }
  [data-design="glass"] .chatia-lista-head { gap: 8px; }
  [data-design="glass"] .chatia-nueva {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    background: #edf3e2 !important; color: #3f5c2c !important; border: 1px solid #d5e1c4 !important;
    border-radius: 11px; font-weight: 600; font-size: 13.5px; box-shadow: none !important;
  }
  [data-design="glass"] .chatia-nueva:hover { background: #e4ecd6 !important; border-color: #c3d3ae !important; }
  [data-design="glass"] .chatia-refrescar { border-radius: 11px; border: 1px solid var(--border); background: rgba(255,255,255,.75); color: var(--text-secondary); }
  [data-design="glass"] .chatia-convs { gap: 1px; }
  [data-design="glass"] .chatia-conv {
    position: relative; background: transparent; border: 0; border-radius: 10px;
    padding: 9px 11px 9px 13px; transition: background .12s;
  }
  [data-design="glass"] .chatia-conv::before {
    content: ''; position: absolute; left: 4px; top: 10px; bottom: 10px; width: 2.5px;
    border-radius: 2px; background: transparent; transition: background .12s;
  }
  [data-design="glass"] .chatia-conv:hover { background: rgba(237, 243, 226, .6); }
  [data-design="glass"] .chatia-conv-activa { background: #edf3e2; }
  [data-design="glass"] .chatia-conv-activa::before { background: #7a9b5e; }
  [data-design="glass"] .chatia-conv-titulo { font-size: 13.5px; font-weight: 500; }
  [data-design="glass"] .chatia-conv-activa .chatia-conv-titulo { font-weight: 650; }
  [data-design="glass"] .chatia-conv-fecha { font-size: 11px; color: var(--text-tertiary); }
  [data-design="glass"] .chatint-head-left {
    margin-top: 2px; padding: 12px 6px 6px; font-size: 11px; font-weight: 700;
    letter-spacing: .07em; color: var(--text-tertiary); border-top-color: #eaefe4;
  }
  /* Las barras de desplazamiento, finas y sin caja propia dentro del panel */
  [data-design="glass"] .chatia-convs, [data-design="glass"] .chatint-lista { scrollbar-width: thin; scrollbar-color: #d5ddcb transparent; }
  [data-design="glass"] .chatia-convs::-webkit-scrollbar, [data-design="glass"] .chatint-lista::-webkit-scrollbar { width: 6px; }
  [data-design="glass"] .chatia-convs::-webkit-scrollbar-thumb, [data-design="glass"] .chatint-lista::-webkit-scrollbar-thumb { background: #d5ddcb; border-radius: 3px; }
  [data-design="glass"] .chatia-convs::-webkit-scrollbar-track, [data-design="glass"] .chatint-lista::-webkit-scrollbar-track { background: transparent; }
  [data-design="glass"] .chatint-user { border-radius: 10px; padding: 8px 10px; }
  [data-design="glass"] .chatint-user:hover { background: rgba(237, 243, 226, .6); }
  [data-design="glass"] .chatint-user-activo { background: #edf3e2 !important; }
  [data-design="glass"] .chatint-user-activo b { color: #2f4423 !important; }
  [data-design="glass"] .chatint-user-activo small { color: #5c6b55 !important; }
  [data-design="glass"] .chatint-avatar { width: 34px; height: 34px; border-radius: 11px; font-size: 12.5px; font-weight: 700; }

  /* --- Panel de la conversación --- */
  [data-design="glass"] .chatia-panel {
    background: rgba(255,255,255,.72); border: 1px solid #e6ebe1; border-radius: 20px;
    box-shadow: 0 3px 18px rgba(30,42,28,.05);
  }
  [data-design="glass"] .chatia-mensajes { padding: 26px 28px; gap: 14px; }
  [data-design="glass"] .chatia-burbuja { max-width: 76%; padding: 12px 16px; font-size: 14.5px; line-height: 1.6; border-radius: 16px; }
  [data-design="glass"] .chatia-ia { background: #f4f7ef; border: 0; border-bottom-left-radius: 5px; }
  [data-design="glass"] .chatia-usuario { background: var(--action); color: #fff; border: 0; border-bottom-right-radius: 5px; }

  /* --- Escribir: todo en una pastilla --- */
  [data-design="glass"] .chatia-input-row {
    align-items: center; gap: 8px; margin: 0 18px 18px; padding: 6px 6px 6px 8px;
    border: 1px solid #dde5d3; border-radius: 26px; background: #fff;
    box-shadow: 0 1px 3px rgba(30,42,28,.04); transition: background-color .15s;
  }
  [data-design="glass"] .chatia-input-row:focus-within { border-color: #b9cca4; box-shadow: 0 0 0 3px rgba(203,216,184,.32); }
  [data-design="glass"] .chatia-input-row textarea {
    border: 0 !important; background: transparent !important; padding: 9px 4px; font-size: 14.5px; min-height: 24px;
  }
  [data-design="glass"] .chatia-input-row textarea:focus { box-shadow: none; }
  [data-design="glass"] .chatia-clip {
    width: 38px; height: 38px; flex-shrink: 0; border: 0; border-radius: 50%;
    background: transparent; color: var(--text-tertiary); display: flex; align-items: center; justify-content: center;
  }
  [data-design="glass"] .chatia-clip:hover { background: #f0f4ea; color: var(--action); }
  [data-design="glass"] #btn-chatia-enviar {
    width: 40px; height: 40px; flex-shrink: 0; padding: 0; border-radius: 50% !important;
    display: flex; align-items: center; justify-content: center;
    background: var(--action) !important; color: #fff !important; border: 0 !important;
  }
  [data-design="glass"] #btn-chatia-enviar:hover:not(:disabled) { background: var(--action-hover) !important; }
  [data-design="glass"] #btn-chatia-enviar:disabled { background: #c9d4bf !important; }

  /* --- Chat de oficina, dentro del mismo panel --- */
  [data-design="glass"] .chatint-mensajes { background: transparent; padding: 22px 26px; }
  [data-design="glass"] .chatint-conv-head { padding: 14px 22px; font-weight: 600; font-size: 15px; border-bottom: 1px solid #eef2e9; }
  [data-design="glass"] .chatint-conv-tag { background: #edf3e2; color: var(--action); font-weight: 700; }
  [data-design="glass"] .chatint-input-row { margin: 0 18px 18px; padding: 6px 6px 6px 14px; border: 1px solid #dde5d3; border-radius: 26px; background: #fff; }
  [data-design="glass"] .chatint-input-row textarea { border: 0 !important; background: transparent !important; }
  [data-design="glass"] .chatint-enviar { width: 40px; height: 40px; border-radius: 50%; background: var(--action); color: #fff; border: 0; flex-shrink: 0; }
}

/* ===== Bienvenida del chat (vale igual en el móvil) ===== */
[data-design="glass"] .chatia-bienvenida { margin: auto; max-width: 480px; text-align: center; padding: 10px 6px 20px; }
[data-design="glass"] .chatia-bv-ico {
  width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 18px;
  background: #edf3e2; color: var(--action); display: flex; align-items: center; justify-content: center;
}
[data-design="glass"] .chatia-bienvenida h2 { margin: 0 0 6px; font-size: 21px; font-weight: 650; letter-spacing: -.01em; }
[data-design="glass"] .chatia-bienvenida p { margin: 0 auto 20px; max-width: 400px; font-size: 14px; line-height: 1.6; color: var(--text-secondary); }
[data-design="glass"] .chatia-bv-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
[data-design="glass"] .chatia-bv-chip {
  padding: 9px 15px; border: 1px solid #dde5d3; border-radius: 999px;
  background: rgba(255,255,255,.85); color: #3f5c2c;
  font: inherit; font-size: 13.5px; font-weight: 500; cursor: pointer; transition: background-color var(--dur-pulsacion) ease, border-color var(--dur-pulsacion) ease, transform var(--dur-pulsacion) var(--ease-salida);
}
@media (hover: hover) and (pointer: fine) {
  [data-design="glass"] .chatia-bv-chip:hover { background: #edf3e2; border-color: #c3d3ae; transform: translateY(-1px); }
}
@media (max-width: 800px) {
  [data-design="glass"] .chatia-bienvenida { padding: 24px 4px 20px; }
  [data-design="glass"] .chatia-bienvenida h2 { font-size: 20px; }
  [data-design="glass"] .chatia-bv-chip { padding: 10px 14px; font-size: 14px; }
}

/* ===== Chat: cada conversación separada por una línea fina ===== */
[data-design="glass"] .chatia-conv, [data-design="glass"] .chatint-user { position: relative; }
[data-design="glass"] .chatia-conv::after, [data-design="glass"] .chatint-user::after {
  content: ''; position: absolute; left: 13px; right: 11px; bottom: 0;
  height: 1px; background: #eaefe4; transition: opacity .12s;
}
/* La última no lleva raya, y la que se toca tampoco: su propio fondo ya la separa */
[data-design="glass"] .chatia-conv:last-child::after,
[data-design="glass"] .chatint-user:last-child::after,
[data-design="glass"] .chatia-conv:hover::after,
[data-design="glass"] .chatint-user:hover::after,
[data-design="glass"] .chatia-conv-activa::after,
[data-design="glass"] .chatint-user-activo::after { opacity: 0; }
/* Tampoco la de justo encima de la señalada: la línea quedaría pegada a su esquina */
[data-design="glass"] .chatia-conv:has(+ .chatia-conv:hover)::after,
[data-design="glass"] .chatia-conv:has(+ .chatia-conv-activa)::after,
[data-design="glass"] .chatint-user:has(+ .chatint-user:hover)::after,
[data-design="glass"] .chatint-user:has(+ .chatint-user-activo)::after { opacity: 0; }
[data-design="glass"] .chatint-user::after { left: 10px; right: 10px; }

/* ===== Nóminas ===== */
.nom-subida { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.nom-ayuda { color: var(--text-secondary); font-size: 13px; }
.nom-cargando { padding: 18px; color: var(--text-secondary); font-size: 14px; }
.nom-aviso {
  margin-bottom: 10px; padding: 11px 14px; border-radius: 12px;
  background: #faf2e6; border: 1px solid #e8d6b8; color: #8a5b16; font-size: 13.5px; font-weight: 500;
}
.nom-resumen { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.nom-dato {
  flex: 1 1 140px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 14px;
  background: var(--bg-card); display: flex; flex-direction: column; gap: 3px;
}
.nom-dato span { font-size: 12.5px; color: var(--text-secondary); }
.nom-dato b { font-size: 17px; font-weight: 700; }
.nom-fila-pega { background: rgba(250, 242, 230, .5); }
.nom-pega { display: block; font-size: 12px; color: var(--orange, #9f621d); margin-top: 2px; }
.nom-exento { width: 7.5em; text-align: right; }
.nom-nueva { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--accent-bg); color: var(--accent); font-size: 11px; font-weight: 700; }
.nom-asiento { margin-top: 22px; }
.nom-asiento h3, .nom-historico h3 { font-size: 15px; font-weight: 600; margin: 0 0 10px; }
.nom-acciones { display: flex; align-items: center; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.nom-fecha { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text-secondary); margin-right: auto; }
.nom-fecha input { min-height: 36px; padding: 6px 10px; border: 1px solid var(--border-input); border-radius: 9px; background: var(--bg-input); font: inherit; }
.nom-historico { margin-top: 28px; }
#tabla-nominas .num, #tabla-nom-asiento .num, #tabla-nom-hechas .num { text-align: right; font-variant-numeric: tabular-nums; }
