:root {
  --bg: #06111a;
  --panel: rgba(18, 31, 43, 0.94);
  --panel-strong: rgba(12, 24, 35, 0.98);
  --panel-border: rgba(122, 163, 189, 0.14);
  --text: #edf5fb;
  --text-soft: #8ca9bc;
  --text-dim: #6f8899;
  --accent: #6bc6dd;
  --blue: #5278f4;
  --green: #369f68;
  --violet: #7a57ef;
  --amber: #d48b28;
  --danger: #ff6356;
  --success: #48b66b;
  --warning: #f3b24d;
  --info: #6bc6dd;
  --radius-lg: 22px;
  --radius-md: 18px;
  --radius-sm: 14px;
  --shadow-lg: 0 28px 80px rgba(0, 0, 0, 0.3);
  --sidebar-width: 236px;
}

body.dashboard-body[data-theme="light"] {
  --bg: #eff4f8;
  --panel: rgba(255, 255, 255, 0.96);
  --panel-strong: rgba(248, 251, 253, 0.98);
  --panel-border: rgba(54, 84, 108, 0.12);
  --text: #122331;
  --text-soft: #3f5a6e;
  --text-dim: #506a7d;
  --shadow-lg: 0 18px 42px rgba(30, 54, 72, 0.12);
}

body.dashboard-body[data-theme="ocean"] {
  --bg: #041824;
  --panel: rgba(10, 34, 49, 0.94);
  --panel-strong: rgba(7, 26, 39, 0.98);
  --panel-border: rgba(98, 177, 208, 0.18);
  --text: #eaf8ff;
  --text-soft: #97bdd0;
  --text-dim: #7097ab;
  --accent: #57d4f6;
  --blue: #66b6ff;
  --green: #39bc93;
  --violet: #738ef7;
  --amber: #ffb44d;
  --danger: #ff7566;
  --success: #44c596;
  --warning: #ffbf5d;
  --info: #57d4f6;
}

body.dashboard-body[data-theme="ember"] {
  --bg: #1b100d;
  --panel: rgba(48, 25, 21, 0.94);
  --panel-strong: rgba(39, 18, 15, 0.98);
  --panel-border: rgba(214, 134, 92, 0.18);
  --text: #fff0ea;
  --text-soft: #d9a996;
  --text-dim: #ba8671;
  --accent: #ff9b57;
  --blue: #ffb36b;
  --green: #4bc487;
  --violet: #d278ff;
  --amber: #ffb347;
  --danger: #ff7361;
  --success: #51c98d;
  --warning: #ffc966;
  --info: #ff9b57;
}

body.dashboard-body[data-theme="emerald"] {
  --bg: #081813;
  --panel: rgba(17, 43, 34, 0.94);
  --panel-strong: rgba(11, 32, 26, 0.98);
  --panel-border: rgba(98, 193, 148, 0.17);
  --text: #effff7;
  --text-soft: #9bcfb5;
  --text-dim: #79aa92;
  --accent: #63d89a;
  --blue: #5fc8b8;
  --green: #4ecf80;
  --violet: #8ca7ff;
  --amber: #dcb14e;
  --danger: #ff7d73;
  --success: #58d78a;
  --warning: #f0ca63;
  --info: #63d89a;
}

body.dashboard-body[data-theme="midnight"] {
  --bg: #070b19;
  --panel: rgba(17, 22, 50, 0.95);
  --panel-strong: rgba(11, 15, 38, 0.99);
  --panel-border: rgba(118, 136, 242, 0.18);
  --text: #eef1ff;
  --text-soft: #a6b0de;
  --text-dim: #7e89bf;
  --accent: #8fa4ff;
  --blue: #6b88ff;
  --green: #56c7a2;
  --violet: #a37cff;
  --amber: #e7b562;
  --danger: #ff7b8c;
  --success: #58c59c;
  --warning: #f0bf70;
  --info: #8fa4ff;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 13px;
  scroll-behavior: smooth;
}

body.dashboard-body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  font-size: 0.92rem;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at top right, rgba(84, 169, 197, 0.16), transparent 24%),
    radial-gradient(circle at bottom left, rgba(39, 95, 128, 0.18), transparent 22%),
    linear-gradient(180deg, #08131d 0%, #061019 100%);
}

