:root {
    --ml-bg: #f1f1f1;
    --ml-surface: #ffffff;
    --ml-surface-soft: #eef6eb;
    --ml-primary: #006b32;
    --ml-primary-bright: #00a651;
    --ml-blue: #003399;
    --ml-blue-soft: #dce1ff;
    --ml-orange: #f7941d;
    --ml-danger: #dc2626;
    --ml-ink: #161d17;
    --ml-muted: #3d4a3e;
    --ml-border: #bccabb;
    --ml-shadow: 0 4px 20px rgba(0, 51, 153, 0.06);
}

body {
    font-family: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ml-ink);
    background: var(--ml-bg);
    font-size: 15px;
    overflow-x: hidden;
}

body *:not(.material-symbols-outlined),
body *:not(.material-symbols-outlined)::before,
body *:not(.material-symbols-outlined)::after,
h1, h2, h3, h4, h5, h6, p, span:not(.material-symbols-outlined),
a, li, label, small, strong, em,
.navbar-brand, .nav-link,
button, input, select, textarea,
.btn, .badge, .badge-soft, .table {
    font-family: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.material-symbols-outlined {
    font-family: "Material Symbols Outlined" !important;
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
}

a {
    color: var(--ml-blue);
}

img,
svg {
    max-width: 100%;
    height: auto;
}

main {
    min-height: 58vh;
}

.homepage-background {
    min-height: 100%;
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
}

.row > * {
    min-width: 0;
}

.fw-black {
    font-weight: 900;
}

.medilink-shell {
    width: 90%;
    max-width: 1280px;
    margin-inline: auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    backdrop-filter: blur(8px);
}

.topbar {
    background: var(--ml-blue);
    color: #ffffff;
    font-size: .84rem;
}

.topbar .medilink-shell {
    flex-wrap: wrap;
}

.topbar-link {
    color: #ffffff;
    font-weight: 500;
    text-decoration: none;
}

.topbar-link:hover {
    color: #dce1ff;
    text-decoration: none;
}

.navbar {
    background: #ffffff !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}

.navbar .medilink-shell {
    gap: .75rem;
}

.ecommerce-navbar {
    min-height: 76px;
}

.ecommerce-navbar-shell {
    display: flex;
    align-items: center;
}

.navbar-collapse {
    min-width: 0;
}

.navbar-nav {
    min-width: 0;
}

.navbar-brand {
    color: var(--ml-primary) !important;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
    line-height: 1.1;
    white-space: normal;
}

.ecommerce-brand {
    flex: 0 0 auto;
    width: 250px;
    max-width: 22vw;
    padding: 0;
}

.ecommerce-brand img {
    display: block;
    width: 100%;
    max-height: 66px;
    object-fit: contain;
    object-position: left center;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .28));
}

.ecommerce-search {
    flex: 1 1 420px;
    min-width: 260px;
    min-height: 48px;
    margin: 0 clamp(1rem, 3vw, 2.5rem);
    padding: .35rem .45rem .35rem 1rem;
    display: flex;
    align-items: center;
    gap: .65rem;
    border-radius: 999px;
    background: #f0f0f2;
    color: #33363b;
}

.ecommerce-search .material-symbols-outlined {
    font-size: 1.9rem;
}

.ecommerce-search input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: #33363b;
    font-size: .92rem;
    font-weight: 400;
}

.ecommerce-search input::placeholder {
    color: #737780;
    opacity: 1;
}

.ecommerce-search button {
    min-height: 40px;
    padding: 0 1.55rem;
    border: 0;
    border-radius: 999px;
    background: var(--ml-orange);
    color: #ffffff;
    font-weight: 600;
}

.ecommerce-search button:hover {
    background: #e98111;
}

.ecommerce-actions {
    flex: 0 0 auto;
    gap: 1.2rem;
}

.ecommerce-action-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #33363b;
    text-decoration: none;
    font-size: .92rem;
    font-weight: 600;
    white-space: nowrap;
}

.ecommerce-action-link:hover {
    color: var(--ml-primary);
    text-decoration: none;
}

.ecommerce-action-link .material-symbols-outlined {
    font-size: 1.9rem;
}

.ecommerce-cart-icon {
    position: relative;
    display: inline-flex;
}

.ecommerce-cart-count {
    position: absolute;
    top: -.45rem;
    right: -.6rem;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 .25rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--ml-orange);
    color: #ffffff;
    font-size: .68rem;
    line-height: 1;
    font-weight: 900;
}

.nav-link {
    color: var(--ml-muted);
    font-weight: 700;
}

.nav-link:hover,
.nav-link.active {
    color: var(--ml-primary);
}

.hero-section {
    background: var(--ml-bg);
}

.hero-visual {
    min-height: 420px;
    border-radius: 24px;
    background:
        linear-gradient(140deg, rgba(0, 107, 50, 0.10), rgba(53, 87, 188, 0.14)),
        url("../images/web-home.png");
    background-size: cover;
    background-position: center;
    box-shadow: var(--ml-shadow);
    border: 1px solid var(--ml-border);
}

.marketplace-hero-section {
    overflow: hidden;
    padding: 1rem 0 1.35rem;
    background: transparent;
}

.marketplace-hero-grid {
    display: grid;
    grid-template-columns: minmax(190px, 250px) minmax(0, 1fr) minmax(190px, 250px);
    gap: 1.25rem;
    align-items: stretch;
    min-height: clamp(320px, 27vw, 390px);
}

.marketplace-side-nav,
.marketplace-hero-aside {
    min-width: 0;
}

.marketplace-side-nav {
    height: 100%;
    padding: .75rem 0;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 8px rgba(15, 23, 42, .08);
}

.marketplace-side-nav a {
    flex: 1 1 0;
    min-height: 40px;
    padding: .35rem .9rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    color: #2f3338;
    text-decoration: none;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 400;
}

.marketplace-side-nav a:hover {
    color: var(--ml-primary);
    background: rgba(0, 135, 64, .07);
    text-decoration: none;
}

.marketplace-side-nav .material-symbols-outlined {
    width: 1.35rem;
    color: #30343a;
    font-size: 1.05rem;
}

.marketplace-hero-aside {
    height: 100%;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 1rem;
}

.marketplace-action-panel {
    padding: 1.15rem 1.35rem;
    display: grid;
    align-content: center;
    gap: 1.1rem;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 8px rgba(15, 23, 42, .08);
}

.marketplace-action-card {
    min-height: 66px;
    padding: .35rem 0;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: .85rem;
    align-items: center;
    color: #141820;
    text-decoration: none;
}

.marketplace-action-card:hover {
    color: #141820;
    text-decoration: none;
}

.marketplace-action-icon {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--ml-orange);
    border-radius: 50%;
    color: var(--ml-orange);
    line-height: 1;
}

.marketplace-action-icon-whatsapp {
    border-color: #22c55e;
    background: #22c55e;
    color: #ffffff;
}

.marketplace-action-icon .material-symbols-outlined {
    font-size: 1.35rem;
    line-height: 1;
}

.marketplace-action-icon svg {
    width: 18px;
    height: 18px;
    display: block;
    fill: currentColor;
}

.marketplace-action-card strong,
.marketplace-action-card span {
    display: block;
}

.marketplace-action-card strong {
    font-size: 14px;
    line-height: 1.25;
    font-weight: 600;
    text-transform: uppercase;
}

.marketplace-action-card span {
    color: rgba(20, 24, 32, .72);
    font-size: 13px;
    line-height: 1.25;
    font-weight: 400;
}

.home-banner-slider {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: clamp(320px, 27vw, 390px);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 8px rgba(15, 23, 42, .08);
}

.home-banner-track {
    display: flex;
    width: 300%;
    height: 100%;
    animation: homeBannerSlide 18s infinite ease-in-out;
}

.home-banner-slide {
    position: relative;
    display: block;
    width: calc(100% / 3);
    flex: 0 0 calc(100% / 3);
    height: 100%;
    overflow: hidden;
    background: #ffffff;
}

.home-banner-slide::before {
    content: "";
    position: absolute;
    inset: -18px;
    background-image: var(--banner-image);
    background-size: cover;
    background-position: center;
    filter: blur(14px);
    opacity: .32;
    transform: scale(1.04);
}

.home-banner-slide img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    object-position: center;
}

.home-banner-dots {
    position: absolute;
    left: 50%;
    bottom: .75rem;
    transform: translateX(-50%);
    display: flex;
    gap: .5rem;
}

.home-banner-dots span {
    width: .5rem;
    height: .5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 0 0 1px rgba(17, 24, 39, .12);
}

@keyframes homeBannerSlide {
    0%, 27% {
        transform: translateX(0);
    }

    33%, 60% {
        transform: translateX(-33.3333%);
    }

    66%, 93% {
        transform: translateX(-66.6667%);
    }

    100% {
        transform: translateX(0);
    }
}

.card-lift,
.ml-card {
    border: 1px solid var(--ml-border);
    border-radius: 8px;
    background: var(--ml-surface);
    box-shadow: var(--ml-shadow);
    overflow-wrap: anywhere;
}

.card-lift {
    transition: transform .18s ease, box-shadow .18s ease;
}

.card-lift:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(0, 51, 153, 0.12);
}

.home-section-header {
    width: 100%;
    gap: 1rem;
    padding: 0.95rem 1.25rem;
    border-radius: 6px 6px 0 0;
    background: var(--ml-blue);
    flex-wrap: wrap;
}

.home-section-header > div {
    min-width: 0;
}

.home-section-title {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 700;
}

.home-section-copy {
    color: rgba(255, 255, 255, 0.86) !important;
    font-size: 12px;
    line-height: 1.45;
}

.home-section-link {
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}

.home-section-header .home-section-link::after {
    content: "chevron_right";
    display: inline-block;
    margin-left: 0.2rem;
    font-family: "Material Symbols Outlined";
    font-size: 1.05em;
    line-height: 1;
    vertical-align: -0.16em;
    font-weight: normal;
}

@media (max-width: 575.98px) {
    .home-section-header {
        padding: 0.8rem 1rem;
    }

    .home-section-title {
        font-size: 1rem;
    }

    .home-section-link {
        font-size: 13px;
    }
}

.product-carousel {
    position: relative;
}

.product-carousel-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 3rem) / 4);
    gap: 1rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: .2rem .1rem .75rem;
}

.product-carousel-track::-webkit-scrollbar {
    display: none;
}

.product-carousel-item {
    min-width: 0;
    scroll-snap-align: start;
}

.product-carousel-item .medicine-card {
    height: 100%;
}

.product-carousel-item .home-profile-card {
    height: 100%;
}

.product-carousel-control {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(188, 202, 187, .8);
    border-radius: 50%;
    background: #ffffff;
    color: #000000;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .12);
    transform: translateY(-50%);
}

.product-carousel-control:hover {
    background: #f8faf8;
}

.product-carousel-control-prev {
    left: -19px;
}

.product-carousel-control-next {
    right: -19px;
}

.product-carousel-control .material-symbols-outlined {
    font-size: 24px;
}

.product-carousel:not(.is-scrollable) .product-carousel-control {
    display: none;
}

.product-carousel-control:disabled {
    opacity: .28;
    cursor: default;
    pointer-events: none;
}

.medicine-card .badge-soft {
    font-size: 10px;
    line-height: 1.2;
}

.medicine-card {
    display: flex;
    flex-direction: column;
    border: 0 !important;
}

.card-lift.medicine-card {
    border: 0 !important;
}

.medicine-card > a {
    flex: 1 1 auto;
}

.medicine-stock-badge,
.medicine-rx-badge {
    font-size: 10px !important;
    line-height: 1.2 !important;
    font-weight: 400 !important;
}

.medicine-card-title {
    margin-bottom: 20px !important;
    color: var(--ml-ink);
    font-size: 13px !important;
    line-height: 1.3 !important;
    font-weight: 400 !important;
}

.medicine-rating {
    margin-bottom: .65rem;
    display: flex;
    align-items: center;
    gap: .3rem;
    color: #5f6c61;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 400;
}

.marketplace-aside-promo {
    display: block;
    min-height: 0;
    overflow: hidden;
    border-radius: 8px;
    background: #ff8a00;
    box-shadow: 0 1px 8px rgba(15, 23, 42, .08);
}

.marketplace-aside-promo img {
    width: 100%;
    height: 100%;
    min-height: 150px;
    display: block;
    object-fit: cover;
}

.marketplace-side-nav a span:not(.material-symbols-outlined) {
    font-size: 14px;
    line-height: 1.2;
}

.marketplace-side-nav a {
    font-size: 14px;
}

.marketplace-action-card strong {
    font-size: 14px;
    line-height: 1.2;
}

.marketplace-action-card span {
    font-size: 12px;
}

.marketplace-action-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    box-sizing: border-box;
}

.marketplace-action-icon .material-symbols-outlined {
    font-size: 1rem;
    line-height: 1;
}

.marketplace-action-icon svg {
    width: 17px;
    height: 17px;
}

@media (max-width: 767.98px) {
    .marketplace-side-nav a,
    .marketplace-side-nav a span:not(.material-symbols-outlined) {
        font-size: 14px;
    }

    .marketplace-action-icon {
        width: 28px;
        height: 28px;
    }

    .marketplace-action-icon .material-symbols-outlined {
        font-size: .95rem;
    }

    .marketplace-action-card strong {
        font-size: 14px;
    }

    .marketplace-action-card span {
        font-size: 12px;
    }
}

.navbar .dropdown-menu .dropdown-item,
.ecommerce-navbar .dropdown-menu .dropdown-item,
.site-header .dropdown-menu .dropdown-item {
    font-size: 14px !important;
}

.customer-dashboard-brand span {
    overflow-wrap: anywhere;
}

/* Practitioner portal */
.practitioner-portal-app {
    --prac-green: #006431;
    --prac-soft: #f3fbf0;
    --prac-line: #b8c9b7;
    --prac-blue: #3156cb;
    min-height: 100vh;
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    background: var(--prac-soft);
    color: #121a14;
}

.practitioner-portal-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: 1.6rem;
    border-right: 1px solid #d2dfcf;
    background: #eef8ed;
    padding: 1.35rem 1.25rem;
}

.practitioner-portal-brand {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: .75rem;
    align-items: center;
    color: var(--prac-green);
    text-decoration: none;
}

.practitioner-portal-brand span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 999px;
    background: #fff;
}

.practitioner-portal-brand img {
    max-width: 85%;
    max-height: 85%;
    object-fit: contain;
}

.practitioner-portal-brand strong {
    font-size: 1.6rem;
    line-height: 1.05;
    font-weight: 800;
}

.practitioner-portal-brand small {
    grid-column: 2;
    margin-top: -1rem;
    color: #172119;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .08em;
}

.practitioner-upload-btn,
.practitioner-primary-btn,
.practitioner-heading-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 44px;
    border-radius: 8px;
    background: var(--prac-green);
    color: #fff;
    padding: .75rem 1rem;
    text-decoration: none;
    font-weight: 700;
}

.practitioner-upload-btn:hover,
.practitioner-primary-btn:hover,
.practitioner-heading-actions a:hover {
    color: #fff;
}

.practitioner-portal-nav {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.practitioner-portal-nav a,
.practitioner-sidebar-bottom a,
.practitioner-sidebar-bottom button {
    width: 100%;
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 1rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #172119;
    padding: .75rem 1.1rem;
    text-decoration: none;
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-align: left;
}

.practitioner-portal-nav a.active {
    background: #007936;
    color: #fff;
}

.practitioner-portal-nav .material-symbols-outlined,
.practitioner-sidebar-bottom .material-symbols-outlined {
    font-size: 1.55rem;
}

.practitioner-sidebar-bottom {
    display: grid;
    gap: .6rem;
    border-top: 1px solid #d0decd;
    padding-top: 1.4rem;
}

.practitioner-portal-main {
    min-width: 0;
}

.practitioner-portal-topbar {
    min-height: 100px;
    display: grid;
    grid-template-columns: minmax(230px, 330px) minmax(300px, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    border-bottom: 1px solid #d0decd;
    padding: 1rem 2rem;
}

.practitioner-portal-topbar h1 {
    margin: 0;
    color: var(--prac-green);
    font-size: 1.75rem;
    font-weight: 800;
}

.practitioner-portal-search {
    height: 52px;
    display: flex;
    align-items: center;
    gap: .75rem;
    border: 1px solid var(--prac-line);
    border-radius: 999px;
    padding: 0 1.1rem;
}

.practitioner-portal-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: .98rem;
}

.practitioner-portal-actions {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}

.practitioner-portal-actions a {
    position: relative;
    color: #172119;
    text-decoration: none;
}

.practitioner-portal-actions .has-alert::after {
    content: "";
    position: absolute;
    top: -2px;
    right: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #d10000;
}

.practitioner-avatar img {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    object-fit: cover;
}

.practitioner-portal-content {
    width: min(90%, 1180px);
    margin: 0 auto;
    padding: 2.4rem 0 5rem;
}

.practitioner-page-heading {
    margin-bottom: 2rem;
}

.practitioner-page-heading.split,
.practitioner-page-heading.live {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
}

.practitioner-page-heading h2 {
    margin: 0 0 .45rem;
    color: #121a14;
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.1;
    font-weight: 800;
}

.practitioner-page-heading.settings h2 {
    color: var(--prac-green);
    font-size: clamp(2.7rem, 6vw, 4rem);
}

.practitioner-page-heading p {
    margin: 0;
    color: #263028;
    font-size: 1.05rem;
}

.practitioner-heading-actions {
    display: flex;
    align-items: center;
    gap: .8rem;
    flex-wrap: wrap;
}

.practitioner-heading-actions button,
.practitioner-heading-actions a.blue {
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    background: rgba(255,255,255,.45);
    color: #172119;
    padding: .75rem 1rem;
    font-weight: 700;
}

.practitioner-heading-actions a.blue {
    border-color: var(--prac-blue);
    background: var(--prac-blue);
    color: #fff;
}

.practitioner-card,
.practitioner-filter-card,
.practitioner-table-card,
.practitioner-metric-grid article,
.practitioner-money-grid article {
    border: 1px solid var(--prac-line);
    border-radius: 14px;
    background: rgba(255,255,255,.38);
    box-shadow: 0 8px 18px rgba(15, 38, 20, .04);
}

.practitioner-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.practitioner-metric-grid article {
    position: relative;
    min-height: 180px;
    padding: 1.5rem;
    overflow: hidden;
}

.practitioner-metric-grid small {
    display: block;
    margin-bottom: 4rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.practitioner-metric-grid strong {
    display: block;
    font-size: 3rem;
    line-height: 1;
    font-weight: 900;
}

.practitioner-metric-grid p {
    margin: .7rem 0 0;
}

.practitioner-metric-grid .blue { color: var(--prac-blue); }
.practitioner-metric-grid .green { color: var(--prac-green); }
.practitioner-metric-grid article > .material-symbols-outlined {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #dfe9dc;
    color: var(--prac-green);
    font-size: 2rem;
}

.practitioner-metric-grid .dark {
    background: #00612d;
    color: #fff;
}

.practitioner-metric-grid .dark > .material-symbols-outlined {
    background: rgba(255,255,255,.18);
    color: #fff;
}

.practitioner-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, .95fr);
    gap: 1.9rem;
}

.practitioner-dashboard-grid main {
    display: grid;
    gap: 1.9rem;
}

.practitioner-card {
    padding: 1.5rem;
}

.practitioner-card h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 800;
}

.practitioner-appointments-card {
    padding: 0;
    overflow: hidden;
}

.practitioner-appointments-card header,
.practitioner-revenue-chart header,
.section-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.3rem 1.5rem;
}

.practitioner-appointments-card header a,
.section-row a {
    color: var(--prac-blue);
    text-decoration: none;
    font-weight: 700;
}

.practitioner-appointments-card article {
    display: grid;
    grid-template-columns: 74px 1fr auto auto;
    align-items: center;
    gap: 1.3rem;
    border-top: 1px solid #d2dfcf;
    padding: 1.25rem 1.5rem;
}

.practitioner-appointments-card time {
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #dfe9dc;
    padding: .7rem;
}

.practitioner-appointments-card time strong {
    font-size: 1.35rem;
}

.practitioner-appointments-card h4,
.practitioner-appointments-card p {
    margin: 0;
}

.practitioner-pill,
.practitioner-status {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border-radius: 999px;
    background: #dfe9dc;
    color: #334037;
    padding: .35rem .75rem;
    font-size: .8rem;
    font-weight: 600;
}

.practitioner-pill.blue {
    background: #dce2ff;
    color: #0a309a;
}

.icon-link {
    color: var(--prac-blue);
}

.practitioner-revenue-chart {
    padding: 0 1.5rem 1rem;
}

.practitioner-revenue-chart header {
    padding-inline: 0;
}

.practitioner-revenue-chart header button {
    border: 0;
    border-radius: 8px;
    background: #dfe9dc;
    padding: .45rem .7rem;
}

.bars {
    height: 240px;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    align-items: end;
    gap: .65rem;
    border-left: 1px solid #e2e9df;
    border-bottom: 1px solid #e2e9df;
    padding: 0 .75rem;
}

.bars span {
    position: relative;
    min-height: 12px;
    background: #cfe3d8;
}

.bars span.active {
    background: var(--prac-green);
    box-shadow: 0 8px 16px rgba(0, 100, 49, .18);
}

.bars span.active::before {
    content: attr(data-label);
    position: absolute;
    top: -1.8rem;
    left: 50%;
    transform: translateX(-50%);
    font-size: .8rem;
    font-weight: 700;
}

.bar-labels {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .65rem;
    padding: .5rem .75rem 0;
    color: #53605a;
    font-size: .8rem;
    text-align: center;
}

.practitioner-activity {
    display: grid;
    gap: 1rem;
}

.practitioner-activity article {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 1rem;
}

.practitioner-activity article > .material-symbols-outlined {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #dfe9dc;
    color: var(--prac-green);
}

.practitioner-activity article div {
    border: 1px solid #d0decd;
    border-radius: 8px;
    background: #edf7eb;
    padding: .8rem;
}

.practitioner-activity p,
.practitioner-activity small {
    margin: .2rem 0 0;
    color: #334037;
}

.practitioner-activity > a {
    color: var(--prac-green);
    text-align: center;
    text-decoration: none;
    font-weight: 700;
}

.practitioner-chip-tabs {
    display: flex;
    gap: .6rem;
    margin-bottom: 2rem;
}

.practitioner-chip-tabs a {
    border: 1px solid var(--prac-line);
    border-radius: 999px;
    color: #172119;
    padding: .4rem 1.2rem;
    text-decoration: none;
    font-weight: 600;
}

.practitioner-chip-tabs a.active {
    border-color: #7895ff;
    background: #7895ff;
    color: #00144d;
}

.practitioner-schedule-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 2rem;
}

.practitioner-day-title {
    margin: 0 0 1.5rem;
    border-bottom: 1px solid var(--prac-line);
    padding-bottom: .8rem;
    font-weight: 800;
}

.practitioner-day-title span {
    border-radius: 999px;
    background: #dfe9dc;
    padding: .2rem .55rem;
    font-size: .85rem;
}

.practitioner-appointment-panel {
    display: grid;
    grid-template-columns: 110px 1fr 56px;
    gap: 1.4rem;
    align-items: start;
    border: 1px solid var(--prac-line);
    border-left: 5px solid var(--prac-green);
    border-radius: 14px;
    background: rgba(255,255,255,.45);
    margin-bottom: 1.3rem;
    padding: 1.6rem;
}

.practitioner-appointment-panel time {
    display: grid;
    place-items: center;
    border-right: 1px solid var(--prac-line);
    padding-right: 1rem;
}

.practitioner-appointment-panel time strong {
    color: var(--prac-green);
    font-size: 1.55rem;
}

.practitioner-appointment-panel header {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.practitioner-appointment-panel header span {
    border-radius: 3px;
    background: #dfe9dc;
    padding: .25rem .55rem;
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.practitioner-appointment-panel header span.virtual {
    background: #c6d1ff;
}

.practitioner-appointment-panel div > div {
    border-radius: 8px;
    background: #edf7eb;
    margin: .8rem 0 1rem;
    padding: .9rem;
}

.practitioner-appointment-panel footer {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.practitioner-appointment-panel footer a,
.practitioner-appointment-panel footer button {
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    background: #fff;
    color: #172119;
    padding: .65rem 1rem;
    text-decoration: none;
    font-weight: 700;
}

.practitioner-appointment-panel footer a {
    background: var(--prac-green);
    color: #fff;
}

.practitioner-appointment-panel footer a.blue {
    background: var(--prac-blue);
}

.practitioner-appointment-panel img {
    width: 50px;
    height: 50px;
    border-radius: 999px;
    object-fit: cover;
}

.practitioner-schedule-layout aside {
    display: grid;
    gap: 1.5rem;
    align-content: start;
}

.practitioner-mini-calendar div {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .8rem;
    margin-top: 1.2rem;
    text-align: center;
}

.practitioner-mini-calendar .active {
    border-radius: 999px;
    background: var(--prac-green);
    color: #fff;
    padding: .35rem;
}

.practitioner-tomorrow {
    background: #dfe9dc;
}

.practitioner-tomorrow p {
    display: grid;
    grid-template-columns: 92px 1fr auto;
    gap: .5rem;
    border-bottom: 1px solid #c5d3c2;
    padding-bottom: .7rem;
}

.practitioner-tomorrow em {
    border: 1px solid var(--prac-line);
    border-radius: 5px;
    padding: .2rem .5rem;
    font-size: .75rem;
    font-style: normal;
    text-transform: uppercase;
}

.practitioner-tomorrow a {
    display: block;
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    color: #172119;
    padding: .55rem;
    text-align: center;
    text-decoration: none;
    font-weight: 700;
}

.practitioner-filter-card {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 1.8rem;
    padding: 1.2rem;
}

.practitioner-filter-card label {
    flex: 1;
    min-width: 240px;
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    background: #edf7eb;
    padding: .75rem;
}

.practitioner-filter-card input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
}

.practitioner-filter-card button {
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    background: #edf7eb;
    padding: .8rem 1rem;
}

.practitioner-filter-card strong {
    margin-left: auto;
    font-size: .9rem;
}

.practitioner-table-card {
    overflow: hidden;
}

.practitioner-table-card table {
    width: 100%;
    border-collapse: collapse;
}

.practitioner-table-card th,
.practitioner-table-card td {
    border-bottom: 1px solid var(--prac-line);
    padding: 1rem 1.25rem;
    text-align: left;
}

.practitioner-table-card th {
    background: #edf7eb;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.practitioner-patient-cell {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.practitioner-patient-cell span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #7895ff;
    color: #0a309a;
    font-weight: 800;
}

.practitioner-table-card .red {
    color: #c50000;
    font-weight: 700;
}

.practitioner-status.success {
    background: #d9ffe4;
    color: var(--prac-green);
}

.practitioner-status.warning {
    background: #ffd7dc;
    color: #b00031;
}

.view-records {
    display: inline-flex;
    align-items: center;
    color: var(--prac-green);
    text-decoration: none;
    font-weight: 700;
}

.practitioner-table-card footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
}

.practitioner-table-card footer nav {
    display: flex;
}

.practitioner-table-card footer nav > * {
    min-width: 48px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--prac-line);
}

.practitioner-table-card footer strong {
    background: var(--prac-green);
    color: #fff;
}

.practitioner-page-heading.live > div:last-child {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.practitioner-page-heading.live span {
    border-radius: 999px;
    background: #ffd7dc;
    color: #b00031;
    padding: .5rem 1.2rem;
    font-weight: 800;
}

.practitioner-consult-layout {
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    gap: 2rem;
    padding-bottom: 7rem;
}

.patient-summary-card header {
    display: flex;
    gap: 1rem;
    align-items: center;
    border-bottom: 1px solid var(--prac-line);
    padding-bottom: 1.4rem;
}

.patient-summary-card img {
    width: 76px;
    height: 76px;
    border-radius: 999px;
    object-fit: cover;
}

.patient-summary-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 1.8rem 0;
}

.patient-summary-stats article {
    border-radius: 8px;
    background: #edf7eb;
    padding: 1rem;
}

.patient-summary-stats strong {
    display: block;
    color: var(--prac-green);
    font-size: 1.35rem;
}

.alert-pill {
    display: block;
    width: max-content;
    border-radius: 999px;
    margin-top: .6rem;
    padding: .35rem 1rem;
    font-weight: 700;
}

.alert-pill.red { background: #ba3155; color: #fff; }
.alert-pill.blue { background: #7895ff; color: #0a309a; }

.practitioner-consult-layout main {
    display: grid;
    gap: 2rem;
}

.consult-notes-card header,
.rx-builder-card header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.4rem;
}

.consult-notes-card h3,
.rx-builder-card h3,
.history-card h3 {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.notes-toolbar {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    border: 1px solid var(--prac-line);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: #e6f0e4;
    padding: .75rem 1rem;
}

.consult-notes-card textarea {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--prac-line);
    border-radius: 0 0 8px 8px;
    background: #fff;
    padding: 1.4rem;
    resize: vertical;
    font-size: 1.1rem;
}

.consult-bottom-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.rx-builder-card em {
    border-radius: 999px;
    background: #74f491;
    color: var(--prac-green);
    padding: .5rem 1rem;
    font-size: .8rem;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
}

.rx-builder-card label {
    display: flex;
    gap: .7rem;
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    padding: .75rem;
}

.rx-builder-card input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
}

.rx-builder-card article {
    position: relative;
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    margin-top: 1.5rem;
    padding: 1rem;
}

.rx-builder-card article button {
    position: absolute;
    top: 1rem;
    right: 1rem;
    border: 0;
    background: transparent;
    color: #c50000;
    font-size: 1.3rem;
}

.history-card article {
    position: relative;
    border-left: 4px solid #d0decd;
    margin-left: 1rem;
    padding: 1rem 0 1rem 1.5rem;
}

.history-card article span {
    position: absolute;
    left: -12px;
    top: 1.1rem;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: #7895ff;
}

.consultation-action-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 320px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid #d0decd;
    background: rgba(255,255,255,.94);
    padding: 1.4rem 2rem;
    box-shadow: 0 -8px 18px rgba(15, 38, 20, .06);
    z-index: 20;
}

.consultation-action-bar a {
    color: #53605a;
    text-decoration: none;
    font-weight: 700;
}

