:root {
    --app-bg: #F4F7FB;
    --app-surface: #FFFFFF;
    --app-surface-soft: #F8FAFC;
    --app-border: #E2E8F0;

    --app-primary: #0F3A5F;
    --app-primary-dark: #0A2A45;
    --app-primary-soft: #EAF3FA;

    --app-accent: #F97316;
    --app-accent-soft: #FFF3EA;

    --app-text: #0F172A;
    --app-text-muted: #64748B;
    --app-text-light: #94A3B8;

    --app-success: #15803D;
    --app-success-soft: #EAF7EE;

    --app-warning: #D97706;
    --app-warning-soft: #FFF7E6;

    --app-danger: #B91C1C;
    --app-danger-soft: #FDECEC;

    --app-info: #0369A1;
    --app-info-soft: #EAF6FB;

    --app-primary-rgb: 15, 58, 95;
    --app-primary-dark-rgb: 10, 42, 69;
    --app-accent-rgb: 249, 115, 22;
    --app-text-rgb: 15, 23, 42;
    --app-text-muted-rgb: 100, 116, 139;
    --app-border-rgb: 226, 232, 240;
    --app-success-rgb: 21, 128, 61;
    --app-warning-rgb: 217, 119, 6;
    --app-danger-rgb: 185, 28, 28;
    --app-info-rgb: 3, 105, 161;

    --app-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
    --app-shadow-sm: 0 8px 20px rgba(15, 23, 42, 0.06);
    --app-shadow-md: 0 14px 28px rgba(15, 23, 42, 0.08);
}

.portal-internal-body {
    --dm-brand-primary: var(--app-primary);
    --dm-brand-primary-rgb: var(--app-primary-rgb);
    --dm-brand-secondary: var(--app-primary-dark);
    --dm-brand-secondary-rgb: var(--app-primary-dark-rgb);
    --dm-brand-accent: var(--app-accent);
    --dm-brand-accent-rgb: var(--app-accent-rgb);
    --dm-primary: var(--app-primary);
    --dm-primary-rgb: var(--app-primary-rgb);
    --dm-primary-dark: var(--app-primary-dark);
    --dm-primary-light: var(--app-primary-soft);
    --dm-secondary: var(--app-primary-dark);
    --dm-secondary-rgb: var(--app-primary-dark-rgb);
    --dm-accent: var(--app-accent);
    --dm-accent-rgb: var(--app-accent-rgb);
    --dm-bg: var(--app-bg);
    --dm-surface: var(--app-surface);
    --dm-border: var(--app-border);
    --dm-text: var(--app-text);
    --dm-text-muted: var(--app-text-muted);
    --dm-success: var(--app-success);
    --dm-warning: var(--app-warning);
    --dm-danger: var(--app-danger);
    --dm-info: var(--app-info);
    --dm-surface-rgb: 255, 255, 255;
    --dm-shadow-sm: var(--app-shadow-sm);
    --dm-shadow-md: var(--app-shadow-md);
    --dm-shadow-lg: 0 22px 42px rgba(15, 23, 42, 0.12);
    --dm-sidebar-start: var(--app-primary);
    --dm-sidebar-end: var(--app-primary-dark);
    --dm-sidebar-text: #F8FAFC;
    --dm-sidebar-text-muted: rgba(226, 232, 240, 0.82);

    --portal-primary: var(--app-primary);
    --portal-primary-rgb: var(--app-primary-rgb);
    --portal-dark: var(--app-primary-dark);
    --portal-dark-rgb: var(--app-primary-dark-rgb);
    --portal-accent: var(--app-accent);
    --portal-accent-rgb: var(--app-accent-rgb);
    --portal-surface: var(--app-bg);
    --portal-paper: var(--app-surface);
    --portal-muted: var(--app-text-muted);
    --portal-border: rgba(var(--app-border-rgb), 0.92);
    --portal-shadow: var(--app-shadow-sm);

    --bs-primary: var(--app-primary);
    --bs-primary-rgb: var(--app-primary-rgb);
    --bs-secondary: var(--app-text-muted);
    --bs-secondary-rgb: var(--app-text-muted-rgb);
    --bs-success: var(--app-success);
    --bs-success-rgb: var(--app-success-rgb);
    --bs-warning: var(--app-warning);
    --bs-warning-rgb: var(--app-warning-rgb);
    --bs-danger: var(--app-danger);
    --bs-danger-rgb: var(--app-danger-rgb);
    --bs-info: var(--app-info);
    --bs-info-rgb: var(--app-info-rgb);
    --bs-dark: var(--app-text);
    --bs-dark-rgb: var(--app-text-rgb);
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-heading-color: var(--app-text);
    --bs-link-color: var(--app-primary);
    --bs-link-hover-color: var(--app-primary-dark);
    --bs-box-shadow: var(--app-shadow-sm);
    --bs-box-shadow-sm: var(--app-shadow-sm);
    --bs-box-shadow-lg: var(--app-shadow-md);
    --bs-card-bg: var(--app-surface);
    --bs-card-border-color: var(--app-border);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(var(--app-primary-rgb), 0.018);
    --bs-table-hover-bg: rgba(var(--app-primary-rgb), 0.035);
}

body.portal-internal-body {
    background:
        radial-gradient(circle at top center, rgba(var(--app-primary-rgb), 0.05), transparent 30%),
        var(--app-bg);
    color: var(--app-text);
}