body.dashboard-body[data-theme="light"] {
  background:
    radial-gradient(circle at top right, rgba(92, 170, 200, 0.18), transparent 24%),
    radial-gradient(circle at bottom left, rgba(127, 177, 205, 0.18), transparent 20%),
    linear-gradient(180deg, #f4f8fb 0%, #edf4f8 100%);
}

body.dashboard-body[data-theme="ocean"] {
  background:
    radial-gradient(circle at top right, rgba(71, 188, 226, 0.24), transparent 25%),
    radial-gradient(circle at bottom left, rgba(27, 120, 164, 0.22), transparent 22%),
    linear-gradient(180deg, #052030 0%, #041723 100%);
}

body.dashboard-body[data-theme="ember"] {
  background:
    radial-gradient(circle at top right, rgba(255, 147, 90, 0.2), transparent 24%),
    radial-gradient(circle at bottom left, rgba(186, 77, 40, 0.18), transparent 21%),
    linear-gradient(180deg, #251411 0%, #170d0b 100%);
}

body.dashboard-body[data-theme="emerald"] {
  background:
    radial-gradient(circle at top right, rgba(88, 214, 151, 0.18), transparent 24%),
    radial-gradient(circle at bottom left, rgba(51, 153, 111, 0.2), transparent 21%),
    linear-gradient(180deg, #0b1f18 0%, #071510 100%);
}

body.dashboard-body[data-theme="midnight"] {
  background:
    radial-gradient(circle at top right, rgba(121, 137, 255, 0.2), transparent 24%),
    radial-gradient(circle at bottom left, rgba(66, 81, 173, 0.2), transparent 22%),
    linear-gradient(180deg, #0b1228 0%, #080d1b 100%);
}

body.print-preview {
  background: #f7f9fb;
  color: #0d1b24;
}

a {
  color: inherit;
  text-decoration: none;
}

.app-shell {
  display: flex;
  min-height: 100vh;
}

.sidebar {
  width: var(--sidebar-width);
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 1.1rem 0.95rem;
  background: linear-gradient(180deg, rgba(11, 21, 31, 0.98) 0%, rgba(7, 15, 22, 0.99) 100%);
  border-right: 1px solid rgba(129, 166, 190, 0.12);
  backdrop-filter: blur(14px);
}

body.dashboard-body[data-theme="light"] .sidebar,
body.dashboard-body[data-theme="light"] .offcanvas.mobile-sidebar {
  background: linear-gradient(180deg, rgba(247, 251, 253, 0.98) 0%, rgba(239, 246, 250, 0.99) 100%);
  border-right-color: rgba(104, 132, 154, 0.16);
}

body.dashboard-body[data-theme="ocean"] .sidebar,
body.dashboard-body[data-theme="ocean"] .offcanvas.mobile-sidebar {
  background: linear-gradient(180deg, rgba(6, 28, 42, 0.98) 0%, rgba(4, 20, 31, 0.99) 100%);
}

body.dashboard-body[data-theme="ember"] .sidebar,
body.dashboard-body[data-theme="ember"] .offcanvas.mobile-sidebar {
  background: linear-gradient(180deg, rgba(40, 20, 17, 0.98) 0%, rgba(28, 14, 12, 0.99) 100%);
}

body.dashboard-body[data-theme="emerald"] .sidebar,
body.dashboard-body[data-theme="emerald"] .offcanvas.mobile-sidebar {
  background: linear-gradient(180deg, rgba(10, 33, 26, 0.98) 0%, rgba(7, 21, 17, 0.99) 100%);
}

body.dashboard-body[data-theme="midnight"] .sidebar,
body.dashboard-body[data-theme="midnight"] .offcanvas.mobile-sidebar {
  background: linear-gradient(180deg, rgba(10, 16, 37, 0.98) 0%, rgba(7, 11, 27, 0.99) 100%);
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.15rem 0.3rem 1.45rem;
  border-bottom: 1px solid rgba(129, 166, 190, 0.12);
}

.mobile-brand {
  padding-bottom: 0;
  border-bottom: 0;
}

.brand-mark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(103, 198, 219, 0.2), rgba(55, 95, 121, 0.34));
  border: 1px solid rgba(129, 180, 202, 0.14);
  color: var(--accent);
}

.brand-title {
  margin: 0;
  font-size: 1.22rem;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.brand-subtitle {
  color: var(--text-soft);
  font-size: 0.82rem;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding-top: 1rem;
}

.nav-section-label {
  margin-top: 1rem;
  margin-bottom: 0.45rem;
  padding: 0 0.45rem;
  color: rgba(144, 169, 185, 0.54);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.78rem;
  font-weight: 700;
}

body.dashboard-body[data-theme="light"] .nav-section-label {
  color: #4d677a;
}

.nav-link-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.72rem 0.82rem;
  border-radius: var(--radius-sm);
  color: #d7e5ef;
  font-weight: 600;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.nav-link-item span:first-child {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
}

.nav-link-item i {
  color: var(--text-soft);
}

.nav-link-item:hover,
.nav-link-item.active {
  background: linear-gradient(180deg, rgba(41, 58, 73, 0.94), rgba(29, 43, 56, 0.9));
  color: #fbfeff;
  transform: translateX(2px);
}

.nav-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 12px rgba(107, 198, 221, 0.6);
}

.sidebar-footer {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(129, 166, 190, 0.12);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

body.dashboard-body[data-theme="light"] .nav-link-item {
  color: #1f3647;
}

body.dashboard-body[data-theme="light"] .nav-link-item:hover,
body.dashboard-body[data-theme="light"] .nav-link-item.active {
  background: linear-gradient(180deg, rgba(224, 236, 244, 0.98), rgba(214, 229, 239, 0.92));
  color: #0f2433;
}

.user-chip {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.user-avatar {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(67, 123, 154, 0.24);
  color: #f2fbff;
  font-weight: 800;
}

.user-name {
  font-weight: 700;
}

.user-role {
  color: var(--text-soft);
  font-size: 0.9rem;
}

.logout-link {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-soft);
}

.main-panel {
  flex: 1;
  min-width: 0;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: rgba(247, 248, 251, 0.96);
  border-bottom: 1px solid rgba(160, 178, 192, 0.22);
  backdrop-filter: blur(16px);
}

body.dashboard-body[data-theme="light"] .topbar {
  background: rgba(255, 255, 255, 0.96);
}

.topbar-inner {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0;
}

.eyebrow {
  color: #92a7b8;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.84rem;
  font-weight: 800;
}

.topbar-meta {
  color: #688194;
  font-size: 0.96rem;
  font-weight: 600;
}

body.dashboard-body[data-theme="light"] .eyebrow {
  color: #4d677a;
}

body.dashboard-body[data-theme="light"] .topbar-meta {
  color: #395469;
}

.topbar-separator {
  margin: 0 0.55rem;
  font-size: 0;
}

.topbar-separator::after {
  content: "•";
  font-size: 0.96rem;
}

.btn-menu {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(131, 149, 164, 0.2);
  background: #e3ebf0;
  color: #2c495d;
}

.topbar-separator::after {
  content: "|" !important;
}

.quick-actions,
.hero-actions,
.toolbar-row,
.report-actions,
.card-actions,
.inline-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.quick-actions {
  justify-content: flex-end;
}

.topbar-summary {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.5rem 0.8rem;
  border-radius: 14px;
  background: rgba(17, 29, 40, 0.84);
  border: 1px solid rgba(128, 168, 193, 0.14);
  color: #f5fbff;
}

.topbar-summary-label {
  color: #8ea8bb;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.topbar-summary-value {
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1.1;
}

.topbar-summary-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.38rem 0.7rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.dashboard-body[data-theme="light"] .topbar-summary {
  background: rgba(239, 246, 250, 0.98);
  border-color: rgba(88, 121, 145, 0.18);
  color: #163042;
}

body.dashboard-body[data-theme="light"] .topbar-summary-label {
  color: #4f677a;
}

.topbar-summary .tone-success,
.topbar-summary .tone-warning,
.topbar-summary .tone-danger,
.topbar-summary .tone-info {
  margin: 0;
}

.action-btn,
.btn-accent,
.btn-dark-soft,
.btn-outline-light-soft,
.btn-outline-danger-soft {
  border-radius: 14px;
  padding: 0.64rem 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-weight: 700;
}

.action-btn {
  background: #fff;
  border-width: 1px;
}

.action-btn-blue { color: var(--blue); border-color: rgba(82, 120, 244, 0.24); }
.action-btn-green { color: var(--green); border-color: rgba(54, 159, 104, 0.22); }
.action-btn-violet { color: var(--violet); border-color: rgba(122, 87, 239, 0.22); }
.action-btn-amber { color: var(--amber); border-color: rgba(212, 139, 40, 0.24); }
.action-btn-sky { color: var(--info); border-color: rgba(107, 198, 221, 0.24); }

.btn-accent {
  border: 1px solid rgba(114, 198, 218, 0.18);
  background: linear-gradient(180deg, #76cadf 0%, #65bcd4 100%);
  color: #0c1b25;
  box-shadow: 0 16px 36px rgba(101, 188, 212, 0.18);
}

.btn-dark-soft {
  border: 1px solid rgba(127, 165, 190, 0.16);
  background: rgba(12, 23, 33, 0.92);
  color: var(--text);
}

.btn-outline-light-soft {
  border: 1px solid rgba(130, 169, 192, 0.18);
  background: rgba(20, 34, 47, 0.65);
  color: var(--text);
}

body.dashboard-body[data-theme="light"] .btn-dark-soft,
body.dashboard-body[data-theme="light"] .btn-outline-light-soft {
  background: rgba(255, 255, 255, 0.96);
  color: #163042;
  border-color: rgba(88, 121, 145, 0.18);
}

.btn-outline-danger-soft {
  border: 1px solid rgba(255, 99, 86, 0.22);
  background: rgba(50, 16, 18, 0.55);
  color: #ffada6;
}

.searchable-select {
  position: relative;
}

.searchable-select-native {
  display: none !important;
}

.searchable-select-shell {
  position: relative;
}

.searchable-select-input {
  padding-right: 2.7rem;
}

.searchable-select.is-clearable .searchable-select-input {
  padding-right: 7.1rem;
}

.searchable-select-clear {
  position: absolute;
  top: 50%;
  right: 2.55rem;
  min-width: 4.5rem;
  height: 2rem;
  padding: 0 0.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  border: 0;
  border-radius: 999px;
  background: rgba(107, 198, 221, 0.16);
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 700;
  transform: translateY(-50%);
  transition: background-color 0.18s ease, color 0.18s ease;
}

.searchable-select-clear:hover,
.searchable-select-clear:focus {
  background: rgba(107, 198, 221, 0.28);
  color: var(--text);
}

.searchable-select-clear.is-disabled,
.searchable-select-clear:disabled {
  opacity: 0.46;
  cursor: default;
}

.searchable-select-clear-mark {
  font-size: 1rem;
  line-height: 1;
}

.searchable-select-clear-label {
  line-height: 1;
}

.searchable-select-icon {
  position: absolute;
  top: 50%;
  right: 0.95rem;
  transform: translateY(-50%);
  color: var(--text-soft);
  pointer-events: none;
}

.searchable-select-menu {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: 0;
  right: 0;
  z-index: 1085;
  display: none;
  max-height: 18rem;
  overflow-y: auto;
  padding: 0.45rem;
  border-radius: 16px;
  border: 1px solid var(--panel-border);
  background: var(--panel-strong);
  box-shadow: var(--shadow-lg);
}

.searchable-select-menu.is-open {
  display: block;
}

.searchable-select-results {
  display: grid;
  gap: 0.3rem;
}

.searchable-select-option {
  width: 100%;
  border: 0;
  border-radius: 12px;
  padding: 0.7rem 0.85rem;
  background: transparent;
  color: var(--text);
  text-align: left;
  font-weight: 600;
}

.searchable-select-option:hover,
.searchable-select-option.is-highlighted {
  background: rgba(107, 198, 221, 0.12);
}

.searchable-select-option.is-selected {
  background: rgba(107, 198, 221, 0.18);
  color: var(--accent);
}

.searchable-select-empty {
  padding: 0.7rem 0.85rem;
  color: var(--text-soft);
  font-weight: 600;
}

.modal-frame-body {
  background:
    radial-gradient(circle at top right, rgba(84, 169, 197, 0.18), transparent 24%),
    linear-gradient(180deg, #09141d 0%, #08111a 100%);
}

.modal-page-main {
  padding: 1rem 0 1.35rem;
}

.modal-page-shell {
  max-width: 1380px;
  margin: 0 auto;
}

.record-editor-modal .modal-content {
  border: 1px solid var(--panel-border);
  border-radius: 22px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(17, 30, 42, 0.98), rgba(12, 24, 35, 0.98));
  box-shadow: var(--shadow-lg);
}

.record-editor-modal .modal-header {
  border-bottom: 1px solid rgba(128, 168, 193, 0.14);
  background: rgba(9, 19, 28, 0.92);
  color: var(--text);
}

.record-editor-modal .btn-close {
  filter: invert(1) grayscale(1);
}

.record-editor-frame {
  width: 100%;
  min-height: min(82vh, 980px);
  border: 0;
  background: transparent;
}

body.dashboard-body[data-theme="light"] .record-editor-modal .modal-content {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 253, 0.96));
}

body.dashboard-body[data-theme="light"] .record-editor-modal .modal-header {
  background: rgba(247, 251, 253, 0.98);
  color: #122331;
}

body.dashboard-body[data-theme="light"] .record-editor-modal .btn-close {
  filter: none;
}

.page-main {
  padding: 1.15rem 0 1.55rem;
}

.auth-main {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 2rem 0;
}

.auth-shell {
  width: min(100%, 520px);
  margin: 0 auto;
}

.auth-card {
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(17, 30, 42, 0.98), rgba(12, 24, 35, 0.96));
  box-shadow: var(--shadow-lg);
  padding: 2rem;
}

body.dashboard-body[data-theme="light"] .auth-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 253, 0.96));
}

