/* Ajustes compartidos de la interfaz; los colores se mantienen por tema. */
:root {
  --hv-ui-surface: #fff;
  --hv-ui-subtle: #f2f7f5;
  --hv-ui-ink: #142c3d;
  --hv-ui-muted: #53697a;
  --hv-ui-line: #d8e3e5;
  --hv-ui-accent: #176d57;
  --hv-ui-accent-soft: #e5f3ed;
}
html[data-hv-theme="oscuro"] {
  --hv-ui-surface: #17293a;
  --hv-ui-subtle: #20384a;
  --hv-ui-ink: #edf4f8;
  --hv-ui-muted: #bed0db;
  --hv-ui-line: #42586b;
  --hv-ui-accent: #a1e5c6;
  --hv-ui-accent-soft: #264c45;
}
html { scroll-padding-top: 20px; }
::selection { background: #b8e5d0; color: #102e27; }
:is(input, textarea) { caret-color: var(--hv-ui-accent); }
:is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid #158664; outline-offset: 3px; }
html[data-hv-theme="oscuro"] :is(button,a,input,select,textarea,summary):focus-visible { outline-color: #f6b66f; }
button:disabled { cursor: not-allowed; }
html[data-hv-theme="oscuro"] :is(.login-help,.recovery-prompt button,.same-password-content p,.dialog-note,.dialog-feedback,.page-message,.user-primary small) { color:#d0dee7; }
html[data-hv-theme="oscuro"] :is(.same-password-dialog,.same-password-content,.dialog-note) { background:#17293a !important; color:#edf4f8; }

/* Inicio: acciones y módulos legibles desde el primer vistazo. */
.home-shell { width:min(1060px,calc(100% - 40px)); }
.home-header { padding:10px 0 20px; border-bottom:1px solid var(--hv-ui-line); }
.home-product-name { color:var(--hv-ui-accent); font-size:10px; letter-spacing:.1em; }
.home-brand-copy h1 { color:var(--hv-ui-ink); font-size:clamp(20px,2.4vw,27px); letter-spacing:-.025em; }
.home-modules { justify-content:flex-start; padding:clamp(42px,8vh,80px) 0 52px; }
.home-section-heading { margin-bottom:22px; }
.home-section-heading h2 { color:var(--hv-ui-ink); letter-spacing:-.025em; }
.module-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.module-card { min-height:210px; padding:22px; border-radius:16px; background:var(--hv-ui-surface); box-shadow:none; }
.module-card::before { display:none; }
.module-card:hover { transform:translateY(-2px); box-shadow:0 10px 24px #10253d12; }
.module-layout { grid-template-columns:48px minmax(0,1fr); grid-template-rows:auto 1fr; align-items:start; gap:14px; }
.module-visual { display:grid; place-items:center; width:48px; height:48px; border:0; border-radius:13px; background:var(--hv-ui-accent-soft); color:var(--hv-ui-accent); box-shadow:none; }
.module-visual svg, html[data-hv-theme="oscuro"] .module-visual svg { width:27px; height:27px; color:var(--hv-ui-accent); }
.module-card h3 { color:var(--hv-ui-ink); font-size:18px; line-height:1.3; }
.module-card p, html[data-hv-theme="oscuro"] .module-card p { color:var(--hv-ui-muted); font-size:14px; line-height:1.5; }
.module-action { grid-column:2; align-self:end; justify-self:start; min-height:44px; padding:7px 12px; border:1px solid var(--hv-ui-line); border-radius:10px; background:var(--hv-ui-subtle); color:var(--hv-ui-ink); }
.module-action-arrow { background:var(--hv-ui-accent-soft); color:var(--hv-ui-accent); box-shadow:none; }
html[data-hv-theme="oscuro"] .module-card :is(.module-action,#linkRegistro,#linkPanel) { background:#253d52 !important; color:#edf4f8 !important; border-color:#637b8e !important; }
.home-actions :is(.settings-link,.inbox-button,.home-logout) { min-height:44px; border-radius:11px; }
.hv-footer-simple { border-top:1px solid var(--hv-ui-line); }
.hv-footer-simple p { color:var(--hv-ui-muted); }

/* Superficies operativas y configuración. */
:is(.login-panel,.info-panel,.form-box,.tab-panel,.analysis-filters,.analysis-card,.export-box,.communications-dialog) { border-radius:16px; }
.info-card-title { display:flex; align-items:center; gap:9px; }
.info-card-title svg { flex:none; width:20px; height:20px; color:var(--hv-ui-accent); }
.settings-menu { border-color:var(--hv-ui-line); background:var(--hv-ui-surface); }
.settings-menu .tab-button { min-height:76px; color:var(--hv-ui-ink); }
.settings-menu .tab-button small { color:var(--hv-ui-muted); line-height:1.4; }
.settings-menu .tab-button:hover { transform:none; background:var(--hv-ui-subtle); }
.settings-menu .tab-button:focus-visible { position:relative; z-index:1; }
.settings-back { color:var(--hv-ui-accent); font-weight:650; }
.catalog-row,.user-row { border-color:var(--hv-ui-line); }
.analysis-page #kpis > div { padding:20px !important; background:var(--hv-ui-surface) !important; border-color:var(--hv-ui-line) !important; }
.analysis-page #kpis > div:first-child { box-shadow:none !important; }
.kpi-label { color:var(--hv-ui-muted); }
.kpi-value { color:var(--hv-ui-ink); letter-spacing:-.025em; }
.analysis-page :is(#incomeSection,#unitsSection,#pieSection,#insightSection,#tableSection) { border-color:var(--hv-ui-line); box-shadow:none; }
.analysis-page .filter-context { border-color:var(--hv-ui-line); }
.registros-header { color:var(--hv-ui-ink); }
.registro-item { border-color:var(--hv-ui-line) !important; }
.communications-body { gap:16px; }
.communications-body h2 { color:var(--hv-ui-ink); }
.inbox-item { border-color:var(--hv-ui-line); }

/* El chat conserva sus tarjetas y acciones; se refina solo la lectura. */
.ia-full-page .hv-ia-messages { line-height:1.6; }
.hv-ia-messages > :is(.answer,.question) { border-radius:15px; }
.hv-ia .message-author { font-size:12px; letter-spacing:0; }
.ia-full-page #hvIaForm textarea { border-radius:12px; }
html[data-hv-theme="oscuro"] .hv-ia .ia-analysis-link { background:#253d52; color:#edf4f8; border-color:#637b8e; }

@media(max-width:760px) {
  .home-shell { width:calc(100% - 32px); }
  .home-header { gap:12px; }
  .home-modules { padding:38px 0 48px; }
  .home-section-heading { margin-bottom:16px; }
  .module-grid { grid-template-columns:1fr; gap:10px; }
  .module-card { min-height:0; padding:16px; }
  .module-layout { grid-template-columns:44px minmax(0,1fr) auto; grid-template-rows:auto; align-items:center; gap:12px; }
  .module-visual { width:44px; height:44px; }
  .module-card h3 { font-size:16px; }
  .module-card p { font-size:13px; }
  .module-action { grid-column:3; align-self:center; width:auto; min-width:58px; }
  .module-action-arrow { display:none; }
}
@media(max-width:380px) {
  .module-layout { grid-template-columns:40px minmax(0,1fr); }
  .module-visual { width:40px; height:40px; }
  .module-action { grid-column:2; justify-self:start; }
}

/* Navegación principal coherente en las páginas de trabajo. */
.page-header .back-link, .analysis-header .back-button, .back-button-wrapper .back-button, .ia-full-page .ia-back { display:inline-flex; align-items:center; justify-content:center; min-height:44px; box-sizing:border-box; padding:9px 14px; border:1px solid #aebfd0; border-radius:12px; background:transparent; color:inherit; font:inherit; font-size:.875rem; text-decoration:none; white-space:nowrap; cursor:pointer; }
.page-header .back-link:focus-visible, .analysis-header .back-button:focus-visible, .back-button-wrapper .back-button:focus-visible, .ia-full-page .ia-back:focus-visible { outline:3px solid #e88d44; outline-offset:2px; }

.page-header h1 { text-align:left; }
.analysis-header, .ia-full-page .hv-ia header { justify-content:space-between; }
.back-button-wrapper { left:auto; right:40px; }
@media (max-width:700px) { .back-button-wrapper { left:auto; right:0; justify-content:flex-end; } }
