/* Portal design system */
:root {
    --portal-bg: #f4f7fb;
    --portal-bg-deep: #e3edf8;
    --portal-surface: rgba(255, 255, 255, 0.88);
    --portal-surface-solid: #ffffff;
    --portal-surface-alt: #edf4fb;
    --portal-border: rgba(91, 111, 138, 0.18);
    --portal-border-strong: rgba(38, 55, 77, 0.12);
    --portal-heading: #0f1f39;
    --portal-text: #20314e;
    --portal-muted: #607089;
    --portal-primary: #1677f2;
    --portal-primary-strong: #0c5bc9;
    --portal-secondary: #ff8f3d;
    --portal-accent: #13b8a6;
    --portal-violet: #6d5efc;
    --portal-success: #1d9d57;
    --portal-warning: #f4a100;
    --portal-danger: #e34d59;
    --portal-shadow: 0 24px 60px rgba(15, 30, 60, 0.12);
    --portal-shadow-soft: 0 14px 34px rgba(15, 23, 42, 0.08);
    --portal-radius-xl: 30px;
    --portal-radius-lg: 24px;
    --portal-radius-md: 18px;
    --portal-radius-sm: 14px;
    --portal-footer-bg: #091326;
    --portal-footer-card: rgba(255, 255, 255, 0.06);
    --portal-footer-border: rgba(255, 255, 255, 0.11);
    --portal-footer-text: rgba(255, 255, 255, 0.9);
    --portal-footer-muted: rgba(255, 255, 255, 0.64);
}

html,
body {
    min-height: 100%;
}

html {
    scroll-behavior: smooth;
    scrollbar-gutter: auto;
}

html,
body,
.wrapper,
.content-wrapper,
.portal-content-wrapper,
.table-wrap,
.table-top-scroll,
div.dataTables_scrollBody {
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(98, 118, 149, 0.62) rgba(20, 32, 54, 0.08);
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar,
.table-top-scroll::-webkit-scrollbar,
div.dataTables_scrollBody::-webkit-scrollbar {
    width: 11px;
    height: 11px;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
.table-wrap::-webkit-scrollbar-track,
.table-top-scroll::-webkit-scrollbar-track,
div.dataTables_scrollBody::-webkit-scrollbar-track {
    background: rgba(20, 32, 54, 0.08);
    border-radius: 999px;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
.table-wrap::-webkit-scrollbar-thumb,
.table-top-scroll::-webkit-scrollbar-thumb,
div.dataTables_scrollBody::-webkit-scrollbar-thumb {
    background: linear-gradient(
        180deg,
        rgba(88, 121, 174, 0.78) 0%,
        rgba(74, 99, 141, 0.88) 100%
    );
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.18);
}

body {
    margin: 0;
    position: relative;
    color: var(--portal-text);
    background:
        radial-gradient(
            circle at top left,
            rgba(22, 119, 242, 0.1),
            transparent 28%
        ),
        radial-gradient(
            circle at top right,
            rgba(19, 184, 166, 0.12),
            transparent 24%
        ),
        linear-gradient(180deg, #f7faff 0%, var(--portal-bg) 45%, #eef3f9 100%);
    font-family: "Inter", "Segoe UI", sans-serif;
    letter-spacing: -0.012em;
    overflow-x: hidden;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(
            circle at 18% 12%,
            rgba(255, 143, 61, 0.09),
            transparent 22%
        ),
        radial-gradient(
            circle at 82% 18%,
            rgba(109, 94, 252, 0.08),
            transparent 18%
        ),
        radial-gradient(
            circle at 72% 78%,
            rgba(19, 184, 166, 0.08),
            transparent 18%
        );
    z-index: -1;
}

h1,
h2,
h3,
h4,
h5,
h6,
.portal-brand-inline-label,
.portal-brand-block strong,
.portal-home-title,
.section-title,
.card-title,
.portal-quick-card h3,
.cards > .card h3 {
    color: var(--portal-heading);
    font-family: "Inter", "Segoe UI", sans-serif;
    letter-spacing: -0.035em;
}

a {
    color: var(--portal-primary-strong);
}

a:hover {
    color: var(--portal-primary);
    text-decoration: none;
}

.portal-shell .wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: transparent;
    overflow-x: hidden;
}

.portal-shell .brand-link,
.portal-shell .main-footer,
.portal-shell .portal-footer {
    flex: 0 0 auto;
}

.portal-shell .content-wrapper {
    flex: 1 0 auto;
    min-height: auto;
}

.portal-content-wrapper {
    position: relative;
    background: transparent !important;
    overflow-x: hidden;
}

.portal-mode-authenticated .portal-content-wrapper {
    min-height: 0 !important;
}

body.portal-public-no-sidebar .content-wrapper,
body.portal-public-no-sidebar .portal-content-wrapper,
body.portal-public-no-sidebar .main-header,
body.portal-public-no-sidebar .main-footer,
body.portal-public-no-sidebar .portal-footer--public,
body.portal-public-no-sidebar .portal-footer--authenticated {
    margin-left: 0 !important;
}

body.portal-public-no-sidebar .portal-topbar {
    padding-left: 1.15rem;
}

body.portal-public-no-sidebar,
body.portal-public-no-sidebar .wrapper,
body.portal-public-no-sidebar .content-wrapper,
body.portal-public-no-sidebar .portal-content-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

.portal-content-section {
    padding-top: 0.15rem !important;
}

.portal-page-shell {
    padding: 0.5rem 0.15rem 0.35rem;
}

.portal-topbar {
    background: rgba(255, 255, 255, 0.82) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.7);
    box-shadow: 0 10px 34px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(18px);
    display: flex;
    align-items: center;
    min-height: 72px;
    padding: 0.7rem 1rem;
}

.portal-topbar .nav-link {
    color: var(--portal-heading) !important;
}

.portal-topbar .navbar-nav {
    align-items: center;
}

.portal-topbar-title {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.15rem 0;
}

.portal-topbar-title strong {
    color: var(--portal-heading);
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.1;
}

.portal-topbar .navbar-nav.ml-auto {
    flex-direction: row;
    gap: 0.5rem;
}

.portal-topbar .navbar-nav > .nav-item {
    display: flex;
    align-items: center;
}

.portal-topbar .nav-item.mr-2 {
    margin-right: 0 !important;
}

.portal-brand-inline,
.portal-brand-block {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--portal-heading) !important;
}

.portal-brand-inline-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.portal-brand-inline-logo img {
    width: 140px;
    height: 26px;
    object-fit: contain;
    display: block;
}

.portal-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        135deg,
        var(--portal-primary) 0%,
        var(--portal-accent) 100%
    );
    color: #fff;
    box-shadow: 0 14px 30px rgba(22, 119, 242, 0.26);
    font-size: 16px;
}

.portal-brand-mark img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.portal-brand-mark--logo {
    background: #ffffff;
}

.portal-brand-mark--logo img {
    width: 160px;
    height: 26px;
    object-fit: contain;
}

.portal-brand-expanded-logo {
    width: 220px;
    justify-content: flex-start;
    padding-left: 10px;
    padding-right: 10px;
}

.portal-brand-collapsed-logo {
    display: none;
    background: #ffffff;
}

.portal-brand-copy {
    display: grid;
    gap: 2px;
}

.portal-brand-inline-label,
.portal-brand-block strong {
    font-size: 0.95rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.portal-brand-inline-sub,
.portal-brand-copy span {
    color: var(--portal-muted);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-icon-btn,
.portal-outline-btn,
.portal-cta-btn,
.portal-danger-btn {
    border-radius: 0;
    padding: 0.38rem 0.62rem;
    font-weight: 800;
    border: 1px solid transparent;
    box-shadow: none !important;
}

.portal-icon-btn {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 31, 57, 0.04);
    color: var(--portal-heading);
    border-color: rgba(15, 31, 57, 0.08);
}

.portal-cta-btn {
    background: linear-gradient(
        135deg,
        var(--portal-secondary) 0%,
        #ffc247 100%
    );
    color: #1d1305 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    white-space: nowrap;
}

.portal-outline-btn {
    background: rgba(22, 119, 242, 0.08);
    color: var(--portal-primary-strong) !important;
    border-color: rgba(22, 119, 242, 0.15);
}

.portal-danger-btn {
    background: linear-gradient(135deg, #e95d68 0%, #ff8f7a 100%);
    color: #fff !important;
}

.portal-user-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0.72rem 1rem;
    border-radius: 999px;
    background: rgba(15, 31, 57, 0.05);
    color: var(--portal-heading);
    font-size: 0.83rem;
    font-weight: 800;
    border: 1px solid rgba(15, 31, 57, 0.08);
}

.portal-user-chip i {
    color: var(--portal-primary);
}

.portal-profile-nav {
    margin-left: 0.15rem;
}

.portal-profile-toggle {
    min-height: 52px;
    display: inline-flex !important;
    align-items: center;
    gap: 12px;
    padding: 0.38rem 0.5rem 0.38rem 0.42rem !important;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(91, 111, 138, 0.14);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.08);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease;
}

.portal-profile-toggle:hover,
.portal-profile-toggle:focus {
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12);
    transform: translateY(-1px);
}

.portal-profile-toggle::after {
    display: none;
}

.portal-profile-avatar,
.portal-profile-menu-avatar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    background: linear-gradient(135deg, #1677f2 0%, #11b8a6 100%);
    box-shadow: 0 14px 28px rgba(22, 119, 242, 0.22);
}

.portal-profile-avatar {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    font-size: 0.96rem;
}

