/* /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(--mud-palette-drawer-background);
    background-image: none;
    color: var(--mud-palette-drawer-text);
    border-right: 1px solid var(--mud-palette-divider);
    /* The border above is what makes this necessary. The drawer is border-box at its themed
       width, so the border takes its content box under that width — at most zoom levels to a
       fraction of a pixel — while MudBlazor sizes the nav and every menu item to the full
       width. The sub-pixel remainder is enough for a horizontal scrollbar across the bottom of
       the drawer, and a vertical nav has nothing to scroll sideways to. Nothing is clipped:
       the overflow is smaller than a device pixel. */
    overflow-x: hidden;
}

[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;
}

[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;
    /* The drawer's own text color, dimmed — NOT --mud-palette-text-secondary, which is a
       light-surface token and renders near-black on a dark drawer. Opacity keeps the
       de-emphasis without pinning a color, so it survives a fork inverting the drawer. */
    color: var(--mud-palette-drawer-text);
    opacity: 0.7;
}

[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(--mud-palette-appbar-text);
}

[b-66t3jbdclp] .navigation-appbar {
    background-color: var(--mud-palette-appbar-background);
    background-image: none;
    /* No bottom rule. The bar spans the full width, so any border here also draws a line across
       the top of the drawer — and the drawer now shares the bar's color, so that line was the
       only thing breaking the chrome into two pieces. The step down to the canvas separates bar
       from content on its own. */
    border-bottom: 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));
}

/* The content pane owns the scroll, not the window: a definite height plus overflow-y is what keeps
   the app bar and drawer fixed while a long page moves under them, and what gives a grid inside an
   ancestor of definite height to shrink against — without one a grid degrades to its natural height
   and the page scrolls instead (ported from ebp-example, whose site.css documents the same
   contract).

   .environment-banner-spacer already holds --env-banner-height of flow above MudLayout, and
   .mud-layout is height: 100% of an auto-height .page, so it resolves to auto and this box's own
   height is what sets the document's. Both dimensions therefore have to discount the banner
   exactly once: a full 100vh here made the document 100vh + one banner tall and put a permanent
   scrollbar on the window, and counting the banner in the padding as well reserved a second
   banner's worth of blank space under the app bar. Only the fixed app bar needs clearing here.
   Restating that padding also pins it at the full bar height across breakpoints, where MudBlazor's
   own rule steps it down to 7/8 and 3/4 — matching the .mud-toolbar-appbar height pin above.

   dvh over vh where supported: mobile 100vh is the height with the browser chrome collapsed, so the
   bottom of a definite-height, own-scrolling pane would sit behind the URL bar with nothing left to
   scroll. It has to be @supports rather than two height declarations — Blazor's scoped-css bundler
   keeps only the first of a repeated property, so the usual fallback pair silently ships as vh
   alone. */
[b-66t3jbdclp] .mud-main-content {
    box-sizing: border-box;
    padding-top: var(--mud-appbar-height);
    height: calc(100vh - var(--env-banner-height, 0px));
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

@supports (height: 100dvh) {
    [b-66t3jbdclp] .mud-main-content {
        height: calc(100dvh - var(--env-banner-height, 0px));
    }
}

/* Passes that fill down to @Body, so a page can stretch to the fold with `flex: 1` of its own.
   min-height: 0 so a tall child shrinks to the fold instead of forcing this box past it. */
.page-body[b-66t3jbdclp] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* The bottom gap, as a flex item rather than this box's padding. With flex-basis 0 the box is
   exactly the pane's height, so a page taller than the fold overflows it — and an overflowed box's
   padding sits above the overflow rather than after it, leaving the last control flush against the
   pane's edge at full scroll. A spacer is content, so it lands at the end of the scrollable area
   where the gap belongs. */
.page-body[b-66t3jbdclp]::after {
    content: "";
    flex: 0 0 1rem;
}

.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(--mud-palette-appbar-text);
}