.portal-internal-body .text-primary,
.portal-internal-body .link-primary,
.portal-internal-body .text-info {
    color: var(--app-primary) !important;
}

.portal-internal-body .text-muted,
.portal-internal-body .text-body-secondary,
.portal-internal-body .text-secondary {
    color: var(--app-text-muted) !important;
}

.portal-internal-body .bg-primary {
    background-color: var(--app-primary) !important;
}

.portal-internal-body .btn {
    box-shadow: none;
}

.portal-internal-body .btn-primary {
    border-color: var(--app-primary);
    background: var(--app-primary);
    color: #fff;
    box-shadow: var(--app-shadow-xs);
}

.portal-internal-body .btn-primary:hover,
.portal-internal-body .btn-primary:focus-visible {
    border-color: var(--app-primary-dark);
    background: var(--app-primary-dark);
    color: #fff;
    box-shadow: var(--app-shadow-sm);
}

.portal-internal-body .btn-outline-primary {
    border-color: rgba(var(--app-primary-rgb), 0.2);
    background: #fff;
    color: var(--app-primary);
}

.portal-internal-body .btn-outline-primary:hover,
.portal-internal-body .btn-outline-primary:focus-visible {
    border-color: rgba(var(--app-primary-rgb), 0.28);
    background: var(--app-primary-soft);
    color: var(--app-primary-dark);
}

.portal-internal-body .btn-outline-secondary,
.portal-internal-body .btn-secondary {
    border-color: var(--app-border);
    background: var(--app-surface);
    color: var(--app-text);
}

.portal-internal-body .btn-outline-secondary:hover,
.portal-internal-body .btn-outline-secondary:focus-visible,
.portal-internal-body .btn-secondary:hover,
.portal-internal-body .btn-secondary:focus-visible {
    border-color: rgba(var(--app-primary-rgb), 0.18);
    background: var(--app-surface-soft);
    color: var(--app-primary-dark);
}

.portal-internal-body .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.24);
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}

