/* CFB Lumina: additive Main CRM presentation. MRI and embedded apps are excluded.
   Theme/custom-color variables remain owned by the existing appearance system. */
html.crm-lumina {
  --lumina-neon: #159aa9;
  --lumina-focus: #006a80;
  --lumina-shadow: 0 8px 28px rgba(25, 53, 82, .07);
  --lumina-radius: 14px;
  --lumina-fast: 180ms;
  color-scheme: light;
}
html.crm-lumina[data-theme="light"] {
  --bg: #f4f8fc;
  --bg-elevated: #ffffff;
  --surface: #ffffff;
  --bg-card: #ffffff;
  --text: #152c43;
  --muted: #53677b;
  --border: #d4dfe9;
  --sidebar-bg: #f9fbfd;
  --table-header-bg: #eaf1f7;
  --table-row-alt: #f6f9fc;
  --table-hover: #eaf5f7;
  --success: #187247;
  --danger: #b42c43;
  --chart-axis: #53677b;
  --body-gradient: linear-gradient(160deg, #fbfdff, #f2f7fb);
  --welcome-gradient: linear-gradient(160deg, #fbfdff, #f2f7fb);
}
html.crm-lumina[data-theme="cream"] {
  --lumina-focus: #77581b;
  --lumina-neon: #16828a;
  --success: #187247;
  --danger: #b42c43;
}
html.crm-lumina[data-theme="dark"] {
  color-scheme: dark;
  --lumina-neon: #7cd7e3;
  --lumina-focus: #7cd7e3;
  --lumina-shadow: 0 8px 28px rgba(0, 0, 0, .13);
  --muted: #b4c2dc;
  --chart-axis: #b4c2dc;
  --success: #7ce7b7;
  --danger: #ff9aae;
}
html.crm-lumina:not([data-theme="dark"])[data-accent="teal"] {
  --accent: #0b7277;
  --accent-hover: #095f65;
}
html.crm-lumina:not([data-theme="dark"])[data-accent="gold"] {
  --accent: #856119;
  --accent-hover: #705116;
}
html.crm-lumina:not([data-theme="dark"])[data-accent="navy"] {
  --accent: #2353a7;
  --accent-hover: #1b4389;
}
body.crm-lumina-page {
  color: var(--text);
  background: var(--bg);
  background-image: var(--body-gradient);
  animation: none;
}
/* Remove the old Admin-only fixed-dark variable override, retaining its tested
   form/table geometry. `inherit` respects custom root color preferences too. */
body.crm-lumina-page.crm-admin-page {
  color-scheme: inherit;
  --bg: inherit; --bg-elevated: inherit; --surface: inherit; --bg-card: inherit;
  --text: inherit; --muted: inherit; --border: inherit;
  --accent: inherit; --accent-hover: inherit; --success: inherit; --danger: inherit;
  --color-text: var(--text); --color-muted: var(--muted); --color-accent: var(--accent);
  --color-surface: var(--surface); --color-surface-alt: var(--table-row-alt);
  --color-border: var(--border); --table-header-bg: inherit; --table-row-alt: inherit;
  --table-hover: inherit; --sidebar-bg: inherit; --input-focus-ring: inherit;
  --admin-bg: var(--bg); --admin-surface: var(--surface);
  --admin-elevated: var(--table-header-bg); --admin-glass: var(--surface);
  --admin-border: var(--border); --admin-control-border: #8098ad;
  --admin-ink: var(--text); --admin-muted: var(--muted); --admin-cyan: var(--accent);
  --admin-blue: var(--accent-hover); --admin-green: var(--success);
  --admin-danger: var(--danger); --admin-shadow: var(--lumina-shadow);
}
body.crm-lumina-page .crm-shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); min-height: 100vh; }
body.crm-lumina-page .crm-sidebar {
  position: sticky; top: 0; width: auto; height: 100vh; overflow-y: auto;
  padding: 24px 14px; background: var(--sidebar-bg); border-right: 1px solid var(--border);
}
body.crm-lumina-page .crm-side-brand {
  padding: 16px; margin-bottom: 26px; border: 1px solid var(--border); border-radius: 12px;
  background: var(--surface); color: var(--text); letter-spacing: .13em; box-shadow: var(--lumina-shadow);
}
body.crm-lumina-page .crm-side-nav { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
body.crm-lumina-page .crm-side-item {
  display: flex; align-items: center; gap: 10px; padding: 13px 12px;
  border: 1px solid transparent; border-radius: 10px; font-size: .84rem; line-height: 1.45;
  color: var(--muted); transition: background var(--lumina-fast), border-color var(--lumina-fast), color var(--lumina-fast);
}
body.crm-lumina-page .crm-side-item__txt { white-space: normal; overflow-wrap: anywhere; }
body.crm-lumina-page .crm-side-item:hover,
body.crm-lumina-page .crm-side-item.active {
  background: var(--table-hover); color: var(--text); border-color: var(--border);
  box-shadow: inset 3px 0 var(--lumina-neon);
}
body.crm-lumina-page .crm-side-item.active { font-weight: 650; }
body.crm-lumina-page .crm-main { min-width: 0; margin-left: 0; background: transparent; }
body.crm-lumina-page .crm-main .shell.dashboard {
  display: flex; flex-direction: column; width: 100%; max-width: none; min-width: 0;
  padding: 24px clamp(16px, 2.5vw, 36px) 48px; margin: 0; gap: 22px;
}
body.crm-lumina-page .topbar {
  position: relative; margin: 0; padding: 16px 20px; gap: 16px;
  border: 1px solid var(--border); border-radius: var(--lumina-radius);
  background: var(--topbar-bg, var(--surface)); box-shadow: var(--lumina-shadow);
}
body.crm-lumina-page .brand-lockup { min-width: 0; gap: 12px; }
body.crm-lumina-page .brand-logo-frame { flex-shrink: 0; background: #fff; box-shadow: none; }
body.crm-lumina-page .brand-text { color: var(--text); font-size: .75rem; letter-spacing: .07em; overflow-wrap: anywhere; }
body.crm-lumina-page .brand-text-animated span,
body.crm-lumina-page .brand-logo-live { animation: none; }
body.crm-lumina-page .crm-userbar { min-width: 0; gap: 8px; flex-wrap: wrap; }
body.crm-lumina-page .dashboard-layout { display: block; width: 100%; }
body.crm-lumina-page .dashboard-main { min-width: 0; width: 100%; max-width: none; }
body.crm-lumina-page .dash-header { margin: 0; padding: 8px 0 18px; border-bottom: 1px solid var(--border); }
body.crm-lumina-page .dash-header h1 { font-size: clamp(1.5rem, 2vw, 2rem); color: var(--text); }
body.crm-lumina-page :is(.secondary, .sub, .lead) { color: var(--muted); line-height: 1.6; }
body.crm-lumina-page .kpi-row,
body.crm-lumina-page .dashboard-main > .grid-meta {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; width: 100%;
}
body.crm-lumina-page .dashboard-main > .grid-meta { margin: 22px 0; }
body.crm-lumina-page :is(.kpi-card, .meta-card) {
  min-width: 0; padding: 18px; border: 1px solid var(--border); border-radius: var(--lumina-radius);
  background: var(--surface); color: var(--text); box-shadow: var(--lumina-shadow);
  transition: transform var(--lumina-fast), border-color var(--lumina-fast);
}
body.crm-lumina-page :is(.kpi-card, .meta-card)::before { background: var(--lumina-neon); width: 2px; opacity: .7; }
body.crm-lumina-page .kpi-value { color: var(--text); font-size: 1.8rem; font-variant-numeric: tabular-nums; }
body.crm-lumina-page :is(.kpi-label, .kpi-sub, .meta-card dt) { color: var(--muted); }
body.crm-lumina-page .meta-card dd { color: var(--text); margin-top: 10px; font-size: 1rem; line-height: 1.5; overflow-wrap: anywhere; }
body.crm-lumina-page .crm-admin-kpis .meta-card dd { font-size: 1.65rem; }
body.crm-lumina-page :is(.modules, .company-stats, .report-op-block, .company-stats-table-wrapper) {
  min-width: 0; max-width: 100%; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--lumina-radius); box-shadow: var(--lumina-shadow);
}
body.crm-lumina-page :is(.company-stats-table-wrapper, .crm-admin-table-scroll) { overflow-x: auto; }
body.crm-lumina-page :is(.chip, .pill, .top-tab, .btn-ghost) {
  color: var(--text); background: var(--surface); border-color: var(--border); box-shadow: none;
}
body.crm-lumina-page .chip.enabled { color: var(--text); border-color: var(--accent); background: var(--table-hover); }
body.crm-lumina-page :is(.btn, .submit-btn, .passkey-btn) {
  min-height: 40px; padding: 10px 16px; border: 1px solid var(--accent); border-radius: 10px;
  color: var(--text-on-accent); background: var(--accent); font-weight: 650;
  transition: background var(--lumina-fast), transform var(--lumina-fast), border-color var(--lumina-fast);
}
body.crm-lumina-page .crm-main .crm-userbar .btn-ghost,
body.crm-lumina-page .btn-ghost { color: var(--text); background: var(--surface); border-color: var(--border); }
body.crm-lumina-page :is(.btn, .submit-btn, .passkey-btn):hover { background: var(--accent-hover); color: var(--text-on-accent); }
body.crm-lumina-page :is(.btn, .submit-btn, .passkey-btn):active { transform: translateY(1px); }
body.crm-lumina-page :is(input, select, textarea) {
  max-width: 100%; color: var(--text); background: var(--surface);
  border: 1px solid #8098ad; border-radius: 9px; font: inherit;
}
body.crm-lumina-page :is(input, textarea)::placeholder { color: var(--muted); opacity: 1; }
body.crm-lumina-page :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--lumina-focus); outline-offset: 3px;
}
body.crm-lumina-page table { color: var(--text); }
body.crm-lumina-page .company-stats-table th { background: var(--table-header-bg); color: var(--text); }
body.crm-lumina-page .company-stats-table td { background: var(--surface); color: var(--text); }
body.crm-lumina-page .company-stats-table tbody tr:nth-child(even) td { background: var(--table-row-alt); }
body.crm-lumina-page .company-stats-table tbody tr:hover td { background: var(--table-hover); }
body.crm-lumina-page #crm-notif-panel { max-width: min(340px, calc(100vw - 36px)); }
body.crm-lumina-page .executive-pane-head { background: var(--surface); border-color: var(--border); box-shadow: var(--lumina-shadow); }
body.crm-lumina-page .executive-pane-meta { color: var(--muted); }
body.crm-lumina-page .crm-admin-actions .report-op-block { background: var(--surface); }
body.crm-lumina-page.crm-admin-page .crm-main .topbar {
  padding: 16px 20px; background: var(--topbar-bg, var(--surface));
  border: 1px solid var(--border); border-radius: var(--lumina-radius); box-shadow: var(--lumina-shadow);
}
body.crm-lumina-page.crm-admin-page .crm-admin-panel > .crm-admin-feedback--success {
  color: var(--success); background: var(--surface); border-color: var(--success);
}
body.crm-lumina-page.crm-admin-page .crm-admin-panel > .crm-admin-feedback--error {
  color: var(--danger); background: var(--surface); border-color: var(--danger);
}
body.crm-lumina-page.crm-admin-page .btn { background: var(--accent); color: var(--text-on-accent); border-color: var(--accent); }
body.crm-lumina-page.crm-admin-page .btn:hover { background: var(--accent-hover); color: var(--text-on-accent); }
body.crm-lumina-page.crm-admin-page .btn-ghost,
body.crm-lumina-page.crm-admin-page .crm-main .crm-userbar .btn-ghost { background: var(--surface); color: var(--text); border-color: var(--border); }
body.crm-lumina-page .crm-appearance__toggle { color: var(--text); background: var(--surface); border: 1px solid var(--border); }
body.crm-lumina-page .crm-appearance__panel { max-height: calc(100dvh - 96px); overflow-y: auto; background: var(--surface); border-color: var(--border); }
body.crm-lumina-page :is(.landing-orbit, .landing-logo-watermark) { animation: none; opacity: .08; }
body.crm-lumina-page .auth-shell--welcome { background: transparent; }
body.crm-lumina-page .auth-shell--welcome .hero { padding: clamp(32px, 6vw, 80px) 0; }
body.crm-lumina-page .hero h1 { max-width: 18ch; color: var(--text); letter-spacing: -.035em; }
/* Login reuses existing credential/passkey flows. No delayed or hidden fields. */
body.crm-lumina-login { min-height: 100vh; height: auto; overflow-y: auto; font-family: var(--font); }
body.crm-lumina-login .top-links { position: relative; display: flex; justify-content: flex-end; gap: 10px; padding: 20px clamp(18px, 4vw, 48px); }
body.crm-lumina-login .top-links a { color: var(--text); border: 1px solid var(--border); border-radius: 10px; padding: 10px 16px; background: var(--surface); text-decoration: none; }
body.crm-lumina-login .scene { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); align-items: center; gap: clamp(28px, 6vw, 100px); max-width: 1120px; margin: 0 auto; padding: 40px 32px 88px; min-height: calc(100vh - 84px); }
body.crm-lumina-login .lumina-login-logo { background: #fff; border-radius: 14px; padding: 10px; box-shadow: var(--lumina-shadow); }
body.crm-lumina-login .lumina-eyebrow { max-width: 42ch; margin-top: 22px; color: var(--accent); font-size: .76rem; font-weight: 650; letter-spacing: .075em; line-height: 1.8; }
body.crm-lumina-login .lumina-login-intro h2 { margin: 24px 0; color: var(--text); font-size: clamp(2.5rem, 4.5vw, 4.4rem); line-height: 1.1; letter-spacing: -.045em; }
body.crm-lumina-login .lumina-login-description { max-width: 43ch; color: var(--muted); line-height: 1.8; }
body.crm-lumina-login .lumina-network { position: relative; display: flex; align-items: center; gap: 44px; margin-top: 36px; width: fit-content; }
body.crm-lumina-login .lumina-network::before { content: ""; position: absolute; left: 0; right: 0; height: 1px; background: var(--border); }
body.crm-lumina-login .lumina-network span { position: relative; width: 12px; height: 12px; border: 2px solid var(--lumina-neon); border-radius: 50%; background: var(--surface); }
body.crm-lumina-login .login-stage { min-width: 0; }
body.crm-lumina-login .login-box { padding: 30px; border: 1px solid var(--border); border-radius: 20px; background: var(--surface); box-shadow: var(--lumina-shadow); color: var(--text); }
body.crm-lumina-login .login-box h1 { margin: 0 0 8px; font-size: 1.65rem; }
body.crm-lumina-login .login-box .sub { margin: 0 0 24px; font-size: .85rem; }
body.crm-lumina-login #form { display: flex; flex-direction: column; gap: 9px; }
body.crm-lumina-login #form label { color: var(--text); font-size: .82rem; font-weight: 600; }
body.crm-lumina-login #form input:not([type="hidden"]) { width: 100%; min-height: 44px; padding: 12px; margin-bottom: 10px; }
body.crm-lumina-login :is(.submit-btn, .passkey-btn) { width: 100%; cursor: pointer; font: inherit; font-size: .85rem; }
body.crm-lumina-login .passkey-btn { margin-top: 10px; }
body.crm-lumina-login .passkey-btn:disabled { cursor: wait; opacity: .7; }
body.crm-lumina-login .login-divider { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .65rem; text-transform: uppercase; margin: 22px 0 10px; }
body.crm-lumina-login .login-divider::before,
body.crm-lumina-login .login-divider::after { content: ""; height: 1px; flex: 1; background: var(--border); }
body.crm-lumina-login .links { text-align: center; font-size: .78rem; line-height: 1.9; margin-top: 20px; color: var(--muted); }
body.crm-lumina-login .links a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
body.crm-lumina-login .error { color: var(--danger) !important; background: var(--surface) !important; border: 1px solid var(--danger) !important; padding: 12px; border-radius: 8px; margin-bottom: 16px; }
body.crm-lumina-login .passkey-status { display: none; color: var(--muted); border: 1px solid var(--border); padding: 10px; margin-top: 14px; border-radius: 8px; font-size: .8rem; }
body.crm-lumina-login .passkey-status.show { display: block; }
body.crm-lumina-login .passkey-status.error { color: var(--danger); }
@media (hover: hover) {
  body.crm-lumina-page :is(.kpi-card, .meta-card):hover { transform: translateY(-2px); border-color: var(--lumina-neon); }
}
@media (max-width: 1200px) {
  body.crm-lumina-page .topbar { flex-wrap: wrap; }
  body.crm-lumina-page .kpi-row,
  body.crm-lumina-page .dashboard-main > .grid-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  body.crm-lumina-page .crm-shell { display: block; }
  body.crm-lumina-page .crm-sidebar { position: static !important; width: 100%; height: auto !important; transform: none; padding: 14px 16px; }
  body.crm-lumina-page .crm-side-brand { padding: 10px 14px; margin-bottom: 12px; }
  body.crm-lumina-page .crm-side-nav { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  body.crm-lumina-page .crm-side-item { padding: 10px 12px; }
  body.crm-lumina-page .crm-side-item__txt { display: block; position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  body.crm-lumina-page .crm-main .shell.dashboard { padding: 18px 16px 42px; }
  body.crm-lumina-page .crm-main .crm-userbar { padding-left: 0; }
  body.crm-lumina-page :is(.crm-nav-toggle, .crm-nav-backdrop) { display: none; }
}
@media (max-width: 760px) {
  body.crm-lumina-login .scene { grid-template-columns: minmax(0, 1fr); gap: 26px; max-width: 520px; padding: 12px 20px 88px; min-height: 0; }
  body.crm-lumina-login .lumina-login-intro h2 { font-size: 2.3rem; margin: 12px 0; }
  body.crm-lumina-login .lumina-login-logo { width: 56px; height: 56px; }
  body.crm-lumina-login .lumina-network { display: none; }
  body.crm-lumina-login .login-box { padding: 24px; }
}
@media (max-width: 560px) {
  body.crm-lumina-page .kpi-row,
  body.crm-lumina-page .dashboard-main > .grid-meta { grid-template-columns: minmax(0, 1fr); }
  body.crm-lumina-page .brand-text { font-size: .65rem; }
  body.crm-lumina-page .crm-side-item { flex: 1 1 140px; }
  body.crm-lumina-page .crm-admin-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  body.crm-lumina-page *, body.crm-lumina-page *::before, body.crm-lumina-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  body.crm-lumina-page :is(.meta-card, .kpi-card, .topbar, .modules, .login-box) { border: 1px solid CanvasText; }
}
@media print {
  body.crm-lumina-page { color: #111; background: #fff; }
  body.crm-lumina-page :is(.crm-sidebar, .crm-appearance) { display: none; }
  body.crm-lumina-page .crm-shell { display: block; }
}
