/* NXG palette from NXG_Logo_Suite/08_Color_Guide/NXG_Brand_Colors.json.
   Shared across NXG Grid; customer and status colors retain their meaning. */
.theme-nxg {
    --nxg-navy: #01255f;
    --nxg-red: #d20c1b;
    --nxg-blue: #0147c8;
    --nxg-charcoal: #18212f;
    --nxg-slate: #46566f;
    --nxg-steel: #aab5c5;
    --nxg-ice: #edf2f7;
    --ies-dark-blue: var(--nxg-navy);
    --ies-logo-blue: var(--nxg-blue);
    --ies-electric-blue: var(--nxg-blue);
    --ies-blue: var(--nxg-blue);
    --ies-cyan: var(--nxg-blue);
    --ies-light-blue: var(--nxg-ice);
    --ies-charcoal: var(--nxg-charcoal);
    --ies-text: var(--nxg-charcoal);
    --ies-silver: var(--nxg-steel);
    --ies-surface: #fff;
    --ies-surface-strong: #fff;
    --ies-border: #d6dee8;
    --ies-shadow: 0 10px 30px rgba(1, 37, 95, 0.07);
    --bs-primary: var(--nxg-blue);
    --bs-primary-rgb: 1, 71, 200;
    --bs-link-color: var(--nxg-blue);
    --bs-link-color-rgb: 1, 71, 200;
    --bs-link-hover-color: var(--nxg-navy);
    --bs-link-hover-color-rgb: 1, 37, 95;
    background: var(--nxg-ice);
    color: var(--nxg-charcoal);
}

.theme-nxg::before,
.theme-nxg::after,
.theme-nxg .sidebar-glow { display: none; }

