:root {
    --provider-primary: #075f50;
    --provider-primary-dark: #043f36;
    --provider-sidebar: #102f2b;
    --provider-bg: #f3f7f6;
    --provider-border: #d9e5e2;
}

body.provider-app { --provider-topbar-height: 72px; margin: 0; min-height: 100vh; background: var(--provider-bg); color: #17332e; }
.provider-topbar { min-height: var(--provider-topbar-height); background: #fff; border-bottom: 1px solid var(--provider-border); z-index: 1040; }
.provider-brand-mark, .provider-login-logo { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--provider-primary); color: #fff; font-size: 1.2rem; box-shadow: 0 8px 22px rgba(7,95,80,.2); }
.provider-brand-title { color: #17332e; font-weight: 800; line-height: 1.1; }
.provider-brand-subtitle { color: #637872; font-size: .72rem; letter-spacing: .04em; }
.provider-user-chip { border: 1px solid var(--provider-border); background: #f8fbfa; padding: .25rem .75rem .25rem .3rem; }
.provider-user-avatar { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; background: var(--provider-primary); color: #fff; font-weight: 800; }
.provider-menu-button { color: var(--provider-primary); border-color: var(--provider-border); }
.provider-shell { min-height: calc(100vh - var(--provider-topbar-height)); }
.provider-sidebar { --bs-offcanvas-width: 275px; width: 275px; flex: 0 0 275px; background: linear-gradient(180deg, var(--provider-sidebar), #09231f); color: #fff; }
.provider-sidebar .provider-sidebar-scroll { min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: rgba(183,221,211,.6) rgba(255,255,255,.06); scrollbar-width: thin; }
.provider-sidebar-scroll::-webkit-scrollbar { width: 8px; }
.provider-sidebar-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.06); }
.provider-sidebar-scroll::-webkit-scrollbar-thumb { background: rgba(183,221,211,.6); border-radius: 999px; }
.provider-nav-heading { margin: 1.4rem .75rem .5rem; color: #8fb9b1; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.provider-nav-link { display: flex; align-items: center; gap: .75rem; margin-bottom: .25rem; padding: .72rem .85rem; border-radius: .7rem; color: #e2efec; text-decoration: none; font-weight: 600; font-size: .9rem; }
.provider-nav-link i { width: 1.25rem; text-align: center; font-size: 1rem; }
.provider-nav-link:hover, .provider-nav-link:focus-visible, .provider-nav-link.active { color: #fff; background: #147663; outline: none; }
.provider-nav-link:focus-visible { box-shadow: 0 0 0 .2rem rgba(255,255,255,.3); }
.provider-nav-disabled { color: #8da19d; cursor: not-allowed; }
.provider-nav-disabled:hover { color: #8da19d; background: transparent; }
.provider-workspace { min-width: 0; }
.provider-page-heading { padding: 1.25rem 1.5rem .5rem; }
.provider-page-kicker { color: var(--provider-primary); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.provider-page-title { color: #15342e; font-size: clamp(1.45rem, 2.3vw, 2rem); font-weight: 800; }
.provider-content { margin: .75rem 1.5rem 1.5rem; padding: 1.25rem; min-height: calc(100vh - 210px); border: 1px solid var(--provider-border); border-radius: 1rem; background: #fff; box-shadow: 0 12px 35px rgba(18,61,53,.06); }
.provider-footer { padding: 0 1.5rem 1rem; color: #6b7f7a; font-size: .78rem; }
.provider-product-card { border: 1px solid var(--provider-border) !important; }
.provider-product-icon { width: 52px; height: 52px; flex: 0 0 52px; display: inline-flex; align-items: center; justify-content: center; border-radius: 15px; font-size: 1.45rem; }
.provider-product-icon.medical { background: #dff4ee; color: #08745e; }
.provider-product-icon.lab { background: #edf0f2; color: #617079; }
.provider-product-icon.global { background: #e7f1ff; color: #1459a6; }
.provider-action-card { height: 100%; display: flex; flex-direction: column; gap: .35rem; padding: 1rem; border: 1px solid var(--provider-border); border-radius: .8rem; color: #17332e; text-decoration: none; background: #fbfdfc; }
.provider-action-card > i { color: var(--provider-primary); font-size: 1.25rem; }
.provider-action-card small { color: #687c77; }
.provider-action-card:hover, .provider-action-card:focus-visible { border-color: #6ab3a4; color: #075f50; background: #f1faf7; outline: none; box-shadow: 0 0 0 .2rem rgba(7,95,80,.12); transform: translateY(-1px); }
.provider-coming-soon { background: #fafbfb; }
.subscription-card { border: 1px solid var(--provider-border) !important; }
.subscription-summary { min-height: 3.5rem; padding: .85rem 1rem; border-radius: .7rem; background: #f3f7f6; color: #425f58; }

.provider-login-page { min-height: 100vh; background-image: linear-gradient(rgba(237,244,242,.35), rgba(237,244,242,.35)), var(--provider-login-background-image, none), radial-gradient(circle at top right, #dcefe9 0, transparent 38%); background-position: center; background-size: cover; background-attachment: fixed; background-color: #edf4f2; color: #17332e; }
.provider-login-card { width: min(1050px, 100%); }
.provider-login-intro { min-height: 610px; background: linear-gradient(145deg, rgba(4,63,54,.96), rgba(7,95,80,.9)), url('../uploadFile/login/configured/imdc-login-hero.png') center/cover; }
.provider-login-logo { width: 58px; height: 58px; background: rgba(255,255,255,.16); font-size: 1.6rem; box-shadow: none; }
.provider-login-security { border-top: 1px solid rgba(255,255,255,.22); font-size: .9rem; }
.provider-login-page .form-control:focus { border-color: #419985; box-shadow: 0 0 0 .25rem rgba(7,95,80,.14); }
.provider-login-page .input-group-text { background: #f3f7f6; color: var(--provider-primary); border-color: #cedbd8; }

@media (min-width: 992px) {
    .provider-sidebar { position: sticky; top: var(--provider-topbar-height); height: calc(100vh - var(--provider-topbar-height)); height: calc(100dvh - var(--provider-topbar-height)); display: flex; flex-direction: column; overflow: hidden; }
    .provider-sidebar-scroll { flex: 1 1 auto; min-height: 0; }
}
@media (max-width: 991.98px) {
    .provider-login-intro { min-height: 300px; }
    .provider-page-heading, .provider-content { margin-left: .85rem; margin-right: .85rem; }
    .provider-page-heading { padding-left: 0; padding-right: 0; }
}
@media (max-width: 575.98px) {
    .provider-brand-subtitle { display: none !important; }
    .provider-content { padding: 1rem; }
}