.auth-brand {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.auth-hint {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: rgba(107, 198, 221, 0.1);
  color: var(--text-soft);
}

.mfa-setup-grid {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: 1.2rem;
  align-items: start;
}

.mfa-qr-card {
  padding: 1rem;
  border-radius: 18px;
  border: 1px solid rgba(128, 168, 193, 0.14);
  background: rgba(9, 19, 28, 0.42);
  display: grid;
  gap: 0.85rem;
  justify-items: center;
}

body.dashboard-body[data-theme="light"] .mfa-qr-card {
  background: rgba(248, 251, 253, 0.96);
  border-color: rgba(88, 121, 145, 0.14);
}

.mfa-qr-image {
  width: min(100%, 220px);
  max-width: 220px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 16px;
  background: #ffffff;
  padding: 0.7rem;
  box-shadow: inset 0 0 0 1px rgba(16, 36, 49, 0.08);
}

.mfa-qr-fallback {
  min-height: 220px;
  width: 100%;
  display: grid;
  place-items: center;
  padding: 1rem;
  border-radius: 16px;
  border: 1px dashed rgba(128, 168, 193, 0.2);
  color: var(--text-soft);
  text-align: center;
}

.print-preview .page-main {
  padding-top: 1.5rem;
}

.print-only {
  display: none;
}

.report-print-sheet {
  margin-bottom: 1.25rem;
}

.report-print-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.report-print-meta-card {
  border: 1px solid rgba(128, 168, 193, 0.14);
  border-radius: 14px;
  padding: 0.9rem 1rem;
  background: rgba(11, 22, 32, 0.44);
}

.report-print-meta-card strong {
  display: block;
  margin-bottom: 0.2rem;
}

.report-print-meta-card span {
  color: var(--text-soft);
}

.report-print-table {
  margin-top: 0.95rem;
}

.page-hero {
  margin-bottom: 1.5rem;
}

.hero-kicker {
  color: rgba(129, 166, 190, 0.72);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.8rem;
  font-weight: 700;
}

.hero-title {
  margin: 0 0 0.35rem;
  font-size: clamp(1.6rem, 2.55vw, 2.2rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.06em;
}

.hero-subtitle {
  max-width: 820px;
  color: var(--text-soft);
  font-size: 1rem;
}

.panel-card,
.metric-card,
.module-card,
.note-card,
.table-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(21, 36, 49, 0.96), rgba(18, 31, 43, 0.92));
  box-shadow: var(--shadow-lg);
  padding: 1.18rem 1.22rem;
}