.theme-nxg .sidebar { background: var(--nxg-navy); }
.theme-nxg .sidebar .nav-link.active {
    background: rgba(255, 255, 255, 0.13);
    box-shadow: inset 4px 0 var(--nxg-red);
    border-color: rgba(255, 255, 255, 0.2);
}
.theme-nxg .sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.25);
    color: #fff;
    box-shadow: none;
}
.theme-nxg .sidebar .nav-link:hover .nav-link-icon { color: #fff; }
.theme-nxg .sidebar-section-label,
.theme-nxg .sidebar-footer-copy { color: #dce4ef; }
.theme-nxg .sidebar-search-icon,
.theme-nxg .sidebar .form-control::placeholder { color: var(--nxg-slate); }

.theme-nxg .topbar {
    background: #fff;
    border-color: var(--ies-border);
    border-top: 4px solid var(--nxg-red);
    align-items: center;
}
.theme-nxg .topbar-workspace-logo {
    width: 310px;
    height: 132px;
    max-width: 100%;
    max-height: 132px;
    display: block;
    overflow: hidden;
}
.theme-nxg .topbar-workspace-logo-link { gap: 1.25rem; }
.theme-nxg .workspace-brand-label {
    padding-left: 1.25rem;
    border-left: 1px solid var(--nxg-steel);
    color: var(--nxg-navy);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.theme-nxg .topbar-subtitle { color: var(--nxg-navy); font-size: 1rem; }
.theme-nxg .topbar-description { color: var(--nxg-slate); font-style: normal; }
.theme-nxg .user-badge { background: var(--nxg-ice); border-color: var(--ies-border); }
.theme-nxg .user-badge-label { color: var(--nxg-slate); }
.theme-nxg .text-muted { color: var(--nxg-slate) !important; }
.theme-nxg a:hover { color: var(--nxg-navy); }
.theme-nxg :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--nxg-blue);
    outline-offset: 3px;
}
.theme-nxg .sidebar :where(a, button):focus-visible { outline-color: #fff; }

.theme-nxg .btn-primary {
    background: var(--nxg-blue);
    border-color: var(--nxg-blue);
    color: #fff;
    box-shadow: none;
    --bs-btn-disabled-bg: var(--nxg-blue);
    --bs-btn-disabled-border-color: var(--nxg-blue);
}
.theme-nxg .btn-primary:hover,
.theme-nxg .btn-primary:focus,
.theme-nxg .btn-primary:active {
    background: var(--nxg-navy);
    border-color: var(--nxg-navy);
    color: #fff;
    box-shadow: 0 4px 14px rgba(1, 37, 95, 0.16);
}
.theme-nxg .btn-outline-primary { color: var(--nxg-blue); border-color: var(--nxg-blue); background: #fff; }
.theme-nxg .btn-outline-primary:hover,
.theme-nxg .btn-outline-primary:active,
.theme-nxg .btn-outline-primary:focus-visible {
    background: var(--nxg-blue); color: #fff; border-color: var(--nxg-blue);
}
.theme-nxg .btn-outline-secondary { color: var(--nxg-slate); border-color: var(--nxg-steel); }
.theme-nxg .btn-outline-secondary:hover { background: var(--nxg-ice); border-color: var(--nxg-slate); color: var(--nxg-navy); }
.theme-nxg .hero-primary-action { background: var(--nxg-red); border-color: var(--nxg-red); color: #fff; box-shadow: none; }
.theme-nxg .hero-primary-action:hover,
.theme-nxg .hero-primary-action:focus { background: #ae0a16; border-color: #ae0a16; color: #fff; }
.theme-nxg .hero-primary-action .bi { color: inherit; }

.theme-nxg .form-control,
.theme-nxg .form-select,
.theme-nxg textarea,
.theme-nxg select { border-color: var(--nxg-steel) !important; }
.theme-nxg .form-control:focus,
.theme-nxg .form-select:focus,
.theme-nxg textarea:focus { border-color: var(--nxg-blue) !important; box-shadow: 0 0 0 0.2rem rgba(1, 71, 200, 0.15) !important; }
.theme-nxg input { accent-color: var(--nxg-blue); }
.theme-nxg .form-check-input:checked { background-color: var(--nxg-blue); border-color: var(--nxg-blue); }

.theme-nxg .dashboard-hero,
.theme-nxg .metric-card-emphasis,
.theme-nxg .dispatch-calendar-titlebar { background: #fff; border-color: var(--ies-border); }
.theme-nxg .metric-card:not(.metric-card-warning)::before { background: var(--nxg-blue); }
.theme-nxg .card-header,
.theme-nxg .object-form-field,
.theme-nxg .object-form-checkbox,
.theme-nxg .dispatch-lookup-result,
.theme-nxg .dispatch-lookup-empty { background: var(--nxg-ice); border-color: var(--ies-border); }
.theme-nxg .dashboard-chip-link:hover,
.theme-nxg .dispatch-lookup-result:hover { background: var(--nxg-ice); border-color: var(--nxg-blue); color: var(--nxg-navy); box-shadow: none; }
.theme-nxg .dashboard-chip-icon,
.theme-nxg .panel-head-badge { color: var(--nxg-blue); background: var(--nxg-ice); }
.theme-nxg .alert-info { background: var(--nxg-ice); color: var(--nxg-navy); border-color: var(--nxg-steel); }
.theme-nxg .table { --bs-table-striped-bg: #edf2f7; --bs-table-hover-bg: #e2eafa; }
.theme-nxg .table thead th { background: var(--nxg-ice); color: var(--nxg-navy); border-color: var(--ies-border); }
.theme-nxg .table tbody td { border-color: var(--ies-border); }

@media (max-width: 576px) {
    .theme-nxg .topbar-workspace-logo { width: 265px; height: 114px; max-width: 100%; }
    .theme-nxg .topbar-workspace-logo-link { gap: 0.75rem; }
    .theme-nxg .workspace-brand-label { font-size: 0.95rem; padding-left: 0.75rem; letter-spacing: 0.06em; }
}

/* Shared workspaces, sign-in, and record screens. Warning/success colors remain semantic. */
.theme-nxg .auth-brand-card { background: var(--nxg-navy); box-shadow: none; }
.theme-nxg .auth-logo-frame { background: #fff; border-color: #fff; box-shadow: none; }
.theme-nxg .auth-workspaces { color: #fff; line-height: 1.8; font-weight: 600; }
.theme-nxg .auth-workspaces span { color: var(--nxg-steel); margin: 0 0.25rem; }
.theme-nxg .login-logo { width: 210px; max-width: 100%; max-height: 110px; object-fit: contain; }
.theme-nxg .login-card { border-top: 4px solid var(--nxg-red); }
.theme-nxg .sidebar .nav-link.active .nav-link-icon { color: #fff; }
.theme-nxg .sidebar-platform-copy { color: #dce4ef; }
.theme-nxg .workspace-card-logo { display: block; width: 280px; max-width: 100%; height: 120px; max-height: 120px; overflow: hidden; }
.theme-nxg .workspace-card-brand,
.theme-nxg .workspace-card-logo-link { width: 100%; }
.theme-nxg .workspace-card-logo-link { margin-bottom: 0.8rem; }
.theme-nxg .workspace-card-name { margin: 0.75rem 0 0.6rem; color: var(--nxg-navy); font-size: 1.4rem; font-weight: 800; }
.theme-nxg .workspace-card-panel { padding: 1.5rem !important; }
.theme-nxg .workspace-card-panel::before { background: var(--nxg-red); }
.theme-nxg .workspace-card-panel .btn { margin-top: auto; }
.theme-nxg .opportunity-hero,
.theme-nxg .card,
.theme-nxg .section-card,
.theme-nxg .kanban-column { background: #fff; border-color: var(--ies-border); }
.theme-nxg .login-card { border-top-color: var(--nxg-red); }
.theme-nxg .auth-brand-card .eyebrow { color: var(--nxg-steel); }
.theme-nxg .dashboard-hero-panel,
.theme-nxg .opportunity-hero-actions { background: var(--nxg-navy); }
.theme-nxg .topbar-workspace-icon,
.theme-nxg .watchlist-icon { background: var(--nxg-ice); color: var(--nxg-navy); }
.theme-nxg .dashboard-card-link:hover { border-color: var(--nxg-blue); box-shadow: var(--ies-shadow); }
.theme-nxg .panel-link:hover,
.theme-nxg .table-sort-link:hover { color: var(--nxg-blue); }
.theme-nxg .nav-tabs { border-color: var(--ies-border); }
.theme-nxg .nav-tabs .nav-link { color: var(--nxg-slate); }
.theme-nxg .nav-tabs .nav-link.active { color: var(--nxg-navy); border-color: var(--ies-border) var(--ies-border) #fff; border-top: 3px solid var(--nxg-red); }
.theme-nxg .page-link { color: var(--nxg-blue); border-color: var(--ies-border); }
.theme-nxg .active > .page-link { color: #fff; background: var(--nxg-blue); border-color: var(--nxg-blue); }
.theme-nxg .dropdown-menu { --bs-dropdown-link-active-bg: var(--nxg-blue); }
.theme-nxg .btn-primary.disabled,
.theme-nxg .btn-primary:disabled { background: var(--nxg-blue); border-color: var(--nxg-blue); color: #fff; }
.theme-nxg .btn-outline-primary { --bs-btn-active-bg: var(--nxg-blue); --bs-btn-active-border-color: var(--nxg-blue); }
.theme-nxg .btn-outline-primary.active { background: var(--nxg-blue); border-color: var(--nxg-blue); color: #fff; }
.theme-nxg .hero-primary-action.btn-sm { box-shadow: none; }

@media (max-width: 576px) {
    .theme-nxg .workspace-brand-label { white-space: nowrap; }
    .theme-nxg .workspace-card-panel { padding: 1.25rem !important; }
    .theme-nxg .login-shell-row { min-height: auto; width: auto; }
}

/* Approved final lockups use the same scale in the header and workspace cards. */
.theme-nxg .topbar-workspace-logo,
.theme-nxg .workspace-card-logo {
    width: 280px;
    height: 120px;
    max-width: 100%;
    max-height: 120px;
    object-fit: contain;
    object-position: left center;
}