.consultation-action-bar div {
    display: flex;
    gap: 1.2rem;
}

.consultation-action-bar button {
    min-width: 180px;
    border: 1px solid var(--prac-green);
    border-radius: 999px;
    background: #fff;
    color: var(--prac-green);
    padding: .95rem 1.6rem;
    font-weight: 800;
}

.consultation-action-bar button.primary {
    background: var(--prac-green);
    color: #fff;
}

.practitioner-money-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8rem;
    margin-bottom: 3rem;
}

.practitioner-money-grid article {
    position: relative;
    min-height: 220px;
    padding: 2rem;
    overflow: hidden;
}

.practitioner-money-grid small {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.practitioner-money-grid strong {
    display: block;
    font-size: clamp(2.2rem, 5vw, 3.8rem);
    font-weight: 900;
}

.practitioner-money-grid .watermark {
    position: absolute;
    top: 1rem;
    right: 1rem;
    color: #dce7dd;
    font-size: 5rem;
}

.practitioner-earnings-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 2rem;
}

.earnings-breakdown {
    display: grid;
    gap: 1.4rem;
}

.earnings-breakdown article {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    align-items: center;
    gap: 1rem;
    border: 1px solid #d0decd;
    border-radius: 8px;
    padding: 1rem;
}

.earnings-breakdown .material-symbols-outlined {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: #fff;
}

.earnings-breakdown .blue { background: #7895ff; }
.earnings-breakdown .red { background: #ba3155; }
.earnings-breakdown .green { background: var(--prac-green); }
.earnings-breakdown b { font-size: 1.5rem; }

.practitioner-settings-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 2rem;
    margin-bottom: 2rem;
}

.practitioner-profile-settings header,
.practitioner-availability-card header {
    border-bottom: 1px solid var(--prac-line);
    padding-bottom: 1rem;
}

.practitioner-profile-settings h3,
.practitioner-availability-card h3,
.practitioner-settings-aside h3 {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.profile-settings-body {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 2rem;
    padding-top: 1.8rem;
}

.profile-settings-body aside {
    display: grid;
    justify-items: center;
    align-content: start;
    gap: 1rem;
}

.profile-settings-body aside img {
    width: 130px;
    height: 130px;
    border-radius: 999px;
    object-fit: cover;
    border: 8px solid #fff;
}

.profile-settings-body aside a,
.practitioner-settings-aside a,
.practitioner-availability-card a {
    color: var(--prac-blue);
    text-decoration: none;
    font-weight: 700;
}

.practitioner-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
}

.practitioner-form-grid label {
    display: grid;
    gap: .4rem;
    font-weight: 700;
}

.practitioner-form-grid label.wide {
    grid-column: 1 / -1;
}

.practitioner-form-grid input,
.practitioner-form-grid textarea {
    border: 1px solid var(--prac-line);
    border-radius: 8px;
    background: #f8fff6;
    padding: .8rem 1rem;
    font-weight: 400;
}

.practitioner-form-grid textarea {
    min-height: 110px;
}

.practitioner-form-grid button {
    grid-column: 2;
    justify-self: end;
    border: 0;
    border-radius: 8px;
    background: var(--prac-green);
    color: #fff;
    padding: .8rem 1.6rem;
    font-weight: 800;
}

.practitioner-settings-aside {
    display: grid;
    gap: 1.6rem;
    align-content: start;
}

.practitioner-settings-aside p {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border: 1px solid #d0decd;
    border-radius: 8px;
    padding: .9rem;
}

.practitioner-settings-aside b {
    border-radius: 6px;
    background: #dfe9dc;
    padding: .25rem .55rem;
    font-size: .8rem;
}

.toggle {
    width: 46px;
    height: 26px;
    border: 0;
    border-radius: 999px;
    background: #d0decd;
}

.toggle.on {
    background: var(--prac-green);
}

.blue { color: var(--prac-blue); }
.red { color: #c50000; }

.practitioner-availability-card > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    padding-top: 1.5rem;
}

.check {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 5px;
    background: var(--prac-green);
    color: #fff;
    margin-right: 1rem;
}

.practitioner-availability-card article {
    display: grid;
    grid-template-columns: 1fr 120px auto 120px;
    gap: .75rem;
    align-items: center;
    border: 1px solid #d0decd;
    border-radius: 8px;
    margin-bottom: .75rem;
    padding: .75rem;
}

.practitioner-availability-card article span {
    border-radius: 6px;
    background: #dfe9dc;
    padding: .55rem;
}

@media (max-width: 1199.98px) {
    .practitioner-portal-app {
        grid-template-columns: 270px minmax(0, 1fr);
    }

    .practitioner-metric-grid,
    .practitioner-money-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .practitioner-dashboard-grid,
    .practitioner-schedule-layout,
    .practitioner-consult-layout,
    .practitioner-earnings-layout,
    .practitioner-settings-grid {
        grid-template-columns: 1fr;
    }

    .consultation-action-bar {
        left: 270px;
    }
}

@media (max-width: 991.98px) {
    .practitioner-portal-app {
        grid-template-columns: 1fr;
    }

    .practitioner-portal-sidebar {
        position: static;
        height: auto;
    }

    .practitioner-portal-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .practitioner-portal-topbar {
        grid-template-columns: 1fr;
    }

    .consultation-action-bar {
        left: 0;
    }

    .practitioner-table-card {
        overflow-x: auto;
    }

    .practitioner-table-card table {
        min-width: 850px;
    }

    .consult-bottom-grid,
    .practitioner-availability-card > div {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .practitioner-portal-content {
        width: min(92%, 640px);
    }

    .practitioner-page-heading.split,
    .practitioner-page-heading.live,
    .practitioner-filter-card,
    .practitioner-table-card footer,
    .consultation-action-bar,
    .consultation-action-bar div {
        align-items: stretch;
        flex-direction: column;
    }

    .practitioner-metric-grid,
    .practitioner-money-grid,
    .practitioner-portal-nav,
    .practitioner-appointment-panel,
    .profile-settings-body,
    .practitioner-form-grid {
        grid-template-columns: 1fr;
    }

    .practitioner-appointments-card article {
        grid-template-columns: 1fr;
    }

    .practitioner-form-grid label.wide,
    .practitioner-form-grid button {
        grid-column: auto;
    }

    .practitioner-availability-card article {
        grid-template-columns: 1fr;
    }
}

/* Pharmacy portal */
.pharmacy-portal-app {
    --portal-green: #00672f;
    --portal-soft: #eef8ed;
    --portal-muted: #dfe9dc;
    --portal-line: #b8c9b7;
    --portal-blue: #0646c7;
    min-height: 100vh;
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    background: #f3fbf0;
    color: #121a14;
}

.pharmacy-portal-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 2rem;
    border-right: 1px solid #cfdbcc;
    background: #edf7eb;
    padding: 2rem 0;
}

.pharmacy-portal-brand {
    display: grid;
    grid-template-columns: 56px 1fr;
    align-items: center;
    gap: .95rem;
    color: var(--portal-green);
    padding: 0 1.85rem;
    text-decoration: none;
}

.pharmacy-brand-mark {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 999px;
    background: #fff;
}

.pharmacy-brand-mark img {
    max-width: 82%;
    max-height: 82%;
    object-fit: contain;
}

.pharmacy-portal-brand strong {
    font-size: 1.68rem;
    line-height: 1.15;
    font-weight: 800;
}

.pharmacy-portal-brand small {
    grid-column: 2;
    margin-top: -.75rem;
    color: #1d261f;
    font-size: .92rem;
    font-weight: 600;
    letter-spacing: .08em;
}

.pharmacy-portal-nav {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-top: 1rem;
}

.pharmacy-portal-nav a,
.pharmacy-settings-link {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 58px;
    padding: .75rem 1.35rem .75rem 1.85rem;
    color: #172119;
    border-right: 5px solid transparent;
    text-decoration: none;
    font-size: .98rem;
    font-weight: 500;
    letter-spacing: .04em;
}

.pharmacy-portal-nav a.active,
.pharmacy-settings-link.active {
    color: var(--portal-green);
    background: #d7ecd8;
    border-right-color: var(--portal-green);
    font-weight: 700;
}

.pharmacy-portal-nav .material-symbols-outlined,
.pharmacy-settings-link .material-symbols-outlined {
    font-size: 1.75rem;
}

.pharmacy-settings-link {
    margin-bottom: .65rem;
}

.pharmacy-portal-main {
    min-width: 0;
}

.pharmacy-portal-topbar {
    min-height: 100px;
    display: grid;
    grid-template-columns: minmax(260px, 410px) 1fr auto;
    align-items: center;
    gap: 1.5rem;
    border-bottom: 1px solid #d4dfd1;
    padding: 1.25rem 2rem;
}

.pharmacy-portal-topbar h1 {
    margin: 0;
    color: var(--portal-green);
    font-size: 1.45rem;
    font-weight: 800;
    text-align: center;
}

.pharmacy-portal-search,
.pharmacy-inline-search {
    height: 50px;
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid var(--portal-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .35);
    padding: 0 1.1rem;
}

.pharmacy-portal-search input,
.pharmacy-inline-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #121a14;
    font-size: .98rem;
}

.pharmacy-portal-search .material-symbols-outlined,
.pharmacy-inline-search .material-symbols-outlined {
    color: #233126;
    font-size: 1.7rem;
}

.pharmacy-portal-actions {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.pharmacy-portal-actions a {
    position: relative;
    color: #172119;
    text-decoration: none;
}

.pharmacy-portal-actions .has-alert::after {
    content: "";
    position: absolute;
    top: -2px;
    right: 0;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #d30000;
}

.pharmacy-avatar img {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    object-fit: cover;
}

.pharmacy-portal-content {
    width: min(90%, 1220px);
    margin: 0 auto;
    padding: 2rem 0 5rem;
}

.pharmacy-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.pharmacy-page-heading.split {
    align-items: center;
}

.pharmacy-page-heading.settings {
    max-width: 920px;
}

.pharmacy-page-heading h2 {
    margin: 0 0 .35rem;
    color: #111714;
    font-size: clamp(2rem, 4vw, 2.65rem);
    line-height: 1.1;
    font-weight: 800;
}

.pharmacy-page-heading p {
    margin: 0;
    color: #263028;
    font-size: 1.05rem;
}

.pharmacy-heading-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pharmacy-primary-btn,
.pharmacy-soft-btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border-radius: 8px;
    border: 1px solid var(--portal-line);
    padding: .75rem 1.4rem;
    text-decoration: none;
    font-weight: 700;
}

.pharmacy-primary-btn {
    border-color: var(--portal-green);
    background: var(--portal-green);
    color: #fff;
    box-shadow: 0 8px 18px rgba(0, 103, 47, .16);
}

.pharmacy-primary-btn:hover {
    color: #fff;
}

.pharmacy-primary-btn.compact {
    min-width: 120px;
}

.pharmacy-soft-btn {
    background: rgba(255, 255, 255, .45);
    color: #12391e;
}

.pharmacy-metric-grid,
.pharmacy-earnings-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.45rem;
    margin-bottom: 2.4rem;
}

.pharmacy-earnings-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pharmacy-metric-grid article,
.pharmacy-money-card,
.pharmacy-card,
.pharmacy-table-card,
.pharmacy-prescription-card,
.pharmacy-settings-tabs,
.pharmacy-settings-card {
    border: 1px solid var(--portal-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .38);
    box-shadow: 0 8px 18px rgba(15, 38, 20, .04);
}

.pharmacy-metric-grid article {
    position: relative;
    min-height: 210px;
    padding: 1.85rem;
    overflow: hidden;
}

.metric-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    margin-bottom: 1.1rem;
    font-size: 1.7rem;
}

.metric-icon.green { background: #cce7d4; color: var(--portal-green); }
.metric-icon.rose { background: #ead1d2; color: #ad0031; }
.metric-icon.alert { background: #ffd8d8; color: #b00000; }
.metric-icon.blue { background: #d7e0ff; color: #0646c7; }
.metric-icon.soft { background: #e2ebdf; color: #68766b; }

.pharmacy-metric-grid small {
    display: block;
    margin-bottom: 1rem;
    color: #1b231d;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pharmacy-metric-grid strong,
.pharmacy-money-card strong {
    display: block;
    color: #101612;
    font-size: clamp(2.2rem, 4.5vw, 3.4rem);
    line-height: 1.1;
    font-weight: 900;
}

.pharmacy-metric-grid p {
    margin: 1rem 0 0;
    color: #263028;
}

.pharmacy-metric-grid .blue { color: var(--portal-blue); }
.pharmacy-metric-grid .red { color: #c60000; }
.pharmacy-metric-grid .green-text { color: var(--portal-green); }

.metric-watermark {
    position: absolute;
    top: 1.6rem;
    right: 1.4rem;
    color: #cbd8ca;
    font-size: 4rem;
    opacity: .55;
}

.pharmacy-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, .95fr);
    gap: 1.9rem;
}

.pharmacy-card {
    padding: 1.8rem;
}

.pharmacy-card header,
.pharmacy-table-card header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pharmacy-card h3,
.pharmacy-table-card h3,
.pharmacy-settings-card h3 {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 800;
}

.pharmacy-card header button {
    border: 0;
    background: transparent;
}

.pharmacy-chart-box {
    min-height: 320px;
    display: grid;
    place-items: center;
    margin-top: 2rem;
    border-radius: 8px;
    background: #dbe8da;
}

.pharmacy-chart-box svg {
    width: 92%;
    max-width: 720px;
}

.pharmacy-recent-orders {
    display: grid;
    gap: 1.2rem;
}

.pharmacy-recent-orders header a,
.pharmacy-table-card header a,
.pharmacy-table-card footer a {
    color: var(--portal-green);
    text-decoration: none;
    font-weight: 700;
}

.pharmacy-recent-orders article {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    align-items: center;
    gap: 1rem;
}

.pharmacy-recent-orders article > span,
.pharmacy-customer-cell > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #dfe8dd;
    color: #111714;
    font-weight: 600;
}

.pharmacy-recent-orders strong,
.pharmacy-customer-cell strong {
    display: block;
    font-weight: 800;
}

.pharmacy-recent-orders small,
.pharmacy-customer-cell small {
    display: block;
    color: #354036;
    font-size: .83rem;
    letter-spacing: .08em;
}

.pharmacy-recent-orders b {
    display: block;
    text-align: right;
}

.pharmacy-recent-orders em {
    display: inline-block;
    margin-top: .25rem;
    border-radius: 5px;
    padding: .25rem .55rem;
    background: #e1eadf;
    color: #425041;
    font-size: .7rem;
    font-style: normal;
    text-transform: uppercase;
}

.pharmacy-recent-orders em.success { background: #d9ffe4; color: #00672f; }
.pharmacy-recent-orders em.warning { background: #fff0d6; color: #8a5700; }

.pharmacy-tab-row,
.pharmacy-segmented-tabs {
    display: flex;
    gap: 2rem;
    border-bottom: 1px solid var(--portal-line);
    margin-bottom: 1.8rem;
}

.pharmacy-tab-row a,
.pharmacy-segmented-tabs a {
    color: #172119;
    padding: .75rem .55rem;
    text-decoration: none;
    font-weight: 600;
}

.pharmacy-tab-row a.active {
    color: var(--portal-green);
    border-bottom: 3px solid var(--portal-green);
}

.pharmacy-segmented-tabs {
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--portal-line);
    border-radius: 8px;
    margin-bottom: 0;
}

.pharmacy-segmented-tabs a {
    min-width: 130px;
    text-align: center;
}

.pharmacy-segmented-tabs a.active {
    background: rgba(255, 255, 255, .35);
    color: var(--portal-green);
}

.pharmacy-table-card {
    overflow: hidden;
}

.pharmacy-table-card table {
    width: 100%;
    border-collapse: collapse;
}

.pharmacy-table-card th,
.pharmacy-table-card td {
    padding: 1.35rem 1.6rem;
    border-bottom: 1px solid var(--portal-line);
    vertical-align: middle;
}

.pharmacy-table-card th {
    background: rgba(232, 242, 229, .8);
    color: #1b231d;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pharmacy-table-card tr.attention {
    background: #fff5f5;
}

.pharmacy-table-card footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.6rem;
}

.pharmacy-table-card footer nav {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.pharmacy-table-card footer nav a,
.pharmacy-table-card footer nav strong {
    min-width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    color: #172119;
    text-decoration: none;
}

.pharmacy-table-card footer nav strong {
    background: var(--portal-green);
    color: #fff;
}

.pharmacy-customer-cell,
.pharmacy-product-cell {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.pharmacy-product-cell .material-symbols-outlined {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: #dfe8dd;
    color: var(--portal-green);
}

.pharmacy-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: .35rem .85rem;
    font-size: .82rem;
    font-weight: 600;
}

.pharmacy-status-pill.success { background: #8bf0a4; color: #005d2b; }
.pharmacy-status-pill.warning { background: #ffd7dc; color: #8c0012; }
.pharmacy-status-pill.danger { background: #d94d51; color: #fff; }
.pharmacy-status-pill.info { background: #dce2ff; color: #0a309a; }

.pharmacy-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
}

.pharmacy-row-actions a {
    color: #172119;
}

.pharmacy-row-actions button {
    min-width: 92px;
    border: 1px solid var(--portal-line);
    border-radius: 8px;
    background: #e6eee3;
    color: #172119;
    padding: .7rem .9rem;
    font-weight: 700;
}

.pharmacy-row-actions button.blue {
    border-color: #3156cb;
    background: #3156cb;
    color: #fff;
}

.pharmacy-row-actions.icons {
    flex-direction: column;
    gap: .7rem;
}

.pharmacy-inline-search {
    width: min(360px, 100%);
    border-radius: 8px;
    background: #fff;
}

.pharmacy-table-card code {
    color: #53605a;
    font-size: .8rem;
}

.pharmacy-table-card .red {
    color: #b00000;
}

.pharmacy-prescription-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.9rem;
    max-width: 1120px;
    margin: 0 auto;
}

.pharmacy-prescription-card {
    min-height: 330px;
    display: grid;
    gap: .85rem;
    padding: 1.8rem;
}

.pharmacy-prescription-card.flagged {
    border-color: #d30000;
}

.pharmacy-prescription-card.muted {
    opacity: .72;
}

.pharmacy-prescription-card header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pharmacy-prescription-card h3 {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 800;
}

.pharmacy-prescription-card small {
    color: #27362a;
    font-size: .86rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pharmacy-prescription-card > strong {
    color: var(--portal-green);
    font-size: 1.1rem;
}

.pharmacy-prescription-card p {
    margin: 0;
    color: #334037;
}

.pharmacy-date-line {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.pharmacy-warning-box {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    border: 1px solid #f4c8bd;
    border-radius: 6px;
    background: #fff3ee;
    color: #b00000;
    padding: 1rem;
}

.pharmacy-prescription-file {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: #53605a;
}

.pharmacy-prescription-card footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.2rem;
    border-top: 1px solid var(--portal-line);
    margin-top: auto;
    padding-top: 1.2rem;
}

.pharmacy-prescription-card footer a {
    color: var(--portal-green);
    text-decoration: none;
    font-weight: 700;
}

.pharmacy-prescription-card footer .button {
    min-width: 150px;
    border-radius: 6px;
    background: var(--portal-green);
    color: #fff;
    padding: .75rem 1rem;
    text-align: center;
}

.pharmacy-money-card {
    min-height: 230px;
    padding: 1.9rem;
}

.pharmacy-money-card header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.pharmacy-money-card em {
    border-radius: 7px;
    background: #dff4e7;
    color: var(--portal-green);
    padding: .25rem .65rem;
    font-size: .78rem;
    font-style: normal;
    font-weight: 700;
}

.pharmacy-money-card em.blue {
    background: #dce2ff;
    color: #0a309a;
}

.pharmacy-money-card p {
    margin: 0 0 .75rem;
    color: #263028;
    font-size: 1.05rem;
}

.pharmacy-money-card small {
    display: block;
    margin-top: .75rem;
}

.pharmacy-table-card.payout header {
    padding: 1.6rem;
}

.pharmacy-table-card.payout footer {
    justify-content: center;
}

.pharmacy-settings-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 2.5rem;
}

.pharmacy-settings-tabs {
    align-self: start;
    display: grid;
    gap: .6rem;
    padding: .75rem;
}

.pharmacy-settings-tabs a {
    display: flex;
    align-items: center;
    gap: 1rem;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    color: #172119;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: .04em;
}

.pharmacy-settings-tabs a.active {
    background: #e0eee2;
    color: var(--portal-green);
}

.pharmacy-settings-main {
    display: grid;
    gap: 2rem;
}

.pharmacy-settings-card {
    overflow: hidden;
}

.pharmacy-settings-card > header {
    display: flex;
    gap: .9rem;
    border-bottom: 1px solid #d7dfd5;
    padding: 1.65rem 1.9rem;
}

.pharmacy-settings-card > header > .material-symbols-outlined {
    color: var(--portal-green);
    font-size: 1.8rem;
}

.pharmacy-settings-card p {
    margin: .25rem 0 0;
    color: #354036;
}

.pharmacy-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
    padding: 1.9rem;
}

.pharmacy-form-grid label {
    display: grid;
    gap: .5rem;
    color: #172119;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .06em;
}

.pharmacy-form-grid label.wide {
    grid-column: 1 / -1;
}

.pharmacy-form-grid label div {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 58px;
    border: 1px solid var(--portal-line);
    border-radius: 7px;
    background: #edf7eb;
    padding: 0 .95rem;
}

.pharmacy-form-grid input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #172119;
    font-size: 1rem;
    letter-spacing: 0;
}

.pharmacy-form-grid small {
    color: #6a756d;
    font-weight: 400;
    letter-spacing: 0;
}

.pharmacy-hours-list {
    display: grid;
    gap: 1.1rem;
    padding: 1.9rem;
}

.pharmacy-hours-list article {
    display: grid;
    grid-template-columns: 1fr 200px auto 200px auto auto;
    align-items: center;
    gap: 1rem;
    border: 1px solid #d7dfd5;
    border-radius: 7px;
    background: #edf7eb;
    padding: 1rem 1.25rem;
}

.pharmacy-hours-list article.disabled {
    opacity: .55;
}

.pharmacy-hours-list strong {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.pharmacy-hours-list strong span {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #74f491;
}

.pharmacy-hours-list input {
    height: 44px;
    border: 1px solid var(--portal-line);
    border-radius: 6px;
    background: #fff;
    padding: 0 1rem;
}

.pharmacy-hours-list button {
    width: 54px;
    height: 30px;
    position: relative;
    border: 0;
    border-radius: 999px;
    background: #d7dfd5;
}

.pharmacy-hours-list button::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #fff;
}

.pharmacy-hours-list button.on {
    background: var(--portal-green);
}

.pharmacy-hours-list button.on::after {
    left: 28px;
}

.pharmacy-save-row {
    display: flex;
    justify-content: flex-end;
    margin-top: 2rem;
}

@media (max-width: 1199.98px) {
    .pharmacy-portal-app {
        grid-template-columns: 270px minmax(0, 1fr);
    }

    .pharmacy-metric-grid,
    .pharmacy-earnings-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pharmacy-dashboard-grid,
    .pharmacy-settings-layout {
        grid-template-columns: 1fr;
    }

    .pharmacy-hours-list article {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 991.98px) {
    .pharmacy-portal-app {
        grid-template-columns: 1fr;
    }

    .pharmacy-portal-sidebar {
        position: static;
        height: auto;
        grid-template-rows: auto;
    }

    .pharmacy-portal-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pharmacy-settings-link {
        margin: 0 1rem;
    }

    .pharmacy-portal-topbar {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .pharmacy-portal-topbar h1 {
        text-align: left;
    }

    .pharmacy-table-card {
        overflow-x: auto;
    }

    .pharmacy-table-card table {
        min-width: 900px;
    }

    .pharmacy-prescription-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .pharmacy-portal-content {
        width: min(92%, 640px);
        padding-top: 1.5rem;
    }

    .pharmacy-page-heading,
    .pharmacy-page-heading.split,
    .pharmacy-table-card footer,
    .pharmacy-prescription-card header {
        align-items: flex-start;
        flex-direction: column;
    }

    .pharmacy-metric-grid,
    .pharmacy-earnings-grid,
    .pharmacy-portal-nav,
    .pharmacy-form-grid {
        grid-template-columns: 1fr;
    }

    .pharmacy-heading-actions,
    .pharmacy-inline-search,
    .pharmacy-primary-btn,
    .pharmacy-soft-btn {
        width: 100%;
    }

    .pharmacy-segmented-tabs,
    .pharmacy-tab-row {
        width: 100%;
        overflow-x: auto;
    }

    .pharmacy-form-grid label.wide {
        grid-column: auto;
    }
}

.medicine-rating-stars {
    color: #f7941d;
    font-size: 14px !important;
    line-height: 1 !important;
    letter-spacing: 0;
}

.medicine-card-description {
    font-size: 12px;
    line-height: 1.35;
}

.medicine-card-description .material-symbols-outlined {
    font-size: 14px;
}

.medicine-card-footer {
    margin-top: .35rem;
}

.medicine-card-store {
    color: var(--ml-muted);
    font-size: 12px;
    line-height: 1.35;
}

.medicine-card-store .material-symbols-outlined {
    font-size: 14px;
}

.medicine-card-price {
    color: #000000;
    font-size: 15px !important;
    line-height: 1.2;
    font-weight: 700 !important;
}

.medicine-add-button {
    min-width: 48px;
    font-size: 13px;
    font-weight: 500;
}

.home-profile-card {
    height: 100%;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    border: 0 !important;
    border-radius: 8px;
    background: var(--ml-surface);
    box-shadow: var(--ml-shadow);
}

.home-profile-card:hover {
    color: var(--ml-ink);
}

.home-profile-image {
    margin-bottom: .35rem;
}

.home-profile-image .material-symbols-outlined {
    font-size: 3rem;
}

.home-profile-card h3 {
    margin: 0 0 20px;
    color: var(--ml-ink);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 400;
}

.home-profile-card p {
    margin: 0;
    color: var(--ml-muted);
    font-size: 12px;
    line-height: 1.4;
}

.home-profile-price {
    margin-top: auto;
    color: #000000;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 700;
}

.home-practitioner-detail {
    font-size: 12px;
    line-height: 1.35;
    font-weight: 400;
}

.home-practitioner-detail strong {
    font-weight: 700;
}

.home-pharmacy-detail {
    color: var(--ml-primary);
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
}

.home-pharmacy-detail::before {
    content: "";
    width: 1em;
    height: 1em;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 0 rgba(0, 107, 50, 0.36);
    animation: availabilityBlink 1.15s ease-in-out infinite;
    flex: 0 0 auto;
}

.empty-products-card {
    border: 0 !important;
}

@keyframes availabilityBlink {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(0, 107, 50, 0.36);
    }

    50% {
        opacity: 0.32;
        transform: scale(0.72);
        box-shadow: 0 0 0 0.35em rgba(0, 107, 50, 0);
    }
}

.btn-primary,
.btn-success {
    --bs-btn-bg: var(--ml-primary);
    --bs-btn-border-color: var(--ml-primary);
    --bs-btn-hover-bg: #008740;
    --bs-btn-hover-border-color: #008740;
}

.btn-warning {
    --bs-btn-bg: var(--ml-orange);
    --bs-btn-border-color: var(--ml-orange);
    --bs-btn-color: #161d17;
}

.btn-outline-primary {
    --bs-btn-color: var(--ml-blue);
    --bs-btn-border-color: var(--ml-blue);
    --bs-btn-hover-bg: var(--ml-blue);
    --bs-btn-hover-border-color: var(--ml-blue);
}

.btn {
    white-space: normal;
}

.badge-soft {
    border-radius: 999px;
    padding: .42rem .7rem;
    font-size: .75rem;
    font-weight: 800;
}

.badge-success {
    color: #005225;
    background: rgba(0, 166, 81, .14);
}

.badge-warning {
    color: #8a4b00;
    background: rgba(247, 148, 29, .16);
}

.badge-danger {
    color: #93000a;
    background: rgba(220, 38, 38, .14);
}

.badge-info {
    color: #153e93;
    background: rgba(59, 130, 246, .14);
}

.product-image {
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    background:
        linear-gradient(145deg, rgba(0, 107, 50, .16), rgba(53, 87, 188, .12)),
        var(--ml-surface-soft);
    display: grid;
    place-items: center;
    color: var(--ml-primary);
    font-size: 3rem;
    overflow: hidden;
}

.product-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.icon-tile {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #78fc9c;
    color: #00210b;
}

.category-card-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.category-card {
    position: relative;
    min-height: 220px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    border: 1px solid rgba(188, 202, 187, .76);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ml-ink);
    text-decoration: none;
    overflow: hidden;
    box-shadow: var(--ml-shadow);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.category-card::before {
    content: "";
    position: absolute;
    inset: auto -18% -42% 28%;
    height: 72%;
    border-radius: 50%;
    background: var(--category-soft);
}

.category-card:hover {
    color: var(--ml-ink);
    text-decoration: none;
    transform: translateY(-4px);
    border-color: var(--category-main);
    box-shadow: 0 14px 32px rgba(0, 51, 153, .12);
}

.category-card-icon {
    position: relative;
    z-index: 1;
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--category-main);
    color: #ffffff;
}

.category-card-title {
    position: relative;
    z-index: 1;
    color: #111827;
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 800;
}

.category-card-copy {
    position: relative;
    z-index: 1;
    color: #5f6c61;
    font-size: .85rem;
    line-height: 1.45;
}

.category-card-arrow {
    position: relative;
    z-index: 1;
    margin-top: auto;
    color: var(--category-main);
}

.category-card-green {
    --category-main: #008740;
    --category-soft: rgba(0, 135, 64, .14);
}

.category-card-blue {
    --category-main: #1645a8;
    --category-soft: rgba(22, 69, 168, .13);
}

.category-card-mint {
    --category-main: #0f766e;
    --category-soft: rgba(15, 118, 110, .14);
}

.category-card-amber {
    --category-main: #d97706;
    --category-soft: rgba(217, 119, 6, .16);
}

.category-card-violet {
    --category-main: #6d28d9;
    --category-soft: rgba(109, 40, 217, .13);
}

.category-discover-section {
    background: transparent;
}

.category-discover-heading {
    margin-bottom: 2.25rem;
}

.category-discover-eyebrow {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 .55rem;
    color: var(--ml-primary);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .38em;
    text-transform: uppercase;
}

.category-discover-eyebrow::before {
    content: "";
    width: 30px;
    height: 3px;
    border-radius: 999px;
    background: var(--ml-primary);
}

.category-discover-heading h2 {
    margin: 0;
    color: #000000;
    font-size: clamp(2.2rem, 4vw, 3.15rem);
    line-height: 1.05;
    font-weight: 900;
}

.category-discover-heading h2 span {
    color: var(--ml-primary);
}

.category-discover-heading > p:last-child {
    margin: .75rem 0 0;
    color: #92949b;
    font-size: 1.12rem;
    font-weight: 500;
}

.category-discover-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr));
    grid-auto-rows: minmax(220px, auto);
    gap: 1rem;
}

.category-discover-card {
    --category-bg: #090a1a;
    --category-pill: rgba(255, 255, 255, .12);
    --category-accent: #78fc9c;
    position: relative;
    min-height: 220px;
    padding: 1.35rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 14px;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 20%, rgba(255, 255, 255, .09), transparent 30%),
        var(--category-bg);
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 18px 38px rgba(10, 11, 24, .12);
    transition: transform .18s ease, box-shadow .18s ease;
}

.category-discover-card:hover {
    color: #ffffff;
    text-decoration: none;
    transform: translateY(-4px);
    box-shadow: 0 22px 46px rgba(10, 11, 24, .18);
}

.category-discover-card-featured {
    grid-row: span 2;
    min-height: 456px;
    justify-content: flex-end;
}

.category-discover-badge,
.category-discover-title,
.category-discover-count,
.category-discover-action {
    position: relative;
    z-index: 1;
}

.category-discover-badge {
    width: max-content;
    max-width: 100%;
    margin-bottom: .7rem;
    padding: .24rem .48rem;
    border-radius: 999px;
    background: var(--category-pill);
    color: var(--category-accent);
    font-size: 9px !important;
    line-height: 9px !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 400 !important;
}

.category-discover-card .category-discover-badge {
    font-size: 9px !important;
    line-height: 9px !important;
}

.category-discover-badge::before {
    content: "";
    display: inline-block;
    width: .3rem;
    height: .3rem;
    margin-right: .32rem;
    border-radius: 50%;
    background: var(--category-accent);
    vertical-align: .08rem;
}

.category-discover-title {
    max-width: 84%;
    color: #ffffff;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 800;
}

.category-discover-card-featured .category-discover-title {
    font-size: 14px;
}

.category-discover-count {
    margin-top: .4rem;
    color: rgba(255, 255, 255, .68);
    font-size: 10px;
    line-height: 1.35;
    font-weight: 400;
}

.category-discover-action {
    width: max-content;
    min-height: 40px;
    margin-top: 1rem;
    padding: 0 1rem;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 8px;
    background: rgba(255, 255, 255, .1);
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
}

.category-discover-action .material-symbols-outlined {
    font-size: .98rem;
}

.category-discover-watermark {
    position: absolute;
    right: -1rem;
    bottom: .85rem;
    color: rgba(255, 255, 255, .11);
    transform: rotate(-4deg);
    pointer-events: none;
}

.category-discover-watermark .material-symbols-outlined {
    font-size: 7.25rem;
    font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 48;
}

.category-discover-card-featured .category-discover-watermark {
    right: -1.5rem;
    bottom: 8.5rem;
}

.category-discover-card-featured .category-discover-watermark .material-symbols-outlined {
    font-size: 12rem;
}

.category-discover-card-ruby {
    --category-bg: #270101;
    --category-pill: rgba(255, 30, 45, .18);
    --category-accent: #ff1e2d;
}

.category-discover-card-navy {
    --category-bg: #08091b;
    --category-pill: rgba(90, 114, 255, .18);
    --category-accent: #8fa0ff;
}

.category-discover-card-plum {
    --category-bg: #260016;
    --category-pill: rgba(255, 82, 166, .18);
    --category-accent: #ff75b7;
}

.category-discover-card-gold {
    --category-bg: #211400;
    --category-pill: rgba(255, 184, 54, .18);
    --category-accent: #ffbd42;
}

.category-discover-card-teal {
    --category-bg: #002820;
    --category-pill: rgba(58, 225, 192, .18);
    --category-accent: #45e0c0;
}

.category-discover-card-purple {
    --category-bg: #12091e;
    --category-pill: rgba(166, 99, 255, .2);
    --category-accent: #b78cff;
}

.category-discover-card-green {
    --category-bg: #00260c;
    --category-pill: rgba(87, 255, 133, .16);
    --category-accent: #54f879;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    gap: 1.5rem;
}

.dashboard-sidebar {
    position: sticky;
    top: 96px;
    align-self: start;
}

.table-responsive {
    border-radius: 8px;
}

.table {
    min-width: 680px;
}

.form-control,
.form-select {
    min-height: 48px;
    border-radius: 8px;
    border-color: #d7dfd4;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ml-blue);
    box-shadow: 0 0 0 .2rem rgba(0, 51, 153, .12);
}

.site-footer {
    position: relative;
    margin-top: 0 !important;
    padding: clamp(3rem, 6vw, 5.75rem) 0;
    background: #f4f4f4;
    color: #5f666d;
}

.site-footer-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(220px, 1fr) minmax(220px, 0.8fr);
    gap: clamp(2.5rem, 5vw, 5.5rem);
    align-items: start;
}

