:root {
    --bmo-primary: #0868f7;
    --bmo-primary-dark: #0757d4;
    --bmo-primary-soft: #edf5ff;
    --bmo-ink: #14213a;
    --bmo-muted: #72809a;
    --bmo-border: #e3eaf4;
    --bmo-bg: #f8fafe;
    --bmo-surface: #ffffff;
    --bmo-success: #19b68a;
    --bmo-success-soft: #e9faf5;
    --bmo-danger: #e55757;
    --bmo-danger-soft: #fff0f0;
    --bmo-warning: #de9d23;
    --bmo-shadow: 0 18px 55px rgba(35, 61, 99, .09);
    --bmo-shadow-soft: 0 8px 26px rgba(35, 61, 99, .07);
    --bmo-radius: 18px;
    --bmo-radius-sm: 12px;
}

body.bmo-portal-page {
    margin: 0;
    overflow-x: hidden;
    background: var(--bmo-bg);
    color: var(--bmo-ink);
    font-family: "VazirFN", Sans-serif;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

body.bmo-portal-page * { box-sizing: border-box; }
body.bmo-portal-page a { color: inherit; text-decoration: none; }
body.bmo-portal-page button,
body.bmo-portal-page input,
body.bmo-portal-page select,
body.bmo-portal-page textarea { font: inherit; }
body.bmo-portal-page button { cursor: pointer; }
body.bmo-portal-page img { max-width: 100%; height: auto; }
body.bmo-portal-page .bmo-icon { width: 22px; height: 22px; flex: 0 0 auto; }

.bmo-root { min-height: 100vh; width: 100%; max-width: 100%; overflow-x: clip; background: radial-gradient(circle at 13% 10%, rgba(8, 104, 247, .05), transparent 24%), var(--bmo-bg); }
.bmo-public-header {
    height: 88px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--bmo-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 clamp(28px, 5vw, 72px);
    position: relative;
    z-index: 5;
}

.bmo-brand,
.bmo-dashboard-brand { display: inline-flex; align-items: center; gap: 12px; }
.bmo-brand__mark {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: linear-gradient(145deg, #0b72ff, #0051d6);
    color: #fff;
    display: inline-grid;
    place-items: center;
    font-weight: 900;
    font-size: 25px;
    box-shadow: 0 10px 24px rgba(8, 104, 247, .24);
}
a.bmo-dashboard-brand img {max-width: 20%;}
.bmo-brand__image { width: 52px; height: 52px; object-fit: contain; }
.bmo-brand__copy,
.bmo-dashboard-brand > span:last-child { display: flex; flex-direction: column; line-height: 1.45; }
.bmo-brand__copy strong,
.bmo-dashboard-brand strong { font-size: 20px; font-weight: 900; color: #132039; }
.bmo-brand__copy small,
.bmo-dashboard-brand small { font-size: 11px; color: var(--bmo-muted); }
.bmo-public-nav { display: flex; align-items: center; gap: 28px; font-size: 14px; font-weight: bold; color: #44516a; }
.bmo-public-nav > a:hover { color: var(--bmo-primary); }
.bmo-public-nav__login {
    border: 1px solid #ccd8e8;
    background: #fff;
    border-radius: 10px;
    padding: 9px 15px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #263550 !important;
}
.bmo-public-nav__login .bmo-icon { width: 18px; height: 18px; color: var(--bmo-primary); }

.bmo-public-main { padding: 48px clamp(22px, 5vw, 70px) 55px; width: 100%; max-width: 100%; min-width: 0; overflow-x: clip; }
.bmo-public-main > * { max-width: 1400px; margin-inline: auto; }
.bmo-eyebrow {
    color: var(--bmo-primary);
    background: var(--bmo-primary-soft);
    border: 1px solid #d8e8ff;
    border-radius: 999px;
    padding: 4px 12px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 14px;
}

/* Auth */
.bmo-auth-page {
    min-height: 715px;
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(460px, .8fr);
    align-items: center;
    gap: clamp(50px, 8vw, 125px);
    padding: 10px clamp(10px, 2vw, 30px) 35px;
}
.bmo-auth-intro { position: relative; min-height: 600px; display: flex; flex-direction: column; justify-content: center; }
.bmo-auth-intro__copy { max-width: 610px; margin-inline: auto; text-align: center; }
.bmo-auth-intro h1 { margin: 0 0 12px; font-size: clamp(29px, 3vw, 43px); line-height: 1.45; font-weight: 950; letter-spacing: -.7px; }
.bmo-auth-intro p { margin: 0 auto; max-width: 620px; color: var(--bmo-muted); font-size: 15px; }
.bmo-auth-visual { width: 500px; height: 345px; margin: 40px auto 0; position: relative; }
.bmo-browser-mock {
    position: absolute;
    inset: 20px 45px 0 85px;
    background: rgba(255,255,255,.88);
    border: 1px solid #e8eef7;
    border-radius: 20px;
    box-shadow: 0 20px 50px rgba(40, 68, 109, .07);
    overflow: hidden;
}
.bmo-browser-mock__rail { position: absolute; right: 0; top: 0; bottom: 0; width: 70px; border-left: 1px solid #edf1f6; background: #fbfcfe; }
.bmo-browser-mock__rail::before {
    content: ""; position: absolute; top: 28px; right: 20px; width: 30px; height: 30px; border-radius: 9px;
    background: var(--bmo-primary); box-shadow: 0 0 0 10px #edf5ff;
}
.bmo-browser-mock__top { position: absolute; top: 28px; right: 95px; left: 30px; height: 18px; border-radius: 9px; background: #f0f3f8; }
.bmo-browser-mock__rows { position: absolute; top: 80px; right: 95px; left: 30px; display: grid; gap: 18px; }
.bmo-browser-mock__rows i { height: 34px; border-radius: 10px; background: #f7f9fc; }
.bmo-browser-mock__chart { position: absolute; bottom: 35px; right: 110px; width: 120px; height: 100px; border: 1px solid #edf1f6; border-radius: 12px; display: flex; align-items: end; gap: 7px; padding: 14px; }
.bmo-browser-mock__chart i { flex: 1; background: linear-gradient(to top, #0868f7, #75adff); border-radius: 6px 6px 2px 2px; }
.bmo-browser-mock__chart i:nth-child(1) { height: 35%; }
.bmo-browser-mock__chart i:nth-child(2) { height: 65%; }
.bmo-browser-mock__chart i:nth-child(3) { height: 42%; }
.bmo-browser-mock__chart i:nth-child(4) { height: 75%; }
.bmo-browser-mock__chart i:nth-child(5) { height: 55%; }
.bmo-floating-card {
    position: absolute;
    background: #fff;
    border: 1px solid #edf1f6;
    border-radius: 14px;
    box-shadow: var(--bmo-shadow-soft);
    padding: 16px 18px;
    display: grid;
    gap: 2px;
    min-width: 130px;
}
.bmo-floating-card .bmo-icon { color: var(--bmo-primary); margin-bottom: 5px; }
.bmo-floating-card strong { font-size: 17px; }
.bmo-floating-card span { color: var(--bmo-muted); font-size: 11px; }
.bmo-floating-card--users { right: 5px; top: 120px; }
.bmo-floating-card--product { left: 0; bottom: 5px; }

.bmo-auth-card,
.bmo-single-card {
    background: rgba(255,255,255,.97);
    border: 1px solid #e9eef5;
    border-radius: 20px;
    box-shadow: var(--bmo-shadow);
}
.bmo-auth-card { padding: 38px 52px 42px; min-height: 560px; display: flex; flex-direction: column; justify-content: center; }
.bmo-auth-card__logo { display: flex; justify-content: center; margin-bottom: 16px; }
.bmo-auth-card__logo span,
.bmo-auth-card__logo img {
    width: 58px; border-radius: 16px; background: linear-gradient(145deg, #eaf3ff, #f5f9ff); border: 1px solid #dfeaff;
    color: var(--bmo-primary); display: grid; place-items: center; font-size: 28px; font-weight: 950; object-fit: contain; padding: 7px;
}
.bmo-auth-card h2 { font-size: 27px; margin: 4px 0 6px; text-align: center; font-weight: 950; }
.bmo-auth-card > p { margin: 0 auto 24px; text-align: center; color: var(--bmo-muted); font-size: 13px; max-width: 510px; }
.bmo-auth-card__register { margin-bottom: 10px !important; }

/* Forms */
.bmo-form { display: grid; gap: 18px; }
.bmo-field { display: grid; min-width: 0; max-width: 100%; gap: 7px; color: #27364e; font-size: 13px; font-weight: 700; }
.bmo-field > span:first-child em { font-style: normal; color: #e25555; }
.bmo-field input,
.bmo-field select,
.bmo-field textarea {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 10px 13px;
    border: 1px solid #cfd8e6;
    border-radius: 8px;
    background: #fff;
    color: var(--bmo-ink);
    outline: none;
    transition: .18s ease;
    box-shadow: none;
}
.bmo-field textarea { min-height: 105px; resize: vertical; }
.bmo-field input:focus,
.bmo-field select:focus,
.bmo-field textarea:focus { border-color: #70a9ff; box-shadow: 0 0 0 3px rgba(8,104,247,.08); }
.bmo-field input::placeholder,
.bmo-field textarea::placeholder { color: #a6afbf; }
.bmo-file-upload {
    position: relative;
    min-width: 0;
    max-width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 74px;
    padding: 12px 14px;
    border: 1px dashed #bfd2ee;
    border-radius: 10px;
    background: #f9fbff;
    overflow: hidden;
    transition: .18s ease;
    cursor: pointer;
}
.bmo-file-upload:hover,
.bmo-file-upload:focus-within {
    border-color: #70a9ff;
    background: #f5f9ff;
    box-shadow: 0 0 0 3px rgba(8,104,247,.06);
}
.bmo-field .bmo-file-upload input[type="file"] {
    position: absolute;
    inset: 0;
    z-index: 3;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
}
.bmo-file-upload__icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--bmo-primary);
    background: var(--bmo-primary-soft);
}
.bmo-file-upload__icon .bmo-icon { width: 22px; height: 22px; }
.bmo-file-upload__copy {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
}
.bmo-file-upload__copy strong {
    color: #253750;
    font-size: 12px;
    font-weight: 900;
}
.bmo-file-upload__copy small {
    max-width: 100%;
    color: var(--bmo-muted);
    font-size: 10px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bmo-file-upload__button {
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 1px solid #c9dcf7;
    border-radius: 8px;
    background: #fff;
    color: var(--bmo-primary);
    font-size: 11px;
    font-weight: 900;
}
.bmo-input-wrap { position: relative; display: block; }
.bmo-input-wrap .bmo-icon { position: absolute; right: 13px; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; color: #7e8da5; }
.bmo-input-wrap input { padding-right: 43px; direction: ltr; text-align: left; }
.bmo-input-wrap--otp input { text-align: center; letter-spacing: 10px; font-size: 20px; font-weight: 900; padding-left: 40px; }
.bmo-checkbox { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #66748b; cursor: pointer; }
.bmo-checkbox input { width: 17px; height: 17px; accent-color: var(--bmo-primary); }
.bmo-checkbox--boxed { padding: 16px; border: 1px solid #dce6f3; border-radius: 11px; background: #fbfdff; align-items: flex-start; font-size: 13px; }
.bmo-button {
    min-height: 46px;
    border-radius: 8px;
    border: 1px solid transparent;
    padding: 10px 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 850;
    font-size: 14px !important;
    transition: .18s ease;
    width: 100%;
}
.bmo-button--primary { background: linear-gradient(180deg, #1475ff, #0862ed); color: #fff !important; box-shadow: 0 8px 18px rgba(8,104,247,.18); }
.bmo-button--primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(8,104,247,.25); }
.bmo-button--outline { background: #fff; border-color: #a9c9fb; color: var(--bmo-primary) !important; }
.bmo-button--ghost { background: #fff; border-color: #d6e0ed; color: #44536b !important; width: auto; box-shadow: none; }
.bmo-button--auto { width: auto; }
.bmo-separator { position: relative; text-align: center; margin: 10px 0; color: #9aa4b4; font-size: 12px; }
.bmo-separator::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: #e3e8ef; }
.bmo-separator span { position: relative; background: #fff; padding: 0 13px; }
.bmo-resend-box { margin-top: 15px; display: flex; justify-content: center; align-items: center; gap: 8px; color: #7a879c; font-size: 12px; }
.bmo-inline-form { display: inline; margin: 0; }
.bmo-link-button { border: 0; background: none; color: var(--bmo-primary); padding: 0; font-weight: 800; }
.bmo-link-button:disabled { color: #9ea9b9; cursor: not-allowed; }
.bmo-back-link { display: block; text-align: center; color: var(--bmo-primary) !important; font-size: 12px; margin-top: 12px; }
.bmo-alert { padding: 11px 13px; border-radius: 9px; margin: 0 0 16px; font-size: 12px; border: 1px solid; }
.bmo-alert--success { color: #087c5e; background: var(--bmo-success-soft); border-color: #c9efe3; }
.bmo-alert--error { color: #a73535; background: var(--bmo-danger-soft); border-color: #f4cccc; }

/* Public footer */
.bmo-public-footer {
    min-height: 112px;
    border-top: 1px solid var(--bmo-border);
    background: rgba(255,255,255,.88);
    padding: 22px clamp(28px, 5vw, 72px);
    display: grid;
    grid-template-columns: repeat(4, 1fr) 1.5fr;
    gap: 24px;
    align-items: center;
}
.bmo-footer-feature { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bmo-footer-feature .bmo-icon { color: #55667f; }
.bmo-footer-feature span { display: flex; flex-direction: column; min-width: 0; }
.bmo-footer-feature strong { font-size: 14px; }
.bmo-footer-feature small { color: var(--bmo-muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bmo-footer-copy { color: #8792a3; font-size: 11px; text-align: left; }

/* Apply */
.bmo-apply-hero {
    min-height: 230px;
    margin-top: -48px;
    margin-inline: calc(clamp(22px, 5vw, 70px) * -1);
    margin-bottom: 0;
    padding: 42px clamp(42px, 8vw, 130px) 70px;
    background: linear-gradient(106deg, #fff 50%, #edf5ff 100%);
    border-bottom: 1px solid #e4ebf5;
    position: relative;
    overflow: hidden;
    max-width: none !important;
}
.bmo-apply-hero__copy { width: 62%; margin-right: auto; text-align: right; position: relative; z-index: 2; }
.bmo-apply-hero h1 { margin: 0 0 8px; font-size: clamp(31px, 4vw, 48px); font-weight: 950; line-height: 1.35; }
.bmo-apply-hero p { margin: 0 0 22px; color: var(--bmo-muted); }
.bmo-benefits-inline { display: flex; flex-wrap: wrap; gap: 24px; }
.bmo-benefits-inline span { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 800; }
.bmo-benefits-inline .bmo-icon { color: var(--bmo-primary); width: 21px; height: 21px; }
.bmo-apply-hero__visual { position: absolute; left: 6%; top: 15px; width: 350px; height: 230px; }
.bmo-device-shape { position: absolute; left: 100px; top: 5px; width: 75px; height: 175px; border-radius: 18px; background: linear-gradient(150deg, #d8e7fb, #1c4174); border: 5px solid #1c2f4e; transform: rotate(-4deg); box-shadow: 0 20px 30px rgba(20,45,80,.15); }
.bmo-earbuds-shape { position: absolute; left: 165px; top: 82px; width: 95px; height: 80px; border-radius: 28px 28px 32px 32px; background: #fff; border: 1px solid #dfe6ef; box-shadow: 0 16px 28px rgba(30,55,90,.12); }
.bmo-box-shape { position: absolute; left: 30px; bottom: 6px; width: 82px; height: 100px; background: linear-gradient(145deg, #fff, #f0f3f7); border: 1px solid #dfe6ef; border-radius: 12px; transform: rotate(6deg); }

.bmo-apply-layout {
    display: grid;
    width: 100%;
    min-width: 0;
    grid-template-columns: 265px minmax(0, 1fr) 270px;
    gap: 22px;
    margin-top: -43px;
    position: relative;
    z-index: 3;
    max-width: 1425px !important;
}
.bmo-benefit-panel,
.bmo-notes-panel,
.bmo-apply-card {
    background: #fff;
    border: 1px solid #e3eaf3;
    border-radius: 16px;
    box-shadow: var(--bmo-shadow-soft);
}
.bmo-benefit-panel,
.bmo-notes-panel { padding: 24px 20px; align-self: start; }
.bmo-benefit-panel h2,
.bmo-notes-panel h2 { margin: 0 0 20px; font-size: 17px; }
.bmo-benefit-row { display: flex; gap: 11px; margin: 0 0 19px; }
.bmo-benefit-row .bmo-icon { color: var(--bmo-primary); width: 26px; height: 26px; }
.bmo-benefit-row span { display: flex; flex-direction: column; line-height: 1.6; }
.bmo-benefit-row strong { font-size: 14px; }
.bmo-benefit-row small { color: var(--bmo-muted); font-size: 12px; }
.bmo-apply-card { padding: 24px 28px 28px; min-height: 555px; min-width: 0; max-width: 100%; overflow: hidden; }
.bmo-stepper { display: grid; min-width: 0; max-width: 100%; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: start; margin-bottom: 28px; }
.bmo-stepper__item { display: grid; justify-items: center; gap: 5px; min-width: 100px; color: #8996a9; text-align: center; font-size: 10px; }
.bmo-stepper__item b { width: 35px; height: 35px; border: 1px solid #d5deea; background: #fff; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 700; }
.bmo-stepper__item.is-active { color: #33445f; font-weight: 900; }
.bmo-stepper__item.is-active b { background: var(--bmo-primary); border-color: var(--bmo-primary); color: #fff; box-shadow: 0 6px 14px rgba(8,104,247,.18); }
.bmo-stepper__item.is-complete { color: var(--bmo-success); }
.bmo-stepper__item.is-complete b { border-color: var(--bmo-success); color: var(--bmo-success); background: #f3fffb; }
.bmo-stepper__line { height: 1px; background: #dce3ed; margin-top: 17px; }
.bmo-section-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 20px; }
.bmo-section-heading > span { width: 42px; height: 42px; border-radius: 11px; background: var(--bmo-primary-soft); color: var(--bmo-primary); display: grid; place-items: center; flex: 0 0 auto; }
.bmo-section-heading h1,
.bmo-section-heading h2 { margin: 0; font-size: 20px; line-height: 1.5; font-weight: 950; }
.bmo-section-heading p { margin: 2px 0 0; color: var(--bmo-muted); font-size: 11px; }
.bmo-section-heading--center { text-align: center; flex-direction: column; }
.bmo-form-grid { display: grid; min-width: 0; max-width: 100%; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 17px 19px; }
.bmo-field--full { grid-column: 1 / -1; }
.bmo-form-step { min-width: 0; max-width: 100%; }
.bmo-form-step[hidden] { display: none !important; }
.bmo-form-step.is-active { animation: bmoFade .18s ease; }
@keyframes bmoFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.bmo-form-nav { border-top: 1px solid #edf1f5; margin-top: 24px; padding-top: 18px; display: flex; align-items: center; gap: 12px; }
.bmo-form-nav [hidden] { display: none !important; }
.bmo-form-nav__primary { margin-inline-start: auto; display: flex; align-items: center; }
.bmo-form-nav__primary .bmo-button { min-width: 132px; justify-content: center; }
.bmo-review-box { display: grid; gap: 10px; margin-bottom: 18px; }
.bmo-review-box > div { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #e4ebf4; border-radius: 10px; background: #fbfcff; }
.bmo-review-box .bmo-icon { color: var(--bmo-primary); }
.bmo-review-box span { display: flex; flex-direction: column; }
.bmo-review-box strong { font-size: 12px; }
.bmo-review-box small { color: var(--bmo-muted); font-size: 10px; }
.bmo-notes-panel ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 18px; }
.bmo-notes-panel li { display: flex; align-items: flex-start; gap: 9px; color: #56647a; font-size: 12px; }
.bmo-notes-panel li .bmo-icon { width: 18px; height: 18px; color: var(--bmo-primary); }
.bmo-honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Single / status */
.bmo-single-card { padding: 42px; max-width: 920px !important; margin-block: 50px 80px !important; }
.bmo-single-card--narrow { max-width: 650px !important; text-align: center; }
.bmo-single-card h1,
.bmo-single-card h2 { margin: 0 0 8px; font-weight: 950; }
.bmo-single-card > p { color: var(--bmo-muted); margin: 0 auto 22px; }
.bmo-single-card .bmo-form { text-align: right; max-width: 520px; margin-inline: auto; }
.bmo-status-badge { display: inline-block; padding: 5px 12px; border-radius: 999px; background: #f1f4f8; color: #65728a; font-size: 11px; margin-bottom: 12px; }
.bmo-status-badge--approved { background: var(--bmo-success-soft); color: #0b8b68; }
.bmo-rejection-reason { display: flex; align-items: flex-start; gap: 12px; margin-top: 18px; padding: 16px 18px; border: 1px solid #f2caca; border-radius: 12px; background: #fff7f7; color: #7f2424; text-align: right; }
.bmo-rejection-reason__icon { width: 38px; height: 38px; border-radius: 10px; background: #fde8e8; display: grid; place-items: center; flex: 0 0 auto; color: #b42323; }
.bmo-rejection-reason strong { display: block; margin-bottom: 5px; font-size: 13px; }
.bmo-rejection-reason p { margin: 0; color: #6f3030; line-height: 1.9; font-size: 11px; }

.bmo-status-page {
    max-width: 1210px !important;
    min-height: 650px;
    margin-block: 0 35px !important;
    background: #fff;
    border: 1px solid #e2e9f3;
    border-radius: 18px;
    box-shadow: var(--bmo-shadow);
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 42px;
    align-items: center;
    padding: 48px 60px;
}
.bmo-status-illustration { height: 390px; position: relative; display: grid; place-items: center; }
.bmo-clipboard { width: 210px; height: 285px; background: #fff; border: 8px solid #2e7df4; border-radius: 12px; box-shadow: 0 20px 40px rgba(20,64,120,.12); position: relative; padding: 65px 28px 20px; }
.bmo-clipboard__head { position: absolute; width: 76px; height: 25px; border-radius: 12px 12px 5px 5px; background: #c9d2df; top: -14px; left: 50%; transform: translateX(-50%); }
.bmo-clipboard i { display: block; height: 14px; border-radius: 7px; background: #edf1f6; margin-bottom: 16px; }
.bmo-clipboard b { position: absolute; width: 68px; height: 68px; border-radius: 50%; background: var(--bmo-primary); color: #fff; display: grid; place-items: center; left: 50%; top: 93px; transform: translateX(-50%); box-shadow: 0 10px 25px rgba(8,104,247,.25); }
.bmo-clipboard b .bmo-icon { width: 42px; height: 42px; }
.bmo-clipboard-shield { position: absolute; left: 45px; bottom: 38px; width: 82px; height: 82px; border-radius: 22px; background: var(--bmo-primary); color: #fff; display: grid; place-items: center; box-shadow: 0 12px 25px rgba(8,104,247,.24); }
.bmo-clipboard-shield .bmo-icon { width: 47px; height: 47px; }
.bmo-success-kicker { display: inline-flex; align-items: center; gap: 8px; color: #0aa57c; font-size: 13px; font-weight: 900; margin-bottom: 7px; }
.bmo-success-kicker .bmo-icon { width: 24px; height: 24px; }
.bmo-status-content > h1 { font-size: clamp(29px, 3vw, 38px); margin: 0 0 10px; font-weight: 950; }
.bmo-status-content > p { margin: 0 0 30px; color: var(--bmo-muted); }
.bmo-status-timeline { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: start; direction: rtl; margin: 35px 0 28px; }
.bmo-timeline-item { display: grid; justify-items: center; gap: 8px; min-width: 115px; text-align: center; color: #8e9aab; }
.bmo-timeline-item b { width: 56px; height: 56px; border-radius: 50%; border: 1px solid #dce3ed; background: #fff; display: grid; place-items: center; }
.bmo-timeline-item .bmo-icon { width: 26px; height: 26px; }
.bmo-timeline-item span { display: flex; flex-direction: column; line-height: 1.55; }
.bmo-timeline-item strong { font-size: 11px; color: #37465d; }
.bmo-timeline-item small { font-size: 10px; }
.bmo-timeline-line { height: 2px; background: #dfe5ee; margin-top: 28px; }
.bmo-timeline-item.is-complete b { background: var(--bmo-primary); border-color: var(--bmo-primary); color: #fff; box-shadow: 0 8px 20px rgba(8,104,247,.2); }
.bmo-timeline-item.is-complete small { color: var(--bmo-success); font-weight: 800; }
.bmo-timeline-item.is-active b { border: 2px solid #8cb9ff; color: var(--bmo-primary); box-shadow: 0 0 0 7px #f0f6ff; }
.bmo-timeline-item.is-active small { color: var(--bmo-primary); font-weight: 800; }
.bmo-timeline-item.is-rejected b { background: var(--bmo-danger); border-color: var(--bmo-danger); color: #fff; }
.bmo-timeline-item.is-rejected small { color: var(--bmo-danger); font-weight: 800; }
.bmo-timeline-line.is-complete { background: #86b5fa; }
.bmo-status-info { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid #d8e6f9; border-radius: 11px; background: #f4f8ff; color: #365170; }
.bmo-status-info > .bmo-icon { color: var(--bmo-primary); width: 31px; height: 31px; }
.bmo-status-info span { display: flex; flex-direction: column; flex: 1; }
.bmo-status-info strong { font-size: 12px; }
.bmo-status-info small { color: #71839b; font-size: 10px; }
.bmo-status-info--success { background: #effcf8; border-color: #c9efe3; }
.bmo-support-strip { max-width: 1210px !important; text-align: center; border-top: 1px solid #e6ecf3; padding: 25px 0 10px; }
.bmo-support-strip h2 { font-size: 18px; margin: 0 0 18px; }
.bmo-support-strip__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bmo-support-strip__grid > div { display: flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid #e6ecf4; border-radius: 10px; padding: 14px; background: #fff; }
.bmo-support-strip__grid .bmo-icon { color: var(--bmo-primary); }
.bmo-support-strip__grid span { display: flex; flex-direction: column; text-align: right; }
.bmo-support-strip__grid strong { font-size: 11px; }
.bmo-support-strip__grid small { color: var(--bmo-muted); font-size: 10px; }

/* Dashboard */
.bmo-root--dashboard { background: #f6f8fb; }
.bmo-dashboard-host { min-height: 100vh; }
.bmo-dashboard-app { min-height: 100vh; display: grid; grid-template-columns: 285px minmax(0, 1fr); direction: rtl; }
.bmo-dashboard-sidebar {
    background: #fff;
    border-left: 1px solid #e3e9f2;
    min-height: 100vh;
    padding: 22px 18px;
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    z-index: 15;
}
.bmo-dashboard-brand { padding: 0 7px 22px; border-bottom: 1px solid #edf1f6; }
.bmo-dashboard-brand .bmo-brand__mark { width: 43px; height: 43px; border-radius: 12px; }
.bmo-dashboard-brand strong { font-size: 16px; }
.bmo-dashboard-nav { display: grid; gap: 5px; padding: 18px 0; }
.bmo-dashboard-nav a { display: flex; align-items: center; gap: 11px; min-height: 45px; border-radius: 10px; padding: 9px 12px; color: #536079; font-size: 14px; position: relative; }
.bmo-dashboard-nav a .bmo-icon { width: 20px; height: 20px; }
.bmo-dashboard-nav a small { margin-right: auto; color: #9ca7b7; font-size: 9px; }
.bmo-dashboard-nav a.is-active { background: #edf4ff; color: var(--bmo-primary); font-weight: 900; }
.bmo-dashboard-nav a.is-disabled { opacity: .68; cursor: default; }
.bmo-dashboard-support { margin-top: auto; border: 1px solid #d8e7fb; border-radius: 12px; padding: 14px; background: linear-gradient(145deg, #fbfdff, #f1f7ff); display: flex; align-items: center; gap: 10px; color: var(--bmo-primary); }
.bmo-dashboard-support .bmo-icon { width: 31px; height: 31px; }
.bmo-dashboard-support span { display: flex; flex-direction: column; color: #344661; }
.bmo-dashboard-support strong { font-size: 14px; }
.bmo-dashboard-support small { color: var(--bmo-primary); font-size: 12px; direction: ltr; text-align: right; }
.bmo-dashboard-main { min-width: 0; }
.bmo-dashboard-topbar { height: 70px; background: #fff; border-bottom: 1px solid #e5eaf2; display: flex; align-items: center; gap: 20px; padding: 0 28px; position: sticky; top: 0; z-index: 10; }
.bmo-dashboard-search { flex: 1; max-width: 520px; height: 40px; border: 1px solid #e0e6ef; border-radius: 9px; color: #a0aabd; display: flex; align-items: center; padding: 0 15px; font-size: 12px; }
.bmo-dashboard-actions { margin-right: auto; display: flex; align-items: center; gap: 20px; font-size: 11px; }
.bmo-dashboard-actions > a { color: #7a879a; }
.bmo-dashboard-user { display: flex; align-items: center; gap: 8px; }
.bmo-dashboard-user > .bmo-icon { width: 34px; height: 34px; padding: 7px; color: var(--bmo-primary); background: #eef5ff; border-radius: 50%; }
.bmo-dashboard-user span { display: flex; flex-direction: column; line-height: 1.5; }
.bmo-dashboard-user strong { font-size: 12px; }
.bmo-dashboard-user small { color: var(--bmo-muted); font-size: 10px; }
.bmo-mobile-menu { display: none; border: 0; background: none; color: #44526a; }
.bmo-dashboard-content { padding: 28px 30px 40px; max-width: 1450px; margin: 0 auto; }
.bmo-dashboard-welcome { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.bmo-dashboard-welcome h1 { margin: 0 0 4px; font-size: 22px; }
.bmo-dashboard-welcome p { margin: 0; color: var(--bmo-muted); font-size: 11px; }
.bmo-dashboard-status-chip { display: flex; align-items: center; gap: 8px; border: 1px solid #d3eee5; background: #f3fcf9; border-radius: 10px; padding: 9px 12px; color: #0d9c75; }
.bmo-dashboard-status-chip .bmo-icon { width: 24px; height: 24px; }
.bmo-dashboard-status-chip span { display: flex; flex-direction: column; color: #31524a; }
.bmo-dashboard-status-chip strong { font-size: 10px; }
.bmo-dashboard-status-chip small { font-size: 9px; color: #6e8d85; }
.bmo-dashboard-overview { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 16px; }
.bmo-stat-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px; display: flex; align-items: center; gap: 12px; min-height: 92px; }
.bmo-stat-card__icon { width: 43px; height: 43px; border-radius: 12px; background: #eef5ff; color: var(--bmo-primary); display: grid; place-items: center; }
.bmo-stat-card span:last-child { display: flex; flex-direction: column; }
.bmo-stat-card small { color: var(--bmo-muted); font-size: 12px; }
.bmo-stat-card strong { font-size: 18px; margin-top: 3px; }
.bmo-dashboard-grid { display: grid; grid-template-columns: .85fr 1.45fr; gap: 16px; margin-bottom: 16px; }
.bmo-dashboard-card { background: #fff; border: 1px solid #e1e8f0; border-radius: 13px; padding: 18px; }
.bmo-dashboard-card__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 15px; }
.bmo-dashboard-card__head h2 { margin: 0; font-size: 14px; }
.bmo-dashboard-card__head p { margin: 4px 0 0; color: var(--bmo-muted); font-size: 10px; }
.bmo-dashboard-card__head a,
.bmo-dashboard-card__head > span { color: var(--bmo-primary); font-size: 9px; }
.bmo-profile-summary { display: flex; align-items: center; gap: 12px; padding: 14px; background: linear-gradient(145deg, #0e64e6, #1c4b9f); color: #fff; border-radius: 12px; margin-bottom: 13px; }
.bmo-profile-badge { width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.15); display: grid; place-items: center; }
.bmo-profile-summary > div:last-child { display: flex; flex-direction: column; }
.bmo-profile-summary strong { font-size: 13px; }
.bmo-profile-summary small { opacity: .82; font-size: 9px; }
.bmo-profile-meta { display: grid; gap: 8px; }
.bmo-profile-meta > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid #eef2f6; padding: 7px 0; font-size: 10px; }
.bmo-profile-meta span { color: var(--bmo-muted); }
.bmo-profile-meta strong { font-size: 10px; }
.bmo-text-success { color: var(--bmo-success); }
.bmo-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.bmo-quick-grid button,
.bmo-quick-grid a { border: 1px solid #e3eaf2; border-radius: 11px; background: #fff; min-height: 75px; padding: 11px; display: flex; align-items: center; gap: 11px; color: #3a4960; text-align: right; }
.bmo-quick-grid button:disabled { opacity: .55; cursor: default; }
.bmo-quick-grid .bmo-icon { color: var(--bmo-primary); }
.bmo-quick-grid span { display: flex; flex-direction: column; }
.bmo-quick-grid strong,
.bmo-quick-grid span { font-size: 10px; }
.bmo-quick-grid small { color: var(--bmo-muted); font-size: 8px; }
.bmo-dashboard-card--extension { min-height: 210px; }
.bmo-extension-placeholder { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.bmo-extension-placeholder > div { border: 1px dashed #cdd9e8; border-radius: 12px; background: #fbfcfe; min-height: 115px; padding: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.bmo-extension-placeholder .bmo-icon { color: var(--bmo-primary); margin-bottom: 2px; }
.bmo-extension-placeholder strong { font-size: 11px; }
.bmo-extension-placeholder span { color: var(--bmo-muted); font-size: 9px; }

/* Responsive */
@media (max-width: 1180px) {
    .bmo-public-nav > a:not(.bmo-public-nav__login) { display: none; }
    .bmo-auth-page { grid-template-columns: 1fr 1fr; gap: 30px; }
    .bmo-auth-card { padding-inline: 35px; }
    .bmo-auth-visual { transform: scale(.86); transform-origin: center; }
    .bmo-apply-layout { grid-template-columns: 220px minmax(0,1fr); }
    .bmo-notes-panel { display: none; }
    .bmo-apply-hero__copy { width: 72%; }
    .bmo-status-page { grid-template-columns: 260px 1fr; padding-inline: 35px; }
    .bmo-status-illustration { transform: scale(.8); }
    .bmo-public-footer { grid-template-columns: repeat(2,1fr); }
    .bmo-footer-copy { grid-column: 1 / -1; text-align: center; }
    .bmo-dashboard-overview { grid-template-columns: repeat(2,1fr); }
    .bmo-extension-placeholder { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 900px) {
    .bmo-public-header { height: 72px; padding-inline: 18px; }
    .bmo-brand__copy strong { font-size: 16px; }
    .bmo-brand__copy small { display: none; }
    .bmo-public-main { padding: 28px 16px 38px; }
    .bmo-auth-page { grid-template-columns: 1fr; min-height: auto; }
    .bmo-auth-intro { min-height: auto; }
    .bmo-auth-visual { display: none; }
    .bmo-auth-card { max-width: 620px; width: 100%; margin-inline: auto; min-height: auto; }
    .bmo-apply-hero { margin-top: -28px; margin-inline: -16px; padding: 35px 24px 80px; }
    .bmo-apply-hero__copy { width: 100%; }
    .bmo-apply-hero__visual { display: none; }
    .bmo-apply-layout { grid-template-columns: 1fr; margin-top: -48px; }
    .bmo-benefit-panel { display: none; }
    .bmo-status-page { grid-template-columns: 1fr; padding: 30px 24px; min-height: auto; }
    .bmo-status-illustration { display: none; }
    .bmo-status-timeline { overflow-x: auto; padding-bottom: 12px; }
    .bmo-support-strip__grid { grid-template-columns: 1fr; }
    .bmo-public-footer { grid-template-columns: 1fr 1fr; }

    .bmo-dashboard-app { display: block; }
    .bmo-dashboard-sidebar { position: fixed; right: -305px; top: 0; width: 285px; transition: right .22s ease; box-shadow: -20px 0 40px rgba(20,40,70,.13); }
    .bmo-dashboard-sidebar.is-open { right: 0; }
    .bmo-mobile-menu { display: inline-grid; place-items: center; }
    .bmo-dashboard-search { display: none; }
    .bmo-dashboard-actions { margin-right: auto; }
    .bmo-dashboard-content { padding-inline: 18px; }
    .bmo-dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .bmo-brand__mark { width: 40px; height: 40px; font-size: 20px; }
    .bmo-public-nav__login { font-size: 0; padding: 8px 10px; }
    .bmo-public-nav__login .bmo-icon { width: 21px; height: 21px; }
    .bmo-auth-card { padding: 28px 20px; border-radius: 15px; }
    .bmo-auth-intro__copy { padding-inline: 8px; }
    .bmo-auth-intro h1 { font-size: 26px; }
    .bmo-public-footer { grid-template-columns: 1fr; padding-inline: 20px; }
    .bmo-footer-copy { grid-column: auto; }
    .bmo-apply-card { padding: 18px 14px; }
    .bmo-form-grid { grid-template-columns: 1fr; }
    .bmo-field--full { grid-column: auto; }
    .bmo-stepper { grid-template-columns: repeat(4, 1fr); gap: 4px; }
    .bmo-stepper__line { display: none; }
    .bmo-stepper__item { min-width: 0; }
    .bmo-stepper__item span { display: none; }
    .bmo-stepper__item b { width: 32px; height: 32px; }
    .bmo-status-page { margin-top: 10px !important; }
    .bmo-status-timeline { grid-template-columns: repeat(7, minmax(80px, auto)); }
    .bmo-timeline-item { min-width: 82px; }
    .bmo-timeline-item b { width: 48px; height: 48px; }
    .bmo-timeline-line { margin-top: 24px; }
    .bmo-status-info { align-items: flex-start; flex-wrap: wrap; }
    .bmo-status-info .bmo-button { width: 100%; }
    .bmo-dashboard-topbar { padding-inline: 14px; }
    .bmo-dashboard-actions > a { display: none; }
    .bmo-dashboard-welcome { align-items: flex-start; flex-direction: column; }
    .bmo-dashboard-overview { grid-template-columns: 1fr 1fr; }
    .bmo-stat-card { min-height: 78px; padding: 11px; }
    .bmo-stat-card__icon { width: 36px; height: 36px; }
    .bmo-stat-card strong { font-size: 15px; }
    .bmo-quick-grid { grid-template-columns: 1fr; }
    .bmo-extension-placeholder { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .bmo-file-upload { align-items: flex-start; flex-wrap: wrap; }
    .bmo-file-upload__copy { flex-basis: calc(100% - 58px); }
    .bmo-file-upload__button { margin-right: 54px; }
}

/* =========================================================
   Partner commerce portal v0.2
   ========================================================= */
body.bmo-dashboard-route { background:#f7f9fc; }
.bmo-portal-shell { --bmo-sidebar-width: 250px; grid-template-columns: var(--bmo-sidebar-width) minmax(0,1fr); }
.bmo-portal-shell .bmo-dashboard-sidebar { width:var(--bmo-sidebar-width); padding:18px 15px; }
.bmo-portal-shell .bmo-dashboard-brand { padding:0 5px 17px; }
.bmo-portal-shell .bmo-dashboard-nav { overflow:auto; scrollbar-width:thin; }
.bmo-nav-badge { min-width:20px; height:20px; border-radius:10px; display:inline-grid!important; place-items:center; background:var(--bmo-primary); color:#fff!important; font-size:9px!important; padding:0 5px; }
.bmo-dashboard-support { flex-wrap:wrap; }
.bmo-dashboard-support__icon { flex:0 0 auto!important; }
.bmo-dashboard-support > a { flex:1 0 100%; text-align:center; border:1px solid #bad3fb; border-radius:8px; padding:6px 8px; margin-top:4px; font-size:12px; background:#fff; }
.bmo-dashboard-topbar { min-height:72px; height:auto; }
.bmo-dashboard-search { max-width:560px; gap:8px; background:#fff; }
.bmo-dashboard-search .bmo-icon { width:18px; height:18px; }
.bmo-dashboard-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--bmo-ink); font-size:11px; }
.bmo-dashboard-actions { gap:10px; }
.bmo-top-icon { width:38px; height:38px; border:1px solid #e1e8f1; border-radius:10px; display:grid; place-items:center; position:relative; background:#fff; }
.bmo-top-icon .bmo-icon { width:20px; height:20px; }
.bmo-top-icon b { position:absolute; top:-7px; left:-7px; min-width:18px; height:18px; border-radius:9px; background:var(--bmo-primary); color:#fff; font-size:8px; display:grid; place-items:center; padding:0 4px; }
.bmo-dashboard-user { border:1px solid #e1e8f1; border-radius:10px; padding:5px 8px; min-width:165px; }
.bmo-user-logout { color:#8490a3!important; margin-right:auto; font-size: 10px; }
.bmo-dashboard-content { max-width:1600px; padding:26px 28px 46px; }
.bmo-dashboard-content > * { min-width:0; }
.bmo-module-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin:0 0 18px; }
.bmo-module-head h1 { margin:3px 0 3px; font-size:22px; line-height:1.45; font-weight:950; }
.bmo-module-head h1 b { font-size:.75em; font-weight:800; margin-right:7px; }
.bmo-module-head p { margin:0; color:var(--bmo-muted); font-size:12px; }
.bmo-breadcrumb { color:#75839b; font-size:12px; }
.bmo-module-actions { display:flex; gap:8px; flex-wrap:wrap; }
.bmo-button--xs { min-height:31px!important; padding:5px 9px!important; font-size:12px!important; width:auto!important; }
.bmo-link { color:var(--bmo-primary)!important; font-weight:800; }
.bmo-text-danger { color:#e14b53!important; }
.bmo-text-warning { color:#d88b16!important; }
.bmo-portal-alert { border:1px solid; border-radius:10px; padding:10px 13px; margin:0 0 14px; display:flex; align-items:center; gap:8px; font-size:12px; }
.bmo-portal-alert .bmo-icon { width:18px; height:18px; }
.bmo-portal-alert--success { background:#effbf6; border-color:#cdeee0; color:#128663; }
.bmo-portal-alert--danger { background:#fff4f4; border-color:#ffd7d7; color:#b83e45; }
.bmo-portal-alert--warning { background:#fff9ec; border-color:#f2dfb4; color:#946512; }

.bmo-panel { background:#fff; border:1px solid #e1e8f1; border-radius:13px; padding:17px; min-width:0; }
.bmo-panel + .bmo-panel { margin-top:14px; }
.bmo-panel__head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.bmo-panel__head h2 { margin:0; font-size:16px; display:flex; align-items:center; gap:7px; }
.bmo-panel__head h2 .bmo-icon { width:18px; height:18px; color:var(--bmo-primary); }
.bmo-panel__head p { margin:3px 0 0; font-size:12px; color:var(--bmo-muted); }
.bmo-panel__head a { color:var(--bmo-primary); font-size:12px !important; font-weight:800; }
.bmo-empty-state { min-height:290px; background:#fff; border:1px dashed #ccd8e8; border-radius:15px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:28px; gap:8px; color:#5c6b81; }
.bmo-empty-state .bmo-icon { width:48px; height:48px; color:#91b8f6; }
.bmo-empty-state strong { font-size:14px; color:#273750; }
.bmo-empty-state p { margin:0; color:var(--bmo-muted); font-size:12px; }
.bmo-empty-state a { color:var(--bmo-primary); font-size:12px; font-weight:800; }
.bmo-empty-state.compact { min-height:120px; }
.bmo-empty-state.compact .bmo-icon { width:32px; height:32px; }

.bmo-dashboard-overview--five { grid-template-columns:repeat(5,minmax(0,1fr)); }
.bmo-dashboard-overview--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.bmo-stat-card { color:inherit; transition:.18s ease; }
a.bmo-stat-card:hover { transform:translateY(-1px); border-color:#c9dbf3; box-shadow:0 8px 22px rgba(32,65,110,.06); }
.bmo-home-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr); gap:14px; margin-bottom:14px; }
.bmo-quick-actions { display:grid; gap:8px; }
.bmo-quick-actions a { min-height:64px; border:1px solid #e7edf5; border-radius:10px; display:flex; align-items:center; gap:10px; padding:10px 11px; }
.bmo-quick-actions a:hover { border-color:#bfd6f8; background:#f8fbff; }
.bmo-quick-actions .bmo-icon { width:23px; height:23px; color:var(--bmo-primary); }
.bmo-quick-actions span { display:flex; flex-direction:column; }
.bmo-quick-actions strong { font-size:14px; }
.bmo-quick-actions small { color:var(--bmo-muted); font-size:12px; }
.bmo-mini-products { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.bmo-mini-product { border:1px solid #e5ebf3; border-radius:10px; padding:9px; min-width:0; display:flex; align-items:center; gap:8px; background:#fff; }
.bmo-mini-product__image { width:66px; height:66px; flex:0 0 66px; display:grid; place-items:center; }
.bmo-mini-product__image img { width:100%; height:100%; object-fit:contain; }
.bmo-mini-product > span:last-child { min-width:0; display:flex; flex-direction:column; gap:2px; }
.bmo-mini-product strong { font-size:14px; line-height:1.6; max-height:40px; overflow:hidden; }
.bmo-mini-product small { font-size:10px; color:var(--bmo-muted); }
.bmo-mini-product b { color:var(--bmo-primary); font-size:12px; }

.bmo-table-wrap { width:100%; max-width:100%; overflow:auto; border-radius:9px; }
.bmo-data-table { width:100%; border-collapse:collapse; min-width:760px; font-size:12px; background:#fff; }
.bmo-data-table th { text-align:right; color:#5c6980; font-weight:800; background:#fbfcfe; border-bottom:1px solid #e5eaf1; padding:10px 9px; white-space:nowrap; }
.bmo-data-table td { border-bottom:1px solid #edf1f6; padding:9px; vertical-align:middle; color:#35435a; }
.bmo-data-table tr:last-child td { border-bottom:0; }
.bmo-data-table tbody tr:hover { background:#fcfdff; }
.bmo-table-product { display:flex; align-items:center; gap:7px; min-width:170px; }
.bmo-table-product img { width:38px; height:38px; object-fit:contain; border-radius:7px; background:#f8fafc; }
.bmo-table-product strong { font-size:14px; line-height:1.5; }
.bmo-table-actions { display:flex; gap:5px; align-items:center; white-space:nowrap; }
.bmo-table-actions form { margin:0; }
.bmo-icon-button { width:30px; height:30px; border:1px solid #dce5ef; border-radius:7px; display:inline-grid; place-items:center; background:#fff; color:#53637a; padding:0; }
.bmo-icon-button .bmo-icon { width:15px; height:15px; }
.bmo-icon-button--danger { color:#e34f58; }
.bmo-status { display:inline-flex; align-items:center; justify-content:center; min-height:24px; border-radius:6px; padding:3px 8px; font-size:12px; white-space:nowrap; background:#eef2f7; color:#59667a; }
.bmo-status--completed,.bmo-status--processing,.bmo-status--answered { background:#eaf9f3; color:#13966f; }
.bmo-status--pending,.bmo-status--on-hold,.bmo-status--open,.bmo-status--bmo-review,.bmo-status--bmo-receipt { background:#fff4df; color:#c57b0a; }
.bmo-status--cancelled,.bmo-status--failed,.bmo-status--refunded,.bmo-status--closed { background:#fff0f1; color:#d83f4a; }
.bmo-status--processing { background:#eef5ff; color:#1268d9; }
.bmo-pagination { display:flex; justify-content:center; gap:5px; padding-top:15px; }
.bmo-pagination a { width:31px; height:31px; display:grid; place-items:center; border:1px solid #dfe7f1; border-radius:7px; background:#fff; font-size:9px; }
.bmo-pagination a.is-active { background:var(--bmo-primary); color:#fff; border-color:var(--bmo-primary); }

/* Catalog */
.bmo-view-switch { display:flex; gap:6px; color:#8c99ac; }
.bmo-view-switch .bmo-icon { border:1px solid #e1e8f1; border-radius:7px; padding:7px; width:34px !important; height:34px !important; }
.bmo-catalog-layout { display:grid; grid-template-columns:235px minmax(0,1fr); gap:16px; align-items:start; }
.bmo-filter-panel { background:#fff; border:1px solid #e0e7f0; border-radius:13px; position:sticky; top:88px; overflow:hidden; }
.bmo-filter-title { display:flex; align-items:center; gap:8px; padding:15px; border-bottom:1px solid #edf1f6; }
.bmo-filter-title .bmo-icon { color:var(--bmo-primary); }
.bmo-filter-title strong { font-size:14px; }
.bmo-filter-form { display:grid; }
.bmo-filter-section { padding:13px 15px; border-bottom:1px solid #edf1f6; display:grid; gap:7px; }
.bmo-filter-section > label:first-child { font-size:12px; font-weight:900; color:#34445d; }
.bmo-search-field { border:1px solid #dce4ef; border-radius:8px; height:100%; display:flex; align-items:center; gap:7px; padding:0 9px; background:#fff; }
.bmo-search-field .bmo-icon { width:16px; height:16px; color:#8da0b8; }
.bmo-search-field input { flex:1; min-width:0; border:0!important; outline:0!important; background:transparent!important; box-shadow:none!important; height:34px!important; min-height:0!important;  font-size:12px!important; }
.bmo-radio-filter,.bmo-filter-term { display:flex; align-items:center; gap:7px; font-size:12px; color:#47566e; }
.bmo-radio-filter input { width:14px; height:14px; }
.bmo-radio-filter small,.bmo-filter-term small { margin-right:auto; color:#98a4b5; }
.bmo-filter-form > .bmo-button { margin:12px 15px; width:auto; }
.bmo-catalog-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-size:12px; color:#78869a; }
.bmo-catalog-toolbar a { display:flex; align-items:center; gap:5px; color:var(--bmo-primary); font-weight:800; }
.bmo-catalog-toolbar .bmo-icon { width:17px; height:17px; }
.bmo-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.bmo-product-card { background:#fff; border:1px solid #e1e8f1; border-radius:12px; overflow:hidden; min-width:0; display:flex; flex-direction:column; }
.bmo-product-card:hover { border-color:#c7d9f1; box-shadow:0 10px 26px rgba(38,65,105,.06); }
.bmo-product-card__media { height:205px; padding:14px; display:grid; place-items:center; position:relative; background:#fff; }
.bmo-product-card__media > a { width:100%; height:100%; display:grid; place-items:center; }
.bmo-product-card__media img { max-width:100%; max-height:175px; object-fit:contain; }
.bmo-stock-badge { position:absolute; top:10px; right:10px; border-radius:999px; padding:3px 8px; font-size:12px; }
.bmo-stock-badge.is-stock { background:#eef7ff; color:#1371df; }
.bmo-stock-badge.is-out { background:#fff0f1; color:#d74b54; }
.bmo-wishlist-form { position:absolute; top:9px; left:9px; }
.bmo-wishlist-form button { border:0; background:transparent; color:#7888a1; padding:4px; }
.bmo-wishlist-form button.is-active { color:#e44c61; }
.bmo-wishlist-form .bmo-icon { width:19px; height:19px; }
.bmo-product-card__body { padding:0 13px 13px; display:flex; flex-direction:column; flex:1; gap:4px; }
.bmo-product-card__title { font-size:14px; font-weight:800; line-height:1.7; min-height:40px; color:#23334d; }
.bmo-product-card__body > small,.bmo-product-min { color:#7b899e; font-size:12px; }
.bmo-product-stock { font-size:12px; color:#637188; }
.bmo-product-stock strong { color:#1ba47c; }
.bmo-product-price { display:flex; align-items:center; justify-content:space-between; gap:7px; margin-top:5px; }
.bmo-product-price span { color:#6f7d91; font-size:12px; }
.bmo-product-price strong { color:var(--bmo-primary); font-size:14px; }
.bmo-add-cart-row { display:grid; grid-template-columns:58px minmax(0,1fr); gap:6px; margin-top:auto; padding-top:7px; }
.bmo-add-cart-row input,.bmo-quick-add-form input,.bmo-qty-input { border:1px solid #d8e1ec; border-radius:7px; min-height:34px; width:100%; text-align:center; padding:4px; font-size:9px; }
.bmo-add-cart-row button,.bmo-quick-add-form button { border:0; border-radius:7px; background:var(--bmo-primary); color:#fff; font-size:9px; font-weight:800; display:flex; align-items:center; justify-content:center; gap:5px; }
.bmo-add-cart-row button .bmo-icon,.bmo-quick-add-form button .bmo-icon { width:15px; height:15px; }

/* Product detail */
.bmo-single-product-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:18px; align-items:start; }
.bmo-buy-card { background:#fff; border:1px solid #dfe6ef; border-radius:13px; padding:15px; position:sticky; top:88px; }
.bmo-buy-card h3 { margin:0 0 12px; font-size:16px; }
.bmo-partner-price-callout { background:#eef5ff; border:1px solid #d1e3ff; border-radius:9px; padding:10px; display:flex; gap:8px; margin-bottom:12px; color:#1764c9; }
.bmo-partner-price-callout .bmo-icon { width:21px; height:21px; }
.bmo-partner-price-callout span { display:flex; flex-direction:column; }
.bmo-partner-price-callout strong { font-size:14px; }
.bmo-partner-price-callout small { color:#617795; font-size:12px; }
.bmo-price-tier { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #edf1f5; padding:8px 0; font-size:14px; }
.bmo-price-tier strong { color:var(--bmo-primary); }
.bmo-buy-form { display:grid; gap:8px; margin:12px 0 8px; }
.bmo-buy-form label { display:grid; gap:5px; font-size:14px; color:#58677d; }
.bmo-buy-form input,.bmo-buy-form select { min-height:40px; width:100%; border:1px solid #d8e1eb; border-radius:8px; padding:6px 9px; }
.bmo-buy-card > form:last-child { margin-top:7px; }
.bmo-product-detail { background:#fff; border:1px solid #e0e7f0; border-radius:13px; padding:18px; display:grid; grid-template-columns:minmax(340px,.9fr) minmax(0,1fr); gap:24px; }
.bmo-product-detail__gallery { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; }
.bmo-product-main-image { min-height:390px; display:grid; place-items:center; background:#fff; }
.bmo-product-main-image img { max-height:390px; width:auto; object-fit:contain; }
.bmo-product-thumbs { display:flex; gap:7px; justify-content:center; }
.bmo-product-thumbs span { width:62px; height:62px; border:1px solid #dce4ef; border-radius:8px; padding:5px; display:grid; place-items:center; }
.bmo-product-thumbs img { width:100%; height:100%; object-fit:contain; }
.bmo-product-detail__info { padding:8px 4px; }
.bmo-product-detail__info h1 { font-size:21px !important; line-height:1.55; margin:0 0 5px; }
.bmo-product-info-list { border-top:1px solid #edf1f5; }
.bmo-product-info-list > div { display:flex; justify-content:space-between; gap:15px; padding:10px 0; border-bottom:1px solid #edf1f5; font-size:9px; }
.bmo-product-info-list span { color:#718097; }
.bmo-product-benefits { margin-top:16px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #dce8f7; background:#f7fbff; border-radius:9px; overflow:hidden; }
.bmo-product-benefits > div { display:flex; gap:7px; align-items:center; padding:10px; border-left:1px solid #e0e9f5; }
.bmo-product-benefits > div:last-child { border-left:0; }
.bmo-product-benefits .bmo-icon { color:var(--bmo-primary); width:20px; height:20px; }
.bmo-product-benefits span { display:flex; flex-direction:column; }
.bmo-product-benefits strong { font-size:8px; }
.bmo-product-benefits small { color:#7e8ca1; font-size:12px; }
.bmo-product-description-panel { margin-top:14px; }
.bmo-tabs { display:flex; gap:22px; border-bottom:1px solid #e8edf4; margin:-5px -2px 12px; }
.bmo-tabs span { padding:10px 4px; font-size:14px; color:#6d7b91; }
.bmo-tabs span.is-active { color:var(--bmo-primary); border-bottom:2px solid var(--bmo-primary); font-weight:800; }
.bmo-product-description { color:#4c5b72; font-size:10px; line-height:2; }

/* Quick order */
.bmo-quick-order-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:16px; align-items:start; }
.bmo-order-summary-card,.bmo-cart-summary { background:#fff; border:1px solid #dfe6ef; border-radius:13px; padding:15px; position:sticky; top:88px; }
.bmo-order-summary-card h3,.bmo-cart-summary h3 { margin:0 0 12px; font-size:14px; }
.bmo-order-summary-card > div:not(.bmo-summary-note),.bmo-cart-summary > div:not(.bmo-summary-note):not(.bmo-coupon-box) { display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid #edf1f5; font-size:12px; }
.bmo-order-summary-card__total,.bmo-cart-summary__total { margin-top:5px; padding:11px 0!important; }
.bmo-order-summary-card__total strong,.bmo-cart-summary__total strong { color:var(--bmo-primary); font-size:12px; }
.bmo-order-summary-card > .bmo-button,.bmo-cart-summary > .bmo-button { margin-top:12px; }
.bmo-summary-note { margin-top:10px; border:1px solid #dce8f8; background:#f5f9ff; border-radius:8px; padding:9px!important; display:flex!important; gap:7px!important; color:#657793; font-size:12px!important; }
.bmo-summary-note .bmo-icon { width:17px; height:17px; color:var(--bmo-primary); }
.bmo-quick-order-main { min-width:0; }
.bmo-quick-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.bmo-quick-results { margin-top:10px; border:1px solid #e3e9f1; border-radius:9px; overflow:hidden; }
.bmo-quick-result { display:grid; grid-template-columns:48px minmax(180px,1.3fr) 100px 110px minmax(220px,260px); gap:8px; align-items:center; padding:8px 10px; border-bottom:1px solid #edf1f5; font-size:12px; }
.bmo-quick-result:last-child { border-bottom:0; }
.bmo-quick-result__image img { width:42px; height:42px; object-fit:contain; }
.bmo-quick-result__name { display:flex; flex-direction:column; }
.bmo-quick-result__name strong { font-size:12px; }
.bmo-quick-result__name small { color:#7a899e; }
.bmo-quick-result__stock b { color:#18a87f; }
.bmo-quick-result__price { color:var(--bmo-primary); font-weight:800; }
.bmo-quick-add-form { display:grid; grid-template-columns:55px minmax(0,1fr); gap:5px; }

/* Cart */
.bmo-cart-layout,.bmo-checkout-layout { display:grid; grid-template-columns:265px minmax(0,1fr); gap:16px; align-items:start; }
.bmo-cart-main { min-width:0; }
.bmo-cart-table .bmo-qty-input { width:66px; }
.bmo-cart-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
.bmo-coupon-box { margin-top:13px; padding-top:12px; border-top:1px solid #edf1f5; }
.bmo-coupon-box h4 { margin:0 0 7px; font-size:10px; }
.bmo-coupon-box form { display:grid; grid-template-columns:minmax(0,1fr) 60px; gap:5px; }
.bmo-coupon-box input { min-width:0; border:1px solid #d8e1eb; border-radius:7px; height:37px; padding:5px 8px; font-size:9px; }
.bmo-coupon-box button { border:1px solid #c9dcf7; border-radius:7px; background:#f4f8ff; color:var(--bmo-primary); font-size:9px; }
.bmo-shipping-preview { margin-top:14px; }
.bmo-option-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.bmo-option-card { min-height:78px; border:1px solid #dfe6ef; border-radius:10px; padding:10px; display:flex; align-items:center; gap:8px; position:relative; background:#fff; }
.bmo-option-card > .bmo-icon { width:24px; height:24px; color:#31445f; }
.bmo-option-card span { display:flex; flex-direction:column; min-width:0; }
.bmo-option-card strong { font-size:14px; }
.bmo-option-card small { color:#78869b; font-size:10px; }
.bmo-option-card b { margin-right:auto; font-size:12px; white-space:nowrap; }

/* Checkout */
.bmo-checkout-steps { display:flex; align-items:center; justify-content:center; gap:8px; margin:3px auto 18px; max-width:720px; color:#7a879b; font-size:12px; }
.bmo-checkout-steps span { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.bmo-checkout-steps b { width:28px; height:28px; border:1px solid #dce4ef; border-radius:50%; display:grid; place-items:center; background:#fff; }
.bmo-checkout-steps i { height:1px; width:70px; background:#dfe6ef; }
.bmo-checkout-steps .is-active { color:var(--bmo-primary); font-weight:800; }
.bmo-checkout-steps .is-active b { background:var(--bmo-primary); color:#fff; border-color:var(--bmo-primary); }
.bmo-checkout-steps .is-complete b { color:#16a87d; border-color:#bfe9da; }
.bmo-checkout-main { min-width:0; display:grid; gap:12px; }
.bmo-address-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.bmo-address-choice { border:1px solid #dfe6ef; border-radius:10px; min-height:115px; padding:11px; display:flex; gap:8px; cursor:pointer; }
.bmo-address-choice.is-selected { border-color:var(--bmo-primary); box-shadow:0 0 0 1px var(--bmo-primary) inset; background:#fbfdff; }
.bmo-address-choice input { margin-top:4px; accent-color:var(--bmo-primary); }
.bmo-address-choice > span { display:flex; flex-direction:column; gap:3px; }
.bmo-address-choice strong { font-size:14px; }
.bmo-address-choice strong em { font-style:normal; border-radius:5px; padding:2px 5px; background:#e9f9f3; color:#14966e; font-size:12px; }
.bmo-address-choice small { color:#67758a; font-size:12px; line-height:1.7; }
.bmo-option-grid--selectable .bmo-option-card { cursor:pointer; }
.bmo-option-grid--selectable .bmo-option-card input { accent-color:var(--bmo-primary); }
.bmo-option-grid--selectable .bmo-option-card.is-selected { border-color:var(--bmo-primary); background:#fbfdff; box-shadow:0 0 0 1px var(--bmo-primary) inset; }
.bmo-option-card.is-disabled { opacity:.45; cursor:not-allowed!important; }
.bmo-invoice-info-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.bmo-invoice-info-grid > div { background:#fafbfd; border:1px solid #e8edf4; border-radius:8px; padding:8px; display:flex; flex-direction:column; }
.bmo-invoice-info-grid span { color:#7e8b9e; font-size:12px; }
.bmo-invoice-info-grid strong { font-size:14px; }
.bmo-checkout-submit { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fff; border:1px solid #dfe6ef; border-radius:11px; padding:12px; }

/* Orders */
.bmo-order-filters { display:grid; grid-template-columns:minmax(260px,1fr) 180px auto; gap:8px; border-bottom:1px solid #edf1f5; padding-bottom:12px; margin-bottom:12px; }
.bmo-order-filters select { border:1px solid #dce4ef; border-radius:8px; padding:0 9px; min-height:38px; font-size: 12px !important; background:#fff; }
.bmo-table-title { align-items:center; }
.bmo-table-title > span { color:#8895a8; font-size: 12px; }
.bmo-order-timeline { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; position:relative; padding:8px 0; }
.bmo-order-timeline::before { content:""; position:absolute; top:32px; right:9%; left:9%; height:2px; background:#e1e8f2; }
.bmo-order-timeline > div { text-align:center; display:flex; flex-direction:column; align-items:center; gap:4px; position:relative; z-index:1; color:#8794a6; }
.bmo-order-timeline b { width:48px; height:48px; border:1px solid #dce4ef; border-radius:50%; background:#fff; display:grid; place-items:center; }
.bmo-order-timeline b .bmo-icon { width:21px; height:21px; }
.bmo-order-timeline strong { font-size:12px; }
.bmo-order-timeline small { font-size:12px; }
.bmo-order-timeline .is-done { color:#176ad7; }
.bmo-order-timeline .is-done b { border-color:#74aaf4; color:var(--bmo-primary); box-shadow:0 0 0 4px #f2f7ff; }
.bmo-order-timeline .is-done:last-child { color:#15956f; }
.bmo-order-detail-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; }
.bmo-detail-list { display:grid; gap:0; }
.bmo-detail-list > div { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:7px 0; border-bottom:1px solid #edf1f5; font-size:12px; }
.bmo-detail-list > div:last-child { border-bottom:0; }
.bmo-detail-list span { color:#78869a; }
.bmo-detail-list strong { text-align:left; max-width:65%; word-break:break-word; }
.bmo-order-note-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:12px; margin-top:12px; }
.bmo-order-total-panel > div { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid #edf1f5; font-size:12px; }
.bmo-order-total-panel .total { border-bottom:0; font-size:11px; }
.bmo-order-total-panel .total strong { color:var(--bmo-primary); font-size:14px; }

/* Invoices */
.bmo-invoice-sheet { background:#fff; border:1px solid #dfe6ef; border-radius:12px; max-width:1000px; margin:0 auto; padding:28px; }
.bmo-invoice-sheet > header { display:flex; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:2px solid #e6edf5; }
.bmo-invoice-brand { display:flex; align-items:center; gap:10px; }
.bmo-invoice-brand img { width:55px; height:55px; object-fit:contain; }
.bmo-invoice-brand > div { display:flex; flex-direction:column; }
.bmo-invoice-brand strong { font-size:22px; }
.bmo-invoice-brand small { color:#7d899c; font-size:12px; }
.bmo-invoice-number { display:flex; flex-direction:column; text-align:left; }
.bmo-invoice-number small { color:#7d899c; font-size:12px; }
.bmo-invoice-number strong { color:var(--bmo-primary); font-size:15px; }
.bmo-invoice-number span { font-size:12px; color:#69768a; }
.bmo-invoice-parties { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:18px 0; }
.bmo-invoice-parties > div { border:1px solid #e6ebf2; border-radius:9px; padding:12px; }
.bmo-invoice-parties h3 { margin:0 0 7px; font-size:14px; }
.bmo-invoice-parties p { margin:2px 0; font-size:12px; color:#56647a; }
.bmo-invoice-totals { margin:18px 0 0 auto; max-width:340px; }
.bmo-invoice-totals > div { display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid #edf1f5; font-size:12px; }
.bmo-invoice-totals .total { font-size:11px; border-bottom:0; }
.bmo-invoice-totals .total strong { color:var(--bmo-primary); font-size:14px; }
.bmo-invoice-sheet > footer { border-top:1px solid #e5ebf2; margin-top:18px; padding-top:12px; display:flex; justify-content:space-between; color:#66758a; font-size:14px; }

/* Profile */
.bmo-profile-summary-grid { display:grid; grid-template-columns:1.2fr .9fr .9fr; gap:12px; margin-bottom:12px; }
.bmo-company-identity { display:flex; gap:12px; align-items:center; margin:8px 0 14px; }
.bmo-company-logo { width:82px; height:82px; border-radius:18px; background:linear-gradient(145deg,#10223d,#071220); color:#f0b63e; display:grid; place-items:center; }
.bmo-company-logo .bmo-icon { width:42px; height:42px; }
.bmo-company-identity h3 { margin:0; font-size:14px; }
.bmo-company-identity p { margin:2px 0; color:#58677d; font-size:12px; }
.bmo-company-identity small { color:#738198; font-size:10px; }
.bmo-level-badge { min-height:76px; background:linear-gradient(135deg,#071a34,#0d315e); color:#f5bd3e; border-radius:11px; display:flex; align-items:center; justify-content:center; gap:9px; }
.bmo-level-badge .bmo-icon { width:36px; height:36px; }
.bmo-level-badge span { display:flex; flex-direction:column; }
.bmo-level-badge strong { font-size:16px; }
.bmo-level-badge small { color:#c2d1e4; font-size:12px; }
.bmo-partner-level > p { margin:15px 0 2px; text-align:center; color:#758398; font-size:14px; }
.bmo-level-total { display:block; text-align:center; font-size:16px; color:var(--bmo-primary); }
.bmo-progress { height:7px; background:#e7edf5; border-radius:5px; overflow:hidden; margin-top:9px; }
.bmo-progress i { display:block; height:100%; background:var(--bmo-primary); border-radius:5px; }
.bmo-profile-body-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(270px,.75fr); gap:12px; margin-bottom:12px; }
.bmo-address-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.bmo-address-card { border:1px solid #dfe6ef; border-radius:10px; padding:11px; min-height:145px; display:flex; flex-direction:column; gap:4px; }
.bmo-address-card.is-default { border-color:var(--bmo-primary); box-shadow:0 0 0 1px var(--bmo-primary) inset; }
.bmo-address-card__head { display:flex; justify-content:space-between; gap:7px; }
.bmo-address-card__head strong { font-size:14px; }
.bmo-address-card__head span { background:#eaf9f3; color:#15966f; border-radius:5px; padding:2px 5px; font-size:10px; }
.bmo-address-card p { margin:4px 0; color:#536177; font-size:12px; line-height:1.8; }
.bmo-address-card small { color:#75839a; font-size:12px; }
.bmo-address-card__actions { margin-top:auto; display:flex; justify-content:flex-end; }
.bmo-address-card__actions button { border:0; background:transparent; color:#e14a55; font-size:12px !important; display:flex; align-items:center; gap:4px; }
.bmo-address-card__actions .bmo-icon { width:14px; height:14px; }
.bmo-address-form .bmo-form-grid,.bmo-profile-edit-form .bmo-form-grid { margin-bottom:12px; }
.bmo-profile-footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bmo-credit-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }
.bmo-credit-metrics > div { background:#fafbfd; border:1px solid #e8edf4; border-radius:8px; padding:9px; display:flex; flex-direction:column; }
.bmo-credit-metrics span { font-size:12px; color:#7b899d; }
.bmo-credit-metrics strong { font-size:14px; }
.bmo-settings-links { display:grid; }
.bmo-settings-links a { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid #edf1f5; font-size:12px; }
.bmo-settings-links a:last-child { border-bottom:0; }
.bmo-settings-links a > .bmo-icon:first-child { color:var(--bmo-primary); }
.bmo-settings-links a > .bmo-icon:last-child { margin-right:auto; width:15px; height:15px; }

/* Tickets */
.bmo-ticket-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:12px; margin-bottom:12px; align-items:start; }
.bmo-support-agent { background:#fff; border:1px solid #dfe6ef; border-radius:12px; padding:16px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:6px; position:sticky; top:88px; }
.bmo-support-agent__avatar { width:70px; height:70px; border-radius:50%; background:#edf5ff; color:var(--bmo-primary); display:grid; place-items:center; }
.bmo-support-agent__avatar .bmo-icon { width:36px; height:36px; }
.bmo-support-agent h3 { margin:5px 0 0; font-size:11px; }
.bmo-support-agent p { margin:0; color:#738197; font-size:8px; }
.bmo-support-agent a,.bmo-support-agent > span:not(.bmo-support-agent__avatar) { color:#2f5b94; font-size:8px; }
.bmo-support-agent small { color:#8895a8; font-size:7px; }
.bmo-ticket-thread { padding:15px; }
.bmo-ticket-thread__head { display:flex; justify-content:space-between; gap:16px; padding-bottom:12px; border-bottom:1px solid #e9eef4; }
.bmo-ticket-thread__head h2 { margin:5px 0 1px; font-size:15px; }
.bmo-ticket-thread__head h3 { margin:0; font-size:11px; }
.bmo-ticket-thread__head > div:last-child { display:flex; align-items:flex-end; flex-direction:column; gap:4px; color:#718097; font-size:8px; }
.bmo-ticket-thread__head a { color:var(--bmo-primary); }
.bmo-ticket-messages { display:grid; gap:10px; padding:14px 0; }
.bmo-ticket-message { display:flex; gap:9px; max-width:82%; }
.bmo-ticket-message.is-user { margin-right:auto; flex-direction:row-reverse; }
.bmo-ticket-message__avatar { width:34px; height:34px; border-radius:50%; background:#edf5ff; color:var(--bmo-primary); display:grid; place-items:center; flex:0 0 34px; }
.bmo-ticket-message__avatar .bmo-icon { width:18px; height:18px; }
.bmo-ticket-message > div { background:#f8fafc; border:1px solid #e5ebf2; border-radius:10px; padding:9px 11px; min-width:230px; }
.bmo-ticket-message.is-staff > div { background:#f8fbff; border-color:#dce9fb; }
.bmo-ticket-message strong { font-size:12px; }
.bmo-ticket-message small { color:#8a96a8; font-size:12px; margin-right:6px; }
.bmo-ticket-message p { margin:5px 0 0; color:#425168; font-size:12px; line-height:1.9; }
.bmo-attachment-link { color:var(--bmo-primary); font-size:8px; display:flex; gap:4px; align-items:center; margin-top:6px; }
.bmo-attachment-link .bmo-icon { width:14px; height:14px; }
.bmo-ticket-reply { display:grid; grid-template-columns:minmax(0,1fr) 36px auto; gap:7px; align-items:end; border-top:1px solid #e8edf4; padding-top:12px; }
.bmo-ticket-reply textarea { resize:vertical; min-height:44px; border:1px solid #dbe4ef; border-radius:8px; padding:8px; font-size:9px; }
.bmo-priority { border-radius:5px; padding:3px 7px; font-size:8px; }
.bmo-priority--low { background:#eaf9f3; color:#15966f; }
.bmo-priority--normal { background:#fff3de; color:#bd7810; }
.bmo-priority--high { background:#fff0f1; color:#d9454f; }

/* Credit and catalog terms */
.bmo-credit-layout { display:grid; grid-template-columns:1.1fr 1fr 1.3fr; gap:12px; }
.bmo-credit-hero { border-radius:14px; padding:20px; background:linear-gradient(135deg,#0759d3,#0877ff); color:#fff; display:flex; align-items:center; justify-content:space-between; min-height:170px; }
.bmo-credit-hero div { display:flex; flex-direction:column; }
.bmo-credit-hero span { font-size:14px; opacity:.85; }
.bmo-credit-hero strong { font-size:22px; margin:5px 0; }
.bmo-credit-hero small { font-size:14px; opacity:.8; }
.bmo-credit-hero > .bmo-icon { width:58px !important; height:58px !important; opacity:.8; }
.bmo-credit-progress > div:first-child { display:flex; justify-content:space-between; font-size:14px; }
.bmo-credit-progress > small,.bmo-muted-note { color:#79879b; font-size:14px; }
.bmo-terms-layout { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bmo-term-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.bmo-term-grid > a,.bmo-term-grid > div { border:1px solid #e1e8f1; border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:4px; min-height:100px; }
.bmo-term-grid span { width:34px; height:34px; border-radius:9px; background:#edf5ff; color:var(--bmo-primary); display:grid; place-items:center; }
.bmo-term-grid .bmo-icon { width:18px; height:18px; }
.bmo-term-grid strong { font-size:14px; }
.bmo-term-grid small { color:#7d899c; font-size:12px; }

/* Forms inside portal */
.bmo-dashboard-route .bmo-field input,.bmo-dashboard-route .bmo-field select,.bmo-dashboard-route .bmo-field textarea { min-height:40px; font-size:12px; border-radius:7px; }
.bmo-dashboard-route .bmo-field textarea { min-height:82px; }
.bmo-dashboard-route .bmo-field > span:first-child { font-size:14px; }
.bmo-dashboard-route .bmo-form-grid { gap:10px; }
.bmo-form-actions { display:flex; gap:8px; }
.bmo-check { display:flex; align-items:flex-start; gap:7px; font-size:12px; color:#647289; }
.bmo-check input { margin-top:3px; accent-color:var(--bmo-primary); }

@media (max-width: 1350px) {
    .bmo-dashboard-overview--five { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .bmo-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .bmo-mini-products { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .bmo-order-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-address-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-invoice-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Catalogue sorting and permanent stock-priority states. */
.bmo-catalog-sort { display:flex; align-items:center; gap:8px; margin-inline-start:auto; }
.bmo-catalog-sort label { font-size:12px; color:#66768c; font-weight:700; white-space:nowrap; }
.bmo-catalog-sort select { min-width:150px; height:38px; border:1px solid #dbe3ed; border-radius:9px; background:#fff; padding:0 10px; color:#263750; font-family:inherit; font-size:12px; font-weight:700; outline:0; }
.bmo-catalog-sort select:focus { border-color:#9dbce3; box-shadow:0 0 0 3px rgba(78,132,196,.10); }
.bmo-product-card.is-out-of-stock { background:#f5f6f8; border-color:#dfe3e8; }
.bmo-product-card.is-out-of-stock:hover { border-color:#d2d7de; box-shadow:0 8px 20px rgba(45,55,70,.05); }
.bmo-product-card.is-out-of-stock .bmo-product-card__media,
.bmo-product-card.is-out-of-stock .bmo-product-card__body { background:#f5f6f8; }
.bmo-product-card.is-out-of-stock .bmo-product-card__media img { opacity:.72; filter:saturate(.65); }
.bmo-product-card.is-out-of-stock .bmo-product-card__title { color:#5d6672; }
.bmo-product-card.is-out-of-stock .bmo-product-price strong,
.bmo-product-card.is-out-of-stock .bmo-product-stock strong { color:#68717d; }

@media (max-width: 1100px) {
    .bmo-portal-shell { --bmo-sidebar-width:220px; }
    .bmo-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-home-grid,.bmo-profile-body-grid { grid-template-columns:1fr; }
    .bmo-profile-summary-grid { grid-template-columns:1fr 1fr; }
    .bmo-profile-summary-grid > :first-child { grid-column:1/-1; }
    .bmo-option-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-product-detail { grid-template-columns:1fr 1fr; }
    .bmo-credit-layout { grid-template-columns:1fr 1fr; }
    .bmo-credit-layout > :last-child { grid-column:1/-1; }
}
@media (max-width: 900px) {
    .bmo-portal-shell { display:block; }
    .bmo-portal-shell .bmo-dashboard-sidebar { width:270px; right:-290px; }
    .bmo-portal-shell .bmo-dashboard-sidebar.is-open { right:0; }
    .bmo-dashboard-user { min-width:0; }
    .bmo-dashboard-user span,.bmo-user-logout { display:none; }
    .bmo-dashboard-actions > a { display:grid; }
    .bmo-dashboard-content { padding:18px 14px 35px; }
    .bmo-module-head { flex-direction:column; }
    .bmo-catalog-layout,.bmo-single-product-layout,.bmo-quick-order-layout,.bmo-cart-layout,.bmo-checkout-layout,.bmo-ticket-layout { grid-template-columns:1fr; }
    .bmo-filter-panel,.bmo-buy-card,.bmo-order-summary-card,.bmo-cart-summary,.bmo-support-agent { position:static; }
    .bmo-filter-panel { order:1; }
    .bmo-catalog-main { order:2; }
    .bmo-product-detail { grid-template-columns:1fr; }
    .bmo-product-main-image { min-height:300px; }
    .bmo-order-summary-card,.bmo-cart-summary { order:2; }
    .bmo-quick-order-main,.bmo-cart-main,.bmo-checkout-main { order:1; }
    .bmo-profile-footer-grid,.bmo-terms-layout { grid-template-columns:1fr; }
    .bmo-ticket-layout > aside { display:none; }
}
@media (max-width: 700px) {
    .bmo-dashboard-overview--five,.bmo-dashboard-overview--four { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-product-grid,.bmo-mini-products,.bmo-profile-summary-grid,.bmo-address-grid,.bmo-address-choice-grid,.bmo-option-grid,.bmo-credit-layout,.bmo-term-grid { grid-template-columns:1fr; }
    .bmo-profile-summary-grid > :first-child,.bmo-credit-layout > :last-child { grid-column:auto; }
    .bmo-order-detail-grid { grid-template-columns:1fr; }
    .bmo-order-note-layout { grid-template-columns:1fr; }
    .bmo-quick-result { grid-template-columns:42px minmax(0,1fr) 110px; }
    .bmo-quick-result__stock,.bmo-quick-result__price { display:none; }
    .bmo-product-benefits { grid-template-columns:1fr; }
    .bmo-product-benefits > div { border-left:0; border-bottom:1px solid #e0e9f5; }
    .bmo-product-benefits > div:last-child { border-bottom:0; }
    .bmo-checkout-steps { overflow:auto; justify-content:flex-start; padding-bottom:6px; }
    .bmo-checkout-steps i { width:30px; flex:0 0 30px; }
    .bmo-checkout-submit { flex-direction:column; align-items:stretch; }
    .bmo-invoice-info-grid { grid-template-columns:1fr; }
    .bmo-order-filters { grid-template-columns:1fr; }
    .bmo-ticket-message { max-width:95%; }
    .bmo-ticket-thread__head { flex-direction:column; }
    .bmo-ticket-thread__head > div:last-child { align-items:flex-start; }
    .bmo-ticket-reply { grid-template-columns:minmax(0,1fr) auto; }
    .bmo-ticket-reply textarea { grid-column:1/-1; }
    .bmo-invoice-parties { grid-template-columns:1fr; }
    .bmo-invoice-sheet { padding:16px; }
}
@media (max-width: 480px) {
    .bmo-dashboard-overview--five,.bmo-dashboard-overview--four { grid-template-columns:1fr 1fr; }
    .bmo-stat-card { min-width:0; }
    .bmo-stat-card small { white-space:normal; }
    .bmo-product-card__media { height:180px; }
    .bmo-quick-search { grid-template-columns:1fr; }
    .bmo-quick-result { grid-template-columns:38px minmax(0,1fr); }
    .bmo-quick-add-form { grid-column:1/-1; }
    .bmo-cart-toolbar { align-items:flex-start; flex-direction:column; }
    .bmo-credit-metrics { grid-template-columns:1fr; }
    .bmo-invoice-sheet > header { flex-direction:column; }
    .bmo-invoice-number { text-align:right; }
}

@media print {
    body.bmo-dashboard-route { background:#fff!important; }
    .bmo-dashboard-sidebar,.bmo-dashboard-topbar,.bmo-no-print,.bmo-portal-alert { display:none!important; }
    .bmo-dashboard-app { display:block!important; }
    .bmo-dashboard-content { padding:0!important; max-width:none!important; }
    .bmo-invoice-sheet { border:0!important; box-shadow:none!important; max-width:none!important; }
}
.bmo-address-card__actions { gap:12px; align-items:center; }
.bmo-address-card__actions a { color:var(--bmo-primary); font-size:12px; text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.bmo-address-card__actions a .bmo-icon { width:14px; height:14px; }
.bmo-empty-state--compact { min-height:150px; padding:24px; }

/* v0.3.0 — AJAX catalog/cart + responsive hardening */
.bmo-ajax-status { min-height:1.4em; color:var(--bmo-muted); font-size:12px; display:inline-flex; align-items:center; gap:6px; }
.bmo-ajax-status.is-loading::before { content:""; width:12px; height:12px; border:2px solid #d8e2ef; border-top-color:var(--bmo-primary); border-radius:50%; animation:bmo-spin .7s linear infinite; }
.bmo-infinite-loader { min-height:64px; padding:18px 10px; display:flex; align-items:center; justify-content:center; gap:8px; color:var(--bmo-muted); text-align:center; }
.bmo-infinite-loader[hidden] { display:none!important; }
.bmo-spinner { width:18px; height:18px; border:2px solid #d8e2ef; border-top-color:var(--bmo-primary); border-radius:50%; animation:bmo-spin .7s linear infinite; }
@keyframes bmo-spin { to { transform:rotate(360deg); } }

.bmo-smart-cart {
    --bmo-cart-stepper-width:124px;
    width:100%;
    min-width:0;
    margin-top:auto;
}
.bmo-smart-cart button { font:inherit; -webkit-appearance:none; appearance:none; }
.bmo-smart-cart [hidden] { display:none!important; }
.bmo-smart-cart__add {
    width:100%;
    min-height:46px;
    border:1px solid transparent;
    border-radius:11px;
    padding:9px 15px;
    background:linear-gradient(180deg,#1677ff 0%,#0867ef 100%);
    color:#fff;
    display:flex;
    direction:rtl;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:12px !important;
    font-weight:900;
    line-height:1.25;
    cursor:pointer;
    box-shadow:0 7px 18px rgba(8,104,247,.18);
    transition:opacity .12s ease,transform .12s ease,box-shadow .18s ease,background .18s ease;
}
.bmo-smart-cart__add:hover { background:linear-gradient(180deg,#0f70f7 0%,#005fe9 100%); box-shadow:0 9px 22px rgba(8,104,247,.24); transform:translateY(-1px); }
.bmo-smart-cart__add:active { transform:translateY(0) scale(.985); }
.bmo-smart-cart__add.is-leaving { opacity:0; transform:scale(.96); pointer-events:none; }
.bmo-smart-cart__add-label { min-width:0; }
.bmo-smart-cart__add-icon { display:inline-flex; align-items:center; justify-content:center; line-height:0; }
.bmo-smart-cart__add-icon .bmo-icon { width:19px; height:19px; stroke-width:2; }

.bmo-smart-cart__in-cart {
    width:100%;
    min-width:0;
    min-height:46px;
    direction:rtl;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.bmo-smart-cart__in-cart:not([hidden]) { display:flex; animation:bmo-cart-enter .18s ease both; }
@keyframes bmo-cart-enter { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:none; } }

.bmo-smart-cart__controller {
    direction:ltr;
    flex:0 0 var(--bmo-cart-stepper-width);
    width:var(--bmo-cart-stepper-width);
    min-width:var(--bmo-cart-stepper-width);
    min-height:44px;
    display:grid;
    grid-template-columns:40px minmax(42px,1fr) 40px;
    align-items:stretch;
    overflow:hidden;
    border:1px solid #d8e2ee;
    border-radius:12px;
    background:#fff;
    box-shadow:0 4px 13px rgba(39,61,92,.08);
}
.bmo-smart-cart__control {
    border:0;
    background:#f8fbff;
    color:var(--bmo-primary);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    min-width:0;
    min-height:44px;
    line-height:0;
    transition:background .15s ease,color .15s ease,opacity .15s ease;
}
.bmo-smart-cart__control:hover { background:#edf5ff; }
.bmo-smart-cart__control:active { background:#e6f1ff; }
.bmo-smart-cart__control:disabled,.bmo-smart-cart__add:disabled { opacity:.48; cursor:not-allowed; }
.bmo-smart-cart__control .bmo-icon { width:17px; height:17px; display:block; margin:auto; }
.bmo-smart-cart__decrease { grid-column:1; }
.bmo-smart-cart__quantity-wrap { grid-column:2; }
.bmo-smart-cart__increase { grid-column:3; }
.bmo-smart-cart__decrease.is-remove { color:#e04753; background:#fff9fa; }
.bmo-smart-cart__decrease.is-remove:hover { background:#fff0f2; }
.bmo-smart-cart__decrease [data-role="trash"],
.bmo-smart-cart__decrease [data-role="minus"] { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.bmo-smart-cart__quantity-wrap {
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    line-height:1.05;
    border-right:1px solid #e4ebf4;
    border-left:1px solid #e4ebf4;
    min-width:0;
    background:#fff;
}
.bmo-smart-cart__quantity-wrap strong { font-size:13px; color:#20324d; font-weight:900; }
.bmo-smart-cart__quantity-wrap small { font-size:8px; color:#c76b09; margin-top:3px; font-weight:800; }

.bmo-smart-cart__cart-info {
    direction:rtl;
    min-width:0;
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:1px;
    line-height:1.45;
}
.bmo-smart-cart__cart-title { color:#263751; font-size:12px; font-weight:900; white-space:nowrap; }
.bmo-smart-cart__remove-all {
    border:0;
    background:transparent;
    color:var(--bmo-primary);
    padding:1px 0;
    margin:0;
    min-height:0;
    width:auto;
    font-size:11px !important;
    font-weight:800;
    line-height:1.4;
    cursor:pointer;
    text-decoration:none;
}
.bmo-smart-cart__remove-all:hover { color:#0058d5; text-decoration:underline; text-underline-offset:3px; }
.bmo-smart-cart.is-syncing .bmo-smart-cart__quantity-wrap { opacity:.70; }
.bmo-smart-cart.is-error { animation:bmo-cart-shake .25s linear 1; }
@keyframes bmo-cart-shake { 25%{transform:translateX(2px)} 75%{transform:translateX(-2px)} }

.bmo-cart-toast { position:fixed; z-index:100000; left:22px; bottom:22px; max-width:min(360px,calc(100vw - 30px)); padding:11px 14px; background:#223248; color:#fff; border-radius:9px; box-shadow:0 14px 34px rgba(23,42,68,.2); font-size:12px; line-height:1.7; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease,transform .2s ease,visibility .2s; }
.bmo-cart-toast.is-visible { opacity:1; visibility:visible; transform:none; }
.bmo-cart-toast.is-error { background:#a93842; }

.bmo-product-card .bmo-smart-cart { padding-top:8px; }
.bmo-quick-result .bmo-smart-cart { max-width:260px; justify-self:stretch; }
.bmo-buy-card .bmo-smart-cart { margin:12px 0 8px; }


/* v0.3.2 — unified cart CTA/status layout in catalog and quick order. */
.bmo-product-card .bmo-smart-cart { padding-top:10px; }
.bmo-product-card .bmo-smart-cart__in-cart { padding-top:1px; }
.bmo-quick-result__action { min-width:0; }
.bmo-quick-result__action .bmo-smart-cart__add { min-height:42px; padding:8px 12px; border-radius:9px; font-size:12px; }
.bmo-quick-result__action .bmo-smart-cart__in-cart { gap:8px; }
.bmo-quick-result__action .bmo-smart-cart__cart-title { font-size:11px; }
.bmo-quick-result__action .bmo-smart-cart__remove-all { font-size:10px; }
.bmo-quick-result__action .bmo-smart-cart__controller { --bmo-cart-stepper-width:120px; min-height:40px; grid-template-columns:38px minmax(42px,1fr) 38px; }
.bmo-quick-result__action .bmo-smart-cart__control { min-height:40px; }

/* Prevent nested grids/flex items from forcing horizontal overflow. */
.bmo-dashboard-app,.bmo-dashboard-main,.bmo-dashboard-content,.bmo-panel,.bmo-catalog-main,.bmo-quick-order-main,.bmo-cart-main,.bmo-checkout-main,.bmo-product-card,.bmo-product-card__body,.bmo-module-head > * { min-width:0; max-width:100%; }
.bmo-dashboard-content img,.bmo-panel img { max-width:100%; height:auto; }
.bmo-dashboard-content input,.bmo-dashboard-content select,.bmo-dashboard-content textarea,.bmo-dashboard-content button { max-width:100%; }

@media (max-width: 1280px) and (min-width: 901px) {
    .bmo-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .bmo-mini-products { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 900px) {
    body.bmo-dashboard-route.bmo-sidebar-open { overflow:hidden; }
    .bmo-dashboard-sidebar { box-shadow:none; }
    .bmo-dashboard-route.bmo-sidebar-open::after {
        content:"";
        position:fixed;
        inset:0;
        background:rgba(26,42,64,.25);
        z-index:30;
    }
    .bmo-dashboard-sidebar { z-index:40; }
    .bmo-dashboard-topbar { padding:10px 14px; gap:10px; }
    .bmo-dashboard-content { width:100%; padding:16px 12px 32px; overflow:hidden; }
    .bmo-module-head { gap:10px; }
    .bmo-module-actions,.bmo-module-head > .bmo-button { width:100%; }
    .bmo-module-head > .bmo-button { justify-content:center; }
    .bmo-catalog-layout { gap:12px; }
    .bmo-filter-panel { width:100%; }
    .bmo-filter-section { padding:11px 12px; }
    .bmo-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-mini-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bmo-quick-result { grid-template-columns:48px minmax(0,1fr) minmax(220px,250px); }
    .bmo-quick-result__stock,.bmo-quick-result__price { display:none; }
    .bmo-order-filters { grid-template-columns:minmax(0,1fr) 170px; }
    .bmo-order-filters > noscript { grid-column:1/-1; }
}

@media (max-width: 782px) {
    /* Orders and invoices become readable card rows rather than a horizontally scrolling desktop table. */
    .bmo-table-wrap[data-bmo-orders-table],.bmo-table-wrap[data-bmo-invoices-table] { overflow:visible; }
    .bmo-table-wrap[data-bmo-orders-table] .bmo-data-table,.bmo-table-wrap[data-bmo-invoices-table] .bmo-data-table { min-width:0; display:block; background:transparent; }
    .bmo-table-wrap[data-bmo-orders-table] thead,.bmo-table-wrap[data-bmo-invoices-table] thead { display:none; }
    .bmo-table-wrap[data-bmo-orders-table] tbody,.bmo-table-wrap[data-bmo-invoices-table] tbody { display:grid; gap:10px; }
    .bmo-table-wrap[data-bmo-orders-table] tr,.bmo-table-wrap[data-bmo-invoices-table] tr { display:block; border:1px solid #e1e8f1; border-radius:11px; background:#fff; overflow:hidden; }
    .bmo-table-wrap[data-bmo-orders-table] td,.bmo-table-wrap[data-bmo-invoices-table] td { width:100%; min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #edf1f6; padding:9px 11px; text-align:left; font-size:12px; }
    .bmo-table-wrap[data-bmo-orders-table] td:last-child,.bmo-table-wrap[data-bmo-invoices-table] td:last-child { border-bottom:0; }
    .bmo-table-wrap[data-bmo-orders-table] td::before,.bmo-table-wrap[data-bmo-invoices-table] td::before { content:attr(data-label); flex:0 0 auto; color:#718097; font-size:11px; font-weight:800; text-align:right; }
    .bmo-table-wrap[data-bmo-orders-table] .bmo-table-actions,.bmo-table-wrap[data-bmo-invoices-table] .bmo-table-actions { white-space:normal; flex-wrap:wrap; justify-content:flex-end; }
    .bmo-order-filters { grid-template-columns:1fr; }
    .bmo-order-filters select { width:100%; }
    .bmo-panel__head { flex-direction:column; align-items:stretch; }
    .bmo-catalog-toolbar { gap:8px; flex-wrap:wrap; }
    .bmo-quick-result { grid-template-columns:42px minmax(0,1fr); padding:10px; }
    .bmo-quick-result .bmo-smart-cart { grid-column:1/-1; max-width:none; }
    .bmo-smart-cart__add { min-height:42px; }
    .bmo-smart-cart__controller { min-height:44px; }
}

@media (max-width: 600px) {
    .bmo-dashboard-content { padding:12px 9px 28px; }
    .bmo-module-head h1 { font-size:19px; }
    .bmo-module-head p { font-size:11px; }
    .bmo-product-grid,.bmo-mini-products { grid-template-columns:1fr; }
    .bmo-product-card { border-radius:10px; }
    .bmo-product-card__media { height:190px; }
    .bmo-product-card__media img { max-height:165px; }
    .bmo-filter-panel { border-radius:10px; }
    .bmo-quick-search { grid-template-columns:1fr; }
    .bmo-quick-search .bmo-button { width:100%; }
    .bmo-dashboard-overview--five,.bmo-dashboard-overview--four { grid-template-columns:1fr; }
    .bmo-option-grid,.bmo-address-choice-grid { grid-template-columns:1fr; }
    .bmo-cart-toast { left:12px; right:12px; bottom:12px; max-width:none; }
    .bmo-infinite-loader { min-height:56px; }
}
@media (max-width: 782px) {
    .bmo-table-wrap[data-bmo-selected-cart-table] { overflow:visible; }
    .bmo-table-wrap[data-bmo-selected-cart-table] .bmo-data-table { min-width:0; display:block; background:transparent; }
    .bmo-table-wrap[data-bmo-selected-cart-table] thead { display:none; }
    .bmo-table-wrap[data-bmo-selected-cart-table] tbody { display:grid; gap:10px; }
    .bmo-table-wrap[data-bmo-selected-cart-table] tr { display:block; border:1px solid #e1e8f1; border-radius:11px; background:#fff; overflow:hidden; }
    .bmo-table-wrap[data-bmo-selected-cart-table] td { width:100%; min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #edf1f6; padding:9px 11px; text-align:left; font-size:12px; }
    .bmo-table-wrap[data-bmo-selected-cart-table] td:last-child { border-bottom:0; }
    .bmo-table-wrap[data-bmo-selected-cart-table] td::before { content:attr(data-label); flex:0 0 auto; color:#718097; font-size:11px; font-weight:800; text-align:right; }
}

@media (max-width: 767px) {
    .bmo-catalog-toolbar { align-items:stretch; }
    .bmo-catalog-sort { width:100%; margin-inline-start:0; order:3; }
    .bmo-catalog-sort label { flex:0 0 auto; }
    .bmo-catalog-sort select { flex:1 1 auto; min-width:0; width:100%; }
}

.bmo-quick-result.is-out-of-stock { background:#f5f6f8; border-color:#e0e3e8; color:#69727e; }
.bmo-quick-result.is-out-of-stock img { opacity:.70; filter:saturate(.65); }
.bmo-quick-result.is-out-of-stock .bmo-quick-result__name strong,
.bmo-quick-result.is-out-of-stock .bmo-quick-result__price { color:#626b77; }
.bmo-unavailable-label { display:inline-flex; min-height:34px; align-items:center; justify-content:center; padding:5px 12px; border-radius:8px; background:#e6e9ed; color:#727b86; font-size:12px; font-weight:800; }

/* v0.3.1 mobile cart cards and compact quick-order actions. */
@media (max-width: 782px) {
    .bmo-table-wrap[data-bmo-cart-table] { overflow:visible; }
    .bmo-table-wrap[data-bmo-cart-table] .bmo-data-table { min-width:0; display:block; background:transparent; }
    .bmo-table-wrap[data-bmo-cart-table] thead { display:none; }
    .bmo-table-wrap[data-bmo-cart-table] tbody { display:grid; gap:10px; }
    .bmo-table-wrap[data-bmo-cart-table] tr { display:block; border:1px solid #e1e8f1; border-radius:11px; background:#fff; overflow:hidden; }
    .bmo-table-wrap[data-bmo-cart-table] td { width:100%; min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #edf1f6; padding:9px 11px; text-align:left; font-size:12px; box-sizing:border-box; }
    .bmo-table-wrap[data-bmo-cart-table] td:last-child { border-bottom:0; }
    .bmo-table-wrap[data-bmo-cart-table] td::before { content:attr(data-label); flex:0 0 auto; color:#718097; font-size:11px; font-weight:800; text-align:right; }
    .bmo-table-wrap[data-bmo-cart-table] .bmo-table-product { min-width:0; justify-content:flex-end; text-align:left; }
    .bmo-table-wrap[data-bmo-cart-table] .bmo-table-product strong { overflow-wrap:anywhere; }
    .bmo-table-wrap[data-bmo-cart-table] .bmo-qty-input { width:84px; max-width:45vw; }
    .bmo-quick-result__action { grid-column:1/-1; width:100%; }
    .bmo-quick-result__action .bmo-smart-cart,
    .bmo-quick-result__action .bmo-button,
    .bmo-quick-result__action .bmo-unavailable-label { width:100%; max-width:none; box-sizing:border-box; }
}

/* v0.3.1 responsive support history. */
@media (max-width: 782px) {
    .bmo-table-wrap[data-bmo-tickets-table] { overflow:visible; }
    .bmo-table-wrap[data-bmo-tickets-table] .bmo-data-table { min-width:0; display:block; background:transparent; }
    .bmo-table-wrap[data-bmo-tickets-table] thead { display:none; }
    .bmo-table-wrap[data-bmo-tickets-table] tbody { display:grid; gap:10px; }
    .bmo-table-wrap[data-bmo-tickets-table] tr { display:block; border:1px solid #e1e8f1; border-radius:11px; background:#fff; overflow:hidden; }
    .bmo-table-wrap[data-bmo-tickets-table] td { width:100%; min-height:40px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #edf1f6; padding:9px 11px; box-sizing:border-box; text-align:left; }
    .bmo-table-wrap[data-bmo-tickets-table] td:last-child { border-bottom:0; }
    .bmo-table-wrap[data-bmo-tickets-table] td::before { content:attr(data-label); flex:0 0 auto; color:#718097; font-size:11px; font-weight:800; text-align:right; }
}

/* v0.3.2 cart controls: responsive state after an item has been added. */
@media (max-width: 782px) {
    .bmo-quick-result__action .bmo-smart-cart { max-width:none; }
    .bmo-quick-result__action .bmo-smart-cart__in-cart { justify-content:flex-start; }
    .bmo-quick-result__action .bmo-smart-cart__cart-info { flex:0 1 auto; min-width:92px; }
}
@media (max-width: 420px) {
    .bmo-smart-cart__in-cart { gap:8px; }
    .bmo-smart-cart__controller { --bmo-cart-stepper-width:118px; }
    .bmo-smart-cart__cart-title { font-size:11px; }
    .bmo-smart-cart__remove-all { font-size:10.5px; }
}


/* v0.4.0 — cash/cheque wholesale pricing and terms workflow */
.bmo-price-stack { display:grid; gap:5px; margin-top:auto; min-width:0; }
.bmo-price-line { display:flex; align-items:baseline; justify-content:space-between; gap:9px; min-width:0; }
.bmo-price-line span { color:#7a8799; font-size:14px; font-weight:700; white-space:nowrap; }
.bmo-price-line strong { color:#0b68e8; font-size:14px; font-weight:900; text-align:left; overflow-wrap:anywhere; }
.bmo-price-line--terms { padding-top:5px; border-top:1px dashed #dbe5f1; }
.bmo-price-line--terms span { color:#9a6817; }
.bmo-price-line--terms strong { color:#b56a00; }
.bmo-price-line strong.is-missing { color:#8a96a8; font-size:10px; }
.bmo-price-sync-note { display:block; color:#9a6a16; background:#fff7e7; border:1px solid #f4dfb4; border-radius:7px; padding:6px 8px; font-size:10px; line-height:1.7; }
.bmo-quick-result .bmo-price-stack { min-width:150px; margin:0; }
.bmo-quick-result .bmo-price-line strong { font-size:11px; }

.bmo-terms-banner { position:sticky; top:8px; z-index:35; display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; padding:10px 13px; border:1px solid #f0c067; border-radius:10px; background:#fff4dd; color:#7e5000; box-shadow:0 7px 22px rgba(98,63,0,.08); font-size:11px; font-weight:750; }
.bmo-terms-banner--danger { border-color:#ef9e9e; background:#fff0f0; color:#9e2929; }
.bmo-terms-banner a { color:inherit; font-weight:900; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
.bmo-terms-banner .bmo-icon { width:18px; height:18px; flex:0 0 18px; }

.bmo-terms-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:10px; }
.bmo-terms-kpis > div { border:1px solid #e2e9f2; background:#fbfcfe; border-radius:10px; padding:11px; display:flex; flex-direction:column; gap:5px; min-width:0; }
.bmo-terms-kpis small { color:#77869a; font-size:10px; }
.bmo-terms-kpis strong { color:#1d2b3e; font-size:12px; overflow-wrap:anywhere; }
.bmo-terms-admin-note { margin-top:11px; padding:11px 13px; border-right:3px solid #e49b24; border-radius:8px; background:#fff9ec; }
.bmo-terms-admin-note strong { font-size:11px; }
.bmo-terms-admin-note p { margin:5px 0 0; color:#5d6879; font-size:10px; line-height:1.9; }
.bmo-terms-rules-text { border:1px solid #e1e8f1; background:#fbfcfe; border-radius:10px; padding:14px; color:#405068; font-size:14px; line-height:2; margin-bottom:12px; }
.bmo-terms-rules-text p:first-child { margin-top:0; }
.bmo-terms-rules-text p:last-child { margin-bottom:0; }
.bmo-terms-request-form,.bmo-terms-reply-form { display:grid; gap:10px; }
.bmo-terms-agreement { align-items:flex-start; padding:10px 12px; border:1px solid #dfe7f1; border-radius:9px; background:#fafcff; }
.bmo-terms-agreement input { margin-top:3px; }
.bmo-terms-thread { max-width:900px; margin:0; padding:5px 0 12px; }

.bmo-option-grid--purchase { grid-template-columns:repeat(2,minmax(0,1fr)); }
.bmo-option-grid--purchase .bmo-option-card.is-disabled { opacity:.55; cursor:not-allowed; filter:saturate(.65); }
.bmo-terms-checkout-link { margin:7px 0 0; padding:8px 10px; border-radius:8px; background:#fff7e6; color:#8b5b0a; font-size:10px; }
.bmo-terms-checkout-link a { color:#0b68e8; font-weight:850; }
.bmo-terms-checkout-box { margin-top:10px; border:1px solid #f0d09b; border-radius:10px; background:#fffbf3; padding:12px; }
.bmo-terms-checkout-box[hidden],.bmo-payment-group[hidden] { display:none !important; }
.bmo-terms-checkout-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.55fr); gap:10px; align-items:end; }
.bmo-terms-limit { display:flex; flex-direction:column; gap:4px; border:1px solid #efd8ae; border-radius:8px; background:#fff; padding:9px 10px; }
.bmo-terms-limit small { color:#8a7351; font-size:9.5px; }
.bmo-terms-limit strong { color:#9b6200; font-size:11.5px; }
.bmo-payment-group { display:grid; gap:8px; }
.bmo-bank-receipt-step { display:grid; gap:12px; margin-top:12px; padding:14px; border:1px solid #d9e6f7; border-radius:12px; background:#f8fbff; }
.bmo-bank-receipt-step[hidden] { display:none !important; }
.bmo-bank-receipt-step__head { display:flex; align-items:center; gap:10px; min-width:0; }
.bmo-bank-receipt-step__number { width:30px; height:30px; flex:0 0 30px; display:grid; place-items:center; border-radius:50%; background:var(--bmo-primary); color:#fff; font-size:12px; font-weight:900; }
.bmo-bank-receipt-step__head > div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.bmo-bank-receipt-step__head strong { color:#20324d; font-size:13px; font-weight:900; }
.bmo-bank-receipt-step__head small { color:var(--bmo-muted); font-size:11px; line-height:1.8; }
.bmo-bank-receipt-upload { background:#fff; }

.bmo-invoice-terms { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin:14px 0 0; padding:9px 11px; border:1px solid #edc985; border-radius:8px; background:#fff8e8; color:#76510d; font-size:12px; }
.bmo-invoice-terms.is-cash { border-color:#cfe0f5; background:#f5f9ff; color:#315c8e; }
.bmo-invoice-terms strong { font-size:14px; }

@media (max-width:900px) {
    .bmo-terms-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .bmo-terms-banner { top:6px; align-items:flex-start; flex-wrap:wrap; padding:9px 10px; }
    .bmo-terms-banner a { margin-right:auto; }
    .bmo-terms-kpis,.bmo-option-grid--purchase,.bmo-terms-checkout-fields { grid-template-columns:1fr; }
    .bmo-price-line { gap:6px; }
    .bmo-price-line span { font-size:12px; }
    .bmo-price-line strong { font-size:12px; }
    .bmo-quick-result .bmo-price-stack { width:100%; min-width:0; }
    .bmo-invoice-terms { align-items:flex-start; flex-direction:column; }
}
.bmo-status--approved,.bmo-status--active { background:#eaf9f3; color:#13966f; }
.bmo-status--review { background:#eef5ff; color:#1268d9; }
.bmo-status--rejected,.bmo-status--revoked,.bmo-status--expired { background:#fff0f1; color:#d83f4a; }
.bmo-terms-banner > span { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.bmo-terms-banner > span strong { font-size:14px; }
.bmo-terms-banner > span small { font-size:12px; line-height:1.6; font-weight:700; color:inherit; }

/* =========================================================
   v0.4.1 — checkout/cart reliability + AJAX address modal
   Uses the user-provided frontend.css as the visual baseline.
   ========================================================= */

/* Quick order: reserve a real, non-overlapping column for the two wholesale prices. */
@media (min-width: 901px) {
    .bmo-quick-result {
        grid-template-columns:
            48px
            minmax(260px, 1.55fr)
            minmax(95px, 110px)
            minmax(180px, 210px)
            minmax(250px, 310px);
        gap: 12px;
    }
    .bmo-quick-result__price {
        min-width: 0;
        width: 100%;
        display: block;
        position: relative;
        z-index: 2;
        padding-inline: 4px;
    }
    .bmo-quick-result__price .bmo-price-stack {
        width: 100%;
        min-width: 0;
        margin: 0;
    }
    .bmo-quick-result__price .bmo-price-line {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0,1fr) auto;
        align-items: baseline;
        gap: 8px;
    }
    .bmo-quick-result__price .bmo-price-line strong {
        white-space: nowrap;
        overflow: visible;
    }
    .bmo-quick-result__action {
        min-width: 0;
        width: 100%;
        position: relative;
        z-index: 1;
    }
    .bmo-quick-result__action .bmo-smart-cart {
        width: 100%;
        max-width: 250px;
        margin: 0;
        justify-self: center;
    }
}

/* Keep wholesale prices visible and readable on tablet/mobile instead of hiding them. */
@media (max-width: 900px) and (min-width: 701px) {
    .bmo-quick-result {
        grid-template-columns: 48px minmax(0,1fr) minmax(165px,200px) minmax(220px,250px);
        gap: 9px;
    }
    .bmo-quick-result__stock { display: none; }
    .bmo-quick-result__price {
        display: block;
        min-width: 0;
        width: 100%;
    }
    .bmo-quick-result__action {
        min-width: 0;
        width: 100%;
    }
}
@media (max-width: 700px) {
    .bmo-quick-result__price {
        display: block;
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
        padding-top: 4px;
    }
    .bmo-quick-result__price .bmo-price-stack {
        width: 100%;
        min-width: 0;
    }
    .bmo-quick-result__action {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* Checkout address modal. */
body.bmo-modal-open { overflow: hidden !important; }
.bmo-modal[hidden] { display: none !important; }
.bmo-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: grid;
    place-items: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .14s ease, visibility .14s ease;
}
.bmo-modal.is-open {
    opacity: 1;
    visibility: visible;
}
.bmo-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(18, 31, 49, .48);
    backdrop-filter: blur(2px);
}
.bmo-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(720px, 100%);
    max-height: min(88vh, 760px);
    overflow: auto;
    background: #fff;
    border: 1px solid #dfe7f1;
    border-radius: 16px;
    box-shadow: 0 28px 80px rgba(20, 41, 70, .22);
    transform: translateY(8px) scale(.985);
    transition: transform .16s ease;
}
.bmo-modal.is-open .bmo-modal__dialog { transform: none; }
.bmo-modal__head {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 17px 18px;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid #e8edf4;
}
.bmo-modal__head h2 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 16px;
}
.bmo-modal__head h2 .bmo-icon {
    width: 19px;
    height: 19px;
    color: var(--bmo-primary);
}
.bmo-modal__head p {
    margin: 4px 0 0;
    color: var(--bmo-muted);
    font-size: 12px;
}
.bmo-modal__close {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border: 1px solid #dfe6ef;
    border-radius: 9px;
    background: #fff;
    color: #66758a;
    display: grid;
    place-items: center;
    padding: 0;
    font-size: 23px;
    line-height: 1;
}
.bmo-modal__close:hover { background: #f6f9fd; color: #263750; }
.bmo-modal__body { padding: 18px; }
.bmo-modal__status {
    min-height: 22px;
    margin-top: 10px;
    font-size: 12px;
    font-weight: 750;
}
.bmo-modal__status.is-success { color: var(--bmo-success); }
.bmo-modal__status.is-error { color: var(--bmo-danger); }
.bmo-modal__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #edf1f5;
}
.bmo-address-modal-trigger {
    width: auto !important;
    flex: 0 0 auto;
}
.bmo-address-ajax-form .bmo-field textarea {
    min-height: 86px;
}
.bmo-address-choice-grid[aria-busy="true"] {
    opacity: .65;
    pointer-events: none;
}

@media (max-width: 640px) {
    .bmo-modal {
        padding: 10px;
        align-items: end;
    }
    .bmo-modal__dialog {
        width: 100%;
        max-height: 92vh;
        border-radius: 15px 15px 0 0;
    }
    .bmo-modal__head { padding: 14px; }
    .bmo-modal__body { padding: 14px; }
    .bmo-modal__actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }
    .bmo-modal__actions .bmo-button { width: 100% !important; }
    .bmo-address-modal-trigger { width: 100% !important; }
}



/* v0.4.2 — dismissible conditional-purchase notice.
   It is intentionally the first normal-flow section of the module page, not a
   sticky/fixed banner. Dismissal is persisted server-side for this login
   session and resets automatically on the next login session. */
.bmo-terms-banner {
    position: relative;
    top: auto;
    z-index: 1;
    width: 100%;
    margin: 0 0 16px;
    padding: 12px 13px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    transition: opacity .16s ease, transform .16s ease, max-height .18s ease, margin .18s ease, padding .18s ease;
    max-height: 120px;
    overflow: hidden;
}
.bmo-terms-banner.is-dismissing { opacity: .58; pointer-events: none; }
.bmo-terms-banner.is-dismissed {
    opacity: 0;
    transform: translateY(-5px);
    max-height: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-width: 0;
}
.bmo-terms-banner__icon {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
}
.bmo-terms-banner__icon .bmo-icon { width: 20px; height: 20px; }
.bmo-terms-banner__copy {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.bmo-terms-banner__copy strong { font-size: 14px; }
.bmo-terms-banner__copy small { font-size: 12px; line-height: 1.65; font-weight: 700; color: inherit; }
.bmo-terms-banner__actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 7px;
    margin-inline-start: auto;
}
.bmo-terms-banner__details {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 32px;
    padding: 5px 8px;
    border-radius: 7px;
    color: inherit;
    font-size: 11px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}
.bmo-terms-banner__details:hover { background: rgba(255,255,255,.55); }
.bmo-terms-banner__details .bmo-icon { width: 15px; height: 15px; }
.bmo-terms-banner__close {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(104, 72, 17, .18);
    border-radius: 8px;
    background: rgba(255,255,255,.60);
    color: inherit;
    cursor: pointer;
    transition: background .15s ease, transform .15s ease, opacity .15s ease;
}
.bmo-terms-banner--danger .bmo-terms-banner__close { border-color: rgba(137,35,35,.18); }
.bmo-terms-banner__close:hover { background: #fff; transform: translateY(-1px); }
.bmo-terms-banner__close:disabled { opacity: .55; cursor: wait; transform: none; }
.bmo-terms-banner__close .bmo-icon { width: 17px; height: 17px; }

@media (max-width: 700px) {
    .bmo-terms-banner {
        top: auto;
        align-items: flex-start;
        flex-wrap: nowrap;
        padding: 10px;
        gap: 8px;
    }
    .bmo-terms-banner__actions {
        align-self: center;
        gap: 4px;
    }
    .bmo-terms-banner__details {
        width: 34px;
        height: 34px;
        padding: 0;
        justify-content: center;
        font-size: 0;
        border: 1px solid rgba(104,72,17,.14);
    }
    .bmo-terms-banner--danger .bmo-terms-banner__details { border-color: rgba(137,35,35,.14); }
    .bmo-terms-banner__details .bmo-icon { width: 17px; height: 17px; }
    .bmo-terms-banner__copy strong { font-size: 13px; }
    .bmo-terms-banner__copy small { font-size: 11px; }
}
/* Specificity reset for legacy v0.4.0 banner child rules. */
.bmo-terms-banner > .bmo-terms-banner__icon { display:grid; flex-direction:initial; }
.bmo-terms-banner > .bmo-terms-banner__copy { display:flex; flex-direction:column; }
.bmo-terms-banner > .bmo-terms-banner__actions { display:flex; flex-direction:row; }
.bmo-terms-banner .bmo-terms-banner__details { margin:0; text-decoration:none; }


/* =========================================================
   v0.4.3 — cart session/address reliability fixes
   ========================================================= */
/* Generic empty-state uses display:flex, so the HTML hidden attribute needs
   an explicit specificity-safe rule inside the portal. */
.bmo-empty-state[hidden],
.bmo-empty-state--compact[hidden],
[data-bmo-address-choice-empty][hidden] {
    display: none !important;
}

/* Avoid an awkward isolated card/empty-state collision in checkout. */
.bmo-address-choice-grid:empty {
    display: none;
}

/* v0.5.9 product detail responsive/gallery fixes */
.bmo-single-product-layout{gap:24px;}
.bmo-product-detail__gallery{min-width:0;}
.bmo-product-main-image{display:flex;align-items:center;justify-content:center;min-height:320px;overflow:hidden;border-radius:12px;}
.bmo-product-main-image img{max-width:100%;height:auto;object-fit:contain;cursor:zoom-in;}
.bmo-product-thumbs{display:flex;gap:10px;overflow-x:auto;justify-content:flex-start;padding:6px 2px;}
.bmo-product-thumb{flex:0 0 72px;width:72px;height:72px;padding:5px;background:#fff;border:1px solid #dce4ef;border-radius:8px;cursor:pointer;}
.bmo-product-thumb img{width:100%;height:100%;object-fit:contain;}
.bmo-product-thumb.is-active{border-color:#1769ff;}
.bmo-product-detail__info h1{font-size:26px;line-height:1.8;}
.bmo-product-description{font-size:14px;line-height:2;}
.bmo-product-info-list span,.bmo-product-info-list strong{font-size:14px;}
.bmo-product-benefits strong{font-size:14px;}
@media(max-width:900px){
 .bmo-single-product-layout{display:flex;flex-direction:column;}
 .bmo-buy-card{order:3;width:100%;}
 .bmo-product-detail{order:1;width:100%;}
 .bmo-product-detail__info h1{font-size:22px;}
 .bmo-product-main-image{min-height:220px;}
 .bmo-product-thumb{flex-basis:58px;width:58px;height:58px;}
}

/* Firefox native select/options font fix */
body.bmo-portal-page select,
body.bmo-portal-page select option,
body.bmo-portal-page .select2-container,
body.bmo-portal-page .select2-container * {
    font-family: "VazirFN", Tahoma, Arial, sans-serif !important;
}


.bmo-inline-receipt-form { display:inline-flex; margin:0; }
.bmo-receipt-trigger { position:relative; overflow:hidden; cursor:pointer; }
.bmo-receipt-file-input { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; opacity:0 !important; cursor:pointer !important; }
.bmo-receipt-trigger.is-loading { opacity:.7; pointer-events:none; }
.bmo-bank-receipt-upload-panel { scroll-margin-top:24px; }
.bmo-bank-receipt-upload-panel form { display:grid; gap:12px; }
.bmo-receipt-submit-row { display:flex; justify-content:flex-start; }


/* Cashback wallet */
.bmo-cashback-checkout.is-disabled { opacity:.62; }
.bmo-cashback-use { display:flex; align-items:center; gap:12px; border:1px solid #e8edf4; background:#fafbfd; border-radius:12px; padding:14px; cursor:pointer; }
.bmo-cashback-use.is-disabled { opacity:.6; cursor:not-allowed; }
.bmo-cashback-use input { width:18px; height:18px; flex:0 0 auto; }
.bmo-cashback-use span { display:flex; flex-direction:column; gap:3px; }
.bmo-cashback-use small { color:#79879b; }
.bmo-cashback-hero { background:linear-gradient(135deg,#15803d,#22a85a); }
.bmo-cashback-rules { margin-top:12px; }

/* Jalali date picker */
.bmo-jalali-date-wrap{position:relative;display:block}.bmo-jalali-date-wrap input[data-bmo-jalali-date]{cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:14px calc(50% - 2px),9px calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-left:30px}.bmo-jdp{position:absolute;z-index:100000;background:#fff;border:1px solid rgba(15,23,42,.12);border-radius:16px;padding:12px;box-shadow:0 20px 55px rgba(15,23,42,.18);box-sizing:border-box;color:#172033;font-family:inherit}.bmo-jdp[hidden]{display:none!important}.bmo-jdp__head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin-bottom:10px}.bmo-jdp__head strong{text-align:center;font-size:14px}.bmo-jdp__nav{border:0;background:#f3f6fa;border-radius:10px;width:38px;height:36px;cursor:pointer;font-size:22px;line-height:1;color:#334155}.bmo-jdp__week,.bmo-jdp__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.bmo-jdp__week{margin-bottom:5px}.bmo-jdp__week span{text-align:center;color:#7b8798;font-size:11px;padding:5px 0}.bmo-jdp__days button,.bmo-jdp__empty{height:34px;border-radius:9px}.bmo-jdp__days button{border:0;background:transparent;cursor:pointer;font-family:inherit;color:#334155}.bmo-jdp__days button:hover:not(:disabled){background:#eef3f9}.bmo-jdp__days button.is-today{box-shadow:inset 0 0 0 1px #94a3b8}.bmo-jdp__days button.is-selected{background:#1f6feb!important;color:#fff!important;box-shadow:none}.bmo-jdp__days button:disabled{opacity:.28;cursor:not-allowed}.bmo-jdp__foot{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #edf0f4;margin-top:10px;padding-top:10px}.bmo-jdp__foot button{border:0;background:transparent;color:#1f6feb;cursor:pointer;font-family:inherit;font-size:12px;padding:5px 7px}.bmo-jdp__foot button:hover{background:#f3f6fa;border-radius:8px}@media(max-width:520px){.bmo-jdp{max-width:calc(100vw - 16px)}}