/* Top-bar prescriber chip (avatar + name/role + DEA badge). */
.hs-user-chip[b-66t3jbdclp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.625rem 0.25rem 0.375rem;
    background-color: var(--mud-palette-background);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 999px;
}

.hs-user-chip[b-66t3jbdclp]  .hs-user-avatar {
    color: var(--mud-palette-primary);
    font-size: 1.75rem;
}

.hs-user-meta[b-66t3jbdclp] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.hs-user-name[b-66t3jbdclp] {
    font-weight: 600;
    font-size: 0.8125rem;
    /* The app bar's own text color — not a light-surface token, so it inverts with the bar. */
    color: var(--mud-palette-appbar-text);
}

.hs-user-role[b-66t3jbdclp] {
    font-size: 0.6875rem;
    /* The app bar's own text color — not a light-surface token, so it inverts with the bar. */
    color: var(--mud-palette-appbar-text);
    opacity: 0.7;
}

.hs-dea-badge[b-66t3jbdclp] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--mud-palette-success);
    background-color: rgba(var(--mud-palette-success-rgb), 0.1);
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
}

.hs-dea-badge[b-66t3jbdclp]  .mud-icon-root {
    font-size: 0.9rem;
}

.sidebar-footer[b-66t3jbdclp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    gap: 1rem;
    border-top: 1px solid var(--mud-palette-divider);
}

.copyright-info[b-66t3jbdclp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    font-size: 0.75rem;
    /* The drawer's own text color, dimmed — NOT --mud-palette-text-secondary, which is a
       light-surface token and renders near-black on a dark drawer. Opacity keeps the
       de-emphasis without pinning a color, so it survives a fork inverting the drawer. */
    color: var(--mud-palette-drawer-text);
    opacity: 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(--mud-palette-drawer-text);
    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 0.75rem;
    text-decoration: none;
    border-radius: 0.5rem;
}

[b-zswk0q6kaa] .menu-item:hover {
    background-color: rgba(var(--mud-palette-dark-rgb), 0.05);
    color: var(--mud-palette-drawer-text);
}

/* Active nav item: filled dark-green pill with white text/icon (the demo's look). */
[b-zswk0q6kaa] .menu-item.active {
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}

[b-zswk0q6kaa] .menu-item .mud-icon-root {
    color: inherit;
}

/* 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;
}

/* Lockup and form as one vertically centered group. Centering <main> alone would strand the
   lockup at the top, since it is main's sibling rather than its child; the wrapper is what lets
   the pair move together. Padding, not margin, so a viewport too short to center still leaves
   clearance above the footer instead of overlapping it. */
.page-body[b-njgkfb2cva] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.5rem;
    padding: 2rem 0;
}

/* Brand lockup, centered above the form. Vertical placement belongs to .page-body's centering
   and gap now, so this keeps only the horizontal inset. */
.logo-container[b-njgkfb2cva] {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 0 1rem;
}

/* The lockup sizes itself through .hs-lockup-lg in app-theme.css; this only bounds it so a
   narrow viewport cannot push the wordmark past the form below it. */
.logo-container .hs-lockup[b-njgkfb2cva] {
    max-width: 100%;
}

.main-content[b-njgkfb2cva] {
    /* Sized by its content: .page-body owns the free space and the centering. */
    flex: 0 0 auto;
    padding: 1rem;
}

/* The shared auth rhythm is tight for a screen that is mostly whitespace. Scoped to this
   layout, so the five account pages using .block-content move together and nothing else does. */
[b-njgkfb2cva] .block-content {
    gap: 1.25rem;
}

[b-njgkfb2cva] .title {
    padding-bottom: 0;
}

/* 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;
}

/* Deliberately the same color as body: the branding guide defines no footer treatment — its
   product mockup has no footer at all — so the footer does not invent one. The hairline gives
   it its edge and nothing else needs to. Do not "fix" this to a surface color. */