.site-footer-intro {
    max-width: 31rem;
    margin: 0 0 3rem;
    color: #59616a;
    font-size: 15px;
    line-height: 1.7;
}

.site-footer-help {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    margin-bottom: 3rem;
}

.site-footer-help-icon {
    width: 3.4rem;
    height: 3.4rem;
    flex: 0 0 3.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #68717a;
    font-size: 2.65rem;
}

.site-footer-help-title {
    margin: 0 0 1rem;
    color: #68717a;
    font-size: 1.1rem;
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.site-footer-help a,
.site-footer-column a {
    color: #5f666d;
    text-decoration: none;
    transition: color .2s ease;
}

.site-footer-help a {
    display: block;
    margin-bottom: .55rem;
    font-size: 15px;
    line-height: 1.4;
}

.site-footer-help a strong {
    color: #142331;
    font-weight: 700;
}

.site-footer-help a span {
    color: #5f666d;
    font-weight: 400;
}

.site-footer-help a:hover,
.site-footer-column a:hover {
    color: var(--ml-primary);
}

.site-footer-apps {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1rem;
}

.site-footer-apps a {
    display: inline-flex;
    width: min(100%, 7.75rem);
    text-decoration: none;
}

.site-footer-apps img {
    width: 100%;
    height: auto;
    display: block;
}

.site-footer-column h3 {
    margin: 0 0 2rem;
    padding-bottom: 1.9rem;
    border-bottom: 1px solid #e4e4e4;
    color: #142331;
    font-size: 1.15rem;
    line-height: 1.2;
    font-weight: 700;
    position: relative;
}

.site-footer-column h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 5.2rem;
    height: 3px;
    background: #332b86;
}

.site-footer-column a {
    display: block;
    margin-bottom: 1.35rem;
    font-size: 15px;
    line-height: 1.45;
}

.site-footer-backtop {
    position: absolute;
    right: clamp(1.5rem, 3vw, 3rem);
    bottom: clamp(1.8rem, 4vw, 3.4rem);
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ml-blue);
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(51, 43, 134, 0.22);
}

.site-footer-backtop .material-symbols-outlined {
    font-size: 1.5rem;
}

@media (max-width: 991.98px) {
    .site-footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .site-footer-support {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .site-footer {
        padding: 2.5rem 0 5.5rem;
    }

    .site-footer-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .site-footer-help {
        align-items: flex-start;
        margin-bottom: 2rem;
    }

    .site-footer-intro {
        margin-bottom: 2rem;
    }

    .site-footer-apps a {
        width: min(100%, 7.5rem);
    }

}

.professional-register-page {
    background: #f4fcf0;
    padding: 2.6rem 0 7.5rem;
}

.professional-register-shell {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 5vw, 5.25rem);
    align-items: start;
}

.professional-copy {
    max-width: 430px;
}

.professional-kicker {
    margin: 0 0 1.4rem;
    color: #4169d8;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.professional-copy h1 {
    margin: 0;
    color: #121c13;
    font-size: clamp(2.55rem, 5vw, 4.35rem);
    line-height: 1.14;
    font-weight: 900;
}

.professional-lead {
    margin: 1.8rem 0 2.8rem;
    max-width: 390px;
    color: #566657;
    font-size: 1.25rem;
    line-height: 1.55;
    font-weight: 500;
}

.professional-benefits {
    display: grid;
    gap: 1.5rem;
}

.professional-benefit-card {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 1.1rem;
    align-items: start;
    padding: 1.35rem 1.45rem;
    border-radius: 12px;
    background: #e9f2e6;
}

.professional-benefit-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #00964a;
    color: #ffffff;
}

.professional-benefit-card h2 {
    margin: .2rem 0 1.6rem;
    color: #172017;
    font-size: 1.22rem;
    font-weight: 900;
}

.professional-benefit-card p {
    margin: 0;
    color: #566657;
    line-height: 1.45;
    font-size: .95rem;
}

.professional-photo-card {
    margin-top: 4rem;
    min-height: 260px;
    border-radius: 12px;
    overflow: hidden;
    background: url("../images/professional-register.jpg");
    background-size: cover;
    background-position: center;
}

.professional-form-card {
    width: min(100%, 570px);
    margin-left: auto;
    padding: clamp(2.5rem, 5vw, 4.6rem);
    border: 1px solid #bfd2bd;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 14px 35px rgba(0, 51, 153, .04);
}

.professional-form-card h2 {
    margin: 0 0 2.8rem;
    color: var(--ml-primary);
    font-size: clamp(1.9rem, 3vw, 2.25rem);
    line-height: 1.2;
    font-weight: 900;
}

.professional-form-card > p {
    margin: 0 0 2.5rem;
    color: #59655a;
    font-size: 1.05rem;
    line-height: 1.45;
}

.professional-registration-form {
    display: grid;
    gap: 1.65rem;
}

.professional-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.field-group label {
    display: block;
    margin-bottom: .65rem;
    color: #202a20;
    font-size: .9rem;
    font-weight: 900;
}

.professional-input {
    width: 100%;
    min-height: 60px;
    padding: 0 1.15rem;
    border: 1px solid #c2d5c2;
    border-radius: 8px;
    background: #eef7eb;
    color: #2e3a30;
    font-size: 1.05rem;
    font-weight: 500;
    outline: none;
}

.professional-input:focus {
    border-color: var(--ml-primary);
    box-shadow: 0 0 0 .2rem rgba(0, 107, 50, .12);
}

.professional-select {
    appearance: auto;
}

.professional-submit {
    min-height: 64px;
    margin-top: 1.2rem;
    border: 0;
    border-radius: 8px;
    background: #007a37;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    font-size: 1.18rem;
    font-weight: 900;
    box-shadow: 0 14px 30px rgba(0, 107, 50, .16);
}

.professional-submit:hover {
    background: #006b32;
}

.pharmacy-register-page {
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    padding: clamp(3rem, 6vw, 4.6rem) 0 clamp(5rem, 8vw, 8rem);
}

.pharmacy-register-page > .medilink-shell,
.pharmacy-trust-section > .medilink-shell {
    width: 90%;
    max-width: 1280px;
    margin-inline: auto;
}

.pharmacy-register-hero {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(360px, 1.28fr);
    gap: clamp(2.5rem, 6vw, 4.25rem);
    align-items: start;
}

.pharmacy-register-copy h1 {
    max-width: none;
    margin: 0;
    color: #101810;
    font-size: clamp(2.35rem, 4.8vw, 3.85rem);
    line-height: 1.12;
    font-weight: 900;
}

.pharmacy-register-lead {
    max-width: none;
    margin: 1.55rem 0 2.35rem;
    color: #263326;
    font-size: 15px;
    line-height: 1.75;
    font-weight: 400;
}

.pharmacy-benefit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.pharmacy-benefit-card {
    min-height: 170px;
    padding: 1.45rem 1.35rem;
    border: 1.5px solid #007a37;
    border-radius: 10px;
    background: rgba(255, 255, 255, .56);
}

.pharmacy-benefit-blue {
    border-color: #335fd1;
}

.pharmacy-benefit-red {
    border-color: #d91443;
}

.pharmacy-benefit-icon {
    width: 2.4rem;
    height: 2.4rem;
    margin-bottom: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #ddf5e3;
    color: #007a37;
    font-size: 1.05rem;
}

.pharmacy-benefit-blue .pharmacy-benefit-icon {
    background: #e8efff;
    color: #335fd1;
}

.pharmacy-benefit-red .pharmacy-benefit-icon {
    background: #fee6eb;
    color: #d91443;
}

.pharmacy-benefit-card h2 {
    margin: 0 0 .75rem;
    color: #121a12;
    font-size: 1.05rem;
    line-height: 1.25;
    font-weight: 800;
}

.pharmacy-benefit-card p {
    margin: 0;
    color: #475047;
    font-size: .82rem;
    line-height: 1.55;
}

.pharmacy-network-note {
    margin-top: 3.25rem;
    min-height: 3.25rem;
    padding: .8rem 1rem;
    display: flex;
    align-items: center;
    gap: .75rem;
    border-radius: 8px;
    background: #70ff98;
    color: #07180d;
    font-size: .78rem;
    line-height: 1.25;
}

.pharmacy-network-note .material-symbols-outlined {
    font-size: 1.15rem;
}

.pharmacy-form-card {
    width: 100%;
    padding: clamp(2.2rem, 4vw, 4rem);
    border: 1px solid #c4d2c0;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 18px 30px rgba(0, 69, 28, .12);
}

.pharmacy-form-card h2 {
    margin: 0 0 .45rem;
    color: #0648ce;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    line-height: 1.2;
    font-weight: 700;
}

.pharmacy-form-card > p {
    margin: 0 0 2rem;
    color: #202a20;
    font-size: .94rem;
}

.pharmacy-registration-form {
    display: grid;
    gap: 1.15rem;
}

.pharmacy-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.35rem;
}

.pharmacy-field {
    display: grid;
    gap: .52rem;
}

.pharmacy-field > span:first-child {
    color: #121a12;
    font-size: .76rem;
    line-height: 1.25;
    font-weight: 700;
}

.pharmacy-input-wrap {
    min-height: 3.4rem;
    padding: 0 .95rem;
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid #c6d8c2;
    border-radius: 8px;
    background: #f1faee;
}

.pharmacy-input-wrap .material-symbols-outlined {
    flex: 0 0 auto;
    color: #657368;
    font-size: 1.15rem;
}

.pharmacy-input-wrap input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #253026;
    font: inherit;
    font-size: .95rem;
}

.pharmacy-input-wrap:focus-within {
    border-color: #007a37;
    box-shadow: 0 0 0 .2rem rgba(0, 122, 55, .1);
}

.pharmacy-map-preview {
    width: 100%;
    height: clamp(120px, 16vw, 150px);
    display: block;
    object-fit: cover;
    border-radius: 8px;
}

.pharmacy-terms {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-top: .5rem;
    color: #39463b;
    font-size: .82rem;
    line-height: 1.45;
}

.pharmacy-terms input {
    margin-top: .12rem;
}

.pharmacy-terms a,
.pharmacy-provider-login a {
    color: #0648ce;
    font-weight: 700;
    text-decoration: none;
}

.pharmacy-submit {
    min-height: 4.1rem;
    margin-top: .3rem;
    border: 0;
    border-radius: 8px;
    background: #007a37;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    font-size: 1.05rem;
    font-weight: 800;
}

.pharmacy-submit:hover {
    background: #006b32;
}

.pharmacy-provider-login {
    margin-top: 1.9rem;
    padding-top: 1.9rem;
    border-top: 1px solid #c8d0c8;
    text-align: center;
    color: #3d493f;
    font-size: .82rem;
}

.pharmacy-trust-section {
    padding: 4.5rem 0 5rem;
    background: #eaf5f6;
}

.pharmacy-trust-section h2 {
    margin: 0 0 4rem;
    color: #0648ce;
    text-align: center;
    font-size: clamp(1.6rem, 3vw, 2.15rem);
    font-weight: 700;
}

.pharmacy-testimonial-card {
    width: min(100%, 380px);
    min-height: 350px;
    padding: 3.1rem 2.5rem 2.4rem;
    display: grid;
    justify-items: center;
    align-content: center;
    border-radius: 10px;
    background: #ffffff;
    text-align: center;
}

.pharmacy-testimonial-avatar {
    width: 3.6rem;
    height: 3.6rem;
    margin-bottom: 2rem;
    border: 2px solid #007a37;
    border-radius: 999px;
    overflow: hidden;
}

.pharmacy-testimonial-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pharmacy-testimonial-card blockquote {
    margin: 0 0 2.2rem;
    color: #202a20;
    font-size: .95rem;
    line-height: 1.55;
    font-style: italic;
}

.pharmacy-testimonial-card p {
    margin: 0;
    color: #101810;
    line-height: 1.25;
}

.pharmacy-testimonial-card strong,
.pharmacy-testimonial-card span {
    display: block;
}

.pharmacy-testimonial-card strong {
    font-size: .88rem;
    font-weight: 800;
}

.pharmacy-testimonial-card span {
    font-size: .72rem;
}

@media (max-width: 991.98px) {
    .pharmacy-register-hero {
        grid-template-columns: 1fr;
    }

    .pharmacy-register-copy h1,
    .pharmacy-register-lead {
        max-width: none;
    }

    .pharmacy-form-card {
        padding: 2rem;
    }
}

@media (max-width: 575.98px) {
    .pharmacy-benefit-grid,
    .pharmacy-form-grid {
        grid-template-columns: 1fr;
    }

    .pharmacy-form-card {
        padding: 1.45rem;
    }

    .pharmacy-network-note {
        margin-top: 2rem;
    }

    .pharmacy-testimonial-card {
        min-height: 300px;
        padding: 2rem 1.5rem;
    }
}

.professional-terms {
    margin: 0;
    color: #606d62;
    font-size: .9rem;
    line-height: 1.55;
    text-align: center;
}

.professional-terms a {
    color: #4169d8;
    text-decoration: none;
    font-weight: 600;
}

.professional-verification-note {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: .95rem;
    align-items: center;
    margin-top: 3rem;
    padding: 1.15rem 1.25rem;
    border-radius: 8px;
    background: #dce2ff;
    color: #345ac7;
}

.professional-verification-note p {
    margin: 0;
    color: #345ac7;
    line-height: 1.45;
    font-weight: 500;
}

@media (max-width: 991.98px) {
    .medilink-shell {
        width: 90%;
    }

    .navbar-collapse {
        padding-top: 1rem;
    }

    .navbar-nav {
        align-items: stretch !important;
    }

    .ecommerce-brand {
        width: 205px;
        max-width: calc(100% - 4.75rem);
    }

    .ecommerce-search {
        margin: 0 0 1rem;
        min-width: 0;
        flex-basis: auto;
    }

    .ecommerce-actions {
        gap: .85rem;
    }

    .ecommerce-action-link {
        justify-content: flex-start;
        min-height: 44px;
    }

    .navbar .btn,
    .navbar form,
    .navbar form .btn {
        width: 100%;
        text-align: left;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .marketplace-hero-grid {
        grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
    }

    .marketplace-hero-aside {
        grid-column: 1 / -1;
        height: auto;
    }

    .marketplace-action-panel {
        grid-template-columns: 1fr;
        align-content: center;
    }

    .marketplace-aside-promo {
        min-height: 190px;
    }

    .home-banner-slider {
        min-height: clamp(270px, 35vw, 340px);
    }

    .category-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-carousel-track {
        grid-auto-columns: calc((100% - 1rem) / 2);
    }

    .category-discover-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: minmax(200px, auto);
    }

    .category-discover-card-featured {
        grid-column: span 2;
        grid-row: auto;
        min-height: 260px;
    }

    .category-discover-card-featured .category-discover-watermark {
        right: -1.5rem;
        bottom: 1rem;
    }

    .dashboard-sidebar {
        position: static;
        overflow-x: auto;
    }

    .dashboard-sidebar .list-group {
        display: flex;
        flex-direction: row;
        min-width: max-content;
    }

    .dashboard-sidebar .list-group-item {
        white-space: nowrap;
        border-width: 1px;
    }

    .professional-register-shell {
        grid-template-columns: 1fr;
    }

    .professional-copy {
        max-width: none;
    }

    .professional-form-card {
        margin-left: 0;
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .medilink-shell {
        width: 90%;
    }

    .topbar .medilink-shell {
        justify-content: center !important;
        gap: .75rem !important;
        text-align: center;
    }

    .topbar-link {
        font-size: .76rem;
    }

    .navbar-brand {
        max-width: calc(100% - 4rem);
    }

    .ecommerce-navbar {
        min-height: 68px;
    }

    .ecommerce-brand {
        width: 170px;
    }

    .ecommerce-search {
        min-height: 46px;
        padding-left: .8rem;
    }

    .ecommerce-search input {
        font-size: .84rem;
    }

    .ecommerce-search button {
        padding: 0 1rem;
    }

    .ecommerce-actions {
        gap: .35rem;
    }

    .hero-visual {
        min-height: 280px;
    }

    .marketplace-hero-section {
        padding-top: .75rem;
    }

    .marketplace-hero-grid {
        grid-template-columns: 1fr;
        gap: .75rem;
    }

    .marketplace-side-nav {
        display: flex;
        gap: .2rem;
        overflow-x: auto;
        padding: .45rem;
        scrollbar-width: thin;
    }

    .marketplace-side-nav a {
        flex: 0 0 auto;
        min-height: 38px;
        padding: .35rem .65rem;
        border-radius: 8px;
        background: #f8faf8;
        font-size: 15px;
        white-space: nowrap;
    }

    .marketplace-side-nav .material-symbols-outlined {
        width: auto;
        font-size: 1.1rem;
    }

    .marketplace-hero-aside {
        height: auto;
    }

    .marketplace-action-panel {
        grid-template-columns: 1fr;
        gap: .65rem;
        padding: .85rem;
    }

    .marketplace-action-card {
        min-height: 58px;
        padding: .45rem 0;
        grid-template-columns: 34px 1fr;
    }

    .marketplace-action-icon {
        width: 30px;
        height: 30px;
    }

    .marketplace-action-icon .material-symbols-outlined {
        font-size: 1rem;
    }

    .marketplace-action-card strong {
        font-size: 15px;
        font-weight: 600;
    }

    .marketplace-action-card span {
        font-size: 13px;
        font-weight: 400;
    }

    .home-banner-slide img {
        height: 100%;
    }

    .home-banner-slider {
        height: auto;
        min-height: clamp(230px, 62vw, 320px);
    }

    .ml-card {
        padding: 1.25rem !important;
    }

    .ml-card form.d-flex,
    form.ml-card.d-flex {
        flex-direction: column;
    }

    .table {
        min-width: 600px;
    }

    .category-card-grid {
        grid-template-columns: 1fr;
    }

    .product-carousel-track {
        grid-auto-columns: 82%;
        gap: .85rem;
        padding-inline: .1rem;
    }

    .product-carousel-control {
        width: 34px;
        height: 34px;
    }

    .product-carousel-control-prev {
        left: -12px;
    }

    .product-carousel-control-next {
        right: -12px;
    }

    .category-card {
        min-height: 180px;
    }

    .category-discover-heading {
        margin-bottom: 1.45rem;
    }

    .category-discover-eyebrow {
        font-size: .68rem;
        letter-spacing: .26em;
    }

    .category-discover-heading h2 {
        font-size: 2rem;
    }

    .category-discover-heading > p:last-child {
        font-size: .95rem;
    }

    .category-discover-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        gap: 1rem;
    }

    .category-discover-card,
    .category-discover-card-featured {
        grid-column: auto;
        min-height: 178px;
        padding: 1.1rem;
        border-radius: 12px;
    }

    .category-discover-title,
    .category-discover-card-featured .category-discover-title {
        max-width: 78%;
        font-size: 14px;
    }

    .category-discover-watermark,
    .category-discover-card-featured .category-discover-watermark {
        right: -1rem;
        bottom: .4rem;
    }

    .category-discover-watermark .material-symbols-outlined,
    .category-discover-card-featured .category-discover-watermark .material-symbols-outlined {
        font-size: 6.25rem;
    }

    .professional-register-page {
        padding-top: 2rem;
    }

    .professional-copy h1 {
        font-size: 2.25rem;
    }

    .professional-lead {
        font-size: 1rem;
    }

    .professional-form-card {
        padding: 1.5rem;
    }

    .professional-form-grid {
        grid-template-columns: 1fr;
    }

    .professional-benefit-card {
        grid-template-columns: 1fr;
    }

    .professional-photo-card {
        min-height: 210px;
    }

    .professional-submit {
        font-size: 1rem;
        padding-inline: .9rem;
    }
}

.marketplace-side-nav a,
.marketplace-side-nav a span:not(.material-symbols-outlined) {
    font-size: 13px;
}

.marketplace-action-card strong,
.marketplace-action-title {
    font-size: 10px !important;
    line-height: 1.2;
}

.marketplace-action-card:nth-child(2) strong {
    font-size: 10px !important;
}

.marketplace-action-card:nth-child(3) strong {
    font-size: 10px !important;
}

.marketplace-action-card span {
    font-size: 12px;
}

.marketplace-action-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    box-sizing: border-box;
}

.marketplace-action-icon .material-symbols-outlined {
    font-size: 1rem;
}

.marketplace-action-icon svg {
    width: 17px;
    height: 17px;
}

@media (max-width: 767.98px) {
    .marketplace-action-icon {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }

    .marketplace-action-icon .material-symbols-outlined {
        font-size: .95rem;
    }
}

.practitioner-register-page {
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    padding: clamp(2.6rem, 5vw, 4.3rem) 0 clamp(5rem, 8vw, 7.5rem);
}

.practitioner-register-page [hidden] {
    display: none !important;
}

.practitioner-flow-form {
    margin: 0;
}

.practitioner-register-intro {
    max-width: 100%;
    margin: 0 auto clamp(3rem, 5vw, 4.6rem);
    text-align: center;
}

.practitioner-register-intro h1,
.practitioner-verification-copy h1 {
    margin: 0;
    color: #005524;
    font-size: clamp(2rem, 4.2vw, 3rem);
    line-height: 1.15;
    font-weight: 800;
}

.practitioner-register-intro p,
.practitioner-verification-copy > p {
    max-width: 760px;
    margin: 1.25rem auto 0;
    color: #1f2a22;
    font-size: 15px;
    line-height: 1.7;
}

.practitioner-register-layout {
    width: 100%;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.practitioner-form-card,
.practitioner-verification-card {
    border: 1px solid rgba(0, 85, 36, .16);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(0, 64, 28, .08);
}

.practitioner-form-card {
    padding: clamp(2rem, 5vw, 3.6rem);
    border-top: 4px solid #007a37;
}

.practitioner-form-card h2 {
    margin: 0 0 1.75rem;
    color: #111a14;
    font-size: clamp(1.55rem, 3vw, 2.05rem);
    line-height: 1.15;
    font-weight: 800;
}

.practitioner-form-card,
.practitioner-benefit-panel,
.practitioner-verification-layout {
    font-size: 15px;
}

.practitioner-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.35rem 1.5rem;
}

.practitioner-field {
    display: grid;
    gap: .55rem;
    margin-bottom: 1.35rem;
}

.practitioner-field label {
    color: #0d1510;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.practitioner-input-wrap {
    min-height: 58px;
    display: grid;
    grid-template-columns: 28px 1fr;
    align-items: center;
    gap: .8rem;
    padding: 0 1rem;
    border: 1px solid #bed0bd;
    border-radius: 7px;
    background: #f1f8ee;
}

.practitioner-input-wrap .material-symbols-outlined {
    color: #6a786d;
    font-size: 1.25rem;
}

.practitioner-input-wrap input,
.practitioner-input-wrap select,
.practitioner-plain-input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #172018;
    font: inherit;
}

.practitioner-input-wrap select {
    appearance: auto;
}

.practitioner-input-wrap input::placeholder,
.practitioner-plain-input::placeholder {
    color: #6d7b72;
}

.practitioner-check {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: .85rem;
    align-items: start;
    margin: .2rem 0 1.6rem;
    color: #2e3831;
    font-size: 13px;
    line-height: 1.5;
}

.practitioner-check input {
    width: 18px;
    height: 18px;
    margin-top: .1rem;
    accent-color: #007a37;
}

.practitioner-check a,
.practitioner-back-button {
    color: #004bd6;
    text-decoration: none;
}

.practitioner-primary-button {
    width: 100%;
    min-height: 60px;
    border: 0;
    border-radius: 7px;
    background: #007a37;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    font-size: 1.05rem;
    font-weight: 800;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.practitioner-primary-button:hover {
    background: #005f2b;
    box-shadow: 0 10px 24px rgba(0, 122, 55, .18);
    transform: translateY(-1px);
}

.practitioner-inline-note {
    margin: 1.1rem 0 0;
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: .85rem;
    color: #405046;
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
}

.practitioner-inline-note .material-symbols-outlined {
    color: #25312a;
    font-size: 1.05rem;
}

.practitioner-benefit-panel {
    display: grid;
    gap: 1.45rem;
}

.practitioner-benefit-panel h2 {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #0d1510;
    font-size: 1.25rem;
    font-weight: 800;
}

.practitioner-benefit-panel h2 .material-symbols-outlined {
    color: #007a37;
    font-size: 1.4rem;
}

.practitioner-benefit-card {
    min-height: 170px;
    padding: 1.7rem;
    border: 1px solid rgba(0, 85, 36, .1);
    border-radius: 8px;
    background: rgba(255, 255, 255, .52);
}

.practitioner-benefit-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    margin-bottom: 1.35rem;
    border-radius: 50%;
}

.practitioner-benefit-icon .material-symbols-outlined {
    font-size: 1.35rem;
}

.practitioner-benefit-icon.green {
    background: #d8ead8;
    color: #005524;
}

.practitioner-benefit-icon.blue {
    background: #dceafb;
    color: #0054d1;
}