.portal-internal-body .btn-outline-light:hover,
.portal-internal-body .btn-outline-light:focus-visible {
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.portal-internal-body .form-control,
.portal-internal-body .form-select,
.portal-internal-body .form-check-input,
.portal-internal-body .input-group-text {
    border-color: var(--app-border);
    background-color: var(--app-surface);
    color: var(--app-text);
}

.portal-internal-body .form-control:focus,
.portal-internal-body .form-select:focus,
.portal-internal-body .btn:focus-visible {
    border-color: rgba(var(--app-primary-rgb), 0.42);
    box-shadow: 0 0 0 0.22rem rgba(var(--app-primary-rgb), 0.12);
}

.portal-internal-body .card,
.portal-internal-body .portal-content-card,
.portal-internal-body .portal-feature-card,
.portal-internal-body .portal-side-link,
.portal-internal-body .portal-public-card,
.portal-internal-body .portal-client-summary-card,
.portal-internal-body .portal-module-card,
.portal-internal-body .service-desk-table-wrap,
.portal-internal-body .service-desk-messages,
.portal-internal-body .table-responsive.border.rounded-4,
.portal-internal-body .portal-periodic-documents-panel,
.portal-internal-body .portal-protocol-print {
    border: 1px solid var(--app-border) !important;
    border-top-color: var(--app-border) !important;
    background: var(--app-surface) !important;
    box-shadow: var(--app-shadow-sm) !important;
}

.portal-internal-body .card-header,
.portal-internal-body .portal-admin-content .card .card-header,
.portal-internal-body .portal-auth-card-header,
.portal-internal-body .portal-client-login-card-header {
    border-bottom: 1px solid var(--app-border);
    background: var(--app-surface-soft);
    color: var(--app-text);
}

.portal-internal-body .portal-admin-header,
.portal-internal-body .portal-client-page-header,
.portal-internal-body .portal-client-page-header--tabbed,
.portal-internal-body .portal-client-context-topbar {
    border: 1px solid var(--app-border);
    border-bottom-color: var(--app-border);
    background: var(--app-surface) !important;
    box-shadow: var(--app-shadow-xs);
}

.portal-internal-body .portal-admin-header::before,
.portal-internal-body .portal-client-page-header::before,
.portal-internal-body .portal-client-page-header--tabbed::before {
    background: linear-gradient(90deg, var(--app-primary) 0%, var(--app-info) 100%);
}

.portal-internal-body .portal-admin-header-title,
.portal-internal-body .portal-client-context-title,
.portal-internal-body .portal-client-page-header .portal-admin-header-title,
.portal-internal-body h1,
.portal-internal-body h2,
.portal-internal-body h3,
.portal-internal-body h4 {
    color: var(--app-text);
    font-weight: 700;
}

.portal-internal-body .portal-admin-header-subtitle,
.portal-internal-body .portal-client-context-meta,
.portal-internal-body small,
.portal-internal-body .small {
    color: var(--app-text-muted);
}

.portal-internal-body .portal-admin-sidebar,
.portal-internal-body .portal-client-sidebar,
.portal-client-layout-body .portal-client-sidebar {
    border: 0;
    background: linear-gradient(180deg, var(--app-primary) 0%, var(--app-primary-dark) 100%) !important;
    color: #F8FAFC !important;
    box-shadow: 10px 0 28px rgba(10, 42, 69, 0.18);
}

.portal-internal-body .portal-admin-sidebar-top,
.portal-internal-body .portal-client-sidebar-top,
.portal-client-layout-body .portal-client-sidebar-top {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.portal-internal-body .portal-admin-brand,
.portal-internal-body .portal-client-brand,
.portal-internal-body .portal-client-sidebar-title,
.portal-internal-body .portal-admin-brand-copy strong,
.portal-internal-body .portal-admin-identity-name,
.portal-internal-body .portal-client-user strong,
.portal-client-layout-body .portal-client-sidebar-title,
.portal-client-layout-body .portal-client-user strong {
    color: #F8FAFC !important;
}

.portal-internal-body .portal-admin-brand-copy span,
.portal-internal-body .portal-admin-identity-meta,
.portal-internal-body .portal-client-sidebar-description,
.portal-internal-body .portal-client-user span,
.portal-internal-body .portal-client-nav-group-description,
.portal-internal-body .portal-client-nav-group-aside,
.portal-internal-body .portal-client-nav-subgroup-aside,
.portal-client-layout-body .portal-client-sidebar-description,
.portal-client-layout-body .portal-client-user span,
.portal-client-layout-body .portal-client-nav-group-aside,
.portal-client-layout-body .portal-client-nav-subgroup-aside {
    color: rgba(226, 232, 240, 0.82) !important;
}

.portal-internal-body .portal-admin-identity,
.portal-internal-body .portal-client-user,
.portal-client-layout-body .portal-client-user {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
}

.portal-internal-body .portal-admin-sidebar-toggle,
.portal-internal-body .portal-client-sidebar-toggle,
.portal-internal-body .portal-admin-logout .btn,
.portal-internal-body .portal-client-logout .btn,
.portal-client-layout-body .portal-client-sidebar-toggle,
.portal-client-layout-body .portal-client-logout .btn {
    border-color: rgba(255, 255, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: #F8FAFC !important;
}

.portal-internal-body .portal-admin-sidebar-toggle:hover,
.portal-internal-body .portal-client-sidebar-toggle:hover,
.portal-internal-body .portal-admin-logout .btn:hover,
.portal-internal-body .portal-client-logout .btn:hover,
.portal-client-layout-body .portal-client-sidebar-toggle:hover,
.portal-client-layout-body .portal-client-logout .btn:hover {
    border-color: rgba(255, 255, 255, 0.22) !important;
    background: rgba(255, 255, 255, 0.1) !important;
}

.portal-internal-body .portal-admin-nav-link,
.portal-internal-body .portal-admin-nav-group-button,
.portal-internal-body .portal-admin-nav-subgroup-toggle,
.portal-internal-body .portal-client-nav-link,
.portal-internal-body .portal-client-nav-group-button,
.portal-internal-body .portal-client-nav-subgroup-toggle,
.portal-client-layout-body .portal-client-nav-link,
.portal-client-layout-body .portal-client-nav-group-button,
.portal-client-layout-body .portal-client-nav-subgroup-toggle {
    border: 1px solid transparent;
    background: transparent !important;
    color: rgba(248, 250, 252, 0.94) !important;
    box-shadow: none !important;
}

.portal-internal-body .portal-admin-nav-group-title,
.portal-internal-body .portal-admin-nav-text,
.portal-internal-body .portal-client-nav-group-title,
.portal-internal-body .portal-client-nav-link span[data-sidebar-nav-label],
.portal-internal-body .submenu-item span[data-sidebar-nav-label],
.portal-internal-body .portal-client-nav-subgroup-copy [data-sidebar-nav-label],
.portal-client-layout-body .portal-client-nav-group-title,
.portal-client-layout-body .portal-client-nav-link span[data-sidebar-nav-label],
.portal-client-layout-body .submenu-item span[data-sidebar-nav-label],
.portal-client-layout-body .portal-client-nav-subgroup-copy [data-sidebar-nav-label] {
    color: inherit !important;
}

.portal-internal-body .portal-admin-nav-link:hover,
.portal-internal-body .portal-admin-nav-link:focus-visible,
.portal-internal-body .portal-admin-nav-group-button:hover,
.portal-internal-body .portal-admin-nav-group-button:focus-visible,
.portal-internal-body .portal-client-nav-link:hover,
.portal-internal-body .portal-client-nav-link:focus-visible,
.portal-internal-body .portal-client-nav-group-button:hover,
.portal-internal-body .portal-client-nav-group-button:focus-visible,
.portal-internal-body .portal-client-nav-subgroup-toggle:hover,
.portal-internal-body .portal-client-nav-subgroup-toggle:focus-visible,
.portal-client-layout-body .portal-client-nav-link:hover,
.portal-client-layout-body .portal-client-nav-link:focus-visible,
.portal-client-layout-body .portal-client-nav-group-button:hover,
.portal-client-layout-body .portal-client-nav-group-button:focus-visible,
.portal-client-layout-body .portal-client-nav-subgroup-toggle:hover,
.portal-client-layout-body .portal-client-nav-subgroup-toggle:focus-visible {
    border-color: rgba(255, 255, 255, 0.12) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #FFFFFF !important;
}

.portal-internal-body .portal-client-nav-group.menu-parent.is-open > .menu-parent-trigger,
.portal-internal-body .portal-client-nav-group.menu-parent.is-active:not(.portal-client-nav-group--direct) > .menu-parent-trigger,
.portal-internal-body .portal-client-nav-subgroup.submenu-parent.is-open > .submenu-parent-toggle,
.portal-internal-body .portal-client-nav-subgroup.submenu-parent.is-active > .submenu-parent-toggle,
.portal-client-layout-body .portal-client-nav-group.menu-parent.is-open > .menu-parent-trigger,
.portal-client-layout-body .portal-client-nav-group.menu-parent.is-active:not(.portal-client-nav-group--direct) > .menu-parent-trigger,
.portal-client-layout-body .portal-client-nav-subgroup.submenu-parent.is-open > .submenu-parent-toggle,
.portal-client-layout-body .portal-client-nav-subgroup.submenu-parent.is-active > .submenu-parent-toggle {
    border-color: rgba(255, 255, 255, 0.1) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: rgba(248, 250, 252, 0.98) !important;
}

.portal-internal-body .portal-client-nav-group.menu-parent.is-open > .menu-parent-trigger .portal-client-nav-group-title,
.portal-internal-body .portal-client-nav-group.menu-parent.is-active:not(.portal-client-nav-group--direct) > .menu-parent-trigger .portal-client-nav-group-title,
.portal-internal-body .portal-client-nav-subgroup.submenu-parent.is-open > .submenu-parent-toggle [data-sidebar-nav-label],
.portal-internal-body .portal-client-nav-subgroup.submenu-parent.is-active > .submenu-parent-toggle [data-sidebar-nav-label],
.portal-client-layout-body .portal-client-nav-group.menu-parent.is-open > .menu-parent-trigger .portal-client-nav-group-title,
.portal-client-layout-body .portal-client-nav-group.menu-parent.is-active:not(.portal-client-nav-group--direct) > .menu-parent-trigger .portal-client-nav-group-title,
.portal-client-layout-body .portal-client-nav-subgroup.submenu-parent.is-open > .submenu-parent-toggle [data-sidebar-nav-label],
.portal-client-layout-body .portal-client-nav-subgroup.submenu-parent.is-active > .submenu-parent-toggle [data-sidebar-nav-label] {
    color: rgba(248, 250, 252, 0.98) !important;
}

.portal-internal-body .portal-admin-nav-link.is-active,
.portal-internal-body .portal-admin-nav-group-direct.is-active,
.portal-internal-body .portal-client-nav-link.is-active,
.portal-internal-body .portal-client-nav-group--direct.is-active > .portal-client-nav-group-button,
.portal-internal-body .portal-client-nav-group--direct .portal-client-nav-group-button.is-active,
.portal-client-layout-body .portal-client-nav-link.is-active,
.portal-client-layout-body .portal-client-nav-group--direct.is-active > .portal-client-nav-group-button,
.portal-client-layout-body .portal-client-nav-group--direct .portal-client-nav-group-button.is-active {
    border-color: rgba(255, 255, 255, 0.12) !important;
    border-left: 3px solid var(--app-accent) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
}

.portal-internal-body .portal-admin-nav-icon,
.portal-internal-body .portal-admin-nav-group-icon,
.portal-internal-body .portal-client-nav-icon,
.portal-internal-body .portal-client-nav-group-icon,
.portal-client-layout-body .portal-client-nav-icon,
.portal-client-layout-body .portal-client-nav-group-icon {
    background: rgba(255, 255, 255, 0.08) !important;
    color: rgba(248, 250, 252, 0.96) !important;
}

.portal-internal-body .portal-admin-nav-link.is-active .portal-admin-nav-icon,
.portal-internal-body .portal-admin-nav-group-direct.is-active .portal-admin-nav-group-icon,
.portal-internal-body .portal-client-nav-link.is-active .portal-client-nav-icon,
.portal-internal-body .portal-client-nav-group--direct.is-active > .portal-client-nav-group-button .portal-client-nav-group-icon,
.portal-internal-body .portal-client-nav-group--direct .portal-client-nav-group-button.is-active .portal-client-nav-group-icon,
.portal-client-layout-body .portal-client-nav-link.is-active .portal-client-nav-icon,
.portal-client-layout-body .portal-client-nav-group--direct.is-active > .portal-client-nav-group-button .portal-client-nav-group-icon,
.portal-client-layout-body .portal-client-nav-group--direct .portal-client-nav-group-button.is-active .portal-client-nav-group-icon {
    background: rgba(249, 115, 22, 0.18) !important;
    color: var(--app-accent-soft) !important;
}

.portal-internal-body .portal-client-nav-links.submenu-group,
.portal-client-layout-body .portal-client-nav-links.submenu-group {
    position: relative;
    margin-top: 0.42rem;
    margin-left: 1.15rem;
    padding-left: 0.88rem;
}

.portal-internal-body .portal-client-nav-links.submenu-group::before,
.portal-internal-body .portal-client-nav-subgroup-body.submenu-group--nested::before,
.portal-client-layout-body .portal-client-nav-links.submenu-group::before,
.portal-client-layout-body .portal-client-nav-subgroup-body.submenu-group--nested::before,
.portal-internal-body .sidebar-submenu::before,
.portal-client-layout-body .sidebar-submenu::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.22rem;
    bottom: 0.22rem;
    width: 1px;
    border-radius: 999px;
    background: rgba(226, 232, 240, 0.2);
}

.portal-internal-body .portal-client-nav-subgroup.submenu-parent,
.portal-client-layout-body .portal-client-nav-subgroup.submenu-parent {
    gap: 0.16rem;
}

.portal-internal-body .portal-client-nav-subgroup.submenu-parent > .submenu-parent-toggle,
.portal-client-layout-body .portal-client-nav-subgroup.submenu-parent > .submenu-parent-toggle {
    min-height: 2.05rem;
    padding: 0.38rem 0.46rem;
    border: none !important;
    border-radius: 0.68rem;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0.82rem;
    font-weight: 600;
}

.portal-internal-body .portal-client-nav-subgroup-body.submenu-group--nested,
.portal-client-layout-body .portal-client-nav-subgroup-body.submenu-group--nested {
    position: relative;
    margin-top: 0.06rem;
    margin-left: 0.78rem;
    padding-top: 0.08rem;
    padding-left: 0.78rem;
    gap: 0.08rem;
}

.portal-internal-body .portal-client-nav-link.submenu-item,
.portal-client-layout-body .portal-client-nav-link.submenu-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.62rem;
    min-height: 1.92rem;
    margin: 0.04rem 0;
    padding: 0.32rem 0.42rem 0.32rem 0.52rem;
    border: none !important;
    border-radius: 0.46rem;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.2;
}

.portal-internal-body .portal-client-nav-link.submenu-item.is-nested,
.portal-client-layout-body .portal-client-nav-link.submenu-item.is-nested {
    padding-left: 0.38rem;
}

.portal-internal-body .portal-client-nav-link.submenu-item .portal-client-nav-icon,
.portal-client-layout-body .portal-client-nav-link.submenu-item .portal-client-nav-icon {
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(226, 232, 240, 0.82) !important;
}

.portal-internal-body .portal-client-nav-link.submenu-item.is-active,
.portal-client-layout-body .portal-client-nav-link.submenu-item.is-active {
    border: none !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #FFFFFF !important;
}

.portal-internal-body .portal-client-nav-link.submenu-item:not(.is-active),
.portal-client-layout-body .portal-client-nav-link.submenu-item:not(.is-active) {
    color: rgba(226, 232, 240, 0.84) !important;
}

.portal-internal-body .portal-client-nav-link.submenu-item:hover,
.portal-internal-body .portal-client-nav-link.submenu-item:focus-visible,
.portal-client-layout-body .portal-client-nav-link.submenu-item:hover,
.portal-client-layout-body .portal-client-nav-link.submenu-item:focus-visible {
    border: none !important;
    background: rgba(255, 255, 255, 0.05) !important;
    color: #FFFFFF !important;
}

.portal-internal-body .portal-client-nav-link.submenu-item::before,
.portal-client-layout-body .portal-client-nav-link.submenu-item::before {
    content: "";
    position: absolute;
    left: -0.48rem;
    top: 50%;
    width: 0;
    height: 0.92rem;
    transform: translateY(-50%);
    border-radius: 999px;
    background: transparent;
    transition: width 0.18s ease, background-color 0.18s ease;
}

.portal-internal-body .portal-client-nav-link.submenu-item.is-active::before,
.portal-internal-body .sidebar-subitem.active::before,
.portal-client-layout-body .portal-client-nav-link.submenu-item.is-active::before,
.portal-client-layout-body .sidebar-subitem.active::before {
    width: 2px;
    background: var(--app-accent);
}

.portal-internal-body .portal-client-nav-link.submenu-item.is-active .portal-client-nav-icon,
.portal-internal-body .sidebar-subitem.active .portal-client-nav-icon,
.portal-client-layout-body .portal-client-nav-link.submenu-item.is-active .portal-client-nav-icon,
.portal-client-layout-body .sidebar-subitem.active .portal-client-nav-icon {
    color: var(--app-accent-soft) !important;
}

.portal-internal-body .portal-client-nav-link.submenu-item.is-active span[data-sidebar-nav-label],
.portal-internal-body .sidebar-subitem.active span[data-sidebar-nav-label],
.portal-client-layout-body .portal-client-nav-link.submenu-item.is-active span[data-sidebar-nav-label],
.portal-client-layout-body .sidebar-subitem.active span[data-sidebar-nav-label] {
    font-weight: 700;
}

.portal-internal-body .portal-client-sidebar-system-badge,
.portal-client-layout-body .portal-client-sidebar-system-badge {
    border-color: rgba(var(--app-accent-rgb), 0.24);
    background: rgba(249, 115, 22, 0.12);
    box-shadow: none;
}

.portal-internal-body .portal-client-sidebar-system-badge span,
.portal-client-layout-body .portal-client-sidebar-system-badge span {
    color: var(--app-accent-soft);
}

.portal-internal-body .portal-client-summary-card,
.portal-internal-body .portal-module-card,
.portal-client-layout-body .portal-client-summary-card,
.portal-client-layout-body .portal-module-card {
    border-color: var(--app-border) !important;
    background: var(--app-surface) !important;
    box-shadow: var(--app-shadow-sm) !important;
}

.portal-internal-body .portal-client-summary-card::before,
.portal-internal-body .portal-module-card::before,
.portal-client-layout-body .portal-client-summary-card::before,
.portal-client-layout-body .portal-module-card::before {
    background: linear-gradient(180deg, var(--app-primary) 0%, var(--app-info) 100%) !important;
}

.portal-internal-body .portal-client-summary-card.is-pending::before,
.portal-client-layout-body .portal-client-summary-card.is-pending::before {
    background: var(--app-warning) !important;
}

.portal-internal-body .portal-client-summary-card.is-approved::before,
.portal-client-layout-body .portal-client-summary-card.is-approved::before {
    background: var(--app-success) !important;
}

.portal-internal-body .portal-client-summary-card.is-rejected::before,
.portal-client-layout-body .portal-client-summary-card.is-rejected::before {
    background: var(--app-danger) !important;
}

.portal-internal-body .portal-client-summary-card span,
.portal-internal-body .portal-module-card span,
.portal-client-layout-body .portal-client-summary-card span,
.portal-client-layout-body .portal-module-card span,
.portal-internal-body .portal-client-summary-card small,
.portal-client-layout-body .portal-client-summary-card small {
    color: var(--app-text-muted) !important;
}

.portal-internal-body .portal-client-summary-card strong,
.portal-internal-body .portal-module-card strong,
.portal-client-layout-body .portal-client-summary-card strong,
.portal-client-layout-body .portal-module-card strong {
    color: var(--app-text) !important;
}

.portal-internal-body .portal-module-card-icon,
.portal-client-layout-body .portal-module-card-icon {
    background: var(--app-primary-soft) !important;
    color: var(--app-primary) !important;
    box-shadow: none !important;
}

.portal-internal-body .badge,
.portal-internal-body .text-bg-light,
.portal-internal-body .text-bg-primary,
.portal-internal-body .text-bg-secondary,
.portal-internal-body .text-bg-success,
.portal-internal-body .text-bg-warning,
.portal-internal-body .text-bg-danger,
.portal-internal-body .text-bg-info {
    border: 1px solid transparent;
    border-radius: 999px;
    box-shadow: none;
    font-weight: 700;
}

.portal-internal-body .text-bg-light {
    border-color: var(--app-border) !important;
    background: var(--app-surface-soft) !important;
    color: var(--app-text-muted) !important;
}

.portal-internal-body .text-bg-primary {
    border-color: rgba(var(--app-primary-rgb), 0.14) !important;
    background: var(--app-primary-soft) !important;
    color: var(--app-primary) !important;
}

.portal-internal-body .text-bg-success {
    border-color: rgba(var(--app-success-rgb), 0.14) !important;
    background: var(--app-success-soft) !important;
    color: var(--app-success) !important;
}

.portal-internal-body .text-bg-warning {
    border-color: rgba(var(--app-warning-rgb), 0.18) !important;
    background: var(--app-warning-soft) !important;
    color: var(--app-warning) !important;
}

.portal-internal-body .text-bg-danger {
    border-color: rgba(var(--app-danger-rgb), 0.14) !important;
    background: var(--app-danger-soft) !important;
    color: var(--app-danger) !important;
}

.portal-internal-body .text-bg-info {
    border-color: rgba(var(--app-info-rgb), 0.14) !important;
    background: var(--app-info-soft) !important;
    color: var(--app-info) !important;
}

.portal-internal-body .table,
.portal-internal-body .service-desk-table,
.portal-internal-body .portal-periodic-documents-table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: rgba(var(--app-primary-rgb), 0.028);
    --bs-table-striped-bg: rgba(var(--app-primary-rgb), 0.018);
    color: var(--app-text);
}