body.dashboard-body[data-theme="light"] .panel-card,
body.dashboard-body[data-theme="light"] .metric-card,
body.dashboard-body[data-theme="light"] .module-card,
body.dashboard-body[data-theme="light"] .note-card,
body.dashboard-body[data-theme="light"] .table-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 253, 0.96));
  box-shadow: 0 18px 42px rgba(30, 54, 72, 0.08);
}

.print-preview .panel-card,
.print-preview .metric-card,
.print-preview .module-card,
.print-preview .note-card,
.print-preview .table-card,
.print-preview .mini-stat {
  background: #fff;
  color: #0d1b24;
  border-color: rgba(21, 37, 49, 0.12);
  box-shadow: 0 10px 30px rgba(6, 16, 25, 0.08);
}

.panel-card::after,
.metric-card::after,
.module-card::after,
.note-card::after,
.table-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(105, 194, 217, 0.08), transparent 34%);
  pointer-events: none;
}

.metric-card { height: 100%; }
.metric-label { color: var(--text-soft); font-weight: 700; margin-bottom: 0.75rem; }
.metric-value { font-size: clamp(1.45rem, 2.35vw, 1.95rem); font-weight: 800; letter-spacing: -0.04em; }
.metric-meta { margin-top: 0.45rem; color: var(--text-dim); font-size: 0.92rem; }
.metric-icon { position: absolute; top: 1.25rem; right: 1.25rem; color: rgba(167, 198, 214, 0.72); }