.practitioner-benefit-icon.red {
    background: #f4dddd;
    color: #a62020;
}

.practitioner-benefit-card h3 {
    margin: 0 0 .8rem;
    color: #0f1712;
    font-size: 1.15rem;
    font-weight: 800;
}

.practitioner-benefit-card p {
    margin: 0;
    color: #2e3831;
    font-size: 14px;
    line-height: 1.6;
}

.practitioner-testimonial {
    margin-top: 1.4rem;
    padding: 1.7rem;
    border-radius: 8px;
    background: #dce5d9;
    color: #172018;
}

.practitioner-testimonial-person {
    display: flex;
    align-items: center;
    gap: .9rem;
    margin-bottom: 1.3rem;
}

.practitioner-testimonial-person img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.practitioner-testimonial-person strong,
.practitioner-testimonial-person span {
    display: block;
}

.practitioner-testimonial-person strong {
    font-size: 14px;
    font-weight: 800;
}

.practitioner-testimonial-person span {
    font-size: 12px;
}

.practitioner-testimonial blockquote {
    margin: 0;
    color: #1d271f;
    font-size: 13px;
    font-style: italic;
    line-height: 1.65;
}

.practitioner-verification-layout {
    display: grid;
    grid-template-columns: minmax(260px, .45fr) minmax(0, 1fr);
    gap: clamp(1.8rem, 4vw, 4rem);
    align-items: start;
}

.practitioner-verification-copy {
    padding-top: 1.8rem;
}

.practitioner-verification-copy h1 {
    font-size: clamp(1.9rem, 3.6vw, 2.45rem);
}

.practitioner-verification-copy > p {
    margin: 1.3rem 0 4rem;
}

.practitioner-progress {
    display: grid;
    gap: 1rem;
    margin-bottom: 4.5rem;
}

.practitioner-progress > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #101812;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
}

.practitioner-progress-bar {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #d5dfd4;
}

.practitioner-progress-bar span {
    display: block;
    width: 100%;
    height: 100%;
    background: #005524;
}

.practitioner-progress p {
    margin: .2rem 0 0;
    color: #647067;
    font-size: 14px;
}

.practitioner-verification-copy img {
    width: 100%;
    aspect-ratio: 16 / 10;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid rgba(0, 85, 36, .14);
}

.practitioner-verification-card {
    padding: clamp(2rem, 4vw, 3rem);
    background: rgba(255, 255, 255, .55);
}

.practitioner-verification-heading {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding-bottom: 1.6rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid rgba(0, 85, 36, .13);
}

.practitioner-verification-heading .material-symbols-outlined {
    color: #007a37;
    font-size: 2rem;
}

.practitioner-verification-heading h2 {
    margin: 0;
    color: #0f1712;
    font-size: 1.45rem;
    font-weight: 800;
}

.practitioner-verification-message {
    margin: 0 0 2.2rem;
    padding: 1.4rem;
    border: 1px solid rgba(0, 85, 36, .1);
    border-radius: 7px;
    background: rgba(255, 255, 255, .45);
    color: #1f2a22;
    font-size: 15px;
    line-height: 1.65;
}

.practitioner-verification-message strong {
    color: #005524;
    font-weight: 800;
}

.practitioner-plain-input {
    min-height: 50px;
    padding: 0 1rem;
    border: 1px solid #94a595;
    border-radius: 7px;
    background: #ffffff;
}

.practitioner-upload-zone {
    min-height: 250px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .65rem;
    padding: 2rem;
    border: 1.5px dashed #657363;
    border-radius: 8px;
    background: rgba(255, 255, 255, .68);
    text-align: center;
    cursor: pointer;
}

.practitioner-upload-zone .material-symbols-outlined {
    color: #007a37;
    font-size: 2.8rem;
}

.practitioner-upload-zone strong {
    color: #101812;
    font-size: 1.35rem;
    font-weight: 800;
}

.practitioner-upload-zone small {
    color: #303d34;
    font-size: 14px;
}

.practitioner-upload-zone em {
    margin-top: .6rem;
    padding: .25rem 1rem;
    border-radius: 999px;
    background: #dce5d9;
    color: #667165;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
}

.practitioner-declaration {
    margin-top: 3.2rem;
    font-size: 14px;
}

.practitioner-verification-actions {
    display: grid;
    grid-template-columns: minmax(180px, .42fr) minmax(240px, .58fr);
    gap: 1.5rem;
    align-items: center;
    padding-top: 2.5rem;
    margin-top: 4rem;
    border-top: 1px solid rgba(0, 85, 36, .13);
}

.practitioner-back-button {
    border: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
}

@media (max-width: 991.98px) {
    .practitioner-register-layout,
    .practitioner-verification-layout {
        grid-template-columns: 1fr;
    }

    .practitioner-benefit-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .practitioner-benefit-panel h2,
    .practitioner-testimonial {
        grid-column: 1 / -1;
    }

    .practitioner-verification-copy > p,
    .practitioner-progress {
        margin-bottom: 2rem;
    }
}

@media (max-width: 767.98px) {
    .practitioner-register-page {
        padding-top: 2rem;
    }

    .practitioner-register-intro {
        text-align: left;
    }

    .practitioner-register-intro p {
        margin-left: 0;
    }

    .practitioner-form-grid,
    .practitioner-benefit-panel,
    .practitioner-verification-actions {
        grid-template-columns: 1fr;
    }

    .practitioner-form-card,
    .practitioner-verification-card,
    .practitioner-benefit-card,
    .practitioner-testimonial {
        padding: 1.35rem;
    }

    .practitioner-input-wrap {
        min-height: 54px;
    }

    .practitioner-upload-zone {
        min-height: 210px;
        padding: 1.4rem;
    }

.practitioner-upload-zone strong {
    font-size: 1.05rem;
}

    .practitioner-verification-actions {
        margin-top: 2rem;
        padding-top: 1.8rem;
    }
}

.shop-page {
    min-height: 100%;
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
}

.shop-layout {
    width: 90%;
    max-width: 1280px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    align-items: start;
}

.shop-sidebar {
    height: auto;
    margin-top: 2.65rem;
    margin-bottom: clamp(4rem, 10vw, 8rem);
    padding: 1.45rem 1.15rem 1.65rem;
    align-self: start;
    border: 0;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(0, 64, 28, .09);
}

.shop-sidebar-heading {
    margin-bottom: 1.45rem;
}

.shop-sidebar-heading h1 {
    margin: 0 0 .25rem;
    color: #005524;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 800;
}

.shop-filter-group {
    display: grid;
    gap: .45rem;
    margin-bottom: 1.7rem;
}

.shop-filter-group + .shop-filter-group {
    padding-top: 1.7rem;
    border-top: 1px solid rgba(0, 85, 36, .16);
}

.shop-filter-group h2 {
    margin: 0 0 .85rem;
    color: #6a9776;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.shop-filter-group a {
    min-height: 44px;
    padding: .8rem .85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-radius: 8px;
    color: #455046;
    font-size: 14px;
    text-decoration: none;
    transition: background .18s ease, color .18s ease;
}

.shop-filter-group a:hover,
.shop-filter-group a.is-active {
    color: #005524;
    background: rgba(0, 85, 36, .1);
}

.shop-filter-group a.is-active {
    font-weight: 800;
}

.shop-filter-group a .material-symbols-outlined {
    font-size: 1rem;
}

.shop-filter-form {
    margin: 0;
}

.shop-check {
    display: flex;
    align-items: center;
    gap: .8rem;
    color: #455046;
    font-size: 14px;
    line-height: 1.4;
}

.shop-check input {
    width: 17px;
    height: 17px;
    accent-color: #007a37;
}

.shop-price-range {
    width: 100%;
    accent-color: #007a37;
}

.shop-price-scale {
    display: flex;
    justify-content: space-between;
    color: #7a857d;
    font-size: 12px;
}

.shop-filter-button {
    display: none;
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 8px;
    background: #007a37;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
}

.shop-content {
    min-width: 0;
    padding: 2.65rem 0 5rem 1.75rem;
}

.shop-breadcrumb {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 1.1rem;
    color: #59655c;
    font-size: 14px;
}

.shop-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.shop-breadcrumb strong {
    color: #1c251f;
    font-weight: 800;
}

.shop-breadcrumb .material-symbols-outlined {
    color: #7d8a80;
    font-size: 1rem;
}

.shop-promo {
    min-height: 190px;
    margin-bottom: 4.1rem;
    padding: clamp(1.6rem, 4vw, 2.6rem) clamp(1.6rem, 5vw, 4rem);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    overflow: hidden;
    border-radius: 10px;
    background: #007a37;
    color: #ffffff;
}

.shop-promo h2 {
    margin: 0 0 .8rem;
    color: rgba(255, 255, 255, .68);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1.1;
    font-weight: 800;
}

.shop-promo p {
    max-width: 720px;
    margin: 0 0 1.8rem;
    color: rgba(255, 255, 255, .7);
    font-size: clamp(1rem, 2vw, 1.35rem);
    line-height: 1.45;
    font-weight: 600;
}

.shop-promo a {
    min-width: 142px;
    min-height: 48px;
    padding: .8rem 1.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #ffffff;
    color: #006b32;
    text-decoration: none;
    font-weight: 800;
}

.shop-promo > .material-symbols-outlined {
    color: rgba(255, 255, 255, .08);
    font-size: clamp(5.5rem, 12vw, 9rem);
}

.shop-banner-slider {
    position: relative;
    min-height: 220px;
    margin-bottom: 2rem;
    overflow: hidden;
    border-radius: 10px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 10px 24px rgba(0, 64, 28, .08);
}

.shop-banner-slider.is-empty {
    min-height: 120px;
    display: grid;
    place-items: center;
    color: #637069;
    font-size: 13px;
}

.shop-banner-track,
.shop-banner-slide {
    position: absolute;
    inset: 0;
}

.shop-banner-slide {
    opacity: 0;
    transition: opacity .45s ease;
}

.shop-banner-slide.is-active {
    opacity: 1;
}

.shop-banner-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.shop-banner-dots {
    position: absolute;
    left: 50%;
    bottom: .8rem;
    z-index: 2;
    display: flex;
    gap: .4rem;
    transform: translateX(-50%);
}

.shop-banner-dots span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .68);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .08);
}

.shop-banner-dots span.is-active {
    background: #f7941d;
}

.shop-results-header {
    margin-bottom: 1.55rem;
    padding: 1.05rem 1.15rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, .48);
}

.shop-results-header > div {
    display: flex;
    align-items: baseline;
    gap: .7rem;
    min-width: 0;
}

.shop-results-header h2 {
    margin: 0;
    color: #172018;
    font-size: 15px;
    line-height: 1.25;
    font-weight: 800;
}

.shop-results-header span,
.shop-sort-form label {
    color: #5c685e;
    font-size: 14px;
}

.shop-sort-form {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: 0;
    white-space: nowrap;
}

.shop-sort-form select {
    min-width: 150px;
    border: 0;
    outline: 0;
    background: transparent;
    color: #1c251f;
    font: inherit;
    font-weight: 800;
}

.shop-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.6rem;
}

.shop-load-more {
    min-height: 42px;
    margin-top: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    color: #5e6b62;
    font-size: 12px;
}

.shop-load-more[hidden],
.js-ready .shop-pagination {
    display: none !important;
}

.shop-load-more .material-symbols-outlined {
    color: #007a37;
    font-size: 1rem;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.shop-home-card {
    min-width: 0;
}

.shop-home-card .medicine-card {
    height: 100%;
}

.shop-product-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(0, 85, 36, .18);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 64, 28, .08);
}

.shop-product-media {
    position: relative;
    min-height: 220px;
    padding: 3rem 1.45rem 1.7rem;
    display: block;
    background: #f4f8f2;
    text-decoration: none;
}

.shop-product-media img {
    display: block;
    width: 100%;
    height: 155px;
    object-fit: cover;
    box-shadow: 0 14px 24px rgba(14, 40, 22, .08);
}

.shop-product-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    min-height: 24px;
    padding: .25rem .75rem;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1;
    text-transform: uppercase;
}

.shop-product-badge .material-symbols-outlined {
    font-size: .85rem;
}

.shop-product-badge.is-stock {
    background: #80ffa7;
    color: #007a37;
}

.shop-product-badge.is-rx {
    background: #ffd6df;
    color: #bd4464;
}

.shop-product-body {
    flex: 1 1 auto;
    padding: 1.35rem 1.35rem 1.25rem;
    display: flex;
    flex-direction: column;
}

.shop-product-store {
    margin: 0 0 .75rem;
    color: #177146;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.shop-product-title {
    margin: 0 0 .85rem;
    color: #172018;
    font-size: 1.15rem;
    line-height: 1.2;
    font-weight: 800;
    text-decoration: none;
}

.shop-product-description {
    min-height: 66px;
    margin: 0 0 .75rem;
    color: #778179;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: 14px;
    line-height: 1.5;
}

.shop-product-rating {
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .35rem;
    color: #7b847d;
    font-size: 12px;
}

.shop-product-rating span {
    color: #f7941d;
    letter-spacing: 0;
}

.shop-product-rating small {
    color: #667066;
    font-size: 12px;
}

.shop-product-footer {
    margin-top: auto;
    padding-top: 1.15rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid rgba(0, 85, 36, .1);
}

.shop-product-footer strong {
    color: #007a37;
    font-size: 1.25rem;
    line-height: 1.1;
    font-weight: 800;
}

.shop-product-footer form {
    margin: 0;
}

.shop-cart-button {
    width: 48px;
    height: 48px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 10px;
    background: #007a37;
    color: #ffffff;
    box-shadow: 0 6px 14px rgba(0, 85, 36, .24);
}

.shop-cart-button .material-symbols-outlined {
    font-size: 1.35rem;
}

.shop-rx-button {
    min-height: 38px;
    padding: .55rem 1.3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #007a37;
    border-radius: 10px;
    color: #007a37;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.shop-empty-state {
    padding: 3rem 1.5rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, .58);
    color: #69746c;
    text-align: center;
}

.shop-pagination {
    margin-top: 4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .7rem;
}

.shop-pagination a,
.shop-pagination span {
    width: 40px;
    height: 40px;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(0, 85, 36, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .48);
    color: #536057;
    text-decoration: none;
    font-size: 15px;
}

.shop-pagination a.is-active {
    border-color: #007a37;
    background: #007a37;
    color: #ffffff;
}

.shop-pagination a.is-disabled {
    pointer-events: none;
    opacity: .45;
}

.shop-pagination .material-symbols-outlined {
    font-size: 1.2rem;
}

.product-detail-page {
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    padding: 2.5rem 0 5rem;
}

.product-detail-shell {
    display: grid;
    gap: 2.2rem;
}

.product-detail-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    color: #162018;
    font-size: 12px;
}

.product-detail-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.product-detail-breadcrumb strong {
    color: #005524;
    font-weight: 800;
}

.product-detail-breadcrumb .material-symbols-outlined {
    color: #6f7a71;
    font-size: .95rem;
}

.product-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, .83fr);
    gap: clamp(2rem, 5vw, 3.2rem);
    align-items: start;
}

.product-detail-gallery {
    min-width: 0;
}

.product-detail-main-image {
    position: relative;
    overflow: hidden;
    min-height: clamp(320px, 42vw, 480px);
    border-radius: 8px;
    background: #ffffff;
}

.product-detail-main-image img {
    width: 100%;
    height: 100%;
    min-height: clamp(320px, 42vw, 480px);
    display: block;
    object-fit: cover;
}

.product-detail-rx-pill {
    position: absolute;
    top: 1.4rem;
    right: 1.4rem;
    z-index: 1;
    min-height: 34px;
    padding: .55rem 1.1rem;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border-radius: 999px;
    background: #cf4567;
    color: #ffffff;
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
}

.product-detail-rx-pill .material-symbols-outlined {
    font-size: .95rem;
}

.product-detail-thumbs {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.product-detail-thumbs button {
    aspect-ratio: 1.25 / 1;
    overflow: hidden;
    border: 0;
    border-radius: 8px;
    background: #dfe9dc;
    display: grid;
    place-items: center;
}

.product-detail-thumbs img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.product-detail-video-thumb .material-symbols-outlined {
    color: #172018;
    font-size: 2.15rem;
}

.product-detail-summary {
    min-width: 0;
}

.product-detail-category {
    margin: 0 0 .45rem;
    color: #0648ce;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.product-detail-summary h1 {
    margin: 0 0 .75rem;
    color: #050b07;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    font-weight: 800;
}

.product-detail-generic {
    margin: 0 0 1.55rem;
    color: #4a554e;
    font-size: 14px;
    line-height: 1.45;
}

.product-detail-meta-row {
    padding-bottom: 1.45rem;
    margin-bottom: 1.25rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    border-bottom: 1px solid rgba(0, 85, 36, .16);
}

.product-detail-pharmacy,
.product-detail-stock {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    border-radius: 8px;
}

.product-detail-pharmacy {
    gap: .5rem;
    padding: .45rem .85rem;
    background: rgba(0, 85, 36, .08);
    color: #172018;
    font-size: 14px;
    font-weight: 800;
}

.product-detail-pharmacy .material-symbols-outlined {
    color: #007a37;
    font-size: 1.1rem;
}

.product-detail-stock {
    padding: .45rem 1rem;
    font-size: 12px;
    font-weight: 800;
}

.product-detail-stock.is-available {
    background: #80ffa7;
    color: #007a37;
}

.product-detail-stock.is-unavailable {
    background: #f0d9d9;
    color: #9b1c1c;
}

.product-detail-price-block {
    padding-bottom: 1.45rem;
    margin-bottom: 1.45rem;
    border-bottom: 1px solid rgba(0, 85, 36, .16);
}

.product-detail-price-block div {
    margin-bottom: .3rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #172018;
    font-size: 13px;
}

.product-detail-price-block small {
    color: #59655d;
    text-decoration: line-through;
}

.product-detail-price-block strong {
    display: block;
    color: #007a37;
    font-size: clamp(2.2rem, 4.3vw, 3.1rem);
    line-height: 1;
    font-weight: 800;
}

.product-detail-primary-action,
.product-detail-secondary-action {
    width: 100%;
    min-height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 800;
    text-decoration: none;
}

.product-detail-primary-action {
    border: 0;
    background: #007a37;
    color: #ffffff;
}

.product-detail-primary-action:hover {
    color: #ffffff;
    background: #00632e;
}

.product-detail-secondary-action {
    margin-top: 1rem;
    border: 0;
    background: rgba(0, 85, 36, .12);
    color: rgba(0, 85, 36, .38);
}

.product-detail-note {
    margin: 1rem 0 1.45rem;
    display: flex;
    justify-content: center;
    gap: .35rem;
    color: #2d382f;
    font-size: 12px;
    line-height: 1.45;
    text-align: center;
}

.product-detail-note .material-symbols-outlined {
    font-size: .95rem;
}

.product-detail-cart-form {
    display: grid;
    gap: 1rem;
}

.product-detail-cart-form label {
    display: grid;
    gap: .35rem;
    color: #4d5a50;
    font-size: 12px;
    font-weight: 700;
}

.product-detail-cart-form input {
    min-height: 48px;
    padding: 0 1rem;
    border: 1px solid rgba(0, 85, 36, .18);
    border-radius: 8px;
    background: #ffffff;
    font: inherit;
}

.product-detail-partner-card {
    margin-top: 1.25rem;
    padding: 1.25rem;
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 1rem;
    align-items: center;
    border: 1px solid rgba(0, 85, 36, .18);
    border-radius: 10px;
    background: rgba(255, 255, 255, .48);
}

.product-detail-partner-card > .material-symbols-outlined {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #ffffff;
    color: #007a37;
    font-size: 1.7rem;
}

.product-detail-partner-card strong {
    display: block;
    margin-bottom: .2rem;
    color: #162018;
    font-size: 14px;
    font-weight: 800;
}

.product-detail-partner-card p {
    margin: 0;
    color: #4b574e;
    font-size: 12px;
    line-height: 1.45;
}

.product-detail-info {
    margin-top: 4.3rem;
}

.product-detail-tabs {
    display: flex;
    align-items: center;
    gap: clamp(2rem, 7vw, 5.5rem);
    border-bottom: 1px solid rgba(0, 85, 36, .2);
}

.product-detail-tabs a {
    position: relative;
    padding: 0 0 1rem;
    color: #0f1712;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.product-detail-tabs a.is-active {
    color: #007a37;
}

.product-detail-tabs a.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    background: #007a37;
}

.product-detail-copy-grid {
    padding-top: 2.6rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr);
    gap: clamp(2rem, 6vw, 4.5rem);
}

.product-detail-copy-grid article,
.product-detail-composition {
    min-width: 0;
}

.product-detail-copy-grid article:nth-of-type(n + 2) {
    padding-top: 1.5rem;
    grid-column: 1 / -1;
    border-top: 1px solid rgba(0, 85, 36, .1);
}

.product-detail-copy-grid h2,
.product-detail-composition h2 {
    margin: 0 0 1rem;
    color: #172018;
    font-size: 15px;
    font-weight: 800;
}

.product-detail-copy-grid p,
.product-detail-composition li {
    color: #263127;
    font-size: 14px;
    line-height: 1.75;
}

.product-detail-composition {
    padding: 1.5rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, .42);
}

.product-detail-composition ul {
    margin: 0;
    padding-left: 1.1rem;
}

.product-detail-related {
    margin-top: 4.5rem;
    padding-top: 3.3rem;
    border-top: 1px solid rgba(0, 85, 36, .2);
}

.product-detail-related-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2.2rem;
}

.product-detail-related-header h2 {
    margin: 0;
    color: #0f1712;
    font-size: 1.45rem;
    font-weight: 800;
}

.product-detail-related-header a {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #007a37;
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
}

.product-detail-related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1.55rem;
}

.product-detail-related-card .medicine-card {
    height: 100%;
}

.prescription-upload-page {
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    padding: clamp(3rem, 6vw, 5rem) 0 clamp(5rem, 8vw, 7.5rem);
}

.prescription-upload-shell {
    display: grid;
    justify-items: center;
}

.prescription-stepper {
    position: relative;
    width: min(100%, 860px);
    margin-bottom: clamp(4rem, 7vw, 6rem);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.prescription-stepper::before,
.prescription-stepper::after {
    content: "";
    position: absolute;
    left: 4%;
    right: 4%;
    top: 28px;
    height: 4px;
    background: #dce5d9;
}

.prescription-stepper::after {
    right: 66.666%;
    background: #007a37;
    z-index: 1;
}

.prescription-step {
    position: relative;
    z-index: 2;
    display: grid;
    justify-items: center;
    gap: .95rem;
    color: #172018;
    text-align: center;
}

.prescription-step span {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #dce5d9;
    color: #172018;
    font-size: 1.15rem;
    font-weight: 800;
}

.prescription-step.is-active span {
    background: #007a37;
    color: #ffffff;
}

.prescription-step strong {
    color: #172018;
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.prescription-step.is-active strong {
    color: #007a37;
}

.prescription-upload-heading {
    max-width: 690px;
    margin-bottom: 3rem;
    text-align: center;
}

.prescription-upload-heading h1 {
    margin: 0 0 1rem;
    color: #111a14;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
    font-weight: 800;
}

.prescription-upload-heading p {
    margin: 0;
    color: #263127;
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 1.55;
}

.prescription-medicine-note {
    width: min(100%, 860px);
    margin: -1.2rem 0 2rem;
    padding: 1rem 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border: 1px solid rgba(0, 85, 36, .16);
    border-radius: 8px;
    background: rgba(255, 255, 255, .56);
    color: #263127;
    text-align: center;
}

.prescription-medicine-note .material-symbols-outlined {
    color: #007a37;
    font-size: 1.35rem;
}

.prescription-medicine-note p {
    margin: 0;
    font-size: 14px;
}

.prescription-upload-form {
    width: min(100%, 860px);
    margin: 0 auto;
    display: grid;
    gap: 1.5rem;
}

.prescription-dropzone {
    position: relative;
    min-height: clamp(270px, 34vw, 340px);
    padding: 2rem;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .85rem;
    border: 2px dashed #b7cdb9;
    border-radius: 10px;
    background: rgba(255, 255, 255, .22);
    color: #111a14;
    text-align: center;
    cursor: pointer;
}

.prescription-dropzone input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.prescription-upload-icon {
    width: 100px;
    height: 100px;
    display: grid;
    place-items: center;
    margin-bottom: .75rem;
    border-radius: 999px;
    background: #d9f0dd;
    color: #007a37;
}

.prescription-upload-icon .material-symbols-outlined {
    font-size: 2.7rem;
}

.prescription-dropzone strong {
    max-width: 80%;
    color: #111a14;
    font-size: 1.25rem;
    line-height: 1.25;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.prescription-dropzone small {
    color: #263127;
    font-size: 15px;
}

.prescription-submit-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(220px, .45fr);
    gap: 1rem;
    align-items: end;
}

.prescription-pharmacy-field {
    display: grid;
    gap: .45rem;
}

.prescription-pharmacy-field span {
    color: #3f4b42;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.prescription-pharmacy-field select {
    min-height: 50px;
    padding: 0 1rem;
    border: 1px solid rgba(0, 85, 36, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .72);
    color: #172018;
    font: inherit;
}

.prescription-submit-button {
    min-height: 50px;
    border: 0;
    border-radius: 8px;
    background: #007a37;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    font-size: 14px;
    font-weight: 800;
}

.prescription-benefit-grid {
    width: min(100%, 860px);
    margin-top: clamp(4rem, 7vw, 5rem);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.prescription-benefit-card {
    min-height: 170px;
    padding: 1.7rem;
    border: 1px solid #b7cdb9;
    border-radius: 8px;
    background: rgba(255, 255, 255, .2);
}

.prescription-benefit-card .material-symbols-outlined {
    color: #007a37;
    font-size: 1.7rem;
    margin-bottom: 1.1rem;
}

.prescription-benefit-card h2 {
    margin: 0 0 .85rem;
    color: #111a14;
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 800;
}

.prescription-benefit-card p {
    margin: 0;
    color: #263127;
    font-size: 15px;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .product-detail-hero,
    .product-detail-copy-grid {
        grid-template-columns: 1fr;
    }

    .product-detail-summary {
        max-width: none;
    }

    .prescription-benefit-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .product-detail-page {
        padding-top: 1.5rem;
    }

    .product-detail-main-image,
    .product-detail-main-image img {
        min-height: 280px;
    }

    .product-detail-thumbs {
        grid-template-columns: repeat(4, minmax(64px, 1fr));
        gap: .65rem;
    }

    .product-detail-tabs {
        gap: 1.25rem;
        overflow-x: auto;
    }

    .product-detail-tabs a {
        white-space: nowrap;
    }

    .product-detail-related-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .prescription-stepper {
        margin-bottom: 3rem;
    }

    .prescription-stepper::before,
    .prescription-stepper::after {
        top: 20px;
    }

    .prescription-step span {
        width: 42px;
        height: 42px;
        font-size: .95rem;
    }

    .prescription-step strong {
        font-size: .78rem;
        letter-spacing: .14em;
    }

    .prescription-submit-row {
        grid-template-columns: 1fr;
    }

    .prescription-dropzone {
        min-height: 240px;
        padding: 1.4rem;
    }

    .prescription-upload-icon {
        width: 78px;
        height: 78px;
    }

    .prescription-dropzone strong {
        max-width: 100%;
        font-size: 1rem;
    }
}

@media (max-width: 1199.98px) {
    .shop-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .shop-layout {
        grid-template-columns: 1fr;
    }

    .shop-sidebar {
        min-height: 0;
        margin-top: 1.25rem;
        border-bottom: 0;
    }

    .shop-sidebar-heading {
        margin-bottom: 1.2rem;
    }

    .shop-filter-group {
        margin-bottom: 1.2rem;
    }

    .shop-filter-group nav,
    .shop-filter-group {
        max-width: none;
    }

    .shop-filter-group[aria-label="Categories"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-filter-group[aria-label="Categories"] h2 {
        grid-column: 1 / -1;
    }

    .shop-content {
        padding: 2rem 0 4rem;
    }

    .shop-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .shop-results-header,
    .shop-results-header > div,
    .shop-sort-form {
        align-items: flex-start;
        flex-direction: column;
    }

    .shop-product-grid,
    .shop-filter-group[aria-label="Categories"] {
        grid-template-columns: 1fr;
    }

    .shop-promo {
        min-height: 0;
        grid-template-columns: 1fr;
        margin-bottom: 2.2rem;
    }

    .shop-promo > .material-symbols-outlined {
        display: none;
    }

    .shop-product-media {
        min-height: 190px;
    }

    .shop-product-media img {
        height: 135px;
    }
}

.practitioners-page,
.cart-page {
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
}

.practitioners-shell {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: clamp(1.6rem, 4vw, 3.2rem);
    align-items: start;
    padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(4rem, 7vw, 6rem);
}

.practitioner-filter-card {
    background: #ffffff;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 12px;
    box-shadow: 0 14px 34px rgba(13, 33, 20, .08);
    padding: 1.9rem;
}

.practitioner-filter-card h1 {
    margin: 0 0 2rem;
    color: var(--ml-blue);
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 700;
}

.practitioner-filter-card form,
.practitioner-filter-card fieldset,
.practitioner-range {
    display: grid;
    gap: .85rem;
}

.practitioner-filter-card fieldset {
    margin: 0 0 2rem;
    padding: 0;
    border: 0;
}

.practitioner-filter-card legend,
.practitioner-range > span {
    margin-bottom: .35rem;
    color: #111a14;
    font-size: .88rem;
    line-height: 1.2;
    font-weight: 500;
    text-transform: uppercase;
}

.practitioner-check {
    display: flex;
    align-items: center;
    gap: .65rem;
    color: #263127;
    font-size: .94rem;
    line-height: 1.25;
    font-weight: 400;
}

.practitioner-check input {
    width: 18px;
    height: 18px;
    accent-color: var(--ml-primary);
}

.practitioner-range input {
    width: 100%;
    accent-color: var(--ml-primary);
}

.practitioner-range small {
    display: flex;
    justify-content: space-between;
    color: #5b665d;
    font-size: .72rem;
}

.practitioner-availability {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .6rem;
}

.practitioner-availability button,
.practitioner-filter-submit,
.practitioner-reset {
    min-height: 50px;
    border-radius: 8px;
    font-size: .95rem;
    line-height: 1.2;
    font-weight: 500;
    text-align: center;
}

.practitioner-availability button {
    border: 0;
    background: #dfe7dc;
    color: #19231c;
}

.practitioner-availability button.active {
    background: var(--ml-primary);
    color: #ffffff;
}

.practitioner-filter-submit,
.practitioner-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.practitioner-filter-submit {
    border: 0;
    background: var(--ml-primary);
    color: #ffffff;
}

.practitioner-reset {
    border: 1px solid var(--ml-primary);
    color: var(--ml-primary);
    background: transparent;
}

.practitioner-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    margin: .5rem 0 2rem;
}

.practitioner-results-header h2 {
    margin: 0;
    color: #111a14;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    line-height: 1.2;
    font-weight: 700;
}

.practitioner-results-header h2 span {
    color: #2b3b30;
    font-weight: 400;
}

.practitioner-sort {
    display: flex;
    align-items: center;
    gap: .8rem;
    white-space: nowrap;
}

.practitioner-sort label {
    color: #273029;
    font-size: .82rem;
    text-transform: uppercase;
}

.practitioner-sort select {
    min-width: 160px;
    border: 0;
    background: transparent;
    color: var(--ml-primary);
    font-size: .95rem;
    font-weight: 500;
}

.practitioner-list {
    display: grid;
    gap: 1.55rem;
}

.practitioner-empty {
    min-height: 260px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .6rem;
    padding: 2rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 10px 22px rgba(15, 23, 42, .04);
    text-align: center;
}

.practitioner-empty .material-symbols-outlined {
    color: var(--ml-primary);
    font-size: 3rem;
}

.practitioner-empty h3 {
    margin: 0;
    color: #111a14;
    font-size: 1.1rem;
    font-weight: 700;
}

.practitioner-empty p {
    margin: 0;
    color: #4d594f;
    font-size: .9rem;
}

.practitioner-result-card {
    display: grid;
    grid-template-columns: 245px minmax(0, 1fr) 120px;
    gap: 1.45rem;
    align-items: center;
    padding: 1.55rem 1.75rem;
    border: 1px solid rgba(0, 107, 50, .25);
    border-radius: 12px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 10px 22px rgba(15, 23, 42, .04);
}

.practitioner-photo {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background: #e8f1e6;
}

.practitioner-photo img {
    width: 100%;
    aspect-ratio: 1.18 / 1;
    object-fit: cover;
    display: block;
}

.practitioner-photo span {
    position: absolute;
    left: .65rem;
    top: .6rem;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: var(--ml-primary);
    color: #ffffff;
    font-size: .8rem;
    line-height: 1.1;
    font-weight: 500;
    text-transform: uppercase;
}

.practitioner-photo .material-symbols-outlined {
    font-size: 15px;
}

.practitioner-copy h3 {
    margin: 0 0 .35rem;
    color: #0d1510;
    font-size: 1.25rem;
    line-height: 1.25;
    font-weight: 700;
}

.practitioner-specialty {
    margin: 0 0 .75rem;
    color: var(--ml-primary);
    font-size: .95rem;
    line-height: 1.35;
    font-weight: 700;
}

.practitioner-location {
    display: flex;
    align-items: flex-start;
    gap: .35rem;
    margin: 0 0 1.55rem;
    color: #263127;
    font-size: .95rem;
    line-height: 1.4;
}

.practitioner-location .material-symbols-outlined {
    margin-top: .1rem;
    font-size: 18px;
}

.practitioner-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.btn-outline-practitioner,
.btn-book-session {
    min-height: 54px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1rem;
    text-decoration: none;
    font-size: .95rem;
    line-height: 1.2;
    font-weight: 500;
}

.btn-outline-practitioner {
    border: 1px solid var(--ml-blue);
    color: var(--ml-blue);
    background: #ffffff;
}

.btn-book-session {
    border: 1px solid var(--ml-primary);
    color: #ffffff;
    background: var(--ml-primary);
}

.practitioner-rate {
    display: grid;
    justify-items: end;
    align-self: stretch;
    align-content: center;
    color: #101812;
}

.practitioner-rating {
    margin: 0 0 .15rem;
    color: var(--ml-blue);
    font-size: .95rem;
    font-weight: 700;
}

.practitioner-reviews {
    margin: 0 0 1rem;
    color: #5f695f;
    font-size: .9rem;
    line-height: 1.25;
    text-align: right;
}

.practitioner-rate strong {
    color: #0c1210;
    font-size: 1.15rem;
    line-height: 1.1;
    font-weight: 700;
}

.practitioner-rate small {
    color: #667063;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.practitioner-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    margin-top: 4rem;
}

.practitioner-pagination span,
.practitioner-pagination strong {
    width: 42px;
    height: 42px;
    border: 1px solid rgba(0, 107, 50, .28);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .75);
    color: #102018;
    font-size: .95rem;
    font-weight: 500;
}

.practitioner-pagination strong {
    border-color: var(--ml-primary);
    background: var(--ml-primary);
    color: #ffffff;
}

.cart-shell {
    padding: clamp(2.2rem, 5vw, 4.2rem) 0 clamp(4rem, 7vw, 6rem);
}

.cart-progress {
    width: min(100%, 560px);
    margin: 0 auto 2.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .85rem;
    color: #526053;
    font-size: .72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.cart-progress span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    white-space: nowrap;
}

.cart-progress .material-symbols-outlined {
    font-size: 15px;
}

.cart-progress .active {
    color: var(--ml-primary);
    font-weight: 700;
}

.cart-progress i {
    width: 34px;
    height: 1px;
    background: #aab9ab;
}

.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 2.5rem;
    align-items: start;
    width: min(100%, 980px);
    margin-inline: auto;
}

.cart-main,
.cart-side {
    display: grid;
    gap: 2rem;
}

.cart-card,
.cart-summary-card,
.cart-trust-card {
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 18px 42px rgba(16, 32, 20, .07);
}

.cart-items-card,
.checkout-detail-card {
    padding: clamp(1.5rem, 3vw, 2.4rem);
}

.cart-items-card h1,
.cart-empty h1 {
    margin: 0 0 1.75rem;
    color: #111a14;
    font-size: 1.35rem;
    line-height: 1.2;
    font-weight: 700;
}

.cart-items {
    display: grid;
    gap: 0;
}

.cart-item {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) 120px;
    gap: 1.45rem;
    align-items: start;
    padding: 1.45rem 0;
    border-bottom: 1px solid rgba(0, 107, 50, .18);
}

