/* Shared ERP tokens: shell, Bootstrap components, and configuration. */
html.erp-theme {
  --erp-accent:#2563eb; --erp-accent-rgb:37,99,235; --erp-accent-hover:#1d4ed8;
  --erp-bg:#f4f6fa; --erp-surface:#fff; --erp-soft:#f0f3f8;
  --erp-text:#1e293b; --erp-muted:#64748b; --erp-border:#e2e8f0;
  --erp-shadow:0 3px 16px rgba(15,23,42,.035);
  --bs-body-bg:var(--erp-bg); --bs-body-color:var(--erp-text);
  --bs-secondary-color:var(--erp-muted); --bs-tertiary-bg:var(--erp-soft);
  --bs-secondary-bg:var(--erp-soft); --bs-border-color:var(--erp-border);
  --bs-primary:var(--erp-accent); --bs-primary-rgb:var(--erp-accent-rgb);
  --bs-primary-text-emphasis:var(--erp-accent); --bs-primary-bg-subtle:rgba(var(--erp-accent-rgb),.1);
  --bs-primary-border-subtle:rgba(var(--erp-accent-rgb),.3);
  --bs-link-color:var(--erp-accent); --bs-link-color-rgb:var(--erp-accent-rgb);
  --bs-link-hover-color:var(--erp-accent-hover); --bs-link-hover-color-rgb:var(--erp-accent-rgb);
}
html.erp-theme[data-erp-palette="teal"] { --erp-accent:#0f766e; --erp-accent-rgb:15,118,110; --erp-accent-hover:#115e59; }
html.erp-theme[data-erp-palette="violet"] { --erp-accent:#7c3aed; --erp-accent-rgb:124,58,237; --erp-accent-hover:#6d28d9; }
html.erp-theme[data-erp-palette="slate"] { --erp-accent:#475569; --erp-accent-rgb:71,85,105; --erp-accent-hover:#334155; }
html.erp-theme[data-bs-theme="dark"] {
  color-scheme:dark; --erp-bg:#111827; --erp-surface:#1b2535; --erp-soft:#253246;
  --erp-text:#e5ecf5; --erp-muted:#a6b5c9; --erp-border:#344155;
  --erp-shadow:0 3px 16px rgba(0,0,0,.1); --bs-emphasis-color:#f8fafc;
  --bs-link-color:#93c5fd; --bs-link-hover-color:#bfdbfe;
}
html.erp-theme[data-bs-theme="light"] { color-scheme:light; }
html.erp-theme[data-bs-theme="dark"][data-erp-palette="blue"] { --erp-accent:#60a5fa; --erp-accent-rgb:96,165,250; --erp-accent-hover:#93c5fd; }
html.erp-theme[data-bs-theme="dark"][data-erp-palette="teal"] { --erp-accent:#2dd4bf; --erp-accent-rgb:45,212,191; --erp-accent-hover:#5eead4; }
html.erp-theme[data-bs-theme="dark"][data-erp-palette="violet"] { --erp-accent:#a78bfa; --erp-accent-rgb:167,139,250; --erp-accent-hover:#c4b5fd; }
html.erp-theme[data-bs-theme="dark"][data-erp-palette="slate"] { --erp-accent:#94a3b8; --erp-accent-rgb:148,163,184; --erp-accent-hover:#cbd5e1; }
.erp-theme body { background:var(--erp-bg); color:var(--erp-text); }
.erp-theme .wrapper { padding-bottom:0; min-height:100vh; }
.erp-theme .main { background:var(--erp-bg); min-height:100vh; margin-bottom:0; overflow:clip; }
.erp-theme .main > .content { flex:1; padding:28px !important; }
.erp-theme .sidebar { background:var(--erp-surface); border-radius:0; border-right:1px solid var(--erp-border); box-shadow:none; padding:22px 18px; gap:22px; }
.erp-theme .sidebar .head, .erp-theme .sidebar .menu { border-color:var(--erp-border); }
.erp-theme .sidebar .user-details .name { color:var(--erp-text); }
.erp-theme .sidebar .user-details .title, .erp-theme .sidebar .menu .title { color:var(--erp-muted); font-size:10px; letter-spacing:.08em; }
.erp-theme .sidebar .menu ul li a { color:var(--erp-muted); font-size:13px; padding:11px 10px; }
.erp-theme .sidebar .menu ul li > a:hover, .erp-theme .sidebar .menu ul li.active > a { color:var(--erp-text); background:var(--erp-soft); }
.erp-theme .sidebar .menu ul li.current-menu > a, .erp-theme .sidebar .menu a[aria-current="page"] { color:var(--erp-accent); background:rgba(var(--erp-accent-rgb),.1); box-shadow:inset 3px 0 var(--erp-accent); }
.erp-theme[data-bs-theme="dark"] .sidebar .menu a[aria-current="page"], .erp-theme[data-bs-theme="dark"] .sidebar .menu ul li.current-menu > a { color:#cbdcff; }
.erp-theme .sidebar .menu-btn { border-color:var(--erp-border); background:var(--erp-surface); color:var(--erp-muted); }
.erp-theme .sidebar .menu-btn:hover i { color:var(--erp-text); }
.erp-theme .sidebar.active { width:80px; }
.erp-theme .sidebar.active .menu .sub-menu { background:var(--erp-surface); border-color:var(--erp-border); }
.erp-theme .sidebar .menu .sub-menu { border-color:var(--erp-border); }
.erp-theme[data-erp-sidebar="brand"] .sidebar { background:#172c50; --erp-muted:#b6c6df; --erp-text:#fff; --erp-soft:#233b60; --erp-border:#30496c; --erp-surface:#172c50; }
.erp-theme[data-erp-sidebar="brand"] .sidebar .menu a[aria-current="page"], .erp-theme[data-erp-sidebar="brand"] .sidebar .menu ul li.current-menu > a { color:#fff; background:#2d4973; }
.erp-theme #sidebar { background:var(--erp-accent); padding:0; }
.erp-theme #sidebar .sidebar-nav { overflow-y:auto; }
.erp-theme .erp-navbar { min-height:76px; gap:16px; border-bottom:1px solid var(--erp-border); background:var(--erp-surface); padding:14px 28px; position:relative; z-index:1020; box-shadow:none; }
.erp-theme[data-erp-sticky="true"] .erp-navbar { position:sticky; top:0; }
.erp-navbar .erp-brand { display:flex; align-items:center; gap:12px; color:var(--erp-text); min-width:0; }
.erp-brand-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:rgba(var(--erp-accent-rgb),.1); color:var(--erp-accent); flex-shrink:0; }
.erp-brand-mark img { width:100%; height:100%; object-fit:contain; border-radius:10px; }
.erp-brand-copy { min-width:0; }
.erp-brand-copy strong, .erp-brand-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.erp-brand-copy strong { font-size:13px; max-width:320px; }
.erp-brand-copy small { font-size:11px; color:var(--erp-muted); margin-top:2px; }
.erp-header-actions { display:flex; align-items:center; gap:12px; margin-left:auto; flex-shrink:0; }
.erp-icon-button, .erp-account-button { border:1px solid var(--erp-border); background:var(--erp-surface); color:var(--erp-text); border-radius:10px; padding:9px 12px; font-size:13px; }
.erp-icon-button:hover, .erp-account-button:hover { background:var(--erp-soft); }
.erp-account-button { display:flex; align-items:center; gap:10px; text-align:left; }
.erp-avatar { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:rgba(var(--erp-accent-rgb),.12); color:var(--erp-accent); font-weight:700; }
.erp-account-name { max-width:180px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.erp-theme .dropdown-menu { --bs-dropdown-bg:var(--erp-surface); --bs-dropdown-color:var(--erp-text); --bs-dropdown-link-color:var(--erp-text); --bs-dropdown-link-hover-bg:var(--erp-soft); --bs-dropdown-link-hover-color:var(--erp-text); --bs-dropdown-border-color:var(--erp-border); border-radius:12px; padding:8px; box-shadow:var(--erp-shadow); }
.erp-theme .dropdown-item { border-radius:7px; font-size:13px; padding:9px 12px; }
.erp-theme .dropdown-item[aria-pressed="true"] { background:rgba(var(--erp-accent-rgb),.12); color:var(--erp-text); font-weight:700; }
.erp-theme .card { background:var(--erp-surface); color:var(--erp-text); border-color:var(--erp-border); border-radius:14px; box-shadow:var(--erp-shadow); }
.erp-theme .card-header, .erp-theme .card-footer { background:transparent; border-color:var(--erp-border); }
.erp-theme .form-control, .erp-theme .form-select { background-color:var(--erp-surface); color:var(--erp-text); border-color:var(--erp-border); border-radius:8px; }
.erp-theme .form-control::placeholder { color:var(--erp-muted); background:transparent; }
.erp-theme .form-control:focus, .erp-theme .form-select:focus { border-color:var(--erp-accent); box-shadow:0 0 0 3px rgba(var(--erp-accent-rgb),.15); }
.erp-theme .btn-primary { --bs-btn-bg:var(--erp-accent); --bs-btn-border-color:var(--erp-accent); --bs-btn-hover-bg:var(--erp-accent-hover); --bs-btn-hover-border-color:var(--erp-accent-hover); --bs-btn-active-bg:var(--erp-accent-hover); --bs-btn-active-border-color:var(--erp-accent-hover); }
.erp-theme[data-bs-theme="dark"] .btn-primary { --bs-btn-color:#111827; --bs-btn-hover-color:#111827; --bs-btn-active-color:#111827; }
.erp-theme .btn-outline-primary { --bs-btn-color:var(--erp-accent); --bs-btn-border-color:var(--erp-accent); --bs-btn-hover-bg:var(--erp-accent); --bs-btn-hover-border-color:var(--erp-accent); }
.erp-theme[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-hover-color:#111827; --bs-btn-active-color:#111827; }
.erp-theme .form-check-input:checked { background-color:var(--erp-accent); border-color:var(--erp-accent); }
.erp-theme .table { --bs-table-bg:var(--erp-surface); --bs-table-color:var(--erp-text); --bs-table-border-color:var(--erp-border); --bs-table-striped-bg:var(--erp-soft); --bs-table-striped-color:var(--erp-text); --bs-table-hover-bg:var(--erp-soft); --bs-table-hover-color:var(--erp-text); }
.erp-theme .table .sticky-col, .erp-theme .table .sticky-column, .erp-theme .table .sticky-column-option, .erp-theme .table .sticky-name-col, .erp-theme .table .sticky-active-col { background-color:var(--erp-surface); }
.erp-theme .modal-content, .erp-theme .offcanvas { background:var(--erp-surface); color:var(--erp-text); border-color:var(--erp-border); }
.erp-theme .footer { position:static; width:auto; height:auto; background:var(--erp-surface); border-top:1px solid var(--erp-border); margin-top:auto !important; padding:16px 20px; }
.erp-theme[data-erp-density="compact"] .sidebar .menu ul li a { padding-top:7px; padding-bottom:7px; }
.erp-theme[data-erp-density="compact"] .main > .content { padding:18px !important; }
.erp-theme[data-erp-density="compact"] .erp-navbar { min-height:64px; padding-top:8px; padding-bottom:8px; }
.erp-theme[data-bs-theme="dark"] .bg-white, .erp-theme[data-bs-theme="dark"] .bg-light { background-color:var(--erp-surface) !important; }
.erp-theme[data-bs-theme="dark"] .text-dark, .erp-theme[data-bs-theme="dark"] .text-black { color:var(--erp-text) !important; }
.erp-theme[data-bs-theme="dark"] .select2-container--default .select2-selection, .erp-theme[data-bs-theme="dark"] .select2-dropdown { background:var(--erp-surface); color:var(--erp-text); border-color:var(--erp-border); }
.erp-theme[data-bs-theme="dark"] .select2-container--default .select2-selection__rendered { color:var(--erp-text); }
.configuration-page { max-width:1280px; margin:0 auto; }
.config-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:24px; }
.config-eyebrow { color:var(--erp-accent); font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; margin-bottom:8px; }
.config-heading h1 { font-size:28px; font-weight:700; letter-spacing:-.04em; margin-bottom:8px; }
.config-heading p { color:var(--erp-muted); font-size:13px; margin:0; }
.config-badge { white-space:nowrap; border:1px solid var(--erp-border); background:var(--erp-surface); color:var(--erp-muted); padding:8px 12px; border-radius:20px; font-size:11px; }
.config-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; border-bottom:1px solid var(--erp-border); padding-bottom:16px; }
.config-tabs a { color:var(--erp-muted); font-size:13px; padding:8px 12px; border-radius:8px; }
.config-tabs a:hover { background:var(--erp-soft); color:var(--erp-text); }
.config-section { margin-bottom:24px; scroll-margin-top:95px; }
.config-section .card-body { padding:26px; }
.config-section-title { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.config-section-title h2 { font-size:17px; font-weight:650; margin:0 0 4px; }
.config-section-title p { font-size:12px; color:var(--erp-muted); margin:0; }
.config-field label, .config-field legend { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
.config-field .form-control, .config-field .form-select { font-size:13px; min-height:42px; }
.config-help { font-size:12px; color:var(--erp-muted); margin-top:8px; }
.appearance-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.appearance-option { position:relative; }
.appearance-option input { position:absolute; opacity:0; width:1px; height:1px; }
.appearance-option label { border:1px solid var(--erp-border); border-radius:10px; padding:14px; cursor:pointer; text-align:center; margin:0; background:var(--erp-surface); }
.appearance-option input:checked + label { border-color:var(--erp-accent); box-shadow:0 0 0 1px var(--erp-accent); background:rgba(var(--erp-accent-rgb),.06); }
.appearance-option input:focus-visible + label { outline:3px solid var(--erp-accent); outline-offset:3px; }
.appearance-option label i { display:block; font-size:20px; margin-bottom:10px; color:var(--erp-muted); }
.palette-options { grid-template-columns:repeat(4,1fr); }
.palette-swatch { width:22px; height:22px; display:block; border-radius:50%; margin:0 auto 9px; }
.appearance-policy { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--erp-border); padding-top:20px; margin-top:20px; }
.appearance-policy .form-check { min-height:0; margin:0; }
.config-save-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; border-top:1px solid var(--erp-border); padding:18px 26px; }
.config-save-row p { margin:0; font-size:12px; color:var(--erp-muted); }
.config-save-row .btn { font-size:13px; padding:9px 16px; border-radius:8px; }
.config-upload { display:flex; align-items:center; gap:14px; padding:16px; border:1px solid var(--erp-border); border-radius:10px; height:100%; }
.config-upload img { width:64px; height:64px; object-fit:contain; background:#f1f5f9; padding:6px; border-radius:8px; }
.config-upload > div { flex:1; min-width:0; }
.config-upload .form-control { min-height:0; font-size:11px; }
.config-preview-banner { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); z-index:1050; padding:12px 18px; background:var(--erp-text); color:var(--erp-surface); border-radius:12px; box-shadow:var(--erp-shadow); font-size:12px; display:flex; gap:18px; align-items:center; }
.config-preview-banner[hidden] { display:none; }
.config-preview-banner button { color:inherit; border:1px solid currentColor; background:transparent; border-radius:6px; padding:4px 8px; white-space:nowrap; }
@media (max-width:767px) {
  .erp-theme .main > .content { padding:20px 14px !important; }
  .erp-theme .erp-navbar { padding:12px 14px; gap:8px; }
  .erp-header-actions { gap:8px; }
  .erp-account-name, .erp-header-mode-label, .erp-brand-copy small { display:none; }
  .erp-brand-copy strong { max-width:140px; font-size:11px; white-space:normal; }
  .erp-brand-mark { width:30px; height:30px; }
  .erp-theme .sidebar.active { width:64px; padding:16px 10px; }
  .erp-theme .sidebar:not(.active) { border-radius:0; }
  .config-heading h1 { font-size:23px; }
  .config-badge { display:none; }
  .config-section .card-body { padding:20px 16px; }
  .config-save-row { padding:16px; }
  .appearance-options { gap:6px; }
  .appearance-option label { padding:12px 6px; font-size:11px; }
  .palette-options { grid-template-columns:repeat(2,1fr); }
  .config-preview-banner { width:calc(100% - 28px); bottom:10px; }
}
@media (prefers-reduced-motion:reduce) { .erp-theme *, .erp-theme *::before, .erp-theme *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
@media print {
  .erp-theme { --erp-bg:#fff; --erp-surface:#fff; --erp-text:#000; --erp-muted:#555; --erp-border:#ddd; }
  .erp-theme .sidebar, .erp-navbar, .config-preview-banner { display:none !important; }
  .erp-theme .main { overflow:visible; }
}