.portal-internal-body .table > :not(caption) > * > *,
.portal-internal-body .service-desk-table > :not(caption) > * > *,
.portal-internal-body .portal-periodic-documents-table > :not(caption) > * > * {
    border-color: var(--app-border);
}

.portal-internal-body .table thead th,
.portal-internal-body .service-desk-table thead th,
.portal-internal-body .portal-periodic-documents-table thead th,
.portal-internal-body .table-light,
.portal-internal-body thead.table-light th {
    background: var(--app-surface-soft) !important;
    color: var(--app-text-muted) !important;
    border-color: var(--app-border) !important;
}

.portal-internal-body .table tbody tr:hover,
.portal-internal-body .service-desk-table tbody tr:hover,
.portal-internal-body .portal-periodic-documents-table tbody tr:hover {
    background: rgba(var(--app-primary-rgb), 0.02) !important;
}

.portal-internal-body .dropdown-menu,
.portal-internal-body .portal-dropdown-menu {
    border-color: var(--app-border);
    background: var(--app-surface);
    box-shadow: var(--app-shadow-md);
}

.portal-internal-body .dropdown-item:hover,
.portal-internal-body .dropdown-item:focus-visible,
.portal-internal-body .portal-dropdown-item:hover,
.portal-internal-body .portal-dropdown-item:focus-visible {
    background: var(--app-primary-soft);
    color: var(--app-primary-dark);
}