.cart-item:first-child {
    padding-top: 0;
}

.cart-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.cart-item img {
    width: 96px;
    height: 96px;
    border-radius: 8px;
    object-fit: cover;
    background: #e7efe5;
}

.cart-item-copy h2 {
    margin: .1rem 0 .25rem;
    color: var(--ml-blue);
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 700;
}

.cart-item-copy p {
    margin: 0 0 .45rem;
    color: #2f392f;
    font-size: .8rem;
    line-height: 1.35;
}

.cart-rx-status {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: 1rem;
    padding: .28rem .65rem;
    border-radius: 999px;
    background: #d9f3df;
    color: var(--ml-primary);
    font-size: .83rem;
    line-height: 1.2;
}

.cart-rx-status .material-symbols-outlined {
    font-size: 14px;
}

.cart-quantity {
    width: 142px;
    min-height: 34px;
    display: grid;
    grid-template-columns: 36px 1fr 36px;
    border: 1px solid #bdcdbd;
    border-radius: 7px;
    overflow: hidden;
    background: #ffffff;
}

.cart-quantity button,
.cart-quantity input {
    border: 0;
    background: transparent;
    color: #111a14;
    text-align: center;
    font-size: .9rem;
}

.cart-quantity input {
    width: 100%;
    appearance: textfield;
}

.cart-quantity input::-webkit-outer-spin-button,
.cart-quantity input::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.cart-item-side {
    display: grid;
    justify-items: end;
    gap: 3.1rem;
}

.cart-item-side strong {
    color: var(--ml-blue);
    font-size: .9rem;
    line-height: 1.2;
    font-weight: 700;
}

.cart-remove {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border: 0;
    background: transparent;
    color: #d10000;
    font-size: .82rem;
}

.cart-remove .material-symbols-outlined {
    font-size: 14px;
}

.checkout-detail-card {
    display: grid;
    gap: 1.4rem;
}

.checkout-step {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.checkout-step span {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #2858c8;
    color: #ffffff;
    font-size: .85rem;
    font-weight: 700;
}

.checkout-step h2 {
    margin: 0;
    color: #111a14;
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 700;
}

.checkout-grid {
    display: grid;
    gap: 1rem;
}

.checkout-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.checkout-grid label {
    display: grid;
    gap: .55rem;
    color: #29352b;
    font-size: .82rem;
}

.checkout-grid input,
.checkout-grid select {
    width: 100%;
    min-height: 56px;
    padding: 0 1rem;
    border: 1px solid #b9cab9;
    border-radius: 7px;
    background: #f3fbf0;
    color: #202b23;
    font: inherit;
}

.payment-methods {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.payment-methods label {
    position: relative;
    min-height: 86px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    border: 1px solid #b9cab9;
    border-radius: 8px;
    background: #ffffff;
    color: #111a14;
}

.payment-methods label.selected {
    border-color: var(--ml-primary);
    background: #f3fbf0;
    box-shadow: inset 0 0 0 1px var(--ml-primary);
}

.payment-methods input {
    accent-color: #2858c8;
}

.payment-methods span {
    display: grid;
    gap: .1rem;
    font-size: .85rem;
    line-height: 1.15;
    font-weight: 700;
}

.payment-methods small {
    color: var(--ml-primary);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.payment-methods .material-symbols-outlined {
    position: absolute;
    right: .6rem;
    top: .55rem;
    color: var(--ml-primary);
    font-size: 18px;
}

.cart-summary-card {
    padding: 2rem 2.1rem;
    background: #dfe8db;
}

.cart-summary-card h2 {
    margin: 0 0 1.7rem;
    color: #111a14;
    font-size: 1.1rem;
    font-weight: 700;
}

.cart-summary-card p,
.cart-summary-card div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.1rem;
    color: #2e3a31;
    font-size: .8rem;
}

.cart-summary-card p strong {
    color: #111a14;
    font-weight: 700;
}

.cart-summary-card div {
    margin: 1.4rem 0 1.9rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
    color: var(--ml-blue);
    font-size: .95rem;
    font-weight: 700;
}

.cart-summary-card div strong {
    color: var(--ml-blue);
}

.cart-summary-card a {
    width: 100%;
    min-height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: var(--ml-primary);
    color: #ffffff;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 700;
    box-shadow: 0 10px 18px rgba(0, 107, 50, .18);
}

.cart-summary-card small {
    display: block;
    max-width: 200px;
    margin: 1rem auto 0;
    color: #4d594f;
    font-size: .58rem;
    line-height: 1.4;
    text-align: center;
}

.cart-trust-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.35rem 1.5rem;
    border: 1px solid rgba(0, 107, 50, .2);
    background: rgba(255, 255, 255, .55);
    box-shadow: none;
}

.cart-trust-card > .material-symbols-outlined {
    color: var(--ml-primary);
    font-size: 28px;
}

.cart-trust-card h2 {
    margin: 0 0 .35rem;
    color: #111a14;
    font-size: .85rem;
    font-weight: 700;
}

.cart-trust-card p {
    margin: 0;
    color: #465348;
    font-size: .72rem;
    line-height: 1.45;
}

.cart-empty {
    width: min(100%, 620px);
    margin-inline: auto;
    padding: 4rem 2rem;
    text-align: center;
}

.cart-empty > .material-symbols-outlined {
    color: var(--ml-primary);
    font-size: 4rem;
}

.cart-empty a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 1.4rem;
    border-radius: 8px;
    background: var(--ml-primary);
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
}

@media (max-width: 1199.98px) {
    .practitioners-shell {
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 1.6rem;
    }

    .practitioner-result-card {
        grid-template-columns: 190px minmax(0, 1fr);
    }

    .practitioner-rate {
        grid-column: 2;
        justify-items: start;
        grid-template-columns: auto auto auto auto;
        gap: .4rem .7rem;
        align-items: baseline;
    }

    .practitioner-reviews {
        margin-bottom: 0;
        text-align: left;
    }
}

@media (max-width: 991.98px) {
    .practitioners-shell,
    .cart-layout {
        grid-template-columns: 1fr;
    }

    .practitioner-filter-card {
        order: 2;
    }

    .practitioner-results {
        order: 1;
    }

    .cart-side {
        grid-row: 1;
    }
}

@media (max-width: 767.98px) {
    .practitioners-shell,
    .cart-shell {
        width: min(92%, 1280px);
    }

    .practitioner-results-header,
    .practitioner-sort {
        align-items: flex-start;
        flex-direction: column;
    }

    .practitioner-result-card {
        grid-template-columns: 1fr;
        padding: 1rem;
    }

    .practitioner-photo img {
        aspect-ratio: 1.65 / 1;
    }

    .practitioner-actions,
    .checkout-grid.two,
    .payment-methods {
        grid-template-columns: 1fr;
    }

    .practitioner-rate {
        grid-column: auto;
        justify-items: start;
    }

    .cart-progress {
        gap: .45rem;
        font-size: .58rem;
        letter-spacing: .08em;
        overflow-x: auto;
        justify-content: flex-start;
        padding-bottom: .25rem;
    }

    .cart-progress i {
        min-width: 24px;
    }

    .cart-item {
        grid-template-columns: 76px minmax(0, 1fr);
        gap: 1rem;
    }

    .cart-item img {
        width: 76px;
        height: 76px;
    }

    .cart-item-side {
        grid-column: 2;
        justify-items: start;
        gap: .8rem;
    }
}

.professional-profile-page,
.booking-session-page {
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
}

.professional-profile-shell,
.booking-session-shell {
    display: grid;
    gap: clamp(2rem, 4vw, 3rem);
    align-items: start;
    padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(4rem, 7vw, 6rem);
}

.professional-profile-shell {
    grid-template-columns: minmax(0, 1fr) 390px;
}

.professional-profile-main {
    display: grid;
    gap: clamp(2.6rem, 5vw, 4.4rem);
}

.professional-hero-card {
    min-height: 270px;
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: clamp(1.8rem, 4vw, 3rem);
    align-items: center;
    padding: clamp(1.8rem, 4vw, 3.2rem);
    border: 1px solid rgba(0, 107, 50, .24);
    border-radius: 12px;
    background:
        radial-gradient(circle at 80% 12%, rgba(30, 144, 255, .12), transparent 34%),
        rgba(255, 255, 255, .55);
    box-shadow: 0 12px 28px rgba(17, 40, 21, .05);
}

.professional-avatar-wrap {
    position: relative;
    width: 190px;
    height: 190px;
    justify-self: center;
}

.professional-avatar-wrap img {
    width: 100%;
    height: 100%;
    border-radius: 999px;
    border: 6px solid rgba(255, 255, 255, .82);
    object-fit: cover;
    box-shadow: 0 14px 30px rgba(13, 33, 20, .12);
}

.professional-avatar-wrap > span {
    position: absolute;
    right: .2rem;
    bottom: .45rem;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 30px;
    padding: .25rem .65rem;
    border-radius: 999px;
    background: #73ff91;
    color: var(--ml-primary);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .05em;
}

.professional-avatar-wrap .material-symbols-outlined {
    font-size: 15px;
}

.professional-hero-copy h1 {
    margin: 0 0 .65rem;
    color: var(--ml-primary);
    font-size: clamp(2rem, 4vw, 2.65rem);
    line-height: 1.08;
    font-weight: 800;
}

.professional-title {
    margin: 0 0 1.8rem;
    color: var(--ml-blue);
    font-size: 1.25rem;
    line-height: 1.25;
    font-weight: 500;
}

.professional-meta-row,
.professional-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.4rem;
}

.professional-meta-row {
    margin-bottom: 1.7rem;
    color: #263127;
    font-size: .95rem;
}

.professional-meta-row span {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

.professional-meta-row .material-symbols-outlined {
    font-size: 19px;
}

.professional-rating {
    color: #111a14;
}

.professional-rating span {
    color: var(--ml-blue);
    font-size: 1.1rem;
}

.professional-tags {
    gap: .85rem;
}

.professional-tags span {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    padding: 0 .9rem;
    border-radius: 999px;
    background: #dfe8db;
    color: #273129;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .06em;
}

.professional-tabs {
    display: flex;
    align-items: center;
    gap: clamp(1.5rem, 5vw, 3rem);
    border-bottom: 1px solid rgba(0, 107, 50, .25);
}

.professional-tabs a {
    position: relative;
    padding: 0 0 .9rem;
    color: #2c342d;
    text-decoration: none;
    font-size: 1.2rem;
    line-height: 1.2;
    font-weight: 700;
}

.professional-tabs a.active {
    color: var(--ml-primary);
}

.professional-tabs a.active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: var(--ml-primary);
}

.professional-about h2 {
    margin: 0 0 1.6rem;
    color: var(--ml-primary);
    font-size: 1.55rem;
    line-height: 1.2;
    font-weight: 800;
}

.professional-about > p {
    margin: 0;
    color: #1e2a20;
    font-size: 1rem;
    line-height: 1.75;
}

.professional-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6rem;
    margin-top: 2rem;
}

.professional-info-grid article {
    min-height: 104px;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding: 1.4rem 1.7rem;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
    background: rgba(255, 255, 255, .35);
}

.professional-info-grid .material-symbols-outlined {
    color: var(--ml-blue);
    font-size: 2rem;
}

.professional-info-grid h3 {
    margin: 0 0 .35rem;
    color: #111a14;
    font-size: 1.25rem;
    font-weight: 800;
}

.professional-info-grid p {
    margin: 0;
    color: #29352b;
    font-size: .95rem;
}

.professional-hidden-anchor {
    scroll-margin-top: 120px;
}

.professional-book-card {
    position: sticky;
    top: 118px;
    display: grid;
    gap: 1.65rem;
    padding: clamp(2rem, 4vw, 3rem);
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 12px;
    background: #dfe8db;
    box-shadow: 0 14px 30px rgba(17, 40, 21, .08);
}

.professional-book-card h2 {
    margin: 0;
    color: var(--ml-primary);
    font-size: 1.75rem;
    text-align: center;
    font-weight: 800;
}

.professional-book-card > strong {
    margin-top: -.6rem;
    color: #111a14;
    font-size: clamp(2.8rem, 6vw, 4rem);
    line-height: 1;
    text-align: center;
    font-weight: 900;
}

.professional-book-card > p {
    margin: -1rem 0 1rem;
    color: #2c382f;
    text-align: center;
}

.professional-next-card {
    padding: 1.7rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, .62);
}

.professional-next-card > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.3rem;
}

.professional-next-card h3 {
    margin: 0;
    color: #111a14;
    font-size: 1.35rem;
    font-weight: 800;
}

.professional-next-card span:not(.material-symbols-outlined) {
    padding: .25rem .6rem;
    border-radius: 6px;
    background: #dce1ff;
    color: #00005c;
    font-size: .78rem;
    font-weight: 600;
}

.professional-next-card p {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: 0;
    color: var(--ml-blue);
    font-size: 1.1rem;
    font-weight: 700;
}

.professional-type-select > p {
    margin: 0 0 .8rem;
    color: #111a14;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.professional-type-select > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.professional-type-select a {
    min-height: 76px;
    display: grid;
    place-items: center;
    gap: .35rem;
    border: 2px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
    background: rgba(255, 255, 255, .46);
    color: #172018;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
}

.professional-type-select a.active {
    border-color: var(--ml-primary);
    background: var(--ml-primary);
    color: #ffffff;
}

.professional-type-select .material-symbols-outlined {
    font-size: 1.6rem;
}

.professional-book-button {
    min-height: 70px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    border-radius: 8px;
    background: var(--ml-primary);
    color: #ffffff;
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 800;
    box-shadow: 0 14px 24px rgba(0, 107, 50, .16);
}

.professional-book-card small {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: .4rem;
    color: #374338;
    font-size: .85rem;
}

.professional-book-card small .material-symbols-outlined {
    font-size: 16px;
}

.booking-session-shell {
    grid-template-columns: minmax(0, 1fr) 390px;
}

.booking-session-main {
    display: grid;
    gap: 2.4rem;
}

.booking-heading {
    padding-top: 2.4rem;
}

.booking-heading h1 {
    margin: 0 0 .75rem;
    color: #111a14;
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.1;
    font-weight: 800;
}

.booking-heading p {
    margin: 0;
    color: #29352b;
    font-size: 1.12rem;
}

.booking-picker-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
}

.booking-card,
.booking-summary-card {
    border: 1px solid rgba(0, 107, 50, .24);
    border-radius: 12px;
    background: rgba(255, 255, 255, .76);
    box-shadow: 0 12px 26px rgba(17, 40, 21, .05);
}

.booking-card {
    min-height: 395px;
    padding: 2rem;
}

.booking-card h2,
.booking-summary-card h2 {
    margin: 0;
    color: #111a14;
    font-size: 1.45rem;
    line-height: 1.2;
    font-weight: 800;
}

.booking-card-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 2rem;
}

.booking-card-header > span {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    color: #1d261f;
    font-size: 1rem;
}

.booking-card-header .material-symbols-outlined {
    font-size: 1.45rem;
}

.booking-weekdays,
.booking-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 1.2rem .75rem;
    text-align: center;
}

.booking-weekdays {
    margin-bottom: 1.2rem;
    color: #111a14;
    font-size: .85rem;
    font-weight: 600;
}

.booking-calendar-grid label,
.booking-calendar-grid > span {
    min-height: 38px;
    display: grid;
    place-items: center;
}

.booking-calendar-grid input,
.booking-time-options input,
.booking-type-options input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.booking-calendar-grid label span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: #111a14;
    cursor: pointer;
}

.booking-calendar-grid label.disabled span {
    color: rgba(17, 26, 20, .28);
    cursor: not-allowed;
}

.booking-calendar-grid input:checked + span {
    background: var(--ml-primary);
    color: #ffffff;
    font-weight: 800;
}

.booking-times-card {
    display: grid;
    align-content: start;
    gap: 1.8rem;
}

.booking-time-group h3 {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .8rem;
    color: #1e2b21;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.booking-time-group .material-symbols-outlined {
    font-size: 20px;
}

.booking-time-options {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.booking-time-options label span {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.4rem;
    border: 1px solid rgba(0, 107, 50, .28);
    border-radius: 999px;
    background: #ffffff;
    color: #111a14;
    font-size: .95rem;
    cursor: pointer;
}

.booking-time-options input:checked + span {
    border-color: var(--ml-primary);
    background: var(--ml-primary);
    color: #ffffff;
}

.consultation-type-card {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, 1fr);
    gap: 2rem;
    align-items: start;
}

.consultation-type-card p {
    margin: .9rem 0 0;
    color: #29352b;
}

.booking-type-options {
    display: grid;
    gap: .8rem;
}

.booking-type-options label > span {
    min-height: 92px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid rgba(0, 107, 50, .28);
    border-radius: 8px;
    background: #ffffff;
    cursor: pointer;
}

.booking-type-options i {
    width: 22px;
    height: 22px;
    border: 1px solid #5e6b61;
    border-radius: 999px;
}

.booking-type-options strong {
    display: block;
    color: #111a14;
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 500;
}

.booking-type-options small {
    display: block;
    margin-top: .25rem;
    color: #2d382f;
    font-size: .85rem;
}

.booking-type-options .material-symbols-outlined {
    color: var(--ml-primary);
    font-size: 1.55rem;
}

.booking-type-options input:checked + span {
    border: 2px solid var(--ml-primary);
    background: #eaf5e7;
}

.booking-type-options input:checked + span i {
    border: 7px solid var(--ml-primary);
}

.booking-summary-card {
    position: sticky;
    top: 118px;
    display: grid;
    gap: 1.7rem;
    padding: 2rem;
    background: rgba(255, 255, 255, .86);
}

.booking-summary-card h2 {
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.booking-doctor {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 1.1rem;
    align-items: center;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.booking-doctor img {
    width: 74px;
    height: 74px;
    border-radius: 999px;
    object-fit: cover;
}

.booking-doctor h3 {
    margin: 0 0 .35rem;
    color: #111a14;
    font-size: 1.05rem;
    font-weight: 800;
}

.booking-doctor p {
    margin: 0 0 .35rem;
    color: #29352b;
    font-size: .9rem;
}

.booking-doctor span {
    color: #111a14;
    font-size: .85rem;
}

.booking-doctor span span {
    color: #4ade80;
}

.booking-summary-card dl {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding-bottom: 1.6rem;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.booking-summary-card dl div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
}

.booking-summary-card dt,
.booking-summary-card dd {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin: 0;
    color: #1d281f;
    font-size: .92rem;
    font-weight: 400;
}

.booking-summary-card dt .material-symbols-outlined {
    font-size: 1.2rem;
}

.booking-summary-card dd {
    justify-content: flex-end;
    text-align: right;
}

.booking-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: #111a14;
    font-size: 1rem;
}

.booking-total strong {
    color: var(--ml-primary);
    font-size: 1.35rem;
    font-weight: 900;
}

.booking-summary-card button {
    min-height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border: 0;
    border-radius: 8px;
    background: var(--ml-primary);
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 800;
    box-shadow: 0 14px 24px rgba(0, 107, 50, .16);
}

.booking-summary-card small {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: .4rem;
    color: #111a14;
    font-size: .78rem;
    letter-spacing: .06em;
}

.booking-summary-card small .material-symbols-outlined {
    font-size: 15px;
}

@media (max-width: 1199.98px) {
    .professional-profile-shell,
    .booking-session-shell {
        grid-template-columns: 1fr;
    }

    .professional-book-card,
    .booking-summary-card {
        position: static;
    }
}

@media (max-width: 991.98px) {
    .booking-picker-grid,
    .consultation-type-card,
    .professional-hero-card {
        grid-template-columns: 1fr;
    }

    .professional-avatar-wrap {
        justify-self: start;
    }
}

@media (max-width: 767.98px) {
    .professional-profile-shell,
    .booking-session-shell {
        width: min(92%, 1280px);
    }

    .professional-hero-card,
    .booking-card,
    .booking-summary-card,
    .professional-book-card {
        padding: 1.25rem;
    }

    .professional-tabs {
        gap: 1.3rem;
        overflow-x: auto;
    }

    .professional-tabs a {
        white-space: nowrap;
        font-size: 1rem;
    }

    .professional-info-grid,
    .professional-type-select > div {
        grid-template-columns: 1fr;
    }

    .booking-weekdays,
    .booking-calendar-grid {
        gap: .65rem .3rem;
    }

    .booking-calendar-grid label span {
        width: 34px;
        height: 34px;
        font-size: .86rem;
    }

    .booking-summary-card dl div {
        grid-template-columns: 1fr;
    }

    .booking-summary-card dd {
        justify-content: flex-start;
        text-align: left;
    }
}

.customer-dashboard-app {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    color: #111a14;
}

.customer-dashboard-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto auto;
    gap: 2rem;
    padding: 2.4rem 1.25rem 1.3rem;
    border-right: 1px solid rgba(0, 107, 50, .18);
    background: rgba(223, 232, 219, .44);
}

.customer-dashboard-brand {
    display: grid;
    gap: .3rem;
    padding-inline: 1.25rem;
    color: var(--ml-primary);
    text-decoration: none;
}

.customer-dashboard-brand strong {
    font-size: 1.45rem;
    line-height: 1.1;
    font-weight: 800;
}

.customer-dashboard-brand span {
    color: #263127;
    font-size: .95rem;
}

.customer-dashboard-nav {
    display: grid;
    align-content: start;
    gap: .65rem;
    margin-top: 2rem;
}

.customer-dashboard-nav a,
.customer-sidebar-upload {
    min-height: 60px;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0 1.3rem;
    border-radius: 8px;
    color: #1d281f;
    text-decoration: none;
    font-size: 1.05rem;
    font-weight: 400;
}

.customer-dashboard-nav a.active {
    background: #007a37;
    color: #ffffff;
    font-weight: 700;
}

.customer-dashboard-nav .material-symbols-outlined,
.customer-sidebar-upload .material-symbols-outlined {
    font-size: 1.55rem;
}

.customer-sidebar-upload {
    justify-content: center;
    background: var(--ml-primary);
    color: #ffffff;
    font-weight: 700;
}

.customer-sidebar-user {
    display: flex;
    gap: .8rem;
    align-items: center;
    padding: 1.15rem 1.25rem 0;
    border-top: 1px solid rgba(0, 107, 50, .2);
}

.customer-sidebar-user > span {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--ml-primary);
    color: #ffffff;
    font-weight: 800;
}

.customer-sidebar-user strong,
.customer-sidebar-user small {
    display: block;
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-sidebar-user strong {
    font-size: .85rem;
}

.customer-sidebar-user small {
    color: #334237;
    font-size: .8rem;
}

.customer-dashboard-main {
    min-width: 0;
}

.customer-dashboard-topbar {
    min-height: 100px;
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(280px, 410px) auto;
    gap: 2rem;
    align-items: center;
    padding: 1rem 2rem;
    border-bottom: 1px solid rgba(0, 107, 50, .18);
    background: rgba(241, 241, 241, .9);
}

.customer-dashboard-topbar h1 {
    margin: 0;
    color: var(--ml-primary);
    font-size: 1.6rem;
    font-weight: 800;
}

.customer-dashboard-search {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: 0 1.3rem;
    border: 1px solid rgba(0, 107, 50, .28);
    border-radius: 999px;
}

.customer-dashboard-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #111a14;
    font: inherit;
}

.customer-dashboard-actions {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.customer-dashboard-actions a {
    color: #111a14;
    text-decoration: none;
}

.customer-dashboard-actions .material-symbols-outlined {
    font-size: 1.7rem;
}

.customer-avatar img {
    width: 50px;
    height: 50px;
    border-radius: 999px;
    border: 2px solid var(--ml-primary);
    object-fit: cover;
}

.customer-dashboard-content {
    padding: clamp(2rem, 4vw, 3.2rem);
}

.customer-page-heading {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: center;
    margin-bottom: 2.5rem;
}

.customer-page-heading h2,
.customer-settings-heading h2 {
    margin: 0 0 .65rem;
    color: #111a14;
    font-size: clamp(2rem, 4vw, 2.6rem);
    line-height: 1.08;
    font-weight: 800;
}

.customer-prescription-heading h2,
.customer-settings-heading h2 {
    color: var(--ml-primary);
}

.customer-page-heading p,
.customer-settings-heading p {
    margin: 0;
    color: #263127;
    font-size: 1.08rem;
}

.customer-page-heading > a {
    min-height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    padding: 0 1.7rem;
    border-radius: 8px;
    background: var(--ml-primary);
    color: #ffffff;
    text-decoration: none;
    font-weight: 800;
    white-space: nowrap;
}

.customer-order-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-bottom: 3rem;
}