.portal-profile-copy {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.portal-profile-copy strong,
.portal-profile-copy small {
    display: block;
    line-height: 1.25;
}

.portal-profile-copy strong {
    max-width: 180px;
    overflow: hidden;
    color: var(--portal-heading);
    font-size: 0.9rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-profile-copy small {
    color: var(--portal-muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-profile-caret {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 31, 57, 0.05);
    color: var(--portal-muted);
    font-size: 0.78rem;
}

.portal-profile-menu {
    width: min(360px, calc(100vw - 24px));
    margin-top: 14px;
    padding: 0.8rem;
    border: 1px solid rgba(91, 111, 138, 0.16);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 28px 60px rgba(15, 23, 42, 0.16);
    backdrop-filter: blur(16px);
}

.portal-profile-menu-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0.35rem 0.2rem 0.8rem;
}

.portal-profile-menu-avatar {
    width: 58px;
    height: 58px;
    border-radius: 22px;
    font-size: 1.15rem;
}

.portal-profile-menu-copy {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.portal-profile-menu-copy strong,
.portal-profile-menu-copy span,
.portal-profile-menu-copy small {
    display: block;
    line-height: 1.2;
}

.portal-profile-menu-copy strong {
    color: var(--portal-heading);
    font-size: 1rem;
    font-weight: 800;
}

.portal-profile-menu-copy span {
    color: var(--portal-primary-strong);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-profile-menu-copy small {
    overflow: hidden;
    color: var(--portal-muted);
    font-size: 0.82rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-profile-menu-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding-bottom: 0.55rem;
}

.portal-profile-meta-card {
    padding: 0.8rem 0.9rem;
    border-radius: 18px;
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.08) 0%,
        rgba(19, 184, 166, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.12);
}

.portal-profile-meta-card span,
.portal-profile-meta-card strong {
    display: block;
}

.portal-profile-meta-card span {
    margin-bottom: 0.3rem;
    color: var(--portal-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-profile-meta-card strong {
    color: var(--portal-heading);
    font-size: 0.88rem;
    font-weight: 800;
    word-break: break-word;
}

.portal-profile-menu .dropdown-divider {
    margin: 0.55rem 0;
    border-top-color: rgba(91, 111, 138, 0.14);
}

.portal-profile-action {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0.8rem 0.45rem;
    border-radius: 18px;
    color: var(--portal-text);
    transition:
        background-color 0.18s ease,
        transform 0.18s ease;
}

.portal-profile-action:hover,
.portal-profile-action:focus {
    background: rgba(22, 119, 242, 0.06);
    transform: translateX(2px);
}

.portal-profile-action > span:last-child {
    min-width: 0;
}

.portal-profile-action strong,
.portal-profile-action small {
    display: block;
}

.portal-profile-action strong {
    color: var(--portal-heading);
    font-size: 0.92rem;
    font-weight: 800;
}

.portal-profile-action small {
    margin-top: 0.16rem;
    color: var(--portal-muted);
    font-size: 0.79rem;
    font-weight: 700;
}

.portal-profile-action-icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #ffffff;
    font-size: 1rem;
    box-shadow: 0 14px 24px rgba(15, 23, 42, 0.12);
}

.portal-profile-action-icon.sky {
    background: linear-gradient(135deg, #1677f2 0%, #34b7ff 100%);
}

.portal-profile-action-icon.teal {
    background: linear-gradient(135deg, #11b8a6 0%, #4ed7a5 100%);
}

.portal-profile-action-icon.amber {
    background: linear-gradient(135deg, #ff8f3d 0%, #ffc247 100%);
}

.portal-profile-action-icon.violet {
    background: linear-gradient(135deg, #6d5efc 0%, #9a8bff 100%);
}

.portal-profile-menu-footer {
    padding-top: 0.2rem;
}

.portal-sidebar {
    background: linear-gradient(
        180deg,
        #0a1630 0%,
        #102847 52%,
        #0b1730 100%
    ) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

.portal-sidebar .brand-link {
    min-height: 84px;
    border-bottom: 1px solid rgba(10, 22, 48, 0.12);
    padding: 0.85rem 1rem;
    background: #ffffff;
}

body.sidebar-collapse .portal-sidebar .brand-link {
    justify-content: center;
    min-height: 78px;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
}

body.sidebar-collapse .portal-sidebar .portal-brand-block {
    justify-content: center;
}

body.sidebar-collapse .portal-sidebar .portal-brand-expanded-logo {
    display: none;
}

body.sidebar-collapse .portal-sidebar .portal-brand-collapsed-logo {
    display: inline-flex;
}

body.sidebar-collapse .portal-sidebar .portal-brand-copy {
    display: none;
}

body.sidebar-collapse .portal-sidebar-label {
    display: none;
}

.portal-sidebar .portal-brand-block,
.portal-sidebar .portal-brand-copy strong {
    color: var(--portal-heading) !important;
}

.portal-sidebar .portal-brand-copy span {
    color: var(--portal-muted) !important;
}

.portal-sidebar .portal-brand-block {
    width: 100%;
    justify-content: center;
}

.portal-sidebar .portal-brand-mark {
    box-shadow: none;
}

.portal-sidebar .portal-brand-mark--logo {
    width: 220px;
    height: 42px;
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.portal-sidebar .portal-brand-mark--logo img {
    width: 188px;
    height: 34px;
}

.portal-sidebar .portal-brand-collapsed-logo {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #ffffff;
}

.portal-sidebar .portal-brand-collapsed-logo img {
    width: 28px;
    height: 28px;
}

.portal-sidebar .sidebar {
    padding: 0.85rem 0.8rem 0.7rem;
}

.portal-sidebar-label {
    margin: 0 0.6rem 0.8rem;
    padding: 0 0.45rem;
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.portal-sidebar .nav-sidebar > .nav-item {
    margin-bottom: 0.08rem !important;
}

.portal-sidebar .nav-item.has-treeview > .nav-link {
    padding-top: 0.26rem !important;
    padding-bottom: 0.26rem !important;
}

.portal-sidebar .nav-item.has-treeview > .nav-link p {
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link {
    min-height: 36px !important;
    border-radius: 16px;
    padding: 0.26rem 0.85rem !important;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.94rem;
    font-weight: 700;
    border: 1px solid transparent;
    line-height: 1.1;
    transition:
        transform 0.18s ease,
        background-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link p {
    margin: 0 !important;
    line-height: 1.1;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link .nav-icon {
    width: 1.4rem;
    margin-right: 0.55rem;
    color: rgba(255, 255, 255, 0.64);
    font-size: 1rem;
    text-align: center;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    transform: translateX(2px);
}

.portal-sidebar .nav-sidebar > .nav-item.menu-open > .nav-link,
.portal-sidebar .nav-sidebar > .nav-item > .nav-link.active {
    background: linear-gradient(
        135deg,
        rgba(20, 83, 148, 0.82) 0%,
        rgba(16, 109, 148, 0.88) 100%
    );
    color: #ffffff;
    transform: translateX(3px);
    box-shadow: 0 14px 28px rgba(5, 12, 22, 0.18);
    border-color: rgba(255, 255, 255, 0.08);
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link:hover .nav-icon,
.portal-sidebar .nav-sidebar > .nav-item.menu-open > .nav-link .nav-icon,
.portal-sidebar .nav-sidebar > .nav-item > .nav-link.active .nav-icon {
    color: #ffffff;
}

.portal-sidebar .nav-treeview {
    margin-top: 0.06rem !important;
    padding-left: 0.55rem;
}

.portal-sidebar .nav-treeview > .nav-item {
    margin-bottom: 0.04rem !important;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link {
    min-height: 32px !important;
    border-radius: 14px;
    padding: 0.2rem 0.75rem !important;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.92rem;
    font-weight: 700;
    border: 1px solid transparent;
    line-height: 1.1;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link p {
    margin: 0 !important;
    line-height: 1.1;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link .nav-icon {
    width: 1.3rem;
    color: rgba(255, 255, 255, 0.54);
    font-size: 0.95rem;
    text-align: center;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.06);
    color: #ffffff;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link.active {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link:hover .nav-icon,
.portal-sidebar .nav-treeview > .nav-item > .nav-link.active .nav-icon {
    color: #ffffff;
}

body.sidebar-collapse .portal-sidebar {
    width: 5.35rem;
}

body.sidebar-collapse .content-wrapper,
body.sidebar-collapse .main-header,
body.sidebar-collapse .main-footer {
    margin-left: 5.35rem !important;
}

body.sidebar-collapse .portal-sidebar .sidebar {
    padding-left: 0.55rem;
    padding-right: 0.55rem;
}

body.sidebar-collapse .portal-sidebar .nav-sidebar > .nav-item {
    margin-bottom: 0.12rem !important;
}

body.sidebar-collapse .portal-sidebar .nav-sidebar > .nav-item > .nav-link {
    min-height: 56px;
    justify-content: center;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    border-radius: 18px;
}

body.sidebar-collapse
    .portal-sidebar
    .nav-sidebar
    > .nav-item
    > .nav-link
    .nav-icon {
    margin-right: 0;
    width: 1.5rem;
    font-size: 1.08rem;
}

body.sidebar-collapse
    .portal-sidebar
    .nav-sidebar
    > .nav-item
    > .nav-link:hover,
body.sidebar-collapse
    .portal-sidebar
    .nav-sidebar
    > .nav-item.menu-open
    > .nav-link,
body.sidebar-collapse
    .portal-sidebar
    .nav-sidebar
    > .nav-item
    > .nav-link.active {
    transform: none;
}

.content-header,
.content-wrapper > .content {
    background: transparent;
}

.portal-home-shell,
.section-stack {
    display: grid;
    gap: 8px;
}

.portal-home-shell {
    align-content: start;
}

/*
 * Home page should size to its real content height.
 * The shared flex layout is useful for most portal screens, but on the
 * public landing page it creates a large artificial gap before the footer.
 */
body.portal-home-route .portal-shell .content-wrapper {
    flex: 0 0 auto;
}

body.portal-home-route .portal-content-wrapper {
    min-height: 0 !important;
}

body.portal-home-route .portal-content-wrapper > .content.pt-3 {
    padding-top: 0.75rem !important;
}

.card,
.section-card {
    background: var(--portal-surface);
    border: 1px solid var(--portal-border);
    border-radius: var(--portal-radius-lg);
    box-shadow: var(--portal-shadow-soft);
    backdrop-filter: blur(14px);
}

.card {
    overflow: hidden;
}

.card-header {
    background: transparent;
    border-bottom: 1px solid var(--portal-border);
    padding: 1.35rem 1.45rem 0.95rem;
}

.card-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.card-body,
.section-card {
    padding: 1.45rem;
}

.section-card h3,
.card h3 {
    margin: 0 0 0.55rem;
    font-size: 1.22rem;
    font-weight: 700;
}

.section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 1rem;
}

.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0.7rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: rgba(22, 119, 242, 0.1);
    color: var(--portal-primary-strong);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.section-title {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
}

.section-copy {
    margin: 0.45rem 0 0;
    color: var(--portal-muted);
    max-width: 72ch;
    line-height: 1.65;
}

.hero {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 12px;
    margin-bottom: 18px;
    padding: clamp(16px, 2.2vw, 22px);
    border-radius: 24px;
    background: linear-gradient(135deg, #0c1e3b 0%, #16509a 50%, #11a8d8 100%);
    color: #ffffff;
    box-shadow: 0 18px 40px rgba(12, 31, 63, 0.18);
}

.hero::before,
.hero::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    opacity: 0.3;
}

.hero::before {
    top: -88px;
    right: -70px;
    width: 180px;
    height: 180px;
    background: radial-gradient(
        circle,
        rgba(255, 255, 255, 0.65) 0%,
        rgba(255, 255, 255, 0) 68%
    );
}

.hero::after {
    bottom: -120px;
    left: -50px;
    width: 180px;
    height: 180px;
    background: radial-gradient(
        circle,
        rgba(255, 195, 71, 0.54) 0%,
        rgba(255, 195, 71, 0) 70%
    );
}

.hero > * {
    position: relative;
    z-index: 1;
}

.hero > h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(1.3rem, 2vw, 1.95rem);
    font-weight: 700;
    line-height: 1.12;
}

.hero > p {
    margin: 0;
    max-width: 78ch;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.94rem;
    line-height: 1.55;
}

.hero-split {
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.72fr);
    gap: 12px;
    padding: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

.hero-split::before,
.hero-split::after {
    display: none;
}

.hero-card,
.hero-side {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    border-radius: 22px;
    padding: clamp(14px, 1.8vw, 18px);
}

.hero-card {
    background: linear-gradient(135deg, #0d1d37 0%, #0f61c9 55%, #12baa6 100%);
    box-shadow: 0 18px 38px rgba(12, 31, 63, 0.16);
}

.hero-card::after {
    content: "";
    position: absolute;
    right: -42px;
    bottom: -64px;
    width: 140px;
    height: 140px;
    border-radius: 30px;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.14),
        rgba(255, 255, 255, 0)
    );
    transform: rotate(26deg);
}

.hero-card h1,
.hero-card p {
    position: relative;
    z-index: 1;
}

.hero-card h1 {
    margin: 0 0 0.35rem;
    color: #ffffff;
    font-size: clamp(1.18rem, 1.9vw, 1.7rem);
    font-weight: 700;
    line-height: 1.15;
}

.hero-card p {
    margin: 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.9rem;
    line-height: 1.5;
    max-width: 68ch;
}

.hero-side {
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid var(--portal-border);
    box-shadow: var(--portal-shadow-soft);
}

.hero-side h3 {
    margin: 0 0 0.35rem;
    font-size: 0.96rem;
    font-weight: 700;
}

.hero-side p {
    margin: 0;
    color: var(--portal-muted);
    font-size: 0.88rem;
    line-height: 1.5;
}

.portal-login-shell {
    display: grid;
    grid-template-columns: minmax(360px, 0.88fr) minmax(0, 1.12fr);
    gap: 28px;
    align-items: stretch;
}

.portal-login-main {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.portal-login-intro {
    position: relative;
    overflow: hidden;
    padding: 0;
    border-radius: 36px;
    background:
        url("../images/portal-login-hero.png") center center / cover no-repeat,
        linear-gradient(135deg, #081427 0%, #0d355f 46%, #127f92 100%);
    border: 1px solid rgba(167, 192, 223, 0.34);
    box-shadow: 0 28px 62px rgba(7, 23, 45, 0.18);
    color: #ffffff;
    min-height: 640px;
    display: grid;
    align-items: stretch;
}

.portal-login-intro > *,
.portal-login-intro__body {
    position: relative;
    z-index: 1;
}

.portal-login-intro__backdrop {
    position: absolute;
    inset: 0;
    background: transparent;
    z-index: 0;
}

.portal-login-intro__body {
    min-height: 100%;
    display: block;
}

.portal-login-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 1rem;
    padding: 0.5rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.96);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    width: fit-content;
}

.portal-login-intro h2 {
    max-width: 14ch;
    margin: 0 0 0.9rem;
    color: #ffffff;
    font-size: clamp(1.7rem, 2.8vw, 2.7rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.portal-login-intro p {
    max-width: 46ch;
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.94rem;
    line-height: 1.72;
}

.portal-login-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 1.5rem;
}

.portal-login-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.74rem 1rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #ffffff;
    font-size: 0.73rem;
    font-weight: 800;
    backdrop-filter: blur(10px);
}

.portal-login-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 1.6rem;
}

.portal-login-highlight {
    display: grid;
    gap: 10px;
    padding: 1.05rem 1.1rem;
    border-radius: 24px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.2) 0%,
        rgba(255, 255, 255, 0.12) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(14px);
    box-shadow: 0 14px 28px rgba(5, 14, 28, 0.12);
}

.portal-login-highlight-icon {
    width: 48px;
    height: 48px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    font-size: 1.04rem;
}

.portal-login-highlight strong {
    color: #ffffff;
    font-size: 0.94rem;
    font-weight: 800;
}

.portal-login-highlight span:last-child {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.82rem;
    line-height: 1.62;
}

.portal-login-card {
    position: relative;
    overflow: hidden;
    padding: clamp(26px, 3vw, 34px);
    min-height: 640px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 34px;
    background:
        radial-gradient(
            circle at top left,
            rgba(22, 119, 242, 0.08),
            transparent 30%
        ),
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.98) 0%,
            rgba(247, 250, 255, 0.98) 100%
        );
}

.portal-login-card::before {
    content: "";
    position: absolute;
    top: -82px;
    right: -76px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(59, 130, 246, 0.12) 0%,
        rgba(59, 130, 246, 0) 72%
    );
    pointer-events: none;
}

.portal-login-card-head {
    margin-bottom: 1rem;
}

.portal-login-card-copy {
    display: grid;
    gap: 0.5rem;
}

.portal-login-card-copy h1 {
    margin: 0;
    color: #10213c;
    font-size: clamp(1.8rem, 2.6vw, 2.55rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.portal-login-card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 1.15rem;
}

.portal-login-card-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.46rem 0.82rem;
    border-radius: 999px;
    background: rgba(22, 119, 242, 0.08);
    border: 1px solid rgba(22, 119, 242, 0.12);
    color: #165ec8;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-login-card-meta {
    color: #6a7f9c;
    font-size: 0.8rem;
    font-weight: 700;
}

.portal-login-assurance {
    margin-bottom: 1rem;
    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.08) 0%,
        rgba(19, 184, 166, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.12);
}

.portal-login-assurance-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0.45rem;
    color: var(--portal-heading);
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-login-assurance p {
    margin: 0;
    color: var(--portal-muted);
    line-height: 1.7;
}

.portal-login-form {
    display: grid;
    gap: 16px;
}

.portal-login-form .field {
    margin: 0;
}

.portal-login-form .field input:not([type="checkbox"]) {
    min-height: 56px;
    padding: 0.92rem 1rem;
}

.portal-login-remember {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.65rem;
    margin: 0;
    margin-bottom: 0;
    width: auto;
    max-width: 100%;
    color: #20314e;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    user-select: none;
}

.portal-login-remember__input {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    margin: 0;
    accent-color: var(--portal-primary);
    cursor: pointer;
}

.portal-login-remember__label {
    display: inline-block;
    white-space: nowrap;
}

.portal-login-form .field .portal-login-remember {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .portal-login-actions--full-row {
        align-items: center;
        gap: 0.75rem;
    }

    .portal-login-actions--full-row .portal-login-remember {
        gap: 0.55rem;
        font-size: 0.88rem;
    }
}

.portal-login-inline-points {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 1rem;
}

.portal-login-inline-points span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0.56rem 0.82rem;
    border-radius: 999px;
    background: rgba(15, 31, 57, 0.04);
    border: 1px solid rgba(15, 31, 57, 0.08);
    color: #314966;
    font-size: 0.76rem;
    font-weight: 800;
}

.portal-login-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0.55rem;
    gap: 12px;
}

.portal-login-actions--full-row {
    justify-content: flex-start;
}

.portal-login-actions--full-row .portal-login-remember {
    margin-right: 0.4rem;
}

.portal-login-actions .btn {
    min-width: 150px;
    min-height: 50px;
    border-radius: 16px !important;
    padding: 0.8rem 1.1rem;
}

.portal-login-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(184, 200, 221, 0.72);
}

.portal-login-card-footer__item {
    display: grid;
    gap: 0.25rem;
}

.portal-login-card-footer__item strong {
    color: #10213c;
    font-size: 0.88rem;
    font-weight: 800;
}

.portal-login-card-footer__item span {
    color: #6c809a;
    font-size: 0.82rem;
    line-height: 1.5;
}

.portal-login-support-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.72rem 1rem;
    border-radius: 999px;
    background: rgba(22, 119, 242, 0.08);
    border: 1px solid rgba(22, 119, 242, 0.14);
    color: #165ec8;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
}

.portal-login-support-link:hover {
    color: #114ca6;
    background: rgba(22, 119, 242, 0.12);
}

.portal-login-visual-band {
    display: grid;
    grid-template-columns: minmax(180px, auto) minmax(0, 1fr);
    gap: 14px;
    margin-top: 1.45rem;
}

.portal-login-visual-stat,
.portal-login-visual-note {
    display: grid;
    gap: 3px;
    padding: 0.95rem 1rem;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(12px);
}

.portal-login-visual-note strong {
    color: #ffffff;
    font-size: 0.92rem;
    font-weight: 800;
}

.portal-login-visual-note span {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.8rem;
    line-height: 1.6;
}

.portal-login-visual-stat strong {
    color: #ffffff;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1.55rem;
    font-weight: 700;
}

.portal-login-visual-stat span {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tag,
.chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.58rem 0.92rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
}

.hero .tag {
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #ffffff;
}

.chip,
.section-card .tag,
.card .tag {
    background: rgba(22, 119, 242, 0.08);
    border: 1px solid rgba(22, 119, 242, 0.14);
    color: var(--portal-primary-strong);
}

.portal-hero-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 14px;
}

.portal-metric-card {
    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(12px);
}

.portal-metric-label {
    display: block;
    margin-bottom: 0.35rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.portal-metric-value {
    display: block;
    color: #ffffff;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.45;
}

.inline-note {
    padding: 1rem 1.05rem;
    border-radius: 18px;
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.08) 0%,
        rgba(19, 184, 166, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.12);
    color: var(--portal-text);
}

.muted {
    color: var(--portal-muted) !important;
    line-height: 1.65;
}

.status {
    margin: 0 0 1rem;
    padding: 1rem 1.05rem;
    border-radius: 18px;
    font-size: 0.95rem;
    font-weight: 700;
}

.status.success {
    background: linear-gradient(
        135deg,
        rgba(29, 157, 87, 0.12) 0%,
        rgba(19, 184, 166, 0.09) 100%
    );
    border: 1px solid rgba(29, 157, 87, 0.2);
    color: #11643a;
}

.status.error {
    background: linear-gradient(
        135deg,
        rgba(227, 77, 89, 0.12) 0%,
        rgba(255, 143, 61, 0.08) 100%
    );
    border: 1px solid rgba(227, 77, 89, 0.18);
    color: #9e2432;
}

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.field label {
    display: block;
    margin-bottom: 0.55rem;
    color: var(--portal-heading);
    font-size: 0.91rem;
    font-weight: 800;
}

.field input,
.field select,
.field textarea,
.field input[type="file"] {
    width: 100%;
    min-height: 52px;
    padding: 0.85rem 1rem;
    border-radius: 0;
    border: 1px solid rgba(91, 111, 138, 0.2);
    background: rgba(255, 255, 255, 0.9);
    color: var(--portal-text);
    font-size: 0.96rem;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease;
}

.field textarea {
    min-height: 120px;
    resize: vertical;
}

.portal-decoy-field {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.password-field {
    position: relative;
}

.password-field input {
    padding-right: 3.2rem;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 0.85rem;
    transform: translateY(-50%);
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--portal-muted);
    cursor: pointer;
    transition: color 0.18s ease;
}

.password-toggle:hover,
.password-toggle:focus {
    color: var(--portal-primary-strong);
    outline: none;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    outline: none;
    border-color: rgba(22, 119, 242, 0.48);
    box-shadow: 0 0 0 4px rgba(22, 119, 242, 0.12);
    background: #ffffff;
}

.field input:-webkit-autofill,
.field input:-webkit-autofill:hover,
.field input:-webkit-autofill:focus,
.field textarea:-webkit-autofill,
.field select:-webkit-autofill {
    -webkit-text-fill-color: var(--portal-text);
    box-shadow: 0 0 0 1000px rgba(255, 255, 255, 0.94) inset;
    transition: background-color 9999s ease-out 0s;
    caret-color: var(--portal-text);
}

.portal-inline-filter-field {
    display: flex;
    align-items: center;
    gap: 12px;
}

.portal-inline-filter-field label {
    margin-bottom: 0;
    min-width: 165px;
}

.portal-inline-filter-field input {
    flex: 1;
}

.portal-inline-filter-field select {
    flex: 1;
}

.portal-empty-search-form {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.portal-empty-search-form .portal-inline-filter-field {
    flex: 1 1 0%;
    min-width: 0;
}

.portal-empty-search-actions {
    display: flex;
    align-items: center;
}

.portal-search-toolbar {
    display: flex;
    align-items: end;
    gap: 16px;
    flex-wrap: nowrap;
}

.portal-search-toolbar .portal-inline-filter-field {
    flex: 1 1 0%;
    min-width: 0;
}

.portal-search-toolbar__field--sm {
    flex: 0 0 240px;
}

.portal-search-toolbar__field--md {
    flex: 0 0 320px;
}

.portal-search-toolbar__field--lg {
    flex: 1 1 420px;
}

.portal-search-toolbar__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-top: 0;
    white-space: nowrap;
}

.portal-search-toolbar__actions .btn {
    min-height: 52px;
}

.error-text {
    margin-top: 0.5rem;
    color: #b62f3d;
    font-size: 0.84rem;
    font-weight: 700;
}

.actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 0.8rem;
}

.portal-auth-shell {
    max-width: 1100px;
    margin: 0 auto;
}

.portal-auth-page {
    position: relative;
    min-height: calc(100vh - 110px);
    padding: 0;
    border-radius: 0;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(7, 16, 32, 0.18) 0%, rgba(7, 16, 32, 0.68) 58%, rgba(7, 16, 32, 0.88) 100%),
        url("../images/Sin-Up_CP.jpg");
    background-size: cover;
    background-position: left center;
    box-shadow: none;
}

.portal-auth-page--register {
    min-height: calc(100vh - 70px);
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.portal-auth-shell--split {
    max-width: 1480px;
}

.portal-auth-shell--fullbg {
    width: 100%;
    max-width: none;
    margin: 0;
    min-height: calc(100vh - 70px);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 0 clamp(10px, 1vw, 18px) 0 0;
    padding-left: clamp(340px, 29vw, 500px);
}

.portal-auth-card--overlay {
    width: min(1120px, calc(95vw - 390px));
    margin-left: auto;
    margin-right: 0;
    position: relative;
    z-index: 2;
}

.portal-auth-features {
    position: absolute;
    left: clamp(18px, 1.4vw, 24px);
    bottom: clamp(18px, 1.4vw, 24px);
    width: min(624px, 32.5vw);
    border-radius: 26px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(9, 18, 38, 0.55);
    backdrop-filter: blur(12px);
    padding: 0.9rem;
}

.portal-auth-features__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.portal-auth-feature {
    display: grid;
    justify-items: start;
    gap: 6px;
    padding: 0.9rem 0.9rem;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(9, 18, 38, 0.35);
    color: rgba(255, 255, 255, 0.94);
}

.portal-auth-feature i {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(9, 18, 38, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(147, 197, 253, 0.9);
    font-size: 1.18rem;
}

.portal-auth-feature strong {
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1.15;
}

.portal-auth-feature span {
    color: rgba(226, 232, 240, 0.74);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
}

.portal-auth-card {
    padding: 1rem;
    border-radius: 30px;
    background:
        radial-gradient(circle at top right, rgba(22, 119, 242, 0.1), transparent 30%),
        radial-gradient(circle at bottom left, rgba(19, 184, 166, 0.08), transparent 26%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 255, 0.98) 100%);
    border: 1px solid rgba(182, 198, 220, 0.78);
    box-shadow: 0 26px 58px rgba(15, 23, 42, 0.08);
}

.portal-auth-head {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin-bottom: 1rem;
}

.portal-auth-head__icon {
    width: 56px;
    height: 56px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(22, 119, 242, 0.1);
    border: 1px solid rgba(22, 119, 242, 0.16);
    color: var(--portal-primary-strong);
}

.portal-auth-head__copy {
    min-width: 0;
}

.portal-auth-title {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: -0.03em;
}

.portal-auth-subtitle {
    margin: 0.25rem 0 0;
    color: var(--portal-muted);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.4;
}

.portal-auth-form {
    margin-top: 0.4rem;
}

.portal-register-grid {
    display: grid;
    gap: 14px;
}

.portal-required {
    color: #e34d59;
    font-weight: 900;
}

.portal-input {
    position: relative;
    display: flex;
    align-items: center;
}

.portal-input > i {
    position: absolute;
    left: 14px;
    width: 18px;
    text-align: center;
    color: rgba(55, 78, 110, 0.76);
    pointer-events: none;
}

.portal-input input {
    padding-left: 2.6rem;
}

.portal-helper {
    margin-top: 0.35rem;
    display: block;
    color: rgba(96, 112, 137, 0.9);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
}

.portal-helper--hidden {
    display: none !important;
}

.password-field .portal-input-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    text-align: center;
    color: rgba(55, 78, 110, 0.76);
    pointer-events: none;
}

.password-field input {
    padding-left: 2.6rem;
}

.portal-register-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}

.portal-register-row--single {
    grid-template-columns: 1fr;
}

.portal-auth-footer {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(182, 198, 220, 0.54);
}

.portal-auth-trust {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--portal-muted);
    font-size: 0.86rem;
    font-weight: 800;
}

.portal-auth-trust i {
    color: rgba(22, 119, 242, 0.9);
}

.portal-auth-submit,
.portal-auth-secondary {
    min-height: 50px;
    padding-left: 1.05rem;
    padding-right: 1.05rem;
}

.portal-inline-tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 1rem;
    padding: 0.32rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
}

.portal-inline-tabs__tab {
    border: 0;
    padding: 0.72rem 1.15rem;
    border-radius: 999px;
    background: transparent;
    color: var(--portal-heading);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition:
        background-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.portal-inline-tabs__tab:hover {
    background: rgba(37, 99, 235, 0.12);
}

.portal-inline-tabs__tab.is-active {
    background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 100%);
    color: #ffffff;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.2);
}

.portal-inline-tabs__panel[hidden] {
    display: none !important;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 0.28rem 0.56rem;
    min-height: 0;
    border-radius: 0 !important;
    border: 1px solid transparent;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.2;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        background-color 0.18s ease;
}

.btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.02);
}

.btn-primary,
.btn-warning {
    background: linear-gradient(135deg, var(--portal-primary) 0%, #3f97ff 100%);
    color: #ffffff;
    box-shadow: none;
}

.btn-secondary,
.btn-outline-secondary {
    background: rgba(15, 31, 57, 0.05);
    color: var(--portal-heading);
    border-color: rgba(15, 31, 57, 0.08);
}

.btn-outline-primary {
    background: rgba(22, 119, 242, 0.08);
    color: var(--portal-primary-strong);
    border-color: rgba(22, 119, 242, 0.14);
}

.btn-danger {
    background: linear-gradient(135deg, #e95d68 0%, #ff907c 100%);
    color: #ffffff;
}

.btn[disabled],
button[disabled] {
    opacity: 0.62;
    cursor: not-allowed;
    transform: none !important;
}

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
}

.cards > .card {
    position: relative;
    height: 100%;
    padding: 1.35rem;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.97) 0%,
        rgba(245, 249, 253, 0.94) 100%
    );
}

.cards > .card::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 18px;
    right: 18px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        var(--portal-primary) 0%,
        var(--portal-accent) 58%,
        var(--portal-secondary) 100%
    );
    opacity: 0.95;
}

.cards > .card h3 {
    margin-top: 1rem;
}

.cards > .card p {
    margin-bottom: 0;
}

.card-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.42rem 0.72rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.card-badge.info {
    background: rgba(22, 119, 242, 0.1);
    color: var(--portal-primary-strong);
}

.card-badge.success {
    background: rgba(29, 157, 87, 0.12);
    color: #11643a;
}

.card-badge.warning {
    background: rgba(244, 161, 0, 0.14);
    color: #9a6500;
}

.card-badge.danger,
.card-badge.error {
    background: rgba(227, 77, 89, 0.12);
    color: #9e2432;
}

.card-meta {
    margin-top: 1rem;
    color: var(--portal-muted);
    font-size: 0.84rem;
    font-weight: 700;
}

.portal-card-icon {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.5rem;
    margin-bottom: 0.6rem;
    font-size: 1.35rem;
    color: #ffffff;
    background: linear-gradient(
        135deg,
        var(--portal-primary) 0%,
        var(--portal-accent) 100%
    );
    box-shadow: 0 16px 28px rgba(22, 119, 242, 0.22);
}