.section-title { margin: 0 0 0.2rem; font-size: 1.22rem; font-weight: 800; letter-spacing: -0.04em; }
.section-copy { margin: 0; color: var(--text-soft); }

.alert {
  border-radius: 16px;
  border: 1px solid rgba(128, 168, 193, 0.16);
}

.filter-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
}

.form-span-3 { grid-column: span 3; }
.form-span-4 { grid-column: span 4; }
.form-span-6 { grid-column: span 6; }
.form-span-8 { grid-column: span 8; }
.form-span-12 { grid-column: span 12; }

.form-label { color: #eef5fb; font-weight: 700; margin-bottom: 0.45rem; }

body.dashboard-body[data-theme="light"] .form-label {
  color: #173041;
}

.form-control,
.form-select,
.search-input {
  min-height: 44px;
  border: 1px solid rgba(128, 168, 193, 0.16);
  background: rgba(12, 23, 33, 0.92);
  color: var(--text);
  border-radius: 14px;
}

.input-group-text {
  min-height: 44px;
  border: 1px solid rgba(128, 168, 193, 0.16);
  background: rgba(18, 32, 44, 0.96);
  color: var(--text-soft);
  border-radius: 14px;
}

body.dashboard-body:not([data-theme="light"]) .form-select {
  color-scheme: dark;
}

body.dashboard-body[data-theme="light"] .form-select {
  color-scheme: light;
}

body.dashboard-body[data-theme="light"] .form-control,
body.dashboard-body[data-theme="light"] .form-select,
body.dashboard-body[data-theme="light"] .search-input,
body.dashboard-body[data-theme="light"] .input-group-text {
  background: rgba(255, 255, 255, 0.96);
  color: #132634;
  border-color: rgba(79, 113, 138, 0.16);
}

.form-control::placeholder,
.search-input::placeholder { color: rgba(139, 171, 192, 0.76); }

.form-control:focus,
.form-select:focus,
.search-input:focus {
  border-color: rgba(107, 198, 221, 0.78);
  background: rgba(14, 26, 36, 0.98);
  color: var(--text);
  box-shadow: 0 0 0 0.2rem rgba(107, 198, 221, 0.14);
}

.form-select option { color: #0d1a24; }
body.dashboard-body[data-theme="dark"] .form-select option,
body.dashboard-body.print-preview .form-select option {
  color: #edf5fb;
  background: #10202d;
}

body.dashboard-body[data-theme="light"] .form-select option {
  color: #132634;
  background: #ffffff;
}
textarea.form-control { min-height: 120px; }

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.compact-metric {
  padding: 1rem 1.05rem;
}

.compact-metric strong {
  display: block;
  font-size: 1.05rem;
  margin-top: 0.2rem;
}

@media (max-width: 767.98px) {
  .metrics-grid { grid-template-columns: 1fr; }
}

.search-shell {
  position: relative;
  width: min(420px, 100%);
}

.search-shell i {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%);
  color: var(--text-dim);
}

.search-input {
  width: 100%;
  padding-left: 2.7rem;
}

.dashboard-table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--text);
  --bs-table-border-color: rgba(128, 168, 193, 0.12);
  --bs-table-hover-bg: rgba(255, 255, 255, 0.02);
  margin: 0;
}

