/* Semantic surfaces shared by every app layout. */
:root, [data-bs-theme="light"] {
  color-scheme: light;
  --rk-bg: #f6f7f4;
  --rk-surface: #fff;
  --rk-subtle: #f8faf6;
  --rk-text: #202b2a;
  --rk-muted: #58675e;
  --rk-border: #dfe5df;
  --rk-control-border: #7c8b80;
  --rk-link: #103f3a;
  --rk-link-hover: #0b302c;
  --rk-accent-bg: #e8f2ec;
  --rk-accent-border: #91b2a2;
  --rk-focus: #805b15;
  --bs-body-bg: var(--rk-bg);
  --bs-body-color: var(--rk-text);
  --bs-secondary-color: var(--rk-muted);
  --bs-border-color: var(--rk-border);
  --bs-link-color: var(--rk-link);
  --bs-link-color-rgb: 16, 63, 58;
  --bs-link-hover-color: var(--rk-link-hover);
  --bs-link-hover-color-rgb: 11, 48, 44;
}
[data-bs-theme="dark"] {
  color-scheme: dark;
  --rk-bg: #111a19;
  --rk-surface: #192523;
  --rk-subtle: #202e2a;
  --rk-text: #e2ebe5;
  --rk-muted: #a7bab0;
  --rk-border: #35483f;
  --rk-control-border: #667e71;
  --rk-link: #91d6b5;
  --rk-link-hover: #b2e8cf;
  --rk-accent-bg: #233e33;
  --rk-accent-border: #608976;
  --rk-focus: #e5be71;
  --bs-body-bg: var(--rk-bg);
  --bs-body-bg-rgb: 17, 26, 25;
  --bs-body-color: var(--rk-text);
  --bs-body-color-rgb: 226, 235, 229;
  --bs-emphasis-color: #f3f7f4;
  --bs-emphasis-color-rgb: 243, 247, 244;
  --bs-secondary-bg: var(--rk-surface);
  --bs-secondary-bg-rgb: 25, 37, 35;
  --bs-tertiary-bg: var(--rk-subtle);
  --bs-tertiary-bg-rgb: 32, 46, 42;
  --bs-secondary-color: var(--rk-muted);
  --bs-secondary-color-rgb: 167, 186, 176;
  --bs-border-color: var(--rk-border);
  --bs-primary-text-emphasis: var(--rk-link);
  --bs-primary-bg-subtle: var(--rk-accent-bg);
  --bs-primary-border-subtle: var(--rk-accent-border);
  --bs-link-color: var(--rk-link);
  --bs-link-color-rgb: 145, 214, 181;
  --bs-link-hover-color: var(--rk-link-hover);
  --bs-link-hover-color-rgb: 178, 232, 207;
}

/* Reachable even with mobile navigation collapsed. */
.color-mode-switcher { flex-shrink: 0; }
.color-mode-switcher[hidden] { display: none !important; }
.color-mode-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--rk-border);
  border-radius: .65rem; color: var(--rk-link); background: var(--rk-surface);
  font-size: .875rem;
}
.color-mode-toggle:hover, .color-mode-toggle:focus-visible { color: var(--rk-link-hover); background: var(--rk-accent-bg); border-color: var(--rk-accent-border); }
.color-mode-menu { min-width: 12rem; padding: .4rem; border-radius: .75rem; }
.color-mode-menu .dropdown-item { display: flex; align-items: center; gap: .75rem; min-height: 44px; border-radius: .4rem; }
.color-mode-menu .dropdown-item.active { background: var(--rk-accent-bg); color: var(--rk-link); }
.color-mode-menu .mode-check { margin-left: auto; visibility: hidden; }
.color-mode-menu [aria-pressed="true"] .mode-check { visibility: visible; }
.bi { flex-shrink: 0; }
.btn > .bi, .dropdown-item > .bi { line-height: 1; }
:where(a,button,input,select,textarea,summary):focus-visible,
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible { outline: 3px solid var(--rk-focus); outline-offset: 3px; }
.rokkad-workspace { --rk-ink: var(--rk-text); --rk-line: var(--rk-border); }
.card { --bs-card-bg: var(--rk-surface); }
.dropdown-menu { --bs-dropdown-bg: var(--rk-surface); --bs-dropdown-link-hover-bg: var(--rk-accent-bg); }
.offcanvas { --bs-offcanvas-bg: var(--rk-surface); }
.modal { --bs-modal-bg: var(--rk-surface); }
.table { --bs-table-bg: var(--rk-surface); }
.form-control, .form-select { background-color: var(--rk-surface); }
.btn-outline-secondary { --bs-btn-color: var(--rk-muted); --bs-btn-border-color: var(--rk-control-border); }
.invoice-container { color: var(--rk-text); }