.portal-internal-body [data-chart-surface],
.portal-internal-body .chart-card,
.portal-internal-body .portal-chart-card {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    box-shadow: var(--app-shadow-xs);
}

.portal-internal-body .apexcharts-tooltip,
.portal-internal-body .chartjs-tooltip {
    border: 1px solid var(--app-border);
    background: rgba(255, 255, 255, 0.98);
    color: var(--app-text);
    box-shadow: var(--app-shadow-sm);
}

body.portal-admin-body.portal-internal-body,
body.portal-client-unified-body.portal-internal-body,
body.portal-client-layout-body.portal-internal-body {
    --admin-sidebar-bg: var(--app-primary);
    --admin-sidebar-bg-strong: var(--app-primary-dark);
    --admin-sidebar-text: #F8FAFC;
    --admin-sidebar-muted: rgba(226, 232, 240, 0.82);
    --admin-sidebar-submenu-text: #F8FAFC;
    --admin-bg: var(--app-bg);
    --admin-surface: var(--app-surface);
    --admin-surface-alt: var(--app-surface-soft);
    --admin-border: rgba(var(--app-border-rgb), 0.92);
    --admin-border-strong: rgba(var(--app-primary-rgb), 0.12);
    --admin-text: var(--app-text);
    --admin-text-muted: var(--app-text-muted);
    --admin-heading: var(--app-text);
    --admin-shadow-sm: var(--app-shadow-sm);
    --admin-shadow-md: var(--app-shadow-md);
}

