/* /Components/Layout/AuthenticatedLayout.razor.rz.scp.css */
.page[b-66t3jbdclp] {
    height: 100%;
    font-family: var(--bs-font-sans-serif);
}

[b-66t3jbdclp] .navigation-drawer.mud-drawer {
    background-color: var(--bs-primary);
    background-image: none;
    color: var(--bs-white);
}

[b-66t3jbdclp] .navigation-drawer .navigation-drawer-header {
    width: 100%;
    display: flex;
    justify-content: space-between;
    /* 2rem top+bottom left ~48px of dead space below the small logo (very noticeable as a
       tall overlay on thin screens). 1rem keeps modest breathing room without the big gap. */
    padding: 1rem 1rem;
    border-bottom: none;
}

/* The logo has no intrinsic size limit, so the image renders at its natural (large) size.
   Cap the width and let the height scale to keep the EnterBridge wordmark compact — closer
   to TWC's header logo. Adjust the max-width to taste. */
[b-66t3jbdclp] .navigation-drawer .navigation-drawer-header .logo {
    max-width: 150px;
    height: auto;
}

[b-66t3jbdclp] .navigation-drawer-body {
    padding: 1rem 0;
}

[b-66t3jbdclp] .navigation-drawer-footer {
    padding: 1rem 1.5rem 1.5rem;
    display: flex;
    justify-content: center;
    border-top: none;
    color: var(--bs-white);
}

[b-66t3jbdclp] .navigation-appbar,
[b-66t3jbdclp] .navigation-appbar .user-info,
[b-66t3jbdclp] .navigation-appbar .mud-button-label,
[b-66t3jbdclp] .navigation-appbar .mud-button-root {
    color: var(--bs-white);
}

[b-66t3jbdclp] .navigation-appbar {
    background-color: var(--bs-primary);
    background-image: none;
    top: var(--env-banner-height, 0);
}

/* Below its 600px breakpoint MudBlazor shrinks the toolbar to 7/8 height (64px → 56px),
   but the drawer and main content are positioned from the fixed --mud-appbar-height (64px),
   so the bar shrank out from under them and left an ~8px gap on narrow screens. Pin the
   toolbar to the full height at every width so the bar stays a constant size and flush. */
[b-66t3jbdclp] .navigation-appbar .mud-toolbar-appbar {
    height: var(--mud-appbar-height);
    min-height: var(--mud-appbar-height);
}

[b-66t3jbdclp] .mud-drawer.navigation-drawer {
    top: calc(var(--env-banner-height, 0px) + var(--mud-appbar-height));
    height: calc(100vh - var(--env-banner-height, 0px) - var(--mud-appbar-height));
}

[b-66t3jbdclp] .mud-main-content {
    padding-top: calc(var(--mud-appbar-height) + var(--env-banner-height, 0px));
}

.auth-controls.display-desktop[b-66t3jbdclp] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* On tablet/phone widths (≤1024px) hide the header auth controls; the same actions
   (user name + log out) are surfaced inside the drawer's mobile menu instead. */
@media (max-width: 1024px) {
    .auth-controls.display-desktop[b-66t3jbdclp] {
        display: none;
    }
}

.user-info[b-66t3jbdclp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    color: var(--bs-white);
}

.sidebar-footer[b-66t3jbdclp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    gap: 1rem;
    border-top: var(--bs-border-width) solid rgba(255,255,255,0.1);
}

.copyright-info[b-66t3jbdclp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.4;
}

.sidebar-footer-text[b-66t3jbdclp] { margin: 0.1rem 0; }
.sidebar-footer-text.version-info[b-66t3jbdclp] { transition: opacity 0.2s ease; }
.sidebar-footer-text.version-info:hover[b-66t3jbdclp] { opacity: 0.7; }
/* /Components/Layout/Drawer.razor.rz.scp.css */
[b-lwizixhn2r] .navigation-drawer {
    height: calc(100vh - var(--env-banner-height, 0px));
    max-height: 100%;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
#sidebar[b-zswk0q6kaa] {
    min-width: 15rem;
    max-width: 15rem;
    transition: transform 0.1s ease-out;
    height: 100%;
    max-height: 100%;
    display: block;
    background: inherit;
}

.logo[b-zswk0q6kaa] {
    text-align: center;
}

[b-zswk0q6kaa] .menu.display-mobile {
    margin-bottom: 2rem;
}

[b-zswk0q6kaa] .menu.display-iam {
    margin-bottom: 2rem;
}