.portal-card-icon.sky {
    background: linear-gradient(135deg, #1677f2 0%, #34b7ff 100%);
}

.portal-card-icon.teal {
    background: linear-gradient(135deg, #13b8a6 0%, #4ed7a5 100%);
}

.portal-card-icon.orange {
    background: linear-gradient(135deg, #ff8f3d 0%, #ffbe45 100%);
}

.portal-card-icon.red {
    background: linear-gradient(135deg, #e34d59 0%, #ff7a70 100%);
}

.portal-card-icon.violet {
    background: linear-gradient(135deg, #6d5efc 0%, #9a8bff 100%);
}

.portal-card-icon.slate {
    background: linear-gradient(135deg, #324867 0%, #5d7ca8 100%);
}

.table-wrap {
    overflow: auto;
    max-width: 100%;
    border-radius: 20px;
    border: 1px solid var(--portal-border);
    background: rgba(255, 255, 255, 0.85);
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable both-edges;
}

table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
    background: transparent;
}

.datepicker-dropdown,
.datepicker-dropdown.dropdown-menu,
.datepicker-dropdown .datepicker-days,
.datepicker-dropdown .datepicker-months,
.datepicker-dropdown .datepicker-years,
.datepicker-dropdown .datepicker-decades,
.datepicker-dropdown .datepicker-centuries {
    width: auto;
    min-width: 0;
}

.datepicker-dropdown table,
.datepicker-dropdown table.table-condensed {
    width: auto !important;
    min-width: 0 !important;
}

.datepicker-dropdown th,
.datepicker-dropdown td {
    padding: 0.35rem;
}

th,
td {
    padding: 0.9rem 1rem;
    border-bottom: 1px solid rgba(91, 111, 138, 0.12);
    text-align: left;
    vertical-align: top;
    font-size: 0.92rem;
}

th {
    background: linear-gradient(180deg, #eff6ff 0%, #f8fbff 100%);
    color: var(--portal-heading);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

tbody tr:nth-child(even) {
    background: rgba(239, 246, 255, 0.4);
}

tbody tr:hover {
    background: rgba(22, 119, 242, 0.06);
}

.table-wrap .dataTables_wrapper {
    min-width: max-content;
}

.table-wrap .dataTables_wrapper .table {
    width: 100% !important;
}

.table-wrap.portal-table-stack {
    overflow: visible;
    background: transparent;
    border: 0;
    padding: 0;
}

.modal-content {
    border-radius: 24px;
    border: 1px solid rgba(91, 111, 138, 0.14);
    box-shadow: 0 24px 50px rgba(15, 23, 42, 0.14);
}

.modal-header,
.modal-footer {
    border-color: rgba(91, 111, 138, 0.12);
}

.dataTables_wrapper .row {
    row-gap: 0.85rem;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_paginate,
.dataTables_wrapper .dt-buttons {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_paginate {
    margin-bottom: 0;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    max-width: 100%;
}

.portal-home-hero {
    position: relative;
    overflow: hidden;
    border-radius: 34px;
    background: linear-gradient(130deg, #081a34 0%, #12549f 44%, #11b8a6 100%);
    box-shadow: 0 28px 58px rgba(10, 29, 56, 0.24);
}

.portal-home-hero::after {
    content: "";
    position: absolute;
    top: -90px;
    right: -40px;
    width: 280px;
    height: 280px;
    border-radius: 48px;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.18),
        rgba(255, 255, 255, 0)
    );
    transform: rotate(24deg);
}

.portal-home-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        120deg,
        rgba(8, 19, 37, 0.1) 0%,
        rgba(8, 19, 37, 0) 38%,
        rgba(255, 255, 255, 0.08) 100%
    );
}

.portal-home-content {
    position: relative;
    z-index: 1;
    padding: clamp(12px, 1.6vw, 16px) clamp(18px, 2.4vw, 28px)
        clamp(12px, 1.6vw, 16px);
}

.portal-home-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.95fr) minmax(220px, 0.72fr);
    gap: 14px;
    align-items: start;
}

.portal-home-grid--single {
    grid-template-columns: 1fr;
}

.portal-home-main {
    max-width: 100%;
    min-width: 0;
}

.portal-home-brand-logo {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin-bottom: 0.18rem;
}

.portal-home-brand-logo img {
    width: clamp(180px, 20vw, 270px);
    height: auto;
    object-fit: contain;
    display: block;
}

.portal-home-side {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    margin-top: 0.1rem;
}

.portal-home-title {
    margin: 0.12rem 0 0.62rem;
    color: #ffffff;
    font-size: clamp(1.08rem, 1.95vw, 1.72rem);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: -0.028em;
    text-shadow: 0 10px 32px rgba(5, 12, 22, 0.22);
    white-space: nowrap;
    max-width: none;
}

.portal-home-copy {
    max-width: 100%;
    margin: 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.96rem;
    line-height: 1.66;
}

.portal-home-copy-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 0.35rem;
    padding: 0.48rem 0.78rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.35;
}

.portal-home-copy-note i {
    color: #9be7db;
    font-size: 0.78rem;
}

.portal-home-signal-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 0.6rem;
}

.portal-home-signal-row span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0.68rem 0.92rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.portal-home-signal-row i {
    color: #9be7db;
}

.section-kicker--hero {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.portal-home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
    margin-top: 0;
}

.portal-home-outline-btn {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.34);
    color: #ffffff !important;
    box-shadow: none;
}

.portal-home-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    min-height: 0;
    padding: 0.28rem 0.52rem;
    font-size: 0.84rem;
    line-height: 1;
    border-radius: 0;
}

.portal-topbar .portal-cta-btn {
    min-height: 34px;
    padding: 0.28rem 0.48rem;
    line-height: 1;
    border-radius: 0;
}

.portal-header-auth-btn {
    min-height: 38px;
    padding: 0.55rem 0.9rem;
    border-radius: 999px !important;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
}

.portal-header-auth-btn--ghost {
    background: rgba(15, 31, 57, 0.04);
    border-color: rgba(15, 31, 57, 0.08);
    color: var(--portal-heading);
}

.portal-header-auth-btn--ghost:hover,
.portal-header-auth-btn--ghost.is-active {
    background: rgba(22, 119, 242, 0.08);
    border-color: rgba(22, 119, 242, 0.14);
    color: var(--portal-primary-strong);
}

.portal-header-auth-btn--solid {
    background: linear-gradient(135deg, var(--portal-primary) 0%, #3f97ff 100%);
    border-color: transparent;
    color: #ffffff;
}

.portal-header-auth-btn--solid:hover,
.portal-header-auth-btn--solid.is-active {
    color: #ffffff;
    filter: brightness(1.03);
}

.portal-home-outline-btn:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.46);
}

.portal-home-summary {
    display: grid;
    gap: 12px;
}

.portal-home-mini {
    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(12px);
}

.portal-home-mini span {
    display: block;
    margin-bottom: 0.35rem;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.portal-home-mini strong {
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 800;
}

.portal-home-promise-list {
    list-style: none;
    display: grid;
    gap: 0.62rem;
    margin: 0.78rem 0 0;
    padding: 0;
}

.portal-home-promise-list li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.portal-home-promise-list li i {
    margin-top: 0.22rem;
    color: #9be7db;
    font-size: 0.84rem;
}

.portal-home-promise-list li strong {
    display: block;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.42;
}

.portal-home-mini p {
    margin: 0.4rem 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.88rem;
}

.portal-home-mini--glow {
    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.2) 0%,
            rgba(255, 255, 255, 0.12) 100%
        ),
        rgba(255, 255, 255, 0.12);
    box-shadow: 0 18px 34px rgba(3, 10, 20, 0.16);
}

.portal-home-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.portal-home-metric-card {
    position: relative;
    overflow: hidden;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(185, 203, 225, 0.8);
    background:
        radial-gradient(
            circle at top right,
            rgba(49, 183, 255, 0.12),
            transparent 32%
        ),
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.97) 0%,
            rgba(245, 249, 255, 0.98) 100%
        );
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.06);
}

.portal-home-metric-card span,
.portal-home-metric-card strong {
    display: block;
}

.portal-home-metric-card span {
    color: #4f6788;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-home-metric-card strong {
    margin-top: 0.55rem;
    color: #132742;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
}

.portal-home-metric-card p {
    margin: 0.55rem 0 0;
    color: var(--portal-muted);
    font-size: 0.88rem;
    line-height: 1.6;
}

.portal-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.portal-home-panels-row {
    display: grid;
    grid-template-columns: minmax(0, 2.18fr) minmax(300px, 0.82fr);
    gap: 0;
    margin-top: 0;
    margin-bottom: 0.1rem;
    margin-left: 0;
    margin-right: 0;
}

.portal-home-panels-row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
    flex: 0 0 auto;
    width: auto;
}

.portal-home-storyband {
    position: relative;
    overflow: hidden;
    padding: 1.3rem;
    border-radius: 30px;
    background:
        radial-gradient(
            circle at top right,
            rgba(22, 119, 242, 0.12),
            transparent 24%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(19, 184, 166, 0.08),
            transparent 22%
        ),
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.98) 0%,
            rgba(246, 250, 255, 0.98) 100%
        );
}

.portal-home-storyband__head {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
    gap: 18px;
    align-items: end;
    margin-bottom: 1rem;
}

.portal-home-storyband__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.portal-home-story-card {
    padding: 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(197, 213, 232, 0.92);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.05);
}

.portal-home-story-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.9rem;
    background: linear-gradient(135deg, #173f73 0%, #18a999 100%);
    color: #ffffff;
    font-size: 1.05rem;
    box-shadow: 0 16px 28px rgba(23, 63, 115, 0.14);
}

.portal-home-story-card h3 {
    margin: 0;
    color: #132742;
    font-size: 1.05rem;
    font-weight: 800;
}

.portal-home-story-card p {
    margin: 0.65rem 0 0;
    color: var(--portal-muted);
    line-height: 1.65;
}

.portal-home-journey {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.78fr);
    gap: 14px;
}

.portal-home-journey__main,
.portal-home-journey__side {
    padding: 1.3rem;
}

.portal-home-journey__head {
    margin-bottom: 1rem;
}

.portal-home-journey__steps {
    display: grid;
    gap: 12px;
}

.portal-home-step {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 0.95rem 1rem;
    border-radius: 22px;
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.06) 0%,
        rgba(19, 184, 166, 0.08) 100%
    );
    border: 1px solid rgba(184, 202, 224, 0.82);
}

.portal-home-step__no {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #163c71 0%, #1c6dd0 100%);
    color: #ffffff;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    box-shadow: 0 18px 30px rgba(22, 60, 113, 0.16);
}

.portal-home-step h3 {
    margin: 0.15rem 0 0;
    color: #132742;
    font-size: 1rem;
    font-weight: 800;
}

.portal-home-step p {
    margin: 0.45rem 0 0;
    color: var(--portal-muted);
    line-height: 1.6;
}

.portal-home-journey__side {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(
            circle at top right,
            rgba(22, 119, 242, 0.1),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.98) 0%,
            rgba(244, 248, 255, 0.98) 100%
        );
}

.portal-home-journey__side h3 {
    margin: 0;
    color: #12233d;
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.35;
}

.portal-home-checklist {
    list-style: none;
    display: grid;
    gap: 10px;
    margin: 1rem 0 0;
    padding: 0;
}

.portal-home-checklist li {
    position: relative;
    padding-left: 1.6rem;
    color: var(--portal-text);
    font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.6;
}

.portal-home-checklist li::before {
    content: "";
    position: absolute;
    top: 0.52rem;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(135deg, #1677f2 0%, #14b8a6 100%);
    box-shadow: 0 0 0 4px rgba(22, 119, 242, 0.1);
}

.portal-home-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 1.15rem;
    padding: 0.82rem 1rem;
    border-radius: 18px;
    background: #143866;
    color: #ffffff !important;
    font-weight: 800;
    box-shadow: 0 18px 30px rgba(20, 56, 102, 0.14);
}

.portal-home-cta {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) auto;
    gap: 18px;
    align-items: center;
    padding: 1.35rem 1.45rem;
    border-radius: 30px;
    background:
        radial-gradient(
            circle at right top,
            rgba(255, 255, 255, 0.12),
            transparent 24%
        ),
        linear-gradient(135deg, #081a34 0%, #0f4d91 48%, #12a9a5 100%);
    box-shadow: 0 26px 56px rgba(10, 29, 56, 0.18);
}

.portal-home-cta__title {
    margin: 0.55rem 0 0;
    color: #ffffff;
    font-size: clamp(1.45rem, 2.4vw, 2.3rem);
    line-height: 1.08;
}

.portal-home-cta__copy {
    max-width: 58ch;
    margin: 0.8rem 0 0;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.7;
}

.portal-home-cta__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.portal-home-services-card {
    position: relative;
    overflow: hidden;
    margin-top: 0.9rem;
    border-radius: 32px;
    border: 1px solid rgba(182, 198, 220, 0.74);
    background:
        radial-gradient(
            circle at top right,
            rgba(22, 119, 242, 0.1),
            transparent 26%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(19, 184, 166, 0.08),
            transparent 22%
        ),
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.99) 0%,
            rgba(245, 249, 255, 0.98) 100%
        );
    box-shadow: 0 28px 58px rgba(15, 23, 42, 0.09);
}

.portal-home-services-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.36), transparent 42%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.34), transparent 44%);
}

.portal-home-services-card .card-header {
    position: relative;
    z-index: 1;
    padding: 1.4rem 1.45rem 0;
}

.portal-home-services-card .card-body {
    position: relative;
    z-index: 1;
    padding: 1.15rem 1.45rem 1.45rem !important;
}

.portal-home-services__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: end;
}

.portal-home-services__headline .card-title {
    margin: 0.45rem 0 0;
    font-size: clamp(1.38rem, 2vw, 1.7rem);
    font-weight: 800;
    line-height: 1.14;
}

.portal-home-services__headline .section-copy {
    max-width: 60ch;
    margin: 0.52rem 0 0;
    color: #5f728f;
    font-size: 0.95rem;
    line-height: 1.65;
}

.portal-home-services__kicker {
    margin: 0;
    padding: 0.48rem 0.84rem;
}

.portal-home-services__summary {
    min-width: 220px;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(174, 192, 217, 0.8);
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(12px);
}

.portal-home-services__summary span,
.portal-home-services__summary strong {
    display: block;
}

.portal-home-services__summary span {
    color: #59718f;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.portal-home-services__summary strong {
    margin-top: 0.48rem;
    color: var(--portal-heading);
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.4;
}

.portal-quick-row {
    margin-left: -8px;
    margin-right: -8px;
}

.portal-quick-row__col {
    padding-left: 8px;
    padding-right: 8px;
    margin-bottom: 16px;
}

.portal-quick-card {
    --portal-tile-start: #1677f2;
    --portal-tile-end: #31b7ff;
    --portal-tile-soft: rgba(22, 119, 242, 0.1);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 100%;
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: 14px;
    padding: 1rem;
    border-radius: 26px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.99) 0%,
        rgba(245, 249, 255, 0.96) 100%
    );
    border: 1px solid rgba(182, 198, 220, 0.8);
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.08);
    text-decoration: none !important;
    color: var(--portal-text);
    transition:
        transform 0.24s ease,
        box-shadow 0.24s ease,
        border-color 0.24s ease;
}

.portal-quick-card--compact {
    min-height: 142px;
    padding: 0.75rem 0.8rem;
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 12px;
    row-gap: 10px;
    align-items: start;
}

.portal-quick-card--compact .portal-quick-kicker {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    min-height: 30px;
    padding: 0.36rem 0.58rem;
    font-size: 0.66rem;
}

.portal-quick-card--compact .portal-quick-media__frame {
    width: 72px;
    height: 72px;
    width: 72px;
    height: 72px;
    padding: 0.55rem;
    border-radius: 20px;
}

.portal-quick-card--compact .portal-quick-media {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
}

.portal-quick-card--compact .portal-quick-title {
    grid-column: 1 / -1;
    grid-row: 2;
    max-width: none;
    font-size: 0.95rem;
    line-height: 1.34;
    margin: 0;
}

.portal-quick-card--compact .portal-quick-card__footer {
    gap: 10px;
    padding-top: 0.75rem;
}

.portal-quick-card--compact .portal-quick-link {
    min-height: 34px;
    padding: 0.48rem 0.68rem;
    font-size: 0.75rem;
}

.portal-quick-card--compact .portal-quick-arrow {
    width: 34px;
    height: 34px;
    border-radius: 12px;
}

.portal-quick-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(
        90deg,
        var(--portal-tile-start) 0%,
        var(--portal-tile-end) 100%
    );
    opacity: 0.95;
}

.portal-quick-card__glow {
    position: absolute;
    top: -44px;
    right: -34px;
    width: 152px;
    height: 152px;
    border-radius: 999px;
    background: radial-gradient(
        circle,
        var(--portal-tile-soft) 0%,
        rgba(255, 255, 255, 0) 72%
    );
    opacity: 0.9;
    pointer-events: none;
    z-index: 0;
}

.portal-quick-card:hover {
    transform: translateY(-7px);
    border-color: rgba(112, 140, 179, 0.48);
    box-shadow: 0 26px 56px rgba(15, 23, 42, 0.14);
}

.portal-quick-card.theme-sky {
    --portal-tile-start: #1677f2;
    --portal-tile-end: #31b7ff;
    --portal-tile-soft: rgba(22, 119, 242, 0.18);
}

.portal-quick-card.theme-teal {
    --portal-tile-start: #14b8a6;
    --portal-tile-end: #4ed7a5;
    --portal-tile-soft: rgba(20, 184, 166, 0.18);
}

.portal-quick-card.theme-amber {
    --portal-tile-start: #ff8f3d;
    --portal-tile-end: #ffc247;
    --portal-tile-soft: rgba(255, 143, 61, 0.18);
}

.portal-quick-card.theme-coral {
    --portal-tile-start: #e34d59;
    --portal-tile-end: #ff7d73;
    --portal-tile-soft: rgba(227, 77, 89, 0.18);
}

.portal-quick-card.theme-indigo {
    --portal-tile-start: #4f46e5;
    --portal-tile-end: #818cf8;
    --portal-tile-soft: rgba(79, 70, 229, 0.18);
}

.portal-quick-card.theme-emerald {
    --portal-tile-start: #059669;
    --portal-tile-end: #34d399;
    --portal-tile-soft: rgba(5, 150, 105, 0.18);
}

.portal-quick-card.theme-slate {
    --portal-tile-start: #334155;
    --portal-tile-end: #64748b;
    --portal-tile-soft: rgba(71, 85, 105, 0.2);
}

.portal-quick-card__top,
.portal-quick-main,
.portal-quick-card__footer,
.portal-quick-media {
    position: relative;
    z-index: 1;
}

.portal-quick-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.portal-quick-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0.42rem 0.68rem;
    border-radius: 999px;
    background: rgba(241, 245, 249, 0.82);
    border: 1px solid rgba(191, 204, 223, 0.8);
    color: #4b627f;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.2;
}

.portal-quick-side__meta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0.42rem 0.68rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(188, 202, 221, 0.84);
    color: var(--portal-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.portal-quick-media {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.portal-quick-media__frame {
    width: 88px;
    height: 88px;
    padding: 0.7rem;
    border-radius: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.95) 0%,
        rgba(242, 247, 252, 0.92) 100%
    );
    border: 1px solid rgba(192, 205, 223, 0.82);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.75),
        0 16px 28px var(--portal-tile-soft);
}

.portal-quick-media__frame img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.portal-quick-main {
    min-width: 0;
    display: grid;
    align-content: start;
}

.portal-quick-card h3 {
    margin: 0;
    max-width: 18ch;
    font-size: 1.03rem;
    font-weight: 800;
    line-height: 1.22;
}

.portal-quick-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 0.2rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgba(208, 219, 234, 0.72);
}

.portal-quick-link {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0.55rem 0.82rem;
    border-radius: 14px;
    background: rgba(247, 250, 253, 0.92);
    border: 1px solid rgba(192, 205, 223, 0.78);
    color: var(--portal-heading);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.portal-quick-arrow {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        135deg,
        var(--portal-tile-start) 0%,
        var(--portal-tile-end) 100%
    );
    color: #ffffff;
    box-shadow: 0 14px 24px var(--portal-tile-soft);
    transition: transform 0.2s ease;
}

.portal-quick-card:hover .portal-quick-arrow {
    transform: translateX(3px);
}

.portal-link-list {
    display: grid;
    gap: 10px;
}

.portal-link-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0.85rem 0.95rem;
    border-radius: 20px;
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.08) 0%,
        rgba(19, 184, 166, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.12);
    color: var(--portal-heading);
    font-weight: 800;
    text-decoration: none !important;
    transition:
        transform 0.18s ease,
        border-color 0.18s ease;
}

.portal-link-item:hover {
    transform: translateY(-2px);
    border-color: rgba(22, 119, 242, 0.24);
}

.portal-link-icon {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        135deg,
        var(--portal-primary) 0%,
        var(--portal-accent) 100%
    );
    color: #ffffff;
    box-shadow: 0 14px 24px rgba(22, 119, 242, 0.18);
}

.portal-link-copy {
    display: grid;
    gap: 4px;
}

.portal-link-copy small {
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-dashboard-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.8fr);
    gap: 14px;
    margin-bottom: 18px;
    padding: clamp(16px, 2.2vw, 22px);
    border-radius: 24px;
    background:
        radial-gradient(
            circle at top right,
            rgba(255, 255, 255, 0.24),
            transparent 24%
        ),
        linear-gradient(135deg, #07182f 0%, #0f4f92 45%, #12a7a5 100%);
    box-shadow: 0 18px 40px rgba(8, 23, 45, 0.18);
    color: #ffffff;
}

.portal-dashboard-hero::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -70px;
    width: 150px;
    height: 150px;
    border-radius: 28px;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.18),
        rgba(255, 255, 255, 0)
    );
    transform: rotate(24deg);
}

.portal-dashboard-hero > * {
    position: relative;
    z-index: 1;
}

.portal-dashboard-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0.55rem;
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-dashboard-hero__copy h1 {
    margin: 0 0 0.4rem;
    color: #ffffff;
    font-size: clamp(1.3rem, 2vw, 2rem);
    line-height: 1.12;
}

