/* Elite Access Tools — Department Store. */
:root, html[data-bs-theme="light"] {
    color-scheme: light;
    --elite-bg: #f2f4f7;
    --elite-panel: #ffffff;
    --elite-raised: #e6ebf2;
    --elite-line: #bac5d4;
    --elite-text: #142338;
    --elite-muted: #53647c;
    --elite-orange: #c4d5ed;
    --primary-color: #c4d5ed;
    --secondary-color: #244f87;
    --accent-color: #c4d5ed;
    --bs-body-bg: #f2f4f7;
    --bs-body-color: #142338;
    --bs-secondary-color: #53647c;
    --bs-border-color: #bac5d4;
    --bs-primary: #c4d5ed;
    --bs-primary-rgb: 196,213,237;
    --bs-link-color: #244f87;
    --bs-link-hover-color: #18375f;
}
html body {
    background: #c4d5ed;
    color: var(--elite-text); font-family: 'Segoe UI', system-ui, sans-serif;
}
html body :is(h1,h2,h3,h4,h5,h6) { font-weight: 750; letter-spacing: -.025em; }
html body a { color: #244f87; }
html body a:hover { color: #18375f; }
html body ::selection { background: #c4d5ed; color: #142338; }
html body :is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #244f87; outline-offset: 3px; }
html body .navbar { background: #fffffff5; border-bottom: 1px solid #bac5d4; box-shadow: 0 8px 30px #0004; }
html body .brand-logo { background: none; color: #142338; -webkit-text-fill-color: #142338; font-weight: 800; letter-spacing: -.035em; }
html body .brand-logo i { color: #c4d5ed; -webkit-text-fill-color: #c4d5ed; }
html body .navbar .nav-link { color: #53647c; }
html body .navbar .nav-link:hover { color: #244f87; }
html body .navbar-toggler { border-color: #bac5d4; }
html body .navbar-toggler-icon { filter: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23e4e7ed' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
html body :is(.dropdown-menu,.modal-content,.offcanvas) { background: #ffffff; color: #142338; border: 1px solid #bac5d4; border-radius: 16px; }
html body .dropdown-item { color: #142338; }
html body .dropdown-item:is(:hover,:focus,:active) { background: #e6ebf2; color: #18375f; }
html body .dropdown-divider { border-color: #bac5d4; }
html body :is(.modal-header,.modal-footer) { border-color: #bac5d4; }
html body .btn-close { filter: var(--bs-btn-close-white-filter, invert(1) grayscale(100%) brightness(200%)); }
html body footer.bg-dark { background: #ffffff !important; border-top: 1px solid #bac5d4; }
html body .card { --bs-card-bg: #ffffff; --bs-card-color: #142338; --bs-card-border-color: #bac5d4; }
html body :is(.card,.card-custom) { border: 1px solid #bac5d4; border-radius: 18px; box-shadow: 0 12px 32px #0003; background: #ffffff; color: #142338; }
html body .card-custom:hover { transform: none; box-shadow: 0 16px 38px #0004; }
html body .card-header { background: #e6ebf2; border-bottom-color: #bac5d4; }
html body :is(.bg-white,.bg-light) { background-color: #e6ebf2 !important; color: #142338; }
html body :is(.text-dark,.text-body) { color: #142338 !important; }
html body .text-muted { color: #53647c !important; }
html body .text-primary { color: #244f87 !important; }
html body .text-success { color: #86dba9 !important; }
html body .text-danger { color: #ff9b9b !important; }
html body .text-warning { color: #f8cf79 !important; }
html body .text-info { color: #8ad4f1 !important; }
html body .border { border-color: #bac5d4 !important; }
html body .btn { border-radius: 10px; font-weight: 650; }
html body :is(.btn-primary,.btn-gradient,.st-btn--primary,.st-btn--light,.md-btn--primary) {
    background: #c4d5ed; border-color: #c4d5ed; color: #142338;
    box-shadow: 0 4px 18px #c4d5ed18;
}
html body :is(.btn-primary,.btn-gradient,.st-btn--primary,.st-btn--light,.md-btn--primary):hover {
    background: #c4d5ed; color: #142338; border-color: #c4d5ed; transform: none;
}
html body :is(.btn-outline-primary,.btn-light,.btn-outline-light,.btn-secondary,.qa-btn,.st-btn--ghost) {
    --bs-btn-color: #142338; --bs-btn-bg: #e6ebf2; --bs-btn-border-color: #bac5d4;
    --bs-btn-hover-color: #18375f; --bs-btn-hover-bg: #e6ebf2; --bs-btn-hover-border-color: #c4d5ed;
    background: #e6ebf2; border-color: #bac5d4; color: #142338;
}
html body :is(.qa-btn.active,.qa-btn:active,.nav-pills .nav-link.active) { background: #c4d5ed; color: #142338; border-color: #c4d5ed; box-shadow: none; }
html body .nav-tabs { border-color: #bac5d4; }
html body .nav-tabs .nav-link.active { background: #e6ebf2; color: #244f87; border-color: #bac5d4; }
html body .btn-outline-danger { --bs-btn-color: #ff9b9b; --bs-btn-border-color: #ab5454; }
html body .btn-outline-success { --bs-btn-color: #86dba9; --bs-btn-border-color: #407858; }
html body .btn-outline-info { --bs-btn-color: #8ad4f1; --bs-btn-border-color: #467a8e; }
html body :is(.form-control,.form-select,.input-group-text) { background-color: #ffffff; color: #142338; border-color: #bac5d4; border-radius: 9px; }
html body .input-group-text { background: #e6ebf2; }
html body :is(.form-control,.form-select):focus { background-color: #ffffff; color: #142338; border-color: #c4d5ed; box-shadow: 0 0 0 .2rem #c4d5ed30; }
html body .form-control::placeholder { color: #53647c; opacity: 1; }
html body :is(.form-control,.form-select):disabled { background-color: #e6ebf2; color: #53647c; }
html body .form-check-input:checked { background-color: #c4d5ed; border-color: #c4d5ed; }
html body input { accent-color: #c4d5ed; }
html body .table { --bs-table-bg: #ffffff; --bs-table-color: #142338; --bs-table-border-color: #bac5d4; --bs-table-hover-bg: #e6ebf2; --bs-table-hover-color: #142338; --bs-table-striped-bg: #e6ebf2; --bs-table-striped-color: #142338; }
html body .table-light { --bs-table-bg: #e6ebf2; --bs-table-color: #142338; }
html body .table thead th { color: #53647c; background: #e6ebf2; font-size: .8rem; letter-spacing: .04em; }
html body .list-group { --bs-list-group-bg: #ffffff; --bs-list-group-color: #142338; --bs-list-group-border-color: #bac5d4; --bs-list-group-action-hover-bg: #e6ebf2; --bs-list-group-action-hover-color: #18375f; }
html body .alert { border-radius: 12px; }
html body .badge[style*="76 175 80"] { background: #dcf5e6 !important; color: #1c7a44 !important; }
html body .badge[style*="255 193 7"] { background: #fdf0cf !important; color: #92600a !important; }
html body .badge[style*="255 19 19"] { background: #fbe4e4 !important; color: #b3373b !important; }
html body .badge[style*="108 117 125"] { background: #e6ebf2 !important; color: #53647c !important; }
html body :is(.notif-item,.notif-head) { border-color: #bac5d4; color: #142338; }
html body .notif-item:is(:hover,.is-unread) { background: #e6ebf2; color: #142338; }
html body .notif-mark { color: #244f87; }
html body :is(.notif-detail,.notif-when,.notif-empty) { color: #53647c; }
/* Storefront, checkout, legal and contact pages. */
html body :is(.st-feature-card,.st-toolbar,.st-card,.st-empty,.st-step,.st-faq details,.st-admin-note,.cp-panel,.cp-empty,.cp-alert,.lg-body,.lg-toc,.ct-card) { background: #ffffff; color: #142338; border: 1px solid #bac5d4; box-shadow: 0 12px 32px #0003; }
html body .st-hero { padding-top: 48px; }
html body .st-hero h1 { letter-spacing: -.05em; }
html body .st-hero h1 em { display: block; color: #244f87; }
html body .st-eyebrow { background: #e6ebf2; border: 1px solid #bac5d4; color: #18375f; }
html body .st-feature { color: #142338; }
html body .st-feature:hover { background: #e6ebf2; }
html body :is(.st-tile,.st-mini,.ct-icon) { background: #e6ebf2; color: #244f87; }
html body .st-why div { background: #ffffff; border-color: #bac5d4; }
html body :is(.st-why i,.st-warranty i,.st-empty i,.st-feature-empty i,.cp-empty i,.st-step .num,.st-faq summary::after,.feature-icon) { color: #244f87; }
html body .st-card:hover { border-color: #bac5d4; }
html body .st-search input { background: #ffffff; color: #142338; }
html body .st-search input:focus { background: #ffffff; outline-color: #bac5d4; border-color: #c4d5ed; }
html body :is(.st-chip,.st-plan span) { background: #e6ebf2; color: #142338; border-color: #bac5d4; }
html body :is(.st-chip[aria-pressed="true"],.st-plan input:checked + span) { background: #c4d5ed; color: #142338; border-color: #c4d5ed; }
html body .st-chip[aria-pressed="true"] small { color: #142338; }
html body .st-plan input:focus-visible + span { outline-color: #c4d5ed; }
html body .st-badge { background: #e6ebf2; color: #18375f; }
html body :is(.st-stock--ok,.st-off) { color: #86dba9; }
html body .st-off { background: #1c3628; }
html body .st-stock--low { color: #f8cf79; }
html body .st-stock--out { color: #ff9b9b; }
html body .st-owned { background: #3c301b; color: #f8cf79; }
html body :is(.st-details summary,.lg-toc a,.lg-body a,.ct-row a,.ct-links a) { color: #244f87; }
html body :is(.lg-body p,.lg-body li) { color: #53647c; }
html body .cp-method:has(input:checked) { background: #e6ebf2; border-color: #c4d5ed; }
html body .cp-pay-note { background: #e6ebf2; color: #53647c; }

/* Member dashboard: preserve each product's individual accent. */
html body .md-wrap { --md-ink: #142338; --md-muted: #53647c; --md-line: #bac5d4; --md-track: #e6ebf2; --md-ok: #1c7a44; --md-ok-bg: #dcf5e6; --md-warn: #f8cf79; --md-warn-bg: #3c301b; --md-bad: #b3373b; --md-bad-bg: #fbe4e4; }
html body .md-panel { background: #ffffff; border: 1px solid #bac5d4; box-shadow: 0 12px 32px #0003; }
html body .md-plan { background: #ffffff; }
html body .md-plan-logo { background: #e6ebf2; }
html body .md-bar > span { background: #c4d5ed; }
html body :is(.md-renew,.md-panel-links a,.md-hist-links a) { color: #244f87; }
html body .md-hist-toggle { background: #e6ebf2; color: #244f87; border-color: #bac5d4; }
html body .md-pill.is-past { background: #e6ebf2; color: #53647c; }
html body .md-alert { color: #f8cf79; }
@media (max-width: 520px) { html body .brand-logo { font-size: 1.2rem; } html body .st-hero { padding-top: 24px; } }
@media (prefers-reduced-motion: reduce) { html body *,html body *::before,html body *::after { transition: none !important; animation: none !important; } }

html body :is(.card,.card-custom,.st-card,.st-feature-card,.st-toolbar,.st-step,.st-faq details,.md-panel,.cp-panel,.lg-body,.ct-card) { border-radius:6px; }

html[data-bs-theme="light"] { color-scheme:light; --bs-emphasis-color:#142338; --bs-emphasis-color-rgb:20,35,56; --bs-secondary-bg:#e6ebf2; --bs-tertiary-bg:#e6ebf2; }
html body :is(.st-hero,.st-section-head,.cp-head,.lg-head,.lg-other,.md-hello,.st-why div) { color:#142338; }
html body :is(.st-hero p.lead,.st-section-head p,.st-hero-stats span,.st-hero .st-note,.st-why p,.cp-head p,.lg-head p,.md-hello p) { color:#53647c; }
html body :is(.text-white,.text-white-50) { color:#142338 !important; }
html body .navbar-toggler-icon { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23333333' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
html body .btn-close { filter:none; }
html body .form-select { --bs-form-select-bg-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23333333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E"); }
html body :is(.text-success,.st-stock--ok) { color:#21643d !important; }
html body :is(.text-danger,.st-stock--out) { color:#a02a38 !important; }
html body :is(.text-warning,.st-stock--low) { color:#805810 !important; }
html body .text-info { color:#185570 !important; }
html body .btn-outline-danger { --bs-btn-color:#a02a38; }
html body .btn-outline-success { --bs-btn-color:#21643d; }
html body .btn-outline-info { --bs-btn-color:#185570; }
html body :is(.alert-success,.bg-success-subtle) { background:#e4f3e8 !important; color:#21643d; }
html body :is(.alert-danger,.bg-danger-subtle) { background:#fce8eb !important; color:#a02a38; }
html body :is(.alert-warning,.bg-warning-subtle) { background:#fcf1d8 !important; color:#805810; }
html body :is(.alert-info,.bg-info-subtle) { background:#e5f2f8 !important; color:#185570; }
html body .st-chip[aria-pressed="true"] small { color:#142338; }

@media(max-width:900px){html body .st-hero{grid-template-columns:1fr;gap:28px;padding:32px 0}html body .st-feature-list{grid-template-columns:1fr}html body .st-feature{justify-content:flex-start}html body .st-feature b{flex-basis:auto}}
@media(max-width:520px){html body .st-hero h1{font-size:2.5rem}html body .st-grid{grid-template-columns:1fr}html body .st-hero-stats{flex-wrap:wrap}html body .st-feature-card{padding:24px}}

:root { --solid-button:#c4d5ed; --solid-button-text:#142338; }

/* Solid fills throughout; legacy gradient button classes are overridden. */
html body { background:var(--elite-bg); }
html body :is(button,.btn,.btn-gradient,.st-btn,.md-btn,.st-chip,.st-plan span),
html body :is(button,.btn,.btn-gradient,.st-btn,.md-btn,.st-chip,.st-plan span):is(:hover,:focus,:active,:disabled) { background-image:none !important; }
html body :is(.btn-primary,.btn-gradient,.st-btn--primary,.st-btn--light,.md-btn--primary) { background-color:var(--solid-button) !important; color:var(--solid-button-text) !important; border-color:var(--solid-button) !important; }
html body :is(.btn-primary,.btn-gradient,.st-btn--primary,.st-btn--light,.md-btn--primary):hover { filter:brightness(.92); }
html body .st-tile,html body .st-mini,html body .md-bar>span { background-image:none; }
.layout-kicker { display:block; font-size:.72rem; letter-spacing:.15em; font-weight:750; margin-bottom:16px; }
.layout-hero h1 { font-size:clamp(2.6rem,5vw,5rem); line-height:1.02; margin:0 0 24px; }
.layout-hero p { color:var(--elite-muted); max-width:40rem; font-size:1.08rem; }
.layout-hero { padding:48px 0; }
.layout-nav { display:flex; flex-wrap:wrap; gap:24px; padding:18px 0; border-bottom:1px solid var(--elite-line); }
.catalog-heading { padding:32px 0 24px; }
.catalog-heading h2 { margin:0 0 8px; font-size:2rem; }
.catalog-heading p { color:var(--elite-muted); }
.layout-process,.layout-faq { margin:64px 0 32px; padding-top:30px; border-top:1px solid var(--elite-line); }
.layout-process>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.layout-process p { color:var(--elite-muted); }
.layout-process b { display:block; margin:12px 0; color:var(--elite-text); }
.layout-faq details { border-bottom:1px solid var(--elite-line); padding:18px 0; }
.layout-faq summary { cursor:pointer; font-weight:700; }
.layout-faq p { color:var(--elite-muted); margin-top:12px; }
html body .st-card .st-btn { min-height:46px; }
html body .st-card[hidden] { display:none !important; }
@media(max-width:760px){.layout-process>div{grid-template-columns:1fr;gap:0}.layout-hero{padding:30px 0}.layout-hero h1{font-size:2.7rem}}
.department-strip{display:flex;justify-content:space-between;gap:18px;font-size:.75rem;padding:14px 0}.department-hero{display:grid;grid-template-columns:1fr 280px;gap:36px;padding:42px;background:#e6ebf2;margin-top:24px;border-radius:8px}.department-hero h1{font-family:Arial,sans-serif;font-weight:850;font-size:clamp(2.5rem,4vw,4.5rem)}.hero-aside{background:#142338;color:white;padding:26px;border-radius:6px}.hero-aside p{color:#cad7e9}.hero-aside h2{font-size:2.6rem}.catalog-content{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px}html body .st-toolbar{align-self:start;position:sticky;top:18px;display:block;padding:18px;margin:0;box-shadow:none}.department-strip span{color:#53647c}html body .st-chips{display:flex;flex-direction:column;margin-top:18px}html body .st-chip{text-align:left;border-radius:5px}html body .st-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}html body .st-card{padding:18px;box-shadow:none}html body .st-price{font:800 1.6rem Arial,sans-serif}html body .btn,html body .st-btn{border-radius:5px}@media(max-width:1100px){html body .st-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.department-hero{grid-template-columns:1fr;padding:24px}.hero-aside{display:none}.catalog-content{display:block}html body .st-toolbar{position:static;margin-bottom:20px}html body .st-chips{flex-direction:row}.department-strip span{display:none}}
@media(max-width:580px){html body .st-grid{grid-template-columns:1fr}}

/* Elite Store: production page styling, solid navy actions and orange accents. */
:root { --solid-button:#172b4d; --solid-button-text:#ffffff; }
html body .navbar { background:#fff; border-bottom:1px solid #d8dfe9; box-shadow:none; }
html body .brand-logo { font-size:1.35rem; letter-spacing:-.04em; }
html body .brand-logo i { color:#b84b12; -webkit-text-fill-color:#b84b12; }
html body .navbar .nav-link { font-size:.9rem; font-weight:600; }
html body :is(.st-card,.card-custom,.cp-panel,.md-panel,.lg-body,.ct-card) { box-shadow:0 4px 16px #14233806; }
html body .card-custom:hover { box-shadow:0 8px 24px #1423380c; }
html body .st-card:hover { border-color:#8ca3c4; box-shadow:0 8px 24px #14233810; }
html body :is(.st-btn,.btn,.md-btn) { font-weight:750; border-radius:8px; }
html body :is(.st-chip[aria-pressed="true"],.st-plan input:checked + span,.nav-pills .nav-link.active) { background:#172b4d; color:#fff; border-color:#172b4d; }
html body .st-chip[aria-pressed="true"] small { color:#d9e5fa; }
html body .st-tile { width:64px; height:64px; border-radius:12px; background:#e6ebf2; }
html body .st-tile img { object-fit:contain; padding:6px; }
html body .st-badge { background:#fff0e6; color:#964015; }
html body .cp { max-width:1100px; }
html body .cp-panel { padding:26px; border-radius:14px; }
html body .cp-total { padding-top:22px; font-size:1.3rem; }
html body .cp-method:has(input:checked) { border-color:#244f87; background:#f1f5fc; }
html body .md-wrap { max-width:1100px; }
html body .md-plan { background:#fff; }
html body .md-panel { padding:26px; border-radius:16px; }
html body .md-plan-name { font-size:1.2rem; }
html body .md-hist-row { padding:20px 0; }
html body .table th { padding:16px 12px; }
html body .table td { padding:16px 12px; }
html body .form-control,html body .form-select { padding:11px 13px; }
html body .modal-content { box-shadow:0 24px 80px #14233833; }
html body .modal-header { padding:20px 24px; }
html body .modal-body { padding:24px; }
html body .modal-footer { padding:16px 24px; }
html body footer.bg-dark { background:#fff !important; border-top:1px solid #d8dfe9; }
.department-hero { padding:44px; background:#e9eef5; border:1px solid #d8dfe9; border-radius:16px; }
.department-hero h1 { letter-spacing:-.055em; }
.hero-aside { border-radius:12px; display:flex; flex-direction:column; justify-content:center; }
.hero-aside h2 { font-size:2rem; letter-spacing:-.035em; }
.hero-aside>a { color:#fff; font-size:.85rem; text-decoration:underline; margin-top:20px; }
.elite-totals { display:flex; gap:30px; margin-top:8px; }
.elite-totals b { display:block; font-size:2rem; }
.elite-totals small { color:#cad7e9; }
.elite-featured { margin:36px 0 12px; }
.elite-featured-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; }
.elite-featured-title h2 { font-size:1.2rem; }
.elite-featured-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.elite-featured-item { display:flex; align-items:center; gap:12px; padding:18px; background:#fff; border:1px solid #d8dfe9; border-radius:10px; }
.elite-featured-icon { display:grid; place-items:center; width:40px; height:40px; flex:none; background:#edf2fa; border-radius:8px; }
.elite-featured-item b { display:block; font-size:.92rem; }
.elite-featured-item small { display:block; color:#53647c; margin-top:4px; }
.elite-featured-item>span:last-child { margin-left:auto; }
html body .catalog-content>.st-toolbar { position:static; }
html body .st-search { max-width:100%; min-width:0; }
html body .st-search input { font-size:.85rem; }
.layout-nav { font-size:.84rem; font-weight:650; }
.layout-process>div>p { background:#fff; padding:22px; border:1px solid #d8dfe9; border-radius:12px; }
.layout-faq { max-width:850px; margin-left:auto; margin-right:auto; }
@media(min-width:1000px){html body .cp-grid>aside { position:sticky; top:20px; }}
@media(max-width:760px){.elite-featured-grid{grid-template-columns:1fr}.department-hero{padding:26px}.layout-nav{gap:18px}.department-hero h1{font-size:2.6rem}html body .md-panel,html body .cp-panel{padding:18px}}

/* Digital Premium Pass: readable header states, badges and upload controls. */
html body .navbar .nav-link:is(.show,:active,:focus,[aria-expanded="true"]) {
    color:#142338 !important; -webkit-text-fill-color:#142338 !important;
    background:#e6ebf2 !important;
}
html body .navbar .dropdown-item:is(.active,:active,:focus,:hover) {
    color:#142338 !important; background:#e6ebf2 !important;
}
html body .navbar :is(.nav-link,.dropdown-item) i { color:inherit !important; }
html body .md-plan:not(.is-expiring) .md-pill { background:#dcf5e6 !important; color:#1c7a44 !important; }
html body .cp input[type="file"]::file-selector-button,
html body .cp input[type="file"]:hover::file-selector-button {
    background:#fff !important; color:#142338 !important;
    border:0; border-right:1px solid #bac5d4; padding:12px 16px; cursor:pointer;
}
html body .member-notif-body { white-space:pre-wrap; overflow-wrap:anywhere; }
html body .member-notif-item { width:100%; border:0; border-bottom:1px solid #d8dfe9; text-align:left; background:#fff; }
html body .member-notif-item.is-unread { background:#edf3fc; }
html body .member-notif-item:hover { background:#e6ebf2; }
html body .member-notif-menu .notif-title { color:#142338; }
html body .member-notif-menu .notif-detail { color:#435570; }
html body .member-notif-menu .notif-mark { color:#244f87; }

/* Consistent positive status badges and light native scrollbars across all pages. */
html body .cp-status--approved {
    background:#dcf5e6 !important; color:#1c7a44 !important;
}
html, body, body * {
    scrollbar-color:#b8bec7 #f1f3f5;
    scrollbar-width:auto;
}
html::-webkit-scrollbar, body::-webkit-scrollbar, body *::-webkit-scrollbar {
    width:12px; height:12px; background:#f1f3f5;
}
html::-webkit-scrollbar-track, body::-webkit-scrollbar-track, body *::-webkit-scrollbar-track {
    background:#f1f3f5;
}
html::-webkit-scrollbar-thumb, body::-webkit-scrollbar-thumb, body *::-webkit-scrollbar-thumb {
    background:#b8bec7; border:3px solid #f1f3f5; border-radius:10px;
}
html::-webkit-scrollbar-thumb:hover, body::-webkit-scrollbar-thumb:hover, body *::-webkit-scrollbar-thumb:hover {
    background:#9da5b0;
}
html::-webkit-scrollbar-corner, body::-webkit-scrollbar-corner, body *::-webkit-scrollbar-corner {
    background:#f1f3f5;
}

/* Shared outcome colors for member/admin badges, feedback and action controls. */
html body :is(.cp-status--approved,.status-positive,.status-badge-active,.badge.bg-success,.badge.text-bg-success,.alert-success,.bg-success-subtle,.btn-success) {
    background:#dcf5e6 !important; color:#1c7a44 !important; border-color:#dcf5e6 !important;
}
html body :is(.cp-status--rejected,.status-rejected,.status-badge-disabled,.badge.bg-danger,.badge.text-bg-danger,.md-pill.is-bad,.alert-danger,.bg-danger-subtle,.btn-danger) {
    background:#fbe4e4 !important; color:#b3373b !important; border-color:#fbe4e4 !important;
}
html body :is(.md-pill.is-cancelled,.status-cancelled,.cp-status--cancelled) {
    background:#fff0df !important; color:#9a4d0b !important; border-color:#fff0df !important;
}
html body :is(.text-success,.st-stock--ok) { color:#1c7a44 !important; }
html body :is(.text-danger,.st-stock--out) { color:#b3373b !important; }
html body .btn-success:is(:hover,:focus-visible) { border-color:#1c7a44 !important; }
html body .btn-danger:is(:hover,:focus-visible) { border-color:#b3373b !important; }

/* Header cart quantity: dark background and readable white numeral. */
html body .navbar .cart-count-badge {
    background:#172b4d !important; color:#fff !important;
    -webkit-text-fill-color:#fff !important; min-width:22px;
    font-weight:700; border:1px solid #172b4d;
}

/* Member navigation cart button: ensure text and number never turn white on light gray background */
html body .member-store-nav a.member-store-link,
html body .member-store-nav a.member-store-link span,
html body .member-store-nav a.member-store-link .member-cart-count,
html body .member-store-nav a.member-store-link .cart-count-badge,
html body .member-store-nav a.member-store-link .badge {
    color: #142338 !important;
    -webkit-text-fill-color: #142338 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
html body .member-store-nav a.member-store-link:is(:hover,:focus-visible,:active,[aria-current="page"]),
html body .member-store-nav a.member-store-link:is(:hover,:focus-visible,:active,[aria-current="page"]) span,
html body .member-store-nav a.member-store-link:is(:hover,:focus-visible,:active,[aria-current="page"]) .member-cart-count,
html body .member-store-nav a.member-store-link:is(:hover,:focus-visible,:active,[aria-current="page"]) .cart-count-badge,
html body .member-store-nav a.member-store-link:is(:hover,:focus-visible,:active,[aria-current="page"]) .badge {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* Unified alignment across all member portal pages (Member Dashboard, Products, My Orders, Cart) */
html body :is(.member-page-wrap, .md-wrap, .cp, #memberSubscriptions) {
    max-width: 1100px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

html body :is(.cp-head, .member-page-head) {
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: #142338;
}

html body :is(.cp-head, .member-page-head) h1 {
    font-family: 'Sora', 'Segoe UI', sans-serif;
    font-size: 1.85rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    color: #142338 !important;
    display: flex;
    align-items: center;
    gap: 12px;
}

html body :is(.cp-head, .member-page-head) h1 i {
    font-size: 1.65rem;
    color: #142338;
}

html body :is(.cp-head, .member-page-head) p {
    margin: 0 !important;
    padding: 0 !important;
    color: #53647c !important;
    font-size: 0.98rem !important;
    line-height: 1.45 !important;
}

html body .member-store-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 24px !important;
    padding: 0 !important;
    text-align: left;
}

/* Currency label and dropdown arrow have their own space. */
html body #currencySelect { min-width:118px; padding-left:14px; padding-right:38px; background-position:right 12px center; }
html body :is(.cp-status--pending,.status-pending,.md-pill.is-pending) { background:#fdf0cf !important; color:#92600a !important; }

/* Purchase hold messages use the primary button blue without a filled panel. */
html body .st-owned {
    background: transparent !important;
    background-image: none !important;
    color: var(--solid-button, #172b4d) !important;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    padding: 8px 0;
}
/* Reserve room for Bootstrap's arrow independently of the selected number. */
html body #perPage.form-select {
    min-width: 88px;
    padding: 8px 36px 8px 12px !important;
    background-position: right 12px center;
    background-size: 16px 12px;
}
html body #detailRoleInput.form-select {
    padding-right: 40px !important;
    background-position: right 12px center;
}
html body #detailAccountSettings[hidden],
html body .user-edit-form[hidden] { display: none !important; }

/* Matching account action buttons: light at rest, primary blue on hover. */
html body .js-account-panel {
    background: #e6ebf2 !important;
    color: #142338 !important;
    border-color: #bac5d4 !important;
    box-shadow: none;
}
html body .js-account-panel:hover,
html body .js-account-panel:focus-visible {
    background: var(--solid-button, #172b4d) !important;
    color: #fff !important;
    border-color: var(--solid-button, #172b4d) !important;
}

/* Launch ownership notice and non-blocking repeat-purchase hints. */
html body .st-owned { color: #172b4d !important; background: #ffffff !important; padding: 8px 12px; }
.st-repeat-wrap { position:relative; width:100%; }
.st-repeat-wrap > .js-add { width:100%; }
html body .st-repeat-hint {
    position:absolute; bottom:calc(100% + 8px); left:0; right:0;
    z-index:5; padding:10px 12px; border:1px solid #bac5d4;
    border-radius:8px; background:#fff; color:#172b4d;
    box-shadow:0 4px 15px #172b4d20; font-size:.85rem; line-height:1.5;
    visibility:hidden; opacity:0; pointer-events:none;
}
.st-repeat-wrap:hover .st-repeat-hint,
.st-repeat-wrap:focus-within .st-repeat-hint { visibility:visible; opacity:1; }
.st-repeat-hint[hidden] { display:none !important; }

/* Dark, consistent checkbox and radio controls across member/admin forms. */
html body input[type="checkbox"], html body input[type="radio"] { accent-color:#172b4d; }
html body .form-check-input { border-color:#172b4d !important; }
html body .form-check-input:checked,
html body .form-check-input:indeterminate {
    background-color:#172b4d !important;
    border-color:#172b4d !important;
}
html body .form-check-input:focus {
    border-color:#172b4d !important;
    box-shadow:0 0 0 .2rem rgb(23 43 77 / 20%) !important;
}

/* Product access category, variant selection and duration groups. */
html body .st-access-badge { display:inline-flex;align-self:flex-start;padding:8px 14px;border-radius:30px;background:#fff0e5;color:#a34306;font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.3px; }
html body .st-access-label { color:#172b4d;font-weight:700;font-size:.9rem;margin:12px 0 8px; }
html body .st-variants { display:flex;gap:8px;flex-wrap:wrap; }
html body .st-variant { border:1px solid #bac5d4;border-radius:9px;padding:11px 16px;background:#e6ebf2;color:#172b4d;font-weight:650; }
html body .st-variant[aria-pressed="true"], html body .st-variant:hover { background:#172b4d;color:#fff;border-color:#172b4d; }
html body .st-plan[hidden] { display:none !important; }

/* Compact product cards: access badge left, promotional badge right. */
html body .st-grid { align-items:start; }
html body .st-card { padding:18px; border-radius:12px; gap:0; }
html body .st-card .st-card-top { align-items:center; gap:10px; margin:0 0 12px; min-height:0; }
html body .st-card .st-card-top .st-badge { margin-left:auto; }
html body .st-card .st-access-badge,
html body .st-card .st-card-top .st-badge { padding:6px 11px; font-size:.68rem; line-height:1.4; }
html body .st-product-heading { display:flex;align-items:center;gap:10px;margin-bottom:8px;min-width:0; }
html body .st-card .st-product-heading .st-tile { width:44px;height:44px;flex:0 0 44px;border-radius:9px; }
html body .st-card .st-product-heading h3 { margin:0;font-size:1.08rem;line-height:1.35; }
html body .st-card .st-desc { min-height:0;margin:0 0 9px;line-height:1.45;font-size:.88rem; }
html body .st-card .st-details { margin:0 0 10px;font-size:.87rem; }
html body .st-card .st-buy { flex:0 0 auto;gap:8px;margin:0; }
html body .st-card .st-access-label { margin:3px 0 0;font-size:.83rem;line-height:1.3; }
html body .st-card .st-variants,html body .st-card .st-plans { gap:7px; }
html body .st-card .st-variant { padding:8px 13px;min-height:40px;font-size:.86rem; }
html body .st-card .st-plan span { padding:7px 13px;font-size:.84rem;min-height:36px; }
html body .st-card .st-plan-info { margin:3px 0 0;font-size:.8rem;gap:4px 10px; }
html body .st-card .st-price-row { margin:2px 0 3px;line-height:1.2; }
html body .st-card .st-price { font-size:1.6rem; }
html body .st-card .st-btn { min-height:44px;padding:10px 14px;font-size:.94rem; }
@media(max-width:480px) { html body .st-card { padding:15px; } }

/* Equal-height cards within each row, with purchase controls aligned at the bottom. */
html body .st-grid { align-items:stretch; }
html body .st-grid > .st-card { align-self:stretch; min-width:0; }
html body .st-card .st-buy { flex:1 1 auto; }
html body .st-card .st-plan-info { margin-top:auto; padding-top:3px; }
/* Explicit navy close icon: do not inherit Bootstrap's white/dark-mode SVG. */
html body .btn-close,
html body .modal .btn-close,
html body .btn-close-white {
    --bs-btn-close-color:#172b4d;
    --bs-btn-close-opacity:1;
    --bs-btn-close-hover-opacity:1;
    --bs-btn-close-focus-opacity:1;
    filter:none !important;
    opacity:1;
    background-color:transparent !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3L3 13' fill='none' stroke='%23172b4d' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-size:1em 1em !important;
}
html body .btn-close:focus-visible { outline:2px solid #172b4d;outline-offset:3px;box-shadow:none; }

/* Close controls keep the same navy icon in every interaction state. */
html body .btn-close,
html body .btn-close:hover,
html body .btn-close:focus,
html body .btn-close:focus-visible,
html body .btn-close:active,
html body .modal .btn-close:hover,
html body .modal .btn-close:focus,
html body .modal .btn-close:active {
    color:#172b4d !important;
    filter:none !important;
    opacity:1 !important;
    background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3L3 13' fill='none' stroke='%23172b4d' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / 1em 1em no-repeat !important;
    box-shadow:none !important;
    transition:none !important;
}

/* Product logo containment: independent of the storefront stylesheet load order. */
html body .st-card .st-product-heading .st-tile {
    position:relative; display:inline-flex; align-items:center; justify-content:center;
    box-sizing:border-box; width:44px; min-width:44px; max-width:44px;
    height:44px; min-height:44px; max-height:44px; flex:0 0 44px;
    overflow:hidden; border-radius:9px; isolation:isolate;
}
html body .st-card .st-product-heading .st-tile > img {
    position:absolute; inset:0; display:block; box-sizing:border-box;
    width:100% !important; height:100% !important;
    min-width:0; min-height:0; max-width:100%; max-height:100%;
    margin:0; padding:5px; object-fit:contain !important;
    object-position:center; background:#fff; border-radius:inherit;
}
html body .elite-fresh-product .elite-fresh-icon {
    position:relative; box-sizing:border-box; overflow:hidden;
    width:32px; min-width:32px; max-width:32px;
    height:32px; min-height:32px; max-height:32px; flex:0 0 32px;
}
html body .elite-fresh-product .elite-fresh-icon > img {
    display:block; box-sizing:border-box; width:100% !important; height:100% !important;
    min-width:0; min-height:0; max-width:100%; max-height:100%;
    margin:0; padding:3px; object-fit:contain !important; object-position:center;
}
html body .elite-fresh-product .elite-fresh-icon > [hidden] { display:none !important; }