/* Select2 does not inherit Bootstrap's color modes. */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-dropdown,
.select2-container--default .select2-search--dropdown .select2-search__field {
  background: var(--rk-surface); color: var(--rk-text); border-color: var(--rk-control-border);
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--rk-text); }
.select2-container--default .select2-selection__placeholder { color: var(--rk-muted); }
.select2-container--default .select2-results__option--selected,
.select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--rk-accent-bg); color: var(--rk-text); border-color: var(--rk-control-border); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: #103f3a; color: #fff; }
.select2-container--default .select2-selection__choice__remove { color: var(--rk-muted); }

/* Legacy utilities on ordinary application surfaces; saturated status badges keep their contrast. */
[data-bs-theme="dark"] .bg-light, [data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .text-bg-light { background-color: var(--rk-subtle) !important; }
[data-bs-theme="dark"] .text-dark, [data-bs-theme="dark"] .text-black,
[data-bs-theme="dark"] .text-bg-light { color: var(--rk-text) !important; }
[data-bs-theme="dark"] .bg-warning.text-dark,
[data-bs-theme="dark"] .bg-warning .text-dark,
[data-bs-theme="dark"] .bg-info.text-dark,
[data-bs-theme="dark"] .bg-info .text-dark { color: #202b2a !important; }
[data-bs-theme="dark"] .text-primary { color: var(--rk-link) !important; }
[data-bs-theme="dark"] .text-success { color: var(--bs-success-text-emphasis) !important; }
[data-bs-theme="dark"] .text-danger, [data-bs-theme="dark"] .errorlist { color: var(--bs-danger-text-emphasis) !important; }
[data-bs-theme="dark"] .text-warning { color: var(--bs-warning-text-emphasis) !important; }
[data-bs-theme="dark"] .btn-outline-success { --bs-btn-color: var(--bs-success-text-emphasis); }
[data-bs-theme="dark"] .btn-outline-info { --bs-btn-color: var(--bs-info-text-emphasis); }
[data-bs-theme="dark"] .btn-outline-dark {
  --bs-btn-color: var(--rk-text); --bs-btn-border-color: var(--rk-control-border);
  --bs-btn-hover-bg: var(--rk-text); --bs-btn-hover-color: var(--rk-bg);
  --bs-btn-active-bg: var(--rk-text); --bs-btn-active-color: var(--rk-bg);
}
[data-bs-theme="dark"] .btn-outline-primary {
  --bs-btn-color: var(--rk-link); --bs-btn-border-color: var(--rk-accent-border);
  --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff;
}

@media (max-width: 575px) {
  .modern-nav .color-mode-toggle [data-color-mode-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .modern-nav .color-mode-toggle { width: 44px; padding: .5rem; }
  .modern-nav .color-mode-toggle::after { display: none; }
}
@media (max-width: 767px) {
  .portal-topbar-actions { flex-direction: row; align-items: center; }
}
/* Screen appearance never determines paper colors. */
@media print {
  :root, [data-bs-theme="dark"] {
    color-scheme: light; --rk-bg: #fff; --rk-surface: #fff; --rk-subtle: #f8faf6;
    --rk-text: #202b2a; --rk-muted: #58675e; --rk-border: #b4bfb7;
    --rk-control-border: #a3b1a7; --rk-link: #103f3a; --rk-link-hover: #0b302c;
    --rk-accent-bg: #e8f2ec; --rk-accent-border: #91b2a2;
    --bs-body-color: #202b2a; --bs-body-color-rgb: 32, 43, 42;
    --bs-body-bg: #fff; --bs-body-bg-rgb: 255, 255, 255;
    --bs-emphasis-color: #202b2a; --bs-emphasis-color-rgb: 32, 43, 42;
    --bs-secondary-color: #58675e; --bs-secondary-color-rgb: 88, 103, 94;
    --bs-secondary-bg: #fff; --bs-tertiary-bg: #f8faf6;
    --bs-border-color: #b4bfb7; --bs-link-color-rgb: 16, 63, 58;
    --bs-primary-text-emphasis: #103f3a;
    --bs-primary-bg-subtle: #e8f2ec; --bs-primary-border-subtle: #91b2a2;
    --bs-success-text-emphasis: #0a3622;
    --bs-success-bg-subtle: #d1e7dd; --bs-success-border-subtle: #a3cfbb;
    --bs-info-text-emphasis: #055160;
    --bs-info-bg-subtle: #cff4fc; --bs-info-border-subtle: #9eeaf9;
    --bs-warning-text-emphasis: #664d03;
    --bs-warning-bg-subtle: #fff3cd; --bs-warning-border-subtle: #ffe69c;
    --bs-danger-text-emphasis: #58151c;
    --bs-danger-bg-subtle: #f8d7da; --bs-danger-border-subtle: #f1aeb5;
  }
  .color-mode-switcher { display: none !important; }
}