.footer[b-njgkfb2cva] {
    width: 100%;
    background-color: var(--mud-palette-background);
    border-top: 1px solid var(--mud-palette-lines-default);
    padding: 1rem;
    margin-top: auto;
}

.footer-content[b-njgkfb2cva] {
    text-align: center;
    color: var(--mud-palette-text-secondary);
    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 .hs-lockup-lg .hs-lockup-mark[b-njgkfb2cva] {
        height: 2.25rem;
    }

    .logo-container .hs-lockup-lg .hs-lockup-word[b-njgkfb2cva] {
        font-size: 1rem;
        letter-spacing: 0.2em;
    }
}

/* 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/HeroScript/Dashboard.razor.rz.scp.css */
.hs-card[b-dekrhci9yj] {
    border-radius: 0.625rem;
    padding: 1.25rem 1.5rem;
    background-color: var(--mud-palette-surface);
}

.hs-card-header[b-dekrhci9yj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

/* Keeps the header's buttons together at its right edge rather than spreading them across it. */
.hs-card-header-actions[b-dekrhci9yj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.hs-order-list[b-dekrhci9yj] {
    display: flex;
    flex-direction: column;
}

.hs-order-row[b-dekrhci9yj] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid var(--mud-palette-divider);
    cursor: pointer;
    transition: background-color 0.1s ease;
}

.hs-order-row:first-child[b-dekrhci9yj] {
    border-top: none;
}

.hs-order-row:hover[b-dekrhci9yj] {
    background-color: var(--mud-palette-action-default-hover);
}

.hs-order-id[b-dekrhci9yj] {
    font-weight: 700;
    color: var(--mud-palette-primary);
    min-width: 7.5rem;
}

.hs-order-patient[b-dekrhci9yj] {
    flex: 1;
    min-width: 0;
}

.hs-order-name[b-dekrhci9yj] {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.hs-order-sub[b-dekrhci9yj] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.hs-order-total[b-dekrhci9yj] {
    min-width: 5.5rem;
    text-align: right;
    color: var(--mud-palette-text-primary);
}

[b-dekrhci9yj] .hs-order-chevron {
    color: var(--mud-palette-text-secondary);
    font-size: 1.25rem;
}
/* /Components/Pages/HeroScript/OrderDetail.razor.rz.scp.css */
.hs-detail-header[b-1ayxgdxj4y] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.hs-detail-title[b-1ayxgdxj4y] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.hs-detail-number[b-1ayxgdxj4y] {
    font-family: var(--hs-font-serif);
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.hs-detail-meta[b-1ayxgdxj4y] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
    margin-top: 0.25rem;
}

.hs-info-primary[b-1ayxgdxj4y] {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
    margin-top: 0.35rem;
}

.hs-info-secondary[b-1ayxgdxj4y] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.hs-verified[b-1ayxgdxj4y] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.35rem;
    font-weight: 600;
    color: var(--mud-palette-success);
}

.hs-section-head[b-1ayxgdxj4y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.hs-shipment[b-1ayxgdxj4y] {
    border: 1px solid var(--mud-palette-divider);
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
    margin-bottom: 0.75rem;
}

.hs-shipment:last-child[b-1ayxgdxj4y] {
    margin-bottom: 0;
}

.hs-shipment-head[b-1ayxgdxj4y] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.hs-shipment-status[b-1ayxgdxj4y] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--mud-palette-secondary);
    white-space: nowrap;
}

.hs-shipment-items[b-1ayxgdxj4y] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin-top: 0.5rem;
}

.hs-shipment-item[b-1ayxgdxj4y] {
    font-size: 0.875rem;
}

.hs-summary-line[b-1ayxgdxj4y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.6rem 0;
    border-top: 1px solid var(--mud-palette-divider);
}

.hs-summary-line:first-of-type[b-1ayxgdxj4y] {
    border-top: none;
}

