

		:root {
			--sm-ink: #17211f;
			--sm-muted: #5d6b68;
			--sm-brand: #13746d;
			--sm-brand-dark: #0d554f;
			--sm-accent: #b7791f;
			--sm-blue: #365f7c;
			--sm-line: #dce5e2;
			--sm-surface: #ffffff;
			--sm-soft: #f1f6f4;
			--sm-panel: #f8faf9;
			--sm-warn: #c47b11;
			--sm-shadow: 0 12px 32px rgba(23, 33, 31, .07);
		}

		:root[data-theme="dark"] {
			color-scheme: dark;
			--sm-ink: #e6eeec;
			--sm-muted: #a7b6b2;
			--sm-brand: #55b8ad;
			--sm-brand-dark: #8bd2ca;
			--sm-accent: #e2b45f;
			--sm-blue: #8bb9d5;
			--sm-line: #354541;
			--sm-surface: #1b2724;
			--sm-soft: #263632;
			--sm-panel: #202e2a;
			--sm-warn: #e2b45f;
			--bs-body-color: var(--sm-ink);
			--bs-body-bg: #121a18;
			--bs-secondary-color: var(--sm-muted);
			--bs-border-color: var(--sm-line);
			--bs-tertiary-bg: var(--sm-panel);
		}

		* {
			letter-spacing: 0;
		}

		body {
			min-height: 100vh;
			background: #f6f8f7;
			color: var(--sm-ink);
			font-family: "Inter", "Segoe UI", system-ui, sans-serif;
		}

		:root[data-theme="dark"] body {
			background: #121a18;
		}

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

		.app-main {
			flex: 1;
		}

		.app-navbar {
			border-bottom: 1px solid var(--sm-line);
			background: color-mix(in srgb, var(--sm-surface) 96%, transparent);
			backdrop-filter: blur(12px);
		}

		.navbar-toggler {
			border-color: var(--sm-line);
		}


		.app-brand {
			color: var(--sm-brand-dark);
			display: inline-flex;
			align-items: center;
			gap: .55rem;
			letter-spacing: 0;
		}

		.app-brand::before {
			content: "";
			display: inline-block;
			width: .85rem;
			height: .85rem;
			border-radius: 3px;
			background: linear-gradient(135deg, var(--sm-brand), var(--sm-accent));
			box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
		}

		.nav-link {
			color: var(--sm-muted);
			font-weight: 600;
		}

		.nav-link:hover,
		.nav-link:focus {
			color: var(--sm-brand-dark);
		}

		.btn-sm-brand {
			background: var(--sm-brand);
			border-color: var(--sm-brand);
			color: #fff;
			font-weight: 700;
			border-radius: 8px;
			padding-inline: .9rem;
		}

		.btn-sm-brand:hover {
			background: var(--sm-brand-dark);
			border-color: var(--sm-brand-dark);
			color: #fff;
		}

		.btn-primary {
			background: var(--sm-brand);
			border-color: var(--sm-brand);
			color: #fff;
		}

		.btn-primary:hover,
		.btn-primary:focus,
		.btn-primary:active,
		.btn-primary.active,
		.show > .btn-primary.dropdown-toggle {
			background: var(--sm-brand-dark);
			border-color: var(--sm-brand-dark);
			color: #fff;
		}

		.btn-outline-primary,
		.btn-outline-info {
			color: var(--sm-brand);
			border-color: var(--sm-brand);
		}

		.btn-outline-primary:hover,
		.btn-outline-primary:focus,
		.btn-outline-info:hover,
		.btn-outline-info:focus {
			background-color: rgba(19, 116, 109, 0.08);
			color: var(--sm-brand-dark);
			border-color: var(--sm-brand-dark);
		}

		.btn-outline-primary:active,
		.btn-outline-info:active {
			background-color: rgba(19, 116, 109, 0.16);
		}

		.btn-info,
		.btn-sm.btn-info {
			background: var(--sm-brand);
			border-color: var(--sm-brand);
			color: #fff;
		}

		.btn-info:hover,
		.btn-info:focus,
		.btn-sm.btn-info:hover,
		.btn-sm.btn-info:focus {
			background: var(--sm-brand-dark);
			border-color: var(--sm-brand-dark);
		}

		.text-sm-brand {
			color: var(--sm-brand) !important;
		}

		.app-footer {
			border-top: 1px solid var(--sm-line);
			background: var(--sm-surface);
		}

		:root[data-theme="dark"] .card,
		:root[data-theme="dark"] .modal-content,
		:root[data-theme="dark"] .dropdown-menu,
		:root[data-theme="dark"] .list-group-item,
		:root[data-theme="dark"] .bg-white,
		:root[data-theme="dark"] .bg-light,
		:root[data-theme="dark"] .table {
			--bs-card-bg: var(--sm-surface);
			--bs-modal-bg: var(--sm-surface);
			--bs-dropdown-bg: var(--sm-surface);
			background-color: var(--sm-surface) !important;
			color: var(--sm-ink);
		}

		:root[data-theme="dark"] .text-secondary,
		:root[data-theme="dark"] .text-muted {
			color: var(--sm-muted) !important;
		}

		:root[data-theme="dark"] .form-control,
		:root[data-theme="dark"] .form-select {
			background-color: var(--sm-panel);
			color: var(--sm-ink);
			border-color: var(--sm-line);
		}

		:root[data-theme="dark"] .form-control::placeholder {
			color: var(--sm-muted);
		}

		:root[data-theme="dark"] .table {
			--bs-table-bg: var(--sm-surface);
			--bs-table-color: var(--sm-ink);
			--bs-table-border-color: var(--sm-line);
		}

		.skip-link {
			position: absolute;
			left: 1rem;
			top: -5rem;
			z-index: 1100;
			padding: .75rem 1rem;
			background: var(--sm-surface);
			color: var(--sm-ink);
			border: 1px solid var(--sm-line);
			border-radius: 8px;
		}

		.skip-link:focus {
			top: 1rem;
		}

		.alert {
			border-radius: 12px;
		}

		.form-control,
		.form-select {
			border-color: #cfdcda;
			border-radius: 8px;
		}

		.form-control:focus,
		.form-select:focus {
			border-color: var(--sm-brand);
			box-shadow: 0 0 0 .2rem rgba(19, 116, 109, .12);
		}

		.table {
			--bs-table-color: var(--sm-ink);
		}

/* Grid children must shrink so wide financial tables scroll inside their panel. */
.workspace-main, .platform-main { min-width: 0; overflow-wrap: anywhere; }
:focus-visible { outline: 3px solid var(--sm-brand); outline-offset: 3px; }
:root[data-theme="dark"] .btn-primary,
:root[data-theme="dark"] .btn-sm-brand,
:root[data-theme="dark"] .btn-info { color: #121a18; }
@media (max-width: 575.98px) {
  .workspace-main, .platform-main { padding: .75rem; }
  .metric-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
  .workspace-main .d-flex, .platform-main .d-flex { flex-wrap: wrap; gap: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
:root[data-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: var(--sm-muted);
  --bs-btn-border-color: var(--sm-muted);
  --bs-btn-hover-color: #121a18;
  --bs-btn-hover-bg: var(--sm-muted);
}
:root[data-theme="dark"] .text-primary { color: #8bb9ff !important; }
:root[data-theme="dark"] .text-success { color: #75d6aa !important; }
:root[data-theme="dark"] .text-danger { color: #ff9b9b !important; }
@media (max-width: 575.98px) {
  .table-responsive > .table { min-width: 36rem; }
}