.customer-order-filters button {
    min-height: 54px;
    padding: 0 1.4rem;
    border: 1px solid rgba(0, 107, 50, .28);
    border-radius: 999px;
    background: transparent;
    color: #263127;
    font-size: 1rem;
}

.customer-order-filters .active {
    border-color: var(--ml-primary);
    background: var(--ml-primary);
    color: #ffffff;
}

.customer-order-grid,
.customer-overview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.9rem;
}

.customer-order-card,
.customer-prescription-card,
.customer-info-card,
.customer-settings-card,
.danger-zone,
.customer-calendar-card,
.customer-quick-card,
.customer-history-card,
.customer-appointment-card,
.customer-profile-card,
.customer-profile-menu,
.customer-how-card,
.customer-activity-card,
.customer-empty-card,
.customer-overview-grid a {
    border: 1px solid rgba(0, 107, 50, .24);
    border-radius: 12px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 10px 24px rgba(17, 40, 21, .04);
}

.customer-order-card {
    min-height: 395px;
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: 2rem;
}

.customer-order-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.customer-order-card h2 {
    margin: 0 0 .5rem;
    color: #172018;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.customer-order-card p {
    margin: 0;
    color: #263127;
}

.customer-status-pill,
.customer-mini-pill {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 30px;
    padding: 0 .75rem;
    border-radius: 999px;
    background: #dfe8db;
    color: #1d281f;
    font-size: .85rem;
    font-weight: 500;
}

.customer-status-pill.success {
    background: #73ff91;
    color: #006b32;
}

.customer-status-pill.warning {
    background: #dce1ff;
    color: var(--ml-blue);
}

.customer-status-pill.danger {
    background: #fee2e2;
    color: #b91c1c;
}

.customer-status-pill .material-symbols-outlined,
.customer-mini-pill .material-symbols-outlined {
    font-size: 14px;
}

.customer-order-items {
    display: grid;
    align-content: start;
    gap: 1.15rem;
    margin: 1.7rem 0;
}

.customer-order-item {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    gap: 1.1rem;
    align-items: center;
}

.customer-order-item > .material-symbols-outlined {
    width: 60px;
    height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #dfe8db;
    color: var(--ml-primary);
}

.customer-order-item strong,
.customer-order-item small {
    display: block;
}

.customer-order-item strong {
    color: #000;
    font-size: .98rem;
}

.customer-order-item small {
    color: #263127;
}

.customer-order-item b {
    color: #000;
    font-size: 1rem;
}

.customer-order-card footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: end;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(0, 107, 50, .2);
}

.customer-order-card footer span {
    display: block;
    margin-bottom: .35rem;
    color: #263127;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.customer-order-card footer strong {
    color: var(--ml-primary);
    font-size: 1.05rem;
}

.customer-order-actions {
    display: flex;
    gap: .6rem;
}

.customer-order-actions a,
.customer-appointment-actions a,
.customer-load-more,
.customer-profile-menu a,
.customer-address-grid a {
    text-decoration: none;
}

.customer-order-actions a,
.customer-appointment-actions a {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.2rem;
    border: 1px solid #829380;
    border-radius: 8px;
    color: #1d281f;
    background: transparent;
}

.customer-order-actions a.primary,
.customer-appointment-actions a.primary {
    border-color: #2f57c8;
    background: #2f57c8;
    color: #ffffff;
}

.customer-appointments-layout,
.customer-prescription-layout,
.customer-settings-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 1.9rem;
    align-items: start;
}

.customer-section-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.3rem;
}

.customer-section-row h3,
.customer-history-title,
.customer-activity-card h3,
.customer-how-card h3 {
    margin: 0;
    color: #111a14;
    font-size: 1.45rem;
    font-weight: 800;
}

.customer-section-row a,
.customer-prescription-card footer a {
    color: var(--ml-blue);
    text-decoration: none;
    font-weight: 600;
}

.customer-appointment-list {
    display: grid;
    gap: 1.25rem;
}

.customer-appointment-card {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 140px;
    gap: 1.5rem;
    align-items: center;
    padding: 1.4rem 1.6rem;
    border-left: 6px solid var(--ml-primary);
}

.customer-appointment-card.virtual {
    border-left-color: #2f57c8;
}

.customer-appointment-time {
    text-align: center;
    padding-right: 1.2rem;
    border-right: 1px solid rgba(0, 107, 50, .2);
}

.customer-appointment-time span,
.customer-appointment-time small {
    display: block;
    color: #263127;
}

.customer-appointment-time span {
    font-size: .82rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.customer-appointment-time strong {
    display: block;
    color: #111a14;
    font-size: 1.65rem;
    line-height: 1.1;
}

.customer-appointment-copy h4 {
    margin: .55rem 0 .35rem;
    color: #111a14;
    font-size: 1.25rem;
    font-weight: 800;
}

.customer-appointment-copy p {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    color: #263127;
}

.customer-mini-pill.blue {
    background: #8fa0ff;
    color: #001f85;
}

.customer-mini-pill.green {
    background: var(--ml-primary);
    color: #ffffff;
}

.customer-appointment-actions {
    display: grid;
    gap: .6rem;
}

.customer-history-title {
    margin: 4rem 0 1.4rem;
}

.customer-history-card {
    overflow: hidden;
}

.customer-history-card > div {
    display: grid;
    grid-template-columns: 70px 1fr auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1.25rem 1.4rem;
    border-bottom: 1px solid rgba(0, 107, 50, .2);
}

.customer-history-card > div > .material-symbols-outlined {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #dfe8db;
    color: var(--ml-primary);
}

.customer-history-card p,
.customer-history-card small {
    margin: 0;
}

.customer-history-card strong,
.customer-history-card small {
    display: block;
}

.customer-history-card b {
    padding: .35rem .8rem;
    border-radius: 6px;
    background: #dfe8db;
    color: #1d281f;
    font-size: .85rem;
}

.customer-load-more {
    display: block;
    padding: 1rem;
    color: var(--ml-blue);
    text-align: center;
    font-weight: 600;
}

.customer-appointment-aside,
.customer-prescription-aside {
    display: grid;
    gap: 1.8rem;
}

.customer-calendar-card,
.customer-quick-card,
.customer-how-card,
.customer-activity-card {
    padding: 1.7rem;
}

.customer-calendar-card h3 {
    margin: 0 0 1.7rem;
    color: #111a14;
    font-size: 1.35rem;
    font-weight: 800;
}

.customer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1rem .65rem;
    text-align: center;
}

.customer-calendar-grid span,
.customer-calendar-grid b {
    font-size: .9rem;
    font-weight: 400;
}

.customer-calendar-grid b.today,
.customer-calendar-grid b.appointment {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    justify-self: center;
    border-radius: 999px;
    color: #ffffff;
    background: #2f57c8;
}

.customer-calendar-grid b.appointment {
    background: var(--ml-primary);
}

.customer-calendar-card p {
    display: flex;
    gap: .6rem;
    align-items: center;
    margin: 2rem 0 0;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(0, 107, 50, .2);
}

.customer-calendar-card p span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #2f57c8;
}

.customer-calendar-card p span:last-of-type {
    background: var(--ml-primary);
}

.customer-quick-card > .material-symbols-outlined,
.customer-how-card > .material-symbols-outlined {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--ml-primary);
    color: #ffffff;
    font-size: 2rem;
}

.customer-quick-card p,
.customer-how-card li {
    color: #263127;
}

.customer-quick-card a {
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1.2rem;
    border: 1px solid var(--ml-primary);
    border-radius: 8px;
    color: var(--ml-primary);
    text-decoration: none;
    font-weight: 800;
}

.customer-prescription-list {
    display: grid;
    gap: 1.25rem;
}

.customer-prescription-card {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 1.5rem;
    padding: 1.6rem;
}

.customer-prescription-thumb {
    min-height: 150px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #dfe8db;
    overflow: hidden;
}

.customer-prescription-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.customer-prescription-thumb .material-symbols-outlined {
    color: #7b867b;
    font-size: 3rem;
}

.customer-prescription-title-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.customer-prescription-title-row h3 {
    margin: 0 0 .8rem;
    color: #111a14;
    font-size: 1.25rem;
    font-weight: 800;
}

.customer-prescription-copy p {
    margin: 0 0 .35rem;
    color: #263127;
}

.customer-prescription-card footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.35rem;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(0, 107, 50, .2);
}

.customer-prescription-card footer span {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #8fa0ff;
    color: var(--ml-blue);
    font-size: .8rem;
    font-weight: 700;
}

.customer-how-card {
    background: var(--ml-primary);
    color: #ffffff;
}

.customer-how-card h3,
.customer-how-card li {
    color: #bff2bd;
}

.customer-how-card > .material-symbols-outlined {
    background: rgba(255, 255, 255, .12);
}

.customer-how-card ol {
    display: grid;
    gap: 1rem;
    margin: 1.6rem 0 0;
    padding-left: 1.2rem;
}

.customer-activity-card h3 {
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(0, 107, 50, .2);
}

.customer-activity-card > div {
    display: flex;
    gap: .9rem;
    align-items: center;
    margin-top: 1.2rem;
}

.customer-activity-card > div > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #8fa0ff;
    color: var(--ml-blue);
}

.customer-activity-card p,
.customer-activity-card small {
    margin: 0;
}

.customer-profile-layout {
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    gap: 2.4rem;
}

.customer-profile-side {
    display: grid;
    gap: 1.8rem;
    align-content: start;
}

.customer-profile-card {
    display: grid;
    justify-items: center;
    gap: .8rem;
    padding: 2.3rem;
    text-align: center;
}

.customer-profile-card img {
    width: 124px;
    height: 124px;
    border-radius: 999px;
    border: 5px solid var(--ml-primary);
    object-fit: cover;
}

.customer-profile-card h2 {
    margin: .8rem 0 0;
    font-size: 1.45rem;
    font-weight: 800;
}

.customer-profile-card p {
    margin: 0;
}

.customer-profile-card > span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .35rem .9rem;
    border-radius: 999px;
    background: #dff0da;
    color: var(--ml-primary);
    font-weight: 700;
}

.customer-profile-card i {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #73ff91;
}

.customer-profile-menu {
    display: grid;
    gap: .5rem;
    padding: 1.25rem;
}

.customer-profile-menu a {
    min-height: 60px;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0 1.3rem;
    border-radius: 8px;
    color: #273129;
    font-size: 1.05rem;
}

.customer-profile-menu a.active {
    background: #dfe8db;
    font-weight: 800;
}

.customer-profile-main {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8rem;
}

.customer-info-card {
    padding: 1.9rem;
}

.customer-info-card.wide {
    grid-column: 1 / -1;
}

.customer-info-card header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.4rem;
    border-bottom: 1px solid rgba(0, 107, 50, .2);
}

.customer-info-card h2 {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: 0 0 .4rem;
    color: #111a14;
    font-size: 1.35rem;
    font-weight: 800;
}

.customer-info-card header p {
    margin: 0;
}

.customer-info-card header a,
.customer-info-card a {
    color: var(--ml-blue);
    text-decoration: none;
    font-weight: 600;
}

.customer-form-grid,
.customer-address-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
    margin-top: 1.5rem;
}

.customer-form-grid label {
    display: grid;
    gap: .55rem;
    color: #263127;
    font-size: .85rem;
    font-weight: 700;
}

.customer-form-grid input,
.customer-form-grid select,
.customer-phone-field {
    min-height: 62px;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
    background: #eef6eb;
    color: #111a14;
    font: inherit;
}

.customer-form-grid input {
    width: 100%;
    padding: 0 1.2rem;
}

.customer-phone-field {
    display: grid;
    grid-template-columns: 80px 1fr;
    overflow: hidden;
}

.customer-phone-field span {
    display: grid;
    place-items: center;
    border-right: 1px solid rgba(0, 107, 50, .22);
}

.small-card {
    min-height: 210px;
}

.small-card > strong {
    display: block;
    margin-top: 1.5rem;
    color: var(--ml-primary);
    font-size: 3.2rem;
    line-height: 1;
    font-weight: 900;
}

.small-card h2 .danger {
    color: #dc2626;
}

.customer-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.customer-chip-list span,
.customer-chip-list a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding: 0 1rem;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 999px;
    background: #eef6eb;
    color: #273129;
}

.customer-chip-list a {
    border-style: dashed;
    color: var(--ml-blue);
}

.customer-address-grid article {
    padding: 1.35rem;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
}

.customer-address-grid article.default {
    border: 2px solid var(--ml-primary);
    background: #eef6eb;
}

.customer-address-grid h3 {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 .9rem;
    font-size: 1rem;
    font-weight: 800;
}

.customer-address-grid h3 span {
    padding: .2rem .5rem;
    border-radius: 4px;
    background: var(--ml-primary);
    color: #ffffff;
    font-size: .65rem;
    text-transform: uppercase;
}

.customer-address-grid p {
    margin: 0 0 1rem;
}

.danger-link {
    color: #dc2626 !important;
}

.customer-settings-heading {
    margin-bottom: 2rem;
}

.customer-settings-layout {
    grid-template-columns: 180px minmax(0, 1fr);
}

.customer-settings-tabs {
    display: grid;
    align-content: start;
    gap: .45rem;
    padding: .85rem;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
    background: rgba(255, 255, 255, .52);
}

.customer-settings-tabs a {
    min-height: 40px;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: 0 .8rem;
    border-radius: 7px;
    color: #1d281f;
    text-decoration: none;
    font-size: .85rem;
}

.customer-settings-tabs a.active {
    background: #bcdac3;
    color: var(--ml-primary);
    font-weight: 700;
}

.customer-settings-main {
    display: grid;
    gap: 3rem;
}

.customer-settings-section h3 {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin: 0 0 1.2rem;
    font-size: 1.35rem;
    font-weight: 800;
}

.customer-settings-section h3 .material-symbols-outlined {
    color: var(--ml-primary);
}

.customer-settings-card {
    padding: 2rem;
}

.customer-settings-card h4 {
    margin: 0 0 .9rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(0, 107, 50, .18);
    font-size: 1rem;
    font-weight: 800;
}

.customer-settings-card > div,
.danger-zone > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: .8rem 0;
}

.customer-settings-card p,
.danger-zone p {
    margin: 0;
}

.customer-settings-card small,
.danger-zone small {
    display: block;
    margin-top: .25rem;
    color: #4a574d;
    font-size: .78rem;
}

.toggle {
    width: 36px;
    height: 20px;
    position: relative;
    display: inline-block;
    border-radius: 999px;
    background: #cbd7ca;
}

.toggle::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: #ffffff;
}

.toggle.on {
    background: var(--ml-primary);
}

.toggle.on::after {
    left: 19px;
    background: #2f57c8;
}

.customer-security-card {
    padding: 0;
    overflow: hidden;
}

.customer-security-card > div {
    padding: 1.7rem 2rem;
    border-bottom: 1px solid rgba(0, 107, 50, .18);
}

.customer-security-card > div:last-child {
    border-bottom: 0;
}

.customer-security-card button,
.danger-zone button {
    min-height: 42px;
    padding: 0 1rem;
    border: 1px solid rgba(0, 107, 50, .18);
    border-radius: 6px;
    background: #dfe8db;
    color: #1d281f;
}

.customer-security-card button.primary {
    background: var(--ml-primary);
    color: #ffffff;
}

.customer-security-card b {
    padding: .2rem .45rem;
    border-radius: 4px;
    background: #cc3f6f;
    color: #ffffff;
    font-size: .62rem;
    text-transform: uppercase;
}

.customer-preferences-card {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.customer-preferences-card label {
    display: grid;
    gap: .55rem;
    font-weight: 800;
}

.customer-preferences-card select {
    min-height: 48px;
    padding: 0 1rem;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 6px;
    background: #f6faf8;
}

.danger-zone {
    padding: 2rem;
    border-color: rgba(220, 38, 38, .24);
    background: #fffaf0;
}

.danger-zone h3 {
    color: #c40000;
}

.danger-zone > div {
    margin-top: 1.2rem;
    padding: 1rem;
    border: 1px solid rgba(220, 38, 38, .24);
    border-radius: 6px;
    background: rgba(255, 255, 255, .5);
}

.danger-zone > div:last-child button {
    background: #d10000;
    color: #ffffff;
}

.customer-overview-grid {
    margin-bottom: 2rem;
}

.customer-overview-grid a {
    display: grid;
    gap: .6rem;
    padding: 1.6rem;
    color: #111a14;
    text-decoration: none;
}

.customer-overview-grid .material-symbols-outlined {
    color: var(--ml-primary);
    font-size: 2rem;
}

.customer-overview-grid small {
    color: #4a574d;
}

.customer-overview-grid strong {
    color: var(--ml-primary);
    font-size: 2rem;
}

.customer-dashboard-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(0, 107, 50, .14);
}

.customer-empty-card {
    padding: 2rem;
    text-align: center;
}

@media (max-width: 1199.98px) {
    .customer-dashboard-app {
        grid-template-columns: 250px minmax(0, 1fr);
    }

    .customer-dashboard-topbar {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .customer-dashboard-actions {
        justify-content: flex-end;
    }

    .customer-order-grid,
    .customer-appointments-layout,
    .customer-prescription-layout,
    .customer-profile-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .customer-dashboard-app {
        grid-template-columns: 1fr;
    }

    .customer-dashboard-sidebar {
        position: static;
        height: auto;
        grid-template-rows: auto;
        gap: 1rem;
    }

    .customer-dashboard-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin-top: 0;
    }

    .customer-sidebar-upload {
        justify-self: start;
    }

    .customer-sidebar-user {
        display: none;
    }

    .customer-profile-main,
    .customer-settings-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .customer-dashboard-content,
    .customer-dashboard-topbar {
        padding: 1.25rem;
    }

    .customer-dashboard-nav {
        grid-template-columns: 1fr;
    }

    .customer-page-heading,
    .customer-order-card footer,
    .customer-prescription-title-row,
    .customer-info-card header,
    .customer-settings-card > div,
    .danger-zone > div {
        align-items: flex-start;
        flex-direction: column;
    }

    .customer-order-item,
    .customer-appointment-card,
    .customer-history-card > div,
    .customer-prescription-card,
    .customer-form-grid,
    .customer-address-grid,
    .customer-preferences-card {
        grid-template-columns: 1fr;
    }

    .customer-appointment-time {
        text-align: left;
        padding-right: 0;
        border-right: 0;
    }

    .customer-order-actions,
    .customer-appointment-actions {
        width: 100%;
        grid-template-columns: 1fr;
    }
}

.admin-console-app {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    color: #111a14;
}

.admin-console-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 2rem;
    padding: 2rem 1.25rem 1.4rem;
    border-right: 1px solid rgba(0, 107, 50, .18);
    background: rgba(223, 232, 219, .52);
    box-sizing: border-box;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

.admin-console-brand {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: .15rem .75rem;
    align-items: center;
    padding: 0 1.2rem;
    color: var(--ml-primary);
    text-decoration: none;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

.admin-console-brand .material-symbols-outlined {
    grid-row: span 2;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--ml-primary);
    color: #ffffff;
    font-size: 2rem;
}

.admin-console-brand strong {
    font-size: 20px;
    line-height: 1.15;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.admin-console-brand small {
    color: #263127;
    font-size: .85rem;
    letter-spacing: .06em;
}

.admin-console-nav {
    display: grid;
    align-content: start;
    gap: .8rem;
    margin-top: 3rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

.admin-console-nav a,
.admin-console-bottom a,
.admin-console-bottom button {
    width: 100%;
    max-width: 100%;
    min-height: 62px;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0 1.3rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #1d281f;
    text-decoration: none;
    font: inherit;
    font-size: 1rem;
    box-sizing: border-box;
    overflow: hidden;
}

.admin-console-nav a span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-console-nav a.active,
.admin-console-bottom a.active {
    background: rgba(223, 232, 219, .9);
    color: var(--ml-primary);
    font-weight: 800;
    box-shadow: inset -4px 0 0 var(--ml-primary);
}

.admin-console-nav .material-symbols-outlined,
.admin-console-bottom .material-symbols-outlined {
    font-size: 1.55rem;
}

.admin-report-button {
    min-height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--ml-primary);
    color: #ffffff;
    text-decoration: none;
    font-weight: 800;
}

.admin-console-bottom {
    display: grid;
    gap: .5rem;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(0, 107, 50, .2);
}

.admin-console-bottom button {
    width: 100%;
    color: #172018;
}

.admin-console-main {
    min-width: 0;
}

.admin-console-topbar {
    min-height: 100px;
    display: grid;
    grid-template-columns: auto auto minmax(220px, 1fr) auto auto auto;
    gap: 1.7rem;
    align-items: center;
    padding: 1rem 2rem;
    border-bottom: 1px solid rgba(0, 107, 50, .18);
    background: rgba(241, 241, 241, .92);
}

.admin-console-title {
    color: var(--ml-primary);
    text-decoration: none;
    font-size: 1.45rem;
    line-height: 1.15;
    font-weight: 900;
}

.admin-console-topbar nav {
    display: flex;
    gap: 1.8rem;
    align-items: center;
}

.admin-console-topbar nav a {
    color: #1d281f;
    text-decoration: none;
    font-size: .86rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.admin-console-topbar nav a.active {
    color: var(--ml-primary);
    border-bottom: 2px solid var(--ml-primary);
}

.admin-console-search {
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: 0 1rem;
    border: 1px solid rgba(0, 107, 50, .25);
    border-radius: 999px;
}

.admin-console-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #111a14;
    font: inherit;
}

.admin-upload-button,
.admin-alert-button,
.admin-export-button,
.admin-save-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: 0 1.35rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    white-space: nowrap;
}

.admin-upload-button,
.admin-save-button {
    background: var(--ml-primary);
    color: #ffffff;
}

.admin-alert-button {
    border: 1px solid #d10000;
    color: #d10000;
}

.admin-console-actions {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding-left: 1.4rem;
    border-left: 1px solid rgba(0, 107, 50, .22);
}

.admin-console-actions a {
    color: #1d281f;
}

.admin-console-actions img {
    width: 46px;
    height: 46px;
    border-radius: 999px;
    object-fit: cover;
}

.admin-console-content {
    padding: clamp(2rem, 4vw, 3.5rem);
}

.admin-page-heading {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: end;
    margin-bottom: 3rem;
}

.admin-page-heading.compact {
    margin-bottom: 2.2rem;
}

.admin-page-heading h1 {
    margin: 0 0 .7rem;
    color: var(--ml-primary);
    font-size: clamp(2.1rem, 4.5vw, 3.7rem);
    line-height: 1.05;
    font-weight: 900;
}

.admin-page-heading.compact h1 {
    color: #111a14;
    font-size: clamp(2rem, 4vw, 2.7rem);
}

.admin-page-heading p {
    margin: 0;
    color: #263127;
    font-size: 1.1rem;
}

.admin-period-toggle,
.admin-filter-actions {
    display: flex;
    gap: .8rem;
    flex-wrap: wrap;
}

.admin-period-toggle {
    padding: .2rem;
    border: 1px solid rgba(0, 107, 50, .24);
    border-radius: 8px;
}

.admin-period-toggle button,
.admin-filter-actions button {
    min-height: 44px;
    padding: 0 1.3rem;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
    background: transparent;
    color: #1d281f;
    font-weight: 700;
}

.admin-period-toggle button:first-child {
    background: rgba(255, 255, 255, .58);
    color: var(--ml-primary);
}

.admin-export-button {
    border-radius: 8px;
    background: #dfe8db;
    color: #1d281f;
}

.admin-save-button {
    min-height: 54px;
    border-radius: 8px;
}

.admin-metric-grid,
.admin-order-status-grid,
.admin-prescription-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.6rem;
    margin-bottom: 4rem;
}

.admin-order-status-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-bottom: 2.6rem;
}

.admin-prescription-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-metric-grid article,
.admin-order-status-grid article,
.admin-prescription-metrics article,
.admin-chart-card,
.admin-alerts-card,
.admin-table-card,
.admin-order-filter-card,
.admin-settings-card,
.admin-support-aside article,
.admin-support-aside section {
    border: 1px solid rgba(0, 107, 50, .24);
    border-radius: 12px;
    background: rgba(255, 255, 255, .55);
    box-shadow: 0 10px 24px rgba(17, 40, 21, .04);
}

.admin-metric-grid article {
    position: relative;
    min-height: 240px;
    display: grid;
    align-content: center;
    gap: 1.2rem;
    padding: 2rem;
    overflow: hidden;
}

.admin-metric-grid small,
.admin-prescription-metrics small {
    color: #172018;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-metric-grid strong,
.admin-order-status-grid strong,
.admin-prescription-metrics strong {
    color: #111a14;
    font-size: 2.4rem;
    line-height: 1;
    font-weight: 900;
}

.admin-metric-grid p {
    margin: 0;
    color: #263127;
}

.admin-metric-grid p span {
    display: inline-flex;
    margin-right: .6rem;
    padding: .45rem .75rem;
    border-radius: 999px;
    background: #dce1ff;
    color: var(--ml-blue);
    font-size: .78rem;
    font-weight: 800;
}

.admin-metric-grid p span + span {
    background: #73ff91;
    color: var(--ml-primary);
}

.admin-metric-grid b {
    position: absolute;
    right: 2rem;
    top: 2rem;
    padding: .3rem .55rem;
    border-radius: 6px;
    background: #d9f8df;
    color: #20b755;
    font-size: .8rem;
}

.admin-metric-grid b.down {
    background: #ffd6d6;
    color: #d10000;
}

.admin-metric-grid > article > .material-symbols-outlined {
    position: absolute;
    right: 1.6rem;
    top: 2.1rem;
    color: rgba(0, 107, 50, .08);
    font-size: 4rem;
}

.admin-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 2rem;
}

.admin-chart-card {
    padding: 2rem;
}

.admin-chart-card header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.8rem;
}

.admin-chart-card h2,
.admin-alerts-card h2 {
    margin: 0;
    color: #111a14;
    font-size: 1.45rem;
    font-weight: 900;
}

.admin-chart-card a,
.admin-alerts-card > a {
    color: var(--ml-blue);
    text-decoration: none;
    font-weight: 700;
}

.admin-chart {
    position: relative;
    min-height: 340px;
    padding-left: 48px;
}

.admin-chart > span {
    display: block;
    height: 48px;
    color: #111a14;
    font-size: .85rem;
}

.admin-chart svg {
    position: absolute;
    inset: 10px 0 35px 50px;
    width: calc(100% - 50px);
    height: calc(100% - 45px);
    border-bottom: 1px solid rgba(0,0,0,.12);
}

.admin-chart div {
    position: absolute;
    left: 80px;
    right: 10px;
    bottom: 0;
    display: flex;
    justify-content: space-between;
}

.admin-alerts-card {
    display: grid;
    gap: .8rem;
    padding: 1.2rem;
}

.admin-alerts-card h2 {
    padding: .6rem 0 1rem;
}

.admin-alerts-card article {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: .9rem;
    padding: 1.2rem;
    border: 1px solid rgba(0, 107, 50, .18);
    border-radius: 8px;
}

.admin-alerts-card article.danger {
    border-left: 4px solid #d10000;
    background: #ffd8d6;
}

.admin-alerts-card article > span {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--ml-primary);
    color: #ffffff;
}

.admin-alerts-card article.danger > span {
    background: #d10000;
}

.admin-alerts-card h3,
.admin-alerts-card p {
    margin: 0 0 .35rem;
}

.admin-alerts-card h3 {
    font-size: .9rem;
    font-weight: 800;
}

.admin-alerts-card small {
    color: #4a574d;
    font-size: .75rem;
}

.admin-order-filter-card {
    display: grid;
    grid-template-columns: 1fr 1.45fr 1fr 180px;
    gap: 1.5rem;
    align-items: end;
    padding: 1.7rem 2rem;
    margin-bottom: 3rem;
}

.admin-order-filter-card label,
.admin-settings-card label {
    display: grid;
    gap: .55rem;
    color: #263127;
    font-weight: 800;
}

.admin-order-filter-card label div,
.admin-order-filter-card input,
.admin-order-filter-card select,
.admin-settings-card input,
.admin-settings-card select,
.admin-settings-card textarea {
    min-height: 54px;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 8px;
    background: #f6faf8;
    color: #111a14;
    font: inherit;
}

.admin-order-filter-card label div {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 0 .9rem;
}

.admin-order-filter-card input,
.admin-order-filter-card select,
.admin-settings-card input,
.admin-settings-card select {
    width: 100%;
    padding: 0 1rem;
}

.admin-order-filter-card label div input {
    min-height: 0;
    border: 0;
    background: transparent;
    padding: 0;
    outline: 0;
}

.admin-order-filter-card button {
    min-height: 48px;
    border: 0;
    border-radius: 8px;
    background: #3158c7;
    color: #ffffff;
    font-weight: 800;
}

.admin-order-status-grid article,
.admin-prescription-metrics article {
    min-height: 150px;
    display: grid;
    align-content: center;
    gap: 1.4rem;
    padding: 1.6rem;
}

.admin-order-status-grid p {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: 0;
    font-weight: 800;
}

.admin-order-status-grid .processing p,
.admin-order-status-grid .processing .material-symbols-outlined {
    color: #3158c7;
}

.admin-order-status-grid .pending p {
    color: #5d675f;
}

.admin-order-status-grid .shipped p,
.admin-order-status-grid .delivered p {
    color: var(--ml-primary);
}

.admin-order-status-grid .cancelled {
    background: #ffd8d6;
}

.admin-order-status-grid .cancelled p,
.admin-order-status-grid .cancelled strong {
    color: #a50010;
}

.admin-table-card {
    overflow: hidden;
}