.dashboard-table thead th {
  padding: 0.82rem 0.78rem;
  color: var(--text-soft);
  font-weight: 700;
  white-space: nowrap;
}

.dashboard-table tbody td {
  padding: 0.82rem 0.78rem;
  vertical-align: middle;
}

.statement-summary-table {
  width: 100%;
  table-layout: auto;
}

.statement-summary-table .statement-amount-head {
  min-width: 10.5rem;
  text-align: center !important;
}

.statement-summary-table .statement-amount-cell {
  min-width: 10.5rem;
}

.print-preview .dashboard-table,
.print-preview .dashboard-table thead th,
.print-preview .dashboard-table tbody td,
.print-preview .section-copy,
.print-preview .module-card p,
.print-preview .note-card p,
.print-preview .panel-card p,
.print-preview .helper-text,
.print-preview .label-stack span,
.print-preview .hero-subtitle,
.print-preview .metric-label,
.print-preview .metric-meta,
.print-preview .mini-stat-label {
  color: #314b5c !important;
}

.print-preview .hero-title,
.print-preview .section-title,
.print-preview .metric-value,
.print-preview .mini-stat-value,
.print-preview .label-stack strong {
  color: #0d1b24 !important;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 84px;
  padding: 0.45rem 0.78rem;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.tone-success { background: rgba(86, 201, 120, 0.14); color: #7ce89f; }
.tone-warning { background: rgba(243, 178, 77, 0.14); color: #ffd083; }
.tone-danger { background: rgba(255, 99, 86, 0.14); color: #ffada6; }
.tone-info { background: rgba(107, 198, 221, 0.14); color: #9be8fb; }

.amount-positive { color: var(--success) !important; font-weight: 800; }
.amount-negative { color: var(--danger) !important; font-weight: 800; }
.amount-neutral { color: var(--text-soft) !important; font-weight: 800; }

.balance-chip,
.soft-pill {
  padding: 0.45rem 0.75rem;
  border-radius: 12px;
  background: rgba(28, 42, 54, 0.82);
  border: 1px solid rgba(128, 168, 193, 0.12);
  color: #f5fbff;
  font-weight: 700;
}

body.dashboard-body[data-theme="light"] .balance-chip,
body.dashboard-body[data-theme="light"] .soft-pill {
  background: rgba(239, 246, 250, 0.98);
  border-color: rgba(88, 121, 145, 0.18);
  color: #163042;
}

.active-soft-pill {
  background: rgba(107, 198, 221, 0.22) !important;
  border-color: rgba(107, 198, 221, 0.48) !important;
  color: var(--text) !important;
}

body.dashboard-body[data-theme="light"] .active-soft-pill {
  color: #0f2433 !important;
}

.module-card h3,
.note-card h3,
.panel-card h3 { margin: 0 0 0.3rem; font-size: 1.2rem; font-weight: 800; }

.module-card p,
.note-card p,
.panel-card p { color: var(--text-soft); }

.feature-list,
.bullet-list { margin: 0; padding-left: 1.1rem; color: var(--text-soft); }
.feature-list li,
.bullet-list li { margin-bottom: 0.5rem; }

.label-stack { display: flex; flex-direction: column; gap: 0.15rem; }
.label-stack strong { font-weight: 800; }
.label-stack span { color: var(--text-soft); font-size: 0.92rem; }

.mini-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.mini-stat {
  border-radius: 18px;
  border: 1px solid rgba(128, 168, 193, 0.12);
  background: rgba(10, 20, 30, 0.62);
  padding: 1rem;
}

body.dashboard-body[data-theme="light"] .mini-stat {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(88, 121, 145, 0.14);
}

.mini-stat-label { color: var(--text-soft); font-weight: 700; font-size: 0.92rem; }
.mini-stat-value { margin-top: 0.45rem; font-size: 1.28rem; font-weight: 800; letter-spacing: -0.04em; }
.helper-text { color: var(--text-dim); font-size: 0.92rem; }

body.dashboard-body[data-theme="light"] .hero-subtitle,
body.dashboard-body[data-theme="light"] .section-copy,
body.dashboard-body[data-theme="light"] .metric-label,
body.dashboard-body[data-theme="light"] .metric-meta,
body.dashboard-body[data-theme="light"] .label-stack span,
body.dashboard-body[data-theme="light"] .helper-text,
body.dashboard-body[data-theme="light"] .search-shell i,
body.dashboard-body[data-theme="light"] .dashboard-table thead th,
body.dashboard-body[data-theme="light"] .dashboard-table .text-muted,
body.dashboard-body[data-theme="light"] .text-muted {
  color: #4a6579 !important;
}

body.dashboard-body[data-theme="light"] .dashboard-table tbody td,
body.dashboard-body[data-theme="light"] .panel-card p,
body.dashboard-body[data-theme="light"] .note-card p,
body.dashboard-body[data-theme="light"] .table-card p,
body.dashboard-body[data-theme="light"] .module-card p {
  color: #223b4d;
}

body.dashboard-body[data-theme="light"] h1,
body.dashboard-body[data-theme="light"] h2,
body.dashboard-body[data-theme="light"] h3,
body.dashboard-body[data-theme="light"] h4,
body.dashboard-body[data-theme="light"] h5,
body.dashboard-body[data-theme="light"] h6,
body.dashboard-body[data-theme="light"] strong,
body.dashboard-body[data-theme="light"] .hero-title,
body.dashboard-body[data-theme="light"] .section-title {
  color: #0f2433;
}
.highlight-number { font-size: clamp(1.7rem, 2.8vw, 2.25rem); font-weight: 800; letter-spacing: -0.05em; }

.dashboard-accordion .accordion-item {
  border: 1px solid rgba(128, 168, 193, 0.12);
  border-radius: 18px;
  background: rgba(12, 23, 33, 0.52);
  overflow: hidden;
  margin-bottom: 0.9rem;
}

body.dashboard-body[data-theme="light"] .dashboard-accordion .accordion-item {
  background: rgba(255, 255, 255, 0.9);
}

body.dashboard-body[data-theme="light"] .dashboard-accordion .accordion-button {
  color: #122331;
}

.dashboard-accordion .accordion-button {
  background: transparent;
  color: var(--text);
  box-shadow: none;
}

.dashboard-accordion .accordion-button:not(.collapsed) {
  background: rgba(107, 198, 221, 0.08);
  color: var(--text);
}

.accordion-title {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.accordion-title span {
  color: var(--text-soft);
  font-weight: 600;
  font-size: 0.94rem;
}

.table-actions {
  display: inline-flex;
  gap: 0.45rem;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.danger-zone {
  border-color: rgba(255, 99, 86, 0.22);
  background: linear-gradient(180deg, rgba(35, 15, 18, 0.92), rgba(28, 12, 15, 0.92));
}

body.dashboard-body[data-theme="light"] .danger-zone {
  background: linear-gradient(180deg, rgba(255, 245, 244, 0.98), rgba(255, 239, 237, 0.96));
}

.soft-block {
  padding: 0.9rem 1rem;
  border-radius: 14px;
  background: rgba(10, 20, 30, 0.56);
  border: 1px solid rgba(128, 168, 193, 0.12);
}

body.dashboard-body[data-theme="light"] .soft-block {
  background: rgba(244, 249, 252, 0.96);
  border-color: rgba(88, 121, 145, 0.14);
}

.permission-panel {
  overflow-x: auto;
}

.permission-grid {
  min-width: 560px;
  display: grid;
  grid-template-columns: minmax(180px, 1.6fr) repeat(3, minmax(0, 0.8fr));
  gap: 0.75rem;
  align-items: center;
}

.permission-grid-head {
  color: var(--text-soft);
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.permission-grid-module {
  color: var(--text);
}

.permission-check {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border-radius: 14px;
  border: 1px solid rgba(128, 168, 193, 0.12);
  background: rgba(10, 20, 30, 0.46);
  color: var(--text-soft);
  font-weight: 700;
}

.permission-check input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--accent);
}

.permission-check:has(input:checked) {
  border-color: rgba(107, 198, 221, 0.4);
  background: rgba(107, 198, 221, 0.14);
  color: var(--text);
}

.permission-check:has(input:disabled) {
  opacity: 0.74;
}

body.dashboard-body[data-theme="light"] .permission-check {
  background: rgba(250, 253, 255, 0.96);
  border-color: rgba(88, 121, 145, 0.14);
}

.offcanvas.mobile-sidebar {
  background: linear-gradient(180deg, rgba(10, 19, 28, 0.99), rgba(7, 15, 22, 0.99));
  color: var(--text);
  border-right: 1px solid rgba(128, 168, 193, 0.12);
}

.mobile-sidebar .offcanvas-header {
  border-bottom: 1px solid rgba(128, 168, 193, 0.12);
}

.main-panel > .topbar .container-fluid,
.main-panel > .page-main .container-fluid {
  max-width: 1680px;
}

@media (min-width: 1200px) {
  body.dashboard-body:not(.print-preview):not(.login-page) .app-shell {
    zoom: 0.82;
  }
}

@media (max-width: 1399.98px) {
  .filter-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .form-span-3, .form-span-4, .form-span-6, .form-span-8 { grid-column: span 3; }
  .form-span-12 { grid-column: span 6; }
}

@media (max-width: 991.98px) {
  .topbar {
    position: static;
  }
  body.dashboard-body:not(.print-preview):not(.login-page) .app-shell {
    zoom: 1;
  }
  .topbar-inner {
    align-items: stretch;
    flex-direction: column;
  }
  .page-main { padding-top: 1.5rem; }
  .mini-stat-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .topbar .quick-actions {
    width: calc(100% + 0.5rem);
    margin-right: -0.5rem;
    padding-right: 0.5rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    justify-content: flex-start;
    scrollbar-width: thin;
  }

  .topbar .quick-actions > * {
    flex: 0 0 auto;
  }

  .topbar .quick-actions .btn,
  .topbar .quick-actions form {
    width: auto;
  }

  .topbar .quick-actions .btn {
    min-height: 40px;
    padding: 0.58rem 0.82rem;
    justify-content: center;
    white-space: nowrap;
  }

  .topbar .topbar-summary {
    width: auto;
    min-width: max-content;
    justify-content: flex-start;
  }

  .hero-actions,
  .toolbar-row,
  .report-actions,
  .card-actions,
  .inline-actions {
    width: 100%;
  }

  .action-btn,
  .btn-accent,
  .btn-dark-soft,
  .btn-outline-light-soft,
  .btn-outline-danger-soft {
    width: 100%;
    justify-content: center;
  }

  .topbar .action-btn,
  .topbar .btn-dark-soft,
  .topbar .btn-outline-light-soft {
    width: auto;
  }

  .filter-grid { grid-template-columns: 1fr; }
  .form-span-3, .form-span-4, .form-span-6, .form-span-8, .form-span-12 { grid-column: span 1; }
  .dashboard-table thead th,
  .dashboard-table tbody td { padding-left: 0.45rem; padding-right: 0.45rem; }
  .report-print-meta { grid-template-columns: 1fr; }
  .mfa-setup-grid { grid-template-columns: 1fr; }
}

.print-preview .print-only {
  display: block !important;
}

.print-preview .sidebar,
.print-preview .topbar,
.print-preview .btn,
.print-preview .search-shell,
.print-preview .page-hero,
.print-preview .print-hidden {
  display: none !important;
}

.print-preview body,
.print-preview {
  background: #fff !important;
  color: #000 !important;
}

.print-preview .main-panel,
.print-preview .page-main,
.print-preview .container-fluid {
  padding: 0 !important;
}

.print-preview .panel-card,
.print-preview .metric-card,
.print-preview .module-card,
.print-preview .note-card,
.print-preview .table-card,
.print-preview .mini-stat {
  background: #fff !important;
  color: #000 !important;
  border: 1px solid #cfd6dc !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.print-preview .table-responsive,
.print-preview .table-card,
.print-preview .panel-card,
.print-preview .note-card {
  overflow: visible !important;
}

.print-preview .dashboard-table {
  width: 100% !important;
  table-layout: auto;
  border-collapse: collapse;
}

.print-preview .dashboard-table thead {
  display: table-header-group;
}

.print-preview .dashboard-table thead th,
.print-preview .dashboard-table tbody td {
  color: #000 !important;
  white-space: normal !important;
  word-break: break-word;
  font-size: 11px;
  padding: 0.45rem 0.5rem;
  border-color: #cfd6dc !important;
}

.print-preview .status-pill,
.print-preview .balance-chip,
.print-preview .soft-pill,
.print-preview .active-soft-pill {
  color: #000 !important;
  background: #fff !important;
  border-color: #8e9aa5 !important;
}

.print-preview .hero-subtitle,
.print-preview .section-copy,
.print-preview .helper-text,
.print-preview .label-stack span,
.print-preview .metric-label,
.print-preview .metric-meta,
.print-preview .mini-stat-label,
.print-preview .report-print-meta-card span {
  color: #314b5c !important;
}

.print-preview tr,
.print-preview td,
.print-preview th,
.print-preview .table-card,
.print-preview .panel-card {
  break-inside: avoid;
}

@media print {
  @page {
    size: auto;
    margin: 12mm;
  }

  .sidebar,
  .topbar,
  .btn,
  .search-shell,
  .print-hidden { display: none !important; }

  .print-only { display: block !important; }

  body.dashboard-body { background: #fff; color: #000; }
  .page-main, .main-panel { padding: 0; }
  .page-hero { display: none !important; }
  .panel-card, .metric-card, .module-card, .note-card, .table-card, .mini-stat { box-shadow: none; border: 1px solid #ccc; color: #000; background: #fff; overflow: visible !important; }
  .table-responsive, .table-card, .panel-card, .note-card { overflow: visible !important; }
  .dashboard-table { width: 100% !important; table-layout: auto; border-collapse: collapse; }
  .dashboard-table thead { display: table-header-group; }
  .dashboard-table, .dashboard-table thead th, .dashboard-table tbody td, .hero-subtitle, .section-copy, .helper-text { color: #000 !important; }
  .dashboard-table thead th, .dashboard-table tbody td { white-space: normal !important; word-break: break-word; font-size: 11px; padding: 0.45rem 0.5rem; border-color: #cfd6dc !important; }
  .status-pill { border: 1px solid #000; background: #fff !important; color: #000 !important; }
  tr, td, th, .table-card, .panel-card { break-inside: avoid; }
}
