@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
    color-scheme: light;
    --hub-font-sans: 'DM Sans', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --hub-primary: #1f6c63;
    --hub-primary-dark: #153e3b;
    --hub-sidebar: #153e3b;
    --hub-accent: #f2c878;
    --hub-bg: #f3f7fa;
    --hub-surface: #ffffff;
    --hub-border: #dbe6eb;
    --hub-text: #1e3035;
    --hub-muted: #6d7d82;
    --hub-success: #2d8a68;
    --hub-warning: #b87920;
    --hub-danger: #b9504e;
    --hub-info: #3d83a2;
    --hub-radius: .65rem;
    --hub-shadow: 0 .45rem 1.5rem rgba(21, 62, 59, .08);
    --hub-sidebar-width: 246px;
    --hub-header-height: 72px;
    --hub-btn-primary: var(--hub-primary-dark);
    --hub-btn-primary-hover: var(--hub-sidebar);
    --hub-btn-primary-contrast: #fff;
    --hub-icon-color: var(--hub-primary-dark);
    --hub-link: var(--hub-primary-dark);
    --hub-sidebar-text: #f5fbfa;
    --hub-sidebar-muted: rgba(255,255,255,.68);
    --hub-surface-raised: #f8fbfc;
    --hub-control-bg: var(--hub-surface);
    --hub-control-border: var(--hub-border);
    --hub-hover-surface: color-mix(in srgb, var(--hub-primary) 12%, var(--hub-surface));
    --hub-input-bg: var(--hub-surface);
    --hub-table-head: color-mix(in srgb, var(--hub-primary) 5%, var(--hub-surface));
    --hub-table-hover: color-mix(in srgb, var(--hub-primary) 7%, var(--hub-surface));
    --hub-badge-success-bg: #e2f3eb;
    --hub-badge-success-text: #1d684e;
    --hub-badge-warning-bg: #fff1d7;
    --hub-badge-warning-text: #855b19;
    --hub-badge-danger-bg: #fbe3e2;
    --hub-badge-danger-text: #93403e;
    --hub-badge-info-bg: #e1f0f6;
    --hub-badge-info-text: #28647e;
    --dt_background-selected: 21, 62, 59;
    --dt_color-selected: 255, 255, 255;
    --dt_link_color-selected: 255, 255, 255;
}

html { min-height: 100%; }
body.hub-body { min-height: 100vh; background: var(--hub-bg); color: var(--hub-text); font-family: var(--hub-font-sans); }
.hub-app { min-height: 100vh; display: flex; }
.hub-main { min-width: 0; flex: 1; margin-left: var(--hub-sidebar-width); }
.hub-content { max-width: 1600px; margin: 0 auto; padding: 1.5rem clamp(1rem, 2.6vw, 2.5rem) 2.75rem; }
.text-hub-muted { color: var(--hub-muted) !important; }
.bg-hub-primary { background: var(--hub-primary) !important; }
.text-hub-primary { color: var(--hub-primary) !important; }
.border-hub { border-color: var(--hub-border) !important; }

@media (max-width: 991.98px) {
    .hub-main { margin-left: 0; }
    .hub-content { padding-top: 1.15rem; }
}