.hs-summary-sub[b-1ayxgdxj4y] {
    color: var(--mud-palette-text-secondary);
}

.hs-summary-total[b-1ayxgdxj4y] {
    font-weight: 700;
    color: var(--mud-palette-text-primary);
    border-top: 2px solid var(--mud-palette-lines-default);
}
/* /Components/Pages/HeroScript/OrdersIndex.razor.rz.scp.css */
.hs-filter-bar[b-joec4bpxyu] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.hs-filter-chip[b-joec4bpxyu] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--mud-palette-lines-default);
    background-color: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    font-size: 0.8125rem;
    cursor: pointer;
    transition: background-color 0.1s ease, border-color 0.1s ease;
}

.hs-filter-chip:hover[b-joec4bpxyu] {
    border-color: var(--mud-palette-primary);
}

.hs-filter-chip.active[b-joec4bpxyu] {
    background-color: var(--mud-palette-primary);
    border-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}

.hs-filter-count[b-joec4bpxyu] {
    font-size: 0.6875rem;
    background-color: rgba(0, 0, 0, 0.06);
    border-radius: 999px;
    padding: 0.05rem 0.4rem;
}

.hs-filter-chip.active .hs-filter-count[b-joec4bpxyu] {
    background-color: rgba(255, 255, 255, 0.2);
}

.hs-filter-search[b-joec4bpxyu] {
    margin-left: auto;
    min-width: 15rem;
}

/* .hs-grid-row and .hs-grid-chevron are global (app-theme.css); .hs-order-num is Orders-only. */
[b-joec4bpxyu] .hs-order-num {
    color: var(--mud-palette-primary);
    font-weight: 700;
}
/* /Components/Pages/HeroScript/PatientDetail.razor.rz.scp.css */
.hs-detail-header[b-5v01rpz32h] {
    margin-bottom: 0.5rem;
}

.hs-patient-sub[b-5v01rpz32h] {
    font-family: var(--hs-font-serif);
    font-size: 0.875rem;
    color: var(--mud-palette-secondary);
    margin-bottom: 0.75rem;
}

.hs-field[b-5v01rpz32h] {
    margin-top: 1rem;
}

.hs-consent-note[b-5v01rpz32h] {
    font-size: 0.75rem;
    color: var(--mud-palette-success);
}

.hs-consent-chips[b-5v01rpz32h] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.hs-consent-chip[b-5v01rpz32h] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    padding: 0.2rem 0.6rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 999px;
    color: var(--mud-palette-text-secondary);
}

.hs-created[b-5v01rpz32h] {
    margin-top: 1rem;
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.hs-refill-banner[b-5v01rpz32h] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background-color: rgba(var(--mud-palette-warning-rgb), 0.1);
    color: var(--mud-palette-warning);
    font-weight: 600;
    font-size: 0.8125rem;
    border-radius: 0.5rem;
    padding: 0.6rem 0.85rem;
    margin-bottom: 0.85rem;
}

.hs-med-table[b-5v01rpz32h] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.hs-med-table th[b-5v01rpz32h] {
    text-align: left;
    font-family: var(--hs-font-serif);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mud-palette-secondary);
    padding: 0 0.75rem 0.5rem 0;
}

.hs-med-table td[b-5v01rpz32h] {
    padding: 0.6rem 0.75rem 0.6rem 0;
    border-top: 1px solid var(--mud-palette-divider);
    vertical-align: top;
}

.hs-med-name[b-5v01rpz32h] {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.hs-med-sig[b-5v01rpz32h] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.hs-med-due[b-5v01rpz32h] {
    color: var(--mud-palette-warning);
    font-weight: 600;
}

.hs-history-head[b-5v01rpz32h] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.hs-history-num[b-5v01rpz32h] {
    font-weight: 700;
    color: var(--mud-palette-primary);
}

.hs-history-date[b-5v01rpz32h] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.8125rem;
}

