/* Shared workspace tokens. A module owns its accent; appearance owns the surfaces. */
:root {
    color-scheme: light;
    --dsi-bg: #f3f5f8;
    --dsi-surface: #ffffff;
    --dsi-surface-alt: #f7f9fb;
    --dsi-surface-raised: #ffffff;
    --dsi-sidebar-surface: #f6f8fb;
    --dsi-text: #26364b;
    --dsi-text-muted: #607087;
    --dsi-border: #e2e7ee;
    --dsi-border-strong: #cbd4df;
    --dsi-shadow: 0 5px 20px rgba(34, 51, 77, .055);
    --dsi-shadow-soft: 0 3px 9px rgba(34, 51, 77, .045);
    --dsi-primary: #5863ad;
    --dsi-primary-hover: #465298;
    --dsi-primary-soft: #edf0fb;
    --dsi-primary-ink: #445296;
    --dsi-primary-line: #d8def2;
    --dsi-primary-contrast: #ffffff;
    --dsi-focus: #687fcb;
    --dsi-success: #246746;
    --dsi-success-bg: #eaf5ee;
    --dsi-success-border: #cce2d3;
    --dsi-warning: #805915;
    --dsi-warning-bg: #fff5e4;
    --dsi-warning-border: #eddab4;
    --dsi-danger: #a33248;
    --dsi-danger-bg: #fff0f2;
    --dsi-danger-border: #ebcbd3;
}
html[data-theme="dark"] {
    color-scheme: dark;
    --dsi-bg: #101722;
    --dsi-surface: #1a2533;
    --dsi-surface-alt: #202d3c;
    --dsi-surface-raised: #233141;
    --dsi-sidebar-surface: #17212e;
    --dsi-text: #e4ebf3;
    --dsi-text-muted: #adbacc;
    --dsi-border: #344252;
    --dsi-border-strong: #4a5b70;
    --dsi-shadow: 0 5px 20px rgba(0, 0, 0, .11);
    --dsi-shadow-soft: 0 3px 9px rgba(0, 0, 0, .09);
    --dsi-primary: #a5adeb;
    --dsi-primary-hover: #bec4f4;
    --dsi-primary-soft: #2b3556;
    --dsi-primary-ink: #c2c9ff;
    --dsi-primary-line: #46547e;
    --dsi-primary-contrast: #1b2240;
    --dsi-focus: #9fafea;
    --dsi-success: #a2dcbb;
    --dsi-success-bg: #1f3c32;
    --dsi-success-border: #3b6252;
    --dsi-warning: #f0cd8e;
    --dsi-warning-bg: #413525;
    --dsi-warning-border: #6b5533;
    --dsi-danger: #f2a6b4;
    --dsi-danger-bg: #412b35;
    --dsi-danger-border: #724552;
}
body.dsi-accounting, body[data-module="accounting"], [data-module-accent="accounting"] {
    --dsi-primary: #236d78;
    --dsi-primary-hover: #175a64;
    --dsi-primary-soft: #e8f2f3;
    --dsi-primary-ink: #1d626d;
    --dsi-primary-line: #c7dfe2;
    --dsi-primary-contrast: #ffffff;
    --dsi-focus: #378b97;
}
body[data-module="enterprise"], [data-module-accent="enterprise"] {
    --dsi-primary: #6267ae;
    --dsi-primary-hover: #4e5498;
    --dsi-primary-soft: #eeeff9;
    --dsi-primary-ink: #4e5596;
    --dsi-primary-line: #d9ddf0;
    --dsi-primary-contrast: #ffffff;
    --dsi-focus: #7983ce;
}
body[data-module="account"], [data-module-accent="account"] {
    --dsi-primary: #356f9c;
    --dsi-primary-hover: #285e88;
    --dsi-primary-soft: #eaf1f8;
    --dsi-primary-ink: #2c648e;
    --dsi-primary-line: #cddfec;
    --dsi-primary-contrast: #ffffff;
    --dsi-focus: #4b91c4;
}
html[data-theme="dark"] body.dsi-accounting,
html[data-theme="dark"] body[data-module="accounting"],
html[data-theme="dark"] [data-module-accent="accounting"] {
    --dsi-primary: #83c6ce;
    --dsi-primary-hover: #9ad6dc;
    --dsi-primary-soft: #213b44;
    --dsi-primary-ink: #a1d8de;
    --dsi-primary-line: #3d5f68;
    --dsi-primary-contrast: #112d35;
    --dsi-focus: #8bced6;
}
html[data-theme="dark"] body[data-module="enterprise"],
html[data-theme="dark"] [data-module-accent="enterprise"] {
    --dsi-primary: #b0b5ed;
    --dsi-primary-hover: #c5caf8;
    --dsi-primary-soft: #303650;
    --dsi-primary-ink: #c5cbf5;
    --dsi-primary-line: #4b537b;
    --dsi-primary-contrast: #232844;
    --dsi-focus: #b0b8f2;
}
html[data-theme="dark"] body[data-module="account"],
html[data-theme="dark"] [data-module-accent="account"] {
    --dsi-primary: #8ebce0;
    --dsi-primary-hover: #a5cdec;
    --dsi-primary-soft: #233b50;
    --dsi-primary-ink: #b0d3ed;
    --dsi-primary-line: #3e5e77;
    --dsi-primary-contrast: #192d3f;
    --dsi-focus: #92c2e6;
}
body[data-module] { background: var(--dsi-bg); color: var(--dsi-text); }
body[data-module] :focus-visible { outline: 3px solid var(--dsi-focus); outline-offset: 3px; }
body[data-module] input, body[data-module] select, body[data-module] textarea { color-scheme: inherit; }
.dsi-theme-switcher { display: inline-flex; align-items: center; gap: 3px; padding: 4px; background: var(--dsi-surface-alt); border: 1px solid var(--dsi-border); border-radius: 11px; }
[data-theme-choice] { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; padding: 7px 10px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--dsi-text-muted); font: inherit; font-size: 12px; font-weight: 600; line-height: 1.25; cursor: pointer; }
[data-theme-choice]:hover { background: var(--dsi-surface); color: var(--dsi-text); }
[data-theme-choice][aria-pressed="true"] { background: var(--dsi-surface-raised); color: var(--dsi-primary-ink); border-color: var(--dsi-border); box-shadow: var(--dsi-shadow-soft); }
[data-theme-choice] svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.dsi-theme-label { color: var(--dsi-text-muted); font-size: 12px; }
.dsi-context-menu { position: relative; flex: 0 1 240px; min-width: 0; max-width: 240px; }
.dsi-context-menu:not([open]) > .dsi-context-panel { display: none; }
.dsi-enterprise-switcher { width: clamp(180px, 18vw, 240px); }
.dsi-context-trigger { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 6px 9px; border: 1px solid var(--dsi-border); background: var(--dsi-surface); color: var(--dsi-text); border-radius: 11px; list-style: none; cursor: pointer; box-shadow: var(--dsi-shadow-soft); }
.dsi-context-trigger::-webkit-details-marker { display: none; }
.dsi-context-trigger::after { content: ""; flex: 0 0 6px; width: 6px; height: 6px; border-right: 1.5px solid var(--dsi-text-muted); border-bottom: 1.5px solid var(--dsi-text-muted); transform: rotate(45deg); margin: 0 3px 3px auto; }
.dsi-context-menu[open] > .dsi-context-trigger { border-color: var(--dsi-primary-line); }
.dsi-context-menu[open] > .dsi-context-trigger::after { transform: rotate(225deg); margin-bottom: -3px; }
.dsi-context-trigger > svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.dsi-context-menu.dsi-theme-switcher, .dsi-context-menu.dsi-user-menu { flex: 0 0 auto; width: auto; max-width: none; display: block; padding: 0; border: 0; border-radius: 0; background: transparent; }
.dsi-theme-switcher > .dsi-context-trigger { padding: 10px 11px; font-size: 12px; font-weight: 600; }
.dsi-user-menu > .dsi-context-trigger { padding: 11px; }
.dsi-theme-switcher > .dsi-context-panel { width: 280px; }
.dsi-enterprise-avatar { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 31px; width: 31px; height: 31px; border-radius: 9px; overflow: hidden; background: var(--dsi-primary-soft); color: var(--dsi-primary-ink); font-size: 11px; font-weight: 700; }
.dsi-enterprise-avatar img { width: 100%; height: 100%; object-fit: contain; }
.dsi-enterprise-avatar svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.dsi-context-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; line-height: 1.35; }
.dsi-context-copy > strong, .dsi-context-copy > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--dsi-text); font-size: 12px; font-weight: 600; }
.dsi-context-copy > small { color: var(--dsi-text-muted); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsi-context-panel { position: absolute; top: calc(100% + 9px); left: 0; z-index: 1060; width: 320px; max-width: calc(100vw - 24px); padding: 8px; background: var(--dsi-surface); border: 1px solid var(--dsi-border); border-radius: 13px; box-shadow: 0 12px 30px rgba(16, 31, 49, .15); max-height: min(520px, calc(100dvh - 130px)); overflow-y: auto; scrollbar-width: thin; }
.dsi-context-heading { color: var(--dsi-text-muted); padding: 8px 10px 10px; font-size: 10px; text-transform: uppercase; letter-spacing: .9px; font-weight: 700; }
.dsi-context-heading > strong, .dsi-context-heading > small { display: block; text-transform: none; letter-spacing: 0; }
.dsi-context-heading > strong { color: var(--dsi-text); font-size: 13px; font-weight: 650; }
.dsi-context-heading > small { color: var(--dsi-text-muted); font-size: 11px; font-weight: 400; line-height: 1.6; margin-top: 5px; overflow-wrap: anywhere; }
.dsi-context-empty { color: var(--dsi-text-muted); font-size: 12px; line-height: 1.7; padding: 10px; margin: 0; }
.dsi-context-option { display: flex; align-items: center; gap: 10px; padding: 10px; min-height: 48px; border-radius: 9px; color: var(--dsi-text); text-decoration: none; font-size: 12px; font-weight: 500; }
.dsi-context-option:hover { color: var(--dsi-primary-ink); background: var(--dsi-surface-alt); text-decoration: none; }
.dsi-context-option.is-current, .dsi-context-option[aria-current="page"] { color: var(--dsi-primary-ink); background: var(--dsi-primary-soft); }
.dsi-context-option.is-current::after, .dsi-context-option[aria-current="page"]::after { content: "✓"; color: var(--dsi-primary-ink); margin-left: auto; font-weight: 700; }
.dsi-context-option > svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.5; flex-shrink: 0; }
.dsi-context-footer { display: flex; flex-direction: column; gap: 3px; margin: 8px -8px -8px; padding: 10px 12px; border-top: 1px solid var(--dsi-border); color: var(--dsi-text-muted); font-size: 11px; background: var(--dsi-surface-alt); }
.dsi-context-footer a { color: var(--dsi-primary-ink); font-weight: 600; text-decoration: none; }
.dsi-context-footer > a { padding: 7px 6px; border-radius: 6px; min-height: 32px; }
.dsi-context-footer > a:hover { background: var(--dsi-surface); }
.dsi-context-footer form { margin: 0; }
.dsi-context-footer .dsi-signout { padding: 7px 6px; color: var(--dsi-text-muted); background: transparent; border: 0; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.dsi-theme-options { display: flex; gap: 4px; padding: 6px; border-radius: 10px; background: var(--dsi-surface-alt); }
.dsi-theme-options [data-theme-choice] { flex: 1; }
.dsi-account-menu .dsi-context-panel { left: auto; right: 0; }
@media (max-width: 850px) {
    .dsi-context-menu { flex-basis: 210px; max-width: 210px; }
    .dsi-theme-switcher [data-theme-choice] > span { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
}
@media (max-width: 575.98px) {
    .dsi-context-menu { flex: 1 1 120px; max-width: 180px; }
    .dsi-context-trigger { gap: 6px; padding: 6px; }
    .dsi-context-copy > strong, .dsi-context-copy > span { font-size: 11px; }
    .dsi-context-copy > small { font-size: 9px; }
    .dsi-context-panel { position: fixed; top: calc(var(--dsi-toolbar-height, 76px) + 7px); left: 12px; right: 12px; width: auto; max-width: none; max-height: calc(100dvh - var(--dsi-toolbar-height, 76px) - 20px); }
    .dsi-account-menu .dsi-context-panel { left: 12px; right: 12px; }
    .dsi-theme-switcher { gap: 1px; padding: 3px; }
    .dsi-theme-switcher [data-theme-choice] { padding: 7px; }
    .dsi-theme-switcher > .dsi-context-trigger [data-theme-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .dsi-theme-switcher > .dsi-context-trigger { padding: 11px; }
    .dsi-theme-switcher > .dsi-context-panel { width: auto; }
}
@media (prefers-reduced-motion: reduce) { [data-theme-choice] { transition: none !important; } }
@media print { .dsi-theme-switcher, [data-theme-choice] { display: none !important; } }

/* Existing personal-account screens share the palette without changing their layout. */
body.dsi-account-site {
    --dsi-ink: var(--dsi-text);
    --dsi-muted: var(--dsi-text-muted);
    --dsi-teal: var(--dsi-primary-ink);
    --dsi-line: var(--dsi-border);
    background: var(--dsi-bg);
    color: var(--dsi-text);
}
body.dsi-account-site .account-hub {
    --acc-surface: var(--dsi-surface);
    --acc-line: var(--dsi-border);
    --acc-text: var(--dsi-text);
    --acc-muted: var(--dsi-text-muted);
    --acc-accent: var(--dsi-primary-ink);
}
body.dsi-account-site .dsi-account-header { background: var(--dsi-bg); border-color: var(--dsi-border); }
body.dsi-account-site .dsi-account-sidebar #sidenav-main { background: var(--dsi-sidebar-surface) !important; border-color: var(--dsi-border) !important; }
body.dsi-account-site .dsi-account-sidebar .nav-link { color: var(--dsi-text-muted); }
body.dsi-account-site .dsi-account-sidebar #sidenav-main .nav-link.active { color: var(--dsi-primary-ink); background: var(--dsi-primary-soft); }
body.dsi-account-site .dsi-account-sidebar .sidenav .nav-link.active .icon { background: var(--dsi-primary) !important; color: var(--dsi-primary-contrast); }
body.dsi-account-site .dsi-account-sidebar .sidenav .nav-link.active .icon i { color: var(--dsi-primary-contrast) !important; }
body.dsi-account-site .dsi-account-menu-toggle, body.dsi-account-site .dsi-account-skip { background: var(--dsi-surface); color: var(--dsi-text); }
body.dsi-account-site .dsi-account-mobile-links a { background: var(--dsi-surface-alt); color: var(--dsi-text); }
body.dsi-account-site .dsi-account-main > .footer { background: var(--dsi-surface); border-color: var(--dsi-border); color: var(--dsi-text-muted); }
body.dsi-account-site .account-hub .btn-account-primary { background: var(--dsi-primary); color: var(--dsi-primary-contrast); box-shadow: var(--dsi-shadow-soft); }
body.dsi-account-site .account-hub .btn-account-primary:hover { background: var(--dsi-primary-hover); color: var(--dsi-primary-contrast); }
body.dsi-account-site .account-hub .btn-account-light { background: var(--dsi-surface-alt); border-color: var(--dsi-border); color: var(--dsi-text); }
body.dsi-account-site .account-nav-link.active { background: var(--dsi-primary-soft); color: var(--dsi-primary-ink); }
body.dsi-account-site .account-nav-link.active .account-nav-icon { background: var(--dsi-primary); color: var(--dsi-primary-contrast); }
body.dsi-account-site .account-mini-progress span, body.dsi-account-site .account-progress span { background: var(--dsi-primary); }
body.dsi-account-site .account-location-link, body.dsi-account-site .account-kpi-link,
body.dsi-account-site .account-text-action, body.dsi-account-site .account-percent,
body.dsi-account-site .account-sidebar-help-icon { color: var(--dsi-primary-ink); }
body.dsi-account-site .dsi-context-panel { color: var(--dsi-text); }
body.dsi-account-site .dsi-account-header-actions .dsi-context-panel { left: auto; right: 0; }
html[data-theme="dark"] body.dsi-account-site :where(h1, h2, h3, h4, h5, h6, label, .text-dark, .text-body, .text-black) { color: var(--dsi-text) !important; }
html[data-theme="dark"] body.dsi-account-site :where(.text-muted, .text-secondary, .text-secondary-emphasis, .form-text, .breadcrumb-item, .dropdown-header) { color: var(--dsi-text-muted) !important; }
html[data-theme="dark"] body.dsi-account-site :where(.card, .card-header, .card-body, .card-footer, .modal-content, .dropdown-menu, .list-group-item, .bg-white, .bg-gray-100, .bg-gray-200, .bg-light) { background: var(--dsi-surface) !important; color: var(--dsi-text); border-color: var(--dsi-border); }
html[data-theme="dark"] body.dsi-account-site :where(.account-nav-card, .account-panel, .account-kpi-card, .account-company-card, .account-security-control, .account-card, .mini-stat, .security-item, .subscription-card, .plan-card, .feed-item) { background: var(--dsi-surface); border-color: var(--dsi-border); color: var(--dsi-text); }
html[data-theme="dark"] body.dsi-account-site :where(.account-title, .mini-stat-value, .subscription-price, .plan-price, .plan-features) { color: var(--dsi-text); }
html[data-theme="dark"] body.dsi-account-site :where(.account-nav-icon, .account-nav-score, .account-recovery-card, .account-check-grid > span, .account-table-status, .account-level-pill, .account-mini-progress, .account-progress) { background: var(--dsi-surface-alt); }
html[data-theme="dark"] body.dsi-account-site :where(.account-company-logo, .account-resume-logo, .account-cv-avatar, .account-count-badge, .account-empty-state > i, .account-hub .datatable-pagination a, .account-hub .datatable-pagination button) { color: var(--dsi-primary-ink); background: var(--dsi-primary-soft); }
html[data-theme="dark"] body.dsi-account-site .account-score-ring { background: radial-gradient(closest-side, var(--dsi-surface) 80%, transparent 82%), conic-gradient(var(--score-color) calc(var(--score)*1%), var(--dsi-border) 0); }
html[data-theme="dark"] body.dsi-account-site :where(.account-hub .is-good, .account-hub .is-green, .account-hub .is-teal, .account-security-state.is-ok, .account-check-grid .is-done, .account-table-status.is-active, .security-score, .bg-soft-success) { color: var(--dsi-success); background: var(--dsi-success-bg); }
html[data-theme="dark"] body.dsi-account-site :where(.account-security-state.is-alert, .account-hub .is-warning, .account-hub .is-orange, .account-table-status.is-pending, .bg-soft-warning) { color: var(--dsi-warning); background: var(--dsi-warning-bg); }
html[data-theme="dark"] body.dsi-account-site :where(.account-hub .is-danger, .account-table-status.is-inactive, .bg-soft-danger) { color: var(--dsi-danger); background: var(--dsi-danger-bg); }
html[data-theme="dark"] body.dsi-account-site :where(.account-hub .is-blue, .account-hub .is-violet, .account-hub .is-purple, .bg-soft-primary, .feed-badge) { color: var(--dsi-primary-ink); background: var(--dsi-primary-soft); }
html[data-theme="dark"] body.dsi-account-site :where(.is-good, .account-score-ring) { --score-color: var(--dsi-success); }
html[data-theme="dark"] body.dsi-account-site .is-warning { --score-color: var(--dsi-warning); }
html[data-theme="dark"] body.dsi-account-site .is-danger { --score-color: var(--dsi-danger); }
html[data-theme="dark"] body.dsi-account-site .table { --bs-table-bg: var(--dsi-surface); --bs-table-color: var(--dsi-text); --bs-table-border-color: var(--dsi-border); --bs-table-striped-bg: var(--dsi-surface-alt); --bs-table-striped-color: var(--dsi-text); --bs-table-hover-bg: var(--dsi-surface-alt); --bs-table-hover-color: var(--dsi-text); color: var(--dsi-text); }
html[data-theme="dark"] body.dsi-account-site :where(.table td, .table th, .account-table td, .account-table th) { border-color: var(--dsi-border); }
html[data-theme="dark"] body.dsi-account-site :where(.form-control, .form-select, .input-group-text, .datatable-input, .datatable-selector, input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), select, textarea) { background-color: var(--dsi-surface-alt); border-color: var(--dsi-border-strong); color: var(--dsi-text); }
html[data-theme="dark"] body.dsi-account-site :where(input, textarea)::placeholder { color: var(--dsi-text-muted); }
html[data-theme="dark"] body.dsi-account-site :where(.dropdown-item, .navbar-brand, .nav-link, .page-link) { color: var(--dsi-text); }
html[data-theme="dark"] body.dsi-account-site :where(.dropdown-item:hover, .dropdown-item:focus, .page-link) { background-color: var(--dsi-surface-alt); }
html[data-theme="dark"] body.dsi-account-site :where(.account-company-cover, .feed-wrapper) { background: var(--dsi-surface-alt); }
html[data-theme="dark"] body.dsi-account-site .form-check-input { background-color: var(--dsi-surface-alt); border-color: var(--dsi-border-strong); }
html[data-theme="dark"] body.dsi-account-site .form-check-input:checked { background-color: var(--dsi-primary); border-color: var(--dsi-primary); }
html[data-theme="dark"] body.dsi-account-site .sidenav-toggler-line { background: var(--dsi-text); }
@media (max-width: 575.98px) {
    body.dsi-account-site .dsi-account-header-actions .dsi-context-panel { left: 12px; right: 12px; }
}