/* Global appearance tokens based on the Replit reference palettes. */
html[data-color-scheme="stormy-morning"] { --hub-primary:#6A89A7; --hub-primary-dark:#526F8A; --hub-sidebar:#384959; --hub-accent:#88BDF2; --hub-border:rgba(56,73,89,.2); --hub-text:#384959; --hub-muted:#586d81; --hub-info:#526F8A; --hub-link:#405F7B; --hub-btn-primary:#526F8A; --hub-btn-primary-hover:#384959; --hub-icon-color:#526F8A; --dt_background-selected:82,111,138; }
html[data-color-scheme="ink-wash"] { --hub-primary:#6D8196; --hub-primary-dark:#566A7E; --hub-sidebar:#4A4A4A; --hub-accent:#FFFFE3; --hub-border:rgba(74,74,74,.22); --hub-text:#3D4246; --hub-muted:#5E6D79; --hub-info:#566A7E; --hub-link:#4D6379; --hub-btn-primary:#566A7E; --hub-btn-primary-hover:#4A4A4A; --hub-icon-color:#566A7E; --dt_background-selected:86,106,126; }
html[data-color-scheme="harbor-haze"] { --hub-primary:#5C8DC5; --hub-primary-dark:#4679B2; --hub-sidebar:#56564D; --hub-accent:#AD9E90; --hub-border:rgba(89,102,116,.2); --hub-text:#414a52; --hub-muted:#626e78; --hub-info:#4679B2; --hub-link:#3F70A7; --hub-btn-primary:#4679B2; --hub-btn-primary-hover:#365F90; --hub-icon-color:#4679B2; --dt_background-selected:70,121,178; }

html[data-theme="dark"] {
    color-scheme:dark;
    --hub-bg:#101719; --hub-surface:#192326; --hub-surface-raised:#202c30; --hub-border:#354348;
    --hub-text:#e7eff0; --hub-muted:#adbbbe; --hub-sidebar:#101b1e; --hub-accent:#f2c878;
    --hub-primary:#75c9bc; --hub-primary-dark:#8bd8ca; --hub-btn-primary:#287C72; --hub-btn-primary-hover:#35978A;
    --hub-success:#65cda5; --hub-warning:#e8bd69; --hub-danger:#ef8983; --hub-info:#8cc8df;
    --hub-btn-primary-contrast:#fff; --hub-icon-color:#84d5c8; --hub-link:#8bd8ca; --hub-control-bg:#202c30; --hub-control-border:#46575c;
    --hub-hover-surface:#29383c; --hub-input-bg:#202c30; --hub-table-head:#202c30; --hub-table-hover:#253337;
    --hub-shadow:0 .45rem 1.5rem rgba(0,0,0,.3);
    --hub-badge-success-bg:#183b32; --hub-badge-success-text:#a5e3c8;
    --hub-badge-warning-bg:#46391f; --hub-badge-warning-text:#f3d58e;
    --hub-badge-danger-bg:#482a2c; --hub-badge-danger-text:#f2b4b1;
    --hub-badge-info-bg:#1d3947; --hub-badge-info-text:#b3def0;
    --dt_background-selected: 40, 124, 114;
    --bs-body-bg:var(--hub-bg); --bs-body-color:var(--hub-text); --bs-emphasis-color:var(--hub-text);
    --bs-secondary-color:var(--hub-muted); --bs-tertiary-color:var(--hub-muted);
    --bs-secondary-bg:var(--hub-surface); --bs-tertiary-bg:var(--hub-surface-raised);
    --bs-border-color:var(--hub-border); --bs-link-color:var(--hub-link); --bs-link-hover-color:var(--hub-primary);
}
html[data-theme="dark"][data-color-scheme="stormy-morning"] { --hub-primary:#BDDDFC; --hub-primary-dark:#88BDF2; --hub-sidebar:#1d2d39; --hub-accent:#88BDF2; --hub-btn-primary:#526F8A; --hub-btn-primary-hover:#40596f; --hub-link:#BDDDFC; --hub-icon-color:#BDDDFC; --dt_background-selected:82,111,138; }
html[data-theme="dark"][data-color-scheme="ink-wash"] { --hub-primary:#FFFFE3; --hub-primary-dark:#CBCBCB; --hub-sidebar:#252626; --hub-accent:#FFFFE3; --hub-btn-primary:#59636b; --hub-btn-primary-hover:#454d53; --hub-link:#FFFFE3; --hub-icon-color:#FFFFE3; --dt_background-selected:89,99,107; }
html[data-theme="dark"][data-color-scheme="harbor-haze"] { --hub-primary:#B9D0E7; --hub-primary-dark:#90AFCF; --hub-sidebar:#2b2c2b; --hub-accent:#AD9E90; --hub-btn-primary:#426e9c; --hub-btn-primary-hover:#355d87; --hub-link:#B9D0E7; --hub-icon-color:#B9D0E7; --dt_background-selected:66,110,156; }