[b-zswk0q6kaa] .menu {
    background-color: inherit;
}

[b-zswk0q6kaa] .menu {
    gap: 0.5rem;
}

[b-zswk0q6kaa] .menu-item {
    color: var(--bs-white);
    display: flex;
    align-items: center;
    /* A <button>.menu-item (the logout row) defaults to justify-content: center, which
       centers its icon+text; divs/links default to flex-start. Force flex-start so every
       row's icon lines up on the same left edge regardless of element type. */
    justify-content: flex-start;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    text-decoration: none;
    border-radius: 0.25rem;
}

[b-zswk0q6kaa] .menu-item:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--bs-white);
}

[b-zswk0q6kaa] .menu-item.active {
    background-color: rgba(255, 255, 255, 0.15);
}

[b-zswk0q6kaa] .menu-item .mud-icon-root {
    color: var(--bs-white);
}

/* user-display and the logout button both carry the .menu-item class, so they inherit its
   padding (1rem) and gap (0.75rem) and line up with the nav links — every sidebar row shares
   one icon column and one text column (matches TWC). These rules only add what differs. */
.user-display[b-zswk0q6kaa] {
    cursor: default; /* a label, not a link */
}

.user-display:hover[b-zswk0q6kaa] {
    background-color: transparent; /* no hover affordance on the non-clickable label */
}

/* On tablet/phone widths (≤1024px) the drawer is an overlay, so drop the fixed 15rem
   sidebar sizing and let it fill the drawer naturally. 1024px keeps iPads in this mode. */
@media (max-width: 1024px) {
    #sidebar[b-zswk0q6kaa] {
        min-width: inherit;    /* Release the desktop 15rem min so the drawer controls width. */
        max-width: inherit;    /* Release the desktop 15rem max likewise. */
        display: block;
    }

    .logo[b-zswk0q6kaa] {
        text-align: inherit;   /* Drop the centered desktop alignment in the narrow drawer. */
    }
}
/* /Components/Layout/UnauthenticatedLayout.razor.rz.scp.css */
.page[b-njgkfb2cva] {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Brand lockup centered above the page body (the login/account form). The
   top padding gives the mark breathing room from the viewport edge. */
.logo-container[b-njgkfb2cva] {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 4.5rem 1rem 0.5rem;
}

.logo-container .logo[b-njgkfb2cva] {
    max-width: 350px;
    height: auto;
}

.main-content[b-njgkfb2cva] {
    flex: 1;
    padding: 1rem;
}

/* Override site.css's global .main-content vertical centering so the form
   stacks directly below the brand lockup. ::deep compiles to a descendant
   selector rooted at this layout's scope, which reaches both the layout's
   own <main> (the scope attribute sits on .page) and the account pages'
   inner .main-content wrappers rendered via @Body. */
[b-njgkfb2cva] .main-content {
    align-items: flex-start;
    height: auto;
}

.footer[b-njgkfb2cva] {
    width: 100%;
    background-color: #f8f9fa;
    border-top: 1px solid #dee2e6;
    padding: 1rem;
    margin-top: auto;
}

.footer-content[b-njgkfb2cva] {
    text-align: center;
    color: #6c757d;
    font-size: 0.875rem;
}

/* The lockup shrinks earlier than the 480px auth adaptations below — 576px
   matches the sibling apps, so a narrow window never shows the full-size
   mark towering over the form. */
@media (max-width: 576px) {
    .logo-container .logo[b-njgkfb2cva] {
        max-width: 150px;
    }
}

/* Mobile adaptations for auth pages */
@media (max-width: 480px) {
    .page[b-njgkfb2cva] {
        min-height: -webkit-fill-available; /* iOS Safari 100vh fix */
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }

    .main-content[b-njgkfb2cva] {
        padding: 0.75rem 1rem;
    }

    .footer[b-njgkfb2cva] {
        padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    }
}

/* Hide footer on very short/landscape screens */
@media (max-width: 480px) and (max-height: 700px) {
    .footer[b-njgkfb2cva] {
        display: none;
    }
}
/* /Components/Pages/Index.razor.rz.scp.css */
[b-x322wzfnr4] .welcome-gridlayout {
    margin: auto;
    width: auto;
    height: auto;
}

[b-x322wzfnr4] .welcome-gridlayout {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3rem;
}

[b-x322wzfnr4] .title {
    text-align: center;
}

[b-x322wzfnr4] .title-header-text {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

[b-x322wzfnr4] .title-content-text {
    font-size: 1.25rem;
    color: var(--bs-gray-600);
    margin-bottom: 2rem;
}

[b-x322wzfnr4] .welcome-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
}

/* Responsive adjustments
   Cards keep their default width down to phone size; the old intermediate 992px
   step (width: 18rem) was dropped so tablets show full-size cards like desktop. */
@media (max-width: 768px) {
    [b-x322wzfnr4] .welcome-card {
        width: 100%;          /* Stretch to the row on phones... */
        max-width: 25rem;     /* ...but cap so a single card doesn't get oversized. */
    }
}

.checklist-section[b-x322wzfnr4] {
    margin-bottom: 2rem;
    padding: 1rem;
    background-color: #f8f9fa;
    border-radius: 4px;
}

.checklist-section h3[b-x322wzfnr4] {
    margin-bottom: 1rem;
    color: #495057;
}

.checklist[b-x322wzfnr4] {
    list-style-type: none;
    padding-left: 0;
    margin: 0;
}

.checklist li[b-x322wzfnr4] {
    padding: 0.5rem 0;
    color: #212529;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.checklist li input[type="checkbox"][b-x322wzfnr4] {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0;
    cursor: not-allowed;
}

.checklist li span[b-x322wzfnr4] {
    flex: 1;
}

.checklist li.completed[b-x322wzfnr4] {
    color: #6c757d;
}

.checklist li.completed span[b-x322wzfnr4] {
    text-decoration: line-through;
}
/* /Components/Shared/NavigationCard.razor.rz.scp.css */
.welcome-card[b-2495iz0qga] {
    width: 20rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1),
        0px 2px 4px -2px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    border-radius: 1rem;
    color: var(--bs-link-color);
    padding: 2rem;
    text-decoration: none;
    position: relative;
    background-color: var(--bs-white);
}

