/* Shared branding tokens for the application and its public landing page. */
:root {
    --brand-primary: #087bf5;
    --brand-primary-rgb: 8, 123, 245;
    --brand-secondary: #072b63;
    --brand-secondary-rgb: 7, 43, 99;
    --brand-accent: #ff9f1a;
    --brand-accent-rgb: 255, 159, 26;
    --brand-background: #f4f7fd;
    --brand-text: #183153;
    --brand-on-primary: #ffffff;
    --brand-on-secondary: #ffffff;
    --brand-on-accent: #152741;
    --brand-navigation: #072b63;
    --brand-header-end: #087bf5;
    --msu-blue: var(--brand-primary);
    --msu-blue-light: rgba(var(--brand-primary-rgb), .1);
    --msu-navy: var(--brand-secondary);
    --msu-navy-deep: var(--brand-secondary);
    --msu-navy-2: var(--brand-secondary);
    --msu-orange: var(--brand-accent);
    --msu-text: var(--brand-text);
    --msu-ink: var(--brand-text);
    --msu-bg: var(--brand-background);
    --msu-soft: var(--brand-background);
    --navy: var(--brand-secondary);
    --navy-2: var(--brand-secondary);
    --blue: var(--brand-primary);
    --blue-2: var(--brand-primary);
    --orange: var(--brand-accent);
    --ink: var(--brand-text);
    --soft: var(--brand-background);
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: var(--brand-primary-rgb);
}
body { background-color:var(--brand-background); color:var(--brand-text); }
/* A link's component keeps its own foreground: buttons and action icons are not plain links. */
a { color:var(--brand-primary); }
.text-primary { color:var(--brand-primary) !important; }
.breadcrumb-item a { color:var(--brand-primary); }
.btn-primary, .btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.page-item.active .page-link {
    color:var(--brand-on-primary); background-color:var(--brand-primary); border-color:var(--brand-primary);
}
.bg-primary { color:var(--brand-on-primary); background-color:var(--brand-primary) !important; }
.btn-primary:hover, .btn-primary:focus { filter:brightness(.96); }
.btn-primary { --bs-btn-bg:var(--brand-primary); --bs-btn-border-color:var(--brand-primary); --bs-btn-color:var(--brand-on-primary); --bs-btn-focus-shadow-rgb:var(--brand-primary-rgb); }
.btn-outline-primary { color:var(--brand-primary); border-color:var(--brand-primary); --bs-btn-focus-shadow-rgb:var(--brand-primary-rgb); }
.btn-outline-primary:hover, .btn-outline-primary:active, .btn-outline-primary:focus { color:var(--brand-on-primary); background-color:var(--brand-primary); border-color:var(--brand-primary); }
.form-control:focus, .form-select:focus { border-color:var(--brand-primary); box-shadow:0 0 0 .2rem rgba(var(--brand-primary-rgb), .15); }
.form-check-input:checked { background-color:var(--brand-primary); border-color:var(--brand-primary); }
.sidebar-wrapper {
    background:linear-gradient(180deg, var(--brand-navigation), var(--brand-navigation));
    background:linear-gradient(180deg, var(--brand-navigation) 0%, color-mix(in srgb, var(--brand-navigation) 88%, var(--brand-header-end)) 52%, color-mix(in srgb, var(--brand-navigation) 75%, var(--brand-header-end)) 100%);
}
.sidebar-header { background:rgba(0, 12, 35, .22); }
.topbar, .msu-header .topbar {
    background:linear-gradient(105deg, var(--brand-navigation), var(--brand-header-end));
    background:linear-gradient(105deg, var(--brand-navigation) 0%, color-mix(in srgb, var(--brand-navigation) 38%, var(--brand-header-end)) 48%, var(--brand-header-end) 100%);
}
.sidebar-wrapper .metismenu a { color:rgba(255,255,255,.8); }
.sidebar-wrapper .metismenu ul a { color:rgba(255,255,255,.72); }
.sidebar-header .toggle-icon, .labsa-brand-name, .labsa-brand-kicker { color:#fff; }
.sidebar-wrapper .menu-label { color:rgba(255,255,255,.5); }
.sidebar-wrapper .metismenu .mm-active > a, .sidebar-wrapper .metismenu a:hover,
.sidebar-wrapper .metismenu a:focus, .sidebar-wrapper .metismenu a:active {
    background:linear-gradient(135deg, var(--brand-primary), var(--brand-primary)); color:var(--brand-on-primary); box-shadow:0 5px 15px rgba(var(--brand-primary-rgb), .2);
}
.msu-header .navbar .nav-link, .msu-welcome strong, .msu-header .user-name,
.msu-header .msu-icon-button, .msu-header .msu-search input { color:#fff; }
.msu-welcome > span, .msu-header .msu-search { color:rgba(255,255,255,.75); }
.msu-header .designattion, .msu-header .msu-search input::placeholder, .msu-header .msu-search kbd { color:rgba(255,255,255,.65); }
.msu-header .msu-user-menu .dropdown-item { color:var(--brand-text); }
.msu-upgrade-card { background:rgba(var(--brand-primary-rgb), .25); }
.msu-upgrade-card strong { color:#fff; }
.msu-upgrade-icon { color:var(--brand-accent); }
.sidebar-wrapper .metismenu .msu-upgrade-card a { background:var(--brand-accent); color:var(--brand-on-accent); }
.msu-auth-shell { background:radial-gradient(circle at 13% 12%, rgba(var(--brand-primary-rgb),.1), transparent 28%), var(--brand-background); }
.msu-auth-showcase, .msu-register-aside { background:linear-gradient(145deg, var(--brand-navigation), var(--brand-header-end)); color:#fff; }
.msu-showcase-copy h1, .msu-register-copy h1 { color:#fff; }
.msu-showcase-copy p, .msu-register-copy p, .msu-register-security { color:rgba(255,255,255,.75); }
.msu-auth-kicker, .msu-showcase-copy h1 span, .msu-register-copy h1 span { color:var(--brand-accent); }
.msu-submit-button { background:var(--brand-primary); color:var(--brand-on-primary); box-shadow:0 8px 20px rgba(var(--brand-primary-rgb),.2); }
.msu-submit-button:hover { background:var(--brand-primary); filter:brightness(.93); }
.msu-mini-bars b { background:var(--brand-primary); }
.msu-auth-brand-single .msu-auth-brand-link strong { overflow-wrap:anywhere; }
.labsa-brand-copy { min-width:0; }.labsa-brand-name, .labsa-brand-kicker { overflow-wrap:anywhere; }
.page-footer p, .page-footer > span { overflow-wrap:anywhere; }
/* The landing page loads the same tokens after its own stylesheet. */
.site-header .btn-login { color:var(--brand-primary); }
.btn-primary-msu, .btn-primary-msu:hover { background:var(--brand-primary); color:var(--brand-on-primary); box-shadow:0 8px 20px rgba(var(--brand-primary-rgb),.2); }
.btn-orange-msu, .btn-orange-msu:hover { background:var(--brand-accent); color:var(--brand-on-accent); }
.program-section, .site-footer { background:var(--brand-navigation); color:#fff; }
.cta-card { background:linear-gradient(120deg, var(--brand-navigation), var(--brand-header-end)); color:#fff; }
.site-footer h3, .site-footer strong, .section-heading.light h2, .cta-copy h2 { color:#fff; }
.site-footer p, .site-footer a, .section-heading.light p, .cta-copy p { color:rgba(255,255,255,.75); }
.brand-name, .footer-brand strong { overflow-wrap:anywhere; }
.footer-contact a { overflow-wrap:anywhere; }.footer-contact { min-width:0; }
.hero-section { background:radial-gradient(circle at 78% 35%,rgba(var(--brand-primary-rgb),.12),transparent 28%), linear-gradient(180deg,var(--brand-background),#fff 78%); }
.section-heading.light .section-kicker, .section-heading.light h2 span { color:var(--brand-accent); }
.program-logo { background:var(--brand-primary); color:var(--brand-on-primary); }
.program-logo.orange { background:var(--brand-accent); color:var(--brand-on-accent); }
.program-tag { color:var(--brand-primary); background:rgba(var(--brand-primary-rgb),.1); }
.preview-footer button { background:var(--brand-primary); color:var(--brand-on-primary); }