.admin-table-card table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table-card th,
.admin-table-card td {
    padding: 1.4rem 1.6rem;
    border-bottom: 1px solid rgba(0, 107, 50, .18);
    text-align: left;
    vertical-align: middle;
}

.admin-table-card th {
    color: #263127;
    background: rgba(223, 232, 219, .45);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-table-card td {
    color: #263127;
}

.admin-table-card td strong {
    color: #111a14;
}

.admin-table-card footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 1.4rem 1.6rem;
}

.admin-table-card footer nav {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.admin-table-card footer a,
.admin-table-card footer strong {
    min-width: 38px;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(0, 107, 50, .18);
    border-radius: 6px;
    color: #1d281f;
    text-decoration: none;
}

.admin-table-card footer strong {
    background: var(--ml-primary);
    color: #ffffff;
}

.admin-status-pill,
.admin-role-pill,
.admin-prescription-status,
.support-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 30px;
    padding: 0 .8rem;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 800;
}

.admin-status-pill.active,
.admin-status-pill.delivered,
.admin-status-pill.confirmed,
.admin-status-pill.processing,
.admin-status-pill.pending {
    background: #dfe8db;
    color: #1d281f;
}

.admin-status-pill.processing {
    background: #dce1ff;
    color: #3158c7;
}

.admin-status-pill.delivered,
.admin-status-pill.out_for_delivery {
    background: #73ff91;
    color: var(--ml-primary);
}

.admin-status-pill.cancelled,
.admin-status-pill.suspended,
.admin-status-pill.rejected {
    background: #ffd8d6;
    color: #a50010;
}

.admin-status-pill i {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: currentColor;
}

.admin-row-menu {
    color: #3158c7;
}

.admin-user-avatar {
    width: 50px;
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 1rem;
    border-radius: 999px;
    background: #8fa0ff;
    color: #0c2e91;
    font-weight: 800;
}

.admin-table-card.users td:first-child {
    display: flex;
    align-items: center;
}

.admin-table-card.users small {
    display: block;
    color: #263127;
}

.admin-role-pill.professional,
.admin-role-pill.practitioner {
    background: #dce1ff;
    color: #0c2e91;
}

.admin-role-pill.pharmacy {
    background: #dfe8db;
}

.admin-role-pill.customer {
    background: #73ff91;
    color: var(--ml-primary);
}

.admin-table-card.users td:last-child a {
    margin-right: 1rem;
    color: var(--ml-primary);
    text-decoration: none;
    font-weight: 800;
}

.admin-table-card.users td:last-child a + a {
    color: var(--ml-blue);
}

.admin-prescription-metrics article {
    position: relative;
}

.admin-prescription-metrics article > .material-symbols-outlined {
    position: absolute;
    right: 2rem;
    top: 2rem;
    color: var(--ml-blue);
    font-size: 2rem;
}

.admin-prescription-metrics .danger {
    color: #d10000 !important;
}

.admin-prescription-status.pending,
.admin-prescription-status.under_review {
    background: #8fa0ff;
    color: #0c2e91;
}

.admin-prescription-status.rejected {
    background: #ffd8d6;
    color: #a50010;
}

.admin-prescription-status.approved {
    background: #73ff91;
    color: var(--ml-primary);
}

.admin-table-card.prescriptions td:last-child a {
    margin-right: 1.2rem;
    color: #0c4ed3;
}

.admin-table-card.prescriptions td:last-child a:last-child {
    color: var(--ml-primary);
}

.admin-settings-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: 1.8rem;
}

.admin-settings-card {
    display: grid;
    align-content: start;
    gap: 1.5rem;
    padding: 2rem;
}

.admin-settings-card.wide {
    grid-column: 1;
}

.admin-settings-card h2 {
    display: flex;
    align-items: center;
    gap: .9rem;
    margin: 0;
    color: #111a14;
    font-size: 1.4rem;
    font-weight: 900;
}

.admin-settings-card h2 > span {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #dfe8db;
    color: var(--ml-primary);
}

.admin-settings-card h2 > span.mint {
    background: #70efd5;
}

.admin-settings-card h2 > span.danger {
    background: #fee2e2;
    color: #d10000;
}

.admin-settings-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
}

.admin-logo-row {
    display: grid;
    grid-template-columns: 100px 86px 150px;
    gap: 1.2rem;
    align-items: end;
}

.admin-logo-row label {
    grid-column: 1 / -1;
}

.admin-logo-row img {
    width: 86px;
    height: 86px;
    object-fit: contain;
    border: 1px solid rgba(0, 107, 50, .18);
    border-radius: 8px;
    background: #ffffff;
}

.admin-logo-row button,
.admin-api-key {
    min-height: 48px;
    border: 1px solid rgba(0, 107, 50, .22);
    border-radius: 6px;
    background: #ffffff;
    color: var(--ml-primary);
    font-weight: 700;
}

.admin-settings-card textarea {
    min-height: 120px;
    padding: 1rem;
}

.admin-settings-toggle-row,
.admin-api-key,
.admin-check-row {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.admin-settings-toggle-row {
    padding: 1.2rem;
    border: 1px solid rgba(0, 107, 50, .18);
    border-radius: 8px;
}

.admin-settings-toggle-row p {
    margin: .3rem 0 0;
}

.admin-api-key {
    padding: 0 1rem;
}

.admin-api-key a {
    color: var(--ml-primary);
    text-decoration: none;
}

.admin-check-row {
    justify-content: flex-start;
    align-items: flex-start;
    font-weight: 400 !important;
}

.admin-check-row input {
    width: 20px;
    min-height: 20px;
    accent-color: var(--ml-primary);
}

.admin-check-row small {
    display: block;
    margin-top: .4rem;
    color: #4a574d;
    font-weight: 400;
}

.admin-support-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 2rem;
}

.admin-support-aside {
    display: grid;
    gap: 1.6rem;
    align-content: start;
}

.admin-support-aside h2 {
    margin: .4rem 0 0;
    font-size: 1.4rem;
    font-weight: 900;
}

.admin-support-aside article,
.admin-support-aside section {
    display: flex;
    gap: 1.2rem;
    padding: 1.8rem;
}

.admin-support-aside article > span {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #dceafb;
    color: #0c4ed3;
    font-size: 2rem;
}

.admin-support-aside article:nth-of-type(2) > span {
    background: #dff4e7;
    color: #0a9b43;
}

.admin-support-aside p {
    margin: 0;
}

.admin-support-aside strong {
    display: block;
    margin-top: .6rem;
    color: #00142b;
    font-size: 1.8rem;
    font-weight: 900;
}

.admin-support-aside small {
    color: #0a9b43;
}

.admin-support-aside section {
    display: grid;
}

.admin-support-aside h3 {
    margin: 0 0 .7rem;
    font-size: 1.2rem;
}

.admin-support-aside section a {
    min-height: 52px;
    display: grid;
    place-items: center;
    border: 1px solid #0c4ed3;
    border-radius: 8px;
    color: #0c4ed3;
    text-decoration: none;
}

.support-pill.high {
    background: #fee2e2;
    color: #d10000;
}

.support-pill.medium,
.support-pill.open {
    background: #fff2dd;
    color: #f7941d;
}

.support-pill.low {
    background: #dfe8db;
    color: #333;
}

.support-pill.in-progress {
    background: #dceafb;
    color: #0c4ed3;
}

.support-pill.resolved {
    background: #dff4e7;
    color: #0a9b43;
}

@media (max-width: 1199.98px) {
    .admin-console-app {
        grid-template-columns: 260px minmax(0, 1fr);
    }

    .admin-console-topbar {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .admin-console-actions {
        border-left: 0;
        padding-left: 0;
    }

    .admin-metric-grid,
    .admin-order-status-grid,
    .admin-prescription-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-dashboard-grid,
    .admin-order-filter-card,
    .admin-settings-grid,
    .admin-support-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .admin-console-app {
        grid-template-columns: 1fr;
    }

    .admin-console-sidebar {
        position: static;
        height: auto;
        grid-template-rows: auto;
    }

    .admin-console-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 0;
    }

    .admin-table-card {
        overflow-x: auto;
    }

    .admin-table-card table {
        min-width: 820px;
    }
}

@media (max-width: 767.98px) {
    .admin-console-content,
    .admin-console-topbar {
        padding: 1.25rem;
    }

    .admin-page-heading,
    .admin-chart-card header,
    .admin-table-card footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-metric-grid,
    .admin-order-status-grid,
    .admin-prescription-metrics,
    .admin-console-nav,
    .admin-settings-fields,
    .admin-logo-row {
        grid-template-columns: 1fr;
    }
}

.auth-shell-page,
.auth-page {
    min-height: 100vh;
    background:
        #f1f1f1
        url("../images/homepage-background.png")
        center top / cover
        repeat-y;
    color: var(--ml-ink);
}

.auth-shell-page {
    display: grid;
    grid-template-rows: auto 1fr auto;
}

.auth-page {
    display: flex;
    align-items: center;
}

.auth-topbar {
    min-height: 90px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 2rem;
    padding: 0 7.5%;
    border-bottom: 1px solid rgba(18, 48, 24, .12);
    background: rgba(248, 255, 246, .78);
}

.auth-brand,
.auth-register-link,
.auth-topnav a,
.auth-footer a {
    color: #064f25;
    text-decoration: none;
}

.auth-brand {
    font-size: 1.65rem;
    font-weight: 800;
}

.auth-topnav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3.3rem;
}

.auth-topnav a {
    color: #4e594e;
    font-size: 1rem;
    font-weight: 500;
}

.auth-register-link {
    justify-self: end;
    font-size: 1rem;
    font-weight: 700;
}

.auth-main {
    width: 90%;
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    place-items: center;
    padding: 4.5rem 0 5.5rem;
}

.auth-card {
    width: min(100%, 460px);
    min-height: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 2.2rem 3rem 2.4rem;
    border: 0;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 24px rgba(12, 40, 18, .12);
}

.auth-logo-mark {
    width: 58px;
    height: 58px;
    align-self: center;
    display: grid;
    place-items: center;
    border: 2px solid #c8d7c5;
    border-radius: 999px;
    background: #eef7ed;
    color: #006b32;
}

.auth-heading {
    margin: 0 0 1.35rem;
    text-align: left;
}

.auth-heading h1 {
    margin: 0;
    color: #141a15;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 800;
}

.auth-heading p,
.auth-signup,
.auth-divider p {
    margin: 0;
    color: #596459;
    font-size: 14px;
    font-weight: 500;
}

.auth-card label,
.auth-label-row a {
    margin-bottom: .35rem;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: .01em;
}

.auth-field {
    display: grid;
    gap: .25rem;
    margin-bottom: 1rem;
}

.auth-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.auth-label-row a,
.auth-signup a {
    color: #0b6b38;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.auth-input-wrap {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .55rem .8rem;
    border: 1px solid #bfcdbd;
    border-radius: 8px;
    background: #edf6eb;
}

.auth-input-wrap .material-symbols-outlined {
    color: #677568;
    font-size: 1.25rem;
}

.auth-input-wrap input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: #222a23;
    font-size: 14px;
    font-weight: 500;
}

.auth-select-wrap select {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: #222a23;
    font-size: 14px;
    font-weight: 500;
    appearance: none;
}

.auth-select-wrap {
    position: relative;
}

.auth-select-wrap::after {
    content: "expand_more";
    margin-left: auto;
    color: #677568;
    font-family: "Material Symbols Outlined";
    font-size: 1.25rem;
    line-height: 1;
    pointer-events: none;
}

.auth-input-wrap input::placeholder {
    color: #293329;
    opacity: .95;
}

.auth-input-action {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin-left: auto;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #677568;
    cursor: pointer;
    padding: 0;
}

.auth-submit {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin-top: .45rem;
    border: 0;
    border-radius: 8px;
    background: #007a37;
    color: #ffffff;
    box-shadow: 0 8px 16px rgba(0, 90, 38, .18);
    font-size: 14px;
    font-weight: 800;
}

.auth-submit .material-symbols-outlined {
    font-size: 1.25rem;
}

.auth-forgot-link {
    align-self: center;
    margin-top: .8rem;
    color: #111811;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.auth-forgot-link:hover {
    text-decoration: underline;
}

.auth-divider {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: .85rem;
    margin: 1.1rem 0 8px;
}

.auth-divider span {
    height: 1px;
    background: #c9d5c7;
}

.auth-divider p {
    font-size: .86rem;
    font-weight: 700;
}

.auth-google {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border: 1px solid #c3cec0;
    border-radius: 8px;
    background: #dde7da;
    color: #293329;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
}

.auth-google-mark {
    color: #4285f4;
    font-size: 1.25rem;
    font-weight: 800;
}

.auth-signup {
    margin-top: 8px;
    padding-top: 0;
    text-align: center;
    font-size: 14px;
}

.auth-signup a {
    font-weight: 800;
}

.auth-register-card {
    width: min(100%, 500px);
    padding-top: 2rem;
}

.auth-register-heading {
    margin-bottom: 1.2rem;
}

.auth-register-heading p {
    margin-top: .45rem;
    line-height: 1.5;
}

.auth-register-card .auth-field {
    margin-bottom: .8rem;
}

.auth-register-card .auth-divider {
    margin: .8rem 0 8px;
}

.auth-footer {
    min-height: 150px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.2rem 7.5%;
    border-top: 1px solid rgba(18, 48, 24, .16);
    background: #f1f8ee;
}

.auth-footer h2 {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .45rem;
    color: #064f25;
    font-size: 1.35rem;
    font-weight: 800;
}

.auth-footer h2 .material-symbols-outlined {
    font-size: 1.2rem;
}

.auth-footer p {
    margin: 0;
    color: #0c4ed3;
    font-weight: 500;
}

.auth-footer nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 2.3rem;
}

.auth-footer a {
    color: #7a8279;
    font-weight: 500;
}

@media (max-width: 991.98px) {
    .auth-topbar {
        grid-template-columns: 1fr;
        justify-items: center;
        padding: 1.3rem 5%;
    }

    .auth-register-link {
        justify-self: center;
    }

    .auth-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .auth-footer nav {
        justify-content: flex-start;
        gap: 1rem 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .auth-topnav {
        gap: 1.2rem;
    }

    .auth-card {
        min-height: auto;
        padding: 2rem 1.25rem;
    }

    .auth-heading {
        margin-bottom: 1.35rem;
    }

    .auth-divider {
        gap: .9rem;
        margin: 1.15rem 0 .9rem;
    }

    .auth-signup {
        padding-top: 0;
    }
}

/* Requested compact UI refinements */
.marketplace-action-icon {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    display: inline-grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 50% !important;
    overflow: hidden;
}

.marketplace-action-icon .material-symbols-outlined {
    width: 100%;
    height: 100%;
    display: inline-grid;
    place-items: center;
    font-size: 18px !important;
    line-height: 1 !important;
}

.marketplace-action-icon svg {
    width: 22px !important;
    height: 22px !important;
    display: block;
}

.pharmacy-register-copy h1 {
    font-size: 20px !important;
    line-height: 1.25 !important;
}

.pharmacy-form-card h2 {
    font-size: 16px !important;
    line-height: 1.25 !important;
}

.pharmacy-register-page p,
.pharmacy-register-page blockquote,
.pharmacy-register-page .pharmacy-benefit-card p,
.pharmacy-register-page .pharmacy-form-card > p,
.pharmacy-register-page .pharmacy-terms,
.pharmacy-register-page .pharmacy-provider-login,
.pharmacy-register-page .pharmacy-network-note {
    font-size: 12px !important;
}

.pharmacy-registration-form .pharmacy-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 0;
}

.pharmacy-registration-form .pharmacy-field,
.pharmacy-registration-form .pharmacy-input-wrap {
    width: 100%;
}

.pharmacy-registration-form .pharmacy-input-wrap {
    min-height: 48px;
}

.pharmacy-registration-form input,
.pharmacy-registration-form select {
    width: 100%;
}

.pharmacy-submit {
    min-height: 54px !important;
    font-size: 16px !important;
}

.pharmacy-add-medicine-card {
    margin-bottom: 1.2rem;
}

.pharmacy-add-medicine-card header {
    margin-bottom: 1rem;
}

.pharmacy-add-medicine-card header p {
    margin: .25rem 0 0;
    color: #354036;
    font-size: 12px;
}

.pharmacy-add-medicine-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

.pharmacy-add-medicine-form label {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #172119;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

.pharmacy-add-medicine-form label.wide {
    grid-column: 1 / -1;
}

.pharmacy-add-medicine-form input,
.pharmacy-add-medicine-form select,
.pharmacy-add-medicine-form textarea {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--portal-line);
    border-radius: 7px;
    background: #f8fff6;
    color: #172119;
    padding: .65rem .8rem;
    font-size: 12px;
}

.pharmacy-add-medicine-form textarea {
    min-height: 76px;
    resize: vertical;
}

.pharmacy-add-medicine-form .pharmacy-check-field {
    align-self: end;
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid var(--portal-line);
    border-radius: 7px;
    background: #f8fff6;
    padding: .55rem .75rem;
}

.pharmacy-add-medicine-form .pharmacy-check-field input {
    width: auto;
    min-height: auto;
}

.pharmacy-add-medicine-form button {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: 42px;
    padding: .55rem 1.1rem;
    font-size: 12px;
}

.pharmacy-portal-content,
.customer-dashboard-content,
.practitioner-portal-content,
.admin-console-content {
    width: min(92%, 1180px) !important;
    padding-top: 1.35rem !important;
    padding-bottom: 3rem !important;
}

.pharmacy-portal-topbar,
.customer-dashboard-topbar,
.practitioner-portal-topbar,
.admin-console-topbar {
    min-height: 72px !important;
    padding: .85rem 1.25rem !important;
    gap: 1rem !important;
}

.pharmacy-portal-sidebar,
.customer-dashboard-sidebar,
.practitioner-portal-sidebar,
.admin-console-sidebar {
    padding: 1rem !important;
}

.pharmacy-portal-nav a,
.pharmacy-settings-link,
.customer-dashboard-nav a,
.customer-sidebar-upload,
.practitioner-portal-nav a,
.practitioner-upload-btn,
.practitioner-sidebar-bottom a,
.practitioner-sidebar-bottom button,
.admin-console-nav a,
.admin-console-bottom a,
.admin-console-bottom button {
    min-height: 42px !important;
    padding: .55rem .8rem !important;
    font-size: 12px !important;
}

.pharmacy-portal-app p,
.customer-dashboard-app p,
.practitioner-portal-app p,
.admin-console-app p,
.pharmacy-portal-app td,
.customer-dashboard-app td,
.practitioner-portal-app td,
.admin-console-app td,
.pharmacy-portal-app input,
.customer-dashboard-app input,
.practitioner-portal-app input,
.admin-console-app input,
.pharmacy-portal-app select,
.customer-dashboard-app select,
.practitioner-portal-app select,
.admin-console-app select,
.pharmacy-portal-app textarea,
.customer-dashboard-app textarea,
.practitioner-portal-app textarea,
.admin-console-app textarea {
    font-size: 12px !important;
}

.pharmacy-portal-topbar h1,
.customer-dashboard-topbar h1,
.practitioner-portal-topbar h1,
.admin-console-title,
.pharmacy-page-heading h2,
.pharmacy-card h3,
.pharmacy-table-card h3,
.pharmacy-settings-card h3,
.customer-page-heading h2,
.customer-settings-heading h2,
.customer-info-card h2,
.customer-how-card h3,
.practitioner-page-heading h2,
.practitioner-card h3,
.practitioner-table-card h3,
.admin-page-heading h1,
.admin-chart-card h2,
.admin-table-card h2 {
    font-size: 16px !important;
    line-height: 1.25 !important;
}

.pharmacy-page-heading,
.practitioner-page-heading,
.admin-page-heading,
.customer-page-heading {
    margin-bottom: 1rem !important;
}

.pharmacy-page-heading p,
.practitioner-page-heading p,
.admin-page-heading p,
.customer-page-heading p {
    font-size: 12px !important;
}

.pharmacy-metric-grid,
.pharmacy-earnings-grid,
.practitioner-metric-grid,
.practitioner-money-grid,
.admin-metric-grid,
.customer-overview-grid {
    gap: .9rem !important;
    margin-bottom: 1.25rem !important;
}

.pharmacy-metric-grid article,
.pharmacy-money-card,
.pharmacy-card,
.pharmacy-table-card,
.pharmacy-prescription-card,
.pharmacy-settings-card,
.customer-overview-grid a,
.customer-info-card,
.customer-how-card,
.practitioner-card,
.practitioner-metric-grid article,
.practitioner-money-grid article,
.practitioner-table-card,
.admin-metric-grid article,
.admin-chart-card,
.admin-table-card,
.admin-settings-card {
    border-radius: 10px !important;
    padding: 1rem !important;
}

.pharmacy-metric-grid article,
.practitioner-metric-grid article,
.practitioner-money-grid article,
.pharmacy-money-card {
    min-height: 142px !important;
}

.pharmacy-metric-grid small,
.practitioner-metric-grid small,
.admin-metric-grid small {
    margin-bottom: .55rem !important;
    font-size: 10px !important;
}

.pharmacy-metric-grid strong,
.pharmacy-money-card strong,
.practitioner-metric-grid strong,
.practitioner-money-grid strong,
.admin-metric-grid strong,
.admin-metric-grid b,
.customer-overview-grid strong {
    font-size: clamp(1.6rem, 3vw, 2.15rem) !important;
}

.metric-icon,
.pharmacy-product-cell .material-symbols-outlined,
.pharmacy-recent-orders article > span,
.pharmacy-customer-cell > span {
    width: 38px !important;
    height: 38px !important;
    font-size: 1.25rem !important;
}

.metric-watermark {
    font-size: 2.8rem !important;
}

.pharmacy-card,
.pharmacy-recent-orders,
.practitioner-card,
.admin-chart-card,
.admin-table-card {
    gap: .8rem !important;
}

.pharmacy-dashboard-grid,
.practitioner-dashboard-grid,
.admin-dashboard-grid,
.customer-prescription-layout {
    gap: 1rem !important;
}

.pharmacy-chart-box {
    min-height: 220px !important;
    margin-top: 1rem !important;
}

.pharmacy-recent-orders article {
    grid-template-columns: 38px 1fr auto !important;
    gap: .7rem !important;
}

.pharmacy-table-card th,
.pharmacy-table-card td,
.admin-table-card th,
.admin-table-card td,
.practitioner-table-card th,
.practitioner-table-card td {
    padding: .75rem .9rem !important;
}

.customer-sidebar-user {
    display: none !important;
}