.portal-dashboard-hero__copy p {
    max-width: 72ch;
    margin: 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.94rem;
    line-height: 1.55;
}

.portal-dashboard-glance {
    display: grid;
    gap: 10px;
    align-self: center;
}

.portal-dashboard-glance__item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.48rem;
    width: 90%;
    justify-self: end;
    padding: 0.62rem 0.82rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(10px);
}

.portal-dashboard-glance__item span,
.portal-dashboard-glance__item strong {
    display: inline-flex;
    align-items: center;
}

.portal-dashboard-glance__item span {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-dashboard-glance__item strong {
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.35;
}

.portal-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 18px;
}

.portal-summary-panel,
.portal-yard-panel,
.portal-actions-panel {
    min-height: 100%;
}

.portal-summary-panel--export,
.portal-summary-panel--import,
.portal-yard-panel,
.portal-actions-panel {
    grid-column: span 6;
}

.portal-summary-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 1.2rem;
}

.portal-summary-panel__header h3 {
    margin-bottom: 0;
}

.portal-summary-panel--export {
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.97) 0%,
        rgba(243, 250, 255, 0.95) 100%
    );
}

.portal-summary-panel--import {
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.97) 0%,
        rgba(243, 255, 251, 0.95) 100%
    );
}

.portal-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.portal-stat-card {
    position: relative;
    overflow: hidden;
    padding: 1rem 1.05rem;
    border-radius: 15px;
    background: linear-gradient(
        135deg,
        rgba(15, 31, 57, 0.04) 0%,
        rgba(22, 119, 242, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.12);
}

.portal-stat-card::after {
    content: "";
    position: absolute;
    inset: auto -26px -26px auto;
    width: 92px;
    height: 92px;
    border-radius: 28px;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.22),
        rgba(255, 255, 255, 0)
    );
    transform: rotate(18deg);
}

.portal-stat-card span,
.portal-stat-card strong {
    position: relative;
    z-index: 1;
    display: block;
}

.portal-stat-card span {
    color: var(--portal-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-stat-card strong {
    margin-top: 0.45rem;
    color: var(--portal-heading);
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    font-weight: 700;
    line-height: 1.1;
}

.portal-stat-card--accent {
    background: linear-gradient(
        135deg,
        rgba(255, 143, 61, 0.13) 0%,
        rgba(255, 194, 71, 0.18) 100%
    );
    border-color: rgba(255, 143, 61, 0.16);
}

.portal-stat-card--soft {
    background: linear-gradient(
        135deg,
        rgba(19, 184, 166, 0.11) 0%,
        rgba(78, 215, 165, 0.14) 100%
    );
    border-color: rgba(19, 184, 166, 0.14);
}

.portal-summary-note {
    margin-top: 1rem;
    padding: 0.95rem 1rem;
    border-radius: 18px;
    background: rgba(15, 31, 57, 0.04);
    color: var(--portal-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.portal-yard-table {
    display: grid;
    grid-template-columns: minmax(120px, 1.3fr) repeat(2, minmax(100px, 1fr));
    border: 1px solid var(--portal-border);
    border-radius: 22px;
    overflow: hidden;
}

.portal-yard-table__head,
.portal-yard-table__label,
.portal-yard-table__value {
    padding: 1rem 1.05rem;
    border-bottom: 1px solid rgba(91, 111, 138, 0.12);
}

.portal-yard-table__head,
.portal-yard-table__value {
    text-align: right;
}

.portal-yard-table__head {
    background: linear-gradient(
        180deg,
        rgba(22, 119, 242, 0.08) 0%,
        rgba(19, 184, 166, 0.06) 100%
    );
    color: var(--portal-heading);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-yard-table__head:first-child,
.portal-yard-table__label {
    text-align: left;
}

.portal-yard-table__label {
    background: rgba(15, 31, 57, 0.03);
    color: var(--portal-heading);
    font-size: 0.9rem;
    font-weight: 800;
}

.portal-yard-table__value {
    color: var(--portal-heading);
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1.65rem;
    font-weight: 700;
}

.portal-yard-table > *:nth-last-child(-n + 3) {
    border-bottom: 0;
}

.portal-actions-panel .portal-link-list {
    gap: 14px;
}

.portal-actions-panel .portal-link-item {
    padding: 1rem 1.05rem;
}

.portal-footer {
    background:
        radial-gradient(
            900px 280px at 10% 0%,
            rgba(255, 194, 71, 0.14) 0%,
            rgba(255, 194, 71, 0) 60%
        ),
        radial-gradient(
            720px 300px at 85% 0%,
            rgba(19, 184, 166, 0.16) 0%,
            rgba(19, 184, 166, 0) 62%
        ),
        var(--portal-footer-bg);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 -18px 44px rgba(0, 0, 0, 0.2);
}

.portal-footer-inner {
    padding-top: 4px;
    padding-bottom: 0;
}

.portal-footer-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.portal-footer-kicker {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--portal-footer-muted);
}

.portal-footer-h {
    margin-top: 0.45rem;
    color: #ffffff;
    font-size: 1.45rem;
    font-weight: 700;
}

.portal-footer-sub {
    margin-top: 0.5rem;
    color: var(--portal-footer-muted);
    max-width: 68ch;
    font-size: 0.92rem;
}

.portal-footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.portal-footer-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--portal-footer-text);
    font-size: 0.8rem;
    font-weight: 800;
}

.portal-footer-grid {
    margin-top: 8px;
}

.portal-footer-card {
    height: 100%;
    background: var(--portal-footer-card);
    border: 1px solid var(--portal-footer-border);
    border-radius: 18px;
    padding: 1rem;
}

.portal-footer-card-h {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 800;
}

.portal-footer-card-line {
    margin-top: 0.65rem;
    color: var(--portal-footer-text);
    font-size: 0.88rem;
    line-height: 1.6;
}

.portal-footer-link {
    display: inline-block;
    margin-top: 0.5rem;
    color: #ffffff;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.4);
    text-underline-offset: 3px;
    font-size: 0.88rem;
}

.portal-footer-link:hover {
    color: #ffffff;
    text-decoration-color: rgba(255, 255, 255, 0.9);
}

.portal-footer-bottom {
    margin-top: 14px;
    padding: 0.95rem 0 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    text-align: center;
    color: var(--portal-footer-muted);
    font-size: 0.88rem;
    font-weight: 800;
}

.portal-track-shell {
    display: grid;
    gap: 22px;
}

.portal-track-hero {
    position: relative;
    overflow: hidden;
    display: block;
    margin-bottom: 18px;
    padding: clamp(16px, 2vw, 20px);
    border-radius: 24px;
    background:
        radial-gradient(
            circle at top right,
            rgba(255, 255, 255, 0.2),
            transparent 24%
        ),
        linear-gradient(135deg, #081a33 0%, #0f59ab 48%, #10b9a5 100%);
    box-shadow: 0 18px 40px rgba(8, 23, 45, 0.18);
    color: #ffffff;
}

.portal-track-hero::after {
    content: "";
    position: absolute;
    right: -44px;
    bottom: -72px;
    width: 150px;
    height: 150px;
    border-radius: 28px;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.18),
        rgba(255, 255, 255, 0)
    );
    transform: rotate(24deg);
}

.portal-track-hero > * {
    position: relative;
    z-index: 1;
}

.portal-track-hero__copy {
    max-width: 92ch;
}

.portal-track-hero__copy h1 {
    margin: 0.32rem 0 0.35rem;
    color: #ffffff;
    font-size: clamp(1.25rem, 1.9vw, 1.8rem);
    line-height: 1.12;
}

.portal-track-hero__copy p {
    max-width: 76ch;
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.94rem;
    line-height: 1.55;
}

.portal-track-search-card {
    display: grid;
    gap: 18px;
    padding: clamp(20px, 3vw, 28px);
}

.portal-track-search-card__intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.portal-track-search-hints {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.portal-track-search-hints span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.7rem 0.95rem;
    border-radius: 999px;
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.08) 0%,
        rgba(19, 184, 166, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.12);
    color: var(--portal-heading);
    font-size: 0.8rem;
    font-weight: 800;
}

.portal-track-form-grid {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.portal-track-inline-field {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1 1 0%;
    min-width: 0;
}

.portal-track-inline-field label {
    margin-bottom: 0;
    white-space: nowrap;
    font-weight: 800;
}

.portal-track-input-wrap {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.portal-track-input-icon {
    position: absolute;
    top: 50%;
    left: 18px;
    transform: translateY(-50%);
    color: var(--portal-primary);
    font-size: 1rem;
    pointer-events: none;
}

.portal-track-input-wrap input {
    min-height: 60px;
    padding-left: 3.25rem;
    border-radius: 18px;
    border-color: rgba(22, 119, 242, 0.14);
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.98) 0%,
        rgba(244, 249, 255, 0.92) 100%
    );
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.portal-track-input-wrap input::placeholder {
    letter-spacing: 0.03em;
    text-transform: none;
}

.portal-track-actions {
    display: flex;
    align-items: center;
}

.portal-track-results {
    display: grid;
    gap: 18px;
}

.portal-track-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.portal-track-overview-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 1rem 1.05rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--portal-border);
    box-shadow: var(--portal-shadow-soft);
    backdrop-filter: blur(14px);
}

.portal-track-overview-card::after {
    content: "";
    position: absolute;
    right: -22px;
    bottom: -22px;
    width: 84px;
    height: 84px;
    border-radius: 24px;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.2),
        rgba(255, 255, 255, 0)
    );
    transform: rotate(18deg);
}

.portal-track-overview-card > * {
    position: relative;
    z-index: 1;
}

.portal-track-overview-card__icon,
.portal-track-detail-item__icon,
.portal-track-map-empty__icon {
    width: 48px;
    height: 48px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 1rem;
    flex: 0 0 auto;
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.14);
}