.hs-history-sub[b-5v01rpz32h] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
    margin-top: 0.15rem;
}

.hs-history-foot[b-5v01rpz32h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.75rem;
}
/* /Components/Pages/HeroScript/PatientsIndex.razor.rz.scp.css */
.hs-refill-filter[b-nigm30xs1q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.9rem;
    border-radius: 0.625rem;
    border: 1px solid var(--mud-palette-warning);
    background-color: var(--mud-palette-surface);
    color: var(--mud-palette-warning);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.hs-refill-filter.active[b-nigm30xs1q] {
    background-color: var(--mud-palette-warning);
    color: var(--bs-white);
}

.hs-patient-cell[b-nigm30xs1q] {
    padding: 0.15rem 0;
}

.hs-patient-name-row[b-nigm30xs1q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ::deep — RowLink renders the anchor, so it carries no scope attribute of this page's. */
[b-nigm30xs1q] .hs-patient-name {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

/* .hs-sub, .hs-toolbar, .hs-toolbar-search, .hs-refill-badge, .hs-verify-chip, .hs-grid-row and
   .hs-grid-chevron are defined globally (app-theme.css) since multiple pages use them. */
/* /Components/Pages/HeroScript/SearchCatalog.razor.rz.scp.css */
.hs-view-toggle[b-kvigtbntwv] {
    display: inline-flex;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 999px;
    overflow: hidden;
}

.hs-view-toggle button[b-kvigtbntwv] {
    border: none;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-secondary);
    font-size: 0.8125rem;
    padding: 0.35rem 1rem;
    cursor: pointer;
}

.hs-view-toggle button.active[b-kvigtbntwv] {
    background: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}

.hs-catalog-layout[b-kvigtbntwv] {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
}

.hs-filter-rail[b-kvigtbntwv] {
    flex: 0 0 15rem;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 0.625rem;
    padding: 1.25rem;
}

.hs-filter-group[b-kvigtbntwv] {
    margin-bottom: 1.25rem;
}

.hs-check[b-kvigtbntwv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.2rem 0;
    font-size: 0.875rem;
    cursor: pointer;
}

.hs-select[b-kvigtbntwv] {
    width: 100%;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: 0.4rem;
    font: inherit;
    background: var(--mud-palette-surface);
}

.hs-reset[b-kvigtbntwv] {
    border: 1px solid var(--mud-palette-lines-default);
    background: var(--mud-palette-surface);
    border-radius: 0.5rem;
    padding: 0.4rem 0.85rem;
    font-size: 0.8125rem;
    cursor: pointer;
    color: var(--mud-palette-text-primary);
}

.hs-catalog-content[b-kvigtbntwv] {
    flex: 1 1 auto;
    min-width: 0;
}

.hs-product-grid[b-kvigtbntwv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: 1rem;
}

.hs-product-card[b-kvigtbntwv] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 0.75rem;
    padding: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    background: var(--mud-palette-surface);
}

.hs-product-thumb[b-kvigtbntwv] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 8rem;
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
    /* A tint of the primary, derived so it moves with the palette. */
    background: rgba(var(--mud-palette-primary-rgb), 0.12);
}

.hs-product-thumb[b-kvigtbntwv]  .mud-icon-root {
    color: var(--mud-palette-primary);
    font-size: 2.5rem;
}

.hs-product-name[b-kvigtbntwv] {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.hs-product-sub[b-kvigtbntwv] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.hs-product-tags[b-kvigtbntwv] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.15rem 0;
}

.hs-category-chip[b-kvigtbntwv] {
    font-size: 0.6875rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--mud-palette-lines-default);
    color: var(--mud-palette-text-secondary);
}

.hs-rxc-chip[b-kvigtbntwv] {
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--mud-palette-error);
    color: var(--mud-palette-error);
}

.hs-product-foot[b-kvigtbntwv] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 0.35rem;
}