@media (max-width: 1199.98px) {
    .pharmacy-add-medicine-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .pharmacy-portal-app,
    .customer-dashboard-app,
    .practitioner-portal-app,
    .admin-console-app {
        grid-template-columns: 1fr !important;
    }

    .pharmacy-portal-sidebar,
    .customer-dashboard-sidebar,
    .practitioner-portal-sidebar,
    .admin-console-sidebar {
        position: static !important;
        height: auto !important;
    }

    .pharmacy-portal-topbar,
    .customer-dashboard-topbar,
    .practitioner-portal-topbar,
    .admin-console-topbar {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767.98px) {
    .pharmacy-registration-form .pharmacy-form-grid,
    .pharmacy-add-medicine-form,
    .pharmacy-metric-grid,
    .pharmacy-earnings-grid,
    .practitioner-metric-grid,
    .practitioner-money-grid,
    .admin-metric-grid,
    .customer-overview-grid {
        grid-template-columns: 1fr !important;
    }

    .pharmacy-add-medicine-form button {
        justify-self: stretch;
    }

    .marketplace-action-icon {
        width: 32px !important;
        height: 32px !important;
        flex-basis: 32px !important;
    }
}

/* Customer dashboard functional refresh */
.customer-dashboard-topbar {
    grid-template-columns: 1fr auto !important;
}

.customer-dashboard-spacer {
    min-height: 1px;
}

.customer-dashboard-actions {
    justify-content: flex-end;
    gap: .8rem !important;
}

.customer-notification-menu,
.customer-account-menu {
    position: relative;
}

.customer-account-menu summary img {
    width: 34px !important;
    height: 34px !important;
}

.customer-dashboard-app .customer-order-card,
.customer-dashboard-app .customer-prescription-card,
.customer-dashboard-app .customer-info-card,
.customer-dashboard-app .customer-settings-card,
.customer-dashboard-app .danger-zone,
.customer-dashboard-app .customer-calendar-card,
.customer-dashboard-app .customer-quick-card,
.customer-dashboard-app .customer-history-card,
.customer-dashboard-app .customer-appointment-card,
.customer-dashboard-app .customer-profile-card,
.customer-dashboard-app .customer-profile-menu,
.customer-dashboard-app .customer-how-card,
.customer-dashboard-app .customer-activity-card,
.customer-dashboard-app .customer-empty-card,
.customer-dashboard-app .customer-overview-grid a {
    border: 0 !important;
}

.customer-overview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.customer-overview-grid a {
    min-height: 130px;
    gap: .5rem;
}

.customer-table-card {
    width: 100%;
}

.customer-table-scroll {
    width: 100%;
    overflow-x: auto;
}

.customer-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.customer-data-table th,
.customer-data-table td {
    padding: .75rem .9rem;
    border: 0;
    border-bottom: 1px solid rgba(0, 107, 50, .12);
    vertical-align: middle;
}

.customer-data-table th {
    color: #1d281f;
    font-size: 14px;
    font-weight: 700;
    background: rgba(223, 232, 219, .55);
}

.customer-data-table td {
    font-size: 12px;
}

.customer-table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.customer-table-actions a {
    color: var(--ml-blue);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.customer-orders-page,
.customer-orders-page * {
    font-size: 14px;
}

.customer-orders-page .customer-data-table th {
    font-size: 14px;
}

.customer-orders-page .customer-data-table td,
.customer-orders-page .customer-status-pill,
.customer-orders-page .customer-table-actions a {
    font-size: 12px;
}

.customer-status-pill {
    min-height: 24px !important;
    padding: .15rem .55rem !important;
    font-size: 12px !important;
}

.customer-prescription-only {
    max-width: 980px;
}

.customer-prescription-card {
    align-items: stretch;
}

.customer-prescription-thumb {
    text-decoration: none;
}

.customer-prescription-thumb img {
    object-fit: cover;
}

.customer-profile-simple {
    grid-template-columns: 220px minmax(0, 1fr);
    width: 100%;
}

.customer-profile-simple .customer-profile-main {
    grid-template-columns: 1fr;
    width: 100%;
}

.customer-profile-card > span {
    font-size: 14px !important;
}

.customer-edit-profile-form button {
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--ml-blue);
    font-size: 14px;
    font-weight: 600;
}

.customer-save-toggle {
    min-height: 34px;
    padding: .35rem .9rem;
    background: var(--ml-primary) !important;
    color: #fff !important;
}

.customer-form-grid label {
    font-size: 14px !important;
    font-weight: 400 !important;
}

.customer-form-grid input,
.customer-form-grid select,
.customer-form-grid textarea,
.customer-phone-field {
    min-height: 46px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
}

.customer-form-grid input[readonly] {
    opacity: .82;
}

@media (max-width: 991.98px) {
    .customer-dashboard-topbar {
        grid-template-columns: 1fr !important;
    }

    .customer-dashboard-actions {
        justify-content: flex-start;
    }

    .customer-profile-simple {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .customer-overview-grid,
    .customer-form-grid {
        grid-template-columns: 1fr !important;
    }

    .customer-data-table {
        min-width: 720px;
    }
}

/* Pharmacy dashboard refinement pass */
.pharmacy-portal-sidebar {
    overflow: hidden;
}

.pharmacy-portal-brand {
    min-width: 0;
    align-items: center;
}

.pharmacy-portal-brand strong {
    min-width: 0;
    color: var(--portal-green);
    font-size: 15px !important;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.pharmacy-portal-nav,
.pharmacy-settings-link {
    width: 100%;
}

.pharmacy-portal-nav a,
.pharmacy-settings-link {
    width: 100%;
    max-width: 100%;
    border-radius: 10px;
    border-right-width: 0 !important;
    box-sizing: border-box;
}

.pharmacy-portal-nav a.active,
.pharmacy-settings-link.active {
    box-shadow: inset -4px 0 0 var(--portal-green);
}

.pharmacy-portal-topbar {
    grid-template-columns: 1fr auto !important;
}

.pharmacy-portal-actions {
    grid-column: 2;
    justify-self: end;
}

.pharmacy-notification-menu {
    position: relative;
}

.pharmacy-notification-menu summary {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    position: relative;
    border-radius: 999px;
    color: #172119;
    cursor: pointer;
    list-style: none;
}

.pharmacy-notification-menu summary::-webkit-details-marker {
    display: none;
}

.pharmacy-notification-menu summary::after {
    content: "";
    position: absolute;
    top: 7px;
    right: 8px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #d30000;
    box-shadow: 0 0 0 2px #f4fbf0;
}

.pharmacy-notification-menu summary:hover,
.pharmacy-notification-menu[open] summary {
    background: #e2eee0;
}

.pharmacy-notification-dropdown {
    position: absolute;
    top: calc(100% + .7rem);
    right: 0;
    z-index: 50;
    width: min(320px, calc(100vw - 2rem));
    border: 1px solid var(--portal-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(18, 35, 20, .14);
    padding: .75rem;
}

.pharmacy-notification-dropdown h2 {
    margin: .1rem .25rem .55rem;
    color: #101612;
    font-size: 15px !important;
    line-height: 1.25;
}

.pharmacy-notification-dropdown a {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: .65rem;
    align-items: center;
    border-radius: 9px;
    padding: .65rem;
    color: #172119;
    text-decoration: none;
}

.pharmacy-notification-dropdown a:hover {
    background: #f1f8ef;
}

.pharmacy-notification-dropdown .material-symbols-outlined {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #e2eee0;
    color: var(--portal-green);
    font-size: 19px;
}

.pharmacy-notification-dropdown strong,
.pharmacy-notification-dropdown small {
    display: block;
}

.pharmacy-notification-dropdown strong {
    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;
}

.pharmacy-notification-dropdown small {
    margin-top: .12rem;
    color: #5a655c;
    font-size: 11px;
}

.pharmacy-account-menu {
    position: relative;
}

.pharmacy-account-menu summary {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    cursor: pointer;
    list-style: none;
}

.pharmacy-account-menu summary::-webkit-details-marker {
    display: none;
}

.pharmacy-account-menu summary:hover,
.pharmacy-account-menu[open] summary {
    background: #e2eee0;
}

.pharmacy-account-menu summary img {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    object-fit: cover;
    border: 2px solid var(--portal-green);
}

.pharmacy-account-dropdown {
    position: absolute;
    top: calc(100% + .7rem);
    right: 0;
    z-index: 50;
    width: min(210px, calc(100vw - 2rem));
    border: 1px solid var(--portal-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(18, 35, 20, .14);
    padding: .45rem;
}

.pharmacy-account-dropdown a,
.pharmacy-account-dropdown button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #172119;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    line-height: 1.25;
    padding: .65rem .7rem;
    text-align: left;
    text-decoration: none;
}

.pharmacy-account-dropdown a:hover,
.pharmacy-account-dropdown button:hover {
    background: #f1f8ef;
    color: var(--portal-green);
}

.pharmacy-account-dropdown .material-symbols-outlined {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    font-size: 18px;
    line-height: 1;
}

.pharmacy-page-heading h2,
.pharmacy-card h3,
.pharmacy-table-card h3,
.pharmacy-settings-card h3,
.customer-page-heading h2,
.customer-settings-heading h2,
.practitioner-page-heading h2,
.practitioner-card h3,
.practitioner-table-card h3,
.admin-page-heading h1,
.admin-chart-card h2,
.admin-table-card h2 {
    font-size: 16px !important;
    line-height: 1.25 !important;
}

.pharmacy-page-heading p,
.pharmacy-card p,
.pharmacy-table-card p,
.pharmacy-settings-card p,
.customer-dashboard-app p,
.practitioner-portal-app p,
.admin-console-app p {
    font-size: 12px !important;
}

.pharmacy-metric-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem !important;
}

.pharmacy-metric-grid article {
    min-height: 126px !important;
    padding: .85rem !important;
}

.metric-icon {
    width: 34px !important;
    height: 34px !important;
    display: inline-grid !important;
    place-items: center !important;
    margin-bottom: .55rem !important;
    font-size: 18px !important;
    line-height: 1 !important;
}

.metric-icon.alert {
    font-size: 15px !important;
    overflow: hidden;
}

.metric-icon.alert::before {
    line-height: 1;
}

.metric-watermark {
    top: .8rem !important;
    right: .75rem !important;
    font-size: 2.2rem !important;
}

.pharmacy-metric-grid small {
    margin-bottom: .45rem !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
    letter-spacing: .07em !important;
}

.pharmacy-metric-grid strong,
.pharmacy-money-card strong,
.practitioner-metric-grid strong,
.practitioner-money-grid strong,
.admin-metric-grid strong,
.admin-metric-grid b,
.customer-overview-grid strong {
    font-size: 15px !important;
    line-height: 1.25 !important;
    word-break: break-word;
}

.pharmacy-metric-grid p {
    margin-top: .45rem !important;
    font-size: 12px !important;
    line-height: 1.35;
}

.pharmacy-dashboard-grid {
    grid-template-columns: minmax(0, 1.85fr) minmax(230px, .72fr) !important;
}

.pharmacy-chart-box {
    min-height: 190px !important;
    margin-top: .75rem !important;
    padding: .6rem;
}

.pharmacy-chart-box svg text {
    fill: #263028;
    font-size: 12px;
}

.pharmacy-empty-chart {
    display: grid;
    place-items: center;
    gap: .25rem;
    text-align: center;
    color: #5a655c;
}

.pharmacy-empty-chart .material-symbols-outlined {
    color: #8aa088;
    font-size: 30px;
}

.pharmacy-empty-chart strong {
    color: #172119;
    font-size: 14px;
}

.pharmacy-empty-chart p,
.pharmacy-empty-orders {
    margin: 0;
    font-size: 12px !important;
}

.pharmacy-recent-orders {
    gap: .65rem !important;
    padding: .85rem !important;
    align-content: start !important;
    align-self: start;
}

.pharmacy-recent-orders header {
    align-self: start;
    margin: 0 0 .15rem;
}

.pharmacy-recent-orders h3 {
    font-size: 15px !important;
}

.pharmacy-recent-orders header a {
    font-size: 12px;
}

.pharmacy-recent-orders article {
    grid-template-columns: 32px 1fr auto !important;
    gap: .55rem !important;
}

.pharmacy-recent-orders article > span,
.pharmacy-customer-cell > span {
    width: 32px !important;
    height: 32px !important;
    font-size: 11px !important;
}

.pharmacy-recent-orders strong {
    font-size: 12px;
    line-height: 1.25;
}

.pharmacy-recent-orders small {
    font-size: 10px !important;
    letter-spacing: .04em;
}

.pharmacy-recent-orders b {
    font-size: 12px;
}

.pharmacy-recent-orders em {
    font-size: 9px;
    padding: .18rem .4rem;
}

.pharmacy-add-medicine-card header {
    align-items: flex-start;
}

.pharmacy-form-reset {
    color: var(--portal-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.pharmacy-file-field small {
    display: block;
    margin-top: .35rem;
    color: #5a655c;
    font-size: 11px;
}

.pharmacy-table-card.inventory {
    overflow-x: auto;
}

.pharmacy-table-card.inventory table {
    min-width: 860px;
}

.pharmacy-table-card.inventory th {
    font-size: 13px !important;
    line-height: 1.25;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
}

.pharmacy-table-card.inventory td,
.pharmacy-table-card.inventory code,
.pharmacy-table-card.inventory .pharmacy-product-cell strong {
    font-size: 12px !important;
}

.pharmacy-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    border-radius: 999px;
    padding: .16rem .5rem !important;
    font-size: 12px !important;
    line-height: 1.1;
    white-space: nowrap;
}

.pharmacy-status-pill.pending,
.pharmacy-status-pill.info {
    background: #e1eadf;
    color: #536153;
}

.pharmacy-row-actions.icons {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.pharmacy-row-actions.icons form {
    margin: 0;
}

.pharmacy-row-actions.icons a,
.pharmacy-row-actions.icons button {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #18251a;
    text-decoration: none;
    cursor: pointer;
}

.pharmacy-row-actions.icons a:hover,
.pharmacy-row-actions.icons button:hover {
    background: #e6f1e2;
}

.pharmacy-row-actions.icons .material-symbols-outlined {
    font-size: 17px !important;
}

.pharmacy-row-actions.icons button .material-symbols-outlined {
    color: #b00000;
}

.pharmacy-empty-table {
    text-align: center;
    color: #5a655c;
    font-size: 12px !important;
}

.pharmacy-table-card.inventory footer nav {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}

.pharmacy-table-card.inventory footer nav a,
.pharmacy-table-card.inventory footer nav strong,
.pharmacy-table-card.inventory footer nav .disabled {
    min-width: 32px;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--portal-line);
    border-radius: 6px;
    padding: .35rem .55rem;
    font-size: 12px;
    text-decoration: none;
}

.pharmacy-table-card.inventory footer nav strong {
    border-color: var(--portal-green);
    background: var(--portal-green);
    color: #fff;
}

.pharmacy-table-card.inventory footer nav .disabled {
    color: #9aa49b;
    background: #eef5eb;
}

.admin-medicine-approval-table th,
.admin-medicine-approval-table td {
    vertical-align: middle;
}

@media (max-width: 1100px) {
    .pharmacy-metric-grid,
    .practitioner-metric-grid,
    .admin-metric-grid,
    .customer-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .pharmacy-dashboard-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767.98px) {
    .pharmacy-portal-topbar {
        grid-template-columns: 1fr auto !important;
        padding: .7rem .9rem !important;
    }

    .pharmacy-portal-search {
        min-width: 0;
        height: 42px;
    }

    .pharmacy-portal-actions {
        gap: .4rem;
    }

    .pharmacy-notification-dropdown {
        right: -3.4rem;
    }

    .pharmacy-metric-grid,
    .practitioner-metric-grid,
    .admin-metric-grid,
    .customer-overview-grid {
        grid-template-columns: 1fr !important;
    }
}

body .pharmacy-portal-app .pharmacy-table-card.inventory table thead tr th {
    padding: .7rem .95rem !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
    letter-spacing: .02em !important;
}

body .pharmacy-portal-app .pharmacy-table-card.inventory table tbody tr td,
body .pharmacy-portal-app .pharmacy-table-card.inventory table tbody tr td strong,
body .pharmacy-portal-app .pharmacy-table-card.inventory table tbody tr td code,
body .pharmacy-portal-app .pharmacy-table-card.inventory .pharmacy-product-cell strong {
    padding-top: .65rem !important;
    padding-bottom: .65rem !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
}

body .pharmacy-portal-app .pharmacy-table-card.inventory .pharmacy-status-pill {
    min-height: 18px !important;
    padding: .1rem .42rem !important;
    font-size: 10px !important;
}

body .pharmacy-portal-app .pharmacy-table-card.inventory .pharmacy-product-cell .material-symbols-outlined {
    width: 28px !important;
    height: 28px !important;
    font-size: 15px !important;
}

body .pharmacy-portal-app .pharmacy-table-card.inventory .pharmacy-row-actions.icons a,
body .pharmacy-portal-app .pharmacy-table-card.inventory .pharmacy-row-actions.icons button {
    width: 24px !important;
    height: 24px !important;
}

body .pharmacy-portal-app .pharmacy-table-card.inventory .pharmacy-row-actions.icons .material-symbols-outlined {
    font-size: 14px !important;
}

body .pharmacy-portal-app .pharmacy-add-medicine-form input.is-expired {
    border-color: #c60000 !important;
    box-shadow: 0 0 0 2px rgba(198, 0, 0, .08);
}

body .pharmacy-portal-app .pharmacy-expiry-error {
    display: none;
    margin-top: .3rem;
    color: #c60000;
    font-size: 11px !important;
    line-height: 1.2;
}

body .pharmacy-portal-app .pharmacy-expiry-error.show {
    display: block;
}

body .pharmacy-portal-app .pharmacy-table-card.inventory footer,
body .pharmacy-portal-app .pharmacy-table-card.inventory footer span,
body .pharmacy-portal-app .pharmacy-table-card.inventory footer nav a,
body .pharmacy-portal-app .pharmacy-table-card.inventory footer nav strong,
body .pharmacy-portal-app .pharmacy-table-card.inventory footer nav .disabled {
    font-size: 11px !important;
}

body .pharmacy-portal-app .metric-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    display: inline-grid !important;
    place-items: center !important;
    font-size: 20px !important;
    line-height: 1 !important;
}

body .pharmacy-portal-app .pharmacy-page-heading h2,
body .pharmacy-portal-app .pharmacy-portal-topbar h1 {
    font-size: 16px !important;
}

body .pharmacy-portal-app .pharmacy-card h3,
body .pharmacy-portal-app .pharmacy-table-card h3,
body .pharmacy-portal-app .pharmacy-prescription-section > h3 {
    font-size: 15px !important;
}

body .pharmacy-portal-app p,
body .pharmacy-portal-app .pharmacy-card p,
body .pharmacy-portal-app .pharmacy-page-heading p {
    font-size: 12px !important;
}

body .pharmacy-portal-app .pharmacy-metric-grid small {
    font-size: 11px !important;
}

body .pharmacy-portal-app .pharmacy-metric-grid strong,
body .pharmacy-portal-app .pharmacy-money-card strong {
    font-size: 15px !important;
    line-height: 1.2 !important;
}

body .admin-console-app .admin-console-topbar {
    display: flex !important;
    justify-content: flex-end !important;
    min-height: 72px !important;
    grid-template-columns: none !important;
}

body .admin-console-app .admin-console-topbar nav,
body .admin-console-app .admin-console-search,
body .admin-console-app .admin-upload-button,
body .admin-console-app .admin-alert-button,
body .admin-console-app .admin-period-toggle {
    display: none !important;
}

body .admin-console-app .admin-console-actions {
    border-left: 0 !important;
    padding-left: 0 !important;
}

body .admin-console-app .admin-page-heading.pharmacy-like {
    margin-bottom: 1rem !important;
}

body .admin-console-app .admin-page-heading.pharmacy-like h1 {
    color: var(--ml-primary);
    font-size: 16px !important;
}

body .admin-console-app .admin-metric-grid.pharmacy-style {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem !important;
    margin-bottom: 0 !important;
}

body .admin-console-app .admin-metric-grid.pharmacy-style article {
    position: relative;
    min-height: 142px !important;
    display: block;
    padding: 1rem !important;
    overflow: hidden;
    border-color: var(--portal-line);
    border-radius: 10px !important;
    background: rgba(255, 255, 255, .38);
}

body .admin-console-app .admin-metric-grid.pharmacy-style article > b {
    display: none !important;
}

body .admin-console-app .admin-metric-grid.pharmacy-style small {
    display: block;
    margin: .55rem 0;
    font-size: 10px !important;
}

body .admin-console-app .admin-metric-grid.pharmacy-style strong {
    display: block;
    font-size: 15px !important;
    line-height: 1.2 !important;
}

body .admin-console-app .admin-metric-grid.pharmacy-style p {
    margin-top: .55rem;
    font-size: 12px !important;
}

body .admin-console-app .admin-metric-grid.pharmacy-style p span {
    display: inline;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

body .admin-console-app .admin-metric-grid.pharmacy-style > article > .material-symbols-outlined.metric-watermark {
    top: .8rem;
    right: .8rem;
    color: #cbd8ca;
    font-size: 2.8rem !important;
    opacity: .55;
}

.admin-activity-ticker {
    overflow: hidden;
    margin: 20px 0;
    border: 1px solid var(--portal-line);
    border-radius: 10px;
    background: rgba(255, 255, 255, .42);
    box-shadow: 0 8px 18px rgba(15, 38, 20, .04);
}

.admin-activity-ticker div {
    width: max-content;
    display: flex;
    gap: 2rem;
    padding: .75rem 1rem;
    animation: adminTicker 45s linear infinite;
}

.admin-activity-ticker span {
    white-space: nowrap;
    color: #172119;
    font-size: 12px;
}

.admin-activity-ticker span::before {
    content: "";
    width: 7px;
    height: 7px;
    display: inline-block;
    margin-right: .5rem;
    border-radius: 999px;
    background: var(--ml-primary);
}

@keyframes adminTicker {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

body .admin-console-app .admin-chart-card.wide {
    padding: 1rem !important;
}

body .admin-console-app .admin-chart-card.wide header {
    display: block;
    margin-bottom: .8rem;
}

body .admin-console-app .admin-chart-card.wide header h2 {
    font-size: 15px !important;
}

body .admin-console-app .admin-chart-card.wide header p {
    margin: .25rem 0 0;
    font-size: 12px !important;
}

body .admin-console-app .admin-live-chart {
    min-height: 260px !important;
}

body .admin-console-app .pharmacy-like-table th {
    padding: .72rem .95rem !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
}

body .admin-console-app .pharmacy-like-table td,
body .admin-console-app .pharmacy-like-table td strong,
body .admin-console-app .pharmacy-like-table td small {
    padding-top: .7rem !important;
    padding-bottom: .7rem !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
}

body .admin-console-app .pharmacy-like-table .admin-status-pill,
body .admin-console-app .pharmacy-like-table .admin-role-pill {
    font-size: 12px !important;
    padding: .18rem .55rem !important;
}

body .admin-console-app .pharmacy-like-table footer,
body .admin-console-app .pharmacy-like-table footer span,
body .admin-console-app .pharmacy-like-table footer nav a,
body .admin-console-app .pharmacy-like-table footer nav strong,
body .admin-console-app .pharmacy-like-table footer nav .disabled {
    font-size: 11px !important;
}

body .admin-console-app .pharmacy-like-table footer nav .disabled {
    min-width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    color: #9aa49b;
}

.admin-banner-layout {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.admin-banner-form {
    display: grid;
    gap: 1rem;
}

.admin-banner-form label,
.admin-banner-card label {
    display: grid;
    gap: .35rem;
    color: #1c251f;
    font-size: 12px;
}

.admin-banner-form input,
.admin-banner-card input {
    width: 100%;
    min-height: 42px;
    padding: .7rem .85rem;
    border: 1px solid rgba(0, 85, 36, .22);
    border-radius: 8px;
    background: #f9fff7;
    color: #172018;
    font: inherit;
}

.admin-banner-note {
    margin: 0;
    color: #627066;
    font-size: 12px;
}

.admin-banner-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.admin-banner-card {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 85, 36, .2);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(0, 64, 28, .08);
}

.admin-banner-card img {
    width: 100%;
    aspect-ratio: 16 / 5;
    display: block;
    border-radius: 8px;
    object-fit: cover;
    background: #edf5ea;
}

.admin-banner-card form {
    display: grid;
    gap: .8rem;
    margin: 0;
}

.admin-banner-delete {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border: 1px solid rgba(190, 18, 60, .3);
    border-radius: 8px;
    background: #fff5f6;
    color: #b1001e;
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 1100px) {
    body .admin-console-app .admin-metric-grid.pharmacy-style {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-banner-layout,
    .admin-banner-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    body .admin-console-app .admin-metric-grid.pharmacy-style {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .shop-sidebar {
        margin-bottom: 3rem;
    }
}

body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) th {
    padding: .72rem .95rem !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
}

body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) td,
body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) td strong,
body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) td code {
    padding-top: .7rem !important;
    padding-bottom: .7rem !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
}

body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) footer,
body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) footer span,
body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) footer nav a,
body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) footer nav strong,
body .pharmacy-portal-app .pharmacy-table-card:not(.inventory) footer nav .disabled {
    font-size: 11px !important;
}

body .pharmacy-portal-app .pharmacy-status-pill {
    font-size: 12px !important;
    padding: .18rem .55rem !important;
}

body .pharmacy-portal-app .pharmacy-row-actions.icons {
    flex-direction: row !important;
    justify-content: flex-start !important;
    gap: .3rem !important;
}

body .pharmacy-portal-app .pharmacy-export-btn {
    padding: .45rem .75rem !important;
    font-size: 14px !important;
}

.pharmacy-order-status-form select {
    min-width: 128px;
    border: 1px solid var(--portal-line);
    border-radius: 7px;
    background: #fff;
    color: #172119;
    padding: .42rem .55rem;
    font-size: 12px;
}

.pharmacy-prescription-section {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.pharmacy-prescription-section > h3 {
    margin: 0;
    color: var(--portal-green);
}

.pharmacy-prescription-grid.compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    max-width: none;
}

.pharmacy-prescription-card.image-only {
    min-height: 0;
    gap: .75rem;
    padding: .9rem;
}

.pharmacy-prescription-card.image-only .pharmacy-prescription-preview {
    height: 178px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 8px;
    background: #eef5eb;
    color: var(--portal-green);
    text-decoration: none;
}

.pharmacy-prescription-card.image-only .pharmacy-prescription-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pharmacy-prescription-card.image-only .pharmacy-prescription-preview .material-symbols-outlined {
    font-size: 42px;
}

.pharmacy-prescription-meta h3 {
    margin: 0 0 .2rem;
    font-size: 14px !important;
}

.pharmacy-prescription-meta p,
.pharmacy-prescription-meta small {
    margin: 0;
    color: #53605a;
    font-size: 12px !important;
}

.pharmacy-prescription-meta small {
    display: block;
    margin-top: .35rem;
    color: #b00000;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.pharmacy-prescription-card.image-only footer {
    gap: .6rem;
    padding-top: .75rem;
}

.pharmacy-prescription-card.image-only footer a {
    font-size: 14px !important;
}

.pharmacy-prescription-card.image-only footer form {
    margin: 0;
}

.pharmacy-prescription-card.image-only footer .button {
    min-width: 86px;
    border: 0;
    padding: .45rem .7rem;
    font-size: 12px;
    cursor: pointer;
}

@media (max-width: 1050px) {
    .pharmacy-prescription-grid.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .pharmacy-prescription-grid.compact {
        grid-template-columns: 1fr;
    }
}

.medilink-flash-modal-layer {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: grid;
    place-items: start center;
    padding: clamp(4rem, 10vh, 6.5rem) 1rem 1rem;
    background: rgba(13, 28, 18, .14);
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
}

.medilink-flash-modal-layer.is-visible {
    opacity: 1;
}

.medilink-flash-modal-stack {
    width: min(420px, 100%);
    display: grid;
    gap: .75rem;
}

.medilink-flash-modal {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 28px;
    align-items: center;
    gap: .8rem;
    width: 100%;
    padding: .95rem 1rem;
    border: 1px solid rgba(0, 86, 44, .16);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(15, 32, 20, .2);
    opacity: 0;
    pointer-events: auto;
    transform: translateY(-12px) scale(.98);
    transition: opacity .22s ease, transform .22s ease;
}

.medilink-flash-modal.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.medilink-flash-modal-icon {
    width: 38px;
    height: 38px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    font-size: 22px !important;
}

.medilink-flash-modal-success .medilink-flash-modal-icon {
    background: #d9ffe4;
    color: #007936;
}

.medilink-flash-modal-error .medilink-flash-modal-icon {
    background: #ffe1e1;
    color: #b00000;
}

.medilink-flash-modal p {
    margin: 0;
    color: #142018;
    font-size: 12px !important;
    line-height: 1.45;
}

.medilink-flash-modal button {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #5e6a61;
    cursor: pointer;
}

.medilink-flash-modal button:hover {
    background: #eef5eb;
    color: #142018;
}

.medilink-flash-modal button .material-symbols-outlined {
    font-size: 18px !important;
}

/* Product detail, ratings, and cart refinements */
.product-detail-hero {
    grid-template-columns: minmax(260px, .8fr) minmax(300px, .9fr);
}

.product-detail-main-image,
.product-detail-main-image img {
    min-height: 0 !important;
    height: clamp(260px, 32vw, 390px) !important;
}

.product-detail-main-image img {
    object-fit: contain !important;
    padding: .75rem;
}

.product-detail-summary h1 {
    font-size: 16px !important;
    line-height: 1.35 !important;
}

.product-detail-price-block strong {
    color: #050b07 !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
}

.product-detail-primary-action,
.product-detail-secondary-action {
    min-height: 42px !important;
    padding: .65rem 1rem !important;
    font-size: 14px !important;
}

.product-detail-tabs button {
    position: relative;
    padding: 0 0 1rem;
    border: 0;
    background: transparent;
    color: #0f1712;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.product-detail-tabs button.is-active {
    color: #007a37;
}

.product-detail-tabs button.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    background: #007a37;
}

.product-detail-copy-grid {
    grid-template-columns: minmax(0, 1fr) !important;
}

.product-detail-rating,
.medicine-rating {
    display: flex;
    align-items: center;
    gap: .35rem;
    color: #111a14;
    font-size: 12px !important;
}

.product-detail-rating {
    margin: -.7rem 0 1rem;
}

.medicine-rating-stars {
    color: #ff9a17;
    font-size: 13px !important;
    letter-spacing: 0;
}

.medicine-rating-empty {
    color: #66736a !important;
    font-size: 12px !important;
}

.product-rating-form {
    margin: 0 0 1rem;
    padding: .75rem;
    display: grid;
    gap: .5rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, .58);
}

.product-rating-form > span {
    font-size: 12px;
    color: #3f4b43;
}

.product-rating-form div {
    display: flex;
    align-items: center;
    gap: .25rem;
    flex-wrap: wrap;
}

.product-rating-form input {
    position: absolute;
    opacity: 0;
}

.product-rating-form label span {
    color: #a8b3ab;
    font-size: 18px;
    cursor: pointer;
}

.product-rating-form label:has(input:checked) span,
.product-rating-form label:hover span {
    color: #ff9a17;
}

.product-rating-form button,
.medicine-card-add {
    border: 0;
    border-radius: 7px;
    background: #007a37;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    line-height: 1;
    cursor: pointer;
}

.product-rating-form button {
    padding: .5rem .75rem;
}

.medicine-card-action-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.medicine-card-add {
    min-height: 30px;
    padding: .45rem .7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.medicine-card-add-outline {
    border: 1px solid #007a37;
    background: transparent;
    color: #007a37;
}

.cart-item-side small {
    color: #677269;
    font-size: 10px;
    text-align: right;
}

.prescription-upload-heading h1 {
    font-size: 20px !important;
}

.prescription-upload-heading p,
.prescription-medicine-note p,
.prescription-benefit-card p {
    font-size: 12px !important;
}

.prescription-step strong,
.prescription-pharmacy-field span,
.prescription-submit-button {
    font-size: 14px !important;
}

.prescription-dropzone {
    min-height: 220px !important;
}

.prescription-pharmacy-field input[readonly] {
    min-height: 48px;
    padding: 0 1rem;
    border: 1px solid rgba(0, 85, 36, .2);
    border-radius: 8px;
    background: #eef8eb;
    color: #172018;
    font: inherit;
}

.admin-prescription-reason {
    display: block;
    margin-top: .4rem;
    color: #a00000;
    font-size: 11px;
    line-height: 1.35;
}

.pharmacy-rating-feed {
    margin: 10px 0;
    overflow: hidden;
    border-radius: 8px;
    background: #ff9a17;
    color: #fff;
}

.pharmacy-rating-feed-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 1.75rem;
    padding: .65rem 0;
    animation: medilink-rating-ticker 42s linear infinite;
}

.pharmacy-rating-feed span {
    white-space: nowrap;
    font-size: 12px;
}

.pharmacy-rating-feed strong {
    font-weight: 800;
}

.pharmacy-rating-feed small {
    opacity: .85;
}

@keyframes medilink-rating-ticker {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@media (max-width: 900px) {
    .product-detail-hero {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .product-detail-main-image,
    .product-detail-main-image img {
        height: 240px !important;
    }

    .product-detail-tabs {
        gap: 1.2rem !important;
        overflow-x: auto;
    }
}

/* Customer dashboard final overrides */
body .site-header .dropdown-menu .dropdown-item,
body .ecommerce-navbar .dropdown-menu .dropdown-item,
body .navbar .dropdown-menu .dropdown-item {
    font-size: 14px !important;
    line-height: 1.35 !important;
}

body .customer-dashboard-app .customer-data-table th,
body .customer-dashboard-app .customer-orders-page .customer-data-table th {
    font-size: 14px !important;
    line-height: 1.2 !important;
}

body .customer-dashboard-app .customer-profile-simple {
    grid-template-columns: 220px minmax(0, 1fr) !important;
    width: 100% !important;
}

body .customer-dashboard-app .customer-profile-simple .customer-profile-main,
body .customer-dashboard-app .customer-profile-simple .customer-info-card.wide,
body .customer-dashboard-app .customer-profile-simple .customer-edit-profile-form {
    width: 100% !important;
    max-width: none !important;
}

body .customer-dashboard-app .customer-dashboard-brand strong {
    font-size: 1.35rem !important;
    line-height: 1.15 !important;
}

body .customer-dashboard-app .customer-dashboard-brand span {
    display: block !important;
    overflow-wrap: anywhere !important;
}

@media (max-width: 991.98px) {
    body .customer-dashboard-app .customer-profile-simple {
        grid-template-columns: 1fr !important;
    }
}

/* Pharmacy dashboard final overrides */
body .pharmacy-portal-app .pharmacy-orders-table th {
    font-size: 14px !important;
    line-height: 1.2 !important;
}

body .pharmacy-portal-app .pharmacy-settings-layout-single {
    display: block !important;
    width: 100% !important;
}

body .pharmacy-portal-app .pharmacy-settings-layout-single .pharmacy-settings-main,
body .pharmacy-portal-app .pharmacy-business-card {
    width: 100% !important;
    max-width: none !important;
}

body .pharmacy-portal-app .pharmacy-business-card .pharmacy-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
    padding: 1.25rem !important;
}

body .pharmacy-portal-app .pharmacy-business-card label {
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

body .pharmacy-portal-app .pharmacy-business-card input,
body .pharmacy-portal-app .pharmacy-business-card textarea {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #172119;
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

body .pharmacy-portal-app .pharmacy-business-card textarea {
    min-height: 120px;
    padding: .85rem .95rem;
    border: 1px solid var(--portal-line);
    border-radius: 7px;
    background: #edf7eb;
    resize: vertical;
}

body .pharmacy-portal-app .pharmacy-business-card input::placeholder,
body .pharmacy-portal-app .pharmacy-business-card textarea::placeholder {
    color: #9aa59d !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    opacity: 1;
}

body .pharmacy-portal-app .pharmacy-logo-field img {
    width: 72px;
    height: 72px;
    margin-top: .35rem;
    border-radius: 10px;
    object-fit: cover;
    background: #fff;
    box-shadow: 0 6px 16px rgba(15, 38, 20, .08);
}

body .pharmacy-portal-app .pharmacy-settings-save {
    display: flex;
    justify-content: flex-end;
    border-top: 1px solid #d7dfd5;
    padding: .9rem 1.25rem 1.15rem;
}

body .pharmacy-portal-app .pharmacy-settings-save .pharmacy-primary-btn {
    min-height: 38px !important;
    padding: .5rem .85rem !important;
    font-size: 14px !important;
}

@media (max-width: 760px) {
    body .pharmacy-portal-app .pharmacy-business-card .pharmacy-form-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Store registration final overrides */
body .store-register-page .pharmacy-form-card h2 {
    font-size: 16px !important;
    font-weight: 700 !important;
}

body .store-register-page .pharmacy-form-card > p,
body .store-register-page .pharmacy-register-lead,
body .store-register-page .pharmacy-benefit-card p,
body .store-register-page .pharmacy-network-note,
body .store-register-page .pharmacy-provider-login {
    font-size: 12px !important;
    font-weight: 400 !important;
}

body .store-register-page .pharmacy-field > span:first-child {
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

body .store-register-page .pharmacy-input-wrap {
    min-height: 46px !important;
    padding: 0 .8rem !important;
}

body .store-register-page .pharmacy-input-wrap input,
body .store-register-page .pharmacy-input-wrap select {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #253026;
    font-size: 14px !important;
    font-weight: 400 !important;
}

body .store-register-page .pharmacy-input-wrap input::placeholder {
    color: #9aa59d !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    opacity: 1;
}

body .store-register-page .pharmacy-submit {
    min-height: 44px !important;
    padding: .6rem 1rem !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

@media (max-width: 760px) {
    body .store-register-page .pharmacy-registration-form .pharmacy-form-grid {
        grid-template-columns: 1fr !important;
    }
}