.portal-track-overview-card__icon.sky {
    background: linear-gradient(135deg, #1677f2 0%, #31b7ff 100%);
}

.portal-track-overview-card__icon.teal {
    background: linear-gradient(135deg, #14b8a6 0%, #4ed7a5 100%);
}

.portal-track-overview-card__icon.amber {
    background: linear-gradient(135deg, #ff8f3d 0%, #ffc247 100%);
}

.portal-track-overview-card__icon.violet {
    background: linear-gradient(135deg, #6d5efc 0%, #9a8bff 100%);
}

.portal-track-overview-card small,
.portal-track-overview-card strong {
    display: block;
}

.portal-track-overview-card small {
    color: var(--portal-muted);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-track-overview-card strong {
    margin-top: 0.35rem;
    color: var(--portal-heading);
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.45;
    word-break: break-word;
}

.portal-track-content-grid {
    align-items: stretch;
}

.portal-track-details-card,
.portal-track-map-card {
    min-height: 100%;
}

.portal-track-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 1rem;
}

.portal-track-live-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.7rem 0.92rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.portal-track-live-pill.online {
    background: rgba(29, 157, 87, 0.12);
    border: 1px solid rgba(29, 157, 87, 0.16);
    color: #147045;
}

.portal-track-live-pill.offline {
    background: rgba(255, 143, 61, 0.14);
    border: 1px solid rgba(255, 143, 61, 0.18);
    color: #ad5d16;
}

.portal-track-detail-list {
    display: grid;
    gap: 12px;
}

.portal-track-detail-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 1rem;
    border-radius: 22px;
    background: linear-gradient(
        135deg,
        rgba(15, 31, 57, 0.04) 0%,
        rgba(22, 119, 242, 0.08) 100%
    );
    border: 1px solid rgba(22, 119, 242, 0.1);
}

.portal-track-detail-item__icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    background: linear-gradient(
        135deg,
        var(--portal-primary) 0%,
        var(--portal-accent) 100%
    );
}

.portal-track-detail-item small,
.portal-track-detail-item strong {
    display: block;
}

.portal-track-detail-item small {
    color: var(--portal-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-track-detail-item strong {
    margin-top: 0.32rem;
    color: var(--portal-heading);
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-word;
}

.portal-track-map-frame {
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(22, 119, 242, 0.12);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3);
}

.portal-track-map-frame iframe {
    width: 100%;
    min-height: 360px;
    border: 0;
    display: block;
}

.portal-track-map-empty {
    min-height: 360px;
    display: grid;
    place-items: center;
    gap: 10px;
    padding: 1.5rem;
    text-align: center;
    border-radius: 24px;
    background: linear-gradient(
        135deg,
        rgba(15, 31, 57, 0.04) 0%,
        rgba(22, 119, 242, 0.08) 100%
    );
    border: 1px dashed rgba(22, 119, 242, 0.22);
}

.portal-track-map-empty__icon {
    margin: 0 auto;
    background: linear-gradient(135deg, #ff8f3d 0%, #ffc247 100%);
}

.portal-track-map-empty h4 {
    margin: 0;
    color: var(--portal-heading);
    font-size: 1.2rem;
    font-weight: 700;
}

.portal-track-map-empty p {
    max-width: 46ch;
    margin: 0;
    color: var(--portal-muted);
    line-height: 1.65;
}

.portal-loader-backdrop {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: linear-gradient(
        180deg,
        rgba(9, 20, 39, 0.68) 0%,
        rgba(7, 16, 30, 0.82) 100%
    );
    backdrop-filter: blur(8px);
    z-index: 3000;
}

.portal-home-intro-lock {
    overflow: hidden;
}

.portal-home-intro {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 3500;
}

.portal-home-intro.is-active {
    display: flex;
}

.portal-home-intro__backdrop {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(
            circle at 18% 24%,
            rgba(32, 108, 197, 0.32),
            transparent 26%
        ),
        radial-gradient(
            circle at 80% 18%,
            rgba(20, 184, 166, 0.2),
            transparent 24%
        ),
        linear-gradient(180deg, #071223 0%, #0a1a30 44%, #08111e 100%);
}

.portal-home-intro__backdrop::before,
.portal-home-intro__backdrop::after {
    content: "";
    position: absolute;
    border-radius: 999px;
}

.portal-home-intro__backdrop::before {
    left: -4%;
    bottom: -10%;
    width: 40%;
    height: 40%;
    background: radial-gradient(
        circle,
        rgba(8, 122, 191, 0.18) 0%,
        rgba(8, 122, 191, 0) 72%
    );
}

.portal-home-intro__backdrop::after {
    right: -8%;
    top: -18%;
    width: 42%;
    height: 52%;
    background: radial-gradient(
        circle,
        rgba(17, 184, 166, 0.14) 0%,
        rgba(17, 184, 166, 0) 74%
    );
}

.portal-home-intro__scene {
    position: relative;
    z-index: 1;
    width: min(920px, calc(100vw - 40px));
    padding: clamp(24px, 4vw, 48px);
    border-radius: 34px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: linear-gradient(
        160deg,
        rgba(9, 22, 40, 0.9) 0%,
        rgba(10, 31, 57, 0.86) 52%,
        rgba(10, 80, 116, 0.76) 100%
    );
    box-shadow: 0 42px 100px rgba(0, 0, 0, 0.34);
    backdrop-filter: blur(14px);
}

.portal-home-intro__scene::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 1px solid rgba(255, 255, 255, 0.05);
    pointer-events: none;
}

.portal-home-intro__logo {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 54px;
}

.portal-home-intro__logo img {
    width: clamp(180px, 22vw, 280px);
    height: auto;
    object-fit: contain;
    filter: brightness(1.04);
}

.portal-home-intro__title {
    max-width: none;
    margin-top: 1rem;
    color: #ffffff;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: clamp(1.15rem, 2vw, 2.25rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.03em;
    white-space: nowrap;
}

.portal-home-intro__sub {
    max-width: none;
    margin-top: 0.75rem;
    color: rgba(226, 232, 240, 0.86);
    font-size: clamp(0.9rem, 1.2vw, 1rem);
    line-height: 1.65;
    white-space: nowrap;
}

.portal-home-intro__line {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 2rem;
    padding-top: 2.9rem;
}

.portal-home-intro__line::before {
    content: "";
    position: absolute;
    top: 1.58rem;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(
        90deg,
        rgba(120, 164, 212, 0.3) 0%,
        rgba(159, 192, 230, 0.85) 50%,
        rgba(120, 164, 212, 0.3) 100%
    );
}

.portal-home-intro__line span {
    position: relative;
    display: grid;
    gap: 6px;
    justify-items: start;
    color: #ffffff;
}

.portal-home-intro__line span img {
    width: 54px;
    height: 54px;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 14px 20px rgba(3, 8, 18, 0.18));
}

.portal-home-intro__line span small {
    display: block;
    padding-top: 0.35rem;
    color: rgba(226, 232, 240, 0.74);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.portal-home-intro__trailer {
    position: absolute;
    top: -0.08rem;
    left: 0;
    width: 176px;
    height: 78px;
    z-index: 2;
    animation: portal-home-intro-carriage 7.55s linear forwards;
}

.portal-home-intro__trailer img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    transform: scaleX(-1);
    transform-origin: center center;
}

.portal-home-intro__stacker {
    position: absolute;
    top: -3.28rem;
    right: 7.75rem;
    width: 190px;
    height: 134px;
    z-index: 2;
    opacity: 1;
}

.portal-home-intro__stacker-machine {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    transform: scaleX(-1);
    transform-origin: center center;
}

.portal-home-intro__yard-stack {
    position: absolute;
    right: 0;
    top: -3.05rem;
    width: 148px;
    min-height: 122px;
    z-index: 1;
    opacity: 1;
}

.portal-home-intro__yard-stack span {
    position: absolute;
    width: 68px;
    aspect-ratio: 170 / 124;
    display: block;
    border-radius: 6px;
    background: url("../images/intro-20ft-container.svg") center / contain
        no-repeat;
    filter: drop-shadow(0 10px 18px rgba(3, 8, 18, 0.16));
}

.portal-home-intro__yard-stack span:nth-child(1) {
    left: 0;
    top: 48px;
}

.portal-home-intro__yard-stack span:nth-child(2) {
    left: 0;
    top: 4px;
}

.portal-home-intro__yard-stack span:nth-child(3) {
    left: 40px;
    top: 48px;
}

.portal-home-intro__yard-stack span:nth-child(4) {
    left: 40px;
    top: 4px;
}

.portal-home-intro__yard-stack span:nth-child(5) {
    left: 80px;
    top: 48px;
}

.portal-home-intro__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 1.9rem;
}

.portal-home-intro__metric {
    padding: 1rem 1rem 0.95rem;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.portal-home-intro__metric strong,
.portal-home-intro__metric span {
    display: block;
}

.portal-home-intro__metric strong {
    color: #ffffff;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1.12rem;
    font-weight: 700;
}

.portal-home-intro__metric span {
    margin-top: 0.4rem;
    color: rgba(226, 232, 240, 0.74);
    font-size: 0.86rem;
    font-weight: 700;
}

.portal-home-intro__progress {
    position: relative;
    overflow: hidden;
    height: 8px;
    margin-top: 1.65rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
}

.portal-home-intro__progress span {
    display: block;
    width: 100%;
    height: 100%;
    transform-origin: left center;
    background: linear-gradient(90deg, #1677f2 0%, #39c3b4 55%, #ffc247 100%);
    animation: portal-home-intro-progress 8s linear forwards;
}

.portal-home-intro.is-leaving {
    animation: portal-home-intro-fade 0.72s ease forwards;
}

.portal-loader-backdrop.show {
    display: flex;
}

.portal-loader-card {
    position: relative;
    overflow: hidden;
    width: min(480px, calc(100vw - 40px));
    padding: 1.15rem 1.2rem 1.1rem;
    border-radius: 24px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.98) 0%,
        rgba(246, 250, 255, 0.96) 100%
    );
    border: 1px solid rgba(91, 111, 138, 0.16);
    box-shadow: 0 28px 72px rgba(15, 23, 42, 0.24);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.portal-loader-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, #0f4c81 0%, #1677f2 48%, #14b8a6 100%);
}

.portal-loader-mark {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: linear-gradient(
        135deg,
        rgba(15, 76, 129, 0.14) 0%,
        rgba(20, 184, 166, 0.16) 100%
    );
    border: 1px solid rgba(15, 76, 129, 0.12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #0f4c81;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.16em;
}

.portal-loader-copy {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-loader-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.36rem 0.7rem;
    border-radius: 999px;
    background: rgba(15, 76, 129, 0.08);
    color: #0f4c81;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.portal-loader-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, #1677f2 0%, #14b8a6 100%);
    box-shadow: 0 0 0 4px rgba(22, 119, 242, 0.12);
}

.portal-spinner {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 3px solid rgba(91, 111, 138, 0.24);
    border-top-color: #1677f2;
    border-right-color: #14b8a6;
    animation: spin 0.85s linear infinite;
    flex: 0 0 auto;
    margin-top: 0.9rem;
}

.portal-loader-title {
    margin: 0.82rem 0 0;
    color: var(--portal-heading);
    font-weight: 800;
    font-size: 1.08rem;
}

.portal-loader-sub {
    margin-top: 0.3rem;
    color: var(--portal-muted);
    font-size: 0.9rem;
    line-height: 1.55;
}

.portal-loader-progress {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 8px;
    margin-top: 0.9rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
}

.portal-loader-progress::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 42%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0f4c81 0%, #1677f2 55%, #14b8a6 100%);
    animation: portal-loader-progress 1.4s ease-in-out infinite;
}

@keyframes portal-loader-progress {
    0% {
        transform: translateX(-115%);
    }

    50% {
        transform: translateX(85%);
    }

    100% {
        transform: translateX(250%);
    }
}

@keyframes portal-home-intro-carriage {
    0% {
        transform: translateX(-180px);
        opacity: 0;
    }

    6% {
        opacity: 1;
    }

    24% {
        transform: translateX(calc(24% - 40px));
    }

    52% {
        transform: translateX(calc(42% - 52px));
    }

    82% {
        transform: translateX(calc(47% - 88px));
    }

    100% {
        transform: translateX(calc(50% - 88px));
        opacity: 1;
    }
}

@keyframes portal-home-intro-progress {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

@keyframes portal-home-intro-fade {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
        visibility: hidden;
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

body.dark-mode {
    --portal-bg: #0b1220;
    --portal-bg-deep: #0f172a;
    --portal-surface: rgba(14, 24, 41, 0.82);
    --portal-surface-solid: #0f172a;
    --portal-surface-alt: #132033;
    --portal-border: rgba(255, 255, 255, 0.08);
    --portal-border-strong: rgba(255, 255, 255, 0.1);
    --portal-heading: #f4f7fb;
    --portal-text: rgba(241, 245, 249, 0.92);
    --portal-muted: rgba(226, 232, 240, 0.64);
    --portal-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
    --portal-shadow-soft: 0 14px 34px rgba(0, 0, 0, 0.2);
    --portal-footer-bg: #060b15;
    color-scheme: dark;
}

body.dark-mode {
    background:
        radial-gradient(
            circle at top left,
            rgba(22, 119, 242, 0.12),
            transparent 30%
        ),
        radial-gradient(
            circle at top right,
            rgba(19, 184, 166, 0.12),
            transparent 25%
        ),
        linear-gradient(180deg, #09111f 0%, #0b1220 46%, #111b2d 100%);
}

body.dark-mode .portal-topbar {
    background: rgba(8, 14, 25, 0.8) !important;
    border-bottom-color: rgba(255, 255, 255, 0.06);
}

body.dark-mode .portal-header-auth-btn--ghost {
    background: linear-gradient(
        180deg,
        rgba(30, 41, 59, 0.92) 0%,
        rgba(15, 23, 42, 0.96) 100%
    );
    border-color: rgba(148, 163, 184, 0.24);
    color: #f8fafc;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

body.dark-mode .portal-header-auth-btn--ghost:hover,
body.dark-mode .portal-header-auth-btn--ghost.is-active {
    background: linear-gradient(
        135deg,
        rgba(37, 99, 235, 0.22) 0%,
        rgba(59, 130, 246, 0.18) 100%
    );
    border-color: rgba(147, 197, 253, 0.28);
    color: #eff6ff;
}

body.dark-mode .portal-topbar-title strong,
body.dark-mode .section-copy,
body.dark-mode .field label,
body.dark-mode .portal-login-assurance-title,
body.dark-mode .portal-dashboard-section-head h3,
body.dark-mode .portal-dashboard-section-subtitle,
body.dark-mode .portal-profile-copy strong,
body.dark-mode .portal-profile-copy small {
    color: var(--portal-text);
}

body.dark-mode .portal-icon-btn,
body.dark-mode .portal-profile-toggle,
body.dark-mode .portal-user-chip,
body.dark-mode .btn-secondary,
body.dark-mode .btn-outline-secondary {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--portal-text);
}

body.dark-mode .portal-profile-toggle:hover,
body.dark-mode .portal-profile-toggle:focus {
    background: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-brand-inline-sub,
body.dark-mode .portal-brand-copy span {
    color: rgba(255, 255, 255, 0.54);
}

body.dark-mode .portal-brand-inline-label,
body.dark-mode .portal-brand-block strong,
body.dark-mode .portal-topbar .nav-link {
    color: rgba(241, 245, 249, 0.96) !important;
}

body.dark-mode .portal-sidebar {
    background: linear-gradient(
        180deg,
        #0f1727 0%,
        #14213a 56%,
        #101a2d 100%
    ) !important;
    border-right-color: rgba(255, 255, 255, 0.08);
    box-shadow: 10px 0 34px rgba(0, 0, 0, 0.16);
}

body.dark-mode .portal-sidebar .brand-link {
    background: #ffffff;
    border-bottom-color: rgba(255, 255, 255, 0.07);
}

body.dark-mode .portal-sidebar .portal-brand-mark--logo {
    background: transparent;
}

body.dark-mode .portal-sidebar .portal-brand-collapsed-logo {
    background: #ffffff;
}

body.dark-mode .portal-sidebar .portal-brand-block,
body.dark-mode .portal-sidebar .portal-brand-copy strong,
body.dark-mode .portal-sidebar-label {
    color: rgba(241, 245, 249, 0.94) !important;
}

body.dark-mode .portal-sidebar .nav-sidebar > .nav-item > .nav-link,
body.dark-mode .portal-sidebar .nav-treeview > .nav-item > .nav-link {
    color: rgba(226, 232, 240, 0.82);
}

body.dark-mode .portal-sidebar .nav-sidebar > .nav-item > .nav-link .nav-icon,
body.dark-mode .portal-sidebar .nav-treeview > .nav-item > .nav-link .nav-icon {
    color: rgba(191, 203, 221, 0.74);
}

body.dark-mode .portal-sidebar .nav-sidebar > .nav-item > .nav-link:hover,
body.dark-mode .portal-sidebar .nav-treeview > .nav-item > .nav-link:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

body.dark-mode .portal-sidebar .nav-treeview > .nav-item > .nav-link.active {
    background: rgba(59, 130, 246, 0.16);
    border-color: rgba(96, 165, 250, 0.16);
    color: #dbeafe;
}

body.dark-mode .portal-sidebar .portal-brand-copy span {
    color: rgba(255, 255, 255, 0.74) !important;
}

body.dark-mode .card,
body.dark-mode .section-card,
body.dark-mode .hero-side,
body.dark-mode .portal-profile-menu,
body.dark-mode .portal-loader-card {
    background: rgba(11, 18, 32, 0.8);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-loader-badge {
    background: rgba(59, 130, 246, 0.16);
    color: #dbeafe;
}

body.dark-mode .portal-loader-mark {
    background: linear-gradient(
        135deg,
        rgba(37, 99, 235, 0.18) 0%,
        rgba(20, 184, 166, 0.16) 100%
    );
    border-color: rgba(255, 255, 255, 0.08);
    color: #e2e8f0;
}

body.dark-mode .portal-loader-progress {
    background: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-home-signal-row span {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .portal-home-metric-card,
body.dark-mode .portal-home-storyband,
body.dark-mode .portal-home-story-card,
body.dark-mode .portal-home-step,
body.dark-mode .portal-home-journey__side {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-home-metric-card strong,
body.dark-mode .portal-home-story-card h3,
body.dark-mode .portal-home-step h3,
body.dark-mode .portal-home-journey__side h3 {
    color: rgba(255, 255, 255, 0.94);
}

body.dark-mode .portal-home-metric-card span,
body.dark-mode .portal-home-metric-card p,
body.dark-mode .portal-home-story-card p,
body.dark-mode .portal-home-step p,
body.dark-mode .portal-home-checklist li {
    color: rgba(226, 232, 240, 0.78);
}

body.dark-mode .portal-home-intro__metric {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-login-assurance {
    background: linear-gradient(
        135deg,
        rgba(22, 119, 242, 0.14) 0%,
        rgba(19, 184, 166, 0.14) 100%
    );
    border-color: rgba(22, 119, 242, 0.16);
}

body.dark-mode .portal-login-highlight,
body.dark-mode .portal-login-badge,
body.dark-mode .portal-login-kicker,
body.dark-mode .portal-login-visual-stat,
body.dark-mode .portal-login-visual-note {
    border-color: rgba(255, 255, 255, 0.12);
}

body.dark-mode .portal-login-card,
body.dark-mode .portal-home-secondary-card,
body.dark-mode .portal-home-primary-card,
body.dark-mode .portal-home-services-card,
body.dark-mode .portal-auth-card,
body.dark-mode .portal-dashboard-action-card,
body.dark-mode .portal-sidebar-support {
    background: linear-gradient(
        180deg,
        rgba(15, 23, 39, 0.94) 0%,
        rgba(18, 28, 46, 0.94) 100%
    );
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18);
}

body.dark-mode .portal-login-card-badge,
body.dark-mode .portal-login-inline-points span,
body.dark-mode .portal-login-support-link {
    background: rgba(59, 130, 246, 0.14);
    border-color: rgba(147, 197, 253, 0.14);
    color: #dbeafe;
}

body.dark-mode .portal-login-card-meta,
body.dark-mode .portal-login-card-footer__item span {
    color: var(--portal-muted);
}

body.dark-mode .portal-login-card-copy h1,
body.dark-mode .portal-login-card-footer__item strong {
    color: var(--portal-heading);
}

body.dark-mode .portal-login-card-footer {
    border-top-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-dashboard-action-card__copy strong,
body.dark-mode .portal-home-secondary-card .card-title,
body.dark-mode .portal-home-services__headline .card-title,
body.dark-mode .portal-sidebar-support__body strong {
    color: rgba(241, 245, 249, 0.96);
}

body.dark-mode .portal-dashboard-action-card__copy small,
body.dark-mode .portal-sidebar-support__body p,
body.dark-mode .portal-home-services__headline .section-copy,
body.dark-mode .portal-home-services__summary span,
body.dark-mode .portal-home-secondary-card .section-copy {
    color: rgba(203, 213, 225, 0.8);
}

body.dark-mode .portal-dashboard-action-card:hover {
    border-color: rgba(96, 165, 250, 0.24);
    box-shadow: 0 20px 40px rgba(2, 8, 23, 0.28);
}

body.dark-mode .portal-sidebar-support__icon {
    background: linear-gradient(
        135deg,
        rgba(31, 65, 150, 0.28) 0%,
        rgba(55, 96, 184, 0.22) 100%
    );
    color: #93c5fd;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.dark-mode .portal-sidebar-support__btn {
    background: linear-gradient(135deg, #2f6cdf 0%, #214fb3 100%);
    color: #eff6ff !important;
    box-shadow: 0 10px 22px rgba(33, 79, 179, 0.26);
}

body.dark-mode .portal-profile-caret {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.72);
}

body.dark-mode .cards > .card,
body.dark-mode .portal-quick-card {
    background: linear-gradient(
        180deg,
        rgba(11, 18, 32, 0.94) 0%,
        rgba(17, 27, 45, 0.92) 100%
    );
}

body.dark-mode .portal-profile-meta-card,
body.dark-mode .section-kicker,
body.dark-mode .chip,
body.dark-mode .section-card .tag,
body.dark-mode .card .tag,
body.dark-mode .btn-outline-primary,
body.dark-mode .portal-outline-btn,
body.dark-mode .portal-link-item {
    background: rgba(22, 119, 242, 0.12);
    border-color: rgba(22, 119, 242, 0.18);
}

body.dark-mode .section-kicker,
body.dark-mode .chip,
body.dark-mode .section-card .tag,
body.dark-mode .card .tag,
body.dark-mode .portal-link-item {
    color: #bfdbfe;
}

body.dark-mode .portal-quick-side__meta,
body.dark-mode .portal-quick-link,
body.dark-mode .portal-quick-kicker,
body.dark-mode .portal-home-services__summary,
body.dark-mode .portal-quick-media__frame {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.9);
}

body.dark-mode .portal-home-services-card::before,
body.dark-mode .portal-quick-card__glow {
    opacity: 0.72;
}

body.dark-mode .portal-home-services__summary strong,
body.dark-mode .portal-quick-card h3 {
    color: rgba(241, 245, 249, 0.96);
}

body.dark-mode .portal-quick-card__footer {
    border-top-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .field input,
body.dark-mode .field select,
body.dark-mode .field textarea,
body.dark-mode .field input[type="file"] {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.09);
    color: var(--portal-text);
}

body.dark-mode .field input:-webkit-autofill,
body.dark-mode .field input:-webkit-autofill:hover,
body.dark-mode .field input:-webkit-autofill:focus,
body.dark-mode .field textarea:-webkit-autofill,
body.dark-mode .field select:-webkit-autofill {
    -webkit-text-fill-color: #e5edf8;
    box-shadow: 0 0 0 1000px rgba(18, 28, 46, 0.98) inset;
    caret-color: #e5edf8;
}

body.dark-mode .password-toggle {
    color: rgba(255, 255, 255, 0.64);
}

body.dark-mode .password-toggle:hover,
body.dark-mode .password-toggle:focus {
    color: #ffffff;
}

body.dark-mode th {
    background: rgba(22, 119, 242, 0.08);
}

body.dark-mode tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, 0.02);
}

body.dark-mode tbody tr:hover {
    background: rgba(22, 119, 242, 0.1);
}

body.dark-mode .table-wrap {
    background: rgba(11, 18, 32, 0.72);
}

body.dark-mode .status.success {
    color: #7de2a6;
}

body.dark-mode .status.error {
    color: #ff9aa4;
}

body.dark-mode .portal-footer-link,
body.dark-mode .portal-footer-card-line,
body.dark-mode .portal-footer-bottom {
    color: var(--portal-footer-text);
}

body.dark-mode .portal-profile-action:hover,
body.dark-mode .portal-profile-action:focus {
    background: rgba(255, 255, 255, 0.05);
}

body.dark-mode .portal-dashboard-glance__item,
body.dark-mode .portal-stat-card,
body.dark-mode .portal-summary-note,
body.dark-mode .portal-yard-table__label,
body.dark-mode .portal-track-overview-card,
body.dark-mode .portal-track-detail-item,
body.dark-mode .portal-track-map-empty {
    background: rgba(255, 255, 255, 0.05);
}

body.dark-mode .portal-summary-panel--export,
body.dark-mode .portal-summary-panel--import {
    background: linear-gradient(
        180deg,
        rgba(11, 18, 32, 0.94) 0%,
        rgba(17, 27, 45, 0.9) 100%
    );
}

body.dark-mode .portal-yard-table__head {
    background: rgba(22, 119, 242, 0.12);
}

body.dark-mode .portal-track-input-wrap input {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-track-live-pill.online {
    border-color: rgba(255, 255, 255, 0.12);
}

body.dark-mode .portal-track-live-pill.online {
    color: #87e5b1;
}

body.dark-mode .portal-track-live-pill.offline {
    color: #ffc98c;
}

body.dark-mode .portal-dashboard-filter-chip {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.84);
}

body.dark-mode .portal-dashboard-filter-chip.is-active,
body.dark-mode .portal-dashboard-filter-chip:hover {
    background: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
}

body.dark-mode .portal-activity-snapshot-item,
body.dark-mode .portal-activity-snapshot-note {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.05);
}

body.dark-mode .portal-activity-snapshot-item strong,
body.dark-mode .portal-activity-snapshot-note strong {
    color: rgba(255, 255, 255, 0.92);
}

body.dark-mode .portal-activity-snapshot-btn--solid {
    background: rgba(255, 255, 255, 0.96);
    color: #1d4ed8 !important;
}

body.dark-mode .modal-content {
    background: rgba(11, 18, 32, 0.96);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .modal-header,
body.dark-mode .modal-footer {
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-receipt-action {
    background: rgba(37, 99, 235, 0.12);
    border-color: rgba(96, 165, 250, 0.22);
    color: #dbeafe;
}

body.dark-mode .portal-receipt-action:hover {
    background: rgba(59, 130, 246, 0.18);
    border-color: rgba(147, 197, 253, 0.26);
}

body.dark-mode .portal-documents-hero,
body.dark-mode .portal-documents-feature,
body.dark-mode .portal-documents-library.section-card,
body.dark-mode .portal-document-card,
body.dark-mode .portal-documents-empty,
body.dark-mode .portal-documents-no-results {
    background:
        radial-gradient(
            circle at top right,
            rgba(59, 130, 246, 0.12),
            transparent 30%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(20, 184, 166, 0.12),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            rgba(11, 18, 32, 0.96) 0%,
            rgba(17, 27, 45, 0.98) 100%
        );
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-documents-kicker,
body.dark-mode .portal-documents-feature__eyebrow,
body.dark-mode .portal-documents-toolbar__eyebrow,
body.dark-mode .portal-documents-search,
body.dark-mode .portal-documents-filter,
body.dark-mode .portal-documents-feature__meta span,
body.dark-mode .portal-document-card__meta span,
body.dark-mode
    .portal-document-card.is-unavailable
    .portal-document-card__meta
    span {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--portal-text);
}

body.dark-mode .portal-documents-search input,
body.dark-mode .portal-documents-search input::placeholder,
body.dark-mode .portal-documents-search i,
body.dark-mode .portal-documents-filter span,
body.dark-mode .portal-documents-hero__copy p,
body.dark-mode .portal-documents-feature__main p,
body.dark-mode .portal-documents-toolbar__copy p,
body.dark-mode .portal-documents-empty p,
body.dark-mode .portal-documents-no-results p,
body.dark-mode .portal-document-card__body p {
    color: var(--portal-muted);
}

body.dark-mode .portal-documents-hero__copy h1,
body.dark-mode .portal-documents-feature__main h2,
body.dark-mode .portal-documents-toolbar__copy h2,
body.dark-mode .portal-document-card__body h3,
body.dark-mode .portal-documents-empty h3,
body.dark-mode .portal-documents-no-results h3 {
    color: var(--portal-heading);
}

body.dark-mode .portal-document-card__badge.is-available {
    background: rgba(16, 185, 129, 0.18);
    color: #a7f3d0;
}

body.dark-mode .portal-document-card__badge.is-unavailable,
body.dark-mode .portal-documents-open-btn.is-disabled,
body.dark-mode .portal-document-card__button.is-disabled {
    background: rgba(148, 163, 184, 0.16);
    color: #cbd5e1 !important;
}

body.dark-mode .portal-document-card__icon,
body.dark-mode .portal-documents-empty__icon,
body.dark-mode .portal-documents-no-results__icon {
    background: linear-gradient(
        135deg,
        rgba(30, 64, 175, 0.4) 0%,
        rgba(8, 145, 178, 0.38) 100%
    );
    color: #dbeafe;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 12px 24px rgba(15, 23, 42, 0.28);
}

body.dark-mode
    .portal-document-card.is-unavailable
    .portal-document-card__icon {
    background: rgba(148, 163, 184, 0.14);
    color: #cbd5e1;
}

body.dark-mode .portal-document-card__button,
body.dark-mode .portal-documents-open-btn {
    background: linear-gradient(135deg, #1d4ed8 0%, #0f766e 100%);
    color: #eff6ff !important;
}

body.dark-mode .vehicle-entry-shell,
body.dark-mode .table-top-scroll,
body.dark-mode .count-chip {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .row-remove-btn {
    background: rgba(239, 68, 68, 0.18);
    color: #fecaca;
}

body.dark-mode .status-pill.pending,
body.dark-mode .carting-status.cartingdone {
    background: rgba(245, 158, 11, 0.18);
    color: #fde68a;
}

body.dark-mode .status-pill.ok,
body.dark-mode .carting-status.weightdone {
    background: rgba(16, 185, 129, 0.18);
    color: #a7f3d0;
}

body.dark-mode .status-pill.default,
body.dark-mode .carting-status.started,
body.dark-mode .reel-link-btn {
    background: rgba(59, 130, 246, 0.16);
    color: #bfdbfe;
}

body.dark-mode .print-link-btn {
    background: linear-gradient(135deg, #1d4ed8 0%, #0891b2 100%);
    color: #eff6ff;
}

body.dark-mode .prepared-block span,
body.dark-mode .count-chip,
body.dark-mode .dataTables_wrapper .dataTables_info,
body.dark-mode .dataTables_wrapper .dataTables_filter label,
body.dark-mode .dataTables_wrapper .dataTables_length label {
    color: var(--portal-muted);
}

body.dark-mode
    .package-select-wrap
    .select2-container
    .select2-selection--multiple,
body.dark-mode .select2-container--bootstrap4 .select2-selection,
body.dark-mode .select2-dropdown,
body.dark-mode
    .select2-container--bootstrap4
    .select2-results__option[aria-selected="true"] {
    background: rgba(11, 18, 32, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--portal-text);
}

body.dark-mode
    .package-select-wrap
    .select2-selection--multiple
    .select2-search__field,
body.dark-mode
    .package-select-wrap
    .select2-selection--multiple
    .select2-selection__choice,
body.dark-mode
    .package-select-wrap
    .select2-selection--multiple
    .select2-selection__choice__display,
body.dark-mode .package-select-wrap .select2-results__option,
body.dark-mode
    .select2-container--bootstrap4
    .select2-selection--single
    .select2-selection__rendered {
    color: var(--portal-text) !important;
}

body.dark-mode
    .package-select-wrap
    .select2-selection--multiple
    .select2-selection__choice {
    background: rgba(59, 130, 246, 0.12);
    border-color: rgba(147, 197, 253, 0.18);
}

body.dark-mode
    .package-select-wrap
    .select2-results__option--highlighted[aria-selected],
body.dark-mode
    .select2-container--bootstrap4
    .select2-results__option--highlighted {
    background: rgba(59, 130, 246, 0.18);
    color: #dbeafe !important;
}

body.dark-mode
    .package-select-wrap
    .select2-selection--multiple
    .select2-selection__choice__remove {
    color: #cbd5e1;
}

body.dark-mode,
body.dark-mode .wrapper,
body.dark-mode .content-wrapper,
body.dark-mode .portal-content-wrapper,
body.dark-mode .table-wrap,
body.dark-mode .table-top-scroll,
body.dark-mode div.dataTables_scrollBody {
    scrollbar-color: rgba(102, 136, 194, 0.82) rgba(255, 255, 255, 0.08);
}

body.dark-mode::-webkit-scrollbar-track,
body.dark-mode .table-wrap::-webkit-scrollbar-track,
body.dark-mode .table-top-scroll::-webkit-scrollbar-track,
body.dark-mode div.dataTables_scrollBody::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.08);
}

body.dark-mode::-webkit-scrollbar-thumb,
body.dark-mode .table-wrap::-webkit-scrollbar-thumb,
body.dark-mode .table-top-scroll::-webkit-scrollbar-thumb,
body.dark-mode div.dataTables_scrollBody::-webkit-scrollbar-thumb {
    background: linear-gradient(
        180deg,
        rgba(96, 165, 250, 0.88) 0%,
        rgba(59, 130, 246, 0.9) 100%
    );
    border-color: rgba(9, 17, 31, 0.44);
}

@media (min-width: 992px) {
    .hero-split {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .portal-home-panels-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .portal-login-shell {
        grid-template-columns: 1fr;
    }

    .portal-login-card,
    .portal-login-intro {
        min-height: 0;
    }

    .portal-login-main {
        order: -1;
    }

    .portal-login-intro {
        min-height: 520px;
    }

    .portal-login-highlights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-login-visual-band {
        grid-template-columns: 1fr;
    }

    .portal-dashboard-hero,
    .portal-home-grid,
    .portal-home-services__head,
    .grid-2 {
        grid-template-columns: 1fr;
    }

    .portal-home-primary-card__head,
    .portal-home-secondary-card__head,
    .portal-home-services__head {
        align-items: flex-start;
    }

    .portal-home-primary-card__kicker,
    .portal-home-secondary-card__kicker {
        margin-top: 0.15rem;
    }

    .portal-home-services__summary {
        min-width: 0;
    }

    .portal-quick-card h3 {
        max-width: none;
    }

    .portal-summary-panel--export,
    .portal-summary-panel--import,
    .portal-yard-panel,
    .portal-actions-panel {
        grid-column: 1 / -1;
    }

    .portal-page-shell {
        padding-bottom: 1.25rem;
    }

    .portal-track-search-card__intro,
    .portal-track-panel-head,
    .portal-dashboard-hero {
        grid-template-columns: 1fr;
        display: grid;
    }

    .portal-track-hero__copy p {
        max-width: none;
    }

    .portal-track-search-hints {
        justify-content: flex-start;
    }

    .portal-track-form-grid,
    .portal-track-inline-field {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .portal-track-inline-field label {
        white-space: normal;
    }

    .portal-inline-filter-field {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-inline-filter-field label {
        min-width: 0;
        width: 100%;
    }

    .portal-empty-search-form {
        flex-direction: column;
        align-items: stretch;
    }

    .portal-search-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .portal-search-toolbar .portal-inline-filter-field,
    .portal-search-toolbar__field--sm,
    .portal-search-toolbar__field--md,
    .portal-search-toolbar__field--lg {
        flex: 1 1 auto;
        width: 100%;
    }

    .portal-search-toolbar__actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .portal-track-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-footer-head {
        align-items: flex-start;
    }

    .portal-home-side {
        justify-content: flex-start;
    }

    .portal-home-hero-actions {
        margin-top: 0.9rem;
        justify-content: flex-start;
    }

    .portal-home-journey,
    .portal-home-storyband__head,
    .portal-home-cta {
        grid-template-columns: 1fr;
    }

    .portal-home-metrics,
    .portal-home-storyband__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-home-cta__actions {
        justify-content: flex-start;
    }

    .portal-home-intro__metrics {
        grid-template-columns: 1fr;
    }

    .portal-home-intro__line {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 24px;
    }
}

@media (max-width: 767.98px) {
    .portal-header-auth-btn {
        min-height: 34px;
        padding: 0.48rem 0.72rem;
        font-size: 0.74rem;
        gap: 6px;
    }

    .portal-auth-card {
        padding: 1rem;
        border-radius: 24px;
    }

    .portal-register-row {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .portal-auth-footer {
        position: sticky;
        bottom: 0;
        background: rgba(255, 255, 255, 0.9);
        backdrop-filter: blur(12px);
        border-top-color: rgba(182, 198, 220, 0.6);
        padding: 0.9rem 0.2rem 0.2rem;
        margin-top: 0.8rem;
        z-index: 2;
    }

    body.dark-mode .portal-auth-footer {
        background: rgba(11, 18, 32, 0.92);
    }

    .portal-auth-trust {
        width: 100%;
        margin-left: 0;
        justify-content: center;
    }

    .portal-login-intro {
        min-height: 420px;
    }

    .portal-login-highlights {
        grid-template-columns: 1fr;
    }

    .portal-login-badges,
    .portal-login-inline-points {
        gap: 8px;
    }

    .portal-login-badge,
    .portal-login-inline-points span {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-login-card {
        min-height: 0;
        padding: 1.2rem;
        border-radius: 24px;
    }

    .portal-login-card-topline,
    .portal-login-card-footer {
        display: grid;
        justify-content: stretch;
    }

    .portal-login-card-copy h1 {
        font-size: 1.58rem;
    }

    .portal-login-actions .btn {
        width: 100%;
    }

    .portal-profile-copy {
        max-width: 160px;
    }

    .portal-profile-toggle {
        gap: 10px;
        padding-right: 0.38rem !important;
    }

    .portal-profile-avatar {
        width: 40px;
        height: 40px;
        border-radius: 15px;
    }

    .portal-profile-menu {
        width: min(340px, calc(100vw - 18px));
        margin-right: -0.2rem;
        padding: 0.72rem;
    }

    .portal-profile-menu-meta {
        grid-template-columns: 1fr;
    }

    .portal-profile-action {
        gap: 12px;
    }

    .portal-sidebar .brand-link {
        padding: 0.9rem 1rem;
    }

    .card-body,
    .section-card,
    .card-header,
    .portal-home-content,
    .hero,
    .portal-dashboard-hero,
    .portal-track-hero,
    .hero-card,
    .hero-side {
        padding: 1.15rem;
    }

    .portal-summary-panel__header {
        display: grid;
    }

    .portal-stat-grid,
    .portal-yard-table {
        grid-template-columns: 1fr;
    }

    .portal-track-overview {
        grid-template-columns: 1fr;
    }

    .portal-track-live-pill {
        white-space: normal;
    }

    .portal-track-map-frame iframe,
    .portal-track-map-empty {
        min-height: 300px;
    }

    .portal-yard-table__head,
    .portal-yard-table__label,
    .portal-yard-table__value {
        text-align: left;
        border-bottom: 1px solid rgba(91, 111, 138, 0.12);
    }

    .portal-yard-table > *:last-child {
        border-bottom: 0;
    }

    .portal-home-title {
        font-size: 1.6rem;
        white-space: normal;
    }

    .portal-home-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .portal-home-signal-row {
        display: grid;
        grid-template-columns: 1fr;
    }

    .portal-home-copy-note {
        width: 100%;
        justify-content: flex-start;
        font-size: 0.8rem;
    }

    .portal-home-promise-list {
        gap: 0.54rem;
    }

    .portal-home-promise-list li strong {
        font-size: 0.84rem;
        line-height: 1.36;
    }

    .portal-home-metrics,
    .portal-home-storyband__grid {
        grid-template-columns: 1fr;
    }

    .portal-home-metrics,
    .portal-home-storyband__grid,
    .portal-home-journey__steps {
        gap: 10px;
    }

    .portal-home-storyband,
    .portal-home-journey__main,
    .portal-home-journey__side,
    .portal-home-cta {
        padding: 1.05rem;
    }

    .portal-home-step {
        grid-template-columns: 1fr;
    }

    .portal-home-step__no {
        width: 56px;
        height: 56px;
    }

    .portal-home-intro__scene {
        width: min(100%, calc(100vw - 24px));
        padding: 1.15rem;
        border-radius: 24px;
    }

    .portal-home-intro__title {
        max-width: none;
        font-size: 1.95rem;
    }

    .portal-home-intro__sub {
        white-space: normal;
    }

    .portal-home-intro__line {
        grid-template-columns: 1fr;
    }

    .portal-home-intro__line::before,
    .portal-home-intro__trailer,
    .portal-home-intro__stacker,
    .portal-home-intro__yard-stack {
        display: none;
    }

    .portal-home-cta__actions .btn {
        width: 100%;
    }

    .portal-footer-badges {
        width: 100%;
    }

    .portal-footer-badge {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 991px) {
    .portal-auth-title {
        font-size: 1.12rem;
        line-height: 1.15;
    }

    .portal-auth-shell--fullbg {
        flex-direction: column;
        justify-content: center;
        align-items: stretch;
        min-height: auto;
        padding: 14px;
    }

    .portal-auth-card--overlay {
        order: 1;
        width: 100%;
        margin-right: 0;
    }

    .portal-auth-features {
        order: 2;
        position: static;
        width: 100%;
        margin-top: 14px;
        margin-bottom: 0;
    }

    .portal-auth-features__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1399px) and (min-width: 992px) {
    .portal-auth-shell--fullbg {
        padding-left: clamp(310px, 24vw, 420px);
    }

    .portal-auth-features {
        width: min(462px, 27.8vw);
    }

    .portal-auth-features__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

body.portal-public-no-sidebar .content.pt-3 {
    padding: 0 !important;
    margin: 0 !important;
}

body.portal-public-no-sidebar .content-wrapper > .content {
    padding: 0 !important;
    margin: 0 !important;
}

body.portal-public-no-sidebar .portal-page-shell {
    padding: 0 !important;
}

body.portal-public-no-sidebar .portal-page-shell.container-fluid {
    max-width: none;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Final authenticated overrides */
.portal-page-shell {
    padding: 0.02rem 0.1rem 0.12rem;
}

.portal-page-shell .section-card + .section-card {
    margin-top: 0 !important;
}

.portal-topbar {
    background: rgba(255, 255, 255, 0.96) !important;
    border-bottom: 1px solid rgba(203, 214, 230, 0.7);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(14px);
    min-height: 70px;
    padding: 0.6rem 1rem;
    justify-content: space-between;
}

.portal-topbar__left {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-sidebar {
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
    border-right: 1px solid rgba(203, 214, 230, 0.82);
    box-shadow: 10px 0 28px rgba(15, 23, 42, 0.04);
    overflow-x: hidden;
}

.portal-sidebar .brand-link {
    min-height: 70px;
    border-bottom: 1px solid rgba(203, 214, 230, 0.7);
    padding: 0.6rem 1rem;
    display: flex;
    align-items: center;
}

.portal-sidebar .sidebar {
    padding: 0.8rem 0.7rem 1rem;
    overflow-x: hidden;
}

.portal-sidebar .portal-brand-block,
.portal-sidebar .portal-brand-copy strong {
    color: var(--portal-heading) !important;
}

.portal-sidebar .portal-brand-copy span {
    color: var(--portal-muted) !important;
}

.portal-sidebar-label {
    margin: 0 0.55rem 0.65rem;
    color: #73839c;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link {
    min-height: 38px !important;
    border-radius: 12px;
    padding: 0.35rem 0.85rem !important;
    color: #213454;
    font-size: 0.95rem;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link .nav-icon {
    color: #4f6483;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link:hover {
    background: #f4f8ff;
    border-color: #dce8fb;
    color: #113360;
    transform: none;
}

.portal-sidebar .nav-sidebar > .nav-item > .nav-link:hover .nav-icon {
    color: #113360;
}

.portal-sidebar .nav-sidebar > .nav-item.menu-open > .nav-link,
.portal-sidebar .nav-sidebar > .nav-item > .nav-link.active {
    background: linear-gradient(135deg, #1f67d4 0%, #2b77eb 100%);
    color: #ffffff;
    transform: none;
    box-shadow: 0 10px 22px rgba(37, 102, 217, 0.18);
    border-color: rgba(31, 103, 212, 0.18);
}

.portal-sidebar .nav-sidebar > .nav-item.menu-open > .nav-link .nav-icon,
.portal-sidebar .nav-sidebar > .nav-item > .nav-link.active .nav-icon {
    color: #ffffff;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link {
    border-radius: 10px;
    color: #506581;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link .nav-icon {
    color: #7a8aa2;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link:hover {
    background: #f6f9fe;
    border-color: #e3ebf9;
    color: #0f2f59;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link:hover .nav-icon {
    color: #0f2f59;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link.active {
    background: #edf4ff;
    border-color: #dbe7fb;
    color: #1450a8;
}

.portal-sidebar .nav-treeview > .nav-item > .nav-link.active .nav-icon {
    color: #1450a8;
}

.portal-sidebar-support {
    margin: 0.8rem 0.35rem 0;
    padding: 0.72rem 0.78rem;
    border: 1px solid #dfe6f2;
    border-radius: 12px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.98) 0%,
        rgba(248, 251, 255, 0.98) 100%
    );
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
}

.portal-sidebar-support__head {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 0.7rem;
    align-items: start;
}

.portal-sidebar-support__icon {
    width: 42px;
    height: 42px;
    margin-bottom: 0;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #e8efff 0%, #f3f6ff 100%);
    color: #4c63ff;
    font-size: 1.1rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.portal-sidebar-support__body {
    display: grid;
    gap: 0.12rem;
    align-content: start;
    min-width: 0;
}

.portal-sidebar-support__body strong {
    display: block;
    margin: 0;
    color: var(--portal-heading);
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.15;
}

.portal-sidebar-support__body p {
    margin: 0;
    color: #4f617f;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
}

.portal-sidebar-support__btn {
    width: 100%;
    margin-top: 0.6rem;
    border: 0;
    border-radius: 6px;
    padding: 0.48rem 0.8rem;
    background: linear-gradient(135deg, #2f7ae5 0%, #225fce 100%);
    color: #ffffff !important;
    font-size: 0.82rem;
    font-weight: 800;
    box-shadow: 0 8px 16px rgba(34, 95, 206, 0.18);
}

.portal-sidebar-support__btn:hover,
.portal-sidebar-support__btn:focus {
    color: #ffffff !important;
    filter: brightness(1.02);
}

body.sidebar-collapse .portal-sidebar .brand-link {
    min-height: 70px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

body.sidebar-collapse .portal-sidebar .sidebar {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

body.sidebar-collapse .portal-sidebar-support {
    margin-left: 0;
    margin-right: 0;
    padding: 0.7rem 0.45rem;
    border-radius: 16px;
    display: grid;
    justify-items: center;
}

body.sidebar-collapse .portal-sidebar-support__head {
    grid-template-columns: 1fr;
    justify-items: center;
}

body.sidebar-collapse .portal-sidebar-support__icon {
    margin-bottom: 0;
}

body.sidebar-collapse .portal-sidebar-support__body,
body.sidebar-collapse .portal-sidebar-support__btn {
    display: none;
}

.portal-dashboard-shell {
    display: grid;
    gap: 14px;
    align-content: start;
    margin-top: -0.2rem;
}

.portal-dashboard-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 0;
    min-height: 0;
    padding: clamp(14px, 1.5vw, 18px);
    border-radius: 22px;
    background:
        linear-gradient(
            90deg,
            rgba(17, 43, 103, 0.96) 0%,
            rgba(24, 69, 157, 0.9) 46%,
            rgba(24, 69, 157, 0.58) 70%,
            rgba(24, 69, 157, 0.12) 100%
        ),
        url("/images/portal-login-hero.png") center right / cover no-repeat;
    box-shadow: 0 14px 34px rgba(8, 23, 45, 0.12);
    overflow: hidden;
}

.portal-dashboard-hero__body {
    display: block;
}

.portal-dashboard-hero__copy {
    min-width: 0;
}

.portal-dashboard-hero__headline {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 0.3rem;
}

.portal-dashboard-kicker {
    padding: 0;
    background: transparent;
    border: 0;
    font-size: 0.88rem;
    letter-spacing: 0;
    text-transform: none;
}

.portal-dashboard-hero__copy h1 {
    margin: 0;
    font-size: clamp(1.15rem, 1.55vw, 1.8rem);
    line-height: 1.04;
}

.portal-dashboard-hero__subline {
    max-width: none;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.9rem;
    margin-bottom: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.portal-dashboard-hero__meta {
    display: grid;
    gap: 8px;
    margin-top: 0.5rem;
    align-items: flex-start;
    justify-items: start;
}

.portal-dashboard-gst-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.45rem 0.72rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-dashboard-glance--inline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: min(100%, 540px);
    min-width: 0;
    margin-left: 0;
}

.portal-dashboard-glance__item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.18rem;
    width: 100%;
    min-width: 0;
    padding: 0.5rem 0.62rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff;
    backdrop-filter: blur(6px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        inset 0 -10px 18px rgba(10, 28, 68, 0.12);
}

.portal-dashboard-glance__item span {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    flex: 0 1 auto;
    white-space: nowrap;
}

.portal-dashboard-glance__item strong {
    margin-left: auto;
    font-size: 0.84rem;
    color: #ffffff;
    flex-shrink: 0;
}

.portal-dashboard-stat-row {
    margin-left: -7px;
    margin-right: -7px;
}

.portal-dashboard-stat-row > [class*="col-"] {
    padding-left: 7px;
    padding-right: 7px;
    margin-bottom: 14px;
}

.portal-dashboard-stat-card {
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 106px;
    height: 100%;
    padding: 1.02rem 1.08rem;
    border-radius: 12px;
    color: #ffffff;
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
}

.portal-dashboard-stat-card.is-blue {
    background: linear-gradient(135deg, #2563eb 0%, #3b82f6 52%, #60a5fa 100%);
}

.portal-dashboard-stat-card.is-green {
    background: linear-gradient(135deg, #059669 0%, #10b981 55%, #34d399 100%);
}

.portal-dashboard-stat-card.is-orange {
    background: linear-gradient(135deg, #ea580c 0%, #f97316 52%, #fb923c 100%);
}

.portal-dashboard-stat-card.is-violet {
    background: linear-gradient(135deg, #7c3aed 0%, #8b5cf6 52%, #a78bfa 100%);
}

.portal-dashboard-stat-card__icon {
    width: 68px;
    height: 68px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.18) 0%,
        rgba(255, 255, 255, 0.1) 100%
    );
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16);
    font-size: 1.62rem;
    flex: 0 0 auto;
}

.portal-dashboard-stat-card__copy {
    display: grid;
    gap: 5px;
}

.portal-dashboard-stat-card__copy small,
.portal-dashboard-stat-card__copy span {
    color: rgba(255, 255, 255, 0.92);
}

.portal-dashboard-stat-card__copy small {
    font-size: 0.92rem;
    font-weight: 700;
}

.portal-dashboard-stat-card__copy strong {
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 1.71rem;
    font-weight: 700;
    line-height: 1;
}

.portal-dashboard-stat-card__copy span {
    font-size: 0.88rem;
    font-weight: 600;
}

.portal-dashboard-actions {
    padding: 1rem 1rem 1.05rem;
    border-radius: 14px;
}

.portal-dashboard-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 1rem;
}

.portal-dashboard-section-head h3 {
    margin: 0;
    font-size: 1.55rem;
}

.portal-dashboard-activity-headline {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}

.portal-dashboard-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.portal-dashboard-action-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 92px;
    padding: 1rem 1.05rem;
    border: 1px solid #dfe8f4;
    border-radius: 11px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
    text-decoration: none !important;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.portal-dashboard-action-card:hover {
    transform: translateY(-2px);
    border-color: #c8daf7;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08);
}

.portal-dashboard-action-card__icon {
    width: 50px;
    height: 50px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #edf4ff 0%, #dceaff 100%);
    color: #1d68d8;
    font-size: 1.12rem;
    flex: 0 0 auto;
}

.portal-dashboard-action-card__icon--blue {
    background: linear-gradient(135deg, #4d86f1 0%, #3b73e0 100%);
    color: #ffffff;
}

.portal-dashboard-action-card__icon--green {
    background: linear-gradient(135deg, #31a27f 0%, #24936f 100%);
    color: #ffffff;
}

.portal-dashboard-action-card__icon--purple {
    background: linear-gradient(135deg, #9856e0 0%, #8448cf 100%);
    color: #ffffff;
}

.portal-dashboard-action-card__icon--orange {
    background: linear-gradient(135deg, #ff981c 0%, #ff8600 100%);
    color: #ffffff;
}

.portal-dashboard-action-card__copy {
    display: grid;
    gap: 3px;
}

.portal-dashboard-action-card__copy strong {
    color: var(--portal-heading);
    font-size: 1rem;
    font-weight: 800;
}

.portal-dashboard-action-card__copy small {
    color: var(--portal-muted);
    font-size: 0.83rem;
    font-weight: 600;
}

.portal-dashboard-grid {
    gap: 16px;
}

.portal-dashboard-grid--refined .section-card {
    padding: 1rem;
    border-radius: 14px;
}

.portal-dashboard-section-subtitle {
    color: var(--portal-muted);
    font-size: 0.86rem;
    font-weight: 600;
    white-space: nowrap;
}

.portal-dashboard-activity-filters {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.portal-dashboard-filter-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0.45rem 0.82rem;
    border: 1px solid #d8e4f5;
    border-radius: 999px;
    background: #f8fbff;
    color: #3c5475;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
    transition:
        background-color 0.18s ease,
        color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.portal-dashboard-filter-chip.is-active,
.portal-dashboard-filter-chip:hover {
    background: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
    box-shadow: 0 10px 22px rgba(37, 99, 235, 0.18);
}

.portal-dashboard-activity-card {
    padding: 1rem;
    border-radius: 14px;
}

.portal-dashboard-activity-table-wrap {
    overflow-x: auto;
}

.portal-dashboard-activity-table {
    width: 100%;
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0;
}

.portal-dashboard-activity-table thead th {
    padding: 0.82rem 0.9rem;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fbff;
    color: #334155;
    font-size: 0.79rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.portal-dashboard-activity-table thead th:first-child {
    border-top-left-radius: 10px;
}

.portal-dashboard-activity-table thead th:last-child {
    border-top-right-radius: 10px;
}

.portal-dashboard-activity-table tbody td {
    padding: 0.9rem;
    border-bottom: 1px solid #e8eef6;
    color: #334155;
    font-size: 0.86rem;
    font-weight: 600;
    vertical-align: middle;
}

.portal-dashboard-activity-table tbody tr:last-child td {
    border-bottom: 0;
}

.portal-dashboard-type-pill,
.portal-dashboard-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
    white-space: nowrap;
}

.portal-dashboard-type-pill.is-import {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.portal-dashboard-type-pill.is-export {
    background: rgba(234, 88, 12, 0.12);
    color: #c2410c;
}

.portal-dashboard-status-pill {
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
}

.portal-dashboard-table-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.38rem 0.78rem;
    border: 1px solid #cfe0fb;
    border-radius: 9px;
    background: #f8fbff;
    color: #2563eb !important;
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none !important;
}

.portal-dashboard-table-action:hover {
    background: #edf4ff;
}

body.dark-mode .portal-dashboard-activity-table thead th {
    border-top-color: rgba(148, 163, 184, 0.2);
    border-bottom-color: rgba(148, 163, 184, 0.2);
    background: rgba(241, 245, 249, 0.96);
    color: #334155;
}

body.dark-mode .portal-dashboard-activity-table tbody tr {
    background: rgba(15, 23, 42, 0.72);
}

body.dark-mode .portal-dashboard-activity-table tbody td {
    border-bottom-color: rgba(148, 163, 184, 0.14);
    color: rgba(226, 232, 240, 0.94);
}

body.dark-mode .portal-dashboard-table-action {
    background: #eff6ff;
    border-color: rgba(191, 219, 254, 0.68);
    color: #2563eb !important;
}

body.dark-mode .portal-dashboard-table-action:hover,
body.dark-mode .portal-dashboard-table-action:focus {
    background: #dbeafe;
    color: #1d4ed8 !important;
}

.portal-activity-snapshot-shell {
    display: grid;
    gap: 14px;
}

.portal-activity-snapshot-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 1rem 1.05rem;
    border-radius: 18px;
    background: linear-gradient(
        135deg,
        rgba(17, 43, 103, 0.96) 0%,
        rgba(24, 69, 157, 0.9) 54%,
        rgba(70, 116, 211, 0.8) 100%
    );
    color: #ffffff;
    box-shadow: 0 16px 34px rgba(8, 23, 45, 0.12);
}

.portal-activity-snapshot-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.28rem 0.68rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.95);
    font-size: 0.74rem;
    font-weight: 800;
}

.portal-activity-snapshot-hero__copy {
    display: grid;
    gap: 0.55rem;
}

.portal-activity-snapshot-hero__headline {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.portal-activity-snapshot-hero__headline h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(1.25rem, 2vw, 1.85rem);
    line-height: 1.05;
}

.portal-activity-snapshot-hero__subline {
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.9rem;
    font-weight: 600;
}

.portal-activity-snapshot-hero__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.portal-activity-snapshot-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0.55rem 0.9rem;
    border-radius: 10px;
    font-size: 0.84rem;
    font-weight: 800;
    text-decoration: none !important;
}

.portal-activity-snapshot-btn--ghost {
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff !important;
}

.portal-activity-snapshot-btn--solid {
    background: #ffffff;
    color: #1d4ed8 !important;
}

.portal-activity-snapshot-card {
    padding: 1rem;
    border-radius: 14px;
}

.portal-activity-snapshot-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.portal-activity-snapshot-item,
.portal-activity-snapshot-note {
    display: grid;
    gap: 6px;
    padding: 0.95rem 1rem;
    border: 1px solid #e3ebf6;
    border-radius: 14px;
    background: #f8fbff;
}

.portal-activity-snapshot-item span,
.portal-activity-snapshot-note span {
    color: var(--portal-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.portal-activity-snapshot-item strong,
.portal-activity-snapshot-note strong {
    color: var(--portal-heading);
    font-size: 0.96rem;
    line-height: 1.45;
}

.portal-activity-snapshot-note {
    margin-top: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.portal-footer {
    background: #ffffff;
    border-top: 1px solid #dce5f2;
    box-shadow: none;
}

.portal-footer-inner {
    padding-top: 0;
}

.portal-footer-card {
    height: 100%;
    background: transparent;
    border: 0;
    border-right: 1px solid #dce5f2;
    border-radius: 0;
    padding: 1rem 0.7rem 1rem 0.55rem;
}

.portal-footer-card-h {
    color: var(--portal-heading);
    font-size: 0.97rem;
}

.portal-footer-card-line {
    color: var(--portal-text);
    font-size: 0.96rem;
}

.portal-footer-link {
    color: #114792;
    font-size: 0.92rem;
    text-decoration: none;
}

.portal-footer-link:hover {
    color: #0d56b8;
}

.portal-footer-bottom {
    margin-top: 0;
    padding: 0.85rem 0 1rem;
    border-top: 1px solid #dce5f2;
    color: #355072;
    font-size: 0.9rem;
}

body.dark-mode .portal-footer {
    background: linear-gradient(
        180deg,
        rgba(11, 18, 32, 0.98) 0%,
        rgba(15, 23, 39, 0.98) 100%
    );
    border-top-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-footer-card {
    border-right-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .portal-footer-card-h,
body.dark-mode .portal-footer-h {
    color: rgba(241, 245, 249, 0.96);
}

body.dark-mode .portal-footer-card-line,
body.dark-mode .portal-footer-sub,
body.dark-mode .portal-footer-bottom {
    color: rgba(203, 213, 225, 0.8);
}

body.dark-mode .portal-footer-link {
    color: #93c5fd;
}

body.dark-mode .portal-footer-link:hover {
    color: #bfdbfe;
}

.portal-footer--authenticated,
.portal-footer--public {
    margin-left: 250px;
}

body.sidebar-collapse .portal-footer--authenticated,
body.sidebar-collapse .portal-footer--public {
    margin-left: 5.35rem;
}

.portal-footer-grid--compact {
    margin-left: 0;
    margin-right: 0;
}

.portal-footer-grid--compact > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}

.portal-footer-grid--compact .col-md-2:last-child .portal-footer-card {
    border-right: 0;
}

@media (max-width: 991px) {
    .content-wrapper,
    .main-header,
    .main-footer,
    .portal-footer--public,
    .portal-footer--authenticated,
    body.sidebar-collapse .content-wrapper,
    body.sidebar-collapse .main-header,
    body.sidebar-collapse .main-footer,
    body.sidebar-collapse .portal-footer--public,
    body.sidebar-collapse .portal-footer--authenticated {
        margin-left: 0 !important;
    }

    .portal-sidebar,
    body.sidebar-collapse .portal-sidebar {
        width: 250px !important;
        transform: translateX(-250px);
    }

    body.sidebar-open .portal-sidebar {
        transform: translateX(0);
    }

    .portal-sidebar .brand-link,
    body.sidebar-collapse .portal-sidebar .brand-link {
        min-height: 82px;
        padding-left: 1rem;
        padding-right: 1rem;
        justify-content: flex-start;
    }

    .portal-sidebar .sidebar,
    body.sidebar-collapse .portal-sidebar .sidebar {
        padding: 0.8rem 0.7rem 1rem;
    }

    .portal-sidebar .portal-brand-expanded-logo,
    body.sidebar-collapse .portal-sidebar .portal-brand-expanded-logo {
        display: inline-flex;
    }

    .portal-sidebar .portal-brand-collapsed-logo,
    body.sidebar-collapse .portal-sidebar .portal-brand-collapsed-logo {
        display: none;
    }

    .portal-sidebar-label,
    body.sidebar-collapse .portal-sidebar-label {
        display: block;
    }

    .portal-sidebar .nav-sidebar > .nav-item > .nav-link,
    body.sidebar-collapse .portal-sidebar .nav-sidebar > .nav-item > .nav-link {
        min-height: 38px !important;
        justify-content: flex-start;
        padding-left: 0.85rem !important;
        padding-right: 0.85rem !important;
        border-radius: 12px;
    }

    .portal-sidebar .nav-sidebar > .nav-item > .nav-link .nav-icon,
    body.sidebar-collapse
        .portal-sidebar
        .nav-sidebar
        > .nav-item
        > .nav-link
        .nav-icon {
        margin-right: 0.55rem;
        width: 1.4rem;
        font-size: 1rem;
    }

    .portal-dashboard-stat-row,
    .portal-dashboard-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-activity-snapshot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-dashboard-hero,
    .portal-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .portal-topbar {
        min-height: 64px;
        padding: 0.55rem 0.75rem;
    }

    .portal-page-shell {
        padding: 0.35rem 0.35rem 1rem;
    }

    .portal-footer--public,
    .portal-footer--authenticated,
    body.sidebar-collapse .portal-footer--public,
    body.sidebar-collapse .portal-footer--authenticated {
        margin-left: 0;
    }

    .dataTables_wrapper .dataTables_paginate {
        justify-content: flex-end;
    }
}

@media (max-width: 767px) {
    .portal-dashboard-stat-row,
    .portal-dashboard-action-grid,
    .portal-dashboard-glance,
    .portal-activity-snapshot-grid {
        grid-template-columns: 1fr;
    }

    .portal-dashboard-glance__item {
        width: 100%;
    }

    .portal-profile-copy,
    .portal-profile-caret {
        display: none;
    }

    .portal-profile-toggle {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        justify-content: center;
        gap: 0;
        padding: 0.28rem !important;
        border-radius: 14px;
    }

    .portal-topbar .navbar-nav.ml-auto {
        gap: 0.3rem;
        max-width: calc(100vw - 74px);
    }

    .portal-profile-nav {
        flex: 0 0 auto;
        max-width: none;
    }

    .portal-profile-avatar {
        width: 36px;
        height: 36px;
        border-radius: 12px;
        font-size: 0.84rem;
    }

    .portal-dashboard-hero {
        min-height: auto;
        padding: 0.85rem;
        border-radius: 16px;
    }

    .portal-dashboard-hero__body {
        display: block;
    }

    .portal-dashboard-hero__headline {
        gap: 0.45rem;
        align-items: flex-start;
    }

    .portal-dashboard-hero__copy h1 {
        margin-bottom: 0.3rem;
        font-size: 0.96rem;
        line-height: 1.16;
        word-break: break-word;
    }

    .portal-dashboard-hero__subline {
        font-size: 0.78rem;
        line-height: 1.4;
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
    }

    .portal-dashboard-section-subtitle {
        white-space: normal;
    }

    .portal-dashboard-hero__meta {
        width: 100%;
    }

    .portal-dashboard-gst-badge {
        width: 100%;
        max-width: 100%;
        justify-content: flex-start;
        min-width: 0;
        padding: 0.42rem 0.58rem;
        border-radius: 10px;
        font-size: 0.7rem;
        line-height: 1.3;
        white-space: normal;
        word-break: break-word;
    }

    .portal-dashboard-glance--inline {
        grid-template-columns: 1fr;
        width: 100%;
        min-width: 0;
        margin-left: 0;
        gap: 0.42rem;
    }

    .portal-dashboard-stat-card {
        min-height: 0;
        padding: 0.85rem;
        border-radius: 14px;
    }

    .portal-dashboard-stat-card__icon {
        width: 52px;
        height: 52px;
        border-radius: 12px;
        font-size: 1.26rem;
    }

    .portal-dashboard-stat-card__copy strong {
        font-size: 1.55rem;
    }

    .portal-dashboard-stat-card__copy span {
        line-height: 1.4;
        word-break: break-word;
        font-size: 0.82rem;
    }

    .portal-dashboard-action-card {
        min-height: 74px;
        padding: 0.8rem;
    }

    .portal-dashboard-activity-headline,
    .portal-activity-snapshot-hero,
    .portal-activity-snapshot-hero__actions {
        align-items: flex-start;
    }

    .portal-activity-snapshot-hero {
        flex-direction: column;
    }

    .portal-activity-snapshot-hero__actions {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-footer-card {
        border-right: 0;
        border-bottom: 1px solid #dce5f2;
    }

    .portal-dashboard-shell {
        gap: 8px;
    }

    .portal-dashboard-stat-row {
        margin-left: 0;
        margin-right: 0;
    }

    .portal-dashboard-stat-row > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
        margin-bottom: 10px;
    }

    .table-wrap {
        border-radius: 18px;
    }

    table {
        min-width: 720px;
    }

    th,
    td {
        padding: 0.75rem 0.8rem;
    }

    .dataTables_wrapper .row > [class*="col-"] {
        margin-bottom: 0.25rem;
    }

    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dt-buttons,
    .dataTables_wrapper .dataTables_paginate {
        justify-content: flex-start;
    }

    .dataTables_wrapper .dataTables_filter input,
    .dataTables_wrapper .dataTables_length select {
        width: 100%;
        min-width: 0;
    }

    .portal-table-stack table,
    .portal-table-stack thead,
    .portal-table-stack tbody,
    .portal-table-stack tr,
    .portal-table-stack th,
    .portal-table-stack td {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .portal-table-stack thead {
        display: none;
    }

    .portal-table-stack tbody {
        display: grid;
        gap: 14px;
    }

    .portal-table-stack tbody tr {
        padding: 0.95rem;
        border: 1px solid var(--portal-border);
        border-radius: 18px;
        background: rgba(255, 255, 255, 0.9);
        box-shadow: var(--portal-shadow-soft);
    }

    .portal-table-stack tbody tr:nth-child(even),
    .portal-table-stack tbody tr:hover {
        background: rgba(255, 255, 255, 0.9);
    }

    .portal-table-stack td {
        display: grid;
        grid-template-columns: minmax(112px, 38%) minmax(0, 1fr);
        gap: 0.7rem;
        align-items: start;
        padding: 0.55rem 0;
        border-bottom: 1px solid rgba(91, 111, 138, 0.12);
        font-size: 0.9rem;
    }

    .portal-table-stack td:last-child {
        border-bottom: 0;
        padding-bottom: 0;
    }

    .portal-table-stack td::before {
        content: attr(data-label);
        color: var(--portal-muted);
        font-size: 0.72rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .portal-table-stack td > * {
        min-width: 0;
    }

    body.dark-mode .portal-table-stack tbody tr,
    body.dark-mode .portal-table-stack tbody tr:nth-child(even),
    body.dark-mode .portal-table-stack tbody tr:hover {
        background: rgba(11, 18, 32, 0.92);
        border-color: rgba(255, 255, 255, 0.08);
    }

    .portal-documents-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 479.98px) {
    .portal-topbar {
        padding: 0.45rem 0.5rem;
    }

    .portal-topbar .navbar-nav.ml-auto {
        max-width: calc(100vw - 68px);
    }

    .portal-icon-btn {
        width: 36px;
        height: 36px;
    }

    .portal-profile-nav {
        max-width: none;
    }

    .portal-profile-toggle {
        min-height: 40px;
        border-radius: 12px;
    }

    .portal-profile-avatar {
        width: 32px;
        height: 32px;
        border-radius: 10px;
        font-size: 0.76rem;
    }

    .portal-dashboard-hero {
        padding: 0.75rem;
    }

    .portal-dashboard-hero__copy h1 {
        font-size: 0.9rem;
    }

    .portal-dashboard-gst-badge {
        padding: 0.38rem 0.5rem;
        border-radius: 9px;
        font-size: 0.66rem;
    }

    .portal-dashboard-glance__item {
        gap: 0.35rem;
        padding: 0.48rem 0.56rem;
    }

    .portal-dashboard-stat-card {
        padding: 0.78rem;
    }

    .portal-dashboard-stat-card__icon {
        width: 48px;
        height: 48px;
        border-radius: 11px;
        font-size: 1.16rem;
    }

    .portal-dashboard-stat-card__copy strong {
        font-size: 1.42rem;
    }

    .portal-dashboard-stat-card__copy small,
    .portal-dashboard-stat-card__copy span {
        font-size: 0.78rem;
    }

    .portal-table-stack td {
        grid-template-columns: 1fr;
        gap: 0.3rem;
    }

    .portal-documents-filters {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) and (orientation: landscape),
    (max-width: 915px) and (max-height: 430px) {
    .portal-page-shell {
        padding: 0.22rem 0.28rem 0.7rem;
    }

    .portal-topbar {
        min-height: 56px;
        padding: 0.38rem 0.5rem;
    }

    .portal-dashboard-hero {
        padding: 0.72rem;
    }

    .portal-dashboard-kicker {
        margin-bottom: 0.35rem;
        font-size: 0.74rem;
    }

    .portal-dashboard-hero__copy h1 {
        font-size: 0.92rem;
        margin-bottom: 0.2rem;
    }

    .portal-dashboard-hero__subline {
        font-size: 0.74rem;
        line-height: 1.32;
    }

    .portal-dashboard-gst-badge {
        padding: 0.34rem 0.48rem;
        font-size: 0.66rem;
    }

    .portal-dashboard-glance--inline {
        gap: 0.35rem;
    }

    .portal-dashboard-glance__item {
        padding: 0.42rem 0.52rem;
    }

    .portal-dashboard-glance__item span {
        font-size: 0.62rem;
    }

    .portal-dashboard-glance__item strong {
        font-size: 0.74rem;
    }

    .portal-dashboard-stat-row {
        margin-top: 2px;
    }

    .portal-dashboard-stat-row > [class*="col-"] {
        margin-bottom: 8px;
    }

    .portal-dashboard-stat-card {
        min-height: 84px;
        padding: 0.72rem 0.78rem;
        gap: 12px;
    }

    .portal-dashboard-stat-card__icon {
        width: 44px;
        height: 44px;
        font-size: 1rem;
    }

    .portal-dashboard-stat-card__copy strong {
        font-size: 1.28rem;
    }

    .portal-dashboard-stat-card__copy small,
    .portal-dashboard-stat-card__copy span {
        font-size: 0.74rem;
        line-height: 1.3;
    }
}

/* Documents page */
.portal-documents-page {
    display: grid;
    gap: 16px;
}

.portal-documents-hero,
.portal-documents-feature {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(203, 214, 230, 0.78);
    border-radius: 24px;
    background:
        radial-gradient(
            circle at top right,
            rgba(79, 142, 255, 0.16),
            transparent 30%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(19, 184, 166, 0.14),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.97) 0%,
            rgba(246, 250, 255, 0.98) 100%
        );
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.portal-documents-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.95fr);
    gap: 18px;
    padding: clamp(18px, 2vw, 28px);
}

.portal-documents-hero__copy {
    display: grid;
    align-content: start;
    gap: 12px;
}

.portal-documents-kicker,
.portal-documents-feature__eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    background: rgba(17, 76, 166, 0.08);
    color: #1757b5;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-documents-hero__copy h1,
.portal-documents-feature__main h2 {
    margin: 0;
    color: #10213c;
    line-height: 1.02;
}

.portal-documents-hero__copy h1 {
    max-width: 11ch;
    font-size: clamp(2rem, 3.5vw, 3rem);
}

.portal-documents-hero__copy p,
.portal-documents-feature__main p,
.portal-documents-toolbar__copy p,
.portal-documents-empty p,
.portal-documents-no-results p,
.portal-document-card__body p {
    margin: 0;
    color: #5f718e;
    font-size: 0.96rem;
    line-height: 1.7;
}

.portal-documents-stats {
    display: grid;
    gap: 12px;
}

.portal-documents-stat-card {
    position: relative;
    padding: 1rem 1.05rem;
    border-radius: 20px;
    color: #ffffff;
    overflow: hidden;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}

.portal-documents-stat-card::after {
    content: "";
    position: absolute;
    inset: auto -30px -34px auto;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
}

.portal-documents-stat-card.is-total {
    background: linear-gradient(135deg, #1d5fcb 0%, #3b82f6 100%);
}

.portal-documents-stat-card.is-ready {
    background: linear-gradient(135deg, #0e9374 0%, #23c295 100%);
}

.portal-documents-stat-card.is-muted {
    background: linear-gradient(135deg, #55657f 0%, #74859d 100%);
}

.portal-documents-stat-card span,
.portal-documents-stat-card strong,
.portal-documents-stat-card small {
    position: relative;
    z-index: 1;
    display: block;
}

.portal-documents-stat-card span {
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.9;
}

.portal-documents-stat-card strong {
    margin: 0.42rem 0 0.1rem;
    font-family: "Inter", "Segoe UI", sans-serif;
    font-size: 2rem;
    line-height: 1;
}

.portal-documents-stat-card small {
    font-size: 0.82rem;
    font-weight: 700;
    opacity: 0.95;
}

.portal-documents-feature {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(250px, 0.7fr);
    gap: 20px;
    align-items: center;
    padding: clamp(18px, 2vw, 24px);
}

.portal-documents-feature__main {
    display: grid;
    gap: 12px;
}

.portal-documents-feature__main h2 {
    font-size: clamp(1.55rem, 2.1vw, 2.2rem);
}

.portal-documents-feature__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.portal-documents-feature__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.7rem 0.9rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(203, 214, 230, 0.88);
    color: #20314e;
    font-size: 0.84rem;
    font-weight: 700;
}

.portal-documents-feature__meta i {
    color: #1f67d4;
}

.portal-documents-feature__action {
    display: flex;
    justify-content: flex-end;
}

.portal-documents-open-btn,
.portal-document-card__button {
    border: 0;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 50px;
    padding: 0.9rem 1.15rem;
    font-weight: 800;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease;
}

.portal-documents-open-btn {
    width: 100%;
    background: linear-gradient(135deg, #1f67d4 0%, #2b77eb 100%);
    color: #ffffff !important;
    box-shadow: 0 14px 28px rgba(31, 103, 212, 0.22);
}

.portal-documents-open-btn:hover,
.portal-document-card__button:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
}

.portal-documents-open-btn.is-disabled,
.portal-document-card__button.is-disabled {
    background: #e7edf5;
    color: #789 !important;
    box-shadow: none;
    cursor: not-allowed;
}

.portal-documents-library.section-card {
    position: relative;
    overflow: hidden;
    padding: 1.2rem;
    border-radius: 30px;
    border: 1px solid rgba(187, 205, 228, 0.74);
    background:
        radial-gradient(
            circle at top right,
            rgba(22, 119, 242, 0.1),
            transparent 24%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(19, 184, 166, 0.08),
            transparent 22%
        ),
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(247, 250, 255, 0.98) 100%
        );
    box-shadow: 0 30px 60px rgba(15, 23, 42, 0.1);
}

.portal-documents-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.4rem;
    margin-bottom: 1.2rem;
}

.portal-documents-toolbar__copy {
    display: grid;
    gap: 0.7rem;
    max-width: 720px;
}

.portal-documents-toolbar__eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.42rem 0.78rem;
    border-radius: 999px;
    background: rgba(22, 119, 242, 0.08);
    border: 1px solid rgba(22, 119, 242, 0.12);
    color: #165ec8;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portal-documents-toolbar__copy h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2vw, 2rem);
    line-height: 1.08;
}

.portal-documents-toolbar__controls {
    display: grid;
    gap: 12px;
    justify-items: end;
    flex: 0 0 auto;
}

.portal-documents-search {
    width: min(100%, 420px);
    min-width: min(320px, 100%);
    margin: 0;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(184, 201, 223, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        0 10px 24px rgba(15, 23, 42, 0.05);
}

.portal-documents-search i {
    color: #56739a;
}

.portal-documents-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #20314e;
    font-size: 0.95rem;
    font-weight: 700;
}

.portal-documents-search input::placeholder {
    color: #90a0b8;
    font-weight: 600;
}

.portal-documents-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.portal-documents-filter {
    border: 1px solid #d7e3f2;
    border-radius: 999px;
    padding: 0.66rem 1rem;
    background: rgba(255, 255, 255, 0.9);
    color: #365071;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
    transition:
        background-color 0.18s ease,
        color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.portal-documents-filter span {
    margin-left: 8px;
    color: #8092ac;
}

.portal-documents-filter.is-active {
    background: linear-gradient(135deg, #1f67d4 0%, #2b77eb 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(31, 103, 212, 0.18);
    transform: translateY(-1px);
}

.portal-documents-filter.is-active span {
    color: rgba(255, 255, 255, 0.82);
}

.portal-documents-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.portal-document-card {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 14px;
    min-height: 188px;
    padding: 1rem;
    border: 1px solid rgba(196, 212, 232, 0.95);
    border-radius: 24px;
    background:
        radial-gradient(
            circle at top right,
            rgba(68, 132, 255, 0.16),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.99) 0%,
            rgba(245, 249, 255, 0.98) 100%
        );
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.08);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.portal-document-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #2f7ae5 0%, #59c3ff 50%, #79dfc6 100%);
    z-index: 0;
}

.portal-document-card::after {
    content: "";
    position: absolute;
    right: -36px;
    bottom: -48px;
    width: 124px;
    height: 124px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(48, 122, 229, 0.11) 0%,
        rgba(48, 122, 229, 0) 72%
    );
    z-index: 0;
}

.portal-document-card:hover {
    transform: translateY(-5px);
    border-color: #afcbed;
    box-shadow: 0 28px 46px rgba(15, 23, 42, 0.12);
}

.portal-document-card.is-unavailable {
    background:
        radial-gradient(
            circle at top right,
            rgba(130, 144, 166, 0.12),
            transparent 34%
        ),
        linear-gradient(145deg, #ffffff 0%, #f5f8fc 100%);
}

.portal-document-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    position: relative;
    z-index: 1;
}

.portal-document-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #eef5ff 0%, #dbe9ff 100%);
    color: #246bd8;
    font-size: 1.2rem;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.82),
        0 12px 24px rgba(36, 107, 216, 0.12);
}

.portal-document-card.is-unavailable .portal-document-card__icon {
    background: linear-gradient(135deg, #eef2f7 0%, #e6ebf2 100%);
    color: #72839e;
}

.portal-document-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.72rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.portal-document-card__badge.is-available {
    background: linear-gradient(
        135deg,
        rgba(26, 180, 141, 0.14) 0%,
        rgba(93, 220, 193, 0.18) 100%
    );
    color: #12856c;
}

.portal-document-card__badge.is-unavailable {
    background: rgba(116, 133, 157, 0.14);
    color: #6d7d96;
}

.portal-document-card__body {
    display: grid;
    align-content: start;
    gap: 0.7rem;
    min-height: 72px;
    position: relative;
    z-index: 1;
}

.portal-document-card__body h3 {
    margin: 0;
    color: #162845;
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.38;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-document-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.portal-document-card__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.32rem 0.62rem;
    border-radius: 999px;
    background: rgba(233, 240, 251, 0.95);
    border: 1px solid rgba(203, 216, 235, 0.95);
    color: #4b6486;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.portal-document-card.is-unavailable .portal-document-card__meta span {
    background: rgba(238, 242, 247, 0.98);
    color: #6f819a;
}

.portal-document-card__footer {
    margin-top: auto;
    position: relative;
    z-index: 1;
}

.portal-document-card__footer form,
.portal-document-card__footer .portal-document-card__button {
    width: 100%;
}

.portal-document-card__button {
    width: 100%;
    min-height: 46px;
    border-radius: 16px;
    background: linear-gradient(135deg, #17345a 0%, #245a96 100%);
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(24, 54, 94, 0.16);
    font-size: 0.92rem;
    letter-spacing: -0.01em;
}

.portal-document-card__button i {
    width: 18px;
    text-align: center;
}

.portal-documents-empty,
.portal-documents-no-results {
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 10px;
    padding: 2.2rem 1rem;
    border: 1px dashed #d9e4f2;
    border-radius: 22px;
    background: linear-gradient(180deg, #fbfdff 0%, #f5f9ff 100%);
}

.portal-documents-empty h3,
.portal-documents-no-results h3 {
    margin: 0;
    font-size: 1.28rem;
}

.portal-documents-empty__icon,
.portal-documents-no-results__icon {
    width: 74px;
    height: 74px;
    border-radius: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #edf4ff 0%, #dceaff 100%);
    color: #1f67d4;
    font-size: 1.55rem;
}

@media (max-width: 1199px) {
    .portal-documents-hero,
    .portal-documents-feature {
        grid-template-columns: 1fr;
    }

    .portal-documents-feature__action {
        justify-content: flex-start;
    }

    .portal-documents-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .portal-home-services-card,
    .portal-quick-card {
        border-radius: 22px;
    }

    .portal-home-services-card .card-header,
    .portal-home-services-card .card-body {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .portal-home-services__headline .card-title {
        font-size: 1.28rem;
    }

    .portal-home-services__summary {
        width: 100%;
        padding: 0.9rem 1rem;
    }

    .portal-quick-card {
        gap: 12px;
        padding: 0.92rem;
    }

    .portal-quick-card__top {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-quick-row {
        margin-left: -6px;
        margin-right: -6px;
    }

    .portal-quick-row__col {
        padding-left: 6px;
        padding-right: 6px;
        margin-bottom: 12px;
    }

    .portal-quick-media__frame {
        width: 76px;
        height: 76px;
        border-radius: 20px;
    }

    .portal-quick-card--compact {
        min-height: 132px;
        grid-template-columns: 72px minmax(0, 1fr);
        column-gap: 10px;
        row-gap: 10px;
        padding: 0.72rem;
    }

    .portal-documents-hero,
    .portal-documents-feature,
    .portal-documents-library.section-card {
        padding: 1rem;
        border-radius: 20px;
    }

    .portal-documents-hero__copy h1 {
        max-width: none;
        font-size: 1.8rem;
    }

    .portal-documents-toolbar,
    .portal-documents-toolbar__controls {
        display: grid;
        align-items: stretch;
    }

    .portal-documents-toolbar__controls {
        justify-items: stretch;
    }

    .portal-documents-search {
        width: 100%;
        min-width: 0;
    }

    .portal-documents-filters {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portal-documents-filter {
        justify-content: center;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .portal-documents-grid {
        grid-template-columns: 1fr;
    }

    .portal-document-card__meta {
        display: grid;
        grid-template-columns: 1fr;
    }

    .portal-documents-library.section-card {
        padding: 0.95rem;
        border-radius: 24px;
    }

    .portal-document-card {
        min-height: 176px;
        padding: 0.9rem;
    }

    .portal-document-card__top {
        align-items: flex-start;
    }

    .portal-document-card__badge {
        white-space: normal;
        text-align: center;
    }
}

/* Global mobile refinements for the active portal theme */
@media (max-width: 991px) {
    .portal-page-shell {
        padding: 0.4rem 0.4rem 1rem;
    }

    .section-card {
        padding: 1rem;
        border-radius: 20px;
    }

    .portal-search-toolbar,
    .portal-empty-search-form {
        display: grid;
        gap: 0.9rem;
    }

    .portal-search-toolbar .portal-inline-filter-field,
    .portal-search-toolbar__field--sm,
    .portal-search-toolbar__field--md,
    .portal-search-toolbar__field--lg,
    .portal-empty-search-form .portal-inline-filter-field {
        width: 100%;
        min-width: 0;
        flex: 1 1 100%;
    }

    .portal-search-toolbar__actions,
    .portal-empty-search-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-track-content-grid,
    .portal-activity-snapshot-grid {
        grid-template-columns: 1fr;
    }

    .portal-documents-toolbar {
        align-items: stretch;
    }

    .portal-documents-toolbar__controls {
        width: 100%;
        justify-items: stretch;
    }
}

@media (max-width: 767px) {
    .portal-page-shell {
        padding: 0.28rem 0.28rem 0.85rem;
    }

    .section-card {
        padding: 0.9rem;
        border-radius: 18px;
    }

    .field input,
    .field select,
    .field textarea,
    .field input[type="file"] {
        min-height: 48px;
        padding: 0.78rem 0.88rem;
        font-size: 0.94rem;
    }

    .portal-inline-filter-field {
        display: grid;
        align-items: stretch;
        gap: 0.42rem;
    }

    .portal-inline-filter-field label {
        min-width: 0;
        font-size: 0.82rem;
    }

    .portal-search-toolbar__actions,
    .portal-empty-search-actions,
    .actions {
        gap: 0.6rem;
    }

    .portal-search-toolbar__actions .btn,
    .portal-empty-search-actions .btn {
        width: 100%;
    }

    .portal-inline-tabs {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        border-radius: 20px;
        padding: 0.4rem;
    }

    .portal-inline-tabs__tab {
        width: 100%;
        justify-content: center;
    }

    .portal-dashboard-section-head {
        display: grid;
        gap: 0.75rem;
    }

    .portal-dashboard-section-head h3 {
        font-size: 1.3rem;
    }

    .portal-dashboard-action-card__copy,
    .portal-dashboard-stat-card__copy {
        min-width: 0;
    }

    .portal-dashboard-activity-filters {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-dashboard-activity-table,
    .portal-dashboard-activity-table thead,
    .portal-dashboard-activity-table tbody,
    .portal-dashboard-activity-table tr,
    .portal-dashboard-activity-table th,
    .portal-dashboard-activity-table td {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .portal-dashboard-activity-table {
        min-width: 0;
    }

    .portal-dashboard-activity-table thead {
        display: none;
    }

    .portal-dashboard-activity-table tbody {
        display: grid;
        gap: 12px;
    }

    .portal-dashboard-activity-table tbody tr {
        padding: 0.88rem;
        border: 1px solid #dfe7f3;
        border-radius: 16px;
        background: linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.98) 0%,
            rgba(247, 250, 255, 0.98) 100%
        );
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    }

    .portal-dashboard-activity-table tbody td {
        display: grid;
        grid-template-columns: minmax(110px, 38%) minmax(0, 1fr);
        gap: 0.7rem;
        padding: 0.5rem 0;
        border-bottom: 1px solid #e7edf6;
        font-size: 0.84rem;
        line-height: 1.45;
    }

    .portal-dashboard-activity-table tbody td:last-child {
        border-bottom: 0;
        padding-bottom: 0;
    }

    .portal-dashboard-activity-table tbody td::before {
        content: attr(data-label);
        color: #64748b;
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .portal-dashboard-table-action {
        width: 100%;
    }

    .portal-track-search-card__intro,
    .portal-track-panel-head {
        display: grid;
        gap: 0.75rem;
        align-items: stretch;
    }

    .portal-track-search-hints {
        width: 100%;
    }

    .portal-track-search-hints span {
        width: 100%;
        justify-content: center;
    }

    .portal-track-form-grid,
    .portal-track-inline-field {
        display: grid;
        gap: 0.6rem;
    }

    .portal-track-actions .btn {
        width: 100%;
    }

    .portal-track-detail-item {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 0.8rem;
        padding: 0.9rem;
        border-radius: 16px;
    }

    .portal-track-detail-item strong,
    .portal-track-detail-item small {
        word-break: break-word;
    }

    .portal-track-map-frame iframe,
    .portal-track-map-empty {
        min-height: 260px;
    }

    .portal-track-live-pill {
        width: 100%;
        justify-content: center;
    }

    .portal-activity-snapshot-hero,
    .portal-activity-snapshot-card {
        padding: 0.95rem;
        border-radius: 18px;
    }

    .portal-activity-snapshot-item,
    .portal-activity-snapshot-note {
        padding: 0.9rem;
        border-radius: 16px;
    }

    .portal-documents-library.section-card {
        padding: 0.9rem;
        border-radius: 22px;
    }

    .portal-documents-toolbar {
        gap: 1rem;
        margin-bottom: 1rem;
    }

    .portal-documents-toolbar__copy {
        gap: 0.55rem;
        max-width: none;
    }

    .portal-documents-search {
        padding: 0.8rem 0.88rem;
        border-radius: 16px;
    }

    .portal-documents-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .portal-documents-filter {
        min-height: 44px;
        padding: 0.68rem 0.75rem;
    }

    body.dark-mode .portal-dashboard-activity-table tbody tr {
        border-color: rgba(255, 255, 255, 0.08);
        background: linear-gradient(
            180deg,
            rgba(11, 18, 32, 0.94) 0%,
            rgba(15, 23, 39, 0.96) 100%
        );
        box-shadow: 0 12px 24px rgba(2, 6, 23, 0.22);
    }

    body.dark-mode .portal-dashboard-activity-table tbody td {
        border-bottom-color: rgba(255, 255, 255, 0.08);
        color: rgba(226, 232, 240, 0.92);
    }

    body.dark-mode .portal-dashboard-activity-table tbody td::before {
        color: rgba(148, 163, 184, 0.9);
    }
}

@media (max-width: 479.98px) {
    .section-card {
        padding: 0.82rem;
        border-radius: 16px;
    }

    .portal-dashboard-hero__headline {
        display: grid;
    }

    .portal-dashboard-activity-table tbody td,
    .portal-table-stack td {
        grid-template-columns: 1fr;
        gap: 0.3rem;
    }

    .portal-track-detail-item {
        grid-template-columns: 1fr;
    }

    .portal-track-detail-item__icon {
        margin-bottom: 0.25rem;
    }

    .portal-documents-toolbar__copy h2 {
        font-size: 1.28rem;
    }

    .portal-documents-filters {
        grid-template-columns: 1fr;
    }
}

/* Phone-first dashboard correction pass */
@media (max-width: 767px) {
    .portal-topbar {
        min-height: 54px;
        padding: 0.38rem 0.45rem;
    }

    .portal-topbar .nav-link {
        padding-left: 0.45rem;
        padding-right: 0.45rem;
    }

    .portal-topbar .navbar-nav.ml-auto {
        gap: 0.4rem;
        max-width: none;
    }

    .portal-profile-toggle {
        width: auto;
        min-width: 42px;
        max-width: 42px;
        min-height: 42px;
        padding: 0.18rem !important;
        border-radius: 12px;
    }

    .portal-profile-avatar {
        width: 34px;
        height: 34px;
        border-radius: 10px;
        font-size: 0.74rem;
    }

    .portal-dashboard-shell {
        gap: 10px;
    }

    .portal-dashboard-hero {
        padding: 0.8rem 0.8rem 0.72rem;
        border-radius: 18px;
        background:
            linear-gradient(
                180deg,
                rgba(18, 52, 122, 0.94) 0%,
                rgba(31, 78, 170, 0.9) 58%,
                rgba(30, 73, 154, 0.84) 100%
            ),
            url("/images/portal-login-hero.png") center right / cover no-repeat;
    }

    .portal-dashboard-kicker {
        margin-bottom: 0.18rem;
        font-size: 0.72rem;
        font-weight: 800;
    }

    .portal-dashboard-hero__headline {
        display: grid;
        gap: 0.38rem;
        margin-bottom: 0.18rem;
    }

    .portal-dashboard-hero__copy h1 {
        margin-bottom: 0;
        font-size: 1.05rem;
        line-height: 1.18;
    }

    .portal-dashboard-hero__subline {
        margin-top: 0.1rem;
        font-size: 0.76rem;
        line-height: 1.38;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .portal-dashboard-hero__meta {
        gap: 0.42rem;
        margin-top: 0.45rem;
    }

    .portal-dashboard-gst-badge {
        min-height: 34px;
        padding: 0.36rem 0.54rem;
        border-radius: 10px;
        font-size: 0.66rem;
    }

    .portal-dashboard-glance--inline {
        gap: 0.36rem;
    }

    .portal-dashboard-glance__item {
        padding: 0.36rem 0.52rem;
        border-radius: 12px;
    }

    .portal-dashboard-glance__item span {
        font-size: 0.62rem;
    }

    .portal-dashboard-glance__item strong {
        font-size: 0.74rem;
    }

    .portal-dashboard-stat-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin: 0;
    }

    .portal-dashboard-stat-row > [class*="col-"] {
        max-width: none;
        flex: 0 0 auto;
        width: auto;
        margin: 0;
        padding: 0;
    }

    .portal-dashboard-stat-card {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        align-items: center;
        gap: 0.72rem;
        min-height: 0;
        padding: 0.82rem 0.78rem;
        border-radius: 16px;
    }

    .portal-dashboard-stat-card__icon {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        font-size: 1rem;
    }

    .portal-dashboard-stat-card__copy {
        gap: 0.12rem;
    }

    .portal-dashboard-stat-card__copy small {
        font-size: 0.72rem;
        line-height: 1.15;
    }

    .portal-dashboard-stat-card__copy strong {
        font-size: 1.15rem;
        line-height: 1;
    }

    .portal-dashboard-stat-card__copy span {
        font-size: 0.68rem;
        line-height: 1.22;
    }

    .portal-dashboard-actions,
    .portal-dashboard-activity-card {
        padding: 0.9rem;
        border-radius: 16px;
    }

    .portal-dashboard-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .portal-dashboard-action-card {
        display: grid;
        justify-items: start;
        align-content: start;
        gap: 0.58rem;
        min-height: 0;
        padding: 0.82rem 0.78rem;
        border-radius: 14px;
    }

    .portal-dashboard-action-card__icon {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        font-size: 0.98rem;
    }

    .portal-dashboard-action-card__copy strong {
        font-size: 0.88rem;
        line-height: 1.2;
    }

    .portal-dashboard-action-card__copy small {
        font-size: 0.72rem;
        line-height: 1.28;
    }
}

@media (max-width: 389.98px) {
    .portal-dashboard-stat-row,
    .portal-dashboard-action-grid {
        grid-template-columns: 1fr;
    }

    .portal-dashboard-hero {
        padding: 0.75rem 0.72rem 0.68rem;
    }

    .portal-dashboard-hero__copy h1 {
        font-size: 0.98rem;
    }
}