.portal-internal-body .portal-admin-shell,
.portal-internal-body .portal-client-shell,
.portal-internal-body .portal-admin-main,
.portal-internal-body .portal-client-main {
    background: transparent;
}

.portal-internal-body .portal-admin-content,
.portal-internal-body .portal-admin-company-context,
.portal-internal-body .portal-admin-feed,
.portal-internal-body .portal-admin-feed-item,
.portal-internal-body .portal-admin-routine-panel,
.portal-internal-body .portal-access-intro,
.portal-internal-body .portal-access-quick-action,
.portal-internal-body .portal-access-table-header,
.portal-internal-body .portal-access-person-summary,
.portal-internal-body .portal-access-block,
.portal-internal-body .portal-access-permission-group,
.portal-internal-body .portal-access-users-table-wrap,
.portal-internal-body .portal-access-offcanvas,
.portal-internal-body .portal-access-reference-section,
.portal-internal-body .publication-review-data-card,
.portal-internal-body .portal-admin-content .modal-content,
.portal-internal-body .portal-admin-content .dropdown-menu {
    border: 1px solid var(--app-border) !important;
    background: var(--app-surface) !important;
    box-shadow: var(--app-shadow-sm) !important;
}

.portal-internal-body .portal-admin-header,
.portal-internal-body .portal-admin-company-context,
.portal-internal-body .portal-client-page-header,
.portal-internal-body .portal-client-page-header--tabbed {
    border-color: var(--app-border) !important;
    background: var(--app-surface) !important;
    box-shadow: var(--app-shadow-xs) !important;
}