.hs-product-price[b-kvigtbntwv] {
    font-weight: 700;
    color: var(--mud-palette-text-primary);
}

.hs-product-pharm[b-kvigtbntwv] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.hs-catalog-table[b-kvigtbntwv] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.hs-catalog-table th[b-kvigtbntwv] {
    text-align: left;
    font-family: var(--hs-font-serif);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mud-palette-secondary);
    padding: 0.85rem 1rem;
}

.hs-catalog-table td[b-kvigtbntwv] {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--mud-palette-divider);
}

.hs-prod-name[b-kvigtbntwv] {
    font-weight: 600;
}

.hs-prod-sub[b-kvigtbntwv] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Shared/HeroScript/OrderStatusChip.razor.rz.scp.css */
.hs-status-chip[b-ow464rd450] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--bs-white);
    white-space: nowrap;
}

/* Backgrounds come from the palette, so a rebrand carries the chips with it. Named for the
   role rather than the hue: a class called .hs-chip-blue cannot honestly read a token that is
   no longer blue, and the palette has no blue left to read. */
.hs-chip-info[b-ow464rd450] { background-color: var(--mud-palette-info); }
.hs-chip-warning[b-ow464rd450] { background-color: var(--mud-palette-warning); }
.hs-chip-success[b-ow464rd450] { background-color: var(--mud-palette-success); }
.hs-chip-error[b-ow464rd450] { background-color: var(--mud-palette-error); }
.hs-chip-accent[b-ow464rd450] { background-color: var(--mud-palette-secondary); }
.hs-chip-muted[b-ow464rd450] { background-color: var(--mud-palette-gray-default); }
/* /Components/Shared/HeroScript/OrderStatusStepper.razor.rz.scp.css */
.hs-stepper[b-gws3ikitng] {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
}

.hs-step[b-gws3ikitng] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 0 0 auto;
    width: 6.5rem;
}

.hs-step-node[b-gws3ikitng] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 600;
    background-color: var(--mud-palette-lines-default);
    color: var(--mud-palette-text-secondary);
}

.hs-step.done .hs-step-node[b-gws3ikitng] {
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}

.hs-step-label[b-gws3ikitng] {
    margin-top: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.hs-step-time[b-gws3ikitng] {
    font-size: 0.6875rem;
    color: var(--mud-palette-text-secondary);
}

.hs-step-connector[b-gws3ikitng] {
    flex: 1 1 auto;
    height: 2px;
    background-color: var(--mud-palette-lines-default);
    margin-top: 0.85rem;
    min-width: 1rem;
}

.hs-step-connector.done[b-gws3ikitng] {
    background-color: var(--mud-palette-primary);
}
/* /Components/Shared/HeroScript/PageHeader.razor.rz.scp.css */
.hs-page-header[b-zm5t2gn4xr] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.hs-page-heading[b-zm5t2gn4xr] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

[b-zm5t2gn4xr] .hs-page-title {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.hs-page-subtitle[b-zm5t2gn4xr] {
    font-family: var(--hs-font-serif);
    font-size: 0.875rem;
    color: var(--mud-palette-secondary);
}

.hs-page-actions[b-zm5t2gn4xr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}
/* /Components/Shared/HeroScript/StatTile.razor.rz.scp.css */
.hs-stat-tile[b-hatcx1e6pe] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.25rem 1.5rem;
    border-radius: 0.625rem;
    background-color: var(--mud-palette-surface);
    height: 100%;
}

.hs-stat-label[b-hatcx1e6pe] {
    font-family: var(--hs-font-serif);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mud-palette-secondary);
}

.hs-stat-value[b-hatcx1e6pe] {
    font-family: var(--hs-font-serif);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--mud-palette-text-primary);
}

.hs-stat-caption[b-hatcx1e6pe] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}
/* /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 .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: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    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: var(--mud-palette-primary-lighten);
    color: var(--mud-palette-primary-text);
    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. */
    }
}
