/* Screen-only customization. Light + blue deliberately leaves all existing rules intact. */
:root {
    --erp-accent-solid: #2563eb;
    --erp-accent-hover: #1d4ed8;
    --erp-accent-rgb: 37, 99, 235;
    --erp-accent-text: #93c5fd;
    --erp-surface-subtle: #f9fafb;
    --erp-surface-hover: #fafcff;
    --erp-accent-soft: #eff6ff;
}
html[data-erp-accent="green"] { --erp-accent-solid:#15803d; --erp-accent-hover:#166534; --erp-accent-rgb:21,128,61; --erp-accent-text:#86efac; }
html[data-erp-accent="purple"] { --erp-accent-solid:#7c3aed; --erp-accent-hover:#6d28d9; --erp-accent-rgb:124,58,237; --erp-accent-text:#c4b5fd; }
html[data-erp-accent="orange"] { --erp-accent-solid:#c2410c; --erp-accent-hover:#9a3412; --erp-accent-rgb:194,65,12; --erp-accent-text:#fdba74; }
html[data-erp-accent="rose"] { --erp-accent-solid:#be123c; --erp-accent-hover:#9f1239; --erp-accent-rgb:190,18,60; --erp-accent-text:#fda4af; }
html[data-erp-accent]:not([data-erp-accent="blue"]) {
    --erp-primary:var(--erp-accent-solid);
    --erp-primary-hover:var(--erp-accent-hover);
    --erp-accent-soft:rgba(var(--erp-accent-rgb),.08);
    --bs-primary:var(--erp-accent-solid);
    --bs-primary-rgb:var(--erp-accent-rgb);
    --bs-link-color:var(--erp-primary);
    --bs-link-color-rgb:var(--erp-accent-rgb);
    --bs-link-hover-color:var(--erp-primary-hover);
}

html[data-erp-theme="dark"][data-erp-accent] {
    color-scheme:dark;
    --erp-page-bg:#111827;
    --erp-card-bg:#1f2937;
    --erp-sidebar:#0b1220;
    --erp-sidebar-secondary:#263247;
    --erp-text:#e5e7eb;
    --erp-muted:#b0bac9;
    --erp-border:#465267;
    --erp-soft-border:#344155;
    --erp-primary:var(--erp-accent-text);
    --erp-primary-hover:var(--erp-accent-text);
    --erp-success:#6ee7b7;
    --erp-warning:#fcd34d;
    --erp-danger:#fda4af;
    --erp-surface-subtle:#182231;
    --erp-surface-hover:#2b384c;
    --erp-accent-soft:rgba(var(--erp-accent-rgb),.22);
    --erp-shadow:0 12px 30px rgba(0,0,0,.25);
    --erp-shadow-sm:0 6px 18px rgba(0,0,0,.2);
    --bs-body-bg:var(--erp-page-bg);
    --bs-body-color:var(--erp-text);
    --bs-secondary-color:var(--erp-muted);
    --bs-tertiary-bg:var(--erp-surface-subtle);
    --bs-border-color:var(--erp-border);
    --bs-link-color:var(--erp-primary);
    --bs-link-hover-color:var(--erp-primary-hover);
    --bs-light-rgb:24,34,49;
}

/* Known ERP surfaces with fixed light backgrounds, rather than blanket element overrides. */
html[data-erp-theme="dark"] :is(.topbar,.icon-button,.user-menu-button,.app-form-check,.document-card,.list-row,.row-card,.login-box,.secondary-button,.invoice-editor-actions,.invoice-dialog,.offer-item-row,#customer-results) {
    background:var(--erp-card-bg);
    color:var(--erp-text);
}
html[data-erp-theme="dark"] :is(.form-label,.form-check-label,.col-form-label) { color:var(--erp-text); }
html[data-erp-theme="dark"] :is(.form-control,.form-select,.form-control:focus,.form-select:focus) {
    background-color:var(--erp-surface-subtle);
    color:var(--erp-text);
    border-color:var(--erp-border);
}
html[data-erp-theme="dark"] :is(.form-control:disabled,.form-control[readonly],.form-select:disabled) { background-color:var(--erp-card-bg); color:var(--erp-muted); }
html[data-erp-theme="dark"] :is(.data-table thead th,table thead th,.empty-state,.order-tabs .order-tabs-bar,.settings-tabs-bar,.invoicing-line,.discussion-message) { background:var(--erp-surface-subtle); }
html[data-erp-theme="dark"] :is(.data-table tbody tr:hover td,table tbody tr:hover td,.document-card:hover,a.list-row:hover,a.row-card:hover,.icon-button:hover,#customer-results [aria-selected="true"],#customer-results [role="option"]:hover,.dashboard-disclosure > summary:hover) { background:var(--erp-surface-hover); }
html[data-erp-theme="dark"] :is(.user-avatar,.kpi-icon,.document-icon,.row-icon,.invoice-step,.badge-primary-soft) { background:var(--erp-accent-soft); color:var(--erp-primary); }
html[data-erp-theme="dark"] :is(.badge-soft,.badge) { --bs-badge-color:var(--erp-text); }
html[data-erp-theme="dark"] .badge-soft { background:var(--erp-surface-hover); color:var(--erp-muted); }
html[data-erp-theme="dark"] :is(.badge-income,.is-success .kpi-icon,.metric.good .kpi-icon,.invoice-receipt-context) { background:#16382d; color:var(--erp-success); border-color:#356451; }
html[data-erp-theme="dark"] .invoice-receipt-context small { color:var(--erp-success); }
html[data-erp-theme="dark"] :is(.badge-expense,.badge-danger-soft,.is-danger .kpi-icon,.metric.bad .kpi-icon) { background:#44232e; color:var(--erp-danger); }
html[data-erp-theme="dark"] :is(.badge-warning-soft,.is-warning .kpi-icon,.metric.warn .kpi-icon,.invoicing-warning) { background:#3b3020; color:var(--erp-warning); }
html[data-erp-theme="dark"] .btn-outline-secondary { --bs-btn-bg:var(--erp-card-bg); --bs-btn-hover-bg:var(--erp-surface-hover); --bs-btn-hover-border-color:var(--erp-muted); --bs-btn-active-bg:var(--erp-surface-hover); --bs-btn-active-color:var(--erp-text); }
html[data-erp-theme="dark"] .dropdown-menu { --bs-dropdown-bg:var(--erp-card-bg); --bs-dropdown-link-hover-bg:var(--erp-surface-hover); --bs-dropdown-link-hover-color:var(--erp-text); }
html[data-erp-theme="dark"] .modal-content { --bs-modal-bg:var(--erp-card-bg); --bs-modal-color:var(--erp-text); }

/* Accent integration is opt-in; semantic success/danger/warning buttons keep their meaning. */
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) .btn-primary {
    --bs-btn-focus-shadow-rgb:var(--erp-accent-rgb);
    --bs-btn-bg:var(--erp-accent-solid); --bs-btn-border-color:var(--erp-accent-solid);
    --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);
    --bs-btn-disabled-bg:var(--erp-accent-solid); --bs-btn-disabled-border-color:var(--erp-accent-solid);
}
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) .btn-outline-primary {
    --bs-btn-focus-shadow-rgb:var(--erp-accent-rgb);
    --bs-btn-color:var(--erp-primary); --bs-btn-border-color:var(--erp-primary);
    --bs-btn-hover-bg:var(--erp-accent-solid); --bs-btn-hover-border-color:var(--erp-accent-solid); --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:var(--erp-accent-solid); --bs-btn-active-border-color:var(--erp-accent-solid); --bs-btn-active-color:#fff;
    --bs-btn-disabled-color:var(--erp-primary); --bs-btn-disabled-border-color:var(--erp-primary);
}
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) :is(.user-avatar,.document-icon,.row-icon,.invoice-step,.badge-primary-soft,.kpi-card:not(.is-success,.is-danger,.is-warning) .kpi-icon,.metric:not(.good,.bad,.warn) .kpi-icon) { background:var(--erp-accent-soft); color:var(--erp-primary); }
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) .dropdown-menu { --bs-dropdown-link-active-bg:var(--erp-accent-solid); }
html[data-erp-theme="dark"] :is(.text-primary,.link-primary) { color:var(--erp-primary) !important; }
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) :is(.form-control,.form-select,.topbar-search-input):focus { border-color:var(--erp-primary); box-shadow:0 0 0 4px rgba(var(--erp-accent-rgb),.2); }
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) .form-check-input:checked { background-color:var(--erp-accent-solid); border-color:var(--erp-accent-solid); }
html:is([data-erp-theme="dark"],[data-erp-accent]:not([data-erp-accent="blue"])) .settings-tabs-bar .nav-link:hover { background:var(--erp-accent-soft); }

/* New local controls only; none of these selectors changes the default ERP layout. */
.theme-preferences { min-width:0; }
.theme-mode-options,.theme-accent-options { display:grid; gap:12px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.theme-accent-options { grid-template-columns:repeat(5,minmax(0,1fr)); }
.theme-choice { display:flex; align-items:center; gap:10px; min-width:0; min-height:72px; padding:14px; border:1px solid var(--erp-border); border-radius:var(--erp-radius); background:var(--erp-card-bg); color:var(--erp-text); cursor:pointer; }
.theme-choice:has(input:checked) { border-color:var(--erp-primary); box-shadow:0 0 0 1px var(--erp-primary); }
.theme-choice:focus-within { outline:2px solid var(--erp-primary); outline-offset:3px; }
.theme-choice input { flex:0 0 auto; accent-color:var(--erp-accent-solid); }
.theme-choice small { font-size:12px; margin-top:4px; }
.theme-swatch { width:18px; height:18px; flex:0 0 18px; border-radius:50%; background:var(--theme-swatch); }
@media(max-width:767px) { .theme-mode-options { grid-template-columns:1fr; } .theme-accent-options { grid-template-columns:repeat(2,minmax(0,1fr)); } .theme-choice { padding:12px; min-height:60px; } }