.portal-internal-body .portal-admin-header,
.portal-internal-body .portal-client-page-header,
.portal-internal-body .portal-client-page-header--tabbed,
.portal-internal-body .portal-admin-content .modal-header,
.portal-internal-body .portal-admin-content .modal-footer,
.portal-internal-body .portal-admin-content .offcanvas-header,
.portal-internal-body .portal-admin-content .offcanvas-footer {
    border-bottom-color: var(--app-border) !important;
    border-top-color: var(--app-border) !important;
}

.portal-internal-body .portal-admin-header-copy,
.portal-internal-body .portal-admin-header-profile,
.portal-internal-body .portal-client-context-main {
    color: var(--app-text);
}

.portal-internal-body .portal-admin-header-user,
.portal-internal-body .portal-client-user-meta,
.portal-internal-body .portal-access-user-meta-item,
.portal-internal-body .portal-access-person-summary-item {
    color: var(--app-text-muted);
}

.portal-internal-body .portal-admin-header-actions > .btn.btn-outline-primary,
.portal-internal-body .portal-client-page-header .btn.btn-outline-primary[target="_blank"],
.portal-internal-body .portal-admin-content .portal-documents-context-actions .btn.btn-outline-primary {
    border-color: rgba(var(--app-accent-rgb), 0.28);
    background: var(--app-surface);
    color: var(--app-accent);
}

.portal-internal-body .portal-admin-header-actions > .btn.btn-outline-primary:hover,
.portal-internal-body .portal-admin-header-actions > .btn.btn-outline-primary:focus-visible,
.portal-internal-body .portal-client-page-header .btn.btn-outline-primary[target="_blank"]:hover,
.portal-internal-body .portal-client-page-header .btn.btn-outline-primary[target="_blank"]:focus-visible,
.portal-internal-body .portal-admin-content .portal-documents-context-actions .btn.btn-outline-primary:hover,
.portal-internal-body .portal-admin-content .portal-documents-context-actions .btn.btn-outline-primary:focus-visible {
    border-color: rgba(var(--app-accent-rgb), 0.38);
    background: var(--app-accent-soft);
    color: var(--app-accent);
}

.portal-internal-body .portal-admin-avatar,
.portal-internal-body .portal-admin-routine-icon,
.portal-internal-body .portal-admin-routine-metric-icon,
.portal-internal-body .portal-admin-routine-action span,
.portal-internal-body .portal-access-permission-option-icon,
.portal-internal-body .portal-module-card-icon,
.portal-internal-body .portal-client-summary-card [class*="icon"],
.portal-internal-body .portal-access-person-summary-item i,
.portal-internal-body .portal-access-quick-list-item i {
    background: var(--app-primary-soft) !important;
    color: var(--app-primary) !important;
    box-shadow: none !important;
}

.portal-internal-body .portal-admin-routine-metric,
.portal-internal-body .portal-admin-routine-action,
.portal-internal-body .portal-access-quick-list-item,
.portal-internal-body .portal-access-permission-option,
.portal-internal-body .portal-access-module-chip,
.portal-internal-body .portal-admin-action-menu-trigger {
    border-color: var(--app-border) !important;
    background: var(--app-surface) !important;
    color: var(--app-text) !important;
    box-shadow: none !important;
}