.welcome-card:hover[b-2495iz0qga] {
    box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.1),
        0px 8px 10px -6px rgba(0, 0, 0, 0.1);
    transform: translateY(-5px);
}

.welcome-card-disabled[b-2495iz0qga] {
    opacity: 0.55;
    cursor: default;
}

/* Suppress the lift so a placeholder card doesn't read as clickable. */
.welcome-card-disabled:hover[b-2495iz0qga] {
    box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1),
        0px 2px 4px -2px rgba(0, 0, 0, 0.1);
    transform: none;
}

.welcome-card .welcome-card-disabled-note[b-2495iz0qga] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bs-gray-600);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.welcome-card .welcome-card-icon[b-2495iz0qga] {
    width: 4rem;
    height: 4rem;
    margin-top: 0.75rem;
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.welcome-card .welcome-card-icon[b-2495iz0qga]  .mud-icon-root {
    width: 100%;
    height: 100%;
    font-size: 3rem;
}

.welcome-card-content[b-2495iz0qga] {
    text-align: center;
    z-index: 1;
}

.welcome-card .welcome-card-title[b-2495iz0qga] {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--bs-body-color);
}

.welcome-card .welcome-card-description[b-2495iz0qga] {
    font-size: 1rem;
    color: var(--bs-gray-600);
    margin-bottom: 0.5rem;
}

.welcome-card .welcome-card-back[b-2495iz0qga] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--bs-body-bg);
    opacity: 0.05;
    border-radius: 1rem;
    z-index: 0;
}

.welcome-card-link[b-2495iz0qga] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-decoration: none;
    color: inherit;
    position: relative;
    z-index: 1;
}

.welcome-card-action[b-2495iz0qga] {
    display: block;
    margin: 0.75rem;
    padding: 0.5rem 1rem;
    background: #05303c;
    color: #fff;
    text-align: center;
    border-radius: 0.5rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, box-shadow 0.2s;
    box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.04);
    border: none;
    cursor: pointer;
    font-size: 1rem;
    position: relative;
    z-index: 2;
}

.welcome-card-action:hover[b-2495iz0qga] {
    background: #06405a;
    color: #fff;
    text-decoration: none;
}

/* Cards keep their default width down to phone size; the old intermediate 992px
   step (width: 18rem) was dropped so tablets show full-size cards like desktop. */
@media (max-width: 768px) {
    .welcome-card[b-2495iz0qga] {
        width: 100%;          /* Stretch to the row on phones... */
        max-width: 25rem;     /* ...but cap so a single card doesn't get oversized. */
    }
}