.portal-internal-body .portal-admin-routine-metric:hover,
.portal-internal-body .portal-admin-routine-action:hover,
.portal-internal-body .portal-access-quick-list-item:hover,
.portal-internal-body .portal-access-permission-option:hover,
.portal-internal-body .portal-access-module-chip:hover,
.portal-internal-body .portal-admin-action-menu-trigger:hover,
.portal-internal-body .portal-admin-action-menu-trigger:focus-visible,
.portal-internal-body .portal-admin-action-menu-trigger.show {
    border-color: rgba(var(--app-primary-rgb), 0.22) !important;
    background: var(--app-surface-soft) !important;
    color: var(--app-primary-dark) !important;
    box-shadow: var(--app-shadow-xs) !important;
}

.portal-internal-body .portal-admin-routine-metric-copy span,
.portal-internal-body .portal-admin-routine-page .portal-admin-feed-meta,
.portal-internal-body .portal-admin-routine-page .portal-admin-feed p,
.portal-internal-body .portal-access-copy,
.portal-internal-body .portal-access-block-copy,
.portal-internal-body .portal-access-permission-option-meta,
.portal-internal-body .portal-access-user-cell small,
.portal-internal-body .portal-access-reference-item small,
.portal-internal-body .publication-review-data-label,
.portal-internal-body .portal-breadcrumb .breadcrumb-item,
.portal-internal-body .portal-breadcrumb .breadcrumb-item.active,
.portal-internal-body .portal-admin-content .table > :not(caption) > * > * > small {
    color: var(--app-text-muted) !important;
}

.portal-internal-body .portal-admin-routine-metric-copy strong,
.portal-internal-body .portal-access-heading,
.portal-internal-body .portal-access-metric-value,
.portal-internal-body .portal-access-user-cell strong,
.portal-internal-body .portal-access-reference-item strong,
.portal-internal-body .publication-review-rich-text,
.portal-internal-body .publication-review-data-card,
.portal-internal-body .portal-breadcrumb .breadcrumb-item a {
    color: var(--app-text) !important;
}

.portal-internal-body .portal-access-metric-card,
.portal-internal-body .portal-admin-routine-hero,
.portal-internal-body .portal-client-summary-card,
.portal-internal-body .portal-module-card {
    border: 1px solid var(--app-border) !important;
    background: var(--app-surface) !important;
    box-shadow: var(--app-shadow-sm) !important;
}

.portal-internal-body .portal-access-metric-card,
.portal-internal-body .portal-client-summary-card,
.portal-internal-body .portal-module-card {
    position: relative;
    overflow: hidden;
}

.portal-internal-body .portal-access-metric-card::before,
.portal-internal-body .portal-client-summary-card::before,
.portal-internal-body .portal-module-card::before {
    background: var(--app-primary) !important;
}

.portal-internal-body .portal-access-metric-card.is-warning::before,
.portal-internal-body .portal-client-summary-card.is-pending::before {
    background: var(--app-warning) !important;
}

.portal-internal-body .portal-access-metric-card.is-success::before,
.portal-internal-body .portal-client-summary-card.is-approved::before {
    background: var(--app-success) !important;
}

.portal-internal-body .portal-access-metric-card.is-danger::before,
.portal-internal-body .portal-client-summary-card.is-rejected::before {
    background: var(--app-danger) !important;
}

.portal-internal-body .portal-client-summary-card span,
.portal-internal-body .portal-client-summary-card small,
.portal-internal-body .portal-module-card span,
.portal-internal-body .portal-module-card small,
.portal-internal-body .portal-access-metric-label,
.portal-internal-body .portal-admin-content .table thead th,
.portal-internal-body .portal-admin-content .table-light,
.portal-internal-body .portal-admin-content thead.table-light th {
    color: var(--app-text-muted) !important;
}

.portal-internal-body .portal-client-summary-card strong,
.portal-internal-body .portal-module-card strong,
.portal-internal-body .portal-access-permission-summary strong,
.portal-internal-body .portal-access-block-title,
.portal-internal-body .portal-access-permission-group-summary strong {
    color: var(--app-text) !important;
}

.portal-internal-body .portal-admin-content .table,
.portal-internal-body .portal-access-users-table,
.portal-internal-body .portal-admin-content .table-responsive {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(var(--app-primary-rgb), 0.016);
    --bs-table-hover-bg: rgba(var(--app-primary-rgb), 0.032);
}

.portal-internal-body .portal-admin-content .table > :not(caption) > * > * {
    border-color: var(--app-border) !important;
    color: var(--app-text);
}

.portal-internal-body .portal-admin-content .table thead th,
.portal-internal-body .portal-admin-content thead.table-light th {
    background: var(--app-surface-soft) !important;
    border-bottom-color: var(--app-border) !important;
    color: var(--app-text-muted) !important;
    font-weight: 700;
}

.portal-internal-body .portal-admin-content .table tbody tr:hover {
    background: rgba(var(--app-primary-rgb), 0.018) !important;
}

.portal-internal-body .badge.text-bg-secondary,
.portal-internal-body .badge.bg-secondary {
    border: 1px solid var(--app-border) !important;
    background: var(--app-surface-soft) !important;
    color: var(--app-text-muted) !important;
}

.portal-internal-body .portal-access-module-chip.is-required {
    border-color: rgba(var(--app-primary-rgb), 0.22) !important;
    background: var(--app-primary-soft) !important;
    color: var(--app-primary) !important;
}

.portal-internal-body .portal-access-permission-option.is-required {
    border-color: rgba(var(--app-primary-rgb), 0.2) !important;
    background: rgba(var(--app-primary-rgb), 0.035) !important;
}
