/* ============================================================
   MageTime Theme — design components (from design package CSS)
   Prefer this CSS file over LESS for theme/page styling.
   Header/mobile-nav may still use LESS partials; footer lives here.
   Use --apps-theme-* tokens; avoid roro prefix in new code.

   CSS layers (top → bottom = cascade order in this file):
   A. Tokens (:root)
   B. Magento storefront primitives (body/a/input/select/button.action,
      .field/.control/.actions-toolbar, page messages) — global
   C. Shared design components (.btn/.apps-theme-button, .theme-button,
      .form-field, .account-field, CMS patterns)
   D. Feature / page scopes (.apps-theme-content, .apps-theme-mysims,
      .buy-flow, .checkout-flow, .apps-theme-footer, …)
   Parent apps.css / Luma load first; this file overrides without !important.
   Do not add parallel CSS files for stable theme UI — merge here.
   Temporary marketing snippets only → apps-widget.css.

   Layout contract (page gutters — maintain in ONE place):
   - Token: --apps-theme-container-gutter (32 desktop / 22 ≤768)
   - Consumers: .apps-theme-header|.apps-theme-content|.column.main|
     .apps-theme-footer .container, plus flow shells (.buy-flow)
   - Feature CSS may set padding-top/bottom only. Never padding: N 0 M
     (zeros sides and fights the shared gutter). Prefer the token for
     any intentional horizontal inset on page shells.
   - Do NOT copy 32/22 into per-page rules. Component-inner padding
     (cards, modals, buttons) stays local — not page gutters.
   ============================================================ */

:root {
    /* Brand */
    --apps-theme-color-brand: #EC1E24;
    --apps-theme-color-brand-deep: #C8161B;
    --apps-theme-color-brand-soft: #FDE5E6;
    --apps-theme-color-primary: #0B3F67;
    --apps-theme-color-primary-deep: #07334F;
    --apps-theme-color-primary-mid: #4470BA;

    /* Surfaces */
    --apps-theme-color-cream: #F3EEE7;
    --apps-theme-color-cream-soft: #F8F5F0;
    --apps-theme-color-sky: #B9DBFE;
    --apps-theme-color-sky-mid: #69CDFF;
    --apps-theme-color-sky-deep: #4470BA;

    /* Accents */
    --apps-theme-color-peony: #E5447D;
    --apps-theme-color-blossom: #F2A8C0;
    --apps-theme-color-green: #2F8F4E;
    --apps-theme-color-yellow: #F4B53A;
    --apps-theme-color-teal: #3FB7B0;

    /* Neutrals */
    --apps-theme-color-white: #FFFFFF;
    --apps-theme-color-ink: #082C45;
    --apps-theme-color-ink-muted: #2C5170;
    --apps-theme-color-ink-soft: #647D92;
    --apps-theme-color-ink-faint: #AFBCC9;
    --apps-theme-color-line: #E7E7E8;
    --apps-theme-color-surface: #F8FAFD;
    --apps-theme-color-surface-alt: #DCE7F0;

    /* Typography */
    --apps-theme-font-display: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --apps-theme-font-body: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

    /* Radii */
    --apps-theme-radius-sm: 8px;
    --apps-theme-radius-md: 12px;
    --apps-theme-radius-lg: 16px;
    --apps-theme-radius-xl: 24px;
    --apps-theme-radius-2xl: 32px;
    --apps-theme-radius-pill: 999px;

    /* Shadows */
    --apps-theme-shadow-xs: 0 1px 2px rgba(14, 35, 72, .06);
    --apps-theme-shadow-sm: 0 2px 6px rgba(14, 35, 72, .08);
    --apps-theme-shadow-md: 0 8px 24px rgba(14, 35, 72, .10);
    --apps-theme-shadow-lg: 0 16px 48px rgba(14, 35, 72, .14);
    --apps-theme-shadow-brand: 0 8px 24px rgba(236, 30, 36, .26);

    /* Motion */
    --apps-theme-ease: cubic-bezier(.2, .7, .2, 1);
    --apps-theme-duration-fast: 140ms;
    --apps-theme-duration-base: 220ms;
    --apps-theme-duration-slow: 400ms;

    /* Layout */
    --apps-theme-container: 1200px;
    --apps-theme-container-gutter: 32px;
    --apps-theme-section-pad: 120px;
    --apps-theme-header-height: 72px;
    --apps-theme-scroll-gutter: 24px;
    --apps-theme-scroll-offset: calc(var(--apps-theme-header-height) + var(--apps-theme-scroll-gutter));
}

/* In-page anchor targets — keep content below sticky header with visual breathing room */
.apps-theme-content [id],
.column.main [id],
.coverage-landing [id] {
    scroll-margin-top: var(--apps-theme-scroll-offset);
}

/* Destinations: id sits on .section-head (not padded section) so jump lands on titles/tabs */
.apps-theme-content.apps-theme-home #destinations,
.column.main #destinations {
    scroll-margin-top: var(--apps-theme-scroll-offset);
}

/* Design-token aliases (--font-* / --r-* from design-station CSS). */
.apps-theme-content,
.apps-theme-mysims {
    --font-display: var(--apps-theme-font-display);
    --font-body: var(--apps-theme-font-body);
    --r-sm: var(--apps-theme-radius-sm);
    --r-md: var(--apps-theme-radius-md);
    --r-lg: var(--apps-theme-radius-lg);
    --r-xl: var(--apps-theme-radius-xl);
    --r-2xl: var(--apps-theme-radius-2xl);
    --r-pill: var(--apps-theme-radius-pill);
    --shadow-xs: var(--apps-theme-shadow-xs);
    --shadow-sm: var(--apps-theme-shadow-sm);
    --shadow-md: var(--apps-theme-shadow-md);
    --shadow-lg: var(--apps-theme-shadow-lg);
    --shadow-red: var(--apps-theme-shadow-brand);
    --ease-out: var(--apps-theme-ease);
    --t-fast: var(--apps-theme-duration-fast);
    --t-base: var(--apps-theme-duration-base);
    --t-slow: var(--apps-theme-duration-slow);
    --container: var(--apps-theme-container);
    --container-gutter: var(--apps-theme-container-gutter);
    --section-pad: var(--apps-theme-section-pad);
}


@media (max-width: 768px) {
    :root {
        --apps-theme-section-pad: 72px;
        --apps-theme-container-gutter: 22px;
    }
}

/*
 * Shared page gutters (header / main / footer).
 * Header & footer sit outside .column.main — must list them here.
 * Buy/checkout use .buy-flow shell padding (same token) instead of .container.
 */
.apps-theme-header .container,
.apps-theme-content .container,
.column.main .container,
.apps-theme-footer .container {
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    padding-left: var(--apps-theme-container-gutter);
    padding-right: var(--apps-theme-container-gutter);
    box-sizing: border-box;
}

.apps-theme-content .container,
.column.main .container {
    padding-top: 0;
    padding-bottom: 0;
}

.apps-theme-content .container.narrow,
.column.main .container.narrow {
    max-width: 1080px;
}

.apps-theme-shell {
    background: #fff;
}

/*
 * Promotion landing pages (JRT/CIMX partner pages) — header rendered directly
 * into page.wrapper; apply sticky positioning here since the compiled-LESS rule
 * targets header.page-header (the 1column wrapper), not the bare .apps-theme-header.
 */
body.promotion-page .apps-theme-header {
    position: sticky;
    top: 0;
    z-index: 100;
    margin-bottom: 0;
}

.apps-theme-shell .page-wrapper,
.apps-theme-shell .page-main,
.apps-theme-shell .columns,
.apps-theme-shell .column.main,
.apps-theme-shell .main.content {
    background: #fff;
}

.page-layout-cms-full-width .page-footer,
.page-layout-cms-full-width .page-wrapper > footer.page-footer,
.apps-theme-shell .page-footer,
.apps-theme-shell .page-wrapper > footer.page-footer {
    margin-top: 0;
    padding-top: 0;
    background: transparent;
}

/*
 * My SIMs page chrome (apps-theme.css loads after styles-*.css — no !important).
 * Magento always adds full-action classes: apps-card-dashboard / apps-card-view.
 * Optional shell classes apps-theme-shell / apps-theme-mysims-page are added one-at-a-time
 * in Controller + layout (space in a single attribute becomes one mangled class).
 */
body.apps-card-dashboard,
body.apps-card-view {
    background: #F4F8FC;
}

body.apps-card-dashboard .page-wrapper,
body.apps-card-dashboard .page-main,
body.apps-card-dashboard .columns,
body.apps-card-dashboard .column.main,
body.apps-card-dashboard .main.content,
body.apps-card-view .page-wrapper,
body.apps-card-view .page-main,
body.apps-card-view .columns,
body.apps-card-view .column.main,
body.apps-card-view .main.content {
    background: #F4F8FC;
}

body.apps-card-dashboard .page-top,
body.apps-card-view .page-top {
    display: none;
    margin: 0;
    padding: 0;
    min-height: 0;
}

body.apps-card-dashboard .breadcrumbs,
body.apps-card-dashboard .page-title-wrapper,
body.apps-card-view .breadcrumbs,
body.apps-card-view .page-title-wrapper {
    display: none;
    margin: 0;
    padding: 0;
}

body.apps-card-dashboard .page.messages,
body.apps-card-view .page.messages {
    /* floating card — keep horizontal inset; no document-flow gap */
    margin: 0;
    min-height: 0;
}

body.apps-card-dashboard .main.content,
body.apps-card-view .main.content {
    padding: 0;
    margin: 0;
}

body.apps-card-dashboard .page-main,
body.apps-card-dashboard.page-layout-1column .page-main,
body.apps-card-view .page-main,
body.apps-card-view.page-layout-1column .page-main {
    padding: 0;
    max-width: none;
    margin: 0;
}

body.apps-card-dashboard .columns,
body.apps-card-view .columns {
    display: block;
    margin: 0;
    padding: 0;
}

body.apps-card-dashboard .columns .column.main,
body.apps-card-view .columns .column.main {
    padding: 0;
    margin: 0;
    width: 100%;
    float: none;
    max-width: none;
}

body.apps-card-dashboard .sidebar-main,
body.apps-card-dashboard .sidebar-additional,
body.apps-card-dashboard .sidebar.sidebar-main,
body.apps-card-dashboard .sidebar.sidebar-additional,
body.apps-card-view .sidebar-main,
body.apps-card-view .sidebar-additional,
body.apps-card-view .sidebar.sidebar-main,
body.apps-card-view .sidebar.sidebar-additional {
    display: none;
    width: 0;
    margin: 0;
    padding: 0;
}

/* ============================================================
   LAYER B — Magento storefront primitives (global)
   Design station: roro-site.css + recharge field/inp + acct-field.
   Beautify Magento classes directly (.field / .control / .action.primary).
   ============================================================ */

/* --- B1. Base text & links (override parent IBM Plex / #4a4a4a) --- */
body {
    font-family: var(--apps-theme-font-body);
    color: var(--apps-theme-color-ink);
    background-color: var(--apps-theme-color-surface);
}

body a {
    color: var(--apps-theme-color-primary);
    font-size: inherit;
    text-decoration: none;
    transition: color var(--apps-theme-duration-fast) var(--apps-theme-ease);
}

body a:hover {
    color: var(--apps-theme-color-primary-deep);
    text-decoration: none;
    opacity: 1;
}

/*
 * Soften parent apps.css: button { width:100%; line-height:32px; background:#4a4a4a;
 * border:1px solid #4a4a4a } and button:hover/focus/active { border:#4a4a4a; opacity:.9 }.
 *
 * Root cause of “inner light/white rim” on dark pill CTAs:
 * transparent / mismatched borders anti-alias as a pale rectangular hairline on filled
 * pills (outline does not follow radius either). Fix: never leave a transparent border;
 * prefer `border: none` + inset box-shadow rings; force opacity:1 on hover.
 */
button,
.button {
    box-sizing: border-box;
    width: auto;
    max-width: 100%;
    height: auto;
    min-height: 0;
    line-height: inherit;
    vertical-align: middle;
    cursor: pointer;
    opacity: 1;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background-color: transparent;
    background-image: none;
    background-clip: padding-box;
    box-shadow: none;
    color: inherit;
    font-size: inherit;
}

button::-moz-focus-inner,
.button::-moz-focus-inner {
    border: 0;
    padding: 0;
}

button:hover,
button:focus,
button:focus-visible,
button:active,
.button:hover,
.button:focus,
.button:focus-visible,
.button:active {
    opacity: 1;
    outline: none;
    /* Use `none` — `0 solid transparent` still anti-aliases as a pale rim on dark fills */
    border: none;
    box-shadow: none;
    background-image: none;
}

/* --- B2. Magento form controls (input / select / textarea) --- */
input.input-text,
textarea.input-text,
select,
.field .control input[type="text"],
.field .control input[type="email"],
.field .control input[type="password"],
.field .control input[type="tel"],
.field .control input[type="number"],
.field .control input[type="url"],
.field .control select,
.field .control textarea {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 46px;
    margin: 0;
    padding: 0 15px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    background: #fff;
    color: var(--apps-theme-color-ink);
    font-family: var(--apps-theme-font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.35;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color var(--apps-theme-duration-base),
        box-shadow var(--apps-theme-duration-base);
}

textarea.input-text,
.field .control textarea {
    height: auto;
    min-height: 96px;
    padding: 12px 15px;
    resize: vertical;
    line-height: 1.45;
}

select {
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23647D92' d='M1.4 0L6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
    cursor: pointer;
}

input.input-text::placeholder,
textarea.input-text::placeholder {
    color: var(--apps-theme-color-ink-faint);
    opacity: 1;
}

input.input-text:focus,
textarea.input-text:focus,
select:focus,
.field .control input:focus,
.field .control select:focus,
.field .control textarea:focus,
._keyfocus input:not([disabled]):focus,
._keyfocus textarea:not([disabled]):focus,
._keyfocus select:not([disabled]):focus {
    outline: none;
    border-color: var(--apps-theme-color-primary);
    box-shadow: 0 0 0 3px rgba(11, 63, 103, .12);
}

input.input-text:disabled,
select:disabled,
textarea.input-text:disabled,
.field .control input:disabled,
.field .control select:disabled {
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-soft);
    cursor: not-allowed;
}

input.input-text.mage-error,
textarea.input-text.mage-error,
select.mage-error,
.field .control input.mage-error,
.field .control select.mage-error {
    border-color: var(--apps-theme-color-brand-deep);
}

/* Narrow / contextual inputs — keep Magento qty & search usable */
input.input-text.qty,
.field.qty .control input.input-text,
.qty input.input-text {
    width: auto;
    max-width: 72px;
    height: 36px;
    padding: 0 8px;
    text-align: center;
}

.block-search .control input.input-text,
.minisearch input.input-text {
    height: 40px;
    padding: 0 12px;
    border-radius: var(--apps-theme-radius-pill);
}

/* --- B3. Magento primary / secondary actions (override parent gray button) --- */
button.action.primary,
.action.primary,
a.action.primary,
.action-primary,
button.action-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 46px;
    height: auto;
    margin: 0;
    padding: 12px 26px;
    border: none;
    border-radius: var(--apps-theme-radius-pill);
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    color: #fff;
    font-family: var(--apps-theme-font-body);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .01em;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: none;
    opacity: 1;
    transition: transform var(--apps-theme-duration-base) var(--apps-theme-ease),
        background var(--apps-theme-duration-base),
        box-shadow var(--apps-theme-duration-base),
        color var(--apps-theme-duration-base);
}

button.action.primary:hover,
button.action.primary:focus,
button.action.primary:active,
.action.primary:hover,
.action.primary:focus,
.action.primary:active,
a.action.primary:hover,
a.action.primary:focus,
.action-primary:hover,
.action-primary:focus,
.action-primary:active {
    background: var(--apps-theme-color-primary-deep);
    background-color: var(--apps-theme-color-primary-deep);
    border: none;
    color: #fff;
    opacity: 1;
    outline: none;
    transform: translateY(-1px);
    box-shadow: var(--apps-theme-shadow-md);
}

button.action.primary:disabled,
.action.primary:disabled,
.action.primary.disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.action.secondary,
a.action.secondary,
button.action.secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    width: auto;
    min-height: 42px;
    height: auto;
    padding: 10px 20px;
    border: 1.5px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-pill);
    background: transparent;
    background-color: transparent;
    color: var(--apps-theme-color-ink);
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    opacity: 1;
}

.action.secondary:hover,
.action.secondary:focus,
.action.secondary:active,
a.action.secondary:hover,
a.action.secondary:focus,
a.action.secondary:active {
    border: 1.5px solid var(--apps-theme-color-ink);
    background: #fff;
    color: var(--apps-theme-color-ink);
    opacity: 1;
    outline: none;
}

/* --- B4. Magento .field / .control / .label / legend --- */
.fieldset {
    border: 0;
    margin: 0 0 8px;
    padding: 0;
}

.fieldset > .legend {
    display: block;
    float: none;
    width: 100%;
    margin: 0 0 16px;
    padding: 0 0 10px;
    border: 0;
    border-bottom: 1px solid var(--apps-theme-color-line);
    box-sizing: border-box;
    font-family: var(--apps-theme-font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--apps-theme-color-ink);
}

.fieldset > .legend span {
    margin: 0;
    padding: 0;
}

.fieldset > .field {
    box-sizing: border-box;
    margin: 0 0 16px;
    padding: 0;
    float: none;
    width: 100%;
}

.fieldset > .field > .label,
.fieldset > .field .label {
    display: block;
    float: none;
    width: auto;
    margin: 0 0 7px;
    padding: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--apps-theme-color-ink-muted);
}

.fieldset > .field > .label:after,
.fieldset > .field.required > .label:after {
    margin: 0 0 0 2px;
    color: var(--apps-theme-color-brand);
}

.fieldset > .field > .control {
    float: none;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.fieldset > .field.note,
.fieldset > .field.note.no-label {
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--apps-theme-color-ink-soft);
}

.fieldset > .field.choice {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
}

.fieldset > .field.choice .label {
    margin: 0;
    font-weight: 600;
    color: var(--apps-theme-color-ink-muted);
}

.fieldset > .field.choice .control {
    width: auto;
    flex: 0 0 auto;
}

.fieldset .mage-error,
div.mage-error {
    display: block;
    margin: 6px 0 0;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--apps-theme-color-brand-deep);
}

/* --- B5. actions-toolbar --- */
.actions-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 8px 0 0;
    padding: 8px 0 0;
}

.actions-toolbar:before,
.actions-toolbar:after {
    display: none;
}

.actions-toolbar > .primary,
.actions-toolbar > .secondary {
    float: none;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 0;
}

.actions-toolbar > .primary {
    flex: 1 1 auto;
}

.actions-toolbar > .primary .action.primary,
.actions-toolbar > .primary button.action {
    width: 100%;
    min-width: 0;
}

.actions-toolbar > .secondary a.action {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--apps-theme-color-ink-muted);
}

.actions-toolbar > .secondary a.action:hover {
    color: var(--apps-theme-color-primary);
}

/* --- B6. Page messages — floating card under sticky header ---
 * Same content width as .login-register-container / .container
 * (max-width container + horizontal padding inside, border-box).
 */
.page.messages {
    box-sizing: border-box;
    position: fixed;
    top: calc(var(--apps-theme-header-height, 72px) + 6px);
    left: 0;
    right: 0;
    z-index: 95;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    min-height: 0;
    background: transparent;
    border: 0;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    transition:
        transform .34s cubic-bezier(.22, 1, .36, 1),
        opacity .26s ease,
        visibility 0s linear .34s;
}

.page.messages.is-visible {
    pointer-events: none;
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition:
        transform .34s cubic-bezier(.22, 1, .36, 1),
        opacity .26s ease,
        visibility 0s linear 0s;
}

.page.messages.is-hiding {
    pointer-events: none;
    opacity: 0;
    transform: translateY(-10px);
    visibility: hidden;
    transition:
        transform .28s ease,
        opacity .24s ease,
        visibility 0s linear .28s;
}

.page.messages [data-placeholder="messages"],
.page.messages [data-bind],
.page.messages .messages {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    padding: 0 16px;
    min-height: 0;
    border: 0;
    background: none;
    background-color: transparent;
    list-style: none;
    pointer-events: none;
}

@media (max-width: 768px) {
    .page.messages {
        top: calc(var(--apps-theme-header-height, 72px) + 10px);
    }

    .page.messages [data-placeholder="messages"],
    .page.messages [data-bind],
    .page.messages .messages {
        padding: 0 10px;
    }
}

.page.messages .message,
.page.messages .messages .message {
    box-sizing: border-box;
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 10px;
    font-family: var(--apps-theme-font-body);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.5;
    list-style: none;
    pointer-events: auto;
    box-shadow: var(--apps-theme-shadow-sm);
}

.page.messages .apps-theme-message-inner {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 10px 8px 10px 14px;
    min-height: 42px;
}

.page.messages .apps-theme-message-body {
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.page.messages .apps-theme-message-body > * {
    margin: 0;
    padding: 0;
    display: block;
    font: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    color: inherit;
    background: transparent;
}

.page.messages .apps-theme-message-close {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    opacity: .55;
    cursor: pointer;
    transition: background .16s ease, opacity .16s ease;
}

.page.messages .apps-theme-message-close:hover,
.page.messages .apps-theme-message-close:focus-visible {
    opacity: .95;
    background: rgba(14, 35, 72, .07);
    outline: none;
}

.page.messages .apps-theme-message-close svg {
    width: 14px;
    height: 14px;
    display: block;
}

/* Hide Luma icon-font ::before */
.message > *:first-child:before,
.message.error > *:first-child:before,
.message.success > *:first-child:before,
.message.notice > *:first-child:before,
.message.warning > *:first-child:before,
.message.info > *:first-child:before,
.message-error > *:first-child:before,
.message-success > *:first-child:before,
.message-notice > *:first-child:before,
.message-warning > *:first-child:before,
.message-info > *:first-child:before {
    content: none;
    display: none;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
    position: static;
}

.page.messages .messages .message.message-success,
.page.messages .messages .message.success,
.messages .message.message-success,
.messages .message.success,
div.message.message-success,
div.message.success {
    background: #eef8f1;
    background-color: #eef8f1;
    border-color: #c9e5d2;
    color: #247a42;
}

/* jQuery Growl — sit under sticky header (shared Apps AJAX feedback path) */
#growls-default,
#growls-tr,
#growls-tl,
#growls-tc {
    top: calc(var(--apps-theme-header-height, 72px) + 10px);
}

.page.messages .messages .message.message-error,
.page.messages .messages .message.error,
.messages .message.message-error,
.messages .message.error,
div.message.message-error,
div.message.error {
    background: #fdf0f1;
    background-color: #fdf0f1;
    border-color: #f0c8cb;
    color: #b31419;
}

.page.messages .messages .message.message-notice,
.page.messages .messages .message.notice,
.page.messages .messages .message.message-warning,
.page.messages .messages .message.warning,
.messages .message.message-notice,
.messages .message.notice,
.messages .message.message-warning,
.messages .message.warning,
div.message.notice,
div.message.warning {
    background: #fff8eb;
    background-color: #fff8eb;
    border-color: #f0d9a8;
    color: #8a5a00;
}

.page.messages .messages .message.message-info,
.page.messages .messages .message.info,
.messages .message.message-info,
.messages .message.info,
div.message.message-info,
div.message.info {
    background: #eef4fb;
    background-color: #eef4fb;
    border-color: #c9daf0;
    color: var(--apps-theme-color-primary, #0B3F67);
}

/* Inline / legacy messages outside .page.messages */
.column.main .messages .message,
.block-customer-login .messages .message,
form .messages .message {
    box-sizing: border-box;
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 10px;
    padding: 10px 14px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.5;
}

body.customer-account-login .page.messages,
body.customer-account-create .page.messages,
body.customer-account-forgotpassword .page.messages,
body.customer-account-createpassword .page.messages,
body.apps-card-dashboard .page.messages,
body.apps-card-view .page.messages {
    margin: 0;
}

body.customer-account-login .login-register-container {
    padding-top: 28px;
}

/* --- B7. Layout chrome: breadcrumbs / block / checkbox / table / pager --- */
.breadcrumbs {
    box-sizing: border-box;
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    padding: 14px var(--apps-theme-container-gutter) 0;
    font-size: 13px;
    line-height: 1.4;
    color: var(--apps-theme-color-ink-soft);
}

@media (max-width: 768px) {
    .breadcrumbs {
        padding-top: 12px;
    }
}

.breadcrumbs .items {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumbs .item {
    display: inline-flex;
    align-items: center;
    color: var(--apps-theme-color-ink-soft);
}

.breadcrumbs .item a {
    color: var(--apps-theme-color-ink-muted);
    font-weight: 600;
}

.breadcrumbs .item a:hover {
    color: var(--apps-theme-color-primary);
}

.breadcrumbs .item strong {
    font-weight: 700;
    color: var(--apps-theme-color-ink);
}

.breadcrumbs .item:not(:last-child)::after {
    content: "/";
    margin: 0 8px;
    color: var(--apps-theme-color-ink-faint);
    font-weight: 400;
}

.block {
    box-sizing: border-box;
    margin: 0 0 24px;
}

.block .block-title {
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: transparent;
}

.block .block-title strong,
.block .block-title > span {
    font-family: var(--apps-theme-font-display);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--apps-theme-color-ink);
}

.block .block-content {
    margin: 0;
    padding: 0;
}

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box;
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    flex-shrink: 0;
    accent-color: var(--apps-theme-color-primary);
    vertical-align: middle;
    cursor: pointer;
    position: static;
    top: auto;
}

.table-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

table thead th {
    font-family: var(--apps-theme-font-body);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-soft);
    text-align: left;
    padding: 10px 12px;
    border-bottom: 1px solid var(--apps-theme-color-line);
    background: transparent;
}

table tbody td {
    font-size: 14px;
    color: var(--apps-theme-color-ink);
    padding: 12px;
    border-bottom: 1px solid var(--apps-theme-color-line);
    vertical-align: top;
}

.pages,
.pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 16px 0 0;
}

.pages .item,
.pager .item {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pages a.page,
.pages strong.page,
.pager a.page,
.pages .action,
.pager .action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-sm);
    background: #fff;
    color: var(--apps-theme-color-ink-muted);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.pages a.page:hover,
.pager a.page:hover,
.pages .action:hover,
.pager .action:hover {
    border-color: var(--apps-theme-color-primary);
    color: var(--apps-theme-color-primary);
}

.pages strong.page,
.pages .item.current strong {
    background: var(--apps-theme-color-primary);
    border-color: var(--apps-theme-color-primary);
    color: #fff;
}

/* --- B8. Customer auth pages (login / register / forgot) --- */
body.customer-account-login,
body.customer-account-create,
body.customer-account-forgotpassword,
body.customer-account-createpassword {
    background: var(--apps-theme-color-surface);
}

body.customer-account-login .page-main,
body.customer-account-create .page-main,
body.customer-account-forgotpassword .page-main,
body.customer-account-createpassword .page-main,
body.customer-account-login .columns,
body.customer-account-create .columns,
body.customer-account-forgotpassword .columns,
body.customer-account-createpassword .columns,
body.customer-account-login .column.main,
body.customer-account-create .column.main,
body.customer-account-forgotpassword .column.main,
body.customer-account-createpassword .column.main {
    background: var(--apps-theme-color-surface);
}

body.customer-account-login .page-title-wrapper {
    display: none;
}

/* Login method switcher: Password | Email code */
.block-customer-login .login-mode-tabs {
    display: flex;
    gap: 4px;
    width: 100%;
    max-width: 100%;
    margin: 0 0 18px;
    padding: 4px;
    background: var(--apps-theme-color-surface, #f4f6f8);
    border-radius: 999px;
    box-sizing: border-box;
}
.block-customer-login .login-mode-tab {
    flex: 1 1 0;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--apps-theme-font-body, inherit);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    padding: 9px 12px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--apps-theme-color-ink-muted, #5b6b7c);
    cursor: pointer;
    box-shadow: none;
    width: auto;
    max-width: none;
    transition: background .14s ease, color .14s ease;
}
.block-customer-login .login-mode-tab.on {
    background: var(--apps-theme-color-primary, #0b3f67);
    color: #fff;
}
.block-customer-login .login-mode-tab:hover:not(.on),
.block-customer-login .login-mode-tab:focus:not(.on) {
    background: rgba(11, 63, 103, .06);
    color: var(--apps-theme-color-ink, #122033);
    outline: none;
}
.block-customer-login .login-mode-panel[hidden] {
    display: none !important;
}
/* Beat .field{display:flex} — otherwise [hidden] OTP stages stay visible */
.block-customer-login [data-role="otp-stage1"][hidden],
.block-customer-login [data-role="otp-stage2"][hidden],
.block-customer-login .login-otp-stage2[hidden] {
    display: none !important;
}
.block-customer-login .login-otp-form {
    margin: 0;
}
.block-customer-login .login-otp-send-row {
    margin: 4px 0 0;
}
.block-customer-login .login-otp-send,
.block-customer-login button.login-otp-send {
    width: 100%;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 18px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 15px;
}
.block-customer-login .login-otp-sent {
    margin: 0 0 8px;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--apps-theme-color-ink, #1a2330);
    font-weight: 600;
}
.block-customer-login .login-otp-hint {
    margin: 0 0 14px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--apps-theme-color-ink-muted, #5b6b7c);
}
.block-customer-login .login-otp-code-wrap {
    display: flex;
    align-items: stretch;
    gap: 8px;
}
.block-customer-login .login-otp-code-wrap .input-text {
    flex: 1 1 auto;
    min-width: 0;
    letter-spacing: .18em;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.block-customer-login .login-otp-resend,
.block-customer-login button.login-otp-resend {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    min-width: 96px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1.5px solid var(--apps-theme-color-line, #d7dee7);
    background: #fff;
    color: var(--apps-theme-color-primary, #0b3f67);
    font-size: 12.5px;
    font-weight: 800;
    white-space: nowrap;
}
.block-customer-login .login-otp-resend:disabled,
.block-customer-login button.login-otp-resend:disabled {
    opacity: .55;
    cursor: not-allowed;
    color: var(--apps-theme-color-ink-muted, #5b6b7c);
}
.block-customer-login .login-otp-back {
    display: inline-flex;
    margin-top: 14px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--apps-theme-color-primary, #0b3f67);
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    width: auto;
    max-width: none;
    box-shadow: none;
}
.block-customer-login .login-otp-back:hover,
.block-customer-login .login-otp-back:focus {
    background: transparent;
    color: var(--apps-theme-color-primary, #0b3f67);
    opacity: 1;
    outline: none;
}
.block-customer-login .login-otp-error {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(180, 35, 24, .08);
    color: #b42318;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 600;
}
.block-customer-login .login-otp-error[hidden] {
    display: none !important;
}
.block-customer-login .social-auth-container {
    margin-top: 22px;
}

.login-register-container {
    width: 100%;
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    padding: 28px 32px 64px;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    gap: 28px;
    box-sizing: border-box;
}

.login-register-container .login-container,
.login-register-container .register-container {
    flex: 1 1 0;
    min-width: 0;
}

.login-register-container .block,
.login-register-container .block.block-customer-login,
.login-register-container .block.block-customer-register {
    float: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 28px 28px 32px;
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    box-shadow: var(--apps-theme-shadow-sm);
    box-sizing: border-box;
}

.login-register-container .block .block-title,
.block-customer-login .block-title,
.block-customer-register .block-title {
    margin: 0 0 18px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--apps-theme-color-line);
    background: transparent;
}

.login-register-container .block .block-title strong,
.block-customer-login .block-title strong,
.block-customer-register .block-title strong {
    font-family: var(--apps-theme-font-display);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--apps-theme-color-ink);
}

.login-register-container .block-content,
.block-customer-login .block-content,
.block-customer-register .block-content {
    padding: 0;
    margin: 0;
}

.login-register-container .form.create.account.form-create-account {
    float: none;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.block-customer-login .actions-block {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    box-sizing: border-box;
    margin: 0 0 4px;
}

.block-customer-login .actions-block .secondary a.action.remind,
.block-customer-login a.action.remind {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--apps-theme-color-ink-muted);
}

.block-customer-login .actions-block .secondary a.action.remind:hover,
.block-customer-login a.action.remind:hover {
    color: var(--apps-theme-color-primary);
}

.block-customer-login .actions-toolbar,
.form-create-account .actions-toolbar {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: stretch;
    box-sizing: border-box;
    padding: 12px 0 4px;
    margin: 0;
}

.block-customer-login .actions-toolbar .primary,
.form-create-account .actions-toolbar .primary {
    float: none;
    width: 100%;
}

.block-customer-login .actions-toolbar button.action,
.form-create-account .actions-toolbar button.action {
    width: 100%;
    margin: 0;
}

.social-auth-container .section-title {
    width: 100%;
    color: var(--apps-theme-color-ink-soft);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    line-height: 1.4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    box-sizing: border-box;
    padding: 18px 0 12px;
}

.social-auth-container .section-title::before,
.social-auth-container .section-title::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: var(--apps-theme-color-line);
}

.social-auth-block {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    box-sizing: border-box;
}

.social-auth-link {
    width: auto;
    display: inline-flex;
    text-decoration: none;
}

.social-auth-button {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--apps-theme-radius-md);
    background-color: var(--apps-theme-color-primary);
    box-sizing: border-box;
    padding: 8px;
    transition: background-color var(--apps-theme-duration-fast),
        transform var(--apps-theme-duration-fast);
}

.social-auth-link:hover .social-auth-button {
    background-color: var(--apps-theme-color-primary-deep);
    transform: translateY(-1px);
}

.social-auth-button img,
.social-auth-button svg {
    width: 28px;
    height: 28px;
    max-width: 100%;
    max-height: 100%;
}

/* Standalone create / forgot (not split login-register) */
body.customer-account-create .column.main > .block,
body.customer-account-create .column.main > .form,
body.customer-account-forgotpassword .column.main > .block,
body.customer-account-forgotpassword .column.main > .form,
body.customer-account-createpassword .column.main > .block,
body.customer-account-createpassword .column.main > .form,
body.customer-account-forgotpassword .form.password,
body.customer-account-createpassword .form.password {
    max-width: 520px;
    margin: 24px auto 64px;
    padding: 28px 28px 32px;
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    box-shadow: var(--apps-theme-shadow-sm);
    box-sizing: border-box;
}

/* Register form fields: kill Magento float half-widths (ghost columns beside inputs) */
body.customer-account-login .form-create-account .fieldset .field,
body.customer-account-create .form-create-account .fieldset .field,
body.customer-account-login .form-create-account .field-name-firstname,
body.customer-account-create .form-create-account .field-name-firstname,
body.customer-account-login .form-create-account .field-name-lastname,
body.customer-account-create .form-create-account .field-name-lastname,
body.customer-account-login .form-create-account .fullname .field,
body.customer-account-create .form-create-account .fullname .field {
    float: none !important;
    width: 100% !important;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}
body.customer-account-login .form-create-account .fieldset .field .control,
body.customer-account-create .form-create-account .fieldset .field .control,
body.customer-account-login .form-create-account .input-text,
body.customer-account-create .form-create-account .input-text,
body.customer-account-login .form-create-account select,
body.customer-account-create .form-create-account select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
body.customer-account-login .form-create-account .fieldset::after,
body.customer-account-create .form-create-account .fieldset::after,
body.customer-account-login .form-create-account .fields::after,
body.customer-account-create .form-create-account .fields::after {
    content: "";
    display: table;
    clear: both;
}
body.customer-account-login .form-create-account .password-strength-meter,
body.customer-account-create .form-create-account .password-strength-meter,
body.customer-account-login #password-strength-meter-container,
body.customer-account-create #password-strength-meter-container {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 8px;
}

body.customer-account-forgotpassword .page-title-wrapper .page-title,
body.customer-account-createpassword .page-title-wrapper .page-title,
body.customer-account-create .page-title-wrapper .page-title,
body.customer-account-forgotpassword .column.main h1.page-title,
body.customer-account-createpassword .column.main h1.page-title,
body.customer-account-create .column.main h1.page-title {
    text-align: center;
    margin: 28px 0 8px;
    font-family: var(--apps-theme-font-display);
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--apps-theme-color-ink);
}

body.customer-account-forgotpassword .page-title-wrapper .page-title span,
body.customer-account-createpassword .page-title-wrapper .page-title span,
body.customer-account-create .page-title-wrapper .page-title span {
    font: inherit;
    color: inherit;
}

@media (max-width: 768px) {
    .login-register-container {
        flex-direction: column;
        gap: 20px;
        padding: 10px 10px 30px;
    }

    .login-register-container .block,
    .login-register-container .block.block-customer-login,
    .login-register-container .block.block-customer-register {
        padding: 22px 18px 26px;
    }
}

/* Type */
.apps-theme-content .eyebrow,
.column.main .eyebrow {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--apps-theme-color-brand);
}

.apps-theme-content .eyebrow.muted,
.column.main .eyebrow.muted {
    color: var(--apps-theme-color-ink-soft);
}

.apps-theme-content h1,
.apps-theme-content h2,
.apps-theme-content h3,
.apps-theme-content h4,
.column.main h1,
.column.main h2,
.column.main h3,
.column.main h4 {
    font-family: var(--apps-theme-font-display);
    letter-spacing: -0.015em;
    color: var(--apps-theme-color-ink);
    text-wrap: pretty;
}

.apps-theme-content h1,
.column.main h1 {
    font-size: clamp(38px, 5.4vw, 68px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.apps-theme-content h2,
.column.main h2 {
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: -0.02em;
}

.apps-theme-content h3,
.column.main h3 {
    font-size: clamp(19px, 1.9vw, 24px);
    font-weight: 700;
    line-height: 1.28;
}

.apps-theme-content h4,
.column.main h4 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.apps-theme-content .apps-theme-page-lead,
.column.main .apps-theme-page-lead {
    font-size: clamp(16px, 1.4vw, 19px);
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.6;
    max-width: 62ch;
}

.apps-theme-content .apps-theme-text-accent,
.column.main .apps-theme-text-accent {
    color: var(--apps-theme-color-brand);
}

/* Buttons */
.apps-theme-content .btn,
.apps-theme-content .apps-theme-button,
.column.main .btn,
.column.main .apps-theme-button,
.cookie-bar .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 15px;
    padding: 14px 26px;
    border-radius: var(--apps-theme-radius-pill);
    transition: transform var(--apps-theme-duration-base) var(--apps-theme-ease),
        background var(--apps-theme-duration-base),
        box-shadow var(--apps-theme-duration-base),
        color var(--apps-theme-duration-base);
    white-space: nowrap;
    letter-spacing: .01em;
    text-decoration: none;
    border: none;
    cursor: pointer;
}

.apps-theme-content .btn-primary,
.apps-theme-content .apps-theme-button-primary,
.column.main .btn-primary,
.column.main .apps-theme-button-primary,
.cookie-bar .btn-primary {
    background: var(--apps-theme-color-primary);
    color: #fff;
}

.apps-theme-content .btn-primary:hover,
.apps-theme-content .apps-theme-button-primary:hover,
.column.main .btn-primary:hover,
.column.main .apps-theme-button-primary:hover,
.cookie-bar .btn-primary:hover,
.apps-theme-content .btn-primary:focus,
.apps-theme-content .apps-theme-button-primary:focus,
.column.main .btn-primary:focus,
.column.main .apps-theme-button-primary:focus,
.cookie-bar .btn-primary:focus,
.apps-theme-content .btn-primary:active,
.apps-theme-content .apps-theme-button-primary:active,
.column.main .btn-primary:active,
.column.main .apps-theme-button-primary:active,
.cookie-bar .btn-primary:active {
    background: var(--apps-theme-color-primary-deep);
    transform: translateY(-1px);
    box-shadow: var(--apps-theme-shadow-md);
    border: none;
    outline: none;
    opacity: 1;
    color: #fff;
}

.apps-theme-content .btn-red,
.apps-theme-content .apps-theme-button-brand,
.column.main .btn-red {
    background: var(--apps-theme-color-brand);
    color: #fff;
}

.apps-theme-content .btn-red:hover,
.apps-theme-content .apps-theme-button-brand:hover,
.column.main .btn-red:hover {
    background: var(--apps-theme-color-brand-deep);
    transform: translateY(-1px);
    box-shadow: var(--apps-theme-shadow-brand);
}

.apps-theme-content .btn-ghost,
.apps-theme-content .apps-theme-button-ghost,
.column.main .btn-ghost,
.column.main .apps-theme-button-ghost,
.cookie-bar .btn-ghost {
    background: transparent;
    color: var(--apps-theme-color-ink);
    border: 1.5px solid var(--apps-theme-color-line);
}

.apps-theme-content .btn-ghost:hover,
.apps-theme-content .apps-theme-button-ghost:hover,
.column.main .btn-ghost:hover,
.column.main .apps-theme-button-ghost:hover,
.cookie-bar .btn-ghost:hover {
    border-color: var(--apps-theme-color-ink);
    background: #fff;
}

.apps-theme-content .apps-theme-button-dark,
.column.main .apps-theme-button-dark {
    background: var(--apps-theme-color-primary);
    color: #fff;
}

.apps-theme-content .apps-theme-button-dark:hover,
.column.main .apps-theme-button-dark:hover {
    background: var(--apps-theme-color-primary-deep);
    transform: translateY(-1px);
    box-shadow: var(--apps-theme-shadow-md);
}

.apps-theme-content .apps-theme-button-light,
.column.main .apps-theme-button-light {
    background: #fff;
    color: var(--apps-theme-color-primary);
    border: 1.5px solid rgba(255, 255, 255, 0.74);
}

.apps-theme-content .apps-theme-button-light:hover,
.column.main .apps-theme-button-light:hover {
    background: #f8fbff;
    color: var(--apps-theme-color-primary-deep);
    border-color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--apps-theme-shadow-md);
}

.apps-theme-content .btn-lg,
.apps-theme-content .apps-theme-button-large,
.column.main .btn-lg,
.column.main .apps-theme-button-large {
    min-height: 50px;
    padding: 14px 28px;
    font-size: 15px;
}

.apps-theme-content .btn-md,
.apps-theme-content .apps-theme-button-medium,
.column.main .btn-md,
.column.main .apps-theme-button-medium {
    min-height: 44px;
    padding: 12px 22px;
    font-size: 14px;
}

.apps-theme-content .apps-theme-input-shell,
.column.main .apps-theme-input-shell {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 0 16px;
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: 12px;
    box-sizing: border-box;
}

.apps-theme-content .apps-theme-input-shell input,
.column.main .apps-theme-input-shell input {
    width: 100%;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    padding: 12px 0;
    color: var(--apps-theme-color-ink);
    font-family: var(--apps-theme-font-body);
    font-size: 15px;
    line-height: 1.4;
}

.apps-theme-content .apps-theme-input-shell input::placeholder,
.column.main .apps-theme-input-shell input::placeholder {
    color: var(--apps-theme-color-ink-faint);
}

.apps-theme-content .apps-theme-button-row,
.column.main .apps-theme-button-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.apps-theme-content .apps-theme-eyebrow-sky,
.column.main .apps-theme-eyebrow-sky {
    color: var(--apps-theme-color-sky-mid);
}

.apps-theme-content .apps-theme-heading-spacing-sm,
.column.main .apps-theme-heading-spacing-sm {
    margin-top: 12px;
}

.apps-theme-content .apps-theme-success-note,
.column.main .apps-theme-success-note {
    color: var(--apps-theme-color-ink-muted);
    margin-top: 8px;
}

.apps-theme-content .apps-theme-callout-spacious,
.column.main .apps-theme-callout-spacious {
    margin-top: 22px;
    max-width: none;
}

.apps-theme-content .apps-theme-callout-spacious-lg,
.column.main .apps-theme-callout-spacious-lg {
    margin-top: 26px;
    max-width: none;
}

.apps-theme-content .btn-ghost.on-dark,
.column.main .btn-ghost.on-dark {
    color: #fff;
    border-color: rgba(255, 255, 255, .3);
}

.apps-theme-content .btn-ghost.on-dark:hover,
.column.main .btn-ghost.on-dark:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, .06);
}

/* Flag/icon helpers — prefer apps/icon PNG (review-home-flag-img); .apps-theme-flag kept for legacy */
.apps-theme-content .apps-theme-flag,
.column.main .apps-theme-flag {
    display: inline-block;
    vertical-align: -2px;
    margin-left: 4px;
    border-radius: 2px;
    flex-shrink: 0;
}

.apps-theme-content .apps-theme-icon,
.column.main .apps-theme-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.apps-theme-content .apps-theme-icon-check,
.column.main .apps-theme-icon-check {
    color: var(--apps-theme-color-green);
}

.apps-theme-content .apps-theme-comparison-status-positive .apps-theme-icon-check,
.column.main .apps-theme-comparison-status-positive .apps-theme-icon-check {
    color: var(--apps-theme-color-green);
}

.apps-theme-content .review-verified,
.column.main .review-verified {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.apps-theme-content .rt-flag,
.column.main .rt-flag {
    display: inline-flex;
    align-items: center;
    color: var(--apps-theme-color-ink-soft);
}

.apps-theme-content .apps-theme-success-tick,
.column.main .apps-theme-success-tick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.apps-theme-content .apps-theme-success-tick .apps-theme-icon-check,
.column.main .apps-theme-success-tick .apps-theme-icon-check {
    width: 20px;
    height: 20px;
}

/* Reset parent theme global button/link rules inside CMS content */
.apps-theme-content .btn,
.apps-theme-content .apps-theme-button,
.column.main .btn {
    width: auto;
    min-width: 0;
    line-height: 1.2;
    box-sizing: border-box;
    opacity: 1;
}

/* MageTime/apps parent: select { border:1px solid transparent; padding:3px 25px 3px 10px } */
.apps-theme-content .affiliate-program-form-card input,
.apps-theme-content .affiliate-program-form-card select,
.apps-theme-content .affiliate-program-form-card textarea,
.apps-theme-content .business-program-form-card input,
.apps-theme-content .business-program-form-card select,
.apps-theme-content .business-program-form-card textarea,
.column.main .affiliate-program-form-card input,
.column.main .affiliate-program-form-card select,
.column.main .affiliate-program-form-card textarea,
.column.main .business-program-form-card input,
.column.main .business-program-form-card select,
.column.main .business-program-form-card textarea {
    box-sizing: border-box;
    margin: 0;
    box-shadow: none;
    font-family: var(--apps-theme-font-body);
    -webkit-appearance: none;
    appearance: none;
}

.apps-theme-content .affiliate-program-form-card .apps-theme-button,
.apps-theme-content .business-program-form-card .apps-theme-button,
.column.main .affiliate-program-form-card .apps-theme-button,
.column.main .business-program-form-card .apps-theme-button {
    width: 100%;
    min-height: 48px;
    line-height: 1.2;
    padding: 14px 26px;
    border: none;
    opacity: 1;
}

/* --- Alekseon Widget Form Styles --- */

/* wrapper within card — no extra padding, Alekseon handles its own */
.affiliate-program-form-card .alekseon-widget-form-wrapper,
.business-program-form-card .alekseon-widget-form-wrapper {
    padding: 0;
}

/* field layout — 2-column grid matching design station */
.affiliate-program-form-card .fieldset,
.business-program-form-card .fieldset {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
    margin: 0;
    padding: 0;
    border: none;
}

/* textarea and certain fields should span full width */
.affiliate-program-form-card .fieldset .field:has(textarea),
.affiliate-program-form-card .fieldset .field:has(.fieldset),
.business-program-form-card .fieldset .field:has(textarea),
.business-program-form-card .fieldset .field:has(.fieldset) {
    grid-column: 1 / -1;
}

/* field wrapper */
.affiliate-program-form-card .field,
.business-program-form-card .field {
    margin: 0;
}

/* labels */
.affiliate-program-form-card .label,
.business-program-form-card .label {
    display: block;
    font-family: var(--apps-theme-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--apps-theme-color-ink);
    margin-bottom: 4px;
}

.affiliate-program-form-card .label .required-star,
.business-program-form-card .label .required-star {
    color: var(--apps-theme-color-brand);
    margin-left: 2px;
}

/* inputs / selects / textareas */
.affiliate-program-form-card .control input,
.affiliate-program-form-card .control select,
.affiliate-program-form-card .control textarea,
.business-program-form-card .control input,
.business-program-form-card .control select,
.business-program-form-card .control textarea {
    width: 100%;
    box-sizing: border-box;
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
    border: 1.5px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink);
    padding: 12px 14px;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
    transition: border-color var(--apps-theme-duration-fast), background var(--apps-theme-duration-fast);
    min-height: 44px;
}

.affiliate-program-form-card .control input:focus,
.affiliate-program-form-card .control select:focus,
.affiliate-program-form-card .control textarea:focus,
.business-program-form-card .control input:focus,
.business-program-form-card .control select:focus,
.business-program-form-card .control textarea:focus {
    border-color: var(--apps-theme-color-primary);
    background: #fff;
}

.affiliate-program-form-card .control textarea,
.business-program-form-card .control textarea {
    min-height: 100px;
    resize: vertical;
}

/* submit button */
.affiliate-program-form-card .actions-toolbar,
.business-program-form-card .actions-toolbar {
    margin-top: 16px;
    text-align: center;
}

.affiliate-program-form-card .actions-toolbar .action.submit.primary,
.business-program-form-card .actions-toolbar .action.submit.primary {
    width: 100%;
    min-height: 48px;
    line-height: 1.2;
    padding: 14px 26px;
    border: none;
    border-radius: 8px;
    background: var(--apps-theme-color-brand);
    color: #fff;
    font-family: var(--apps-theme-font-body);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.affiliate-program-form-card .actions-toolbar .action.submit.primary:hover,
.business-program-form-card .actions-toolbar .action.submit.primary:hover {
    background: var(--apps-theme-color-brand-deep);
}

/* success message styling */
.affiliate-program-form-card .alekseon-widget-form-submit-success,
.business-program-form-card .alekseon-widget-form-submit-success,
.affiliate-program-form-card .message-success,
.business-program-form-card .message-success {
    text-align: center;
    padding: 20px 0;
}

.affiliate-program-form-card .message-success,
.business-program-form-card .message-success {
    background: transparent;
    border: none;
    color: var(--apps-theme-color-ink);
    font-family: var(--apps-theme-font-body);
    font-size: 15px;
}

/* field group wrapper for multiselect / boolean */
.affiliate-program-form-card .fieldset .fieldset,
.business-program-form-card .fieldset .fieldset {
    margin: 0;
    padding: 0;
}

/* hide Alekseon legend */
.affiliate-program-form-card .legend,
.business-program-form-card .legend {
    display: none;
}

/* --- End Alekseon Widget Form Styles --- */

/* ===== Share-experience Modal ===== */

.share-modal {
    position: relative;
    width: 100%;
    max-width: 520px;
    max-height: calc(100vh - 48px);
    background: #fff;
    border-radius: var(--apps-theme-radius-2xl);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: var(--apps-theme-shadow-lg);
}

.share-close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--apps-theme-duration-fast);
}

.share-close svg {
    display: block;
    width: 16px;
    height: 16px;
}

.share-close:hover {
    background: rgba(255, 255, 255, 0.26);
}

.share-head {
    flex-shrink: 0;
    position: relative;
    padding: 26px 30px 22px;
    color: #fff;
    background:
        radial-gradient(420px 220px at 88% 8%, rgba(105, 205, 255, 0.22), transparent 62%),
        linear-gradient(180deg, var(--apps-theme-color-primary) 0%, var(--apps-theme-color-primary-deep) 100%);
}

/* 作用域加 .support-modal-bg 前缀，压过父主题 .column.main .eyebrow / h3 */
.support-modal-bg .share-head .eyebrow {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--apps-theme-color-sky-mid);
}

.share-head .eyebrow svg {
    width: 15px;
    height: 15px;
}

.support-modal-bg .share-head h3 {
    margin: 0 0 5px;
    font-size: 23px;
    font-weight: 700;
    color: #fff;
}

.share-head p {
    margin: 0;
    max-width: 42ch;
    font-size: 13.5px;
    line-height: 1.5;
    color: rgba(220, 231, 240, 0.82);
}

.share-body {
    padding: 24px 30px 28px;
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.share-form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.share-form.hide {
    display: none;
}

.share-field {
    margin-bottom: 18px;
}

.share-field:last-child {
    margin-bottom: 0;
}

.share-label {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    margin-bottom: 8px;
}

.share-label .req {
    color: var(--apps-theme-color-brand);
    margin-left: 2px;
}

.share-label .opt {
    font-weight: 600;
    font-size: 11.5px;
    color: var(--apps-theme-color-ink-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.share-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.share-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: auto;
    min-width: 0;
    padding: 8px 14px;
    font-family: var(--apps-theme-font-body);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    border-radius: var(--apps-theme-radius-pill);
    border: 1.5px solid var(--apps-theme-color-line);
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-muted);
    cursor: pointer;
    transition: all var(--apps-theme-duration-fast);
    white-space: nowrap;
}

.share-chip:hover {
    background: var(--apps-theme-color-surface);
    border-color: var(--apps-theme-color-sky-deep);
    color: var(--apps-theme-color-sky-deep);
}

.share-chip.on {
    background: var(--apps-theme-color-primary);
    border-color: var(--apps-theme-color-primary);
    color: #fff;
}

.share-chip.solo.on {
    background: var(--apps-theme-color-sky-deep);
    border-color: var(--apps-theme-color-sky-deep);
}

.share-chip .chk {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    margin-left: -2px;
    opacity: 0;
    display: inline-flex;
    align-items: center;
    transition: opacity var(--apps-theme-duration-fast);
}

.share-chip .chk svg {
    width: 15px;
    height: 15px;
}

.share-chip.on .chk {
    opacity: 1;
}

.share-other {
    width: 100%;
    box-sizing: border-box;
    margin-top: 9px;
    padding: 10px 13px;
    font-family: var(--apps-theme-font-body);
    font-size: 13.5px;
    color: var(--apps-theme-color-ink);
    background: var(--apps-theme-color-surface);
    border: 1.5px dashed var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    outline: none;
    transition: border-color var(--apps-theme-duration-fast), background var(--apps-theme-duration-fast);
}

.share-other::placeholder {
    color: var(--apps-theme-color-ink-faint);
}

.share-other:focus {
    border-style: solid;
    border-color: var(--apps-theme-color-primary);
    background: #fff;
}

.share-stars {
    display: flex;
    gap: 6px;
}

.share-stars button {
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1.5px solid var(--apps-theme-color-line);
    border-radius: 9px;
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-faint);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--apps-theme-duration-fast);
}

.share-stars button svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.share-stars button.on {
    background: var(--apps-theme-color-yellow);
    border-color: var(--apps-theme-color-yellow);
    color: #fff;
}

.share-stars button.on svg {
    fill: #fff;
}

.share-input,
.share-textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
    color: var(--apps-theme-color-ink);
    background: var(--apps-theme-color-surface);
    border: 1.5px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    outline: none;
    transition: border-color var(--apps-theme-duration-fast), background var(--apps-theme-duration-fast);
}

.share-input::placeholder,
.share-textarea::placeholder {
    color: var(--apps-theme-color-ink-faint);
}

.share-input:focus,
.share-textarea:focus {
    border-color: var(--apps-theme-color-primary);
    background: #fff;
}

.share-textarea {
    min-height: 70px;
    line-height: 1.55;
    resize: vertical;
}

.share-email-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 9px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--apps-theme-color-ink-soft);
}

.share-email-note svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    margin-top: 1px;
    color: var(--apps-theme-color-sky-deep);
}

.share-consent {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 4px;
}

.share-consent input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    flex-shrink: 0;
    /* 覆盖 Magento styles-m: input[type=checkbox] { margin: 2px 5px 0 0; top: 2px } */
    margin: 1px 0 0;
    padding: 0;
    width: 15px;
    height: 15px;
    box-sizing: border-box;
    border: 1.5px solid rgba(14, 35, 72, .32);
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    position: relative;
    top: 0;
    accent-color: unset;
}

.share-consent input[type="checkbox"]:checked {
    background: var(--apps-theme-color-primary);
    border-color: var(--apps-theme-color-primary);
}

.share-consent input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 3.5px;
    height: 7px;
    border: solid #fff;
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
    box-sizing: border-box;
}

.share-consent label {
    font-size: 12px;
    line-height: 1.5;
    color: var(--apps-theme-color-ink-soft);
    cursor: pointer;
}

/* 作用域加 .support-modal-bg .share-modal 前缀(0,3,0)，压过父主题 .column.main .btn(0,3,0) 的 width:auto */
.support-modal-bg .share-modal .share-submit {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 14px;
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 15px;
}

/* submitting 时 JS 仍会设 disabled，保留此态 */
.share-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ===== 表单错误状态 ===== */

.share-field-err {
    display: none;
    margin-top: 5px;
    font-size: 12.5px;
    color: var(--apps-theme-color-brand);
    line-height: 1.4;
}

.share-field-err.on {
    display: block;
}

/* 高亮错误项 */
.share-field.has-error .share-input,
.share-field.has-error .share-textarea {
    border-color: var(--apps-theme-color-brand);
    box-shadow: 0 0 0 3px rgba(200,40,40,.08);
}

.share-field.has-error .share-chips {
    padding: 8px;
    border: 1px dashed var(--apps-theme-color-brand);
    border-radius: var(--apps-theme-radius-md);
}

.share-field.has-error .share-stars {
    outline: 2px solid var(--apps-theme-color-brand);
    outline-offset: 4px;
    border-radius: var(--apps-theme-radius-sm);
}

.share-field.share-consent.has-error {
    background: rgba(200,40,40,.06);
    border-radius: var(--apps-theme-radius-sm);
    padding: 8px 10px;
}

/* 服务端错误提示（提交按钮下方） */
.share-server-err {
    display: none;
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: var(--apps-theme-radius-md);
    background: rgba(200,40,40,.08);
    color: var(--apps-theme-color-brand-deep);
    font-size: 13px;
    line-height: 1.45;
}

.share-server-err.on {
    display: block;
}

.share-foot-note {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--apps-theme-color-line);
    font-size: 12px;
    line-height: 1.5;
    color: var(--apps-theme-color-ink-soft);
    text-align: center;
}

.share-field-hint {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--apps-theme-color-ink-faint);
    margin-top: 7px;
}

.share-success {
    display: none;
    padding: 40px 34px 36px;
    text-align: center;
}

.share-success.on {
    display: block;
}

.share-success .ss-check {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    margin: 0 auto 18px;
    background: #E8F5EA;
    color: var(--apps-theme-color-green);
    display: flex;
    align-items: center;
    justify-content: center;
}

.share-success .ss-check svg {
    width: 32px;
    height: 32px;
}

.share-success h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    margin: 0 0 8px;
}

.share-success p {
    max-width: 38ch;
    font-size: 14px;
    color: var(--apps-theme-color-ink-muted);
    margin: 0 auto 22px;
    line-height: 1.6;
}

.share-success .ss-email {
    font-weight: 700;
    color: var(--apps-theme-color-ink);
}

/* Support modal bg — shared with other modals */
.support-modal-bg {
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: rgba(0,0,0,0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s, visibility 0.25s;
}

.support-modal-bg.open {
    opacity: 1;
    visibility: visible;
}

/* ===== End Share Modal ===== */

/* MageTime/apps parent: button { width:100%; line-height:32px; padding:6px 10px; background:#4a4a4a; color:#fff } */
.column.main .coverage-landing .plans-toggle button,
.column.main .coverage-landing .device-tabs button,
.column.main .buy-flow .plans-toggle button {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    max-width: none;
    min-height: 40px;
    height: auto;
    margin: 0;
    padding: 10px 24px;
    border: none;
    border-radius: var(--apps-theme-radius-pill);
    box-shadow: none;
    opacity: 1;
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: normal;
    white-space: nowrap;
    cursor: pointer;
    background-color: transparent;
    color: var(--apps-theme-color-ink-muted);
    transition: background-color var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast);
}

.column.main .coverage-landing .device-tabs button {
    gap: 8px;
}

.column.main .coverage-landing .plans-toggle button.is-active,
.column.main .coverage-landing .plans-toggle button.on,
.column.main .coverage-landing .device-tabs button.is-active,
.column.main .coverage-landing .device-tabs button.on,
.column.main .buy-flow .plans-toggle button.is-active,
.column.main .buy-flow .plans-toggle button.on {
    background-color: var(--apps-theme-color-primary);
    color: #fff;
}

.column.main .coverage-landing .plans-toggle button:hover:not(.is-active):not(.on),
.column.main .coverage-landing .plans-toggle button:focus:not(.is-active):not(.on),
.column.main .coverage-landing .device-tabs button:hover:not(.is-active):not(.on),
.column.main .coverage-landing .device-tabs button:focus:not(.is-active):not(.on),
.column.main .buy-flow .plans-toggle button:hover:not(.is-active):not(.on),
.column.main .buy-flow .plans-toggle button:focus:not(.is-active):not(.on) {
    background-color: rgba(14, 35, 72, .06);
    color: var(--apps-theme-color-ink-muted);
}

.column.main .coverage-landing .plans-toggle button.is-active:hover,
.column.main .coverage-landing .plans-toggle button.is-active:focus,
.column.main .coverage-landing .plans-toggle button.is-active:active,
.column.main .coverage-landing .plans-toggle button.on:hover,
.column.main .coverage-landing .plans-toggle button.on:focus,
.column.main .coverage-landing .plans-toggle button.on:active,
.column.main .coverage-landing .device-tabs button.is-active:hover,
.column.main .coverage-landing .device-tabs button.is-active:focus,
.column.main .coverage-landing .device-tabs button.is-active:active,
.column.main .coverage-landing .device-tabs button.on:hover,
.column.main .coverage-landing .device-tabs button.on:focus,
.column.main .coverage-landing .device-tabs button.on:active,
.column.main .buy-flow .plans-toggle button.is-active:hover,
.column.main .buy-flow .plans-toggle button.is-active:focus,
.column.main .buy-flow .plans-toggle button.is-active:active,
.column.main .buy-flow .plans-toggle button.on:hover,
.column.main .buy-flow .plans-toggle button.on:focus,
.column.main .buy-flow .plans-toggle button.on:active {
    background-color: var(--apps-theme-color-primary);
    color: #fff;
    opacity: 1;
    border: none;
    box-shadow: none;
}

.column.main .coverage-landing .plans-toggle button:hover,
.column.main .coverage-landing .plans-toggle button:focus,
.column.main .coverage-landing .plans-toggle button:active,
.column.main .coverage-landing .device-tabs button:hover,
.column.main .coverage-landing .device-tabs button:focus,
.column.main .coverage-landing .device-tabs button:active {
    opacity: 1;
    border: none;
    box-shadow: none;
}

.apps-theme-content .btn:hover,
.apps-theme-content .apps-theme-button:hover,
.apps-theme-content .btn:focus,
.apps-theme-content .apps-theme-button:focus,
.apps-theme-content .btn:active,
.apps-theme-content .apps-theme-button:active,
.column.main .btn:hover,
.column.main .apps-theme-button:hover,
.column.main .btn:focus,
.column.main .apps-theme-button:focus,
.column.main .btn:active {
    opacity: 1;
    text-decoration: none;
    outline: none;
    border-color: transparent;
}

.apps-theme-content .cta-band .btn-ghost,
.column.main .cta-band .btn-ghost {
    color: var(--apps-theme-color-primary);
    border-color: rgba(11, 63, 103, .22);
}

.apps-theme-content .cta-band .btn-ghost:hover,
.column.main .cta-band .btn-ghost:hover {
    border-color: var(--apps-theme-color-primary);
    background: #fff;
    color: var(--apps-theme-color-primary-deep);
}

/* Reusable CMS action rows */
.apps-theme-content .hero-actions,
.column.main .hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 28px;
}

/* Reusable stats band */
.apps-theme-content .stats-band,
.column.main .stats-band {
    background: var(--apps-theme-color-primary-deep);
    color: #fff;
}

.apps-theme-content .stats-grid,
.column.main .stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    padding: clamp(40px, 5vw, 64px) 0;
}

@media (max-width: 820px) {
    .apps-theme-content .stats-grid,
    .column.main .stats-grid {
        grid-template-columns: 1fr 1fr;
        gap: 36px 24px;
    }
}

.apps-theme-content .apps-theme-stat-item .apps-theme-stat-value,
.column.main .apps-theme-stat-item .apps-theme-stat-value {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: clamp(34px, 4vw, 52px);
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1;
}

.apps-theme-content .apps-theme-stat-item .apps-theme-stat-value-unit,
.column.main .apps-theme-stat-item .apps-theme-stat-value-unit {
    color: var(--apps-theme-color-sky-mid);
}

.apps-theme-content .apps-theme-stat-item .apps-theme-stat-label,
.column.main .apps-theme-stat-item .apps-theme-stat-label {
    font-size: 14px;
    color: rgba(185, 219, 254, .8);
    margin-top: 10px;
    line-height: 1.4;
}

/* Reusable values grid (home, about, etc.) */
.apps-theme-content .values-grid,
.column.main .values-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

@media (max-width: 767px) {
    .apps-theme-content .values-grid,
    .column.main .values-grid {
        grid-template-columns: 1fr;
    }
}

.apps-theme-content .section.bg .value-card,
.column.main .section.bg .value-card {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    background: var(--apps-theme-color-white);
    border-radius: var(--apps-theme-radius-lg);
    padding: 26px;
    min-width: 0;
}

.apps-theme-content .value-card img,
.column.main .value-card img {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
}

.apps-theme-content .value-card h3,
.column.main .value-card h3 {
    margin-bottom: 6px;
}

.apps-theme-content .value-card p,
.column.main .value-card p {
    color: var(--apps-theme-color-ink-muted);
    font-size: 14.5px;
    line-height: 1.6;
}

@media (max-width: 767px) {
    .apps-theme-content .hero-actions,
    .apps-theme-content .cta-actions,
    .column.main .hero-actions,
    .column.main .cta-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .apps-theme-content .hero-actions .btn,
    .apps-theme-content .cta-actions .btn,
    .column.main .hero-actions .btn,
    .column.main .cta-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* Page hero */
.apps-theme-content .page-hero,
.column.main .page-hero {
    background: var(--apps-theme-color-primary);
    color: #fff;
    position: relative;
    overflow: hidden;
    padding: clamp(56px, 7vw, 96px) 0 clamp(56px, 7vw, 92px);
}

.apps-theme-content .page-hero::after,
.column.main .page-hero::after {
    content: "";
    position: absolute;
    right: -120px;
    top: -120px;
    width: 460px;
    height: 460px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(105, 205, 255, .18), transparent 60%);
    pointer-events: none;
}

.apps-theme-content .page-hero .eyebrow,
.column.main .page-hero .eyebrow {
    color: var(--apps-theme-color-sky-mid);
}

.apps-theme-content .page-hero h1,
.column.main .page-hero h1 {
    color: #fff;
    max-width: 18ch;
}

.apps-theme-content .page-hero .apps-theme-page-lead,
.column.main .page-hero .apps-theme-page-lead {
    color: rgba(255, 255, 255, .82);
    margin-top: 18px;
}

.apps-theme-content .page-hero .apps-theme-page-breadcrumbs,
.column.main .page-hero .apps-theme-page-breadcrumbs {
    margin-bottom: 18px;
}

.apps-theme-content .apps-theme-page-breadcrumbs,
.column.main .apps-theme-page-breadcrumbs {
    font-size: 13px;
    color: rgba(255, 255, 255, .6);
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.apps-theme-content .apps-theme-page-breadcrumbs a,
.column.main .apps-theme-page-breadcrumbs a {
    color: rgba(255, 255, 255, .78);
    text-decoration: none;
}

.apps-theme-content .apps-theme-page-breadcrumbs a:hover,
.column.main .apps-theme-page-breadcrumbs a:hover {
    color: #fff;
    text-decoration: underline;
}

.apps-theme-content .apps-theme-page-breadcrumbs .apps-theme-page-breadcrumb-separator,
.column.main .apps-theme-page-breadcrumbs .apps-theme-page-breadcrumb-separator {
    opacity: .5;
}

.apps-theme-content .page-hero.light,
.column.main .page-hero.light {
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink);
}

.apps-theme-content .page-hero.light::after,
.column.main .page-hero.light::after {
    background: radial-gradient(circle at 30% 30%, rgba(11, 63, 103, .06), transparent 60%);
}

.apps-theme-content .page-hero.light h1,
.column.main .page-hero.light h1 {
    color: var(--apps-theme-color-ink);
}

.apps-theme-content .page-hero.light .eyebrow,
.column.main .page-hero.light .eyebrow {
    color: var(--apps-theme-color-brand);
}

/* Static Page Design Patterns
   The design export defined these in page-local HTML. We surface them here so
   static CMS pages use an explicit, theme-owned contract. */
.apps-theme-content .apps-theme-content-hero,
.column.main .apps-theme-content-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(46px, 6vw, 76px) 0 clamp(44px, 5vw, 68px);
}

.apps-theme-content .apps-theme-content-hero::before,
.column.main .apps-theme-content-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(620px 420px at 84% 18%, rgba(105, 205, 255, .18), transparent 58%),
        radial-gradient(560px 420px at 8% 92%, rgba(244, 236, 216, .26), transparent 66%);
    pointer-events: none;
}

.apps-theme-content .apps-theme-content-hero .container,
.column.main .apps-theme-content-hero .container {
    position: relative;
    z-index: 1;
}

.apps-theme-content .apps-theme-content-hero-grid,
.column.main .apps-theme-content-hero-grid {
    display: grid;
    grid-template-columns: 1.02fr .98fr;
    gap: clamp(36px, 5vw, 60px);
    align-items: center;
}

.apps-theme-content .apps-theme-content-eyebrow,
.column.main .apps-theme-content-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-radius: var(--apps-theme-radius-pill);
    background: rgba(255, 255, 255, .78);
    color: var(--apps-theme-color-primary);
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
    box-shadow: var(--apps-theme-shadow-sm);
}

.apps-theme-content .apps-theme-code-dot,
.column.main .apps-theme-code-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--apps-theme-color-green);
    box-shadow: 0 0 0 4px rgba(47, 143, 78, .18);
    display: inline-block;
    flex-shrink: 0;
}

.apps-theme-content .apps-theme-content-subtitle,
.column.main .apps-theme-content-subtitle {
    font-size: clamp(16px, 1.4vw, 18px);
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.6;
}

.apps-theme-content .apps-theme-content-pills,
.column.main .apps-theme-content-pills {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.apps-theme-content .apps-theme-content-pill,
.column.main .apps-theme-content-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 15px;
    border-radius: var(--apps-theme-radius-pill);
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    color: var(--apps-theme-color-primary);
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 13px;
    box-shadow: var(--apps-theme-shadow-sm);
}

.apps-theme-content .apps-theme-content-pill svg,
.column.main .apps-theme-content-pill svg {
    width: 15px;
    height: 15px;
    color: var(--apps-theme-color-sky-deep);
    flex-shrink: 0;
}

.apps-theme-content .apps-theme-content-actions,
.column.main .apps-theme-content-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 28px;
}

.apps-theme-content .apps-theme-content-actions .btn,
.apps-theme-content .apps-theme-content-actions .apps-theme-button,
.column.main .apps-theme-content-actions .btn,
.column.main .apps-theme-content-actions .apps-theme-button {
    box-shadow: 0 14px 32px rgba(11, 63, 103, .18);
}

.apps-theme-content .apps-theme-content-art,
.column.main .apps-theme-content-art {
    position: relative;
    min-height: 340px;
}

.apps-theme-content .apps-theme-content-disc,
.column.main .apps-theme-content-disc {
    position: absolute;
    inset: 50% auto auto 50%;
    width: min(420px, 78vw);
    height: min(420px, 78vw);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(105, 205, 255, .24), rgba(184, 212, 232, .08) 60%, transparent 74%);
}

.apps-theme-content .apps-theme-page-section,
.column.main .apps-theme-page-section {
    padding: clamp(64px, 8vw, 104px) 0;
}

.apps-theme-content .apps-theme-section-head,
.column.main .apps-theme-section-head {
    max-width: 680px;
    margin: 0 0 clamp(36px, 4vw, 52px);
}

.apps-theme-content .apps-theme-section-head .eyebrow,
.column.main .apps-theme-section-head .eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--apps-theme-color-brand);
}

.apps-theme-content .apps-theme-section-head h2,
.column.main .apps-theme-section-head h2 {
    margin: 0 0 12px;
}

.apps-theme-content .apps-theme-section-subtitle,
.column.main .apps-theme-section-subtitle {
    font-size: clamp(16px, 1.4vw, 18px);
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.55;
    max-width: 560px;
    margin: 0;
}

.apps-theme-content .apps-theme-section-head-light h2,
.column.main .apps-theme-section-head-light h2 {
    color: #fff;
}

.apps-theme-content .apps-theme-code-label,
.column.main .apps-theme-code-label {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    letter-spacing: .04em;
    color: var(--apps-theme-color-primary);
    background: var(--apps-theme-color-sky);
    padding: .06em .36em;
    border-radius: 8px;
}

.apps-theme-content .apps-theme-device-frame,
.column.main .apps-theme-device-frame {
    position: relative;
    width: 100%;
    max-width: 286px;
    margin: 0 auto;
    background: #0c0d10;
    border-radius: 46px;
    padding: 9px;
    box-shadow: 0 34px 72px rgba(11, 63, 103, .30), 0 6px 16px rgba(0, 0, 0, .18);
}

.apps-theme-content .apps-theme-device-frame img,
.column.main .apps-theme-device-frame img {
    display: block;
    width: 100%;
    border-radius: 38px;
}

.apps-theme-content .apps-theme-status-badge,
.column.main .apps-theme-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 12.5px;
    padding: 10px 16px;
    border-radius: var(--apps-theme-radius-pill);
    box-shadow: var(--apps-theme-shadow-md);
}

.apps-theme-content .apps-theme-status-badge svg,
.column.main .apps-theme-status-badge svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
/* ── FAQ list item (global, used by embed module & faq page) ── */
.apps-theme-faq-item {
    border-top: 1px solid var(--apps-theme-color-line);
}

.apps-theme-faq-item:first-of-type {
    border-top: none;
}

.apps-theme-faq-item:last-of-type {
    border-bottom: 1px solid var(--apps-theme-color-line);
}

.apps-theme-faq-item summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 24px 0;
    cursor: pointer;
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--apps-theme-color-ink);
    list-style: none;
}

.apps-theme-faq-item summary::-webkit-details-marker {
    display: none;
}

.apps-theme-faq-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--apps-theme-color-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--apps-theme-color-ink-muted);
    font-size: 18px;
    line-height: 1;
    font-weight: 400;
    transition: background var(--apps-theme-duration-fast), transform var(--apps-theme-duration-base) var(--apps-theme-ease);
}

.apps-theme-faq-item[open] .apps-theme-faq-icon {
    background: var(--apps-theme-color-primary);
    color: #fff;
    transform: rotate(45deg);
}

.apps-theme-faq-answer {
    padding: 0 0 24px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--apps-theme-color-ink-muted);
    max-width: 100%;
}

.apps-theme-faq-answer strong {
    color: var(--apps-theme-color-ink);
    font-weight: 700;
}

.apps-theme-faq-answer a {
    color: var(--apps-theme-color-brand);
    font-weight: 700;
}

.apps-theme-faq-answer p {
    margin: 0;
}

.apps-theme-faq-page {
    --apps-faq-accent: var(--apps-theme-color-primary);
    --apps-faq-sticky-top: 88px;
}

.apps-theme-faq-page .faq-hero {
    padding: clamp(56px, 7vw, 96px) 0 clamp(56px, 7vw, 92px);
}

.apps-theme-faq-page .faq-hero::after {
    right: -120px;
    top: -120px;
    width: 460px;
    height: 460px;
    background: radial-gradient(circle at 30% 30%, rgba(105, 205, 255, .18), transparent 60%);
}

.apps-theme-faq-page .faq-hero .container {
    max-width: var(--apps-theme-container);
    position: relative;
    z-index: 1;
}

.apps-theme-faq-page .faq-body .container,
.apps-theme-faq-page .apps-theme-faq-help-section .container {
    max-width: var(--apps-theme-container);
}

.apps-theme-faq-page .faq-hero .apps-theme-page-breadcrumbs {
    margin-bottom: 18px;
}

.apps-theme-faq-page .faq-hero .apps-theme-page-lead {
    max-width: 54ch;
}

.apps-theme-faq-page .faq-search {
    position: relative;
    max-width: 560px;
    margin-top: 28px;
}

.apps-theme-faq-page .faq-search svg {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    color: var(--apps-theme-color-ink-soft);
    pointer-events: none;
}

.apps-theme-faq-page .faq-search input {
    width: 100%;
    box-sizing: border-box;
    height: 58px;
    padding: 0 52px 0 50px;
    border: none;
    border-radius: var(--apps-theme-radius-pill);
    background: #fff;
    color: var(--apps-theme-color-ink);
    font-family: var(--apps-theme-font-body);
    font-size: 16px;
    font-weight: 600;
    box-shadow: 0 14px 34px rgba(8, 44, 69, .22);
    outline: none;
}

.apps-theme-faq-page .faq-search input::placeholder {
    color: var(--apps-theme-color-ink-soft);
    font-weight: 500;
}

.apps-theme-faq-page .faq-search .clr {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-muted);
    font-size: 17px;
    border: none;
    cursor: pointer;
}

.apps-theme-faq-page .faq-search .clr:hover {
    background: var(--apps-theme-color-surface-alt);
}

.apps-theme-faq-page .faq-search.has-val .clr {
    display: flex;
}

.apps-theme-faq-page .faq-body {
    padding: clamp(48px, 6vw, 84px) 0;
    background: #fff;
}

.apps-theme-faq-page .faq-wrap {
    display: grid;
    grid-template-columns: 248px 1fr;
    gap: clamp(40px, 5vw, 72px);
    align-items: start;
    width: 100%;
}

.apps-theme-faq-page .faq-nav {
    position: sticky;
    top: var(--apps-faq-sticky-top);
    min-width: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    align-self: start;
    max-height: calc(100vh - var(--apps-faq-sticky-top) - 18px);
    max-height: calc(100dvh - var(--apps-faq-sticky-top) - 18px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    box-sizing: border-box;
}

.apps-theme-faq-page .faq-nav .faq-nav-h {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-soft);
    margin: 0 0 14px 14px;
}

.apps-theme-faq-page .faq-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    padding-right: 4px;
    padding-bottom: 2px;
    scrollbar-width: thin;
    scrollbar-color: rgba(8, 44, 69, .22) transparent;
    -webkit-overflow-scrolling: touch;
}

.apps-theme-faq-page .faq-nav ul::-webkit-scrollbar {
    width: 6px;
}

.apps-theme-faq-page .faq-nav ul::-webkit-scrollbar-track {
    background: transparent;
}

.apps-theme-faq-page .faq-nav ul::-webkit-scrollbar-thumb {
    background: rgba(8, 44, 69, .18);
    border-radius: var(--apps-theme-radius-pill);
}

.apps-theme-faq-page .faq-nav ul::-webkit-scrollbar-thumb:hover {
    background: rgba(8, 44, 69, .32);
}

.apps-theme-faq-page .faq-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    border: 0;
    border-radius: var(--apps-theme-radius-md);
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 14.5px;
    line-height: 1.35;
    color: var(--apps-theme-color-ink-muted);
    transition: background var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast);
    text-decoration: none;
    min-width: 0;
}

.apps-theme-faq-page .faq-nav a:hover {
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink);
}

.apps-theme-faq-page .faq-nav a .ct {
    font-size: 12px;
    font-weight: 800;
    color: var(--apps-theme-color-ink-faint);
    background: var(--apps-theme-color-surface);
    border-radius: var(--apps-theme-radius-pill);
    padding: 2px 9px;
    transition: background var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast);
    flex-shrink: 0;
}

.apps-theme-faq-page .faq-nav a.active {
    background: color-mix(in srgb, var(--apps-faq-accent) 10%, transparent);
    color: var(--apps-faq-accent);
}

.apps-theme-faq-page .faq-nav a.active .ct {
    background: var(--apps-faq-accent);
    color: #fff;
}

.apps-theme-faq-page .faq-main {
    min-width: 0;
    width: 100%;
    padding-top: 0;
}

.apps-theme-faq-page .faq-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
    flex-wrap: wrap;
    padding-bottom: 0;
    border-bottom: none;
}

.apps-theme-faq-page .faq-count {
    font-size: 13.5px;
    color: var(--apps-theme-color-ink-soft);
    font-weight: 600;
}

.apps-theme-faq-page .faq-count b {
    color: var(--apps-theme-color-ink);
    font-weight: 800;
}

.apps-theme-faq-page .faq-expand {
    display: flex;
    gap: 6px;
}

.apps-theme-faq-page .faq-expand button {
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13px;
    line-height: 1;
    color: var(--apps-theme-color-ink-muted);
    min-height: auto;
    padding: 7px 13px;
    border-radius: var(--apps-theme-radius-pill);
    border: 1px solid var(--apps-theme-color-line);
    background: #fff;
    box-shadow: none;
    transition: border-color var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast);
    cursor: pointer;
    white-space: nowrap;
}

.apps-theme-faq-page .faq-expand button:hover {
    border-color: var(--apps-faq-accent);
    color: var(--apps-faq-accent);
}

.apps-theme-faq-page .faq-cat {
    margin-bottom: clamp(34px, 4vw, 52px);
    scroll-margin-top: 86px;
    min-width: 0;
}

.apps-theme-faq-page .faq-cat:last-child {
    margin-bottom: 0;
}

.apps-theme-faq-page .faq-cat-h {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 6px;
}

.apps-theme-faq-page .faq-cat-h h2 {
    font-size: clamp(21px, 2.4vw, 27px);
    margin: 0;
}

.apps-theme-faq-page .faq-cat-h .dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--apps-faq-accent);
    flex-shrink: 0;
}

.apps-theme-faq-page .apps-theme-faq-item {
    border-top: 1px solid var(--apps-theme-color-line);
    min-width: 0;
}

.apps-theme-faq-page .apps-theme-faq-item:last-child {
    border-bottom: 1px solid var(--apps-theme-color-line);
}

.apps-theme-faq-page .apps-theme-faq-item summary {
    padding: var(--apps-faq-pad, 21px) 2px;
    font-size: var(--apps-faq-qsize, 17px);
    gap: 18px;
}

.apps-theme-faq-page .faq-q-text {
    flex: 1 1 auto;
    min-width: 0;
}

.apps-theme-faq-page .apps-theme-faq-icon {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-muted);
    font-size: 19px;
    line-height: 1;
    transition: transform var(--apps-theme-duration-base) var(--apps-theme-ease), background var(--apps-theme-duration-base), color var(--apps-theme-duration-base);
}

.apps-theme-faq-page .apps-theme-faq-item[open] .apps-theme-faq-icon {
    background: var(--apps-faq-accent);
    color: #fff;
    transform: rotate(45deg);
}

.apps-theme-faq-page .apps-theme-faq-item summary:hover .apps-theme-faq-icon {
    background: var(--apps-theme-color-surface-alt);
}

.apps-theme-faq-page .apps-theme-faq-item[open] summary:hover .apps-theme-faq-icon {
    background: var(--apps-faq-accent);
}

.apps-theme-faq-page .apps-theme-faq-answer {
    padding: 0 44px var(--apps-faq-pad, 21px) 2px;
    max-width: 74ch;
    min-width: 0;
}

.apps-theme-faq-page .apps-theme-faq-answer p {
    font-size: var(--apps-faq-asize, 15px);
    line-height: 1.72;
    color: var(--apps-theme-color-ink-muted);
    margin: 0 0 10px;
}

.apps-theme-faq-page .apps-theme-faq-answer p:last-child {
    margin-bottom: 0;
}

.apps-theme-faq-page .apps-theme-faq-answer strong {
    color: var(--apps-theme-color-ink);
    font-weight: 700;
}

.apps-theme-faq-page .apps-theme-faq-answer a {
    color: var(--apps-faq-accent);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.apps-theme-faq-page .apps-theme-faq-item[hidden] {
    display: none;
}

.apps-theme-faq-page .faq-cat[hidden] {
    display: none;
}

.apps-theme-faq-page mark.fq-hl {
    background: rgba(105, 205, 255, .42);
    color: inherit;
    border-radius: 3px;
    padding: 0 1px;
    margin: 0;
    display: inline;
    line-height: inherit;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.apps-theme-faq-page .faq-empty {
    display: none;
    text-align: center;
    padding: 60px 20px;
    color: var(--apps-theme-color-ink-muted);
}

.apps-theme-faq-page .faq-empty.show {
    display: block;
}

.apps-theme-faq-page .faq-empty h3 {
    margin: 0 0 8px;
}

.apps-theme-faq-page .faq-empty p {
    font-size: 15px;
    color: var(--apps-theme-color-ink-soft);
    margin: 0 0 18px;
}

.apps-theme-faq-page[data-density="compact"] {
    --apps-faq-pad: 15px;
    --apps-faq-qsize: 16px;
    --apps-faq-asize: 14.5px;
}

.apps-theme-faq-page .faq-help {
    background: var(--apps-theme-color-primary);
    color: #fff;
    border-radius: var(--apps-theme-radius-2xl);
    padding: clamp(34px, 4vw, 52px) clamp(24px, 5vw, 56px);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.apps-theme-faq-page .faq-help::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -90px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(105, 205, 255, .2), transparent 62%);
    pointer-events: none;
}

.apps-theme-faq-page .faq-help h2 {
    color: #fff;
    margin: 0 0 8px;
    font-size: clamp(31px, 4vw, 42px);
}

.apps-theme-faq-page .faq-help p {
    color: rgba(255, 255, 255, .82);
    font-size: 14px;
    max-width: 46ch;
    margin: 0 auto 20px;
    line-height: 1.6;
}

.apps-theme-faq-page .faq-help .acts {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

.apps-theme-faq-page .faq-help .acts .apps-theme-button {
    min-width: 176px;
    min-height: 44px;
    padding: 11px 20px;
    font-size: 14px;
}

@media (max-width: 860px) {
    .apps-theme-faq-page .faq-hero .container,
    .apps-theme-faq-page .faq-body .container,
    .apps-theme-faq-page .apps-theme-faq-help-section .container {
        max-width: var(--apps-theme-container);
    }

    .apps-theme-faq-page .faq-wrap {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .apps-theme-faq-page .faq-nav {
        position: static;
        top: auto;
        display: block;
        max-height: none;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .apps-theme-faq-page .faq-nav ul {
        max-height: none;
        overflow: visible;
        padding-right: 0;
        padding-bottom: 0;
        scrollbar-gutter: auto;
    }

    .apps-theme-faq-page .faq-nav .faq-nav-h {
        display: none;
    }

    .apps-theme-faq-page .faq-nav ul {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px;
    }

    .apps-theme-faq-page .faq-nav a {
        border: 1px solid var(--apps-theme-color-line);
        border-radius: var(--apps-theme-radius-pill);
        padding: 8px 14px;
        font-size: 13.5px;
    }

    .apps-theme-faq-page .faq-help .acts .apps-theme-button {
        min-width: 0;
    }
}

.apps-theme-content .apps-theme-form-footnote,
.column.main .apps-theme-form-footnote {
    margin-top: 14px;
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
    line-height: 1.6;
}

.apps-theme-content .apps-theme-form-footnote a,
.column.main .apps-theme-form-footnote a {
    color: var(--apps-theme-color-primary);
    font-weight: 700;
}

.apps-theme-content .apps-theme-form-completion,
.column.main .apps-theme-form-completion {
    display: none;
    text-align: center;
    color: var(--apps-theme-color-ink);
}

.apps-theme-content .apps-theme-form-completion h3,
.column.main .apps-theme-form-completion h3 {
    margin: 14px 0 8px;
}


.apps-theme-content .apps-theme-page-subscribe-section,
.column.main .apps-theme-page-subscribe-section {
    background-color: var(--apps-theme-color-primary);
    background-image: linear-gradient(180deg, var(--apps-theme-color-primary-deep), var(--apps-theme-color-primary));
    text-align: center;
}

.apps-theme-content .apps-theme-page-subscribe-inner,
.column.main .apps-theme-page-subscribe-inner {
    max-width: 680px;
}

.apps-theme-content .apps-theme-page-subscribe-section h2,
.column.main .apps-theme-page-subscribe-section h2 {
    color: #fff;
    margin: 0 0 12px;
}

.apps-theme-content .apps-theme-page-subscribe-section p,
.column.main .apps-theme-page-subscribe-section p {
    color: rgba(255, 255, 255, .74);
    font-size: clamp(16px, 1.5vw, 18px);
    margin: 0 0 28px;
}

.apps-theme-content .apps-theme-page-subscribe-actions,
.column.main .apps-theme-page-subscribe-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}


@media (max-width: 860px) {
    .apps-theme-content .apps-theme-content-hero-grid,
    .column.main .apps-theme-content-hero-grid {
        grid-template-columns: 1fr;
        gap: clamp(36px, 8vw, 56px);
    }
}
.apps-theme-content .page-hero.light .apps-theme-page-lead,
.column.main .page-hero.light .apps-theme-page-lead {
    color: var(--apps-theme-color-ink-muted);
}

.apps-theme-content .page-hero.light .apps-theme-page-breadcrumbs,
.column.main .page-hero.light .apps-theme-page-breadcrumbs {
    color: var(--apps-theme-color-ink-soft);
}

.apps-theme-content .page-hero.light .apps-theme-page-breadcrumbs a,
.column.main .page-hero.light .apps-theme-page-breadcrumbs a {
    color: var(--apps-theme-color-ink-muted);
}

/* Legal / prose */
.apps-theme-content .legal-wrap,
.column.main .legal-wrap {
    padding: clamp(40px, 5vw, 72px) 0 clamp(60px, 7vw, 100px);
}

.apps-theme-content .legal-grid,
.column.main .legal-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: start;
}

@media (max-width: 880px) {
    .apps-theme-content .legal-grid,
    .column.main .legal-grid {
        grid-template-columns: 1fr;
    }
}

.apps-theme-content .legal-toc,
.column.main .legal-toc {
    position: sticky;
    top: 96px;
}

@media (max-width: 880px) {
    .apps-theme-content .legal-toc,
    .column.main .legal-toc {
        position: static;
        top: auto;
        border-bottom: 1px solid var(--apps-theme-color-line);
        padding-bottom: 20px;
        margin-bottom: 8px;
    }
}

.apps-theme-content .legal-toc-h,
.column.main .legal-toc-h {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-soft);
    margin-bottom: 14px;
}

.apps-theme-content .legal-toc ul,
.column.main .legal-toc ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.apps-theme-content .legal-toc li,
.column.main .legal-toc li {
    margin-bottom: 4px;
}

.apps-theme-content .legal-toc a,
.column.main .legal-toc a {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--apps-theme-color-ink-muted);
    padding: 6px 12px;
    border-left: 2px solid transparent;
    border-radius: 0 6px 6px 0;
    transition: all var(--apps-theme-duration-fast);
    text-decoration: none;
}

.apps-theme-content .legal-toc a:hover,
.column.main .legal-toc a:hover {
    color: var(--apps-theme-color-primary);
    background: var(--apps-theme-color-surface);
}

.apps-theme-content .legal-toc a.active,
.column.main .legal-toc a.active {
    color: var(--apps-theme-color-primary);
    border-left-color: var(--apps-theme-color-brand);
    background: var(--apps-theme-color-surface);
}

.apps-theme-content .prose,
.column.main .prose {
    max-width: 72ch;
}

.apps-theme-content .prose .apps-theme-prose-updated,
.column.main .prose .apps-theme-prose-updated {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--apps-theme-color-ink-muted);
    background: var(--apps-theme-color-cream-soft);
    padding: 8px 14px;
    border-radius: var(--apps-theme-radius-pill);
    margin-bottom: 28px;
}

.apps-theme-content .prose .apps-theme-prose-updated .apps-theme-prose-updated-dot,
.column.main .prose .apps-theme-prose-updated .apps-theme-prose-updated-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--apps-theme-color-green);
}

.apps-theme-content .apps-theme-comparison-note,
.column.main .apps-theme-comparison-note {
    margin-top: 18px;
    text-align: center;
    color: var(--apps-theme-color-ink-soft);
    font-size: 14px;
}

.apps-theme-content .apps-theme-comparison-note a,
.column.main .apps-theme-comparison-note a {
    color: var(--apps-theme-color-primary);
    font-weight: 700;
}

.apps-theme-content .prose h2,
.column.main .prose h2 {
    font-size: clamp(22px, 2.4vw, 28px);
    margin: 44px 0 14px;
    scroll-margin-top: 96px;
    padding-top: 6px;
}

.apps-theme-content .prose h2:first-of-type,
.column.main .prose h2:first-of-type {
    margin-top: 8px;
}

.apps-theme-content .prose h3,
.column.main .prose h3 {
    font-size: 18px;
    margin: 28px 0 10px;
}

.apps-theme-content .prose p,
.column.main .prose p {
    margin: 0 0 16px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.7;
}

.apps-theme-content .prose ul,
.apps-theme-content .prose ol,
.column.main .prose ul,
.column.main .prose ol {
    margin: 0 0 16px 22px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.7;
}

.apps-theme-content .prose li,
.column.main .prose li {
    margin-bottom: 8px;
}

.apps-theme-content .prose a,
.column.main .prose a {
    color: var(--apps-theme-color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.apps-theme-content .prose a:hover,
.column.main .prose a:hover {
    color: var(--apps-theme-color-brand);
}

.apps-theme-content .prose strong,
.column.main .prose strong {
    color: var(--apps-theme-color-ink);
}

.apps-theme-content .prose .callout,
.column.main .prose .callout {
    background: var(--apps-theme-color-surface);
    border-radius: var(--apps-theme-radius-md);
    padding: 18px 22px;
    margin: 0 0 22px;
    border-left: 3px solid var(--apps-theme-color-sky-deep);
    font-size: 14.5px;
}

.apps-theme-content .prose .callout.todo,
.column.main .prose .callout.todo {
    border-left-color: var(--apps-theme-color-yellow);
    background: #FFF8E9;
}

.apps-theme-content .prose .callout.todo strong,
.column.main .prose .callout.todo strong {
    color: #9A6B00;
}

.apps-theme-content .prose table,
.column.main .prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 22px;
    font-size: 14.5px;
}

.apps-theme-content .prose th,
.apps-theme-content .prose td,
.column.main .prose th,
.column.main .prose td {
    text-align: left;
    padding: 11px 14px;
    border-bottom: 1px solid var(--apps-theme-color-line);
    vertical-align: top;
}

.apps-theme-content .prose th,
.column.main .prose th {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    background: var(--apps-theme-color-surface);
}

.apps-theme-content .prose td,
.column.main .prose td {
    color: var(--apps-theme-color-ink-muted);
}

/* Sections */
.apps-theme-content .section,
.column.main .section {
    padding: clamp(56px, 7vw, 104px) 0;
}

.apps-theme-content .section.bg,
.column.main .section.bg {
    background: var(--apps-theme-color-surface);
}

.apps-theme-content .section.cream,
.column.main .section.cream {
    background: var(--apps-theme-color-cream-soft);
}

.apps-theme-content .section-head,
.column.main .section-head {
    max-width: 62ch;
    margin: 0 auto clamp(36px, 4vw, 56px);
    text-align: center;
}

.apps-theme-content .section-head.align-left,
.column.main .section-head.align-left {
    margin-left: 0;
    text-align: left;
}

.apps-theme-content .section-head .eyebrow,
.column.main .section-head .eyebrow {
    display: block;
    margin-bottom: 14px;
}

.apps-theme-content .section-head p,
.column.main .section-head p {
    margin-top: 14px;
    color: var(--apps-theme-color-ink-muted);
    font-size: clamp(15px, 1.3vw, 17px);
    line-height: 1.6;
}

.apps-theme-content .cta-band,
.column.main .cta-band {
    background: var(--apps-theme-color-cream-soft);
    border-radius: var(--apps-theme-radius-2xl);
    padding: clamp(40px, 5vw, 64px);
    text-align: center;
}

.apps-theme-content .cta-band p,
.column.main .cta-band p {
    max-width: 50ch;
    margin: 14px auto 26px;
    color: var(--apps-theme-color-ink-muted);
    font-size: 17px;
}

.apps-theme-content .cta-actions,
.column.main .cta-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

/* Cookie notice — theme skin over MageTime_CookieNotice module CSS
 * Specificity targets #m-cookienotice.apps-theme-cookie-bar(.v-bar.v-bottom)
 * so module rules are overridden without !important. */
#m-cookienotice.apps-theme-cookie-bar,
#m-cookienotice.apps-theme-cookie-bar.v-bar,
#m-cookienotice.apps-theme-cookie-bar.v-bar.v-bottom {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 300;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow: visible;
    background: #fff;
    color: var(--apps-theme-color-ink);
    border: none;
    border-top: 1px solid #e6eaef;
    border-radius: 0;
    box-shadow: 0 -6px 24px rgba(8, 44, 69, .06);
    text-align: left;
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-inner {
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    padding: 18px var(--apps-theme-container-gutter);
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    box-sizing: border-box;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-copy {
    flex: 1 1 auto;
    min-width: 0;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-title {
    display: block;
    margin: 0 0 4px;
    font-family: var(--apps-theme-font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--apps-theme-color-ink);
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-text {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--apps-theme-color-ink-muted);
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-link {
    color: var(--apps-theme-color-ink);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-link:hover {
    color: var(--apps-theme-color-primary);
}

#m-cookienotice.apps-theme-cookie-bar .cookie-bar-actions {
    display: flex;
    flex: 0 0 auto;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-text,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-reject,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-accept {
    box-sizing: border-box;
    width: auto;
    max-width: none;
    flex: 0 0 auto;
    margin: 0;
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    vertical-align: middle;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-text {
    appearance: none;
    background: none;
    background-color: transparent;
    border: none;
    padding: 10px 8px;
    color: var(--apps-theme-color-ink-soft);
    font-weight: 600;
    box-shadow: none;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-text:hover,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-text:focus,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-text:active {
    color: var(--apps-theme-color-primary);
    background: none;
    border: none;
    box-shadow: none;
    opacity: 1;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-reject,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-accept {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    height: auto;
    padding: 10px 22px;
    border-radius: var(--apps-theme-radius-pill);
    transition: background var(--apps-theme-duration-base),
        color var(--apps-theme-duration-base),
        border-color var(--apps-theme-duration-base);
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-reject {
    background: #fff;
    background-color: #fff;
    border: 1px solid var(--apps-theme-color-ink);
    color: var(--apps-theme-color-ink);
    box-shadow: none;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-reject:hover,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-reject:focus,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-reject:active {
    background: #f3f6f9;
    background-color: #f3f6f9;
    border: 1px solid var(--apps-theme-color-ink);
    color: var(--apps-theme-color-ink);
    box-shadow: none;
    opacity: 1;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-accept {
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    border: 1px solid var(--apps-theme-color-primary);
    color: #fff;
    box-shadow: none;
}

#m-cookienotice.apps-theme-cookie-bar .cookie-btn-accept:hover,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-accept:focus,
#m-cookienotice.apps-theme-cookie-bar .cookie-btn-accept:active {
    background: var(--apps-theme-color-primary-deep);
    background-color: var(--apps-theme-color-primary-deep);
    border: 1px solid var(--apps-theme-color-primary-deep);
    color: #fff;
    box-shadow: none;
    opacity: 1;
}

#v-badge.apps-theme-cookie-badge,
button.apps-theme-cookie-badge.v-badge {
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 299;
    display: none;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 10px 16px;
    border: 1px solid #e6eaef;
    border-radius: var(--apps-theme-radius-pill);
    background: #fff;
    background-color: #fff;
    color: var(--apps-theme-color-ink);
    box-shadow: 0 6px 20px rgba(8, 44, 69, .12);
    font-family: var(--apps-theme-font-body);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}

@media (max-width: 768px) {
    #m-cookienotice.apps-theme-cookie-bar .cookie-bar-inner {
        flex-wrap: wrap;
        gap: 14px;
        padding: 16px var(--apps-theme-container-gutter);
    }

    #m-cookienotice.apps-theme-cookie-bar .cookie-bar-copy {
        flex: 1 1 100%;
    }

    #m-cookienotice.apps-theme-cookie-bar .cookie-bar-actions {
        flex: 1 1 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
    }
}

/* Preferences modal */
.apps-theme-cookie-modal.cookie-modal-bg {
    position: fixed;
    inset: 0;
    z-index: 320;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
    background: rgba(8, 44, 69, .5);
}

.apps-theme-cookie-modal.cookie-modal-bg.is-open {
    display: flex;
}

.apps-theme-cookie-modal .cookie-modal {
    background: #fff;
    border-radius: var(--apps-theme-radius-xl);
    max-width: 520px;
    width: 100%;
    padding: 30px;
    box-shadow: var(--apps-theme-shadow-lg);
    max-height: 88vh;
    overflow: auto;
    box-sizing: border-box;
}

.apps-theme-cookie-modal .cookie-modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.apps-theme-cookie-modal .cookie-modal-title {
    margin: 0;
    font-family: var(--apps-theme-font-display);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
}

.apps-theme-cookie-modal .cookie-modal-close {
    appearance: none;
    width: auto;
    border: none;
    background: transparent;
    color: var(--apps-theme-color-ink-soft);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}

.apps-theme-cookie-modal .cookie-modal-close:hover,
.apps-theme-cookie-modal .cookie-modal-close:focus {
    color: var(--apps-theme-color-ink);
    background: transparent;
    border: none;
    box-shadow: none;
    opacity: 1;
}

.apps-theme-cookie-modal .cookie-modal-body > p {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--apps-theme-color-ink-muted);
}

.apps-theme-cookie-modal .cookie-pref-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    border-top: 1px solid #e6eaef;
    cursor: pointer;
}

.apps-theme-cookie-modal .cookie-pref-row strong {
    display: block;
    font-size: 15px;
    color: var(--apps-theme-color-ink);
}

.apps-theme-cookie-modal .cookie-pref-row small {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
}

.apps-theme-cookie-modal .cookie-modal-foot {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.apps-theme-cookie-modal .cookie-modal-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 140px;
    width: auto;
    min-height: 44px;
    padding: 10px 18px;
    margin: 0;
    border-radius: var(--apps-theme-radius-pill);
    font-family: var(--apps-theme-font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
}

.apps-theme-cookie-modal .cookie-modal-btn-ghost {
    background: #fff;
    background-color: #fff;
    border: 1px solid var(--apps-theme-color-ink);
    color: var(--apps-theme-color-ink);
}

.apps-theme-cookie-modal .cookie-modal-btn-ghost:hover,
.apps-theme-cookie-modal .cookie-modal-btn-ghost:focus {
    background: #f3f6f9;
    border: 1px solid var(--apps-theme-color-ink);
    color: var(--apps-theme-color-ink);
    box-shadow: none;
    opacity: 1;
}

.apps-theme-cookie-modal .cookie-modal-btn-primary {
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    border: 1px solid var(--apps-theme-color-primary);
    color: #fff;
}

.apps-theme-cookie-modal .cookie-modal-btn-primary:hover,
.apps-theme-cookie-modal .cookie-modal-btn-primary:focus {
    background: var(--apps-theme-color-primary-deep);
    border: 1px solid var(--apps-theme-color-primary-deep);
    color: #fff;
    box-shadow: none;
    opacity: 1;
}

/* Legacy unused mock selectors kept harmless */
.cookie-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid var(--apps-theme-color-line);
}

.toggle {
    position: relative;
    width: 46px;
    height: 26px;
    flex-shrink: 0;
    margin-top: 2px;
}

.toggle input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.toggle .track {
    position: absolute;
    inset: 0;
    background: var(--apps-theme-color-ink-faint);
    border-radius: 999px;
    transition: background var(--apps-theme-duration-base);
}

.toggle .track::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    transition: transform var(--apps-theme-duration-base);
    box-shadow: var(--apps-theme-shadow-sm);
}

.toggle input:checked + .track {
    background: var(--apps-theme-color-green);
}

.toggle input:checked + .track::after {
    transform: translateX(20px);
}

.toggle input:disabled + .track {
    background: var(--apps-theme-color-sky-deep);
    opacity: .55;
    cursor: not-allowed;
}

/* Support modal */
.apps-theme-support-bg {
    position: fixed;
    inset: 0;
    z-index: 340;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(8, 44, 69, .5);
}

.apps-theme-support-bg.open {
    display: flex;
}

.apps-theme-support {
    position: relative;
    background: #fff;
    border-radius: 24px;
    max-width: 440px;
    width: 100%;
    padding: 26px 26px 22px;
    box-shadow: var(--apps-theme-shadow-lg);
    max-height: 88vh;
    overflow: auto;
    overflow-x: hidden;
}

.apps-theme-support .apps-theme-support-eyebrow {
    display: inline-block;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--apps-theme-color-brand);
    margin: 0 0 10px;
}

.apps-theme-support h3 {
    font-family: var(--apps-theme-font-display);
    margin: 0 0 6px;
    font-size: 22px;
    letter-spacing: -.02em;
}

.apps-theme-support .sub {
    font-size: 14px;
    color: var(--apps-theme-color-ink-muted);
    margin: 0 0 18px;
}

.apps-theme-support .channels {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.apps-theme-support .channel {
    display: grid;
    grid-template-columns: 40px 1fr;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 0;
    border-radius: 14px;
    transition: background var(--apps-theme-duration-fast), box-shadow var(--apps-theme-duration-fast);
    text-decoration: none;
    color: inherit;
    width: 100%;
    background: var(--apps-theme-color-surface);
    cursor: pointer;
    font: inherit;
    text-align: left;
    box-sizing: border-box;
    max-width: 100%;
    box-shadow: var(--apps-theme-shadow-xs);
}

.apps-theme-support .channel > span {
    min-width: 0;
}

.apps-theme-support .channel span:last-child {
    min-width: 0;
}

.apps-theme-support .channel:hover {
    background: var(--apps-theme-color-cream-soft);
    box-shadow: none;
}

.apps-theme-support .channel.is-loading {
    pointer-events: none;
    opacity: .92;
}

.apps-theme-support .channel .apps-theme-chat-spinner {
    display: none;
    position: absolute;
    inset: 0;
    margin: auto;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(14, 35, 72, .15);
    border-top-color: var(--apps-theme-color-brand, #e52429);
    border-radius: 50%;
    box-sizing: border-box;
    animation: apps-theme-chat-spin .7s linear infinite;
}

.apps-theme-support .channel.is-loading .apps-theme-chat-icon-default {
    opacity: 0;
}

.apps-theme-support .channel.is-loading .apps-theme-chat-spinner {
    display: block;
}

@keyframes apps-theme-chat-spin {
    to { transform: rotate(360deg); }
}

.apps-theme-support .channel .icon {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--apps-theme-color-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--apps-theme-color-primary);
    flex-shrink: 0;
}

.apps-theme-support .channel.channel-has-qr {
    grid-template-columns: 40px 1fr auto;
    gap: 14px;
    cursor: default;
}

.apps-theme-support .apps-theme-support-qr {
    width: 86px;
    height: 86px;
    border-radius: 12px;
    border: 1px solid var(--apps-theme-color-line);
    background: #fff;
    padding: 8px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}

.apps-theme-support .apps-theme-support-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.apps-theme-support .channel .icon svg {
    width: 20px;
    height: 20px;
}

.apps-theme-support .channel strong {
    display: block;
    font-size: 15px;
    color: var(--apps-theme-color-ink);
}

.apps-theme-support .channel small {
    font-size: 12.5px;
    color: var(--apps-theme-color-ink-soft);
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}

.apps-theme-support .close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--apps-theme-color-ink-soft);
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    padding: 0;
    transition: background var(--apps-theme-duration-fast), border-color var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast), box-shadow var(--apps-theme-duration-fast);
}

.apps-theme-support .close:hover {
    background: var(--apps-theme-color-surface);
    border-color: rgba(11, 63, 103, .22);
    color: var(--apps-theme-color-primary);
    box-shadow: var(--apps-theme-shadow-xs);
}

.apps-theme-support .close svg {
    width: 16px;
    height: 16px;
}

.apps-theme-support-footer {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--apps-theme-color-line);
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.apps-theme-support-footer a {
    color: var(--apps-theme-color-brand);
    font-weight: 700;
    text-decoration: none;
}

.apps-theme-support-footer a:hover {
    color: var(--apps-theme-color-brand-deep);
}

.apps-theme-support-footer a:visited {
    color: var(--apps-theme-color-brand);
}

/* Utilities */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.apps-theme-content .apps-theme-button-ghost.on-dark,
.column.main .apps-theme-button-ghost.on-dark {
    color: #fff;
    border-color: rgba(255, 255, 255, .3);
    background: rgba(255, 255, 255, .04);
}

.apps-theme-content .apps-theme-button-ghost.on-dark:hover,
.column.main .apps-theme-button-ghost.on-dark:hover {
    border-color: rgba(255, 255, 255, .92);
    background: rgba(255, 255, 255, .10);
    color: #fff;
}

/* ============================================================
   Coverage Landing Page
   Scoped under .coverage-landing; semantic class names only.
   ============================================================ */

.coverage-landing {
    color: var(--apps-theme-color-ink);
    line-height: 1.55;
}

.coverage-landing .hero {
    position: relative;
    overflow: hidden;
    padding: clamp(60px, 8vw, 84px) 0 clamp(64px, 9vw, 92px);
    background:
        radial-gradient(900px 600px at 86% 24%, rgba(184, 212, 232, .38), transparent 60%),
        radial-gradient(680px 500px at 4% 86%, rgba(250, 245, 230, .75), transparent 65%),
        #fff;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: radial-gradient(circle, rgba(14, 35, 72, .06) 1px, transparent 1.5px);
    background-size: 34px 34px;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 30%, #000 72%, transparent);
    mask-image: linear-gradient(180deg, transparent, #000 30%, #000 72%, transparent);
    opacity: .5;
    pointer-events: none;
}

.coverage-landing .hero .container {
    position: relative;
    z-index: 2;
}

.coverage-landing .hero-grid {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: clamp(36px, 5vw, 56px);
    align-items: center;
}

.coverage-landing .hero-content {
    position: relative;
    z-index: 2;
    min-width: 0;
    max-width: 620px;
}

.coverage-landing .hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--apps-theme-color-primary);
    background: rgba(105, 205, 255, .16);
    border: 1px solid rgba(105, 205, 255, .4);
    padding: 7px 14px;
    border-radius: var(--apps-theme-radius-pill);
    margin-bottom: 22px;
}

.coverage-landing .hero-eyebrow .flag {
    font-size: 10px;
    vertical-align: bottom;
}

.coverage-landing .hero h1 {
    margin-bottom: 18px;
    overflow-wrap: break-word;
}

.coverage-landing .hero h1 .headline-lead {
    display: inline-block;
    max-width: 100%;
}

.coverage-landing .hero h1 .headline-accent {
    color: var(--apps-theme-color-primary);
    position: relative;
    z-index: 0;
    display: inline-block;
    max-width: 100%;
}

.coverage-landing .hero h1 .headline-accent::after {
    content: "";
    position: absolute;
    left: -2px;
    right: -2px;
    bottom: 4px;
    height: 34%;
    background: var(--apps-theme-color-sky-mid);
    opacity: .5;
    border-radius: 3px;
    z-index: -1;
}

.coverage-landing .hero-subtitle {
    font-size: clamp(16px, 1.4vw, 19px);
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.6;
    max-width: 56ch;
    margin-bottom: 20px;
}

.coverage-landing .hero-rating {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    margin-bottom: 22px;
    flex-wrap: wrap;
    overflow: visible;
    width: 100%;
}

.coverage-landing .hero-rating .trustpilot-widget {
    overflow: visible;
}

/* Hero: shrink-wrap — 100% mount + iframe centers TrustScore inside, looks indented vs headline */
.coverage-landing .hero-rating .apps-trustpilot-mount {
    display: inline-block;
    width: max-content;
    max-width: 100%;
    line-height: 0;
    margin: 0;
}

.coverage-landing .hero-rating .apps-trustpilot-frame,
.coverage-landing .hero-rating .apps-trustpilot-frame .trustpilot-widget {
    width: auto;
    max-width: 100%;
}

.coverage-landing .hero-rating .apps-trustpilot-frame iframe {
    display: block;
    width: auto !important;
    max-width: 100%;
    margin: 0;
}

.coverage-landing .trust-bar-inner .apps-trustpilot-mount,
.coverage-landing .trust-bar-inner .trustpilot-widget-wrap .apps-trustpilot-mount {
    position: relative;
    display: inline-block;
    width: max-content;
    max-width: 100%;
    line-height: 0;
    vertical-align: top;
}

.coverage-landing .apps-trustpilot-hit {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
    text-decoration: none;
    color: transparent;
    background: transparent;
}

.coverage-landing .apps-trustpilot-hit:focus {
    outline: none;
}

.coverage-landing .apps-trustpilot-hit:focus-visible {
    outline: 2px solid #3c57bc;
    outline-offset: 2px;
}

.coverage-landing .apps-trustpilot-frame,
.coverage-landing .apps-trustpilot-frame .trustpilot-widget,
.coverage-landing .apps-trustpilot-frame iframe {
    pointer-events: none;
}

.coverage-landing .hero-rating .trustpilot-star-list {
    display: inline-flex;
    gap: 3px;
}

.coverage-landing .hero-rating .trustpilot-brand-label {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 14px;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .hero-rating .trustpilot-star {
    width: 18px;
    height: 18px;
    border-radius: 3px;
    background: #00B67A;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.coverage-landing .hero-rating .trustpilot-star svg {
    width: 11px;
    height: 11px;
    fill: #fff;
}

/* Coverage menu route — keep landing pages flush with theme shell */
.page-shop-menu-container,
.shop-menu-products-container {
    width: 100%;
    max-width: none;
    padding: 0;
    margin: 0;
}

.coverage-menu-list {
    padding: clamp(48px, 6vw, 96px) 0;
}

.coverage-menu-list-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    padding: 0 24px;
}

.coverage-menu-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    background: #fff;
    color: var(--apps-theme-color-ink);
    text-decoration: none;
    font-weight: 700;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.coverage-menu-list-item:hover {
    border-color: rgba(14, 35, 72, .16);
    box-shadow: var(--apps-theme-shadow-sm);
    transform: translateY(-1px);
    color: var(--apps-theme-color-primary);
}

.coverage-menu-list-icon {
    width: 28px;
    height: 18px;
    object-fit: contain;
    object-position: center;
    flex-shrink: 0;
}

.coverage-menu-list-label {
    font-size: 14px;
    line-height: 1.3;
}

@media (max-width: 992px) {
    .coverage-menu-list-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .coverage-menu-list-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .coverage-menu-list-grid {
        grid-template-columns: 1fr;
    }
}

.coverage-landing .hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 28px;
}

.coverage-landing .hero-pills .pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    padding: 9px 16px;
    border-radius: var(--apps-theme-radius-pill);
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    color: var(--apps-theme-color-ink);
}

.coverage-landing .hero-pills .pill svg {
    width: 18px;
    height: 18px;
    color: var(--apps-theme-color-brand);
    flex-shrink: 0;
}

.coverage-landing .hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.coverage-landing .hero-art {
    position: relative;
    z-index: 1;
    min-width: 0;
    min-height: 420px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.coverage-landing .hero-art-stage {
    position: relative;
    width: min(286px, 68%);
    animation: coverage-hero-float 7s ease-in-out infinite;
}

@keyframes coverage-hero-float {
    0%, 100% { transform: translateX(-5%) translateY(0); }
    50% { transform: translateX(-5%) translateY(-12px); }
}

@keyframes coverage-hero-badge-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

@keyframes coverage-hero-card-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.coverage-landing .hero-disc {
    position: absolute;
    left: 50%;
    top: 50%;
    width: clamp(240px, 112%, 360px);
    height: clamp(240px, 112%, 360px);
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(105, 205, 255, .30), rgba(184, 212, 232, .12) 58%, transparent 72%);
    pointer-events: none;
}

.coverage-landing .hero-illustration {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    max-width: none;
    max-height: 368px;
    height: auto;
    filter: drop-shadow(0 18px 36px rgba(0, 0, 0, .32));
}

.coverage-landing .hero-floating-badge,
.coverage-landing .hero-badge {
    position: absolute;
    z-index: 4;
    left: -18%;
    top: 9%;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    background: var(--apps-theme-color-brand);
    color: #fff;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 12px;
    letter-spacing: .02em;
    padding: 7px 12px;
    border-radius: var(--apps-theme-radius-pill);
    box-shadow: 0 8px 20px rgba(236, 30, 36, .38);
    animation: coverage-hero-badge-float 5s ease-in-out infinite;
}

.coverage-landing .hero-floating-badge svg,
.coverage-landing .hero-badge svg {
    width: 14px;
    height: 14px;
    color: #fff;
    display: block;
    flex-shrink: 0;
}

.coverage-landing .apps-card {
    position: absolute;
    bottom: 13%;
    right: -32%;
    z-index: 3;
    background: #fff;
    border-radius: var(--apps-theme-radius-lg);
    padding: 12px 13px;
    box-shadow: 0 14px 32px rgba(0, 0, 0, .24);
    min-width: 0;
    width: 184px;
    max-width: min(184px, calc(100% + 48px));
    animation: coverage-hero-card-float 6s ease-in-out infinite;
}

.coverage-landing .apps-card-head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
}

.coverage-landing .apps-card-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--apps-theme-color-green);
    box-shadow: 0 0 0 4px rgba(47, 143, 78, .18);
    animation: coverage-dot-pulse 2s ease-in-out infinite;
}

@keyframes coverage-dot-pulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(47, 143, 78, .18); }
    50% { box-shadow: 0 0 0 7px rgba(47, 143, 78, .08); }
}

@media (prefers-reduced-motion: reduce) {
    .coverage-landing .hero-art-stage,
    .coverage-landing .hero-illustration,
    .coverage-landing .hero-badge,
    .coverage-landing .hero-floating-badge,
    .coverage-landing .apps-card,
    .coverage-landing .apps-card-dot {
        animation: none;
    }
}

.coverage-landing .apps-card-title {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 12px;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .apps-card-subtitle {
    font-size: 11px;
    color: var(--apps-theme-color-ink-soft);
    margin-left: auto;
}

.coverage-landing .apps-card-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px 10px;
}

.coverage-landing .apps-card-row {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    color: var(--apps-theme-color-ink-muted);
}

.coverage-landing .apps-card-check {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #E8F5E9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.coverage-landing .apps-card-check svg {
    width: 9px;
    height: 9px;
    color: #2E7D32;
}

/* Trust Bar */
.coverage-landing .trust-bar {
    background: var(--apps-theme-color-cream-soft);
    border-top: 1px solid var(--apps-theme-color-line);
    border-bottom: 1px solid var(--apps-theme-color-line);
}

.coverage-landing .trust-bar-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 28px;
    padding: 20px 0;
    font-size: 13.5px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.55;
    overflow: visible;
}

.coverage-landing .trust-bar-inner .trustpilot-widget-wrap,
.coverage-landing .trust-bar-inner .trustpilot-fallback {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 1 auto;
    flex-wrap: wrap;
    overflow: visible;
    min-width: 0;
    max-width: 100%;
    width: auto;
}

.coverage-landing .trust-bar-inner .trustpilot-widget-wrap .trustpilot-widget,
.coverage-landing .trust-bar-inner .trustpilot-widget-wrap .apps-trustpilot-mount {
    width: auto;
    max-width: 100%;
    overflow: visible;
}

.coverage-landing .trustpilot-star-list {
    display: inline-flex;
    gap: 3px;
}

.coverage-landing .trustpilot-star {
    width: 18px;
    height: 18px;
    border-radius: 3px;
    background: #00B67A;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.coverage-landing .trustpilot-star svg {
    width: 11px;
    height: 11px;
    fill: #fff;
}

.coverage-landing .trustpilot-score {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 15px;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .trustpilot-reviews {
    font-weight: 600;
    color: var(--apps-theme-color-ink-muted);
}

.coverage-landing .trustpilot-brand-label {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 14px;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .trustpilot-tags {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px 22px;
    flex: 0 1 auto;
    min-width: 0;
    margin-left: 0;
}

.coverage-landing .trustpilot-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--apps-theme-color-ink-muted);
    white-space: nowrap;
}

.coverage-landing .trustpilot-tag-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--apps-theme-color-green);
    flex-shrink: 0;
}

@media (max-width: 1100px) {
    .coverage-landing .trust-bar-inner {
        flex-direction: column;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 14px;
        padding: 18px 0;
        text-align: center;
    }

    .coverage-landing .trust-bar-inner .trustpilot-widget-wrap,
    .coverage-landing .trust-bar-inner .trustpilot-fallback {
        justify-content: center;
        width: auto;
        flex: 0 1 auto;
    }

    .coverage-landing .trustpilot-tags {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        flex: 0 1 auto;
        width: 100%;
        max-width: none;
        justify-content: center;
        align-items: center;
        gap: 10px 20px;
    }
}

@media (max-width: 560px) {
    .coverage-landing .trust-bar-inner {
        padding: 16px 0;
        font-size: 13px;
        gap: 12px;
    }

    .coverage-landing .trustpilot-tags {
        gap: 8px 14px;
    }
}

/* Plans */
.coverage-landing .plans-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: #fff;
}

.coverage-landing .plans-intro {
    color: var(--apps-theme-color-ink-muted);
    font-size: clamp(15px, 1.3vw, 17px);
    line-height: 1.6;
    margin-top: 14px;
}

.coverage-landing .plans-intro a {
    color: var(--apps-theme-color-primary);
    font-weight: 700;
    text-decoration: underline;
}

.coverage-landing .plans-toggle {
    display: flex;
    gap: 6px;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 32px;
    background: var(--apps-theme-color-surface-alt);
    border-radius: var(--apps-theme-radius-pill);
    padding: 5px;
}

.coverage-landing .plans-hint {
    text-align: center;
    color: var(--apps-theme-color-ink-soft);
    margin: 14px 0 0;
}

.coverage-landing .section-head .plans-hint a {
    color: var(--apps-theme-color-primary);
    font-size: inherit;
    font-weight: 700;
    line-height: inherit;
    text-decoration: underline;
}

.coverage-landing .plan-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.coverage-landing .plan-set {
    display: none;
}

.coverage-landing .plan-set.on,
.coverage-landing .plan-set.is-active {
    display: grid;
}

.coverage-landing .plan-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    padding: 24px 22px 20px;
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 12px;
    align-content: start;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.coverage-landing .plan-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--apps-theme-shadow-md);
    border-color: rgba(14, 35, 72, .16);
}

.coverage-landing .plan-card.feat,
.coverage-landing .plan-card.is-featured {
    border-color: var(--apps-theme-color-primary);
    box-shadow: 0 12px 30px rgba(11, 63, 103, .14);
}

.coverage-landing .plan-badge {
    position: absolute;
    top: -11px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--apps-theme-color-brand);
    color: #fff;
    font-family: var(--apps-theme-font-display);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 5px 13px;
    border-radius: var(--apps-theme-radius-pill);
    white-space: nowrap;
}

.coverage-landing .plan-badge.deal {
    background: var(--apps-theme-color-brand);
}

.coverage-landing .plan-size {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    font-family: var(--apps-theme-font-display);
    font-size: 31px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
    color: var(--apps-theme-color-ink);
    margin-bottom: 0;
}

.coverage-landing .plan-size .u,
.coverage-landing .plan-size .unit {
    font-size: .5em;
    font-weight: 700;
    color: var(--apps-theme-color-ink-soft);
    margin-left: 3px;
    letter-spacing: 0;
}

.coverage-landing .plan-days {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    font-size: 12px;
    color: var(--apps-theme-color-primary);
    font-weight: 700;
    white-space: nowrap;
    background: var(--apps-theme-color-cream-soft);
    padding: 6px 12px;
    border-radius: var(--apps-theme-radius-pill);
    margin-bottom: 0;
}

.coverage-landing .plan-price-row {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin: 16px 0 0;
    padding-top: 15px;
    border-top: 1px solid var(--apps-theme-color-line);
}

.coverage-landing .plan-price {
    font-family: var(--apps-theme-font-display);
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
    color: var(--apps-theme-color-primary);
}

.coverage-landing .plan-price .c,
.coverage-landing .plan-price .currency {
    font-size: .6em;
    font-weight: 700;
    margin-right: 1px;
}

.coverage-landing .plan-perday {
    font-size: 12.5px;
    color: var(--apps-theme-color-ink-soft);
    font-weight: 700;
    white-space: nowrap;
    margin-top: 0;
}

.coverage-landing .plan-perday.best {
    color: var(--apps-theme-color-green);
}

.coverage-landing .plan-card .plan-actions {
    grid-column: 1 / -1;
    grid-row: 3;
    display: flex;
    gap: 8px;
    margin-top: 16px;
}

.coverage-landing .plan-buy-form {
    display: flex;
    flex: 1;
    margin: 0;
}

.coverage-landing .plan-buy-form .plan-btn {
    width: 100%;
}

.coverage-landing .plan-btn,
.coverage-landing .plan-button {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 11px 8px;
    border-radius: var(--apps-theme-radius-pill);
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13.5px;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, transform .2s ease;
    border: none;
    cursor: pointer;
    box-shadow: none;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.coverage-landing .plan-btn.primary,
.coverage-landing .plan-button.primary {
    background: var(--apps-theme-color-primary);
    color: #fff;
}

.coverage-landing .plan-btn.primary:hover,
.coverage-landing .plan-button.primary:hover,
.coverage-landing .plan-btn.primary:focus,
.coverage-landing .plan-button.primary:focus,
.coverage-landing .plan-btn.primary:active,
.coverage-landing .plan-button.primary:active {
    background: var(--apps-theme-color-primary-deep);
    transform: translateY(-1px);
    color: #fff;
    border: none;
    outline: none;
    opacity: 1;
}

.coverage-landing .plan-btn.ghost,
.coverage-landing .plan-button.ghost {
    background: var(--apps-theme-color-cream-soft);
    color: var(--apps-theme-color-primary);
}

.coverage-landing .plan-btn.ghost:hover,
.coverage-landing .plan-button.ghost:hover {
    background: var(--apps-theme-color-surface-alt);
    color: var(--apps-theme-color-primary);
}

.coverage-landing .unlimited-fair {
    display: flex;
    gap: 16px;
    background: var(--apps-theme-color-surface);
    border-radius: var(--apps-theme-radius-md);
    padding: 20px 24px;
    margin: 24px 0;
}

.coverage-landing .unlimited-fair-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #E3F2FD;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--apps-theme-color-primary);
}

.coverage-landing .unlimited-fair-icon svg {
    width: 22px;
    height: 22px;
}

.coverage-landing .unlimited-fair-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.coverage-landing .unlimited-fair-text strong {
    font-family: var(--apps-theme-font-display);
    font-size: 15px;
}

.coverage-landing .unlimited-fair-text span {
    font-size: 14px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.5;
}

.coverage-landing .empty-msg {
    text-align: center;
    padding: 48px 20px;
    color: var(--apps-theme-color-ink-soft);
    grid-column: 1 / -1;
}

/* Specifications */
.coverage-landing .specs-wrap {
    margin-top: 64px;
    background: var(--apps-theme-color-surface);
    border-radius: var(--apps-theme-radius-xl);
    padding: 32px;
}

.coverage-landing .specs-wrap h3 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    font-size: 22px;
}

.coverage-landing .specs-wrap h3 svg {
    width: 26px;
    height: 26px;
    color: var(--apps-theme-color-primary);
}

.coverage-landing .specs-grid,
.coverage-landing .specifications-content .specifications-table {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    overflow: hidden;
}

.coverage-landing .spec-cell,
.coverage-landing .specifications-content .specifications-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 18px;
    background: #fff;
}

.coverage-landing .spec-k,
.coverage-landing .specifications-content .specifications-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-soft);
}

.coverage-landing .spec-v,
.coverage-landing .specifications-content .specifications-value {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 15px;
    color: var(--apps-theme-color-ink);
    display: flex;
    align-items: center;
    gap: 6px;
}

.coverage-landing .spec-v .ok,
.coverage-landing .specifications-content .specifications-value .ok {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    color: var(--apps-theme-color-green);
    margin-right: 0;
}

.coverage-landing .spec-v .ok svg,
.coverage-landing .specifications-content .specifications-value .ok svg {
    width: 15px;
    height: 15px;
}

.coverage-landing .spec-v a.operator-list-link {
    color: var(--apps-theme-color-brand, #1a3a6b);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 700;
    cursor: pointer;
}

.coverage-landing .spec-v a.operator-list-link:hover {
    color: var(--apps-theme-color-ink, #0f172a);
}

/* Carrier list popup (Plan specifications) */
.operator-list-overlay {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
}

.operator-list-overlay[hidden] {
    display: none !important;
}

.operator-list-overlay-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .45);
}

.operator-list-overlay-dialog {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(720px, 100%);
    max-height: min(80vh, 720px);
    overflow: hidden;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, .22);
    padding: 12px 0 0;
}

.operator-list-overlay-toolbar {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 0 12px 4px;
}

.operator-list-overlay-close {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    min-width: 36px;
    max-width: 36px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: #f1f5f9;
    color: #334155;
    font-size: 22px;
    line-height: 1;
    font-weight: 400;
    box-shadow: none;
    cursor: pointer;
}

#apps-operator-list-overlay button.operator-list-overlay-close {
    width: 36px;
    min-width: 36px;
    max-width: 36px;
}

body.operator-list-open {
    overflow: hidden;
}

.operator-list-overlay-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 20px 16px;
}

.operator-list-popup .operator-list-title {
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: 700;
    color: #0f172a;
    padding-right: 0;
}

.operator-list-popup .operator-list-note,
.operator-list-loading,
.operator-list-empty {
    margin: 0 0 16px;
    font-size: 13px;
    line-height: 1.5;
    color: #64748b;
}

.operator-list-cms {
    overflow: visible;
}

.operator-list-table-wrap {
    overflow: auto;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.operator-list-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.operator-list-table th,
.operator-list-table td {
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: top;
}

.operator-list-table th {
    background: #f8fafc;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
    position: sticky;
    top: 0;
}

.operator-list-table tbody tr:last-child td {
    border-bottom: 0;
}

.operator-list-table td:first-child {
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
}

.operator-list-cms {
    overflow: auto;
}

.operator-list-cms table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.operator-list-cms th,
.operator-list-cms td {
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: top;
}

.operator-list-cms th {
    background: #f8fafc;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
}

.operator-list-cms td:first-child {
    font-weight: 600;
    color: #0f172a;
}

/* Physical SIM */
.coverage-landing .physical-sim-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: var(--apps-theme-color-primary);
    color: #fff;
    position: relative;
    overflow: hidden;
}

.coverage-landing .physical-sim-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 80% 20%, rgba(105, 205, 255, .18) 0%, transparent 45%),
                radial-gradient(circle at 20% 90%, rgba(105, 205, 255, .12) 0%, transparent 40%);
    pointer-events: none;
}

.coverage-landing .physical-sim-section .container {
    position: relative;
    z-index: 1;
}

.coverage-landing .physical-sim-head {
    text-align: center;
    margin-bottom: 48px;
}

.coverage-landing .physical-sim-head h2 {
    color: #fff;
    margin-bottom: 10px;
}

.coverage-landing .physical-sim-subtitle {
    font-size: 17px;
    color: rgba(255, 255, 255, .75);
}

.coverage-landing .physical-sim-layout {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 40px;
    align-items: center;
    margin-bottom: 36px;
    background: linear-gradient(180deg, rgba(105, 205, 255, .16), rgba(105, 205, 255, .05));
    border: 1px solid rgba(105, 205, 255, .30);
    border-radius: var(--apps-theme-radius-xl);
    padding: 34px 38px;
}

.coverage-landing .physical-sim-lede {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
}

.coverage-landing .physical-sim-tag {
    display: inline-block;
    background: var(--apps-theme-color-sky-mid);
    color: var(--apps-theme-color-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: var(--apps-theme-radius-pill);
    margin-bottom: 14px;
}

.coverage-landing .physical-sim-lede h3 {
    color: #fff;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 23px;
    line-height: 1.25;
    margin-bottom: 10px;
}

.coverage-landing .physical-sim-lede p {
    color: var(--apps-theme-color-sky);
    line-height: 1.6;
    font-size: 15px;
    margin: 0;
}

.coverage-landing .physical-sim-compare {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 9px;
}

.coverage-landing .compare-row {
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 14px;
    font-weight: 700;
    background: #fff;
    border-radius: var(--apps-theme-radius-md);
    padding: 13px 16px;
    box-shadow: var(--apps-theme-shadow-xs);
    color: var(--apps-theme-color-ink);
}

.coverage-landing .compare-row.no {
    color: var(--apps-theme-color-ink-soft);
}

.coverage-landing .compare-row.yes {
    color: var(--apps-theme-color-ink);
}

.coverage-landing .compare-mark {
    width: 21px;
    height: 21px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #fff;
}

.coverage-landing .compare-row.no .compare-mark {
    background: var(--apps-theme-color-ink-faint);
}

.coverage-landing .compare-row.yes .compare-mark {
    background: var(--apps-theme-color-green);
}

.coverage-landing .compare-mark svg {
    width: 12px;
    height: 12px;
}

.coverage-landing .physical-sim-cta-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.coverage-landing .physical-sim-buy {
    background: #fff;
    border-radius: var(--apps-theme-radius-xl);
    padding: 28px;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .physical-sim-buy-head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}

.coverage-landing .physical-sim-price {
    font-family: var(--apps-theme-font-display);
    font-size: 40px;
    font-weight: 800;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .physical-sim-price .unit {
    font-size: 16px;
    font-weight: 600;
    color: var(--apps-theme-color-ink-soft);
}

.coverage-landing .physical-sim-buy-label {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    font-size: 15px;
}

.coverage-landing .physical-sim-buy-label small {
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
    font-weight: 400;
}

.coverage-landing .physical-sim-buy-label small.physical-sim-ship-free {
    color: var(--apps-theme-color-green, #2f8f4e);
    font-weight: 700;
}

.coverage-landing .physical-sim-buy .btn {
    width: 100%;
    margin-bottom: 12px;
}

.coverage-landing .physical-sim-tip {
    text-align: center;
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
}

.coverage-landing .physical-sim-support {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--apps-theme-radius-xl);
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.coverage-landing .physical-sim-support-title {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 18px;
    color: #fff;
    margin-bottom: 8px;
}

.coverage-landing .physical-sim-support-subtitle {
    color: rgba(255, 255, 255, .7);
    font-size: 15px;
    margin-bottom: 14px;
}

.coverage-landing .physical-sim-support a {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
}

/* Key Facts */
.coverage-landing .key-facts-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: var(--apps-theme-color-surface);
}

.coverage-landing .facts-content .facts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.coverage-landing .facts-content .fact-card {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    padding: 26px 24px;
    transition: transform var(--apps-theme-duration-base), box-shadow var(--apps-theme-duration-base);
}

.coverage-landing .facts-content .fact-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--apps-theme-shadow-md);
}

.coverage-landing .facts-content .fact-card.span2 {
    grid-column: span 2;
}

.coverage-landing .facts-content .fact-card.hilite {
    background: rgba(105, 205, 255, .10);
    border-color: rgba(105, 205, 255, .34);
}

.coverage-landing .facts-content .fact-card.hilite a {
    color: var(--apps-theme-color-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.coverage-landing .facts-content .fact-ico {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--apps-theme-color-cream-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--apps-theme-color-primary);
    margin-bottom: 16px;
}

.coverage-landing .facts-content .fact-ico.red {
    color: var(--apps-theme-color-brand);
}

.coverage-landing .facts-content .fact-ico svg {
    width: 23px;
    height: 23px;
}

.coverage-landing .facts-content .fact-card h3 {
    margin-bottom: 8px;
    font-size: 18px;
}

.coverage-landing .facts-content .fact-card p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--apps-theme-color-ink-muted);
}

.coverage-landing .facts-content .fact-card p strong {
    color: var(--apps-theme-color-ink);
    font-weight: 700;
}

/* Setup */
.coverage-landing .setup-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: #fff;
    position: relative;
    overflow: hidden;
}

.coverage-landing .setup-section::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: radial-gradient(circle, rgba(14, 35, 72, .04) 1px, transparent 1.5px);
    background-size: 28px 28px;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
    mask-image: linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
    pointer-events: none;
}

.coverage-landing .setup-section .container {
    position: relative;
    z-index: 1;
}

.coverage-landing .device-tabs {
    display: flex;
    gap: 6px;
    background: var(--apps-theme-color-surface-alt);
    padding: 5px;
    border-radius: var(--apps-theme-radius-pill);
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 40px;
}

.coverage-landing .device-tabs button svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.coverage-landing .setup-steps {
    display: none;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.coverage-landing .setup-steps.is-active {
    display: grid;
}

.coverage-landing .setup-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    padding: 28px 26px;
    overflow: hidden;
}

.coverage-landing .setup-card-num {
    position: absolute;
    top: 6px;
    right: 18px;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 88px;
    line-height: .85;
    color: rgba(14, 35, 72, .05);
    letter-spacing: -.05em;
    pointer-events: none;
}

.coverage-landing .setup-card-ico {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--apps-theme-color-cream-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--apps-theme-color-brand);
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
}

.coverage-landing .setup-card-ico svg {
    width: 22px;
    height: 22px;
}

.coverage-landing .setup-card h3 {
    font-size: 18px;
    margin-bottom: 10px;
    position: relative;
    z-index: 1;
}

.coverage-landing .setup-card p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--apps-theme-color-ink-muted);
    position: relative;
    z-index: 1;
}

.coverage-landing .setup-card p strong {
    color: var(--apps-theme-color-ink);
    font-weight: 700;
}

.coverage-landing .setup-card .pill-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 14px;
    position: relative;
    z-index: 1;
}

.coverage-landing .setup-pill {
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: var(--apps-theme-radius-pill);
}

.coverage-landing .setup-pill.esim {
    background: rgba(14, 35, 72, .08);
    color: var(--apps-theme-color-primary);
}

.coverage-landing .setup-pill.phys {
    background: rgba(236, 30, 36, .1);
    color: var(--apps-theme-color-brand);
}

.coverage-landing .setup-support-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: var(--apps-theme-color-cream-soft);
    border-radius: var(--apps-theme-radius-xl);
    padding: 24px 28px;
    flex-wrap: wrap;
}

.coverage-landing .setup-support-message {
    font-size: 15px;
    color: var(--apps-theme-color-ink-muted);
}

.coverage-landing .setup-support-actions {
    display: flex;
    gap: 20px;
}

.coverage-landing .setup-support-actions a {
    font-weight: 700;
    color: var(--apps-theme-color-primary);
    text-decoration: none;
}

.coverage-landing .setup-support-actions a:hover {
    text-decoration: underline;
}

/* Coverage Countries (regional/global) */
.coverage-landing .coverage-countries-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: #fff;
}

.coverage-landing .coverage-countries-lead {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin: 0 auto 34px;
    max-width: 760px;
}

.coverage-landing .coverage-countries-note {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: var(--apps-theme-color-muted);
    text-align: center;
}

.coverage-landing .coverage-countries-count {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 15px;
    color: #fff;
    background: var(--apps-theme-color-primary);
    padding: 8px 16px;
    border-radius: var(--apps-theme-radius-pill);
}

.coverage-landing .coverage-countries-count span {
    color: var(--apps-theme-color-sky-mid);
}

/* Global coverage — continent accordion */
.coverage-landing .coverage-continent-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 920px;
    margin: 0 auto;
}

.coverage-landing .coverage-continent {
    background: var(--apps-theme-color-surface, #F8FAFD);
    border-radius: 16px;
    overflow: hidden;
}

.coverage-landing .coverage-continent-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 18px 20px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: var(--apps-theme-color-primary);
}

.coverage-landing .coverage-continent-name {
    flex: 1;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: clamp(18px, 2vw, 22px);
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.coverage-landing .coverage-continent-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(14, 35, 72, 0.08);
    color: var(--apps-theme-color-ink-muted, #64748b);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.coverage-landing .coverage-continent-chevron {
    display: inline-flex;
    width: 22px;
    height: 22px;
    color: var(--apps-theme-color-ink-muted, #64748b);
    transition: transform 0.2s ease;
}

.coverage-landing .coverage-continent-chevron svg {
    width: 22px;
    height: 22px;
}

.coverage-landing .coverage-continent.is-open .coverage-continent-chevron {
    transform: rotate(180deg);
}

.coverage-landing .coverage-continent-body {
    padding: 0 20px 20px;
}

.coverage-landing .coverage-continent-body[hidden] {
    display: none;
}

.coverage-landing .coverage-continent-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.coverage-landing .coverage-continent-pill {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    border: 1px solid var(--apps-theme-color-line, #e2e8f0);
    border-radius: 999px;
    background: #fff;
    color: var(--apps-theme-color-ink, #0f172a);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}

.coverage-landing .coverage-countries-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.coverage-landing .coverage-country-item {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    background: var(--apps-theme-color-surface);
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    padding: 12px 14px;
    transition: transform var(--apps-theme-duration-fast) var(--apps-theme-ease),
        box-shadow var(--apps-theme-duration-fast),
        border-color var(--apps-theme-duration-fast);
    position: relative;
    overflow: hidden;
}

.coverage-landing .coverage-country-item .country-badge {
    margin-left: auto;
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--apps-theme-color-primary);
    background: rgba(77, 163, 255, .14);
    padding: 3px 7px;
    border-radius: var(--apps-theme-radius-pill);
    line-height: 1.2;
}

.coverage-landing .coverage-countries-foot {
    margin: 22px auto 0;
    max-width: 760px;
    text-align: center;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--apps-theme-color-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.coverage-landing .coverage-countries-foot .country-badge {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--apps-theme-color-primary);
    background: rgba(77, 163, 255, .14);
    padding: 3px 7px;
    border-radius: var(--apps-theme-radius-pill);
    line-height: 1.2;
}

.coverage-landing .coverage-country-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--apps-theme-shadow-sm);
    border-color: rgba(14, 35, 72, .16);
}

.coverage-landing .coverage-country-item .country-flag {
    font-family: var(--apps-theme-font-display);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--apps-theme-radius-sm);
    background: var(--apps-theme-color-surface-alt);
    color: var(--apps-theme-color-primary);
}

.coverage-landing .coverage-country-item .country-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    line-height: 1.2;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .coverage-landing .coverage-countries-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 620px) {
    .coverage-landing .coverage-countries-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .coverage-landing .coverage-countries-section .container {
        overflow-x: clip;
    }
}

/* Travel Tips / Traveler Stories (shared card layout) */
.coverage-landing .stories-section,
.coverage-landing .travel-tips-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: var(--apps-theme-color-cream-soft);
}

.coverage-landing .travel-tips-section .reviews-head {
    text-align: center;
    margin-bottom: 40px;
}

.coverage-landing .travel-tips-section .reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 32px;
}

.coverage-landing .travel-tips-section .review-card {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    padding: 26px;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
}

.coverage-landing .travel-tips-section .review-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--apps-theme-shadow-md, 0 12px 28px rgba(15, 23, 42, .1));
}

.coverage-landing .travel-tips-section .story-apps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.coverage-landing .travel-tips-section .story-app {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 5px 10px;
    border-radius: var(--apps-theme-radius-pill);
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-soft);
}

.coverage-landing .travel-tips-section .review-title {
    font-size: 20px;
    margin-bottom: 10px;
}

.coverage-landing .travel-tips-section .review-body {
    font-size: 15px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.6;
    margin-bottom: 18px;
    flex-grow: 1;
}

.coverage-landing .travel-tips-section .story-tip {
    display: flex;
    gap: 10px;
    background: var(--apps-theme-color-surface);
    border-radius: var(--apps-theme-radius-md);
    padding: 14px;
    font-size: 13px;
    color: var(--apps-theme-color-ink-muted);
    margin-bottom: 18px;
}

.coverage-landing .travel-tips-section .story-tip svg {
    width: 18px;
    height: 18px;
    color: var(--apps-theme-color-brand);
    flex-shrink: 0;
}

.coverage-landing .travel-tips-section .review-foot {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
}

.coverage-landing .travel-tips-section .review-av {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--apps-theme-color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 15px;
    flex-shrink: 0;
}

.coverage-landing .travel-tips-section .review-foot > div:not(.review-av) {
    min-width: 0;
    flex: 1 1 auto;
}

.coverage-landing .travel-tips-section .review-name {
    font-weight: 700;
    font-size: 14px;
    color: var(--apps-theme-color-ink);
}

.coverage-landing .travel-tips-section .review-home-flag-img,
.apps-theme-content .review-home-flag-img {
    display: inline-block;
    width: 21px;
    height: 14px;
    margin-left: 0.25em;
    vertical-align: -2px;
    border-radius: 2px;
    object-fit: contain;
    object-position: center;
}

.coverage-landing .travel-tips-section .review-trip {
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.coverage-landing .travel-tips-section .review-trip span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.coverage-landing .travel-tips-section .review-trip svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.coverage-landing .travel-tips-section .review-meta {
    margin-left: auto;
    text-align: right;
    flex-shrink: 0;
    white-space: nowrap;
}

.coverage-landing .travel-tips-section .review-verified {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--apps-theme-color-green);
    white-space: nowrap;
}

.coverage-landing .travel-tips-section .review-date {
    display: block;
    font-size: 12px;
    color: var(--apps-theme-color-ink-soft);
    white-space: nowrap;
}

.coverage-landing .travel-tips-section .earn-banner {
    display: flex;
    align-items: center;
    gap: 18px;
    background: var(--apps-theme-color-primary);
    color: #fff;
    border-radius: var(--apps-theme-radius-2xl);
    padding: 22px 28px;
    margin-top: 36px;
    flex-wrap: wrap;
}

.coverage-landing .travel-tips-section .earn-banner .eb-ico {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--apps-theme-color-sky-mid);
}

.coverage-landing .travel-tips-section .earn-banner .eb-ico svg {
    width: 26px;
    height: 26px;
}

.coverage-landing .travel-tips-section .earn-banner .eb-text {
    flex: 1;
    min-width: 220px;
}

.coverage-landing .travel-tips-section .earn-banner strong {
    display: block;
    font-family: var(--apps-theme-font-display);
    font-size: 17px;
    margin-bottom: 2px;
}

.coverage-landing .travel-tips-section .earn-banner small {
    display: block;
    font-size: 14px;
    color: rgba(255, 255, 255, .75);
    line-height: 1.5;
}

.coverage-landing .travel-tips-section .earn-banner .btn-red {
    margin-left: auto;
    padding: 13px 24px;
    font-size: 14px;
    white-space: nowrap;
}

/* FAQ */
.coverage-landing .faq-section {
    padding: clamp(64px, 8vw, 120px) 0;
    background: #fff;
}

.coverage-landing .faq-layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 80px;
    align-items: start;
}

.coverage-landing .faq-side {
    position: sticky;
    top: 104px;
}

.coverage-landing .faq-side h2 {
    font-size: 32px;
    margin: 14px 0 20px;
}

.coverage-landing .faq-side p {
    font-size: 15px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.6;
    margin-bottom: 24px;
}

.coverage-landing .faq-side-contact {
    padding-top: 24px;
    border-top: 1px solid var(--apps-theme-color-line);
}

.coverage-landing .faq-side-contact small {
    display: block;
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft);
    margin-bottom: 6px;
}

.coverage-landing .faq-side-contact a {
    font-weight: 700;
    font-size: 14px;
    color: var(--apps-theme-color-brand);
    text-decoration: none;
}

.coverage-landing .faq-side-contact a:hover {
    color: var(--apps-theme-color-brand-deep);
}

.coverage-landing .faq-list {
    display: flex;
    flex-direction: column;
}

/* FAQ list items inherit global .apps-theme-faq-item rules */

/* Final CTA */
.coverage-landing .final-cta-section {
    padding: clamp(64px, 8vw, 110px) 0;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(700px 460px at 82% 16%, rgba(105, 205, 255, .18), transparent 60%),
        linear-gradient(180deg, var(--apps-theme-color-primary) 0%, var(--apps-theme-color-primary-deep) 100%);
    color: #fff;
    text-align: center;
}

.coverage-landing .final-cta-section::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: radial-gradient(circle, rgba(255, 255, 255, .07) 1px, transparent 1.6px);
    background-size: 32px 32px;
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000, transparent 72%);
    mask-image: radial-gradient(circle at 50% 50%, #000, transparent 72%);
    pointer-events: none;
}

.coverage-landing .final-cta-section .container {
    position: relative;
    z-index: 1;
}

.coverage-landing .final-cta-section .eyebrow {
    color: var(--apps-theme-color-sky-mid);
    margin-bottom: 14px;
    display: block;
}

.coverage-landing .final-cta-section h2 {
    color: #fff;
    margin-bottom: 14px;
}

.coverage-landing .final-cta-section .headline-accent {
    color: var(--apps-theme-color-sky-mid);
}

.coverage-landing .final-cta-section p {
    color: rgba(220, 231, 240, .82);
    font-size: 17px;
    line-height: 1.6;
    max-width: 46ch;
    margin: 0 auto 16px;
}

.coverage-landing .final-cta-apps {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

.coverage-landing .final-cta-apps span {
    font-size: 13px;
    font-weight: 700;
    color: #eaf2fb;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    padding: 7px 14px;
    border-radius: var(--apps-theme-radius-pill);
}

.coverage-landing .final-cta-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.coverage-landing .final-cta-actions .btn-red {
    padding: 16px 34px;
    font-size: 16px;
    box-shadow: 0 14px 32px rgba(236, 30, 36, .34);
}

@media (min-width: 1440px) {
    .coverage-landing .hero-art {
        min-height: 480px;
        justify-content: flex-start;
        padding-left: clamp(8px, 2vw, 28px);
    }

    .coverage-landing .hero-art-stage {
        width: min(338px, 76%);
    }

    .coverage-landing .hero-disc {
        width: clamp(280px, 118%, 430px);
        height: clamp(280px, 118%, 430px);
    }

    .coverage-landing .hero-illustration {
        max-height: 440px;
        filter: drop-shadow(0 22px 44px rgba(0, 0, 0, .34));
    }

    .coverage-landing .hero-floating-badge,
    .coverage-landing .hero-badge {
        left: -20%;
    }

    .coverage-landing .apps-card {
        right: -36%;
        max-width: min(184px, calc(100% + 72px));
    }
}

@media (min-width: 1600px) {
    .coverage-landing .hero-art {
        padding-left: clamp(16px, 3vw, 40px);
    }

    .coverage-landing .hero-art-stage {
        width: min(360px, 80%);
    }

    .coverage-landing .hero-illustration {
        max-height: 460px;
    }

    .coverage-landing .hero-floating-badge,
    .coverage-landing .hero-badge {
        left: -22%;
    }

    .coverage-landing .apps-card {
        right: -42%;
        max-width: min(184px, calc(100% + 96px));
    }
}

@media (max-width: 1100px) {
    .coverage-landing .hero-floating-badge,
    .coverage-landing .hero-badge {
        left: -6%;
    }

    .coverage-landing .apps-card {
        right: 0;
        max-width: calc(100% - 8px);
    }
}

/* Responsive */
@media (max-width: 992px) {
    .coverage-landing .hero-grid,
    .coverage-landing .physical-sim-layout,
    .coverage-landing .physical-sim-cta-row,
    .coverage-landing .faq-layout {
        grid-template-columns: 1fr;
    }

    .coverage-landing .physical-sim-layout {
        padding: 28px 24px;
        gap: 26px;
    }

    .coverage-landing .hero-art {
        min-height: 320px;
    }

    .coverage-landing .hero-art-stage {
        width: min(250px, 62%);
    }

    .coverage-landing .hero-floating-badge,
    .coverage-landing .hero-badge {
        left: 0;
    }

    .coverage-landing .plan-grid,
    .coverage-landing .facts-content .facts-grid,
    .coverage-landing .setup-steps,
    .coverage-landing .travel-tips-section .reviews-grid,
    .coverage-landing .specs-grid,
    .coverage-landing .specifications-content .specifications-table {
        grid-template-columns: repeat(2, 1fr);
    }

    .coverage-landing .facts-content .fact-card.span2 {
        grid-column: span 2;
    }

    .coverage-landing .apps-card {
        right: 4px;
        width: 168px;
        max-width: calc(100% - 8px);
    }

    .coverage-landing .faq-side {
        position: static;
    }

    .coverage-landing .travel-tips-section .earn-banner .btn-red {
        margin-left: 0;
        width: 100%;
    }
}

@media (max-width: 640px) {
    .coverage-landing .hero {
        padding: 1.25rem 0 1.75rem;
    }

    /* Hide decorative hero art on phones so copy / CTAs come first. */
    .coverage-landing .hero-art {
        display: none;
    }

    .coverage-landing .hero-grid {
        display: flex;
        flex-direction: column;
    }

    .coverage-landing .hero-actions,
    .coverage-landing .final-cta-actions {
        flex-direction: column;
    }

    .coverage-landing .hero-actions .btn,
    .coverage-landing .final-cta-actions .btn {
        width: 100%;
    }

    .coverage-landing .plan-grid,
    .coverage-landing .facts-content .facts-grid,
    .coverage-landing .setup-steps,
    .coverage-landing .travel-tips-section .reviews-grid,
    .coverage-landing .specs-grid,
    .coverage-landing .specifications-content .specifications-table {
        grid-template-columns: 1fr;
    }

    .coverage-landing .hero h1 .headline-accent {
        white-space: normal;
    }

    .coverage-landing .hero h1 .headline-accent::after {
        bottom: 2px;
        height: 6px;
    }

    .coverage-landing .facts-content .fact-card.span2 {
        grid-column: span 1;
    }

    .coverage-landing .apps-card {
        display: none;
    }

    .coverage-landing .physical-sim-buy .btn {
        width: 100%;
    }

    .coverage-landing .setup-support-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .coverage-landing .travel-tips-section .earn-banner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =====================================================================
 * Reusable components (pager, overlay, modal, theme-button, form-field, …)
 * ===================================================================== */
.pager-wrap,
.pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 4px 6px;
    padding: 8px 0 4px;
}

.pager-wrap[hidden],
.pager-wrap.is-hidden {
    display: none !important;
}

.pager-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 30px;
    min-height: 30px;
    padding: 4px 9px;
    width: auto;
    border-radius: var(--apps-theme-radius-pill);
    border: 1px solid var(--apps-theme-color-line);
    background: #fff;
    color: var(--apps-theme-color-ink-muted);
    font-weight: 700;
    font-size: 12.5px;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

.pager-link:hover,
.pager-link:focus {
    color: var(--apps-theme-color-primary);
    background: #EEF3F9;
    border: 1px solid var(--apps-theme-color-primary);
    opacity: 1;
}

.pager-link.is-current {
    background: var(--apps-theme-color-primary);
    border: 1px solid var(--apps-theme-color-primary);
    color: #fff;
}

.pager-link.is-disabled {
    opacity: .4;
    pointer-events: none;
    color: var(--apps-theme-color-ink-muted);
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
}

.pager-gap,
.pager-meta {
    color: var(--apps-theme-color-ink-muted);
    font-size: 11.5px;
    font-weight: 600;
    padding: 0 4px;
}

@media (max-width: 560px) {
    .pager { gap: 4px; }

    .pager-link {
        min-width: 28px;
        min-height: 28px;
        padding: 3px 7px;
        font-size: 12px;
    }

    .pager-meta {
        width: 100%;
        text-align: center;
        order: 99;
        margin-top: 4px;
    }
}

/* ---- Overlay ---- */
.overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(8, 28, 53, .55);
    backdrop-filter: blur(3px);
    box-sizing: border-box;
}

.overlay[hidden] {
    display: none !important;
}

.overlay.open {
    display: flex !important;
    visibility: visible;
    opacity: 1;
    animation: appsFade .2s var(--apps-theme-ease, ease-out);
}

body.overlay-open {
    overflow: hidden;
}

@keyframes appsFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- Modal ---- */
.modal {
    background: #fff;
    border-radius: var(--apps-theme-radius-2xl, 24px);
    max-width: 440px;
    width: 100%;
    box-shadow: var(--apps-theme-shadow-lg, 0 16px 48px rgba(14, 35, 72, .18));
    overflow: hidden;
    animation: appsPop .26s var(--apps-theme-ease, ease-out);
}

.overlay.open .modal {
    display: block;
    visibility: visible;
    opacity: 1;
    transform: none;
    max-height: min(90vh, 720px);
    overflow: auto;
}

.overlay.open .modal-head,
.overlay.open .modal-body {
    display: block;
    visibility: visible;
    opacity: 1;
}

@keyframes appsPop {
    from { transform: translateY(14px) scale(.98); }
    to { transform: none; }
}

.overlay .modal-head,
.modal-head {
    padding: 22px 24px 0;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    box-sizing: border-box;
}

.overlay .modal-head h3,
.modal-head h3 {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
    margin: 0;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--apps-theme-color-ink);
    font-family: var(--apps-theme-font-display, var(--apps-theme-font-body));
}

.modal-body {
    padding: 18px 24px 24px;
}

.overlay .modal-close,
.modal-close,
.column.main .overlay .modal-close,
.apps-theme-mysims .overlay .modal-close {
    flex: 0 0 32px;
    flex-shrink: 0;
    align-self: flex-start;
    box-sizing: border-box;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    border-radius: 50%;
    background: var(--apps-theme-color-surface-alt, #EEF3F9);
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--apps-theme-color-ink-muted);
    border: none;
    padding: 0 !important;
    margin: 0;
    line-height: 1;
    transition: background var(--apps-theme-duration-fast, .14s);
}

.modal-close:hover {
    background: var(--apps-theme-color-line);
    color: var(--apps-theme-color-ink);
}

.modal-close svg {
    width: 16px;
    height: 16px;
}

.modal-note {
    font-size: 12px;
    color: var(--apps-theme-color-ink-soft, var(--apps-theme-color-ink-muted));
    display: flex;
    gap: 7px;
    align-items: flex-start;
    margin-bottom: 18px;
    line-height: 1.5;
}

.modal-note svg {
    width: 14px;
    height: 14px;
    color: var(--apps-theme-color-sky-deep, #3b82a8);
    flex-shrink: 0;
    margin-top: 1px;
}

/* ---- Modal submit ---- */
.modal-submit {
    display: inline-flex;
    width: 100%;
    height: 50px;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border-radius: var(--apps-theme-radius-pill);
    background: var(--apps-theme-color-primary);
    color: #fff;
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 15px;
    line-height: 1.2;
    border: none;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--apps-theme-duration-base, .2s);
    box-sizing: border-box;
}

.modal-submit:hover,
.modal-submit:focus,
.modal-submit:active {
    background: #163a66;
    color: #fff;
    opacity: 1;
    border: none;
}

/* ---- Theme buttons ----
 * Pill + optional trailing SVG: padding-inline must stay > height/2
 * (min-height 42 → pad ≥ 24). See bak/pill-svg-seam-fringe.md.
 */
.theme-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: auto;
    height: auto;
    min-height: 42px;
    padding: 11px 24px;
    border-radius: var(--apps-theme-radius-pill);
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 13.5px;
    line-height: 16px;
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
}

.theme-button-primary {
    min-width: 140px;
    background: var(--apps-theme-color-primary);
    color: #fff;
    border: 1.5px solid var(--apps-theme-color-primary);
}

.theme-button-primary:hover,
.theme-button-primary:focus,
.theme-button-primary:active {
    color: #fff;
    background: #163a66;
    border: 1.5px solid #163a66;
    opacity: 1;
}

.theme-button-outline {
    background: #fff;
    color: var(--apps-theme-color-ink);
    border: 1.5px solid var(--apps-theme-color-line);
}

.theme-button-outline:hover,
.theme-button-outline:focus,
.theme-button-outline:active {
    color: var(--apps-theme-color-ink);
    background: #EEF3F9;
    border: 1.5px solid var(--apps-theme-color-ink-soft);
    opacity: 1;
}

.theme-button-ghost {
    background: transparent;
    color: var(--apps-theme-color-ink-soft);
    margin-left: auto;
    padding: 11px 12px;
    border: none;
}

.theme-button-ghost:hover {
    color: var(--apps-theme-color-brand-deep);
    background: transparent;
    border: none;
    opacity: 1;
}

/* ---- Form field (theme component; Magento .field uses Layer B) ---- */
.form-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 15px;
}

.form-field label,
.form-field .label {
    font-size: 13px;
    font-weight: 700;
    color: var(--apps-theme-color-ink-muted);
    margin: 0;
    padding: 0;
}

.form-field .control {
    width: 100%;
}

.form-field input,
.form-field .input-text {
    box-sizing: border-box;
    width: 100%;
    height: 46px;
    padding: 0 15px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md, 10px);
    font-size: 15px;
    color: var(--apps-theme-color-ink);
    background: #fff;
    line-height: 46px;
}

.form-field input:focus,
.form-field .input-text:focus {
    outline: none;
    border-color: var(--apps-theme-color-primary);
    box-shadow: 0 0 0 3px rgba(11, 63, 103, .12);
}

.form-field .mage-error,
.form-field div.mage-error {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--apps-theme-color-brand-deep, #c45c26);
    line-height: 1.35;
}

.form-field .control > .mage-error {
    order: 99;
}

.form-field input.mage-error,
.form-field .input-text.mage-error {
    border-color: var(--apps-theme-color-brand-deep, #c45c26);
}

/* ---- Account field（通用账户/地址表单字段，不绑页面根类） ---- */
.account-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.account-field.full {
    grid-column: 1 / -1;
}

.account-field .control {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.account-field .control > select,
.account-field .control > input,
.account-field .control .password-control > input {
    width: 100%;
    box-sizing: border-box;
}

.account-field label {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--apps-theme-color-ink-soft, var(--apps-theme-color-ink-muted));
    line-height: 1.4;
    white-space: normal;
}

.account-field label .req {
    color: var(--apps-theme-color-brand-deep, #c45c26);
    margin-left: 2px;
}

.account-field input,
.account-field select {
    height: 46px;
    padding: 0 14px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    font-size: 14.5px;
    color: var(--apps-theme-color-ink);
    background: #fff;
    font-family: var(--apps-theme-font-body);
    width: 100%;
    box-sizing: border-box;
}

.account-field input:focus,
.account-field select:focus {
    outline: none;
    border-color: var(--apps-theme-color-primary);
    box-shadow: 0 0 0 3px rgba(14, 35, 72, .12);
}

.account-field input.mage-error,
.account-field select.mage-error {
    border-color: #e02b27;
}

.account-field .control > .mage-error,
.account-field .password-control + .mage-error,
.account-field div.mage-error {
    display: block;
    width: 100%;
    margin: 6px 0 0;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--apps-theme-color-brand-deep, #c45c26);
}

/* ---- Password control（通用：input + 眼睛；错误在容器外） ---- */
.password-control {
    position: relative;
    display: block;
    width: 100%;
}

.password-control > input,
.account-field .password-control > input {
    height: 46px;
    width: 100%;
    padding: 0 44px 0 14px;
    box-sizing: border-box;
}

button.password-reveal,
.column.main button.password-reveal,
.apps-theme-mysims button.password-reveal,
.column.main .apps-theme-mysims button.password-reveal {
    position: absolute;
    top: 50%;
    right: 0;
    width: 44px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0 var(--apps-theme-radius-md, 10px) var(--apps-theme-radius-md, 10px) 0;
    background: transparent;
    background-color: transparent;
    color: var(--apps-theme-color-ink-muted);
    cursor: pointer;
    line-height: 0;
    font-size: 0;
    box-shadow: none;
    z-index: 1;
    transform: translateY(-50%);
}

button.password-reveal:hover,
button.password-reveal:focus-visible,
.column.main button.password-reveal:hover,
.column.main button.password-reveal:focus-visible,
.apps-theme-mysims button.password-reveal:hover,
.apps-theme-mysims button.password-reveal:focus-visible,
.column.main .apps-theme-mysims button.password-reveal:hover,
.column.main .apps-theme-mysims button.password-reveal:focus-visible {
    color: var(--apps-theme-color-primary);
    background: rgba(14, 35, 72, .06);
    outline: none;
}

.password-reveal-icon {
    width: 18px;
    height: 18px;
    display: none;
    flex-shrink: 0;
}

.password-reveal .password-reveal-icon.is-show {
    display: block;
}

.password-reveal.is-revealed .password-reveal-icon.is-show {
    display: none;
}

.password-reveal.is-revealed .password-reveal-icon.is-hide {
    display: block;
}

/* ---- Segment ---- */
.segment {
    display: flex;
    gap: 6px;
    background: var(--apps-theme-color-surface-alt);
    padding: 5px;
    border-radius: var(--apps-theme-radius-pill);
    margin-bottom: 18px;
}

.segment button,
.segment .segment-button {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    padding: 9px 8px;
    border-radius: var(--apps-theme-radius-pill);
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13.5px;
    line-height: 1.2;
    color: var(--apps-theme-color-ink-muted);
    background: transparent;
    white-space: nowrap;
    cursor: pointer;
    border: none;
}

.segment button.on,
.segment .segment-button.on {
    background: var(--apps-theme-color-primary);
    color: #fff;
    border: none;
}

.segment button:hover:not(.on),
.segment .segment-button:hover:not(.on) {
    color: var(--apps-theme-color-ink);
    background: #E4EBF3;
    border: none;
    opacity: 1;
}

.segment button.on:hover,
.segment .segment-button.on:hover {
    color: #fff;
    background: #163a66;
    border: none;
    opacity: 1;
}

/* ---- Filter ---- */
.filter {
    background: #fff;
    border-bottom: 1px solid var(--apps-theme-color-line);
    width: 100%;
    max-width: none;
    margin: 0;
    box-sizing: border-box;
}

.filter-chips {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 14px 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    overscroll-behavior-x: contain;
}

.filter-chips::-webkit-scrollbar {
    height: 4px;
}

.filter-chips::-webkit-scrollbar-thumb {
    background: rgba(14, 35, 72, .18);
    border-radius: 4px;
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    width: auto;
    height: auto;
    padding: 9px 16px;
    border-radius: var(--apps-theme-radius-pill);
    background: var(--apps-theme-color-surface-alt);
    color: var(--apps-theme-color-ink-muted);
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13.5px;
    line-height: 1.2;
    white-space: nowrap;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: background var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast), border-color var(--apps-theme-duration-fast);
}

.filter-chip:hover,
.filter-chip:focus,
.filter-chip:active {
    color: var(--apps-theme-color-ink);
    background: #E4EBF3;
    border: 1.5px solid rgba(14, 35, 72, .18);
    opacity: 1;
}

.filter-chip.on {
    background: var(--apps-theme-color-primary);
    color: #fff;
    border-color: var(--apps-theme-color-primary);
}

.filter-chip.on:hover,
.filter-chip.on:focus,
.filter-chip.on:active {
    color: #fff;
    background: var(--apps-theme-color-primary);
    border-color: var(--apps-theme-color-primary);
    opacity: .92;
}

.filter-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 19px;
    height: 19px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .22);
    font-size: 11px;
    font-weight: 800;
    padding: 0 5px;
}

.filter-chip:not(.on) .filter-chip-count {
    background: rgba(14, 35, 72, .1);
    color: var(--apps-theme-color-ink-muted);
}

/* ---- form-check ----
 * 原生 checkbox 的 CSS width/height 只约束布局盒，系统绘制区域常更大，
 * 导致视觉上勾选框偏大、文字相对中轴偏上。统一 appearance:none 自绘。
 */
.form-check {
    display: flex;
    align-items: center;
    gap: 10px;
    grid-column: 1 / -1;
    margin-top: 2px;
    cursor: pointer;
}

label.form-check {
    margin: 0;
}

.form-check input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    /* 覆盖 Magento styles-m: input[type=checkbox] { margin: 2px 5px 0 0; top: 2px } */
    margin: 0;
    padding: 0;
    flex-shrink: 0;
    box-sizing: border-box;
    border: 1.5px solid rgba(14, 35, 72, .32);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    position: relative;
    top: 0;
    vertical-align: middle;
    accent-color: unset;
}

.form-check input[type="checkbox"]:checked {
    background: var(--apps-theme-color-primary);
    border-color: var(--apps-theme-color-primary);
}

.form-check input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 4.5px;
    top: 1.5px;
    width: 4px;
    height: 7.5px;
    border: solid #fff;
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
    box-sizing: border-box;
}

.form-check input[type="checkbox"]:focus-visible {
    outline: 2px solid rgba(14, 35, 72, .22);
    outline-offset: 2px;
}

.form-check span {
    font-size: 13px;
    color: var(--apps-theme-color-ink-soft, var(--apps-theme-color-ink-muted));
    line-height: 16px;
    display: block;
}

/* ---- buy-note ---- */
.buy-note {
    font-size: 13px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.55;
    background: var(--apps-theme-color-cream-soft, #EEF3F9);
    border-radius: var(--apps-theme-radius-md, 10px);
    padding: 14px 16px;
    margin-bottom: 18px;
}

/* ===== My SIMs / Account page (scoped .apps-theme-mysims) ===== */
.apps-theme-mysims {
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: none;
    background: #F4F8FC;
    font-family: var(--apps-theme-font-body);
    color: var(--apps-theme-color-ink);
    -webkit-font-smoothing: antialiased;
}

.apps-theme-mysims > .hero:first-child {
    margin-top: 0;
}

.apps-theme-mysims .hero {
    background: var(--apps-theme-color-primary);
    color: #fff;
    padding: 46px 0 38px;
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: none;
    margin: 0;
    box-sizing: border-box;
}

.apps-theme-mysims .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(680px 360px at 88% -10%, rgba(105, 205, 255, .22), transparent 60%);
    pointer-events: none;
}

.apps-theme-mysims .hero .container {
    position: relative;
    z-index: 1;
}

.apps-theme-mysims .hero-inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.apps-theme-mysims .hero-account {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 14px;
}

.apps-theme-mysims .hero-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .13);
    border: 1px solid rgba(255, 255, 255, .2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 14px;
    color: #fff;
    letter-spacing: .02em;
}

.apps-theme-mysims .hero-account .hero-identity {
    font-size: 13px;
    line-height: 1.3;
}

.apps-theme-mysims .hero-account .hero-identity strong {
    display: block;
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 14px;
    color: #fff;
}

.apps-theme-mysims .hero-account .hero-identity small {
    color: rgba(220, 231, 240, .6);
}

.apps-theme-mysims .hero-account .hero-identity small a {
    color: var(--apps-theme-color-sky-mid);
    font-size: 11px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Beat Magento .column.main h1 color/size via higher specificity */
.column.main .apps-theme-mysims .hero h1,
.apps-theme-mysims .hero h1 {
    font-family: var(--apps-theme-font-display);
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.02em;
    color: #fff;
    margin: 0 0 6px;
    padding: 0;
    border: none;
}

.column.main .apps-theme-mysims .hero p,
.apps-theme-mysims .hero p {
    font-size: 15.5px;
    color: rgba(220, 231, 240, .72);
    max-width: 440px;
    margin: 0;
}

.apps-theme-mysims .add-sim-button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 15px;
    background: #fff;
    color: var(--apps-theme-color-primary);
    padding: 14px 24px;
    border-radius: var(--apps-theme-radius-pill);
    transition: transform var(--apps-theme-duration-base), box-shadow var(--apps-theme-duration-base), background var(--apps-theme-duration-base);
    white-space: nowrap;
    text-decoration: none;
    border: none;
    cursor: pointer;
}

.apps-theme-mysims .add-sim-button svg {
    width: 18px;
    height: 18px;
}

/* add-sim-button Magento override */
.apps-theme-mysims .add-sim-button,
.column.main .apps-theme-mysims .add-sim-button {
    display: inline-flex;
    width: auto;
    height: auto;
    padding: 14px 24px;
    border-radius: var(--apps-theme-radius-pill);
    background: #fff;
    background-color: #fff;
    color: var(--apps-theme-color-primary);
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 15px;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
}

.apps-theme-mysims .add-sim-button:hover,
.column.main .apps-theme-mysims .add-sim-button:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .add-sim-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
    background: #EEF3F9;
    background-color: #EEF3F9;
    color: var(--apps-theme-color-primary);
    border: none;
    text-decoration: none;
    opacity: 1;
}

.apps-theme-mysims .stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: 26px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: var(--apps-theme-radius-lg);
    overflow: hidden;
    background: rgba(255, 255, 255, .05);
}

.apps-theme-mysims .stat {
    min-width: 0;
    padding: 15px 20px;
    border-right: 1px solid rgba(255, 255, 255, .12);
    border-bottom: none;
}

.apps-theme-mysims .stat:nth-child(4n) {
    border-right: none;
}

@media (max-width: 900px) {
    .apps-theme-mysims .stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .apps-theme-mysims .stat {
        border-right: 1px solid rgba(255, 255, 255, .12);
        border-bottom: 1px solid rgba(255, 255, 255, .12);
    }

    .apps-theme-mysims .stat:nth-child(2n) {
        border-right: none;
    }

    .apps-theme-mysims .stat:nth-last-child(-n+2) {
        border-bottom: none;
    }
}

@media (max-width: 480px) {
    .apps-theme-mysims .stats {
        grid-template-columns: 1fr;
    }

    .apps-theme-mysims .stat {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
    }

    .apps-theme-mysims .stat:last-child {
        border-bottom: none;
    }
}

.apps-theme-mysims .stat .stat-value {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 24px;
    color: #fff;
    line-height: 1;
    letter-spacing: -.02em;
}

.apps-theme-mysims .stat .stat-value .stat-unit {
    font-size: .5em;
    font-weight: 700;
    color: rgba(220, 231, 240, .6);
    margin-left: 3px;
}

.apps-theme-mysims .stat .sl {
    font-size: 12px;
    color: rgba(220, 231, 240, .6);
    margin-top: 5px;
}

.apps-theme-mysims .stat .sl.warn {
    color: var(--apps-theme-color-yellow);
    font-weight: 700;
}

.apps-theme-mysims .tabs {
    background: #fff;
    border-bottom: 1px solid var(--apps-theme-color-line);
    position: sticky;
    top: var(--apps-theme-header-height, 72px);
    z-index: 60;
    width: 100%;
    max-width: none;
    margin: 0;
    box-sizing: border-box;
}

.apps-theme-mysims .tabs .container {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
}

.apps-theme-mysims .tabs .container::-webkit-scrollbar {
    display: none;
}

.apps-theme-mysims .tab-button,
.column.main .apps-theme-mysims .tab-button,
body.apps-card-dashboard .column.main .apps-theme-mysims .tab-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    height: auto;
    min-height: 0;
    margin: 0 18px 0 0;
    padding: 17px 6px;
    border: none;
    border-radius: 0;
    background: none;
    background-color: transparent;
    box-shadow: none;
    font-family: var(--apps-theme-font-display);
    font-weight: 700;
    font-size: 14.5px;
    line-height: 1.25;
    color: var(--apps-theme-color-ink-muted);
    cursor: pointer;
    white-space: nowrap;
    transition: color var(--apps-theme-duration-fast);
}

.apps-theme-mysims .tab-button svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.apps-theme-mysims .tab-button::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: var(--apps-theme-color-primary);
    transform: scaleX(0);
    transition: transform var(--apps-theme-duration-base, .25s);
}

.apps-theme-mysims .tab-button:hover,
.column.main .apps-theme-mysims .tab-button:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .tab-button:hover {
    color: var(--apps-theme-color-ink);
    background: transparent;
    opacity: 1;
}

.apps-theme-mysims .tab-button.on,
.column.main .apps-theme-mysims .tab-button.on,
body.apps-card-dashboard .column.main .apps-theme-mysims .tab-button.on {
    color: var(--apps-theme-color-primary);
    background: transparent;
}

.apps-theme-mysims .tab-button.on::after {
    transform: scaleX(1);
}

.apps-theme-mysims .tab-pane {
    display: none;
}

.apps-theme-mysims .tab-pane.on {
    display: block;
    animation: appsThemeMsFade .28s ease-out;
}

@keyframes appsThemeMsFade {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

/* filter page-specific overrides — base styles in apps-theme.css */
.apps-theme-mysims .filter {
    position: static;
    top: auto;
    z-index: auto;
    margin: 0;
}

.apps-theme-mysims #tabMysims .filter {
    margin-bottom: 0;
}

/*
 * .column.main .container gutters vs .cards — lock all four sides to the shared token.
 */
.apps-theme-mysims .cards,
.column.main .apps-theme-mysims .container.cards,
body.apps-card-dashboard .column.main .apps-theme-mysims .container.cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
    align-items: start;
    box-sizing: border-box;
    padding-top: 32px;
    padding-bottom: 80px;
    padding-left: var(--apps-theme-container-gutter);
    padding-right: var(--apps-theme-container-gutter);
    margin-top: 0;
    margin-bottom: 0;
}

@media (max-width: 880px) {
    .apps-theme-mysims .cards,
    .column.main .apps-theme-mysims .container.cards,
    body.apps-card-dashboard .column.main .apps-theme-mysims .container.cards {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .apps-theme-mysims .cards,
    .column.main .apps-theme-mysims .container.cards,
    body.apps-card-dashboard .column.main .apps-theme-mysims .container.cards {
        padding-top: 28px;
        padding-bottom: 64px;
    }
}

/* pager-wrap spans full cards grid width */
.apps-theme-mysims .pager-wrap {
    grid-column: 1 / -1;
}

.apps-theme-mysims .skel {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    padding: 22px 24px;
    min-height: 168px;
    position: relative;
    overflow: hidden;
}

.apps-theme-mysims .skel::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
    transform: translateX(-100%);
    animation: appsThemeMsSkel 1.2s ease-in-out infinite;
}

@keyframes appsThemeMsSkel {
    100% { transform: translateX(100%); }
}

.apps-theme-mysims .skel-line {
    height: 12px;
    border-radius: 6px;
    background: var(--apps-theme-color-surface-alt, #e8eef5);
    margin-bottom: 12px;
}

.apps-theme-mysims .skel-line.w40 { width: 40%; }
.apps-theme-mysims .skel-line.w60 { width: 60%; }
.apps-theme-mysims .skel-line.w80 { width: 80%; }

.apps-theme-mysims .skel-block {
    height: 72px;
    border-radius: var(--apps-theme-radius-md);
    background: var(--apps-theme-color-surface-alt, #e8eef5);
    margin-top: 8px;
}

/* Live-refresh shimmer while CMI sync fills usage/plans/install zones */
.apps-theme-mysims .card[data-live-pending="1"] .live-zone {
    position: relative;
    isolation: isolate;
}

.apps-theme-mysims .card[data-live-pending="1"] .live-zone::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(
        90deg,
        rgba(244, 248, 252, .15) 0%,
        rgba(255, 255, 255, .55) 45%,
        rgba(244, 248, 252, .15) 100%
    );
    background-size: 200% 100%;
    animation: appsThemeMsSkel 1.25s ease-in-out infinite;
    pointer-events: none;
    z-index: 2;
}

.apps-theme-mysims .card {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    box-shadow: var(--apps-theme-shadow-sm);
    overflow: hidden;
    transition: box-shadow var(--apps-theme-duration-base), transform var(--apps-theme-duration-base);
}
.apps-theme-mysims .card:hover { box-shadow: var(--apps-theme-shadow-md); }
.apps-theme-mysims .card-pad { padding: 22px 24px; }
.apps-theme-mysims .card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.apps-theme-mysims .type-badge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--apps-theme-font-display); font-weight: 800; font-size: 10.5px;
  letter-spacing: .06em; text-transform: uppercase; padding: 5px 11px; border-radius: var(--apps-theme-radius-pill); }
.apps-theme-mysims .type-badge svg { width: 12px; height: 12px; }
.apps-theme-mysims .type-esim { background: var(--apps-theme-color-cream-soft); color: var(--apps-theme-color-primary); }
.apps-theme-mysims .type-physical { background: #E8F1FB; color: var(--apps-theme-color-sky-deep); }
.apps-theme-mysims .ids { font-size: 11.5px; color: var(--apps-theme-color-ink-soft); margin-top: 9px; font-variant-numeric: tabular-nums; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.apps-theme-mysims .ids b { color: var(--apps-theme-color-ink-muted); font-weight: 700; letter-spacing: .01em; }
.apps-theme-mysims .status { display: inline-flex; align-items: center; gap: 6px; font-family: var(--apps-theme-font-body); font-weight: 800; font-size: 11px;
  letter-spacing: .03em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--apps-theme-radius-pill); white-space: nowrap; flex-shrink: 0; }
.apps-theme-mysims .status .gd { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.apps-theme-mysims .status-active { background: #E8F5EA; color: var(--apps-theme-color-green); }
.apps-theme-mysims .status-installed { background: #E7F2FB; color: var(--apps-theme-color-sky-deep); }
.apps-theme-mysims .status-notinstalled { background: var(--apps-theme-color-cream-soft); color: var(--apps-theme-color-ink-soft); }
.apps-theme-mysims .status-transit { background: #FFF3DF; color: #B7791F; }
.apps-theme-mysims .status-queued { background: #E7F2FB; color: var(--apps-theme-color-sky-deep); }
.apps-theme-mysims .status-not_activated { background: #FFF3DF; color: #B7791F; }
.apps-theme-mysims .status-expired { background: var(--apps-theme-color-brand-soft); color: var(--apps-theme-color-brand-deep); }
.apps-theme-mysims .meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--apps-theme-color-line); }
.apps-theme-mysims .meta span { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--apps-theme-color-ink-muted); }
.apps-theme-mysims .meta span svg { width: 14px; height: 14px; color: var(--apps-theme-color-ink-soft); flex-shrink: 0; }
.apps-theme-mysims .meta em { font-style: normal; color: var(--apps-theme-color-ink-faint); font-size: 11px; }
.apps-theme-mysims .active { margin-top: 18px; background: linear-gradient(180deg,var(--apps-theme-color-cream-soft),#fff); border: 1px solid var(--apps-theme-color-line); border-radius: var(--apps-theme-radius-lg); padding: 17px 18px; }
.apps-theme-mysims .active-head { display: flex; align-items: center; gap: 7px; font-family: var(--apps-theme-font-display); font-weight: 800; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--apps-theme-color-primary); margin-bottom: 12px; }
.apps-theme-mysims .active-head svg { width: 14px; height: 14px; color: var(--apps-theme-color-yellow); }
.apps-theme-mysims .active-body { display: flex; align-items: center; gap: 18px; }
.apps-theme-mysims .ring { position: relative; width: 78px; height: 78px; flex-shrink: 0; }
.apps-theme-mysims .ring svg { width: 78px; height: 78px; transform: rotate(-90deg); }
.apps-theme-mysims .ring .bg { fill: none; stroke: var(--apps-theme-color-surface-alt); stroke-width: 7; }
.apps-theme-mysims .ring .fl { fill: none; stroke-width: 7; stroke-linecap: round; transition: stroke-dashoffset .9s var(--apps-theme-ease); }
.apps-theme-mysims .ring .pct { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-family: var(--apps-theme-font-display); font-weight: 800; font-size: 18px; color: var(--apps-theme-color-ink); line-height: 1; }
.apps-theme-mysims .ring .pct small { font-size: 9px; font-weight: 700; color: var(--apps-theme-color-ink-soft); text-transform: uppercase; letter-spacing: .04em; margin-top: 1px; }
.apps-theme-mysims .active-right { flex: 1; min-width: 0; }
.apps-theme-mysims .active-name { font-family: var(--apps-theme-font-display); font-weight: 700; font-size: 15.5px; color: var(--apps-theme-color-ink); line-height: 1.25; }
.apps-theme-mysims .active-stat { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.apps-theme-mysims .active-stat .gb { font-family: var(--apps-theme-font-display); font-weight: 800; font-size: 22px; color: var(--apps-theme-color-ink); letter-spacing: -.02em; }
.apps-theme-mysims .active-stat .gb .stat-unit { font-size: .55em; font-weight: 700; color: var(--apps-theme-color-ink-soft); margin-left: 2px; }
.apps-theme-mysims .active-stat .hs-label { font-size: 12.5px; font-weight: 500; color: var(--apps-theme-color-ink-muted); }
.apps-theme-mysims .active-stat .days { font-size: 12.5px; color: var(--apps-theme-color-ink-muted); font-weight: 700; }
.apps-theme-mysims .plans-pager { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--apps-theme-color-line, #e8e6e1); }
.apps-theme-mysims .plans-page-btn { appearance: none; border: 1px solid var(--apps-theme-color-line, #e8e6e1); background: #fff; color: var(--apps-theme-color-ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .02em; padding: 5px 10px; border-radius: 999px; cursor: pointer; }
.apps-theme-mysims .plans-page-btn:hover:not(:disabled) { border-color: var(--apps-theme-color-ink-soft); color: var(--apps-theme-color-ink); }
.apps-theme-mysims .plans-page-btn:disabled { opacity: .35; cursor: default; }
.apps-theme-mysims .plans-page-meta { font-size: 11px; font-weight: 700; color: var(--apps-theme-color-ink-muted); min-width: 4.5em; text-align: center; }
.apps-theme-mysims .active-meta { font-size: 11.5px; color: var(--apps-theme-color-ink-soft); margin-top: 7px; line-height: 1.5; }
.apps-theme-mysims .active-meta b { color: var(--apps-theme-color-ink-muted); font-weight: 700; }
.apps-theme-mysims .low { display: inline-flex; align-items: center; gap: 5px; margin-top: 9px; font-size: 11px; font-weight: 800; color: var(--apps-theme-color-brand-deep); background: var(--apps-theme-color-brand-soft); padding: 5px 10px; border-radius: var(--apps-theme-radius-pill); }
.apps-theme-mysims .low svg { width: 12px; height: 12px; }
.apps-theme-mysims .plans-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 16px; padding: 12px 0 0;
  border-top: 1px solid var(--apps-theme-color-line); cursor: pointer; font-family: var(--apps-theme-font-display); font-weight: 700; font-size: 13px; color: var(--apps-theme-color-ink-muted); }
.apps-theme-mysims .plans-head .caret { width: 15px; height: 15px; color: var(--apps-theme-color-ink-soft); transition: transform var(--apps-theme-duration-base); }
.apps-theme-mysims .plans.open .plans-head .caret { transform: rotate(180deg); }
.apps-theme-mysims .plans-body { display: grid; grid-template-rows: 0fr; }
.apps-theme-mysims .plans.open .plans-body { grid-template-rows: 1fr; }
.apps-theme-mysims .plans-inner { overflow: hidden; min-height: 0; }
.apps-theme-mysims .plan-row { display: flex; align-items: flex-start; gap: 11px; padding: 12px 0; border-bottom: 1px solid var(--apps-theme-color-line); }
.apps-theme-mysims .plan-row:last-child { border-bottom: none; }
.apps-theme-mysims .plan-dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; }
.apps-theme-mysims .dot-active { background: var(--apps-theme-color-green); }
.apps-theme-mysims .dot-queued { background: var(--apps-theme-color-sky-mid); }
.apps-theme-mysims .dot-notactivated { background: var(--apps-theme-color-yellow); }
.apps-theme-mysims .dot-used { background: var(--apps-theme-color-ink-faint); }
.apps-theme-mysims .plan-info { flex: 1; min-width: 0; }
.apps-theme-mysims .plan-name { font-size: 13.5px; font-weight: 700; color: var(--apps-theme-color-ink); line-height: 1.3; }
.apps-theme-mysims .plan-tag { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; padding: 2px 8px; border-radius: var(--apps-theme-radius-pill); margin-left: 6px; vertical-align: middle; }
.apps-theme-mysims .tag-active { background: #E8F5EA; color: var(--apps-theme-color-green); }
.apps-theme-mysims .tag-queued { background: #E7F2FB; color: var(--apps-theme-color-sky-deep); }
.apps-theme-mysims .tag-notactivated { background: #FFF3DF; color: #B7791F; }
.apps-theme-mysims .tag-used { background: var(--apps-theme-color-surface-alt); color: var(--apps-theme-color-ink-soft); }
.apps-theme-mysims .tag-expired { background: #FCE8E6; color: #B42318; }
.apps-theme-mysims .tag-refunded { background: var(--apps-theme-color-surface-alt); color: var(--apps-theme-color-ink-soft); }
.apps-theme-mysims .plan-detail { font-size: 11.5px; color: var(--apps-theme-color-ink-soft); margin-top: 3px; }
.apps-theme-mysims .plan-row.used .plan-name { color: var(--apps-theme-color-ink-soft); }
.apps-theme-mysims .show-past { font-size: 12px; font-weight: 700; color: var(--apps-theme-color-primary); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; display: inline-block; padding: 10px 0 2px; }
.apps-theme-mysims .ship { margin-top: 16px; background: #FBFCFE; border: 1px solid var(--apps-theme-color-line); border-radius: var(--apps-theme-radius-lg); padding: 16px 18px; }
.apps-theme-mysims .ship-h { font-family: var(--apps-theme-font-display); font-weight: 700; font-size: 13px; color: var(--apps-theme-color-ink); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.apps-theme-mysims .ship-h svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--apps-theme-color-primary); }
.apps-theme-mysims .ship-h .trk,
.apps-theme-mysims .account-order-track,
.apps-theme-mysims .account-order-track-compact { font-size: 11px; color: var(--apps-theme-color-ink-soft); font-weight: 400; font-variant-numeric: tabular-nums; }
.apps-theme-mysims .trk-carrier { font-weight: 700; color: var(--apps-theme-color-ink); margin-right: 4px; }
.apps-theme-mysims .trk-no { color: inherit; text-decoration: none; word-break: break-all; }
.apps-theme-mysims a.trk-no { color: var(--apps-theme-color-primary); text-decoration: underline; text-underline-offset: 2px; }
/* Inline copy control — avoid native button{width:100%} from parent apps.css */
.apps-theme-mysims .trk-no-copy,
.column.main .apps-theme-mysims .trk-no-copy,
body.apps-card-dashboard .column.main .apps-theme-mysims .trk-no-copy {
    display: inline;
    width: auto;
    max-width: none;
    min-width: 0;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    box-shadow: none;
    font: inherit;
    font-weight: 400;
    line-height: inherit;
    color: var(--apps-theme-color-ink);
    cursor: pointer;
    text-align: left;
    white-space: normal;
    word-break: break-all;
    vertical-align: baseline;
}
.apps-theme-mysims .trk-no-copy:hover,
.apps-theme-mysims .trk-no-copy:focus-visible,
.column.main .apps-theme-mysims .trk-no-copy:hover,
.column.main .apps-theme-mysims .trk-no-copy:focus-visible {
    color: var(--apps-theme-color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    background: transparent;
    background-color: transparent;
    outline: none;
}
.apps-theme-mysims .trk-no-copy.done,
.column.main .apps-theme-mysims .trk-no-copy.done {
    color: var(--apps-theme-color-green, #1f8a4c);
}
.apps-theme-mysims .account-order-tracking-card .account-order-track { margin-top: 6px; }
.apps-theme-mysims .account-order-tracking-section {
    margin-top: 16px;
    padding: 16px 18px;
    background: #FBFCFE;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
}
.apps-theme-mysims .account-order-tracking-head {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 12px;
    margin-bottom: 10px;
}
.apps-theme-mysims .account-order-tracking-title {
    margin: 0;
    font-family: var(--apps-theme-font-display);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--apps-theme-color-ink);
    min-width: 0;
    flex: 1 1 auto;
}
.apps-theme-mysims .account-order-tracking-head-actions {
    display: inline-flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 8px;
}
.apps-theme-mysims .account-order-track-page-link {
    display: inline;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--apps-theme-color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}
.apps-theme-mysims .account-order-track-page-link:hover,
.apps-theme-mysims .account-order-track-page-link:focus-visible {
    color: var(--apps-theme-color-brand-deep, #0a2f4d);
}
.apps-theme-mysims .account-order-track-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 14px;
}
.apps-theme-mysims .account-order-track-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md, 10px);
    background: #fff;
}
.apps-theme-mysims .account-order-track-card-head {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px 14px;
}
.apps-theme-mysims .account-order-track-card-main {
    min-width: 0;
    flex: 1 1 auto;
}
.apps-theme-mysims .account-order-track-card-main .account-order-track {
    font-size: 13px;
    color: var(--apps-theme-color-ink);
    line-height: 1.35;
}
.apps-theme-mysims .account-order-track-card-main .trk-carrier {
    display: inline;
    white-space: nowrap;
}
.apps-theme-mysims .account-order-track-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 4px;
    font-size: 11px;
    color: var(--apps-theme-color-ink-soft);
}
.apps-theme-mysims .account-order-track-carrier-link {
    flex: 0 0 auto;
    margin-top: 1px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--apps-theme-color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}
.apps-theme-mysims .account-order-ship-steps { margin-top: 4px; }
.apps-theme-mysims .account-order-track-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.apps-theme-mysims .account-order-track-open { font-size: 12px; padding: 8px 12px; }
.apps-theme-mysims .account-order-track-embed {
    margin: 0;
    border-top: 1px dashed rgba(14, 35, 72, .12);
    padding-top: 10px;
}
.apps-theme-mysims .account-order-track-embed-toggle {
    display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px;
    border: 0; background: transparent; padding: 0; cursor: pointer;
    font-family: var(--apps-theme-font-display); font-size: 12px; font-weight: 700; color: var(--apps-theme-color-ink);
}
.apps-theme-mysims .account-order-track-embed-toggle .caret { color: var(--apps-theme-color-ink-soft); transition: transform var(--apps-theme-duration-base); }
.apps-theme-mysims .account-order-track-embed.is-open .account-order-track-embed-toggle .caret { transform: rotate(180deg); }
.apps-theme-mysims .account-order-track-embed-body { margin-top: 10px; }
.apps-theme-mysims .account-order-track-embed-body[hidden] { display: none; }
.apps-theme-mysims .account-order-track-event { padding: 8px 0; }
.apps-theme-mysims .account-order-track-event.is-next { border-top: 1px dashed rgba(14, 35, 72, .12); }
.apps-theme-mysims .account-order-track-frame {
    display: block; width: 100%; min-height: 420px; border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg); background: #fff;
}
.apps-theme-mysims .ship-steps { display: flex; flex-direction: column; gap: 0; }
.apps-theme-mysims .ship-step { display: flex; align-items: flex-start; gap: 12px; position: relative; padding-bottom: 16px; }
.apps-theme-mysims .ship-step:last-child { padding-bottom: 0; }
.apps-theme-mysims .ship-step::before { content: ""; position: absolute; left: 11px; top: 24px; bottom: -2px; width: 2px; background: var(--apps-theme-color-line); }
.apps-theme-mysims .ship-step:last-child::before { display: none; }
.apps-theme-mysims .ship-step.done::before { background: var(--apps-theme-color-green); }
.apps-theme-mysims .ship-dot { width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  background: #fff; border: 2px solid var(--apps-theme-color-line); color: var(--apps-theme-color-ink-faint); z-index: 1; }
.apps-theme-mysims .ship-dot svg { width: 13px; height: 13px; }
.apps-theme-mysims .ship-step.done .ship-dot { background: var(--apps-theme-color-green); border-color: var(--apps-theme-color-green); color: #fff; }
.apps-theme-mysims .ship-step.current .ship-dot { border-color: var(--apps-theme-color-primary); color: var(--apps-theme-color-primary); box-shadow: 0 0 0 4px rgba(11,63,103,.1); }
.apps-theme-mysims .ship-label { font-size: 13px; font-weight: 700; color: var(--apps-theme-color-ink); line-height: 1.3; }
.apps-theme-mysims .ship-step:not(.done):not(.current) .ship-label { color: var(--apps-theme-color-ink-soft); font-weight: 600; }
.apps-theme-mysims .ship-sub { font-size: 11.5px; color: var(--apps-theme-color-ink-soft); margin-top: 1px; }

/* Order detail: horizontal steps on wider screens */
@media (min-width: 720px) {
    .apps-theme-mysims .account-order-ship-steps {
        flex-direction: row;
        align-items: flex-start;
        gap: 0;
    }
    .apps-theme-mysims .account-order-ship-steps .ship-step {
        flex: 1 1 0;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 8px;
        padding: 0 6px;
        min-width: 0;
    }
    .apps-theme-mysims .account-order-ship-steps .ship-step::before {
        left: calc(50% + 14px);
        right: calc(-50% + 14px);
        top: 11px;
        bottom: auto;
        width: auto;
        height: 2px;
    }
    .apps-theme-mysims .account-order-ship-steps .ship-step-body {
        width: 100%;
    }
    .apps-theme-mysims .account-order-ship-steps .ship-label,
    .apps-theme-mysims .account-order-ship-steps .ship-sub {
        text-align: center;
    }
    .apps-theme-mysims .account-order-ship-steps .ship-sub {
        line-height: 1.35;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 560px) {
    .apps-theme-mysims .account-order-tracking-head {
        align-items: baseline;
        gap: 4px 10px;
    }
    .apps-theme-mysims .account-order-track-card-head {
        flex-wrap: wrap;
        gap: 6px 10px;
    }
    .apps-theme-mysims .account-order-track-carrier-link {
        margin-top: 0;
    }
}
.apps-theme-mysims .esim { margin-top: 16px; border: 1px solid var(--apps-theme-color-line); border-radius: var(--apps-theme-radius-lg); overflow: hidden; }
.apps-theme-mysims .esim-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 13px 16px; cursor: pointer; background: #FBFCFE;
  font-family: var(--apps-theme-font-display); font-weight: 700; font-size: 13px; color: var(--apps-theme-color-ink); }
.apps-theme-mysims .esim-head .lt { display: flex; align-items: center; gap: 8px; }
.apps-theme-mysims .esim-head .lt svg { width: 15px; height: 15px; color: var(--apps-theme-color-primary); }
.apps-theme-mysims .esim-head .caret { width: 15px; height: 15px; color: var(--apps-theme-color-ink-soft); transition: transform var(--apps-theme-duration-base); }
.apps-theme-mysims .esim.open .esim-head .caret { transform: rotate(180deg); }
.apps-theme-mysims .esim-body { display: grid; grid-template-rows: 0fr; }
.apps-theme-mysims .esim.open .esim-body { grid-template-rows: 1fr; }
.apps-theme-mysims .esim-inner { padding: 16px; border-top: 1px solid var(--apps-theme-color-line); overflow: hidden; min-height: 0; }
.apps-theme-mysims .qr-note { display: flex; gap: 8px; align-items: flex-start; background: #EAF3FC; border: 1px solid rgba(105,205,255,.34); border-radius: var(--apps-theme-radius-md); padding: 10px 12px; font-size: 11.5px; color: var(--apps-theme-color-sky-deep); line-height: 1.45; margin-bottom: 14px; }
.apps-theme-mysims .qr-note svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 1px; }
.apps-theme-mysims .qr-wrap { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: 14px; }
.apps-theme-mysims .qr { width: 124px; height: 124px; border: 1px solid var(--apps-theme-color-line); border-radius: 12px; padding: 9px; background: #fff; }
.apps-theme-mysims .qr svg { width: 100%; height: 100%; }
.apps-theme-mysims .qr-cap { font-size: 11px; color: var(--apps-theme-color-ink-soft); }
.apps-theme-mysims .code-label { font-size: 11px; font-weight: 800; color: var(--apps-theme-color-ink-muted); margin-top: 11px; letter-spacing: .02em; text-transform: uppercase; display: flex; align-items: center; gap: 6px; }
.apps-theme-mysims .code-label svg { width: 14px; height: 14px; flex-shrink: 0; }
.apps-theme-mysims .code-head { font-size: 12.5px; font-weight: 700; color: var(--apps-theme-color-ink); margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--apps-theme-color-line); }
.apps-theme-mysims .code-steps { font-size: 11.5px; color: var(--apps-theme-color-ink-soft); margin-top: 4px; line-height: 1.5; }
.apps-theme-mysims .code-steps b { color: var(--apps-theme-color-ink-muted); font-weight: 700; }
.apps-theme-mysims .code-field { margin-top: 9px; }
.apps-theme-mysims .code-field-label { display: block; font-size: 10.5px; font-weight: 800; color: var(--apps-theme-color-ink-soft); letter-spacing: .04em; text-transform: uppercase; margin-bottom: 3px; }
.apps-theme-mysims .code-field .code { margin-top: 0; }

/* Parent apps.css button { width:100% } is neutralized in Layer B; .code-copy styled below. */

.apps-theme-mysims .code {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background: #F4F8FC;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    padding: 9px 10px 9px 12px;
    margin-top: 5px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
    color: var(--apps-theme-color-ink-muted);
    line-height: 1.4;
}

.apps-theme-mysims .code .code-value {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}

.apps-theme-mysims .code-copy,
.column.main .apps-theme-mysims .code-copy {
    flex: 0 0 auto;
    align-self: center;
    box-sizing: border-box;
    width: auto;
    height: auto;
    min-height: 28px;
    padding: 6px 11px;
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 1.2;
    color: var(--apps-theme-color-primary);
    background: #fff;
    background-color: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-sm);
    white-space: nowrap;
}

.apps-theme-mysims .code-copy:hover,
.apps-theme-mysims .code-copy:focus,
.apps-theme-mysims .code-copy:active,
.column.main .apps-theme-mysims .code-copy:hover,
.column.main .apps-theme-mysims .code-copy:focus,
.column.main .apps-theme-mysims .code-copy:active {
    color: var(--apps-theme-color-primary);
    opacity: 1;
    background: var(--apps-theme-color-cream-soft, #EEF3F9);
    background-color: var(--apps-theme-color-cream-soft, #EEF3F9);
    border: 1px solid var(--apps-theme-color-ink-faint, #c5ced8);
}

.apps-theme-mysims .code-copy.done {
    color: var(--apps-theme-color-green);
    border: 1px solid rgba(47, 143, 78, .4);
}

/* filter-chip Magento overrides — base in apps-theme.css */
.column.main .apps-theme-mysims .filter-chip,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: auto;
    flex: 0 0 auto;
    height: auto;
    padding: 9px 16px;
    border-radius: var(--apps-theme-radius-pill);
    background: var(--apps-theme-color-surface-alt);
    background-color: var(--apps-theme-color-surface-alt);
    color: var(--apps-theme-color-ink-muted);
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13.5px;
    line-height: 1.2;
    border: 1.5px solid transparent;
    white-space: nowrap;
}

.column.main .apps-theme-mysims .filter-chip:hover,
.column.main .apps-theme-mysims .filter-chip:focus,
.column.main .apps-theme-mysims .filter-chip:active,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip:focus,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip:active {
    color: var(--apps-theme-color-ink);
    opacity: 1;
    background: #E4EBF3;
    background-color: #E4EBF3;
    border: 1.5px solid rgba(14, 35, 72, .18);
}

.column.main .apps-theme-mysims .filter-chip.on,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip.on {
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    color: #fff;
    border-color: var(--apps-theme-color-primary);
}

.column.main .apps-theme-mysims .filter-chip.on:hover,
.column.main .apps-theme-mysims .filter-chip.on:focus,
.column.main .apps-theme-mysims .filter-chip.on:active,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip.on:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip.on:focus,
body.apps-card-dashboard .column.main .apps-theme-mysims .filter-chip.on:active {
    color: #fff;
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    border-color: var(--apps-theme-color-primary);
    opacity: .92;
}

/* theme-button Magento overrides — base in apps-theme.css */
.apps-theme-mysims .theme-button,
.column.main .apps-theme-mysims .theme-button,
body.apps-card-dashboard .column.main .apps-theme-mysims .theme-button,
.apps-theme-mysims a.theme-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: auto;
    height: auto;
    min-height: 42px;
    padding: 11px 24px;
    border-radius: var(--apps-theme-radius-pill);
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 13.5px;
    line-height: 16px;
    text-decoration: none;
    box-sizing: border-box;
}

.apps-theme-mysims .theme-button-primary,
.column.main .apps-theme-mysims .theme-button-primary,
body.apps-card-dashboard .column.main .apps-theme-mysims .theme-button-primary {
    min-width: 140px;
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    color: #fff;
    border: 1.5px solid var(--apps-theme-color-primary);
}

.apps-theme-mysims .foot .theme-button-primary {
    flex: 1 1 130px;
}

.apps-theme-mysims .theme-button-primary:hover,
.apps-theme-mysims .theme-button-primary:focus,
.apps-theme-mysims .theme-button-primary:active,
.column.main .apps-theme-mysims .theme-button-primary:hover,
.column.main .apps-theme-mysims .theme-button-primary:focus,
.column.main .apps-theme-mysims .theme-button-primary:active,
body.apps-card-dashboard .column.main .apps-theme-mysims .theme-button-primary:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .theme-button-primary:focus,
body.apps-card-dashboard .column.main .apps-theme-mysims .theme-button-primary:active {
    color: #fff;
    opacity: 1;
    background: #163a66;
    background-color: #163a66;
    border: 1.5px solid #163a66;
}

.apps-theme-mysims .theme-button-outline,
.column.main .apps-theme-mysims .theme-button-outline {
    background: #fff;
    background-color: #fff;
    color: var(--apps-theme-color-ink);
    border: 1.5px solid var(--apps-theme-color-line);
}

.apps-theme-mysims .theme-button-outline:hover,
.apps-theme-mysims .theme-button-outline:focus,
.apps-theme-mysims .theme-button-outline:active,
.column.main .apps-theme-mysims .theme-button-outline:hover {
    color: var(--apps-theme-color-ink);
    opacity: 1;
    background: #EEF3F9;
    background-color: #EEF3F9;
    border: 1.5px solid var(--apps-theme-color-ink-soft);
}

.apps-theme-mysims .theme-button-ghost,
.column.main .apps-theme-mysims .theme-button-ghost {
    background: transparent;
    color: var(--apps-theme-color-ink-soft);
    margin-left: auto;
    padding: 11px 12px;
    border: none;
}

.apps-theme-mysims .theme-button-ghost:hover,
.column.main .apps-theme-mysims .theme-button-ghost:hover {
    color: var(--apps-theme-color-brand-deep);
    opacity: 1;
    background: transparent;
    border: none;
}

/* segment Magento overrides — base in apps-theme.css */
.apps-theme-mysims .segment button,
.apps-theme-mysims .segment .segment-button,
.column.main .apps-theme-mysims .segment button,
.column.main .apps-theme-mysims .segment .segment-button {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    padding: 9px 8px;
    border-radius: var(--apps-theme-radius-pill);
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13.5px;
    line-height: 1.2;
    color: var(--apps-theme-color-ink-muted);
    background: transparent;
    white-space: nowrap;
}

.apps-theme-mysims .segment button.on,
.apps-theme-mysims .segment .segment-button.on,
.column.main .apps-theme-mysims .segment button.on,
.column.main .apps-theme-mysims .segment .segment-button.on {
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    color: #fff;
    border: none;
}

.apps-theme-mysims .segment button:hover:not(.on),
.apps-theme-mysims .segment .segment-button:hover:not(.on),
.column.main .apps-theme-mysims .segment button:hover:not(.on),
.column.main .apps-theme-mysims .segment .segment-button:hover:not(.on) {
    color: var(--apps-theme-color-ink);
    opacity: 1;
    background: #E4EBF3;
    background-color: #E4EBF3;
    border: none;
}

.apps-theme-mysims .segment button.on:hover,
.apps-theme-mysims .segment .segment-button.on:hover,
.column.main .apps-theme-mysims .segment button.on:hover,
.column.main .apps-theme-mysims .segment .segment-button.on:hover {
    color: #fff;
    opacity: 1;
    background: #163a66;
    background-color: #163a66;
    border: none;
}

.apps-theme-mysims .more,
.apps-theme-mysims .capacity {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 16px 0 8px;
    text-align: center;
}

.apps-theme-mysims .more[hidden],
.apps-theme-mysims .capacity[hidden] {
    display: none;
}

.apps-theme-mysims .load-more-button,
.column.main .apps-theme-mysims .load-more-button,
body.apps-card-dashboard .column.main .apps-theme-mysims .load-more-button {
    min-height: 46px;
    padding: 12px 28px;
    border-radius: var(--apps-theme-radius-pill);
    background: #fff;
    background-color: #fff;
    color: var(--apps-theme-color-primary);
    border: 1.5px solid var(--apps-theme-color-line);
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 14px;
}

.apps-theme-mysims .load-more-button:hover,
.apps-theme-mysims .load-more-button:focus,
.apps-theme-mysims .load-more-button:active,
.column.main .apps-theme-mysims .load-more-button:hover,
.column.main .apps-theme-mysims .load-more-button:focus,
.column.main .apps-theme-mysims .load-more-button:active,
body.apps-card-dashboard .column.main .apps-theme-mysims .load-more-button:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .load-more-button:focus,
body.apps-card-dashboard .column.main .apps-theme-mysims .load-more-button:active {
    color: var(--apps-theme-color-primary);
    opacity: 1;
    background: #EEF3F9;
    background-color: #EEF3F9;
    border: 1.5px solid var(--apps-theme-color-primary);
}

.apps-theme-mysims .capacity-text {
    font-size: 14px;
    color: var(--apps-theme-color-ink-muted);
    max-width: 420px;
    line-height: 1.5;
}

/* modal-submit Magento override — base in apps-theme.css */
.apps-theme-mysims .modal-submit,
.column.main .apps-theme-mysims .modal-submit {
    display: inline-flex;
    width: 100%;
    height: 50px;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border-radius: var(--apps-theme-radius-pill);
    background: var(--apps-theme-color-primary);
    background-color: var(--apps-theme-color-primary);
    color: #fff;
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 15px;
    line-height: 1.2;
    border: none;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--apps-theme-duration-base, .2s);
}

.apps-theme-mysims .modal-submit:hover,
.apps-theme-mysims .modal-submit:focus,
.apps-theme-mysims .modal-submit:active,
.column.main .apps-theme-mysims .modal-submit:hover {
    background: #163a66;
    background-color: #163a66;
    color: #fff;
    opacity: 1;
    border: none;
}

.apps-theme-mysims .installs { margin-top: 14px; background: var(--apps-theme-color-cream-soft); border-radius: var(--apps-theme-radius-md); padding: 12px 14px; }
.apps-theme-mysims .installs-t { font-size: 12px; font-weight: 800; color: var(--apps-theme-color-ink-muted); display: flex; align-items: center; gap: 6px; }
.apps-theme-mysims .installs-t svg { width: 13px; height: 13px; color: var(--apps-theme-color-yellow); }
.apps-theme-mysims .installs-i { font-size: 11px; color: var(--apps-theme-color-ink-soft); margin-top: 3px; line-height: 1.45; }
.apps-theme-mysims .dots { display: flex; gap: 5px; margin-top: 9px; }
.apps-theme-mysims .dots .install-dot { flex: 1; height: 6px; border-radius: 3px; background: var(--apps-theme-color-surface-alt); }
.apps-theme-mysims .dots .install-dot.used { background: var(--apps-theme-color-primary); }
.apps-theme-mysims .foot { display: flex; gap: 9px; padding: 16px 24px; border-top: 1px solid var(--apps-theme-color-line); background: #FBFCFE; flex-wrap: wrap; }
.apps-theme-mysims .foot .theme-button svg { width: 15px; height: 15px; flex-shrink: 0; }
.apps-theme-mysims .foot .theme-button-ghost { min-width: 42px; min-height: 42px; }
.apps-theme-mysims .empty { grid-column: 1/-1; text-align: center; padding: 60px 20px; color: var(--apps-theme-color-ink-soft); }
.apps-theme-mysims .empty svg { width: 46px; height: 46px; color: var(--apps-theme-color-ink-faint); margin: 0 auto 14px; }
.apps-theme-mysims .empty h3 { font-size: 18px; color: var(--apps-theme-color-ink-muted); margin-bottom: 6px; }

/* My SIMs detail + view pages */
.apps-theme-mysims--detail .page-card-view-container {
    padding-bottom: 64px;
}

.apps-theme-mysims .detail-back {
    padding: 20px 0 0;
}

.apps-theme-mysims .back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    color: var(--apps-theme-color-primary);
    text-decoration: none;
}

.apps-theme-mysims .back-link:hover {
    color: var(--apps-theme-color-brand);
}

.apps-theme-mysims .copy-action {
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.apps-theme-mysims .switcher-container .switcher-block {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: 5;
}

.apps-theme-mysims .switcher-container {
    position: relative;
}

.apps-theme-mysims .switcher-container.open .switcher-block,
.apps-theme-mysims .switcher-container:hover .switcher-block {
    display: block;
}

.apps-theme-mysims .switcher-popup {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-md);
    box-shadow: var(--apps-theme-shadow-md);
    min-width: 160px;
    padding: 6px 0;
}

.apps-theme-mysims .switcher-popup a {
    display: block;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--apps-theme-color-ink-muted);
    text-decoration: none;
}

.apps-theme-mysims .switcher-popup a:hover {
    background: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-primary);
}

.mfp-bg.mfp-ready + .mfp-wrap .modal-wrap .modal,
.mfp-wrap .popup-bind-card-container.modal-wrap .modal {
    margin: 0 auto;
}

.mfp-wrap .popup-bind-card-container.modal-wrap {
    max-width: 440px;
    margin: 0 auto;
}

/* pager-link Magento override — base in apps-theme.css */
.column.main .apps-theme-mysims .pager-link,
body.apps-card-dashboard .column.main .apps-theme-mysims .pager-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 30px;
    min-height: 30px;
    padding: 4px 9px;
    width: auto;
    border-radius: var(--apps-theme-radius-pill);
    border: 1px solid var(--apps-theme-color-line);
    background: #fff;
    background-color: #fff;
    color: var(--apps-theme-color-ink-muted);
    font-weight: 700;
    font-size: 12.5px;
    line-height: 1.2;
    text-decoration: none;
}

.column.main .apps-theme-mysims .pager-link:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .pager-link:hover {
    color: var(--apps-theme-color-primary);
    opacity: 1;
    background: #EEF3F9;
    background-color: #EEF3F9;
    border: 1px solid var(--apps-theme-color-primary);
}

@media (max-width: 560px) {
    .column.main .apps-theme-mysims .pager-link {
        min-width: 28px;
        min-height: 28px;
        padding: 3px 7px;
        font-size: 12px;
    }
}

/* ---------- My SIMs Account tab ---------- */
.apps-theme-mysims .account-wrap {
    background: var(--apps-theme-color-surface-alt, #f5f7fa);
    border-bottom: 1px solid var(--apps-theme-color-line);
}

.apps-theme-mysims .account-wrap .container {
    padding-top: 16px;
    padding-bottom: 20px;
    /* horizontal: shared .column.main .container gutter */
    max-width: var(--apps-theme-container);
    margin: 0 auto;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 248px 1fr;
    gap: 26px;
    align-items: start;
}

@media (max-width: 820px) {
    .apps-theme-mysims .account-wrap .container {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

.apps-theme-mysims .account-sidebar {
    position: sticky;
    top: calc(var(--apps-theme-header-height, 72px) + 52px);
}

@media (max-width: 820px) {
    .apps-theme-mysims .account-sidebar {
        position: static;
    }
}

.apps-theme-mysims .account-sidebar-card {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    padding: 18px;
    box-shadow: var(--apps-theme-shadow-xs, 0 1px 2px rgba(14, 35, 72, .04));
    margin-bottom: 14px;
}

.apps-theme-mysims .account-sidebar-identity {
    display: flex;
    align-items: center;
    gap: 12px;
}

.apps-theme-mysims .account-sidebar-avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 16px;
    color: #fff;
    background: var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-sidebar-name {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 14.5px;
    color: var(--apps-theme-color-ink);
    line-height: 1.25;
}

.apps-theme-mysims .account-sidebar-email {
    font-size: 11.5px;
    color: var(--apps-theme-color-ink-muted);
    margin-top: 2px;
    word-break: break-all;
}

.apps-theme-mysims .account-nav {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    overflow: hidden;
    box-shadow: var(--apps-theme-shadow-xs, 0 1px 2px rgba(14, 35, 72, .04));
}

/* Match design station .acct-nav button */
.apps-theme-mysims .account-nav-button,
.column.main .apps-theme-mysims .account-nav-button,
body.apps-card-dashboard .column.main .apps-theme-mysims .account-nav-button {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 11px;
    width: 100%;
    text-align: left;
    font-family: var(--apps-theme-font-body);
    font-weight: 700;
    font-size: 13.5px;
    line-height: 1.35;
    color: var(--apps-theme-color-ink-muted);
    padding: 13px 16px;
    border: none;
    border-left: 3px solid transparent;
    border-radius: 0;
    background: none;
    background-color: transparent;
    box-shadow: none;
    cursor: pointer;
    white-space: normal;
    transition: background var(--apps-theme-duration-fast), color var(--apps-theme-duration-fast), border-color var(--apps-theme-duration-fast);
}

.apps-theme-mysims .account-nav-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: var(--apps-theme-color-ink-soft);
    display: block;
}

.apps-theme-mysims .account-nav-label {
    flex: 1 1 auto;
    min-width: 0;
}

.apps-theme-mysims .account-nav-button:hover,
.apps-theme-mysims .account-nav-button:focus,
.column.main .apps-theme-mysims .account-nav-button:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .account-nav-button:hover {
    background: var(--apps-theme-color-surface);
    background-color: var(--apps-theme-color-surface);
    color: var(--apps-theme-color-ink-muted);
    opacity: 1;
    border-left: 3px solid transparent;
}

.apps-theme-mysims .account-nav-button.on,
.column.main .apps-theme-mysims .account-nav-button.on,
body.apps-card-dashboard .column.main .apps-theme-mysims .account-nav-button.on {
    background: var(--apps-theme-color-cream-soft);
    background-color: var(--apps-theme-color-cream-soft);
    color: var(--apps-theme-color-primary);
    border-left-color: var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-nav-button.on .account-nav-icon {
    color: var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-nav-button.on:hover,
.column.main .apps-theme-mysims .account-nav-button.on:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims .account-nav-button.on:hover {
    background: var(--apps-theme-color-cream-soft);
    background-color: var(--apps-theme-color-cream-soft);
    color: var(--apps-theme-color-primary);
    border-left: 3px solid var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-nav-button + .account-nav-button {
    border-top: 1px solid var(--apps-theme-color-line);
}

.apps-theme-mysims .account-main {
    min-width: 0;
}

.apps-theme-mysims .account-section {
    display: none;
}

.apps-theme-mysims .account-section.on {
    display: block;
    animation: appsThemeMsFade .25s ease-out;
}

.apps-theme-mysims .account-card {
    background: #fff;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-xl);
    box-shadow: var(--apps-theme-shadow-sm, 0 2px 8px rgba(14, 35, 72, .06));
    padding: 24px 26px;
    margin-bottom: 18px;
}

.apps-theme-mysims .account-card-h {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.apps-theme-mysims .account-card-h h3 {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 18px;
    color: var(--apps-theme-color-ink);
    margin: 0;
}

.apps-theme-mysims .account-card-sub {
    font-size: 12.5px;
    color: var(--apps-theme-color-ink-muted);
    margin-bottom: 18px;
    line-height: 1.5;
}

.apps-theme-mysims .account-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px 16px;
}

@media (max-width: 560px) {
    .apps-theme-mysims .account-form {
        grid-template-columns: 1fr;
    }
}

.apps-theme-mysims .account-password {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px 16px;
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid var(--apps-theme-color-line);
}

@media (max-width: 560px) {
    .apps-theme-mysims .account-password {
        grid-template-columns: 1fr;
    }
}

.apps-theme-mysims .account-password.hidden {
    display: none;
}

.apps-theme-mysims .account-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 20px;
    flex-wrap: wrap;
    grid-column: 1 / -1;
}

.apps-theme-mysims .account-actions .theme-button-primary,
.apps-theme-mysims .account-actions .theme-button-outline,
.apps-theme-mysims .account-actions .theme-button-ghost {
    flex: 0 0 auto;
    width: auto;
    min-width: 148px;
}

.apps-theme-mysims .account-actions .theme-button-ghost {
    min-width: 0;
}

.apps-theme-mysims .theme-button.is-loading,
.apps-theme-mysims .account-text-link.is-loading,
.apps-theme-mysims .modal-submit.is-loading {
    opacity: .72;
    pointer-events: none;
    cursor: wait;
}

.apps-theme-mysims .account-hint {
    font-size: 12px;
    color: var(--apps-theme-color-ink-muted);
}

.apps-theme-mysims .account-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .02em;
    padding: 4px 10px;
    border-radius: var(--apps-theme-radius-pill);
    white-space: nowrap;
    background: rgba(14, 35, 72, .08);
    color: var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-text-link,
.column.main .apps-theme-mysims .account-text-link {
    display: inline;
    width: auto;
    font-family: var(--apps-theme-font-body);
    font-weight: 800;
    font-size: 12.5px;
    color: var(--apps-theme-color-primary);
    background: none;
    background-color: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.apps-theme-mysims .account-text-link.account-danger {
    color: var(--apps-theme-color-brand-deep, #c45c26);
}

.apps-theme-mysims .account-text-link.account-danger.is-confirming {
    font-weight: 800;
    text-decoration-thickness: 2px;
}

.apps-theme-mysims .account-order-num {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    font-size: 12.5px;
}

.apps-theme-mysims .account-empty {
    text-align: center;
    color: var(--apps-theme-color-ink-muted);
    padding: 30px 10px;
    font-size: 13.5px;
}

.apps-theme-mysims .account-address-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    padding: 4px 9px;
    border-radius: var(--apps-theme-radius-pill);
    background: rgba(14, 35, 72, .06);
    color: var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-address-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
    margin-top: 8px;
}

.apps-theme-mysims .account-address-card {
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    padding: 16px;
    background: var(--apps-theme-color-surface-alt, #f5f7fa);
}

.apps-theme-mysims .account-address-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
    min-height: 22px;
}

.apps-theme-mysims .account-address-body {
    font-size: 13px;
    line-height: 1.45;
    color: var(--apps-theme-color-ink);
}

.apps-theme-mysims .account-address-body strong {
    display: block;
    margin-bottom: 4px;
}

.apps-theme-mysims .account-address-actions {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 8px;
}

.apps-theme-mysims .account-table td.account-address-actions {
    white-space: nowrap;
}

.apps-theme-mysims .account-address-form {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--apps-theme-color-line);
}

.apps-theme-mysims .account-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 4px;
}

.apps-theme-mysims .account-table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: 13px;
    table-layout: auto;
}

.apps-theme-mysims .account-table th,
.apps-theme-mysims .account-table td {
    padding: 14px 10px;
    border: none;
    border-bottom: 1px solid var(--apps-theme-color-line);
    text-align: left;
    vertical-align: middle;
    box-sizing: border-box;
    /* Prefer natural wrapping; avoid aggressive mid-token breaks (¥202.0|0, dates). */
    word-break: normal;
    overflow-wrap: break-word;
}

.apps-theme-mysims .account-table th {
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-muted);
    white-space: nowrap;
}

.apps-theme-mysims .account-table .is-align-end {
    text-align: right;
}

.apps-theme-mysims .account-table-actions {
    white-space: nowrap;
}

/* Orders list: ORDER # / meta keep one line; ITEMS wraps first under pressure. */
.apps-theme-mysims .account-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 4px;
}

.apps-theme-mysims .account-table--orders {
    table-layout: auto;
    width: 100%;
    min-width: 640px;
}

.apps-theme-mysims .account-table--orders th,
.apps-theme-mysims .account-table--orders td {
    vertical-align: top;
}

.apps-theme-mysims .account-table--orders .account-col-order {
    width: 1%;
    white-space: nowrap;
}

.apps-theme-mysims .account-table--orders .account-col-order .account-order-num {
    display: inline-block;
    max-width: none;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
    line-height: 1.35;
}

.apps-theme-mysims .account-table--orders .account-col-date {
    width: 1%;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}

.apps-theme-mysims .account-table--orders .account-col-items {
    width: auto;
    min-width: 8rem;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.45;
}

.apps-theme-mysims .account-table--orders .account-col-total {
    width: 1%;
    min-width: 4.75rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}

.apps-theme-mysims .account-table--orders .account-col-status {
    width: 1%;
    min-width: 5.5rem;
    white-space: nowrap;
    overflow-wrap: normal;
}

.apps-theme-mysims .account-table--orders .account-col-action {
    width: 1%;
    min-width: 5rem;
    white-space: nowrap;
}

@media (min-width: 721px) and (max-width: 980px) {
    .apps-theme-mysims .account-table--orders {
        min-width: 640px;
    }

    .apps-theme-mysims .account-table--orders .account-col-items {
        min-width: 7rem;
    }
}

@media (max-width: 720px) {
    .apps-theme-mysims .account-table-wrap {
        overflow: visible;
    }

    .apps-theme-mysims .account-table,
    .apps-theme-mysims .account-table tbody {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .apps-theme-mysims .account-table thead {
        display: none;
    }

    .apps-theme-mysims .account-table tr {
        display: block;
        margin: 0 0 12px;
        padding: 14px 16px;
        border: 1px solid var(--apps-theme-color-line);
        border-radius: var(--apps-theme-radius-lg);
        background: var(--apps-theme-color-surface-alt, #f5f7fa);
    }

    .apps-theme-mysims .account-table td {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        max-width: none;
        min-width: 0;
        padding: 8px 0;
        border-bottom: 1px dashed rgba(14, 35, 72, .1);
        text-align: right;
    }

    .apps-theme-mysims .account-table--orders .account-col-order,
    .apps-theme-mysims .account-table--orders .account-col-date,
    .apps-theme-mysims .account-table--orders .account-col-items,
    .apps-theme-mysims .account-table--orders .account-col-total,
    .apps-theme-mysims .account-table--orders .account-col-status,
    .apps-theme-mysims .account-table--orders .account-col-action {
        width: 100%;
        min-width: 0;
        max-width: none;
    }

    .apps-theme-mysims .account-table--orders .account-col-date,
    .apps-theme-mysims .account-table--orders .account-col-total,
    .apps-theme-mysims .account-table--orders .account-col-status {
        white-space: normal;
    }

    .apps-theme-mysims .account-table td:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .apps-theme-mysims .account-table td:first-child {
        padding-top: 0;
    }

    .apps-theme-mysims .account-order-items .account-table td:first-child {
        display: block;
        text-align: left;
        padding-top: 0;
    }

    .apps-theme-mysims .account-order-items .account-table td:first-child::before {
        display: none;
    }

    .apps-theme-mysims .account-order-items .account-table td:first-child .account-order-item-body {
        width: 100%;
    }

    .apps-theme-mysims .account-table td::before {
        content: attr(data-label);
        flex: 0 0 auto;
        max-width: 42%;
        text-align: left;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .04em;
        text-transform: uppercase;
        color: var(--apps-theme-color-ink-muted);
        line-height: 1.45;
        padding-top: 2px;
    }

    .apps-theme-mysims .account-table td.is-align-end,
    .apps-theme-mysims .account-table .account-table-actions {
        text-align: right;
    }

    .apps-theme-mysims .account-table .account-table-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .apps-theme-mysims .account-table .account-table-actions::before {
        align-self: center;
    }

    .apps-theme-mysims .account-address-actions {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        gap: 8px 12px;
    }

    .apps-theme-mysims .account-order-meta-grid {
        grid-template-columns: 1fr;
    }
}

.apps-theme-mysims .account-order-meta {
    display: grid;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--apps-theme-color-ink);
}

.apps-theme-mysims .account-order-meta strong {
    display: block;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-muted);
    margin-bottom: 2px;
}

.apps-theme-mysims .account-order-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.apps-theme-mysims .account-order-meta-card {
    background: var(--apps-theme-color-surface-alt, #f5f7fa);
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    padding: 16px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--apps-theme-color-ink);
}

.apps-theme-mysims .account-order-meta-card > div + div {
    margin-top: 4px;
}

.apps-theme-mysims .account-order-address {
    white-space: pre-line;
}

.apps-theme-mysims .account-order-items {
    margin-top: 4px;
}

.apps-theme-mysims .account-order-item-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
    min-width: 0;
    text-align: left;
}

.apps-theme-mysims .account-order-item-name {
    width: 100%;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    line-height: 1.35;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.apps-theme-mysims .account-order-item-sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    width: 100%;
    min-width: 0;
}

.apps-theme-mysims .account-order-item-meta {
    font-size: 11.5px;
    line-height: 1.35;
    color: var(--apps-theme-color-ink-soft, var(--apps-theme-color-ink-muted));
    overflow-wrap: anywhere;
    word-break: break-word;
}

.apps-theme-mysims .account-order-item-type {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 3px 9px;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--apps-theme-color-primary);
    background: rgba(14, 52, 110, .06);
    border-radius: var(--apps-theme-radius-pill);
    white-space: nowrap;
}

.apps-theme-mysims .account-order-totals {
    margin-top: 16px;
    margin-left: auto;
    max-width: 360px;
    border: 1px solid var(--apps-theme-color-line);
    border-radius: var(--apps-theme-radius-lg);
    background: #fff;
    overflow: hidden;
}

.apps-theme-mysims .account-order-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--apps-theme-color-line);
    font-size: 13px;
    color: var(--apps-theme-color-ink-muted);
}

.apps-theme-mysims .account-order-total-row:last-child {
    border-bottom: none;
}

.apps-theme-mysims .account-order-total-row strong {
    font-size: 13px;
    color: var(--apps-theme-color-ink);
    font-weight: 800;
}

.apps-theme-mysims .account-order-total-row.is-grand {
    background: var(--apps-theme-color-surface-alt, #f5f7fa);
    color: var(--apps-theme-color-ink);
    font-weight: 700;
}

.apps-theme-mysims .account-order-total-row.is-grand strong {
    font-size: 15px;
    color: var(--apps-theme-color-primary);
}

.apps-theme-mysims .account-address-drawer {
    margin-bottom: 18px;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease, margin .25s ease;
}

.apps-theme-mysims .account-address-drawer.is-open,
.apps-theme-mysims .account-address-drawer:not([hidden]) {
    max-height: 1200px;
    opacity: 1;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--apps-theme-color-line);
}

.apps-theme-mysims .account-address-section-title {
    font-family: var(--apps-theme-font-display);
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink-muted);
    margin: 18px 0 12px;
}

.apps-theme-mysims .account-address-defaults .account-address-section-title {
    margin-top: 0;
}

@media (max-width: 720px) {
    .apps-theme-mysims .hero-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .apps-theme-mysims .add-sim-button {
        width: 100%;
        justify-content: center;
    }

    .apps-theme-mysims .account-wrap .container {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .apps-theme-mysims .account-order-totals {
        max-width: 100%;
    }
}

/* Footer brand readability — full footer block follows later in this file */

/*
 * Back to top — sits above Zendesk / chat launcher.
 * Visible only when document is tall enough AND user has scrolled.
 */
.apps-theme-totop {
    position: fixed;
    z-index: 9000;
    right: 18px;
    bottom: 96px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #0B3F67;
    color: #fff;
    box-shadow: 0 8px 20px rgba(14, 35, 72, .22);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease, background .2s ease;
}
.apps-theme-totop.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.apps-theme-totop[hidden] {
    display: none !important;
}
.apps-theme-totop:hover,
.apps-theme-totop:focus {
    background: #07334F;
    color: #fff;
    outline: none;
}
.apps-theme-totop svg {
    width: 20px;
    height: 20px;
    display: block;
}
@media (max-width: 760px) {
    .apps-theme-totop {
        right: 12px;
        bottom: 88px;
        width: 40px;
        height: 40px;
        border-radius: 10px;
    }
}
@media (max-width: 480px) {
    .apps-theme-totop {
        bottom: 80px;
        right: 10px;
    }
}

/* ==========================================================================
   LAYER D — Buy / Checkout flow (merged from MageTime_Apps buy-flow.css +
   checkout-flow.css). Keep here — do not re-split into new CSS files.
   Footer shell isolation also lives here (prefer CSS over LESS edits).
   ========================================================================== */

/* Magento Luma wraps theme footer in .page-footer > .footer.content */
.page-footer {
    margin-top: 0;
    padding: 0;
    background: transparent;
    float: none;
    clear: both;
    width: 100%;
    max-width: none;
}
.page-footer .footer.content {
    box-sizing: border-box;
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    float: none;
    clear: both;
}

.apps-theme-footer {
    background: var(--apps-theme-color-primary-deep);
    color: rgba(184, 212, 232, .55);
    padding: 80px 0 32px;
    float: none;
    clear: both;
    width: 100%;
    max-width: none;
    display: block;
    position: relative;
    overflow: visible;
    box-sizing: border-box;
}
.apps-theme-footer .footer-top {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 3fr);
    gap: 80px;
    margin-bottom: 56px;
    align-items: start;
}
.apps-theme-footer .footer-brand {
    min-width: 0;
}
.apps-theme-footer .footer-brand > img {
    height: 42px;
    width: auto;
    max-width: 100%;
    margin-bottom: 18px;
    display: block;
}
.apps-theme-footer .footer-tagline {
    font-size: 14px;
    line-height: 1.6;
    max-width: 32ch;
    margin: 0 0 18px;
    color: rgba(184, 212, 232, .7);
}
.apps-theme-footer .footer-meta {
    font-size: 13px;
    line-height: 1.7;
    color: rgba(184, 212, 232, .5);
}
.apps-theme-footer .footer-meta a {
    color: rgba(184, 212, 232, .75);
    text-decoration: none;
    transition: color var(--apps-theme-duration-fast);
}
.apps-theme-footer .footer-meta a:hover { color: #fff; }
.apps-theme-footer .footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}
.apps-theme-footer .footer-social a {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(184, 212, 232, .18);
    color: rgba(184, 212, 232, .75);
    text-decoration: none;
    transition: color var(--apps-theme-duration-fast), border-color var(--apps-theme-duration-fast), transform var(--apps-theme-duration-base);
}
.apps-theme-footer .footer-social a:hover {
    color: #fff;
    border-color: rgba(184, 212, 232, .45);
    transform: translateY(-2px);
}
.apps-theme-footer .footer-social svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    display: block;
}
.apps-theme-footer .footer-apps {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.apps-theme-footer .footer-apps-link {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: rgba(184, 212, 232, .85);
    border: 1px solid rgba(184, 212, 232, .22);
    border-radius: var(--apps-theme-radius-pill);
    padding: 8px 14px;
    text-decoration: none;
    transition: color var(--apps-theme-duration-fast), border-color var(--apps-theme-duration-fast), background var(--apps-theme-duration-fast);
}
.apps-theme-footer .footer-apps-link:hover {
    color: #fff;
    border-color: rgba(184, 212, 232, .45);
    background: rgba(255, 255, 255, .06);
}
.apps-theme-footer .footer-cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
    min-width: 0;
}
.apps-theme-footer .footer-col {
    min-width: 0;
}
.apps-theme-footer .footer-col h4 {
    color: var(--apps-theme-color-sky);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin: 0 0 18px;
    font-family: var(--apps-theme-font-display);
}
.apps-theme-footer .footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.apps-theme-footer .footer-col li {
    margin: 0 0 10px;
}
.apps-theme-footer .footer-col a {
    font-size: 14px;
    color: rgba(184, 212, 232, .65);
    text-decoration: none;
    transition: color var(--apps-theme-duration-fast);
}
.apps-theme-footer .footer-col a:hover { color: #fff; }
.apps-theme-footer .footer-bot {
    padding-top: 28px;
    margin-top: 56px;
    border-top: 1px solid rgba(184, 212, 232, .1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 13px;
    color: rgba(184, 212, 232, .45);
}
.apps-theme-footer .footer-copy {
    margin: 0;
}
.apps-theme-footer .footer-legal-links {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
}
.apps-theme-footer .footer-legal-links a {
    color: rgba(184, 212, 232, .6);
    text-decoration: none;
}
.apps-theme-footer .footer-legal-links a:hover { color: #fff; }
@media (max-width: 880px) {
    .apps-theme-footer .footer-top {
        grid-template-columns: 1fr;
        gap: 48px;
    }
}
@media (max-width: 760px) {
    .apps-theme-footer .footer-cols {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
}
@media (max-width: 520px) {
    .apps-theme-footer .footer-cols {
        grid-template-columns: 1fr;
    }
}


/* ---- Buy flow (scoped .buy-flow) ---- */
/* Buy flow — ported from design-station recharge/recharge.css (plan + shipping + sim) */
.buy-flow {
  --font-display: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --r-md: 12px;
  --r-lg: 16px;
  --r-xl: 22px;
  --r-pill: 999px;
  --shadow-sm: 0 2px 8px rgba(14, 35, 72, .08);
  --shadow-md: 0 10px 28px rgba(14, 35, 72, .12);
  --ease-out: cubic-bezier(.2, .7, .2, 1);
  --t-fast: 140ms;
  --t-base: 220ms;
  --field-border: var(--apps-theme-color-line);
  --page-bg: var(--apps-theme-color-surface);

  box-sizing: border-box;
  width: 100%;
  max-width: 1160px;
  min-width: 0;
  margin: 0 auto;
  padding: 30px var(--apps-theme-container-gutter) 90px;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  color: var(--apps-theme-color-ink);
  background: transparent;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

@media (max-width: 768px) {
  .buy-flow { padding-top: 30px; padding-bottom: 90px; }
}

/* Shell already applies --apps-theme-container-gutter; nested .container must not double-inset. */
.buy-flow .container,
.column.main .buy-flow .container,
body.apps-buy-flow .column.main .buy-flow .container,
body.apps-checkout-flow .column.main .buy-flow .container {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

.buy-flow *,
.buy-flow *::before,
.buy-flow *::after { box-sizing: border-box; }

.buy-flow button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

.buy-flow input,
.buy-flow select { font-family: inherit; }

.buy-flow h1,
.buy-flow h2 {
  font-family: var(--font-display);
  letter-spacing: -0.015em;
  color: var(--apps-theme-color-ink);
}

.buy-flow .step-narrow { max-width: 760px; margin: 0 auto; }

/* ---- head ---- */
.buy-flow .co-head { max-width: 760px; margin: 0 auto 8px; text-align: center; }
.buy-flow .co-head .eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-display); font-weight: 800; font-size: 11.5px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--apps-theme-color-brand); margin-bottom: 10px;
}
.buy-flow .co-head .eyebrow .gd {
  width: 7px; height: 7px; border-radius: 50%; background: var(--apps-theme-color-green);
  box-shadow: 0 0 0 4px rgba(47, 143, 78, .18);
}
.buy-flow .co-head h1 {
  font-size: clamp(26px, 3.2vw, 38px); font-weight: 800; line-height: 1.1; margin: 0 0 8px;
}
.buy-flow .co-head p { color: var(--apps-theme-color-ink-muted); font-size: 15.5px; margin: 0; }

/* ---- pending payment lock (PayPal Express cancel / abandon) ---- */
.buy-flow .co-lock-banner {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  max-width: 760px; margin: 0 auto 18px; padding: 14px 16px;
  border: 1px solid rgba(180, 83, 9, .28); border-radius: 12px;
  background: rgba(254, 243, 199, .55); color: var(--apps-theme-color-ink);
}
.buy-flow .co-lock-banner[hidden] { display: none !important; }
.buy-flow .co-lock-banner-text { display: flex; flex-direction: column; gap: 4px; font-size: 14px; line-height: 1.45; }
.buy-flow .co-lock-banner-text strong { font-size: 14.5px; }
.buy-flow .co-lock-banner .disc-btn { flex-shrink: 0; white-space: nowrap; }
@media (max-width: 640px) {
  .buy-flow .co-lock-banner { flex-direction: column; align-items: stretch; }
}

/* ---- opc progress (numbered) ---- */
.buy-flow .opc-progress {
  display: flex; align-items: flex-start; justify-content: center; gap: 0;
  max-width: 680px; margin: 26px auto 36px; padding: 0 10px;
}
.buy-flow .opc-step {
  display: flex; flex-direction: column; align-items: center; gap: 9px; flex: 1;
  position: relative; color: var(--apps-theme-color-ink-faint); min-width: 0;
}
.buy-flow .opc-step::before,
.buy-flow .opc-step::after {
  content: ""; position: absolute; top: 17px; height: 2px; background: var(--apps-theme-color-line); z-index: 0;
}
.buy-flow .opc-step::before { left: 0; right: 50%; }
.buy-flow .opc-step::after { left: 50%; right: 0; }
.buy-flow .opc-step:first-child::before { display: none; }
.buy-flow .opc-step:last-child::after { display: none; }
.buy-flow .opc-step.done::before,
.buy-flow .opc-step.done::after,
.buy-flow .opc-step.active::before { background: var(--apps-theme-color-primary); }
.buy-flow .opc-dot {
  position: relative; z-index: 1; width: 36px; height: 36px; border-radius: 50%; background: #fff;
  border: 2px solid var(--apps-theme-color-line); display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 800; font-size: 15px; color: var(--apps-theme-color-ink-faint);
  transition: all var(--t-base);
}
.buy-flow .opc-dot svg { width: 17px; height: 17px; }
.buy-flow .opc-step.active .opc-dot {
  border-color: var(--apps-theme-color-primary); color: var(--apps-theme-color-primary);
  box-shadow: 0 0 0 4px rgba(11, 63, 103, .12);
}
.buy-flow .opc-step.done .opc-dot {
  background: var(--apps-theme-color-primary); border-color: var(--apps-theme-color-primary); color: #fff;
}
.buy-flow .opc-step.done {
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.buy-flow a.opc-step.done:hover .opc-dot {
  box-shadow: 0 0 0 4px rgba(11, 63, 103, .16);
}
.buy-flow .opc-step:not(.done) { pointer-events: none; }
.buy-flow .opc-step.active { pointer-events: none; }
.buy-flow .opc-label {
  font-family: var(--font-display); font-weight: 700; font-size: 12.5px;
  text-align: center; line-height: 1.25; letter-spacing: .01em;
}
.buy-flow .opc-step.active .opc-label,
.buy-flow .opc-step.done .opc-label { color: var(--apps-theme-color-ink); }
@media (max-width: 560px) {
  .buy-flow .opc-label { font-size: 11px; }
  .buy-flow .opc-dot { width: 32px; height: 32px; font-size: 13px; }
  .buy-flow .opc-step::before,
  .buy-flow .opc-step::after { top: 15px; }
}

/* ---- search ---- */
.buy-flow .dp-search { position: relative; max-width: 520px; margin: 0 auto 26px; }
.buy-flow .dp-search input {
  width: 100%; height: 52px; padding: 0 18px 0 48px; border: 1px solid var(--apps-theme-color-line);
  border-radius: var(--r-pill); font-size: 15.5px; background: #fff; box-shadow: var(--shadow-sm); color: var(--apps-theme-color-ink);
}
.buy-flow .dp-search input:focus {
  outline: none; border-color: var(--apps-theme-color-primary); box-shadow: 0 0 0 3px rgba(11, 63, 103, .12);
}
.buy-flow .dp-search svg {
  position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  width: 19px; height: 19px; color: var(--apps-theme-color-ink-soft); pointer-events: none;
}

/* ---- skip ---- */
.buy-flow .plan-skip {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--apps-theme-color-cream-soft);
  border: 1px solid var(--apps-theme-color-line);
  border-radius: var(--r-lg);
  padding: 16px 20px;
  margin: 0 0 26px;
}
.buy-flow .plan-skip .ps-text {
  flex: 1 1 200px;
  min-width: 200px;
  font-size: 13.5px;
  color: var(--apps-theme-color-ink-muted);
  line-height: 1.5;
  margin: 0;
}
.buy-flow .plan-skip .ps-text strong {
  color: var(--apps-theme-color-ink);
  font-weight: 700;
}
/*
 * Skip CTA: beat apps.css `button` via element+class. Ring = inset box-shadow.
 * Pill + trailing SVG: keep padding-inline > height/2 (see bak/pill-svg-seam-fringe.md).
 */
.buy-flow .plan-skip button.ps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  align-self: center;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 12px 24px;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 14px;
  line-height: 16px;
  white-space: nowrap;
  color: var(--apps-theme-color-primary);
  background: #fff;
  background-color: #fff;
  background-image: none;
  border: none;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1.5px var(--apps-theme-color-primary);
  outline: none;
  opacity: 1;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  background-clip: padding-box;
  transition: background var(--t-base), color var(--t-base), box-shadow var(--t-base);
}
.buy-flow .plan-skip button.ps-btn > svg {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}
.buy-flow .plan-skip button.ps-btn:hover,
.buy-flow .plan-skip button.ps-btn:focus,
.buy-flow .plan-skip button.ps-btn:focus-visible,
.buy-flow .plan-skip button.ps-btn:active {
  color: #fff;
  background: var(--apps-theme-color-primary);
  background-color: var(--apps-theme-color-primary);
  background-image: none;
  border: none;
  box-shadow: none;
  outline: none;
  opacity: 1;
  transform: none;
  filter: none;
}

/* ---- destinations ---- */
.buy-flow .dp-seclabel {
  font-family: var(--font-display); font-weight: 800; font-size: 11px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--apps-theme-color-ink-soft); margin: 0 0 14px;
}
.buy-flow .dest-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 8px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
@media (max-width: 760px) {
  .buy-flow .dest-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 460px) {
  .buy-flow .dest-grid { grid-template-columns: minmax(0, 1fr); }
}

.buy-flow .dest {
  display: flex; align-items: center; gap: 13px; padding: 14px 16px; background: #fff;
  border: 1px solid var(--apps-theme-color-line); border-radius: var(--r-lg); cursor: pointer;
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  text-align: left; width: 100%; max-width: 100%; min-width: 0;
}
/* Beat .dest{display:flex} — otherwise [hidden] extras / More|Less stay visible */
.buy-flow .dest[hidden],
.buy-flow .dest.dest-more[hidden],
.buy-flow .dest.dest-less[hidden] {
  display: none !important;
}
.buy-flow .dest:hover {
  transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(14, 35, 72, .18);
}
.buy-flow .dest.sel {
  border-color: var(--apps-theme-color-primary); box-shadow: 0 0 0 2px rgba(11, 63, 103, .14);
}
.buy-flow .dest .flag {
  font-size: 15px; line-height: 1; flex-shrink: 0; width: 36px; height: 36px;
  border-radius: 10px; background: var(--apps-theme-color-cream-soft); color: var(--apps-theme-color-primary);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
}
.buy-flow .dest .dn { flex: 1; min-width: 0; }
.buy-flow .dest .dn strong {
  display: block; font-family: var(--font-display); font-weight: 700;
  font-size: 15.5px; color: var(--apps-theme-color-ink); line-height: 1.2;
}
.buy-flow .dest .dn small { font-size: 12px; color: var(--apps-theme-color-ink-soft); }
.buy-flow .dest.dest-more,
.buy-flow .dest.dest-less {
  border-style: dashed;
  background: var(--apps-theme-color-cream-soft);
}
.buy-flow .dest .flag.more {
  font-size: 18px;
  font-weight: 800;
}
.buy-flow .dest .tag {
  font-size: 9.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 8px; border-radius: var(--r-pill); background: var(--apps-theme-color-cream-soft);
  color: var(--apps-theme-color-primary); white-space: nowrap; flex-shrink: 0;
}
.buy-flow .dest .tag.hot { background: var(--apps-theme-color-brand-soft); color: var(--apps-theme-color-brand); }
.buy-flow .dest .tag.vpn { background: #E8F5EA; color: var(--apps-theme-color-green); }

/* ---- chosen ---- */
.buy-flow .dp-chosen {
  display: flex; align-items: center; gap: 14px; background: #fff;
  border: 1px solid var(--apps-theme-color-line); border-radius: var(--r-lg); padding: 14px 18px; margin-bottom: 22px;
}
.buy-flow .dp-chosen .flag {
  font-size: 14px; line-height: 1; width: 42px; height: 42px; border-radius: 12px;
  background: var(--apps-theme-color-cream-soft); color: var(--apps-theme-color-primary); display: flex;
  align-items: center; justify-content: center; font-family: var(--font-display);
  font-weight: 800; text-transform: uppercase; flex-shrink: 0;
}
.buy-flow .dp-chosen .ch-meta { flex: 1; min-width: 0; }
.buy-flow .dp-chosen .ch-meta strong {
  display: block; font-family: var(--font-display); font-weight: 800; font-size: 17px; color: var(--apps-theme-color-ink);
}
.buy-flow .dp-chosen .ch-meta small { font-size: 12.5px; color: var(--apps-theme-color-ink-muted); }
.buy-flow .dp-chosen .change {
  display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 800;
  color: var(--apps-theme-color-primary); background: #fff; border: 1.5px solid var(--apps-theme-color-primary);
  padding: 9px 16px; border-radius: var(--r-pill); flex-shrink: 0;
  transition: background var(--t-base), color var(--t-base); cursor: pointer;
  width: auto; max-width: none; line-height: 1.2; opacity: 1;
  align-self: center;
}
.buy-flow .dp-chosen .change .change-ico,
.buy-flow .pa-change .change-ico,
.checkout-flow .pa-change .change-ico {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  display: block;
}
.buy-flow .dp-chosen .change:hover {
  background: var(--apps-theme-color-primary); color: #fff; opacity: 1; border-color: var(--apps-theme-color-primary);
}

/* ---- plans ---- */
.buy-flow [data-role="buy-plans"] {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.buy-flow .plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
@media (max-width: 820px) {
  .buy-flow .plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .buy-flow .plan-grid { grid-template-columns: minmax(0, 1fr); }
}

.buy-flow .plan {
  position: relative; background: #fff; border: 1.5px solid var(--apps-theme-color-line); border-radius: var(--r-xl);
  padding: 18px 18px 18px;
  cursor: pointer;
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  display: flex; flex-direction: column; text-align: left;
  width: 100%; max-width: 100%; min-width: 0;
}
.buy-flow .plan:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.buy-flow .plan.sel { border-color: var(--apps-theme-color-primary); box-shadow: 0 0 0 2px rgba(11, 63, 103, .16); }
.buy-flow .plan-badge {
  position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  font-family: var(--font-display); font-weight: 800; font-size: 10px; letter-spacing: .05em;
  text-transform: uppercase; padding: 4px 12px; border-radius: var(--r-pill);
  background: var(--apps-theme-color-brand); color: #fff; white-space: nowrap;
  max-width: calc(100% - 16px);
  overflow: hidden;
  text-overflow: ellipsis;
}
.buy-flow .plan-top {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  flex-wrap: wrap; min-width: 0;
}
.buy-flow .plan-size {
  font-family: var(--font-display); font-weight: 800; font-size: 20px; color: var(--apps-theme-color-ink);
  letter-spacing: -.02em; line-height: 1;
  min-width: 0; max-width: 100%;
  overflow-wrap: anywhere;
}
.buy-flow .plan-size .u { font-size: .5em; font-weight: 700; color: var(--apps-theme-color-ink-soft); margin-left: 3px; }
.buy-flow .plan-days {
  font-size: 11.5px; color: var(--apps-theme-color-primary); font-weight: 700; background: var(--apps-theme-color-cream-soft);
  padding: 5px 8px; border-radius: var(--r-pill); white-space: nowrap;
  flex: 0 1 auto; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis;
}
.buy-flow .plan-price {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  margin: 14px 0 0; padding-top: 13px; border-top: 1px solid var(--apps-theme-color-line);
  flex-wrap: wrap; min-width: 0;
}
.buy-flow .plan-price .pp {
  font-family: var(--font-display); font-weight: 800; font-size: 23px; color: var(--apps-theme-color-primary);
  letter-spacing: -.02em; line-height: 1;
  min-width: 0; max-width: 100%;
  overflow-wrap: anywhere;
}
.buy-flow .plan-price .pp .c { font-size: .62em; margin-right: 1px; }
.buy-flow .plan-price .perday {
  font-size: 12px; color: var(--apps-theme-color-ink-soft); font-weight: 700; white-space: nowrap;
  flex: 0 1 auto; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis;
}
.buy-flow .plan-price .perday.best {
  color: var(--apps-theme-color-green);
}
.buy-flow .plans-toggle {
  display: flex;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 18px;
  background: var(--apps-theme-color-cream-soft);
  border-radius: var(--r-pill);
  padding: 5px;
}
.buy-flow .plans-toggle[hidden] {
  display: none !important;
}
.buy-flow .plans-toggle button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--apps-theme-color-primary);
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 13.5px;
  line-height: 1.2;
  padding: 10px 18px;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: background var(--t-base), color var(--t-base);
}
.buy-flow .plans-toggle button.is-active,
.buy-flow .plans-toggle button.on {
  background: var(--apps-theme-color-primary);
  color: #fff;
}
.buy-flow .unlimited-fair {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 0 0 18px;
  padding: 14px 16px;
  border-radius: var(--r-md, 12px);
  background: rgba(11, 63, 103, .05);
  color: var(--apps-theme-color-ink-muted);
}
.buy-flow .unlimited-fair[hidden] {
  display: none !important;
}
.buy-flow .unlimited-fair-icon {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--apps-theme-color-primary);
}
.buy-flow .unlimited-fair-icon svg {
  width: 20px;
  height: 20px;
}
.buy-flow .unlimited-fair-text {
  font-size: 13px;
  line-height: 1.45;
}
.buy-flow .unlimited-fair-text strong {
  color: var(--apps-theme-color-primary);
}
.buy-flow .plan-check {
  margin-top: 14px; display: flex; align-items: center; justify-content: center; gap: 7px;
  height: 40px; border-radius: var(--r-pill); font-family: var(--font-body); font-weight: 700;
  font-size: 13.5px; background: var(--apps-theme-color-cream-soft); color: var(--apps-theme-color-primary); transition: all var(--t-base);
}
.buy-flow .plan-check svg { width: 15px; height: 15px; opacity: 0; transition: opacity var(--t-base); }
.buy-flow .plan.sel .plan-check { background: var(--apps-theme-color-primary); color: #fff; }
.buy-flow .plan.sel .plan-check svg { opacity: 1; }

.buy-flow .buy-empty,
.buy-flow .buy-loading {
  grid-column: 1 / -1; padding: 28px 16px; text-align: center; color: var(--apps-theme-color-ink-soft); font-size: 14px;
}

/* ---- flow bar ---- */
.buy-flow .flow-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 26px 0 0;
}
.buy-flow .flow-back-spacer { flex: 1; min-width: 0; }
.buy-flow .flow-next {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-body); font-weight: 800; font-size: 14.5px; line-height: 18px; color: #fff;
  background: var(--apps-theme-color-primary); padding: 12px 26px; border-radius: var(--r-pill);
  border: none;
  outline: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
  transition: background var(--t-base);
  margin-left: auto;
  flex: 0 0 auto;
  width: auto;
  min-height: 0;
}
.buy-flow.buy-flow-shipping .flow-bar {
  justify-content: flex-end;
}
.buy-flow.buy-flow-shipping .flow-back-spacer { display: none; }
.buy-flow .flow-next svg { width: 18px; height: 18px; flex-shrink: 0; display: block; }
.buy-flow .flow-next .btn-spinner { margin: 0; }
/* Avoid competing :hover:not(:disabled){box-shadow} vs :active{box-shadow:none} —
   the higher-specificity hover rule was leaving a light ring while pressed. */
.buy-flow .flow-next:hover:not(:disabled),
.buy-flow .flow-next:focus:not(:disabled),
.buy-flow .flow-next:focus-visible:not(:disabled),
.buy-flow .flow-next:active:not(:disabled) {
  background: var(--apps-theme-color-primary-deep);
  border: none;
  outline: none;
  box-shadow: none;
  transform: none;
  opacity: 1;
}
.buy-flow .flow-next:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }

/* id-found rows are <button> — kill residual Magento button chrome */
.buy-flow button.id-found,
.buy-flow button.id-found:hover,
.buy-flow button.id-found:focus,
.buy-flow button.id-found:active {
  border: 1px solid rgba(47, 143, 78, .22);
  box-shadow: none;
  outline: none;
  opacity: 1;
  color: inherit;
  font-size: inherit;
  line-height: 1.25;
  background-image: none;
}
.buy-flow button.id-found.sel,
.buy-flow button.id-found.sel:hover,
.buy-flow button.id-found.sel:focus {
  border-color: var(--apps-theme-color-primary);
  background: rgba(11, 63, 103, .06);
  box-shadow: 0 0 0 2px rgba(11, 63, 103, .12);
}

/* ---- card / form / sim ---- */
.buy-flow .card {
  background: #fff; border: 1px solid var(--apps-theme-color-line); border-radius: var(--r-xl); box-shadow: var(--shadow-sm);
}
.buy-flow .card-pad { padding: 30px 32px; }
@media (max-width: 560px) { .buy-flow .card-pad { padding: 22px 20px; } }

.buy-flow .id-head { margin-bottom: 18px; }
.buy-flow .id-head h2 { font-size: 22px; font-weight: 800; margin: 0 0 5px; }
.buy-flow .id-head p { font-size: 14.5px; color: var(--apps-theme-color-ink-muted); margin: 0; }
.buy-flow .id-tabs {
  display: flex; gap: 4px; background: var(--apps-theme-color-surface-alt); padding: 4px;
  border-radius: var(--r-pill); width: fit-content; max-width: 100%; margin-bottom: 20px;
  flex-wrap: nowrap; box-sizing: border-box;
}
.buy-flow .id-tab {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-family: var(--font-body); font-weight: 700; font-size: 12.5px; line-height: 1.2;
  padding: 7px 12px; border-radius: var(--r-pill); min-height: 0;
  color: var(--apps-theme-color-ink-muted); background: transparent; border: none; cursor: pointer;
  box-shadow: none; outline: none; background-image: none; white-space: nowrap;
  transition: background var(--t-fast), color var(--t-fast);
}
.buy-flow .id-tab svg { width: 14px; height: 14px; flex-shrink: 0; }
.buy-flow .id-tab.on {
  background: var(--apps-theme-color-primary); color: #fff; border: none; box-shadow: none;
}
.buy-flow .id-tab:hover:not(.on),
.buy-flow .id-tab:focus:not(.on),
.buy-flow .id-tab:active:not(.on) {
  background: rgba(14, 35, 72, .06); color: var(--apps-theme-color-ink-muted);
  border: none; box-shadow: none; outline: none;
}
.buy-flow .id-tab.on:hover,
.buy-flow .id-tab.on:focus,
.buy-flow .id-tab.on:active {
  background: var(--apps-theme-color-primary); color: #fff; border: none; box-shadow: none; outline: none;
}
@media (max-width: 640px) {
  .buy-flow .id-tabs {
    flex-direction: column; width: 100%; border-radius: 14px; padding: 4px; gap: 2px;
  }
  .buy-flow .id-tab {
    width: 100%; justify-content: flex-start; white-space: normal; padding: 9px 12px;
  }
}
.buy-flow .id-panel { display: none; }
.buy-flow .id-panel.on { display: block; }
.buy-flow .id-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .buy-flow .id-grid2 { grid-template-columns: 1fr; } }
.buy-flow .id-or {
  display: flex; align-items: center; gap: 14px; margin: 22px 0;
  color: var(--apps-theme-color-ink-faint); font-size: 12px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
}
.buy-flow .id-or::before,
.buy-flow .id-or::after { content: ""; flex: 1; height: 1px; background: var(--apps-theme-color-line); }
.buy-flow .id-help {
  margin-top: 18px; font-size: 12.5px; color: var(--apps-theme-color-ink-soft);
  display: flex; gap: 8px; align-items: flex-start;
}
.buy-flow .id-help svg { width: 15px; height: 15px; color: var(--apps-theme-color-sky-deep); flex-shrink: 0; margin-top: 1px; }
.buy-flow .id-help a { color: var(--apps-theme-color-primary); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* OTP mode toggle — reserved transparent border avoids hover layout shift */
.buy-flow .id-otp-toggle {
  display: flex; gap: 4px; background: var(--apps-theme-color-surface-alt); padding: 4px;
  border-radius: var(--r-pill); width: fit-content; margin-bottom: 16px;
}
.buy-flow .id-otp-toggle button {
  font-family: var(--font-body); font-weight: 700; font-size: 12.5px; line-height: 1.2;
  padding: 6px 14px; border-radius: var(--r-pill); min-height: 0;
  color: var(--apps-theme-color-ink-muted); background: transparent;
  border: 1.5px solid transparent; box-shadow: none; outline: none;
  transition: background .14s ease, color .14s ease, border-color .14s ease;
}
.buy-flow .id-otp-toggle button.on {
  background: var(--apps-theme-color-primary); color: #fff; border-color: var(--apps-theme-color-primary);
}
.buy-flow .id-otp-toggle button:hover:not(.on),
.buy-flow .id-otp-toggle button:focus:not(.on) {
  background: rgba(14, 35, 72, .06); color: var(--apps-theme-color-ink-muted);
  border-color: transparent; box-shadow: none;
}
.buy-flow .id-otp-toggle button.on:hover,
.buy-flow .id-otp-toggle button.on:focus {
  background: var(--apps-theme-color-primary-deep); border-color: var(--apps-theme-color-primary-deep);
  color: #fff; box-shadow: none;
}

.buy-flow .field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }
/* Beat .buy-flow .field{display:flex} — otherwise [hidden] OTP fields stay visible */
.buy-flow .field[hidden],
.buy-flow [data-otp-field][hidden],
.buy-flow [data-role="otp-stage1"][hidden],
.buy-flow [data-role="otp-stage2"][hidden] {
  display: none !important;
}
.buy-flow .field label { font-size: 13px; font-weight: 700; color: var(--apps-theme-color-ink-muted); }
.buy-flow .field label .req { color: var(--apps-theme-color-brand); margin-left: 2px; }
.buy-flow .field .hint { font-size: 12px; color: var(--apps-theme-color-ink-soft); font-weight: 400; margin-left: 6px; }
.buy-flow .inp {
  width: 100%; height: 46px; padding: 0 15px; border: 1px solid var(--field-border);
  border-radius: var(--r-md); font-size: 15px; color: var(--apps-theme-color-ink); background: #fff;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.buy-flow .inp:focus {
  outline: none; border-color: var(--apps-theme-color-primary); box-shadow: 0 0 0 3px rgba(11, 63, 103, .12);
}
.buy-flow .shipping-methods {
  border: 0; padding: 0; margin: 22px 0 0;
}
.buy-flow .shipping-methods legend {
  font-size: 14px; font-weight: 800; color: var(--apps-theme-color-ink); margin-bottom: 10px;
}
.buy-flow .shipping-method {
  display: flex; align-items: center; gap: 12px; padding: 14px 16px; margin-bottom: 10px;
  border: 1.5px solid var(--apps-theme-color-line); border-radius: var(--r-md); cursor: pointer;
}
.buy-flow .shipping-method:has(input:checked) {
  border-color: var(--apps-theme-color-primary); box-shadow: 0 0 0 2px rgba(11, 63, 103, .12);
}
.buy-flow .shipping-method input { accent-color: var(--apps-theme-color-primary); }
.buy-flow .shipping-method-copy { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.buy-flow .shipping-method-copy strong { font-size: 14px; color: var(--apps-theme-color-ink); }
.buy-flow .shipping-method-copy span { font-size: 12.5px; color: var(--apps-theme-color-ink-soft); }
.buy-flow .shipping-method-note {
  margin: 20px 0 0; padding: 12px 14px; border-radius: var(--r-md);
  background: var(--apps-theme-color-cream-soft); color: var(--apps-theme-color-ink-muted); font-size: 13px;
}

.buy-flow .pay-loginbar {
  display: flex; align-items: center; gap: 12px; background: var(--apps-theme-color-cream-soft);
  border-radius: var(--r-md); padding: 13px 16px; margin-bottom: 16px;
  font-size: 13.5px; color: var(--apps-theme-color-ink-muted);
}
.buy-flow .pay-loginbar svg { width: 18px; height: 18px; color: var(--apps-theme-color-primary); flex-shrink: 0; }
.buy-flow .pay-loginbar a {
  color: var(--apps-theme-color-primary); font-weight: 700; text-decoration: underline;
  text-underline-offset: 2px; margin-left: auto; white-space: nowrap;
}

.buy-flow .id-found {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
  background: rgba(47, 143, 78, .08); border: 1px solid rgba(47, 143, 78, .22);
  border-radius: var(--r-lg); padding: 11px 14px; margin-top: 10px; cursor: pointer;
  line-height: 1.25; min-height: 0; box-shadow: none; outline: none;
  transition: border-color .15s, background .15s;
}
.buy-flow .topup-sim-list .id-found:first-child { margin-top: 0; }
.buy-flow .id-found:hover { box-shadow: none; border-color: rgba(47, 143, 78, .4); }
.buy-flow .id-found.sel {
  border-color: var(--apps-theme-color-primary); background: rgba(11, 63, 103, .06);
  box-shadow: 0 0 0 2px rgba(11, 63, 103, .12);
}
.buy-flow .id-found.sel .ok { color: var(--apps-theme-color-primary); }
.buy-flow .id-found:not(.sel) .ok { opacity: .55; }
.buy-flow .id-found .av {
  width: 36px; height: 36px; border-radius: 10px; background: var(--apps-theme-color-primary); color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.buy-flow .id-found .av svg { width: 18px; height: 18px; }
.buy-flow .id-found .meta strong { display: block; font-size: 14px; color: var(--apps-theme-color-ink); font-family: var(--font-display); }
.buy-flow .id-found .meta small { font-size: 12px; color: var(--apps-theme-color-ink-muted); }
.buy-flow .id-found .ok {
  margin-left: auto; color: var(--apps-theme-color-green); display: flex; align-items: center;
  gap: 5px; font-size: 12px; font-weight: 800; white-space: nowrap;
}
.buy-flow .id-found .ok svg { width: 14px; height: 14px; }

.buy-flow .topup-sim-results { margin-top: 18px; padding-top: 8px; border-top: 1px solid var(--apps-theme-color-line); }
.buy-flow .topup-sim-search { margin: 0 0 12px; }
.buy-flow .topup-sim-list { display: flex; flex-direction: column; }
.buy-flow .topup-sim-empty { text-align: center; padding: 16px 8px; color: var(--apps-theme-color-ink-muted); font-size: 14px; }
.buy-flow .topup-sim-loading {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 22px 12px; color: var(--apps-theme-color-ink-muted); font-size: 13.5px; font-weight: 600;
}
.buy-flow .topup-sim-loading[hidden] { display: none !important; }
.buy-flow .topup-sim-loading .btn-spinner {
  width: 18px; height: 18px; border: 2px solid rgba(11,63,103,.18);
  border-top-color: var(--apps-theme-color-primary); border-radius: 50%;
  animation: buy-spin .7s linear infinite;
}
@keyframes buy-spin { to { transform: rotate(360deg); } }
.buy-flow .topup-sim-pager {
  margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: center;
}
.buy-flow .topup-sim-pager .pager-link {
  display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px;
  padding: 0 10px; border-radius: var(--r-pill); font-size: 12.5px; font-weight: 700; line-height: 1;
  color: var(--apps-theme-color-ink-muted); text-decoration: none; border: 1px solid var(--apps-theme-color-line); background: #fff;
  box-shadow: none;
}
.buy-flow .topup-sim-pager .pager-link.is-current {
  background: var(--apps-theme-color-primary); color: #fff; border-color: var(--apps-theme-color-primary);
}
.buy-flow .topup-sim-pager .pager-link.is-disabled { opacity: .4; pointer-events: none; }
.buy-flow .topup-sim-pager .pager-meta {
  width: 100%; text-align: center; font-size: 12px; color: var(--apps-theme-color-ink-soft); margin-top: 4px;
}
.buy-flow .topup-login-form .field { margin-bottom: 14px; }
.buy-flow .topup-login-error {
  margin: 0 0 12px; padding: 10px 12px; border-radius: var(--r-md);
  background: var(--apps-theme-color-brand-soft); color: var(--apps-theme-color-brand-deep); font-size: 13px; font-weight: 600;
}
.buy-flow .topup-social { margin-top: 20px; }
.buy-flow .sim-add {
  display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px;
  border: 1.5px dashed var(--apps-theme-color-line); border-radius: var(--r-lg); color: var(--apps-theme-color-primary);
  font-family: var(--font-body); font-weight: 700; font-size: 13.5px; line-height: 1.2; cursor: pointer;
  background: transparent; width: 100%; text-decoration: none; margin-bottom: 4px;
  box-shadow: none; min-height: 0;
}
.buy-flow .sim-add svg { width: 16px; height: 16px; }
.buy-flow .sim-add:hover { background: var(--apps-theme-color-surface-alt); border-color: var(--apps-theme-color-ink-faint); box-shadow: none; }
.buy-flow .overlay {
  position: fixed; inset: 0; background: rgba(14, 35, 72, .45); z-index: 1000;
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.buy-flow .overlay[hidden] { display: none !important; }
.buy-flow .overlay .modal {
  background: #fff; border-radius: var(--r-xl); max-width: 420px; width: 100%;
  padding: 22px 24px; box-shadow: var(--shadow-md);
}
.buy-flow .overlay .modal-head {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px;
}
.buy-flow .overlay .modal-head h3 { margin: 0; font-size: 18px; font-weight: 800; }
.buy-flow .overlay .modal-close {
  border: none; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: var(--apps-theme-color-ink-muted);
}
.buy-flow .overlay .modal-body [data-role="bind-submit"],
.buy-flow .overlay .modal-body button.flow-next[data-role="bind-submit"] {
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 100% !important;
  align-self: stretch !important;
  margin-top: 12px;
}

.buy-flow .sim-list { display: flex; flex-direction: column; gap: 12px; }
.buy-flow .sim-opt {
  display: flex; align-items: center; gap: 15px; padding: 16px 18px;
  border: 1.5px solid var(--apps-theme-color-line); border-radius: var(--r-lg); cursor: pointer;
  background: #fff; transition: border-color var(--t-base), box-shadow var(--t-base); text-align: left; width: 100%;
}
.buy-flow .sim-opt:hover { box-shadow: var(--shadow-md); }
.buy-flow .sim-opt.sel { border-color: var(--apps-theme-color-primary); box-shadow: 0 0 0 2px rgba(11, 63, 103, .14); }
.buy-flow .so-thumb {
  width: 48px; height: 48px; border-radius: 12px; background: var(--apps-theme-color-primary);
  display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;
}
.buy-flow .so-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.buy-flow .so-name { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--apps-theme-color-ink); }
.buy-flow .so-iccid { font-size: 11.5px; color: var(--apps-theme-color-ink-faint); font-variant-numeric: tabular-nums; }
.buy-flow .sim-status {
  font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
  padding: 5px 10px; border-radius: var(--r-pill); white-space: nowrap; flex-shrink: 0;
  background: #E8F5EA; color: var(--apps-theme-color-green);
}

body.apps-buy-flow .column.main,
body.apps-buy-flow .page-main,
body.apps-checkout-flow .column.main,
body.apps-checkout-flow .page-main { max-width: none; }

/* Full-page flow chrome — only main content, not page-wrapper/footer */
body.apps-buy-flow,
body.apps-checkout-flow {
  background: #F4F8FC;
  overflow-x: clip;
}
body.apps-buy-flow .page-wrapper,
body.apps-checkout-flow .page-wrapper {
  background:
    radial-gradient(900px 500px at 85% -5%, rgba(184, 212, 232, .45), transparent 60%),
    #F4F8FC;
}
body.apps-buy-flow .page-main,
body.apps-buy-flow .columns,
body.apps-buy-flow .column.main,
body.apps-buy-flow .main.content,
body.apps-checkout-flow .page-main,
body.apps-checkout-flow .columns,
body.apps-checkout-flow .column.main,
body.apps-checkout-flow .main.content {
  background: transparent;
  padding: 0;
  margin: 0;
  max-width: none;
  float: none;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.apps-buy-flow .columns,
body.apps-checkout-flow .columns {
  display: block;
}
body.apps-buy-flow .page-top,
body.apps-buy-flow .breadcrumbs,
body.apps-buy-flow .page-title-wrapper,
body.apps-checkout-flow .page-top,
body.apps-checkout-flow .breadcrumbs,
body.apps-checkout-flow .page-title-wrapper {
  display: none;
  margin: 0;
  padding: 0;
  min-height: 0;
}

/* Keep Magento messages out of document flow on buy/checkout — always under header */
body.apps-buy-flow .page.messages,
body.apps-checkout-flow .page.messages,
body.apps-buy-flow .column.main > .messages,
body.apps-checkout-flow .column.main > .messages {
  position: fixed;
  top: calc(var(--apps-theme-header-height, 72px) + 10px);
  left: 0;
  right: 0;
  bottom: auto;
  z-index: 95;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  min-height: 0;
  height: 0;
  overflow: visible;
  background: transparent;
  pointer-events: none;
  box-sizing: border-box;
}
body.apps-buy-flow .page.messages .messages,
body.apps-checkout-flow .page.messages .messages,
body.apps-buy-flow .page.messages .message,
body.apps-checkout-flow .page.messages .message,
body.apps-buy-flow .column.main > .messages .message,
body.apps-checkout-flow .column.main > .messages .message {
  max-width: min(100%, var(--apps-theme-container, 1120px));
  box-sizing: border-box;
  pointer-events: auto;
}

/*
 * FOOTER GUARD — do not re-style .page-footer / .apps-theme-footer under .buy-flow.
 * Footer layout lives only in the apps-theme-footer section of this file
 * (and Magento shell neutralize above). Keep chrome resets scoped to
 * .page-main / .columns / .column.main only.
 */

/* Shared field validation (checkout + shipping + buy) — align with theme mage-error */
.buy-flow .inp.mage-error,
.buy-flow select.inp.mage-error,
.buy-flow textarea.inp.mage-error {
  border-color: var(--apps-theme-color-brand);
  box-shadow: 0 0 0 3px rgba(236, 30, 36, .12);
}
.buy-flow .field .mage-error {
  display: block;
  margin-top: 6px;
  color: var(--apps-theme-color-brand-deep);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.4;
}
.buy-flow .field.has-error label { color: var(--apps-theme-color-brand-deep); }
.buy-flow .cn-notice-check.has-error,
.buy-flow .cn-notice-check.err {
  color: var(--apps-theme-color-brand-deep);
}

/*
 * Parent apps.css: button { width:100% }. Theme already softens to width:auto.
 * Prefer specificity over !important. Full-bleed only where the control is a block CTA.
 */
.buy-flow button,
.buy-flow .button {
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.buy-flow button.dest,
.buy-flow button.plan,
.buy-flow button.ship-opt,
.buy-flow .place-order,
.buy-flow button.place-order {
  width: 100%;
}
.buy-flow .plan-skip {
  align-items: center;
}
.buy-flow .plan-skip button.ps-btn,
.buy-flow .flow-next,
.buy-flow button.flow-next,
.buy-flow .disc-btn,
.buy-flow button.disc-btn,
.buy-flow .disc-apply,
.buy-flow .btn-primary {
  width: auto;
  max-width: max-content;
  flex: 0 0 auto;
}
.buy-flow .flow-next,
.buy-flow button.flow-next,
.buy-flow .disc-btn,
.buy-flow button.disc-btn,
.buy-flow .disc-apply,
.buy-flow .btn-primary {
  align-self: flex-start;
}
.buy-flow .plan-skip button.ps-btn {
  align-self: center;
}
/* Coupon Apply sits beside .inp — must share vertical center, not flex-start */
.buy-flow.checkout-flow .disc-idle .disc-btn,
.buy-flow.checkout-flow .disc-row .disc-btn,
.buy-flow.checkout-flow .disc-idle button.disc-btn,
.buy-flow.checkout-flow .disc-row button.disc-btn {
  align-self: center;
}
.buy-flow .dp-chosen .change,
.buy-flow button.change,
.buy-flow .pa-change,
.buy-flow button.pa-change {
  width: auto;
  max-width: max-content;
  flex: 0 0 auto;
  align-self: center;
}
/* Narrow coupon row: full-width Apply when stacked */
@media (max-width: 760px) {
  .buy-flow.checkout-flow .disc-idle .disc-btn,
  .buy-flow.checkout-flow .disc-row .disc-btn,
  .buy-flow.checkout-flow .disc-row .disc-apply {
    width: 100%;
    max-width: none;
    flex: 1 1 100%;
  }
}
.buy-flow .li-remove,
.buy-flow button.li-remove {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  padding: 0;
  flex: 0 0 24px;
  align-self: flex-start;
}

/* Primary CTAs must beat `.buy-flow button { background: none }` + theme button:hover */
.buy-flow .flow-next,
.buy-flow .place-order,
.buy-flow .disc-btn,
.buy-flow .disc-apply,
.buy-flow .btn-primary,
.buy-flow .pa-change,
.buy-flow button.pa-change {
  box-shadow: none;
  outline: none;
  background: var(--apps-theme-color-primary);
  color: #fff;
  border: none;
  transition: background var(--t-base), opacity var(--t-base);
}
.buy-flow .flow-next:hover,
.buy-flow .place-order:hover,
.buy-flow .disc-btn:hover,
.buy-flow .disc-apply:hover,
.buy-flow .btn-primary:hover,
.buy-flow .pa-change:hover,
.buy-flow button.pa-change:hover,
.buy-flow .flow-next:focus,
.buy-flow .place-order:focus,
.buy-flow .disc-btn:focus,
.buy-flow .disc-apply:focus,
.buy-flow .btn-primary:focus,
.buy-flow .pa-change:focus,
.buy-flow button.pa-change:focus,
.buy-flow .flow-next:focus-visible,
.buy-flow .place-order:focus-visible,
.buy-flow .disc-btn:focus-visible,
.buy-flow .disc-apply:focus-visible,
.buy-flow .btn-primary:focus-visible,
.buy-flow .pa-change:focus-visible,
.buy-flow button.pa-change:focus-visible,
.buy-flow .flow-next:active,
.buy-flow .place-order:active,
.buy-flow .disc-btn:active,
.buy-flow .disc-apply:active,
.buy-flow .btn-primary:active,
.buy-flow .pa-change:active,
.buy-flow button.pa-change:active,
.buy-flow .flow-next:hover:focus,
.buy-flow .flow-next:hover:active,
.buy-flow .place-order:hover:focus,
.buy-flow .place-order:hover:active,
.buy-flow .disc-btn:hover:focus,
.buy-flow .disc-btn:hover:active,
.buy-flow .disc-apply:hover:focus,
.buy-flow .disc-apply:hover:active,
.buy-flow .btn-primary:hover:focus,
.buy-flow .btn-primary:hover:active {
  background: var(--apps-theme-color-primary-deep);
  color: #fff;
  /* Full shorthand — never leave 1px transparent edge (pale rim) */
  border: none;
  box-shadow: none;
  outline: none;
  opacity: 1;
  transform: none;
}
/* Filled CTAs: kill pale rim + apps.css opacity (specificity, no !important) */
.buy-flow .plan-skip button.ps-btn:hover,
.buy-flow .plan-skip button.ps-btn:focus,
.buy-flow .plan-skip button.ps-btn:focus-visible,
.buy-flow .plan-skip button.ps-btn:active,
.buy-flow button.flow-next:hover,
.buy-flow button.place-order:hover,
.buy-flow .disc-btn:hover,
.buy-flow .btn-primary:hover,
.buy-flow button.flow-next:focus,
.buy-flow button.place-order:focus,
.buy-flow .disc-btn:focus,
.buy-flow .btn-primary:focus,
.buy-flow button.flow-next:active,
.buy-flow button.place-order:active,
.buy-flow .disc-btn:active,
.buy-flow .btn-primary:active {
  border: none;
  box-shadow: none;
  outline: none;
  opacity: 1;
  background-image: none;
}
.buy-flow .flow-next:disabled,
.buy-flow .place-order:disabled,
.buy-flow .disc-btn:disabled,
.buy-flow .disc-apply:disabled,
.buy-flow .btn-primary:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.buy-flow .disc-btn-ghost,
.buy-flow .disc-btn.disc-btn-ghost {
  background: transparent;
  color: var(--apps-theme-color-ink-muted);
  border: 1.5px solid var(--apps-theme-color-line);
}
.buy-flow .disc-btn-ghost:hover,
.buy-flow .disc-btn.disc-btn-ghost:hover {
  background: var(--apps-theme-color-surface-alt);
  color: var(--apps-theme-color-ink);
  border-color: var(--apps-theme-color-ink-faint);
}

.buy-flow .li-remove,
.buy-flow button.li-remove {
  background: #fff;
  color: var(--apps-theme-color-ink-soft);
  border: 1px solid var(--apps-theme-color-line);
  border-radius: 50%;
  box-shadow: none;
  opacity: 1;
  transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 18px;
  transition: border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.buy-flow .li-remove:hover,
.buy-flow .li-remove:focus,
.buy-flow button.li-remove:hover,
.buy-flow button.li-remove:focus {
  background: var(--apps-theme-color-brand-soft);
  border-color: var(--apps-theme-color-brand);
  color: var(--apps-theme-color-brand-deep);
  opacity: 1;
  transform: none;
  box-shadow: none;
}
.buy-flow .li-remove:disabled,
.buy-flow button.li-remove:disabled {
  opacity: .45;
  cursor: wait;
  transform: none;
}

.buy-flow .btn-spinner {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: #fff;
  border-radius: 50%;
  display: inline-block;
  animation: buy-flow-spin .7s linear infinite;
  flex-shrink: 0;
}
@keyframes buy-flow-spin {
  to { transform: rotate(360deg); }
}
.buy-flow .is-loading {
  pointer-events: none;
  cursor: wait;
}

/* ---- Responsive: plan-skip / flow-bar / login density ---- */
@media (max-width: 768px) {
  .buy-flow { padding: 24px 16px 80px; }
  .buy-flow .plan-skip {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 14px 16px;
    min-height: 0;
  }
  .buy-flow .plan-skip .ps-text {
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
  }
  .buy-flow .plan-skip button.ps-btn {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    justify-content: center;
    margin-top: 0;
  }
  .buy-flow .flow-bar {
    flex-wrap: wrap;
    gap: 12px;
  }
  .buy-flow .flow-next,
  .buy-flow button.flow-next {
    width: 100%;
    max-width: none;
    justify-content: center;
    margin-left: 0;
  }
  .buy-flow .pay-loginbar {
    flex-wrap: wrap;
  }
}


/* ---- Checkout flow (scoped .checkout-flow) ---- */
/* Checkout Payment + Done — design-station cloud defaults */
.checkout-flow {
  --summary-bg: #EAF3FC;
  --summary-border: rgba(105, 205, 255, .34);
  --summary-ink: var(--apps-theme-color-ink);
  --summary-ink-2: var(--apps-theme-color-ink-soft);
  --summary-line: var(--apps-theme-color-line);
  --summary-accent: var(--apps-theme-color-primary);
  --field-border: #d8e3ee;
  --t-slow: 400ms;
}
.checkout-flow .card {
  background: #fff;
  border: 1px solid var(--apps-theme-color-line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
}
.checkout-flow .card-pad { padding:22px 22px 20px; }
.checkout-flow .pay-sec { overflow: visible; }
.checkout-flow .field { margin-bottom:14px; }
.checkout-flow .field label { display:block; font-size:13px; font-weight:700; color:var(--apps-theme-color-ink-muted); margin-bottom:6px; }
.checkout-flow .field .req { color:var(--apps-theme-color-brand); }
.checkout-flow .inp {
  width:100%; height:48px; border:1.5px solid var(--field-border); border-radius:var(--r-md);
  padding:0 14px; font-size:15px; color:var(--apps-theme-color-ink); background:#fff;
}
.checkout-flow .inp:focus { outline:none; border-color:var(--apps-theme-color-primary); box-shadow:0 0 0 3px rgba(11,63,103,.12); }
.checkout-flow .checkout-error {
  margin-top:14px; padding:12px 14px; border-radius:var(--r-md);
  background:var(--apps-theme-color-brand-soft); color:var(--apps-theme-color-brand-deep); font-size:13.5px; font-weight:600;
  overflow-wrap:anywhere; word-break:break-word; max-width:100%; box-sizing:border-box;
}
.checkout-flow .done-actions {
  margin-top:28px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; align-items:center;
}
.checkout-flow .done-actions .btn { text-decoration:none; }
.checkout-flow .done-actions .btn-ghost {
  background:transparent; color:var(--apps-theme-color-ink); border:1.5px solid var(--apps-theme-color-line);
  font-weight:700; text-decoration:none;
}
.checkout-flow .done-actions .btn-ghost:hover { border-color:var(--apps-theme-color-ink); }
.checkout-flow .pay-back-bar {
  display:flex; align-items:center; justify-content:flex-start; gap:12px; margin:0 0 18px;
}
.checkout-flow .flow-back {
  display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14.5px;
  color:var(--apps-theme-color-ink-muted); padding:10px 16px; border-radius:var(--r-pill); text-decoration:none;
  transition:background var(--t-base),color var(--t-base);
}
.checkout-flow .flow-back:hover { background:var(--apps-theme-color-surface-alt); color:var(--apps-theme-color-ink); }
.checkout-flow .flow-back svg { width:16px; height:16px; }
/* ============ STEP 3 — PAYMENT (Magento Review & Payments reskin) ============ */
/* Mobile: summary above payment via flex order (specificity > html[data-summary] desktop rules). */
.checkout-flow .pay-grid,
.pay-grid{display:grid;grid-template-columns:1fr 392px;gap:30px;align-items:start;}
/* ≤959px: single column — switch early when 2-col cannot fit both panels without clipping.
   max-width keeps mid-range single-column readable (not full-bleed wide). */
@media(max-width:959px){
.checkout-flow .pay-grid,
.pay-grid{display:flex;flex-direction:column;max-width:680px;margin-left:auto;margin-right:auto;}
.checkout-flow .pay-grid .pay-side,
.pay-grid .pay-side{order:-1;margin-bottom:18px;}
.checkout-flow .pay-grid .pay-main,
.pay-grid .pay-main{order:1;}
}
/* 2-col left variant: only when desktop 2-col is active */
@media(min-width:960px){
html[data-summary="left"] .checkout-flow .pay-grid,
html[data-summary="left"] .pay-grid{grid-template-columns:392px 1fr;}
html[data-summary="left"] .checkout-flow .pay-main,
html[data-summary="left"] .pay-main{order:2;}
html[data-summary="left"] .checkout-flow .pay-side,
html[data-summary="left"] .pay-side{order:1;}
}

.pay-sec{margin-bottom:22px;}
.pay-sec-h{font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--apps-theme-color-ink);margin-bottom:4px;}
.pay-sec-sub{font-size:13.5px;color:var(--apps-theme-color-ink-muted);margin-bottom:16px;}
.pay-loginbar{display:flex;align-items:center;gap:12px;background:var(--apps-theme-color-cream-soft);border-radius:var(--r-md);padding:13px 16px;margin-bottom:16px;font-size:13.5px;color:var(--apps-theme-color-ink-muted);}
.pay-loginbar svg{width:18px;height:18px;color:var(--apps-theme-color-primary);flex-shrink:0;}
.pay-loginbar a{color:var(--apps-theme-color-primary);font-weight:700;text-decoration:underline;text-underline-offset:2px;margin-left:auto;white-space:nowrap;}
.contact-acc-note{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--apps-theme-color-ink-muted);line-height:1.5;background:var(--apps-theme-color-cream-soft);border-radius:var(--r-md);padding:12px 14px;margin-top:4px;}
.contact-acc-note svg{width:15px;height:15px;color:var(--apps-theme-color-primary);flex-shrink:0;margin-top:1px;}
.contact-acc-note strong{color:var(--apps-theme-color-ink);font-weight:700;}
.plan-skip{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--apps-theme-color-cream-soft);border:1px solid var(--apps-theme-color-line);border-radius:var(--r-lg);padding:16px 20px;margin-top:20px;}
.plan-skip .ps-text{flex:1 1 200px;min-width:200px;font-size:13.5px;color:var(--apps-theme-color-ink-muted);line-height:1.5;margin:0;}
.plan-skip .ps-text strong{color:var(--apps-theme-color-ink);font-weight:700;}
.buy-flow .plan-skip button.ps-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:800;font-size:14px;line-height:16px;color:var(--apps-theme-color-primary);background:#fff;background-color:#fff;background-image:none;border:none;box-shadow:inset 0 0 0 1.5px var(--apps-theme-color-primary);padding:12px 24px;border-radius:var(--r-pill);transition:background var(--t-base),color var(--t-base),box-shadow var(--t-base);white-space:nowrap;outline:none;opacity:1;align-self:center;width:auto;max-width:none;flex:0 0 auto;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;}
.buy-flow .plan-skip button.ps-btn>svg{display:block;width:16px;height:16px;flex:0 0 16px;}
.buy-flow .plan-skip button.ps-btn:hover,.buy-flow .plan-skip button.ps-btn:focus,.buy-flow .plan-skip button.ps-btn:active{background:var(--apps-theme-color-primary);background-color:var(--apps-theme-color-primary);background-image:none;color:#fff;border:none;box-shadow:none;outline:none;opacity:1;}

/* signed-in account card
 * Wide:  [av] [name + Signed in] .............. [Change]
 * Narrow: Signed in straddles top-left border; name truncates; Change stays right.
 */
.pay-account{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  background:rgba(47,143,78,.07);
  border:1px solid rgba(47,143,78,.22);
  border-radius:var(--r-md);
  padding:14px 14px 14px 16px;
  overflow:visible;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.pa-av{width:42px;height:42px;border-radius:50%;background:var(--apps-theme-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:15px;flex-shrink:0;letter-spacing:.02em;}
.pa-meta{flex:1;min-width:0;}
.pa-name-row{display:flex;align-items:center;gap:8px;min-width:0;}
.pa-name{
  display:block;
  font-family:var(--font-display);
  font-weight:700;
  font-size:15px;
  color:var(--apps-theme-color-ink);
  min-width:0;
  max-width:12em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  flex:0 1 auto;
}
.pa-order-email{display:block;font-size:13px;font-weight:600;color:var(--apps-theme-color-ink-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pa-account-email{display:none;font-size:11.5px;font-weight:600;color:var(--apps-theme-color-ink-soft);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pay-account.is-email-diff .pa-order-email{
  color:var(--apps-theme-color-primary);
  font-weight:800;
  background:rgba(11,63,103,.08);
  border-radius:6px;
  padding:2px 8px;
  margin-top:4px;
  width:fit-content;
  max-width:100%;
}
.pay-account.is-email-diff .pa-account-email{display:block;}
.pa-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:10px;font-weight:800;letter-spacing:.02em;
  color:var(--apps-theme-color-green);background:rgba(47,143,78,.18);
  padding:3px 8px;border-radius:var(--r-pill);white-space:nowrap;flex-shrink:0;
}
.pa-badge svg{width:11px;height:11px;}
.pa-change{
  flex-shrink:0;
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:800;
  color:#fff;
  background:var(--apps-theme-color-primary);
  border:1.5px solid var(--apps-theme-color-primary);
  padding:8px 16px;
  border-radius:var(--r-pill);
  cursor:pointer;
  transition:background var(--t-base),border-color var(--t-base);
  width:auto;
  max-width:none;
  line-height:1.2;
  opacity:1;
  white-space:nowrap;
  align-self:center;
}
.pa-change:hover,
.pa-change:focus{
  background:var(--apps-theme-color-primary-deep);
  border-color:var(--apps-theme-color-primary-deep);
  color:#fff;
  opacity:1;
}
.pa-email-actions{display:flex;flex-wrap:nowrap;gap:10px;align-items:center;margin-top:8px;}
@media (max-width: 760px) {
  .pay-account{
    padding-top:16px;
  }
  /* Straddle the card border — not inside content padding */
  .pay-account .pa-badge{
    position:absolute;
    top:-9px;
    left:12px;
    margin:0;
    z-index:2;
    background:#E8F5EA;
    border:1px solid rgba(47,143,78,.35);
    box-shadow:0 0 0 2px #fff;
    font-size:9.5px;
    padding:2px 7px;
  }
  .pa-name{
    max-width:100%;
    flex:1 1 auto;
  }
  .pa-change{
    padding:8px 14px;
  }
}
.pa-sim{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--apps-theme-color-ink-muted);margin-top:12px;padding-top:12px;border-top:1px solid var(--apps-theme-color-line);}
.pa-sim svg{width:17px;height:17px;color:var(--apps-theme-color-primary);flex-shrink:0;}
.pa-sim strong{color:var(--apps-theme-color-ink);font-weight:700;}
.pa-sim small{display:block;font-size:11.5px;color:var(--apps-theme-color-ink-soft);font-variant-numeric:tabular-nums;letter-spacing:.01em;margin-top:1px;}

/* SIM-select list */
.sim-list{display:flex;flex-direction:column;gap:12px;}
.sim-opt{display:flex;align-items:center;gap:15px;padding:16px 18px;border:1.5px solid var(--apps-theme-color-line);border-radius:var(--r-lg);cursor:pointer;background:#fff;transition:border-color var(--t-base),box-shadow var(--t-base),transform var(--t-base);text-align:left;width:100%;}
.sim-opt:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.sim-opt.sel{border-color:var(--apps-theme-color-primary);box-shadow:0 0 0 2px rgba(11,63,103,.14);}
.so-thumb{width:48px;height:48px;border-radius:12px;background:var(--apps-theme-color-primary);display:flex;align-items:center;justify-content:center;font-size:25px;flex-shrink:0;}
.so-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.so-name{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--apps-theme-color-ink);line-height:1.2;}
.so-meta{font-size:12.5px;color:var(--apps-theme-color-ink-soft);}
.so-iccid{font-size:11.5px;color:var(--apps-theme-color-ink-faint);font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.sim-status{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:5px 10px;border-radius:var(--r-pill);white-space:nowrap;flex-shrink:0;}
.sim-status.active{background:#E8F5EA;color:var(--apps-theme-color-green);}
.sim-status.expired{background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-ink-soft);}
.sim-add{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px;border:1.5px dashed var(--apps-theme-color-line);border-radius:var(--r-lg);color:var(--apps-theme-color-primary);font-family:var(--font-body);font-weight:700;font-size:14px;cursor:pointer;background:transparent;width:100%;transition:background var(--t-base),border-color var(--t-base);}
.sim-add svg{width:17px;height:17px;}
.sim-add:hover{background:var(--apps-theme-color-surface-alt);border-color:var(--apps-theme-color-ink-faint);}

/* payment method radios (Magento payment-method rows) */
.pm-list{display:flex;flex-direction:column;gap:10px;}
.pm{border:1.5px solid var(--apps-theme-color-line);border-radius:var(--r-lg);overflow:hidden;transition:border-color var(--t-base),box-shadow var(--t-base);background:#fff;}
.pm.sel{border-color:var(--apps-theme-color-primary);box-shadow:0 0 0 2px rgba(11,63,103,.12);overflow:visible;}
.pm-head{display:flex;align-items:center;gap:13px;padding:15px 17px;cursor:pointer;}
.pm-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--apps-theme-color-ink-faint);flex-shrink:0;position:relative;transition:border-color var(--t-base);}
.pm.sel .pm-radio{border-color:var(--apps-theme-color-primary);}
.pm.sel .pm-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--apps-theme-color-primary);}
.pm-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--apps-theme-color-ink);flex:1;min-width:0;display:flex;align-items:center;gap:8px;}
.pm-name .sub{font-family:var(--font-body);font-weight:600;font-size:12px;color:var(--apps-theme-color-ink-soft);}
.pm-name-col{flex-direction:column;align-items:flex-start;gap:2px;}
.pm-name-row{display:flex;align-items:center;gap:8px;}
.pm-inline-note{font-family:var(--font-body);font-weight:600;font-size:11px;color:var(--apps-theme-color-yellow);line-height:1.3;}
.pm-brands{display:flex;align-items:center;gap:5px;flex-shrink:0;}
.pm-brand{height:22px;width:34px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:800;color:#fff;letter-spacing:.02em;border:1px solid rgba(0,0,0,.06);}
.pm-brand.visa{background:#1434CB;}
.pm-brand.mc{background:#fff;color:#222;position:relative;padding:0;}
.pm-brand.amex{background:#2E77BC;}
.pm-brand.pp{background:#fff;color:#003087;border-color:#d8def0;}
.pm-brand.pp i{color:#0070E0;font-style:normal;}
.pm-brand.apple{background:#000;}
.pm-brand.gpay{background:#fff;color:#5f6368;border-color:#dadce0;}
.pm-brand.ali{background:#1677FF;}
.pm-brand.wechat{background:#07C160;}
.pm-brand svg{width:20px;height:14px;}
.pm-body{max-height:0;overflow:hidden;transition:max-height var(--t-slow) var(--ease-out);}
/* Stripe Payment Element + Link auth grow past 760px — do not clip */
.pm.sel .pm-body{max-height:none;overflow:visible;}
.pm-body-inner{padding:4px 17px 18px;border-top:1px solid var(--apps-theme-color-line);margin-top:0;}
.pm-redirect{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--apps-theme-color-ink-muted);padding:14px 0 2px;line-height:1.5;}
.pm-redirect svg{width:17px;height:17px;color:var(--apps-theme-color-primary);flex-shrink:0;}
.pm-qr{display:flex;align-items:center;gap:16px;padding:14px 0 2px;}
.pm-qr .qr{width:88px;height:88px;border-radius:10px;border:1px solid var(--apps-theme-color-line);padding:7px;background:#fff;flex-shrink:0;}
.pm-qr .qr svg{width:100%;height:100%;}
.pm-qr .qrtext{font-size:13px;color:var(--apps-theme-color-ink-muted);line-height:1.5;}
.pm-qr .qrtext strong{color:var(--apps-theme-color-ink);}
.pm-region-note{margin-top:12px;padding:10px 12px;background:var(--apps-theme-color-cream-soft);border-radius:var(--r-md);font-size:12px;color:var(--apps-theme-color-ink-muted);line-height:1.45;}

/* OTP (email/order verification) — reserved transparent border = no hover layout shift */
.id-otp-toggle{display:flex;gap:4px;background:var(--apps-theme-color-surface-alt);padding:4px;border-radius:var(--r-pill);width:fit-content;margin-bottom:16px;}
.id-otp-toggle button{font-family:var(--font-body);font-weight:700;font-size:12.5px;line-height:1.2;padding:6px 14px;border-radius:var(--r-pill);color:var(--apps-theme-color-ink-muted);background:transparent;border:1.5px solid transparent;box-shadow:none;outline:none;min-height:0;transition:background .14s ease,color .14s ease,border-color .14s ease;}
.id-otp-toggle button.on{background:var(--apps-theme-color-primary);color:#fff;border-color:var(--apps-theme-color-primary);}
.id-otp-toggle button:hover:not(.on),.id-otp-toggle button:focus:not(.on){background:rgba(14,35,72,.06);color:var(--apps-theme-color-ink-muted);border-color:transparent;box-shadow:none;}
.id-otp-toggle button.on:hover,.id-otp-toggle button.on:focus{background:var(--apps-theme-color-primary-deep);border-color:var(--apps-theme-color-primary-deep);color:#fff;box-shadow:none;}
.id-otp-resend{display:block;width:100%;text-align:center;margin-top:12px;font-size:13px;font-weight:700;color:var(--apps-theme-color-ink-muted);padding:8px;border-radius:var(--r-md);transition:background var(--t-fast);}
.id-otp-resend:hover{background:var(--apps-theme-color-surface-alt);}

.billing-h{font-size:13px;font-weight:800;color:var(--apps-theme-color-ink-muted);margin:18px 0 12px;letter-spacing:.02em;}

/* place order — scoped under .buy-flow to beat button reset */
.buy-flow.checkout-flow .place-order,
.checkout-flow .place-order {
  width: 100%;
  height: 56px;
  border-radius: var(--r-pill);
  background: var(--apps-theme-color-primary);
  color: #fff;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 16.5px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: background var(--t-base), transform var(--t-base), box-shadow var(--t-base), opacity var(--t-base);
  margin-top: 6px;
  letter-spacing: .01em;
  border: none;
  opacity: 1;
}
.buy-flow.checkout-flow .place-order:hover,
.checkout-flow .place-order:hover {
  background: var(--apps-theme-color-primary-deep);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  opacity: 1;
}
.checkout-flow .place-order svg { width: 19px; height: 19px; }
.buy-flow.checkout-flow .place-order:disabled,
.checkout-flow .place-order:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.buy-flow.checkout-flow .place-order.is-loading,
.checkout-flow .place-order.is-loading {
  opacity: .85;
  transform: none;
}

/* Place-order lock: freeze all mutating UI until redirect / unlock on error */
.checkout-flow.is-placing {
  cursor: wait;
}
.checkout-flow.is-placing .opc-progress,
.checkout-flow.is-placing .pay-back-bar,
.checkout-flow.is-placing .pay-main,
.checkout-flow.is-placing .summary {
  pointer-events: none;
  user-select: none;
  opacity: .72;
}
.checkout-flow.is-placing .checkout-error,
.checkout-flow.is-placing [data-role="place-order"] {
  pointer-events: auto;
  opacity: 1;
  user-select: auto;
}
.checkout-flow.is-placing .pm,
.checkout-flow.is-placing [data-role="wallet-button"],
.checkout-flow.is-placing [data-role="stripe-element"] {
  pointer-events: none !important;
}

.pay-secure-note{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--apps-theme-color-ink-soft);margin-top:14px;}
.pay-secure-note svg{width:14px;height:14px;color:var(--apps-theme-color-green);}

/* Checkout Terms and Conditions (native Magento agreements, custom Web Checkout) */
.checkout-flow .checkout-agreements{
  margin: 18px 0 4px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.checkout-flow .checkout-agreement{
  display: flex;
  flex-flow: row nowrap;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--apps-theme-color-ink-muted));
  width: 100%;
}
.checkout-flow .checkout-agreement.has-error{
  color: #b42318;
}
.checkout-flow .checkout-agreement > input[type="checkbox"]{
  width: 18px !important;
  max-width: 18px;
  height: 18px;
  margin: 0px 0px 0px;
  flex: 0 0 18px;
  accent-color: var(--apps-theme-color-primary);
}
.checkout-flow .checkout-agreement > .label{
  flex: 1 1 auto;
  min-width: 0;
  width: auto !important;
  max-width: none;
  margin: 0;
  padding: 0;
  float: none;
  display: block;
}
.checkout-flow .checkout-agreement .action-show,
.checkout-flow .checkout-agreement button.action-show{
  appearance: none;
  display: inline;
  width: auto !important;
  max-width: 100%;
  height: auto;
  min-height: 0;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0;
  margin: 0;
  text-align: left;
  color: inherit !important;
  font: inherit;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.45;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  opacity: 1;
  white-space: normal;
}
.checkout-flow .checkout-agreement .action-show:hover,
.checkout-flow .checkout-agreement .action-show:focus,
.checkout-flow .checkout-agreement button.action-show:hover,
.checkout-flow .checkout-agreement button.action-show:focus{
  color: var(--apps-theme-color-primary) !important;
  background: transparent !important;
  opacity: 1;
  outline: none;
}
.checkout-flow .checkout-agreement .action-show span{
  display: inline;
}
.checkout-agreements-modal[hidden]{display:none !important;}
.checkout-agreements-modal{
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 16px;
}
.checkout-agreements-modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(8, 28, 48, .46);
}
.checkout-agreements-modal-dialog{
  position: relative;
  z-index: 1;
  width: min(820px, calc(100vw - 32px));
  max-height: min(86vh, 880px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(8, 28, 48, .28);
  padding: 0;
}
.checkout-agreements-modal-close{
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  background: rgba(8, 28, 48, .06);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: var(--apps-theme-color-ink-muted);
}
.checkout-agreements-modal-close:hover,
.checkout-agreements-modal-close:focus{
  background: rgba(8, 28, 48, .1);
  color: var(--apps-theme-color-ink);
}
.checkout-agreements-modal-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 28px 28px 32px;
  font-family: var(--font-body, inherit);
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--apps-theme-color-ink);
  box-sizing: border-box;
}
/* Reset page-hero / column.main display typography leaking into agreement HTML */
.checkout-agreements-modal-body h1,
.checkout-agreements-modal-body h2,
.checkout-agreements-modal-body h3,
.checkout-agreements-modal-body h4,
.checkout-agreements-modal-body h5,
.checkout-agreements-modal-body h6,
.column.main .checkout-agreements-modal-body h1,
.column.main .checkout-agreements-modal-body h2,
.column.main .checkout-agreements-modal-body h3,
.column.main .checkout-agreements-modal-body h4,
.apps-theme-content .checkout-agreements-modal-body h1,
.apps-theme-content .checkout-agreements-modal-body h2,
.apps-theme-content .checkout-agreements-modal-body h3,
.apps-theme-content .checkout-agreements-modal-body h4{
  font-family: var(--font-display, inherit);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--apps-theme-color-ink);
  margin: 0 0 0.65em;
  max-width: none;
}
.checkout-agreements-modal-body h1,
.column.main .checkout-agreements-modal-body h1,
.apps-theme-content .checkout-agreements-modal-body h1{
  font-size: 22px;
  line-height: 1.25;
  margin-bottom: 0.85em;
  padding-right: 36px;
}
.checkout-agreements-modal-body h2,
.column.main .checkout-agreements-modal-body h2,
.apps-theme-content .checkout-agreements-modal-body h2{
  font-size: 17px;
  line-height: 1.3;
  margin-top: 1.35em;
}
.checkout-agreements-modal-body h3,
.column.main .checkout-agreements-modal-body h3,
.apps-theme-content .checkout-agreements-modal-body h3{
  font-size: 15.5px;
  line-height: 1.35;
  margin-top: 1.2em;
}
.checkout-agreements-modal-body h4,
.column.main .checkout-agreements-modal-body h4,
.apps-theme-content .checkout-agreements-modal-body h4{
  font-size: 14.5px;
  line-height: 1.4;
  margin-top: 1.1em;
}
.checkout-agreements-modal-body p,
.checkout-agreements-modal-body li,
.checkout-agreements-modal-body td,
.checkout-agreements-modal-body th{
  font-size: 14.5px;
  line-height: 1.65;
}
.checkout-agreements-modal-body p{
  margin: 0 0 0.85em;
}
.checkout-agreements-modal-body ul,
.checkout-agreements-modal-body ol{
  margin: 0 0 0.85em;
  padding-left: 1.25em;
}
.checkout-agreements-modal-body a{
  color: var(--apps-theme-color-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (max-width: 760px) {
  .checkout-agreements-modal{
    padding: 12px;
    align-items: flex-end;
  }
  .checkout-agreements-modal-dialog{
    width: 100%;
    max-height: min(88vh, 920px);
    border-radius: 16px 16px 12px 12px;
  }
  .checkout-agreements-modal-body{
    padding: 22px 18px 24px;
    font-size: 14px;
  }
  .checkout-agreements-modal-body h1,
  .column.main .checkout-agreements-modal-body h1,
  .apps-theme-content .checkout-agreements-modal-body h1{
    font-size: 19px;
  }
  .checkout-agreements-modal-body h2,
  .column.main .checkout-agreements-modal-body h2,
  .apps-theme-content .checkout-agreements-modal-body h2{
    font-size: 16px;
  }
}
body.checkout-agreements-modal-open{overflow: hidden;}

/* ============ ORDER SUMMARY (Magento opc-block-summary reskin) ============ */
.summary{background:var(--summary-bg,var(--apps-theme-color-cream-soft));border:1px solid var(--summary-border,transparent);
  border-radius:var(--r-xl);padding:24px 24px 22px;position:sticky;top:86px;transition:background var(--t-base);}
.summary-h{font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--summary-ink,var(--apps-theme-color-ink));margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;}
.summary-h .cnt{font-family:var(--font-body);font-size:12.5px;font-weight:700;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));}
.li{display:flex;gap:13px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--summary-line,var(--apps-theme-color-line));transition:opacity .28s ease,transform .28s ease;}
.li:first-of-type{border-top:none;padding-top:0;}
.li-thumb{width:54px;height:54px;border-radius:12px;flex-shrink:0;overflow:hidden;background:var(--apps-theme-color-primary);position:relative;display:flex;align-items:center;justify-content:center;}
.li-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.li-thumb .flag{font-size:26px;}
.li-qty{position:absolute;top:-7px;right:-7px;min-width:21px;height:21px;border-radius:11px;background:var(--apps-theme-color-primary);color:#fff;
  font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--summary-bg,var(--apps-theme-color-cream-soft));padding:0 5px;}
.li-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.li-row{display:flex;gap:10px;align-items:flex-start;}
.li-body{flex:1;min-width:0;}
.li-name{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--summary-ink,var(--apps-theme-color-ink));line-height:1.25;}
.li-edit-btn{display:inline-flex;align-items:center;font-size:11px;font-weight:800;color:var(--summary-accent,var(--apps-theme-color-primary));background:transparent;border:1.5px solid var(--summary-line,var(--apps-theme-color-line));padding:3px 10px;border-radius:var(--r-pill);margin-left:7px;white-space:nowrap;text-decoration:none;vertical-align:middle;transition:border-color var(--t-base),background var(--t-base);}
.li-edit-btn:hover{border-color:var(--summary-accent,var(--apps-theme-color-primary));background:rgba(11,63,103,.06);}
.li-meta{font-size:12px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));margin-top:3px;line-height:1.45;}
.li-meta .badge{display:inline-flex;align-items:center;gap:4px;color:var(--apps-theme-color-green);font-weight:700;}
.li-meta .badge svg{width:11px;height:11px;}
.li-iccid{font-size:12px;line-height:1.35;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));
  font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.li-price{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;white-space:nowrap;flex-shrink:0;}
.li-price-amount{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--summary-ink,var(--apps-theme-color-ink));line-height:1.2;}
.li-price-qty{font-family:var(--font-body);font-size:12px;font-weight:700;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));line-height:1.2;letter-spacing:.02em;}
.buy-flow.checkout-flow .li-remove,
.checkout-flow .li-remove,
.buy-flow.checkout-flow button.li-remove,
.checkout-flow button.li-remove {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  padding: 0;
  flex: 0 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--summary-line, var(--apps-theme-color-line));
  border-radius: 50%;
  background: #fff;
  color: var(--summary-ink-2, var(--apps-theme-color-ink-soft));
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
  opacity: 1;
  transform: none;
  transition: border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.buy-flow.checkout-flow .li-remove:hover,
.buy-flow.checkout-flow .li-remove:focus,
.checkout-flow .li-remove:hover,
.checkout-flow .li-remove:focus,
.buy-flow.checkout-flow button.li-remove:hover,
.checkout-flow button.li-remove:hover {
  border-color: var(--apps-theme-color-brand);
  color: var(--apps-theme-color-brand-deep);
  background: var(--apps-theme-color-brand-soft);
  opacity: 1;
  transform: none;
  box-shadow: none;
}
.li-remove:disabled{opacity:.45;cursor:wait;}
.buy-flow.checkout-flow .li-remove.is-loading,
.checkout-flow .li-remove.is-loading,
.buy-flow.checkout-flow button.li-remove.is-loading,
.checkout-flow button.li-remove.is-loading {
  opacity: 1;
  cursor: wait;
}
.buy-flow.checkout-flow .li-remove.is-loading .btn-spinner,
.checkout-flow .li-remove.is-loading .btn-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(11, 63, 103, .18);
  border-top-color: var(--summary-accent, var(--apps-theme-color-primary));
}
.buy-flow.checkout-flow .li-remove.is-locked:not(.is-loading),
.checkout-flow .li-remove.is-locked:not(.is-loading) {
  opacity: .35;
  cursor: wait;
}
.buy-flow.checkout-flow .li.is-removing,
.checkout-flow .li.is-removing {
  position: relative;
  pointer-events: none;
  opacity: .52;
  transition: opacity .2s ease;
}
.buy-flow.checkout-flow .li.is-removed,
.checkout-flow .li.is-removed {
  opacity: 0;
  transform: translateX(10px);
  pointer-events: none;
  transition: opacity .28s ease, transform .28s ease;
}
.buy-flow.checkout-flow .li.li-fade-in,
.checkout-flow .li.li-fade-in {
  animation: checkoutLiFadeIn .36s ease-out;
}
@keyframes checkoutLiFadeIn {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.li-empty{font-size:13.5px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));padding:6px 0 14px;line-height:1.5;}
.summary-ship{
  margin:4px 0 10px;padding:12px 14px;border-radius:var(--r-md);
  background:rgba(11,63,103,.04);border:1px solid var(--summary-line,var(--apps-theme-color-line));
  font-size:12.5px;color:var(--summary-ink-2,var(--apps-theme-color-ink-muted));line-height:1.45;
}
.summary-ship strong{display:block;font-size:13px;font-weight:800;color:var(--summary-ink,var(--apps-theme-color-ink));margin-bottom:4px;}
.summary-ship .ship-method{margin-top:6px;font-weight:700;color:var(--summary-ink,var(--apps-theme-color-ink));}

/* discount code (collapsible)
 * Beat parent apps.css button { width:100%; background:#4a4a4a } and
 * .buy-flow button { width:auto } — disc-toggle is a full-width text toggle. */
.disc{border-top:1px solid var(--summary-line,var(--apps-theme-color-line));border-bottom:1px solid var(--summary-line,var(--apps-theme-color-line));margin:6px 0 4px;}
.disc-toggle,
.buy-flow .disc-toggle,
.buy-flow button.disc-toggle,
.checkout-flow .disc-toggle,
.checkout-flow button.disc-toggle{
  width:100%;
  max-width:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:14px 0;
  margin:0;
  font-family:var(--font-body);
  font-size:13.5px;
  font-weight:700;
  line-height:1.3;
  color:var(--summary-ink,var(--apps-theme-color-ink));
  background:transparent;
  background-color:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  cursor:pointer;
  text-align:left;
  opacity:1;
  flex:none;
  align-self:stretch;
}
.disc-toggle:hover,
.disc-toggle:focus,
.disc-toggle:active,
.buy-flow .disc-toggle:hover,
.buy-flow .disc-toggle:focus,
.buy-flow .disc-toggle:active,
.buy-flow button.disc-toggle:hover,
.buy-flow button.disc-toggle:focus,
.buy-flow button.disc-toggle:active,
.checkout-flow .disc-toggle:hover,
.checkout-flow .disc-toggle:focus,
.checkout-flow .disc-toggle:active,
.checkout-flow button.disc-toggle:hover,
.checkout-flow button.disc-toggle:focus,
.checkout-flow button.disc-toggle:active{
  color:var(--apps-theme-color-primary);
  background:transparent;
  background-color:transparent;
  border:0;
  box-shadow:none;
  opacity:1;
}
.disc-toggle .chev{width:16px;height:16px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));transition:transform var(--t-base),color var(--t-base);flex-shrink:0;}
.disc-toggle:hover .chev,
.disc-toggle:focus .chev{color:var(--apps-theme-color-primary);}
.disc.open .disc-toggle .chev{transform:rotate(180deg);}
/* Padding lives on disc-body / disc-applied — not under the input row (error sits between). */
.disc-body{display:none;padding:0 0 14px;overflow:visible;}
.disc.open .disc-body{display:block;}
.disc-row{display:flex;gap:8px;padding:0;flex-wrap:nowrap;align-items:center;}
.disc-row .inp{flex:1;min-width:0;height:44px;box-sizing:border-box;}
.disc-apply,.disc-row .disc-btn{
  flex-shrink:0;
  padding:0 18px;
  height:44px;
  min-height:44px;
  max-height:44px;
  border-radius:var(--r-md);
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  align-self:center;
}
.disc-applied{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;line-height:1.3;color:var(--apps-theme-color-green);padding:0;min-width:0;}
.disc-applied > svg{width:15px;height:15px;flex-shrink:0;display:block;}
.disc-applied-label{min-width:0;flex:1;overflow:hidden;display:flex;align-items:center;gap:6px;flex-wrap:nowrap;line-height:1.3;}
.disc-applied-label strong{
  color:var(--summary-ink,var(--apps-theme-color-ink));
  margin:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:800;
  line-height:1.3;
}
.disc-applied .rm,
.buy-flow .disc-applied button.rm,
.checkout-flow .disc-applied button.rm{
  margin-left:auto;
  flex-shrink:0;
  align-self:center;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  background-color:transparent;
  box-shadow:none;
  width:auto;
  max-width:none;
  height:auto;
  min-height:0;
  line-height:1.3;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));
  text-decoration:underline;
  cursor:pointer;
  opacity:1;
  vertical-align:middle;
}
.disc-applied .rm .btn-spinner,
.buy-flow .disc-applied button.rm .btn-spinner,
.checkout-flow .disc-applied button.rm .btn-spinner{
  width:14px;
  height:14px;
  border:2px solid rgba(11,63,103,.22);
  border-top-color:var(--apps-theme-color-primary);
  margin:0;
}
.disc-applied .rm.is-loading,
.buy-flow .disc-applied button.rm.is-loading,
.checkout-flow .disc-applied button.rm.is-loading{
  text-decoration:none;
}
.disc-applied .rm.is-loading .rm-label,
.buy-flow .disc-applied button.rm.is-loading .rm-label,
.checkout-flow .disc-applied button.rm.is-loading .rm-label{
  text-decoration:underline;
  line-height:1.3;
}
.disc-applied .rm:hover,
.disc-applied .rm:focus,
.disc-applied .rm:active,
.buy-flow .disc-applied button.rm:hover,
.buy-flow .disc-applied button.rm:focus,
.buy-flow .disc-applied button.rm:active,
.checkout-flow .disc-applied button.rm:hover,
.checkout-flow .disc-applied button.rm:focus,
.checkout-flow .disc-applied button.rm:active{
  color:var(--summary-ink,var(--apps-theme-color-ink));
  background:transparent;
  background-color:transparent;
  border:0;
  box-shadow:none;
  outline:none;
  opacity:1;
  text-decoration:underline;
}
.disc-row .rm{margin-left:auto;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));font-weight:600;cursor:pointer;text-decoration:underline;}
@media (max-width: 520px) {
  .disc-row{flex-wrap:wrap;}
  .disc-row .inp{flex:1 1 100%;width:100%;}
  .disc-row .disc-btn,
  .disc-row .disc-apply{
    width:100%;
    max-width:none;
  }
}

/* Points + referral credit at checkout */
.rwpts{border-bottom:1px solid var(--summary-line,var(--apps-theme-color-line));margin:0 0 2px;padding:2px 0 14px;}
.rwpts-card{background:rgba(11,63,103,.045);border:1px solid var(--summary-line,var(--apps-theme-color-line));border-radius:var(--r-md);padding:13px 14px;}
.rwpts-card.locked{opacity:.7;}
.rwpts-h{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(max-content,auto);gap:10px;align-items:center;}
.rwpts-ic{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--summary-accent,var(--apps-theme-color-primary));color:#fff;}
.rwpts-ic svg{width:16px;height:16px;}
.rwpts-ic.gift{background:var(--apps-theme-color-yellow);color:#5a4205;}
.rwpts-ht{min-width:0;}
.rwpts-ht strong{display:block;font-family:var(--font-display);font-weight:800;font-size:13.5px;color:var(--summary-ink,var(--apps-theme-color-ink));line-height:1.35;}
.rwpts-ht small{display:block;font-size:11px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));margin-top:2px;line-height:1.35;}
.rwpts-h-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;justify-content:flex-end;min-width:max-content;}
.rwpts-amt-wrap{flex-shrink:0;text-align:right;}
.rwpts-amt{display:block;font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--apps-theme-color-green);font-variant-numeric:tabular-nums;line-height:1.2;}
.rwpts-tog{width:42px;height:24px;border-radius:999px;background:var(--apps-theme-color-line);position:relative;flex-shrink:0;border:none;cursor:pointer;padding:0;transition:background var(--t-fast);}
.rwpts-tog.on{background:var(--apps-theme-color-green);}
.rwpts-tog-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform var(--t-fast);}
.rwpts-tog.on .rwpts-tog-knob{transform:translateX(18px);}
.rwpts-card.is-loading,.rwpts.is-busy .rwpts-card{position:relative;pointer-events:none;cursor:wait;opacity:.72;}
.rwpts-card.is-loading::after{content:'';position:absolute;top:12px;right:14px;width:16px;height:16px;border:2px solid rgba(11,63,103,.2);border-top-color:var(--summary-accent,var(--apps-theme-color-primary));border-radius:50%;animation:buy-flow-spin .7s linear infinite;}
.rwpts-tog:disabled,.rwpts-tog[aria-busy="true"]{cursor:wait;opacity:.85;}
.rwpts-slider{margin-top:12px;}
.rwpts-slider input[type=range]{width:100%;accent-color:var(--summary-accent,var(--apps-theme-color-primary));height:22px;cursor:pointer;margin:0;}
.rwpts-scale{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,1fr);align-items:center;gap:6px;font-size:11px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));margin-top:4px;}
.rwpts-scale-min{text-align:left;font-variant-numeric:tabular-nums;}
.rwpts-scale-max{text-align:right;font-variant-numeric:tabular-nums;}
.rwpts-cur{font-size:11px;font-weight:700;color:var(--summary-ink,var(--apps-theme-color-ink));text-align:center;font-variant-numeric:tabular-nums;line-height:1.3;padding:0 4px;}
.rwpts-slider.is-previewing .rwpts-cur{color:var(--summary-accent,var(--apps-theme-color-primary));}
.rwpts-fine,.rwpts-lock{display:flex;gap:6px;align-items:flex-start;font-size:11px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));margin-top:9px;line-height:1.4;}
.rwpts-fine[hidden],.rwpts-lock[hidden]{display:none;}
.rwpts-fine svg,.rwpts-lock svg{width:12px;height:12px;flex-shrink:0;margin-top:1px;}
.rwpts-lock svg{color:var(--apps-theme-color-yellow);}
.rwpts-credit{display:flex;align-items:center;gap:11px;position:relative;margin-top:10px;padding:11px 14px;border:1px solid var(--summary-line,var(--apps-theme-color-line));border-radius:var(--r-md);cursor:pointer;}
.rwpts-credit input{position:absolute;opacity:0;pointer-events:none;}
.rwpts-chk{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--summary-line,var(--apps-theme-color-line));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:background var(--t-fast),border-color var(--t-fast);}
.rwpts-chk svg{width:13px;height:13px;opacity:0;}
.rwpts-credit.on .rwpts-chk{background:var(--apps-theme-color-green);border-color:var(--apps-theme-color-green);}
.rwpts-credit.on .rwpts-chk svg{opacity:1;}
.rwpts-earn{display:flex;gap:7px;align-items:center;font-size:11.5px;color:var(--summary-ink-2,var(--apps-theme-color-ink-muted));margin-top:11px;line-height:1.4;}
.rwpts-earn svg{width:13px;height:13px;color:var(--apps-theme-color-yellow);flex-shrink:0;}
.rwpts-earn b{color:var(--summary-ink,var(--apps-theme-color-ink));font-weight:800;}
.rwpts-guest{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));padding:10px 0;line-height:1.4;}
.rwpts-guest svg{width:15px;height:15px;color:var(--summary-accent,var(--apps-theme-color-primary));flex-shrink:0;}
.rwpts-guest a{color:var(--summary-accent,var(--apps-theme-color-primary));font-weight:700;text-decoration:underline;}
.done-reward{display:flex;gap:8px;align-items:center;justify-content:center;font-size:13px;color:var(--apps-theme-color-ink-muted);background:var(--apps-theme-color-cream-soft);border-radius:var(--r-md);padding:11px 14px;margin-top:14px;text-align:center;line-height:1.45;}
.done-reward svg{width:15px;height:15px;color:var(--apps-theme-color-yellow);flex-shrink:0;}
.done-reward strong{color:var(--apps-theme-color-ink);font-weight:800;}

/* Order summary totals — semantic classes under .summary */
.summary-totals{padding:12px 0 4px;}
.summary-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:14px;
  font-weight:400;
  color:var(--summary-ink-2,var(--apps-theme-color-ink-muted));
  padding:6px 0;
}
.summary-row-label{min-width:0;}
.summary-row-value{
  font-weight:700;
  color:var(--summary-ink,var(--apps-theme-color-ink));
  font-variant-numeric:tabular-nums;
  text-align:right;
}
.summary-row--discount,
.summary-row--discount .summary-row-label,
.summary-row--discount .summary-row-value{
  color:var(--apps-theme-color-green);
}
.summary-grand{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  padding:14px 0 2px;
  margin-top:8px;
  border-top:2px solid var(--summary-line,var(--apps-theme-color-line));
}
.summary-grand-label{
  font-family:var(--font-display);
  font-weight:800;
  font-size:17px;
  color:var(--summary-ink,var(--apps-theme-color-ink));
}
.summary-grand-value{
  font-family:var(--font-display);
  font-weight:800;
  font-size:26px;
  color:var(--summary-accent,var(--apps-theme-color-primary));
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.summary-grand-value .summary-currency{font-size:.6em;}
.checkout-flow .summary-totals .summary-row{
  font-size:14px;
  font-weight:400;
  color:var(--summary-ink-2,var(--apps-theme-color-ink-muted));
}
.checkout-flow .summary-totals .summary-row-value{
  font-weight:700;
  color:var(--summary-ink,var(--apps-theme-color-ink));
  font-variant-numeric:tabular-nums;
}
.checkout-flow .summary-totals .summary-row--discount,
.checkout-flow .summary-totals .summary-row--discount .summary-row-label,
.checkout-flow .summary-totals .summary-row--discount .summary-row-value{
  color:var(--apps-theme-color-green);
}
.checkout-flow .summary-totals .summary-grand-label{
  font-family:var(--font-display);
  font-weight:800;
  font-size:17px;
  color:var(--summary-ink,var(--apps-theme-color-ink));
}
.checkout-flow .summary-totals .summary-grand-value{
  font-family:var(--font-display);
  font-weight:800;
  font-size:26px;
  color:var(--summary-accent,var(--apps-theme-color-primary));
  letter-spacing:-.02em;
}
.summary-note{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:var(--summary-ink-2,var(--apps-theme-color-ink-soft));margin-top:14px;line-height:1.5;}
.summary-note svg{width:15px;height:15px;color:var(--apps-theme-color-green);flex-shrink:0;margin-top:1px;}

/* trust strip under summary */
.trust{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--summary-line,var(--apps-theme-color-line));}
.trust .tp{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--summary-ink-2,var(--apps-theme-color-ink-muted));font-weight:600;}
.trust .tp .stars{display:inline-flex;gap:2px;}
.trust .tp .star{width:14px;height:14px;border-radius:3px;background:#00B67A;display:inline-flex;align-items:center;justify-content:center;}
.trust .tp .star svg{width:9px;height:9px;fill:#fff;}
.trust .tp svg.ic{width:14px;height:14px;color:var(--apps-theme-color-green);}
.trust .tp strong{color:var(--summary-ink,var(--apps-theme-color-ink));}

/* ============ STEP 4 — DONE ============ */
.done-wrap{max-width:720px;margin:0 auto;text-align:center;}
.column.main .buy-flow .done-wrap > h1{
  font-size:clamp(22px,2.8vw,28px);font-weight:800;line-height:1.2;letter-spacing:-.015em;
  color:var(--apps-theme-color-ink);margin:0 0 10px;
}
.done-mark{width:84px;height:84px;border-radius:50%;background:rgba(47,143,78,.12);display:flex;align-items:center;justify-content:center;margin:8px auto 22px;
  animation:popIn .5s var(--ease-out);}
.done-mark .ring{width:84px;height:84px;border-radius:50%;background:var(--apps-theme-color-green);display:flex;align-items:center;justify-content:center;}
.done-mark svg{width:40px;height:40px;color:#fff;}
@keyframes popIn{0%{transform:scale(.5);}60%{transform:scale(1.08);}100%{transform:scale(1);}}
.done-wrap h1{font-size:clamp(22px,2.8vw,28px);font-weight:800;margin-bottom:10px;}
.done-wrap .done-sub{font-size:16px;color:var(--apps-theme-color-ink-muted);margin-bottom:26px;}
.done-card{background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);padding:24px 26px;text-align:left;margin-bottom:22px;}
.done-order-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--apps-theme-color-line);flex-wrap:wrap;}
.done-order-top .ono{font-size:13px;color:var(--apps-theme-color-ink-soft);}
.done-order-top .ono strong{display:block;font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--apps-theme-color-ink);}
.done-order-top .paid{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--apps-theme-color-green);background:rgba(47,143,78,.1);padding:6px 12px;border-radius:var(--r-pill);}
.done-order-top .paid svg{width:14px;height:14px;}
.done-order-top .paid.is-pending{color:var(--apps-theme-color-primary);background:rgba(11,63,103,.08);}
.done-pay{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;color:var(--apps-theme-color-ink-soft);padding:0 0 16px;margin:0 0 16px;border-bottom:1px solid var(--apps-theme-color-line);}
.done-pay strong{color:var(--apps-theme-color-ink);font-weight:700;}
.done-sims{display:flex;flex-direction:column;gap:10px;margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid var(--apps-theme-color-line);}
.done-sim{
  display:flex;align-items:center;gap:12px;width:100%;
  padding:12px 14px;border-radius:var(--r-lg);
  border:1px solid rgba(47,143,78,.28);background:rgba(47,143,78,.06);
  text-align:left;min-width:0;
}
.done-sim .av{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:#fff;color:var(--apps-theme-color-primary);border:1px solid var(--apps-theme-color-line);
}
.done-sim .av svg{width:18px;height:18px;}
.done-sim .meta{flex:1;min-width:0;}
.done-sim .meta strong{
  display:block;font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--apps-theme-color-ink);line-height:1.25;
}
.done-sim .meta small{
  display:block;margin-top:3px;font-size:12px;color:var(--apps-theme-color-ink-muted);line-height:1.35;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;
  overflow-wrap:anywhere;word-break:break-all;
}
.done-li{display:flex;align-items:center;gap:14px;}
.done-li + .done-li{margin-top:14px;padding-top:14px;border-top:1px solid var(--apps-theme-color-line);}
.done-li .li-thumb{width:50px;height:50px;flex-shrink:0;border-radius:12px;overflow:hidden;background:var(--apps-theme-color-cream-soft);display:flex;align-items:center;justify-content:center;}
.done-li .li-thumb img{width:50px;height:50px;object-fit:cover;display:block;}
.done-li .li-thumb .flag,
.done-li .li-thumb .flag svg{width:22px;height:22px;color:var(--apps-theme-color-primary);}
.done-li .info{flex:1;min-width:0;}
.done-li .info strong{display:block;font-family:var(--font-display);font-weight:700;font-size:15.5px;color:var(--apps-theme-color-ink);}
.done-li .info small{display:block;font-size:12.5px;color:var(--apps-theme-color-ink-muted);}
.done-li .info .done-li-iccid{margin-top:2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.done-li .amt{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--apps-theme-color-primary);flex-shrink:0;}
.done-ship{display:flex;align-items:flex-start;gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--apps-theme-color-line);}
.done-ship-ic{width:40px;height:40px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);border:1px solid var(--apps-theme-color-line);}
.done-ship-ic svg{width:18px;height:18px;}
.done-ship-body{flex:1;min-width:0;text-align:left;}
.done-ship-body strong{display:block;font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--apps-theme-color-ink);margin-bottom:4px;}
.done-ship-body small{display:block;font-size:13px;color:var(--apps-theme-color-ink-muted);line-height:1.45;}
.done-ship-body .done-ship-method{margin-top:4px;color:var(--apps-theme-color-ink-soft);}
.done-ship .amt{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--apps-theme-color-primary);flex-shrink:0;}
.done-totals{margin-top:14px;padding-top:14px;border-top:1px solid var(--apps-theme-color-line);}
.done-total{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--apps-theme-color-ink-muted);line-height:1.5;}
.done-total + .done-total{margin-top:6px;}
.done-total strong{color:var(--apps-theme-color-ink);font-weight:700;}
.done-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;}
@media(max-width:620px){.done-steps{grid-template-columns:1fr;}}
.done-step{background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-lg);padding:18px 16px;text-align:left;}
.done-step .ds-ic{width:38px;height:38px;border-radius:10px;background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);display:flex;align-items:center;justify-content:center;margin-bottom:11px;}
.done-step .ds-ic svg{width:19px;height:19px;}
.done-step strong{display:block;font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--apps-theme-color-ink);margin-bottom:3px;}
.done-step small{font-size:12.5px;color:var(--apps-theme-color-ink-muted);line-height:1.45;}
.done-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:700;font-size:15px;
  padding:14px 26px;border-radius:var(--r-pill);transition:transform var(--t-base),background var(--t-base),box-shadow var(--t-base),color var(--t-base),border-color var(--t-base);white-space:nowrap;}
.btn svg{width:17px;height:17px;}
.btn-primary{background:var(--apps-theme-color-primary);color:#fff;}
.btn-primary:hover{background:var(--apps-theme-color-primary-deep);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.btn-ghost{background:transparent;color:var(--apps-theme-color-ink);border:1.5px solid var(--apps-theme-color-line);}
.btn-ghost:hover{border-color:var(--apps-theme-color-ink);}
.done-guides{text-align:left;margin:0 0 22px;}
.done-lbl{font-family:var(--font-display);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--apps-theme-color-ink-soft);margin:0 0 14px;}
.done-guide{background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:12px;}
.done-guide.is-single{padding:22px 24px;}
.done-guide summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:16px 20px;font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--apps-theme-color-ink);}
.done-guide summary::-webkit-details-marker{display:none;}
.done-guide-toggle{width:8px;height:8px;border-right:2px solid var(--apps-theme-color-ink-soft);border-bottom:2px solid var(--apps-theme-color-ink-soft);transform:rotate(45deg);transition:transform var(--t-fast);flex-shrink:0;margin-top:-4px;}
.done-guide[open] .done-guide-toggle{transform:rotate(225deg);margin-top:2px;}
.done-guide-body{padding:0 20px 20px;}
.done-nsteps{display:grid;gap:16px;}
.done-nstep{display:flex;gap:14px;}
.done-nstep .n{width:26px;height:26px;border-radius:50%;background:var(--apps-theme-color-sky);color:var(--apps-theme-color-primary);font-family:var(--font-display);font-weight:800;font-size:12.5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.done-nstep h3{font-family:var(--font-display);font-size:15px;font-weight:700;margin:0 0 3px;color:var(--apps-theme-color-ink);line-height:1.3;letter-spacing:0;}
.column.main .buy-flow .done-nstep h3{
  font-size:15px;font-weight:700;line-height:1.3;letter-spacing:0;color:var(--apps-theme-color-ink);margin:0 0 3px;
}
.done-nstep p{font-size:13.5px;color:var(--apps-theme-color-ink-muted);margin:0;line-height:1.55;}
.done-nstep p b{color:var(--apps-theme-color-ink);font-weight:700;}
.done-tip{margin-top:16px;background:var(--apps-theme-color-cream-soft);border-radius:var(--r-md);padding:13px 16px;font-size:13px;color:var(--apps-theme-color-ink-muted);line-height:1.55;text-align:left;}
.done-tip b{color:var(--apps-theme-color-ink);}
.done-mysims{background:var(--apps-theme-color-primary);color:#fff;border-radius:var(--r-xl);padding:30px 28px;text-align:center;margin:0 0 8px;}
.done-mysims h2{color:#fff;font-family:var(--font-display);font-size:20px;font-weight:800;margin:0 0 8px;line-height:1.25;}
.column.main .buy-flow .done-mysims h2{
  color:#fff;font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.015em;margin:0 0 8px;
}
.done-mysims p{font-size:14px;color:var(--apps-theme-color-sky);max-width:490px;margin:0 auto 18px;line-height:1.6;}
.done-mysims ul{list-style:none;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:0 0 20px;padding:0;}
.done-mysims li{font-size:12.5px;font-weight:700;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill);padding:7px 14px;}
.done-mysims .done-mysims-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--apps-theme-font-display);font-weight:700;font-size:15.5px;
  padding:15px 34px;border-radius:var(--apps-theme-radius-pill);border:0;text-decoration:none;
  background:#fff;background-color:#fff;color:var(--apps-theme-color-primary,#0B3F67);
  box-shadow:none;opacity:1;cursor:pointer;
  transition:background var(--apps-theme-duration-fast),transform var(--apps-theme-duration-fast),box-shadow var(--apps-theme-duration-fast),color var(--apps-theme-duration-fast);
}
.done-mysims .done-mysims-cta svg{width:18px;height:18px;flex-shrink:0;color:currentColor;}
.column.main .buy-flow .done-mysims a.done-mysims-cta,
.column.main .buy-flow .done-mysims a.done-mysims-cta:visited{
  background:#fff;background-color:#fff;color:var(--apps-theme-color-primary,#0B3F67);text-decoration:none;opacity:1;
}
.column.main .buy-flow .done-mysims a.done-mysims-cta:hover,
.column.main .buy-flow .done-mysims a.done-mysims-cta:focus,
.column.main .buy-flow .done-mysims a.done-mysims-cta:active{
  background:var(--apps-theme-color-cream-soft,#F8F5F0);
  background-color:var(--apps-theme-color-cream-soft,#F8F5F0);
  color:var(--apps-theme-color-primary,#0B3F67);
  text-decoration:none;opacity:1;
  transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,.22);
}
.done-help{text-align:center;font-size:13px;color:var(--apps-theme-color-ink-soft);margin:18px 0 0;line-height:1.7;}
.done-help a{font-weight:700;color:var(--apps-theme-color-sky-deep);}
.done-help .done-help-link{
  display:inline;padding:0;margin:0;border:0;background:none;cursor:pointer;
  font:inherit;font-weight:700;color:var(--apps-theme-color-sky-deep);
}
.done-help a:hover,
.done-help .done-help-link:hover{color:var(--apps-theme-color-primary);}
@media(max-width:620px){
  .done-card,.done-guide.is-single,.done-mysims{padding-left:18px;padding-right:18px;}
  .done-guide summary,.done-guide-body{padding-left:16px;padding-right:16px;}
  .done-actions .btn{width:100%;}
}

/* ============ BACK / CONTINUE BAR ============ */
.flow-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:760px;margin:26px auto 0;}
.step-narrow + .flow-bar,.step .flow-bar{margin-top:26px;}
.flow-back{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px;color:var(--apps-theme-color-ink-muted);padding:12px 18px;border-radius:var(--r-pill);transition:background var(--t-base),color var(--t-base);}
.flow-back svg{width:16px;height:16px;}
.flow-back:hover{background:var(--apps-theme-color-surface-alt);color:var(--apps-theme-color-ink);}
.flow-next{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-body);font-weight:800;font-size:15.5px;color:#fff;background:var(--apps-theme-color-primary);
  padding:14px 30px;border-radius:var(--r-pill);transition:background var(--t-base),transform var(--t-base),box-shadow var(--t-base);}
.flow-next svg{width:18px;height:18px;}
.flow-next:hover{background:var(--apps-theme-color-primary-deep);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.flow-next:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.flow-bar-wide{max-width:none;}

/* footer mini */
.co-foot{border-top:1px solid var(--apps-theme-color-line);background:#fff;padding:24px 0;margin-top:10px;}
.co-foot .container{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--apps-theme-color-ink-soft);}
.co-foot a{color:var(--apps-theme-color-ink-muted);font-weight:600;}
.co-foot .links{display:flex;gap:18px;flex-wrap:wrap;}

/* ===================================================================
   THEMES — selectable via Tweaks (data-theme on <html>)
   =================================================================== */
/* A · Harbor (default): white page, navy CTAs, cream summary card */
html[data-theme="harbor"]{--page-bg:#fff;--summary-bg:var(--apps-theme-color-cream-soft);--summary-border:transparent;--field-border:var(--apps-theme-color-line);}

/* B · Cloud: airy blue-grey page, white cards, sky-tinted summary */
html[data-theme="cloud"]{--page-bg:var(--apps-theme-color-surface);--summary-bg:#EAF3FC;--summary-border:rgba(105,205,255,.34);--field-border:#d8e3ee;}
html[data-theme="cloud"] .card{box-shadow:var(--shadow-md);}
html[data-theme="cloud"] body.apps-checkout-flow .page-main,
html[data-theme="cloud"] body.apps-buy-flow .page-main{
  background:radial-gradient(900px 500px at 85% -5%,rgba(184,212,232,.4),transparent 60%),var(--apps-theme-color-surface);
}

/* C · Midnight: dark navy summary sidebar, premium contrast */
html[data-theme="midnight"]{--page-bg:#fff;
  --summary-bg:var(--apps-theme-color-primary);--summary-border:transparent;
  --summary-ink:#fff;--summary-ink-2:rgba(220,231,240,.66);--summary-line:rgba(255,255,255,.14);
  --summary-accent:#fff;--field-border:var(--apps-theme-color-line);}
html[data-theme="midnight"] .li-thumb{background:rgba(255,255,255,.1);}
html[data-theme="midnight"] .li-qty{border-color:var(--apps-theme-color-primary);}
html[data-theme="midnight"] .disc-apply{background:var(--apps-theme-color-brand);}
html[data-theme="midnight"] .disc-apply:hover{background:var(--apps-theme-color-brand-deep);}
html[data-theme="midnight"] .summary-grand-value{color:var(--apps-theme-color-sky-mid);}
html[data-theme="midnight"] .trust .tp strong{color:#fff;}

@media print{.nav-wrap,.flow-bar,.tweaks-mount,.co-foot{display:none;}}


/* footer social (compact) */
.co-foot .foot-social{display:flex;gap:8px;align-items:center;}
.co-foot .foot-social a{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--apps-theme-color-line);color:var(--apps-theme-color-ink-soft);transition:color .14s,border-color .14s,transform .22s;}
.co-foot .foot-social a:hover{color:var(--apps-theme-color-primary);border-color:var(--apps-theme-color-primary);transform:translateY(-2px);}
.co-foot .foot-social svg{width:15px;height:15px;fill:currentColor;display:block;}

.checkout-flow .summary-row[hidden],
.checkout-flow .disc-idle[hidden],
.checkout-flow .disc-applied[hidden],
.checkout-flow .contact-email-editor[hidden] {
  display: none !important;
}
.checkout-flow .disc {
  display: block;
  border-top: 1px solid var(--summary-line, var(--apps-theme-color-line));
  border-bottom: 1px solid var(--summary-line, var(--apps-theme-color-line));
  margin: 6px 0 4px;
  padding: 0;
}
.checkout-flow .disc-body {
  padding: 0 0 14px;
}
.checkout-flow .disc-idle,
.checkout-flow .disc-row {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;
  align-items: center;
  padding: 0;
}
.checkout-flow .disc-idle .inp,
.checkout-flow .disc-row .inp {
  flex: 1;
  min-width: 0;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  padding-top: 0;
  padding-bottom: 0;
  box-sizing: border-box;
  line-height: 1.2;
}
.checkout-flow .disc-idle .disc-btn,
.checkout-flow .disc-row .disc-btn,
.checkout-flow .disc-idle button.disc-btn,
.checkout-flow .disc-row button.disc-btn {
  flex-shrink: 0;
  align-self: center;
  width: auto;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  padding: 0 18px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.checkout-flow .disc-applied {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: nowrap;
  min-width: 0;
  padding: 0 0 14px;
  line-height: 1.3;
}
.checkout-flow .disc-applied-label {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--apps-theme-color-green);
}
.checkout-flow .disc-applied-label strong {
  color: var(--summary-ink, var(--apps-theme-color-ink));
  margin: 0;
}
.checkout-flow [data-role="coupon-error"][hidden] {
  display: none !important;
  margin: 0 !important;
}
.checkout-flow .contact-email-editor {
  margin-top: 14px;
  padding: 14px 14px 12px;
  border: 1px solid var(--apps-theme-color-line);
  border-radius: var(--r-md);
  background: var(--apps-theme-color-cream-soft);
}
.checkout-flow [data-role="coupon-error"] {
  margin: 8px 0 0;
  color: var(--apps-theme-color-brand-deep);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.35;
}
.checkout-flow .pa-change {
  width: auto;
  flex-shrink: 0;
  margin-left: auto;
  align-self: center;
  background: var(--apps-theme-color-primary);
  color: #fff;
  border: 1.5px solid var(--apps-theme-color-primary);
  opacity: 1;
}
.checkout-flow .pa-change:hover,
.checkout-flow .pa-change:focus {
  background: var(--apps-theme-color-primary-deep);
  border-color: var(--apps-theme-color-primary-deep);
  color: #fff;
  opacity: 1;
}
.checkout-flow .pa-email-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  align-items: stretch;
  margin-top: 4px;
}
.checkout-flow .pa-email-actions .disc-btn {
  width: auto;
  min-width: 96px;
  height: 44px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.checkout-flow .disc-btn {
  flex-shrink: 0;
  width: auto;
  padding: 0 18px;
  height: 44px;
  border-radius: var(--r-md);
  background: var(--apps-theme-color-primary);
  color: #fff;
  font-weight: 700;
  font-size: 13.5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border: 1.5px solid transparent;
  line-height: 1;
}
.checkout-flow .disc-btn:hover { background: var(--apps-theme-color-primary-deep); }
.checkout-flow .disc-btn-ghost {
  background: transparent;
  color: var(--apps-theme-color-ink-muted);
  border: 1.5px solid var(--apps-theme-color-line);
}
.checkout-flow .disc-btn-ghost:hover {
  background: rgba(11, 63, 103, .06);
  color: var(--apps-theme-color-primary);
  border-color: var(--apps-theme-color-primary);
}
.checkout-flow .stripe-element-mount {
  min-height: 220px;
  padding: 8px 0 4px;
  overflow: visible;
}
.checkout-flow .pm-card-host {
  padding-top: 4px;
  overflow: visible;
  max-height: none;
}
.checkout-flow .pm.sel {
  overflow: visible;
}
.checkout-flow .pm.sel .pm-body {
  max-height: none;
  overflow: visible;
}

/*
 * Stripe Link auth modal lives in a top-level iframe/portal.
 * Keep document from growing horizontally; center common portal shells.
 */
body.apps-checkout-flow.stripe-link-open {
  overflow: hidden;
}
body.apps-checkout-flow iframe[name^="__privateStripeFrame"],
body.apps-checkout-flow iframe[src*="js.stripe.com"],
body.apps-checkout-flow iframe[src*="hooks.stripe.com"] {
  max-width: 100vw;
}
body.apps-checkout-flow div[data-testid="link-modal-container"],
body.apps-checkout-flow .p-LinkModal-container,
body.apps-checkout-flow [class*="LinkModal-container"],
body.apps-checkout-flow [class*="linkModal-container"] {
  position: fixed;
  inset: 0;
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  max-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10060;
  box-sizing: border-box;
  overflow: auto;
  margin: 0;
  left: 0;
  top: 0;
  transform: none;
}

.checkout-flow .pm-wallet-host { padding-top: 8px; }
.checkout-flow .wallet-button-mount { min-height: 44px; }
.checkout-flow .pm-wallet-note { margin-top: 10px; }
.checkout-flow .pay-wallet-hint {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--apps-theme-color-ink-muted);
  text-align: center;
}
.checkout-flow .apple-pay-button {
  display: block;
  width: 100%;
  height: 44px;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  -webkit-appearance: -apple-pay-button;
  -apple-pay-button-type: plain;
  -apple-pay-button-style: black;
}

.checkout-flow .reward {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--apps-theme-color-line);
}
.checkout-flow .reward-h {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  font-size: 13px;
  font-weight: 700;
  color: var(--apps-theme-color-ink-muted);
  margin-bottom: 8px;
}
.checkout-flow .reward-bal { font-weight: 600; color: var(--apps-theme-color-ink-soft); }
.checkout-flow .reward-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.checkout-flow .reward-row .inp {
  flex: 1;
  min-width: 100px;
  height: 44px;
}
.checkout-flow .reward-hint {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--apps-theme-color-ink-soft);
}

/* Design-station RORO Points card (recharge.css .rwpts*) */
.checkout-flow .rwpts {
  border-bottom: 1px solid var(--summary-line, var(--apps-theme-color-line));
  margin: 0 0 2px;
  padding: 2px 0 14px;
}
.checkout-flow .rwpts-card {
  background: rgba(11, 63, 103, .045);
  border: 1px solid var(--summary-line, var(--apps-theme-color-line));
  border-radius: var(--apps-theme-radius-md, 12px);
  padding: 13px 14px;
}
.checkout-flow .rwpts-card.locked { opacity: .7; }
.checkout-flow .rwpts-h {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(max-content, auto);
  gap: 10px;
  align-items: center;
}
.checkout-flow .rwpts-ic {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--summary-accent, var(--apps-theme-color-primary));
  color: #fff;
}
.checkout-flow .rwpts-ic svg { width: 16px; height: 16px; }
.checkout-flow .rwpts-ht { min-width: 0; }
.checkout-flow .rwpts-ht strong {
  display: block;
  font-family: var(--apps-theme-font-display, inherit);
  font-weight: 800;
  font-size: 13.5px;
  color: var(--summary-ink, var(--apps-theme-color-ink));
  line-height: 1.35;
}
.checkout-flow .rwpts-ht small {
  display: block;
  font-size: 11px;
  color: var(--summary-ink-2, var(--apps-theme-color-ink-soft));
  margin-top: 2px;
  line-height: 1.35;
}
.checkout-flow .rwpts-h-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  justify-content: flex-end;
  min-width: max-content;
}
.checkout-flow .rwpts-amt-wrap {
  flex-shrink: 0;
  text-align: right;
}
.checkout-flow .rwpts-amt {
  display: block;
  font-family: var(--apps-theme-font-display, inherit);
  font-weight: 800;
  font-size: 14px;
  color: var(--apps-theme-color-green);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.checkout-flow .rwpts-tog {
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: var(--apps-theme-color-line);
  position: relative;
  flex-shrink: 0;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background var(--apps-theme-duration-fast, 140ms);
}
.checkout-flow .rwpts-tog.on { background: var(--apps-theme-color-green); }
.checkout-flow .rwpts-tog-knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.22);
  transition: transform var(--apps-theme-duration-fast, 140ms);
}
.checkout-flow .rwpts-tog.on .rwpts-tog-knob { transform: translateX(18px); }
.checkout-flow .rwpts-card.is-loading,
.checkout-flow .rwpts.is-busy .rwpts-card {
  position: relative;
  pointer-events: none;
  cursor: wait;
  opacity: .72;
}
.checkout-flow .rwpts-card.is-loading::after {
  content: '';
  position: absolute;
  top: 12px;
  right: 14px;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(11, 63, 103, .2);
  border-top-color: var(--summary-accent, var(--apps-theme-color-primary));
  border-radius: 50%;
  animation: buy-flow-spin .7s linear infinite;
}
.checkout-flow .rwpts-tog:disabled,
.checkout-flow .rwpts-tog[aria-busy="true"] {
  cursor: wait;
  opacity: .85;
}
.checkout-flow .rwpts-slider { margin-top: 12px; }
.checkout-flow .rwpts-slider input[type=range] {
  width: 100%;
  accent-color: var(--summary-accent, var(--apps-theme-color-primary));
  height: 22px;
  cursor: pointer;
  margin: 0;
}
.checkout-flow .rwpts-scale {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--summary-ink-2, var(--apps-theme-color-ink-soft));
  margin-top: 4px;
}
.checkout-flow .rwpts-scale-min {
  text-align: left;
  font-variant-numeric: tabular-nums;
}
.checkout-flow .rwpts-scale-max {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.checkout-flow .rwpts-cur {
  font-size: 11px;
  font-weight: 700;
  color: var(--summary-ink, var(--apps-theme-color-ink));
  text-align: center;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
  padding: 0 4px;
}
.checkout-flow .rwpts-slider.is-previewing .rwpts-cur {
  color: var(--summary-accent, var(--apps-theme-color-primary));
}
.checkout-flow .rwpts-fine,
.checkout-flow .rwpts-lock {
  display: flex;
  gap: 6px;
  align-items: flex-start;
  font-size: 11px;
  color: var(--summary-ink-2, var(--apps-theme-color-ink-soft));
  margin-top: 9px;
  line-height: 1.4;
}
.checkout-flow .rwpts-fine[hidden],
.checkout-flow .rwpts-lock[hidden] {
  display: none;
}
.checkout-flow .rwpts-fine svg,
.checkout-flow .rwpts-lock svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  margin-top: 1px;
}
.checkout-flow .rwpts-lock svg { color: var(--apps-theme-color-yellow); }
.checkout-flow .rwpts-earn {
  display: flex;
  gap: 7px;
  align-items: center;
  font-size: 11.5px;
  color: var(--summary-ink-2, var(--apps-theme-color-ink-muted));
  margin-top: 11px;
  line-height: 1.4;
}
.checkout-flow .rwpts-earn svg {
  width: 13px;
  height: 13px;
  color: var(--apps-theme-color-yellow);
  flex-shrink: 0;
}
.checkout-flow .rwpts-earn b {
  color: var(--summary-ink, var(--apps-theme-color-ink));
  font-weight: 800;
}
.checkout-flow .disc.locked .disc-idle,
.checkout-flow .disc.locked .disc-row { opacity: .55; pointer-events: none; }
.checkout-flow .disc.locked .disc-toggle { opacity: .7; cursor: not-allowed; }

/* ---- Responsive: payment contact / summary / actions ---- */
@media (max-width: 959px) {
  .checkout-flow .summary { position: static; top: auto; }
}
@media (max-width: 760px) {
  .checkout-flow .card-pad { padding: 18px 16px 16px; }
  .checkout-flow .pa-email-actions {
    width: 100%;
  }
  .checkout-flow .pa-email-actions .disc-btn {
    flex: 1 1 auto;
    min-width: 0;
  }
  .checkout-flow .disc-idle,
  .checkout-flow .disc-row {
    flex-wrap: wrap;
  }
  .checkout-flow .disc-idle .inp,
  .checkout-flow .disc-row .inp {
    min-width: 0;
    width: 100%;
    flex: 1 1 100%;
  }
  .checkout-flow .disc-idle .disc-btn,
  .checkout-flow .disc-row .disc-btn,
  .checkout-flow .disc-row .disc-apply {
    width: 100%;
    max-width: none;
  }
  .checkout-flow .reward-row {
    align-items: stretch;
  }
  .checkout-flow .reward-row .inp {
    flex: 1 1 100%;
    min-width: 0;
  }
  .checkout-flow .li {
    flex-wrap: wrap;
  }
  .checkout-flow .li-price {
    margin-left: auto;
  }
}
@media (max-width: 560px) {
  .checkout-flow .opc-progress { gap: 6px; }
  .checkout-flow .pay-sec-h { font-size: 17px; }
  .checkout-flow .summary-h { font-size: 16px; }
  .checkout-flow .pa-email-actions {
    flex-direction: row;
    flex-wrap: nowrap;
  }
}

/* ===== My SIMs - Points tab (design-station aligned; no preview switchers) ===== */
/* ============================================================
   RORO Rewards — points & commission module for My SIMs
   Brand system: navy / cream / sky. Tokens from page head.
   ============================================================ */

/* ---------- shared section frame ---------- */
.apps-theme-mysims .rw-wrap{background:var(--apps-theme-color-surface);border-bottom:1px solid var(--apps-theme-color-line);}
/*
 * Partner + traveler share .rw-wrap > .container.
 * Only adjust vertical rhythm — horizontal gutters come from
 * .column.main .container (do not use padding shorthand here).
 */
.apps-theme-mysims .rw-wrap .container,
.column.main .apps-theme-mysims .rw-wrap .container,
body.apps-card-dashboard .column.main .apps-theme-mysims .rw-wrap .container{
  padding-top:34px;
  padding-bottom:36px;
}
@media (max-width:768px){
  .apps-theme-mysims .rw-wrap .container,
  .column.main .apps-theme-mysims .rw-wrap .container,
  body.apps-card-dashboard .column.main .apps-theme-mysims .rw-wrap .container{
    padding-top:28px;
    padding-bottom:32px;
  }
}
.apps-theme-mysims .rw-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:20px;text-align:left;}
.apps-theme-mysims .rw-head-l{min-width:0;width:100%;text-align:left;}
.apps-theme-mysims .rw-eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:800;
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--apps-theme-color-primary);margin:0 0 7px;line-height:1.2;}
.apps-theme-mysims .rw-eyebrow svg{width:14px;height:14px;max-width:14px;max-height:14px;flex-shrink:0;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rw-head h2,
.column.main .apps-theme-mysims .rw-head h2,
body.apps-card-dashboard .column.main .apps-theme-mysims .rw-head h2{
  font-family:var(--font-display);font-weight:800;font-size:clamp(22px,2.6vw,28px);
  letter-spacing:-.02em;color:var(--apps-theme-color-ink);line-height:1.1;margin:0;padding:0;text-align:left;
}
.apps-theme-mysims .rw-head p,
.column.main .apps-theme-mysims .rw-head p,
body.apps-card-dashboard .column.main .apps-theme-mysims .rw-head p{
  font-size:14px;font-weight:400;color:var(--apps-theme-color-ink-muted);margin:6px 0 0;padding:0;max-width:560px;line-height:1.5;text-align:left;
}

/* layout toggle (commission only) */
.apps-theme-mysims .rw-layout-toggle{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.apps-theme-mysims .rw-layout-toggle .lt-lbl{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rw-lt-seg{display:flex;gap:4px;background:#fff;padding:4px;border-radius:var(--r-pill);border:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-lt-seg button{font-family:var(--font-body);font-weight:700;font-size:12.5px;padding:7px 14px;border-radius:var(--r-pill);
  color:var(--apps-theme-color-ink-muted);cursor:pointer;border:none;background:none;transition:background var(--t-fast),color var(--t-fast);}
.apps-theme-mysims .rw-lt-seg button.on{background:var(--apps-theme-color-primary);color:#fff;}

/* ---------- balance hero card ---------- */
.apps-theme-mysims .rw-balance{background:linear-gradient(135deg,var(--apps-theme-color-primary) 0%,#13456f 60%,var(--apps-theme-color-primary-deep) 100%);
  border-radius:var(--r-xl);padding:26px 28px;color:#fff;position:relative;overflow:hidden;}
.apps-theme-mysims .rw-balance::before{content:"";position:absolute;inset:0;
  background:radial-gradient(420px 240px at 92% -20%,rgba(105,205,255,.28),transparent 60%);pointer-events:none;}
.apps-theme-mysims .rw-balance>*{position:relative;z-index:1;}
.apps-theme-mysims .rw-bal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.apps-theme-mysims .rw-bal-lbl{font-family:var(--font-display);font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(185,219,254,.85);display:flex;align-items:center;gap:7px;}
.apps-theme-mysims .rw-bal-lbl svg{width:15px;height:15px;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rw-bal-num{font-family:var(--font-display);font-weight:800;font-size:clamp(38px,5.5vw,52px);line-height:1;
  letter-spacing:-.03em;margin-top:10px;display:flex;align-items:baseline;gap:10px;}
.apps-theme-mysims .rw-bal-num .pts{font-size:.42em;font-weight:700;color:rgba(220,231,240,.7);letter-spacing:0;}
.apps-theme-mysims .rw-bal-usd{font-size:14px;color:rgba(220,231,240,.78);margin-top:9px;}
.apps-theme-mysims .rw-bal-usd b{color:#fff;font-weight:800;}
.apps-theme-mysims .rw-bal-cta{display:flex;flex-direction:column;align-items:flex-end;gap:9px;}
.apps-theme-mysims .rw-bal-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill);padding:7px 14px;font-size:12px;font-weight:700;color:#fff;}
.apps-theme-mysims .rw-bal-chip svg{width:13px;height:13px;}
/* Points CTAs — neutralize apps.css button{width:100%} / a{font-size} */
.apps-theme-mysims .rw-btn,
.apps-theme-mysims a.rw-btn,
.column.main .apps-theme-mysims .rw-btn,
.column.main .apps-theme-mysims a.rw-btn,
body.apps-card-dashboard .column.main .apps-theme-mysims a.rw-btn,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:auto;max-width:100%;height:auto;min-height:0;line-height:1.2;
  font-family:var(--font-body);font-weight:800;font-size:14px;padding:12px 22px;
  border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;text-decoration:none;
  border:0 solid transparent;box-shadow:none;opacity:1;box-sizing:border-box;
  transition:transform var(--t-base),box-shadow var(--t-base),background var(--t-base),border-color var(--t-base),color var(--t-base);
}
.apps-theme-mysims .rw-btn svg,
.apps-theme-mysims a.rw-btn svg{width:16px;height:16px;max-width:16px;max-height:16px;flex-shrink:0;display:block;}
.apps-theme-mysims .rw-btn-white,
.apps-theme-mysims a.rw-btn-white{background:#fff;background-color:#fff;color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-btn-white:hover,
.apps-theme-mysims a.rw-btn-white:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.26);background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);opacity:1;}
.apps-theme-mysims .rw-btn-navy,
.apps-theme-mysims a.rw-btn-navy{background:var(--apps-theme-color-primary);background-color:var(--apps-theme-color-primary);color:#fff;}
.apps-theme-mysims .rw-btn-navy:hover{background:var(--apps-theme-color-primary-deep);transform:translateY(-1px);box-shadow:var(--shadow-md);color:#fff;opacity:1;}
.apps-theme-mysims .rw-btn.is-loading{
  position:relative;opacity:.78;pointer-events:none;cursor:wait;
}
.apps-theme-mysims .rw-btn.is-loading::after{
  content:'';display:inline-block;width:14px;height:14px;margin-left:8px;
  border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;
  vertical-align:-2px;animation:buy-flow-spin .7s linear infinite;
}
.apps-theme-mysims .rw-btn-outline.is-loading::after{
  border-color:rgba(11,63,103,.2);border-top-color:#0B3F67;
}
.apps-theme-mysims .rw-btn-outline{background:#fff;color:var(--apps-theme-color-ink);border:1.5px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-btn-outline:hover{border-color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rw-btn-ghost-w,
.apps-theme-mysims a.rw-btn-ghost-w{
  background:rgba(255,255,255,.12);background-color:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);
}
.apps-theme-mysims .rw-btn-ghost-w:hover,
.apps-theme-mysims a.rw-btn-ghost-w:hover{background:rgba(255,255,255,.2);color:#fff;opacity:1;}
.apps-theme-mysims .rw-btn-disabled{opacity:.45;cursor:not-allowed;}
.apps-theme-mysims .rw-btn-disabled:hover{transform:none;box-shadow:none;background:#fff;}
.apps-theme-mysims .rw-btn-block,
.apps-theme-mysims a.rw-btn-block,
.column.main .apps-theme-mysims a.rw-btn-block{width:100%;max-width:100%;}

/* tier progress (inside balance card) */
.apps-theme-mysims .rw-tier{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);}
.apps-theme-mysims .rw-tier-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;}
.apps-theme-mysims .rw-tier-now{display:flex;align-items:center;gap:9px;}
.apps-theme-mysims .rw-tier-badge{display:inline-flex;align-items:center;gap:6px;background:var(--apps-theme-color-yellow);color:#5a4205;
  font-family:var(--font-display);font-weight:800;font-size:11px;letter-spacing:.03em;padding:5px 12px;border-radius:var(--r-pill);}
.apps-theme-mysims .rw-tier-badge svg{width:13px;height:13px;}
.apps-theme-mysims .rw-tier-rate{font-family:var(--font-display);font-weight:800;font-size:15px;color:#fff;}
.apps-theme-mysims .rw-tier-rate small{font-size:11px;font-weight:700;color:rgba(220,231,240,.65);}
.apps-theme-mysims .rw-tier-next{font-size:11.5px;color:rgba(220,231,240,.7);text-align:right;}
.apps-theme-mysims .rw-tier-next b{color:#fff;font-weight:800;}
.apps-theme-mysims .rw-tier-bar{height:9px;border-radius:5px;background:rgba(255,255,255,.16);overflow:hidden;position:relative;}
.apps-theme-mysims .rw-tier-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--apps-theme-color-sky-mid),var(--apps-theme-color-yellow));
  transition:width 1s var(--ease-out);}
.apps-theme-mysims .rw-tier-ticks{display:flex;justify-content:space-between;margin-top:7px;font-size:10.5px;color:rgba(220,231,240,.55);font-weight:700;}
.apps-theme-mysims .rw-tier-ticks span.done{color:var(--apps-theme-color-sky-mid);}

/* ---------- KPI stat cards ---------- */
.apps-theme-mysims .rw-kpis{display:grid;gap:14px;margin-top:16px;}
.apps-theme-mysims .rw-kpis.cols-3{grid-template-columns:repeat(3,1fr);}
.apps-theme-mysims .rw-kpis.cols-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:760px){.apps-theme-mysims .rw-kpis.cols-3,.apps-theme-mysims .rw-kpis.cols-4{grid-template-columns:repeat(2,1fr);}}
.apps-theme-mysims .rw-kpi{background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-xs);}
.apps-theme-mysims .rw-kpi-lbl{font-size:11.5px;font-weight:700;color:var(--apps-theme-color-ink-soft);display:flex;align-items:center;gap:6px;}
.apps-theme-mysims .rw-kpi-lbl svg{width:13px;height:13px;color:var(--apps-theme-color-sky-deep);}
.apps-theme-mysims .rw-kpi-val{font-family:var(--font-display);font-weight:800;font-size:26px;letter-spacing:-.02em;color:var(--apps-theme-color-ink);
  line-height:1;margin-top:9px;}
.apps-theme-mysims .rw-kpi-val .u{font-size:.5em;font-weight:700;color:var(--apps-theme-color-ink-soft);margin-left:3px;}
.apps-theme-mysims .rw-kpi-sub{font-size:11.5px;color:var(--apps-theme-color-ink-soft);margin-top:6px;}
.apps-theme-mysims .rw-kpi-sub.up{color:var(--apps-theme-color-green);font-weight:700;}

/* ---------- generic panel ---------- */
.apps-theme-mysims .rw-panel{background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;}
.apps-theme-mysims .rw-panel-pad{padding:20px 22px;}
.apps-theme-mysims .rw-panel-h{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:800;font-size:14px;
  color:var(--apps-theme-color-ink);margin-bottom:4px;}
.apps-theme-mysims .rw-panel-h svg{width:17px;height:17px;color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-panel-sub{font-size:12.5px;color:var(--apps-theme-color-ink-soft);line-height:1.5;margin-bottom:16px;}
.apps-theme-mysims .rw-panel-note{font-size:12px;color:var(--apps-theme-color-ink-soft);line-height:1.45;margin:-8px 0 16px;opacity:.92;}

.apps-theme-mysims .rw-grid-2{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-top:16px;align-items:start;}
@media(max-width:880px){.apps-theme-mysims .rw-grid-2{grid-template-columns:1fr;}}

/* attribution tools — code + link + qr */
.apps-theme-mysims .rw-tool{min-width:0;max-width:100%;margin-bottom:18px;}
.apps-theme-mysims .rw-tool:last-child{margin-bottom:0;}
.apps-theme-mysims .rw-tool-lbl{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--apps-theme-color-ink-muted);
  display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.apps-theme-mysims .rw-tool-lbl svg{width:13px;height:13px;max-width:13px;max-height:13px;flex-shrink:0;color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-ref-share{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:2px;min-width:0;width:100%;
}
@media(max-width:560px){
  .apps-theme-mysims .rw-ref-share{grid-template-columns:1fr;}
}
/* Copy row — must beat apps.css `button{width:100%}` (same pattern as .theme-button) */
.apps-theme-mysims .rw-copy,
.column.main .apps-theme-mysims .rw-copy,
body.apps-card-dashboard .column.main .apps-theme-mysims .rw-copy{
  display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;
  background:var(--apps-theme-color-surface);border:1px solid var(--apps-theme-color-line);border-radius:var(--r-md);
  padding:11px 11px 11px 15px;min-width:0;width:100%;max-width:100%;box-sizing:border-box;
}
.apps-theme-mysims .rw-copy-val,
.apps-theme-mysims .rw-copy .cv,
.column.main .apps-theme-mysims .rw-copy-val,
.column.main .apps-theme-mysims .rw-copy .cv,
body.apps-card-dashboard .column.main .apps-theme-mysims .rw-copy-val{
  flex:1 1 0%;min-width:0;max-width:none;width:auto;display:block;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px;font-weight:700;
  color:var(--apps-theme-color-ink);letter-spacing:.01em;line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  word-break:normal;overflow-wrap:normal;hyphens:none;
}
.apps-theme-mysims .rw-copy.is-code .rw-copy-val,
.apps-theme-mysims .rw-copy.is-code .cv{font-size:18px;letter-spacing:.08em;color:var(--apps-theme-color-primary);white-space:nowrap;}
.apps-theme-mysims .rw-copy-btn,
.column.main .apps-theme-mysims .rw-copy-btn,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn{
  flex:0 0 auto;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  width:auto;max-width:none;min-width:0;height:auto;min-height:0;line-height:1.2;
  font-family:var(--font-body);font-weight:800;font-size:12.5px;color:#fff;
  background:var(--apps-theme-color-primary);background-color:var(--apps-theme-color-primary);border:0 solid transparent;
  border-radius:var(--r-sm);padding:9px 15px;cursor:pointer;white-space:nowrap;
  box-shadow:none;opacity:1;transition:background var(--t-fast);
}
.apps-theme-mysims .rw-copy-btn svg,
.column.main .apps-theme-mysims .rw-copy-btn svg,
body.apps-card-dashboard .column.main .apps-theme-mysims .rw-copy-btn svg{
  width:13px;height:13px;max-width:13px;max-height:13px;flex-shrink:0;display:block;
}
.apps-theme-mysims .rw-copy-btn:hover,
.apps-theme-mysims .rw-copy-btn:focus,
.apps-theme-mysims .rw-copy-btn:active,
.column.main .apps-theme-mysims .rw-copy-btn:hover,
.column.main .apps-theme-mysims .rw-copy-btn:focus,
.column.main .apps-theme-mysims .rw-copy-btn:active,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn:focus,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn:active{
  background:var(--apps-theme-color-primary-deep);background-color:var(--apps-theme-color-primary-deep);color:#fff;opacity:1;border:0 solid transparent;
}
.apps-theme-mysims .rw-copy-btn.done,
.column.main .apps-theme-mysims .rw-copy-btn.done,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn.done,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn.done:hover,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn.done:focus,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rw-copy-btn.done:active{
  background:var(--apps-theme-color-green);background-color:var(--apps-theme-color-green);color:#fff;opacity:1;border:0 solid transparent;
}
.apps-theme-mysims .rw-tool-hint{font-size:11.5px;color:var(--apps-theme-color-ink-soft);margin-top:7px;line-height:1.45;}
.apps-theme-mysims .rw-tool-hint b{color:var(--apps-theme-color-ink-muted);font-weight:700;}

.apps-theme-mysims .rw-qr-block{display:flex;align-items:center;gap:16px;background:var(--apps-theme-color-cream-soft);border-radius:var(--r-md);padding:14px 16px;margin-top:10px;}
.apps-theme-mysims .rw-qr{width:96px;height:96px;flex-shrink:0;background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:10px;padding:8px;box-sizing:border-box;}
.apps-theme-mysims .rw-qr svg,
.apps-theme-mysims .rw-qr img{width:100%;height:100%;display:block;object-fit:contain;}
.apps-theme-mysims .rw-qr-txt{font-size:12px;color:var(--apps-theme-color-ink-muted);line-height:1.5;}
.apps-theme-mysims .rw-qr-txt b{font-weight:800;color:var(--apps-theme-color-ink);}
.apps-theme-mysims .rw-qr-dl{display:inline-block;margin-top:6px;font-weight:800;color:var(--apps-theme-color-primary);text-decoration:underline;}
.apps-theme-mysims .rw-qr-dl:hover{color:var(--apps-theme-color-primary-deep);}

/* attribution methods explainer chips */
.apps-theme-mysims .rw-methods{display:flex;flex-direction:column;gap:10px;}
.apps-theme-mysims .rw-method{display:flex;gap:12px;align-items:flex-start;}
.apps-theme-mysims .rw-method-ic{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-method-ic svg{width:17px;height:17px;}
.apps-theme-mysims .rw-method-t{font-size:13px;font-weight:800;color:var(--apps-theme-color-ink);}
.apps-theme-mysims .rw-method-d{font-size:11.5px;color:var(--apps-theme-color-ink-soft);line-height:1.45;margin-top:2px;}

/* ---------- attributed cards table ---------- */
.apps-theme-mysims .rw-table{width:100%;border-collapse:collapse;}
.apps-theme-mysims .rw-table th{text-align:left;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:var(--apps-theme-color-ink-soft);padding:0 12px 10px;border-bottom:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-table th.r,.apps-theme-mysims .rw-table td.r{text-align:right;}
.apps-theme-mysims .rw-table td{padding:13px 12px;border-bottom:1px solid var(--apps-theme-color-line);font-size:13px;color:var(--apps-theme-color-ink);vertical-align:middle;}
.apps-theme-mysims .rw-table tr:last-child td{border-bottom:none;}
.apps-theme-mysims .rw-table tr:hover td{background:var(--apps-theme-color-surface);}
.apps-theme-mysims .rw-iccid{font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;color:var(--apps-theme-color-ink-muted);font-variant-numeric:tabular-nums;}
.apps-theme-mysims .rw-dest{font-weight:700;}
.apps-theme-mysims .rw-src{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.02em;
  padding:4px 9px;border-radius:var(--r-pill);white-space:nowrap;}
.apps-theme-mysims .rw-src svg{width:11px;height:11px;}
.apps-theme-mysims .rw-src-code{background:#E8F1FB;color:var(--apps-theme-color-sky-deep);}
.apps-theme-mysims .rw-src-link{background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-src-tag{background:#FFF3DF;color:#B7791F;}
.apps-theme-mysims .rw-src-unknown{background:var(--apps-theme-color-surface);color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rw-earn{font-family:var(--font-display);font-weight:800;color:var(--apps-theme-color-green);}
.apps-theme-mysims .rw-recharges{font-weight:700;color:var(--apps-theme-color-ink-muted);}
.apps-theme-mysims .rw-table-wrap{overflow-x:auto;}
.apps-theme-mysims .rw-td-main{font-weight:700;color:var(--apps-theme-color-ink);}
.apps-theme-mysims .rw-td-sub{font-size:11.5px;color:var(--apps-theme-color-ink-soft);margin-top:2px;}
.apps-theme-mysims .rw-pill{display:inline-block;padding:4px 9px;border-radius:var(--r-pill);font-size:10.5px;font-weight:800;
  letter-spacing:.02em;background:#E8F1FB;color:var(--apps-theme-color-sky-deep);}
.apps-theme-mysims .rw-pill-warn{background:#FFF3DF;color:#B7791F;}
.apps-theme-mysims .rw-table tr.is-rejected td{opacity:.92;}
.apps-theme-mysims .rw-td-main.is-struck,.apps-theme-mysims .rw-td-sub.is-struck,
.apps-theme-mysims .rw-act-amt.is-struck{text-decoration:line-through;opacity:.62;}
.apps-theme-mysims .rw-act.is-struck .rw-act-t{opacity:.85;}
.apps-theme-mysims .rw-tiers-table tr.is-you td{background:var(--apps-theme-color-cream-soft);}
.apps-theme-mysims .rw-tiers-table tr.is-you:hover td{background:var(--apps-theme-color-cream-soft);}
.apps-theme-mysims .rw-tiers-table .rw-team-tier{background:var(--apps-theme-color-sky);color:var(--apps-theme-color-sky-deep);}

/* ---------- activity feed ---------- */
.apps-theme-mysims [data-rw-pager-section] {
    position: relative;
}
.apps-theme-mysims [data-rw-pager-section].is-loading .rw-feed,
.apps-theme-mysims [data-rw-pager-section].is-loading .rp-feed,
.apps-theme-mysims [data-rw-pager-section].is-loading .rw-table-wrap,
.apps-theme-mysims [data-rw-pager-section].is-loading .rp-empty,
.apps-theme-mysims [data-rw-pager-section].is-loading .rw-tool-hint {
    opacity: .42;
    transition: opacity .2s ease;
}
.apps-theme-mysims [data-rw-pager-section].is-loading .pager-link[data-page] {
    pointer-events: none;
    cursor: wait;
}
.apps-theme-mysims [data-rw-pager-section] .pager.is-busy .pager-meta {
    opacity: .55;
}
.apps-theme-mysims .rw-pager-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(255, 255, 255, .78);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease;
    border-radius: var(--r-md, 8px);
    min-height: 96px;
    pointer-events: auto;
}
.apps-theme-mysims .rw-pager-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}
.apps-theme-mysims .rw-pager-spinner {
    width: 22px;
    height: 22px;
    border: 2px solid rgba(11, 63, 103, .18);
    border-top-color: var(--apps-theme-color-primary);
    border-radius: 50%;
    animation: buy-flow-spin .7s linear infinite;
    flex-shrink: 0;
}
.apps-theme-mysims .rw-pager-loading-text {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--apps-theme-color-ink-muted);
}
.apps-theme-mysims .rw-pager-fade-in {
    animation: rwPagerFadeIn .38s ease-out;
}
@keyframes rwPagerFadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.apps-theme-mysims .rw-feed{display:flex;flex-direction:column;}
.apps-theme-mysims .rw-act{display:flex;gap:13px;align-items:center;padding:13px 0;border-bottom:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-act:last-child{border-bottom:none;}
.apps-theme-mysims .rw-act-ic{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.apps-theme-mysims .rw-act-ic svg{width:16px;height:16px;max-width:16px;max-height:16px;display:block;}
.apps-theme-mysims .rw-act-earn{background:#E8F5EA;color:var(--apps-theme-color-green);}
.apps-theme-mysims .rw-act-redeem{background:#E8F1FB;color:var(--apps-theme-color-sky-deep);}
.apps-theme-mysims .rw-act-ref{background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-act-attr{background:#FFF3DF;color:#B7791F;}
.apps-theme-mysims .rw-act-pipeline{background:#FFF8E8;color:#9A6700;}
.apps-theme-mysims .rw-act-bonus{background:#FBEAF2;color:var(--apps-theme-color-peony);}
.apps-theme-mysims .rw-act-body{flex:1;min-width:0;}
.apps-theme-mysims .rw-act-t{font-size:13px;font-weight:700;color:var(--apps-theme-color-ink);line-height:1.4;}
.apps-theme-mysims .rw-act-t b{font-weight:800;}
.apps-theme-mysims .rw-act-meta{font-size:11px;color:var(--apps-theme-color-ink-soft);margin-top:2px;}
.apps-theme-mysims .rw-act-order{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:4px;font-size:11px;color:var(--apps-theme-color-ink-muted);}
.apps-theme-mysims .rw-act.is-pipeline .rw-act-t{color:#7A5A00;}
.apps-theme-mysims .account-order-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;}
.apps-theme-mysims .rw-act-amt{font-family:var(--font-display);font-weight:800;font-size:14px;white-space:nowrap;flex-shrink:0;min-width:84px;text-align:right;}
.apps-theme-mysims .rw-act-amt.pos{color:var(--apps-theme-color-green);}
.apps-theme-mysims .rw-act-amt.neg{color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rw-act-amt.pending{color:#9A6700;}
.apps-theme-mysims .rw-act-amt-note{display:block;font-family:var(--font-body,inherit);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--apps-theme-color-ink-faint);margin-top:1px;}
.apps-theme-mysims .rw-act-bal{flex-shrink:0;min-width:92px;display:flex;flex-direction:column;align-items:flex-end;gap:1px;
  padding-left:14px;margin-left:6px;border-left:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-act-bal .bl{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apps-theme-color-ink-faint);}
.apps-theme-mysims .rw-act-bal .bv{font-family:var(--font-display);font-weight:800;font-size:13px;color:var(--apps-theme-color-ink-muted);font-variant-numeric:tabular-nums;}
.apps-theme-mysims .rw-act-bal .bv.dash{color:var(--apps-theme-color-ink-faint);font-weight:700;}
@media(max-width:560px){
  .apps-theme-mysims .rw-act-amt{min-width:64px;}
  .apps-theme-mysims .rw-act-bal{min-width:68px;padding-left:9px;margin-left:3px;}
  .apps-theme-mysims .rw-act-bal .bl{display:none;}
  .apps-theme-mysims .rw-act-bal .bv{font-size:12px;}
}

/* ---------- referral panel (traveler) ---------- */
.apps-theme-mysims .rw-ref{background:linear-gradient(135deg,var(--apps-theme-color-cream) 0%,#fff 100%);border:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-ref-stats{display:flex;gap:0;margin-top:14px;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-md);overflow:hidden;background:#fff;}
.apps-theme-mysims .rw-ref-stat{flex:1;padding:13px 16px;border-right:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-ref-stat:last-child{border-right:none;}
.apps-theme-mysims .rw-ref-stat .v{font-family:var(--font-display);font-weight:800;font-size:21px;color:var(--apps-theme-color-ink);line-height:1;}
.apps-theme-mysims .rw-ref-stat .l{font-size:11px;color:var(--apps-theme-color-ink-soft);margin-top:5px;}

/* ---------- apply-to-affiliate banner ---------- */
.apps-theme-mysims .rw-apply{display:flex;align-items:center;gap:18px;background:var(--apps-theme-color-primary);border-radius:var(--r-xl);
  padding:22px 26px;color:#fff;position:relative;overflow:hidden;flex-wrap:wrap;}
.apps-theme-mysims .rw-apply::before{content:"";position:absolute;inset:0;
  background:radial-gradient(360px 200px at 95% 120%,rgba(105,205,255,.25),transparent 60%);pointer-events:none;}
.apps-theme-mysims .rw-apply>*{position:relative;z-index:1;}
.apps-theme-mysims .rw-apply-ic{width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.apps-theme-mysims .rw-apply-ic svg{width:24px;height:24px;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rw-apply-txt{flex:1;min-width:200px;}
.apps-theme-mysims .rw-apply-txt h3{font-family:var(--font-display);font-weight:800;font-size:18px;color:#fff;line-height:1.2;margin:0;}
.apps-theme-mysims .rw-apply-txt p{font-size:13px;color:rgba(220,231,240,.78);margin:5px 0 0;line-height:1.5;max-width:520px;}
.apps-theme-mysims .rw-apply .rw-btn,
.apps-theme-mysims .rw-apply a.rw-btn,
.column.main .apps-theme-mysims .rw-apply a.rw-btn{
  flex:0 0 auto;width:auto;max-width:100%;margin-left:auto;
}

/* ---------- master partner: sub-affiliate roster ---------- */
.apps-theme-mysims .rw-team{display:flex;flex-direction:column;}
.apps-theme-mysims .rw-team-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-team-row:last-child{border-bottom:none;}
.apps-theme-mysims .rw-team-av{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:800;font-size:14px;color:#fff;background:var(--apps-theme-color-primary);}
.apps-theme-mysims .rw-team-info{flex:1;min-width:0;}
.apps-theme-mysims .rw-team-name{font-size:13.5px;font-weight:800;color:var(--apps-theme-color-ink);line-height:1.3;}
.apps-theme-mysims .rw-team-meta{font-size:11.5px;color:var(--apps-theme-color-ink-soft);margin-top:2px;}
.apps-theme-mysims .rw-team-tier{display:inline-flex;align-items:center;font-size:10px;font-weight:800;letter-spacing:.02em;padding:3px 8px;
  border-radius:var(--r-pill);background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);margin-left:7px;}
.apps-theme-mysims .rw-team-vol{text-align:right;flex-shrink:0;}
.apps-theme-mysims .rw-team-vol .v{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--apps-theme-color-ink);}
.apps-theme-mysims .rw-team-vol .l{font-size:10.5px;color:var(--apps-theme-color-ink-soft);margin-top:1px;}
.apps-theme-mysims .rw-team-override{text-align:right;flex-shrink:0;min-width:92px;}
.apps-theme-mysims .rw-team-override .v{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--apps-theme-color-green);}
.apps-theme-mysims .rw-team-override .l{font-size:10.5px;color:var(--apps-theme-color-ink-soft);margin-top:1px;}
@media(max-width:620px){.apps-theme-mysims .rw-team-vol{display:none;}}

/* ---------- workspace tabs (layout B) ---------- */
.apps-theme-mysims .rw-ws{display:grid;grid-template-columns:300px 1fr;gap:18px;margin-top:16px;align-items:start;}
@media(max-width:880px){.apps-theme-mysims .rw-ws{grid-template-columns:1fr;}}
.apps-theme-mysims .rw-rail{display:flex;flex-direction:column;gap:12px;}
.apps-theme-mysims .rw-ws-tabs{display:flex;gap:6px;padding:6px;background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-pill);
  margin-bottom:16px;overflow-x:auto;scrollbar-width:none;}
.apps-theme-mysims .rw-ws-tabs::-webkit-scrollbar{display:none;}
.apps-theme-mysims .rw-ws-tab{font-family:var(--font-body);font-weight:700;font-size:13px;padding:9px 16px;border-radius:var(--r-pill);
  color:var(--apps-theme-color-ink-muted);cursor:pointer;border:none;background:none;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast);}
.apps-theme-mysims .rw-ws-tab.on{background:var(--apps-theme-color-primary);color:#fff;}
.apps-theme-mysims .rw-ws-pane{display:none;}
.apps-theme-mysims .rw-ws-pane.on{display:block;animation:rwFade .25s var(--ease-out);}
@keyframes rwFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* section spacing helpers */
.apps-theme-mysims .rw-stack{display:flex;flex-direction:column;gap:18px;}
.apps-theme-mysims .rw-mt{margin-top:18px;}

/* ============================================================
   Traveler rewards wallet (v2) — money-first, two-source split
   ============================================================ */
.apps-theme-mysims .rw-wallet-head{margin-bottom:20px;}
.apps-theme-mysims .rw-wallet-total{margin-top:11px;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;color:#fff;}
.apps-theme-mysims .rw-wallet-money{font-family:var(--font-display);font-weight:800;font-size:clamp(44px,6.4vw,60px);line-height:1;
  letter-spacing:-.03em;}
.apps-theme-mysims .rw-wallet-aside{display:inline-flex;align-items:baseline;gap:8px;padding-bottom:.08em;min-width:0;}
.apps-theme-mysims .rw-wallet-pts{font-size:13.5px;font-weight:700;color:rgba(220,231,240,.78);
  font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;}
.apps-theme-mysims .rw-wallet-total .rw-wallet-sub{font-size:11px;font-weight:800;color:var(--apps-theme-color-yellow);letter-spacing:.05em;
  text-transform:uppercase;white-space:nowrap;}
.apps-theme-mysims .rw-wallet-pending{margin-top:10px;font-size:13px;font-weight:700;line-height:1.45;color:rgba(220,231,240,.88);
  max-width:430px;}
.apps-theme-mysims .rw-wallet-cap{font-size:13.5px;color:rgba(220,231,240,.8);margin-top:11px;max-width:430px;line-height:1.5;}
.apps-theme-mysims .rw-wallet-cap b{color:#fff;font-weight:800;}

.apps-theme-mysims .rw-wallet-split{display:flex;align-items:stretch;gap:12px;margin-bottom:18px;}
.apps-theme-mysims .rw-src-card{flex:1;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-lg);
  padding:16px 18px;min-width:0;}
.apps-theme-mysims .rw-src-ic{width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.13);display:flex;
  align-items:center;justify-content:center;margin-bottom:12px;}
.apps-theme-mysims .rw-src-ic svg{width:17px;height:17px;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rw-src-amt-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;}
.apps-theme-mysims .rw-src-amt{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1;color:#fff;letter-spacing:-.02em;}
.apps-theme-mysims .rw-src-pts{font-size:12px;font-weight:700;color:rgba(220,231,240,.72);line-height:1;
  font-variant-numeric:tabular-nums;padding-bottom:2px;white-space:nowrap;}
.apps-theme-mysims .rw-src-lbl{font-size:12.5px;font-weight:800;color:#fff;margin-top:8px;}
.apps-theme-mysims .rw-src-meta{font-size:11.5px;color:rgba(220,231,240,.72);margin-top:3px;}
.apps-theme-mysims .rw-src-plus{display:flex;align-items:center;font-family:var(--font-display);font-weight:800;font-size:22px;
  color:rgba(255,255,255,.45);}
@media(max-width:560px){.apps-theme-mysims .rw-wallet-split{flex-direction:column;}.apps-theme-mysims .rw-src-plus{justify-content:center;padding:2px 0;}}

/* compact tier strip inside wallet */
.apps-theme-mysims .rw-tier-mini{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.apps-theme-mysims .rw-tier-mini .rw-tier-badge{flex-shrink:0;}
.apps-theme-mysims .rw-tier-mini-bar{flex:1;min-width:110px;height:7px;border-radius:5px;background:rgba(255,255,255,.16);overflow:hidden;}
.apps-theme-mysims .rw-tier-mini-bar i{display:block;height:100%;border-radius:5px;
  background:linear-gradient(90deg,var(--apps-theme-color-sky-mid),var(--apps-theme-color-yellow));transition:width 1s var(--ease-out);}
.apps-theme-mysims .rw-tier-mini-txt{font-size:12px;color:rgba(220,231,240,.8);white-space:nowrap;}
.apps-theme-mysims .rw-tier-mini-txt b{color:#fff;font-weight:800;}

/* just-redeemed confirmation + empty wallet */
.apps-theme-mysims .rw-redeemed{display:flex;align-items:center;gap:13px;background:#E8F5EA;border:1px solid #BFE6C6;
  border-radius:var(--r-lg);padding:14px 18px;}
.apps-theme-mysims .rw-redeemed-ic{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:var(--apps-theme-color-green);color:#fff;}
.apps-theme-mysims .rw-redeemed-ic svg{width:17px;height:17px;max-width:17px;max-height:17px;display:block;}
.apps-theme-mysims .rw-redeemed-txt{font-size:13px;color:#256b34;line-height:1.5;}
.apps-theme-mysims .rw-redeemed-txt b{font-weight:800;color:#1c5a2a;}
.apps-theme-mysims .rw-empty-stats{display:flex;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.15);}
.apps-theme-mysims .rw-empty-stat{flex:1;min-width:0;}
.apps-theme-mysims .rw-empty-stat .v{font-family:var(--font-display);font-weight:800;font-size:22px;color:#fff;line-height:1;letter-spacing:-.02em;}
.apps-theme-mysims .rw-empty-stat .l{font-size:11.5px;color:rgba(220,231,240,.72);margin-top:5px;}
.apps-theme-mysims .rw-balance > .rw-btn{margin-top:4px;}

/* ---------- commission hero: withdrawable footer ---------- */
.apps-theme-mysims .rw-wallet-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:18px;
  padding-top:18px;border-top:1px solid rgba(255,255,255,.15);flex-wrap:wrap;}
.apps-theme-mysims .rw-wallet-foot-l{min-width:0;}
.apps-theme-mysims .rw-wallet-foot-l .l{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:800;
  font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(185,219,254,.82);}
.apps-theme-mysims .rw-wallet-foot-l .l svg{width:13px;height:13px;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rw-wallet-foot-l .v{font-family:var(--font-display);font-weight:800;font-size:28px;color:#fff;line-height:1;
  margin-top:6px;letter-spacing:-.02em;}
.apps-theme-mysims .rw-wallet-foot-l .sub{font-size:11.5px;color:rgba(220,231,240,.72);margin-top:6px;}

/* hero progressive mini-bar — bracket ticks */
.apps-theme-mysims .rw-prog-mini{position:relative;overflow:visible;}
.apps-theme-mysims .rw-prog-mini u{position:absolute;top:-2px;bottom:-2px;width:2px;background:rgba(255,255,255,.55);border-radius:2px;}

/* progressive breakdown (accordion) */
.apps-theme-mysims .rw-prog{border:1px solid var(--apps-theme-color-line);border-radius:var(--r-md);overflow:hidden;background:#fff;}
.apps-theme-mysims .rw-prog-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--apps-theme-color-line);}
.apps-theme-mysims .rw-prog-row:last-of-type{border-bottom:none;}
.apps-theme-mysims .rw-prog-row.dim{opacity:.45;}
.apps-theme-mysims .rw-prog-rate{font-family:var(--font-display);font-weight:800;font-size:19px;color:var(--apps-theme-color-primary);width:50px;flex-shrink:0;}
.apps-theme-mysims .rw-prog-mid{flex:1;min-width:0;}
.apps-theme-mysims .rw-prog-band{font-size:12px;font-weight:700;color:var(--apps-theme-color-ink-muted);}
.apps-theme-mysims .rw-prog-bar{height:6px;border-radius:4px;background:var(--apps-theme-color-surface);margin-top:6px;overflow:hidden;}
.apps-theme-mysims .rw-prog-bar i{display:block;height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--apps-theme-color-sky-mid),var(--apps-theme-color-sky-deep));transition:width 1s var(--ease-out);}
.apps-theme-mysims .rw-prog-fill-txt{font-size:11px;color:var(--apps-theme-color-ink-soft);margin-top:4px;}
.apps-theme-mysims .rw-prog-amt{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--apps-theme-color-green);
  width:86px;text-align:right;flex-shrink:0;}
.apps-theme-mysims .rw-prog-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;
  background:var(--apps-theme-color-cream-soft);font-size:13px;font-weight:700;color:var(--apps-theme-color-ink);}
.apps-theme-mysims .rw-prog-foot b{font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--apps-theme-color-primary);}
@media(max-width:560px){.apps-theme-mysims .rw-prog-rate{width:42px;font-size:16px;}.rw-prog-amt{width:64px;font-size:14px;}}

/* ---------- collapsible accordion ---------- */
.apps-theme-mysims .rw-acc{background:#fff;border:1px solid var(--apps-theme-color-line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;}
.apps-theme-mysims .rw-acc-sum{display:flex;align-items:center;gap:13px;padding:17px 20px;cursor:pointer;list-style:none;
  user-select:none;transition:background var(--t-fast);}
.apps-theme-mysims .rw-acc-sum::-webkit-details-marker{display:none;}
.apps-theme-mysims .rw-acc-sum::marker{content:"";display:none;font-size:0;}
.apps-theme-mysims .rw-acc-sum:hover{background:var(--apps-theme-color-surface);}
.apps-theme-mysims .rw-acc-ic{width:36px;height:36px;border-radius:10px;background:var(--apps-theme-color-cream-soft);color:var(--apps-theme-color-primary);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.apps-theme-mysims .rw-acc-ic svg{width:18px;height:18px;max-width:18px;max-height:18px;display:block;}
.apps-theme-mysims .rw-acc-ttl{flex:1;min-width:0;font-family:var(--font-display);font-weight:800;font-size:14.5px;color:var(--apps-theme-color-ink);
  display:flex;flex-direction:column;gap:2px;}
.apps-theme-mysims .rw-acc-ttl small{font-family:var(--font-body);font-weight:600;font-size:12px;color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rw-acc-chev{flex-shrink:0;color:var(--apps-theme-color-ink-soft);transition:transform var(--t-base);}
.apps-theme-mysims .rw-acc-chev svg{width:18px;height:18px;max-width:18px;max-height:18px;display:block;}
.apps-theme-mysims .rw-acc[open] .rw-acc-chev{transform:rotate(180deg);}
.apps-theme-mysims .rw-acc-body{padding:4px 20px 20px;}

/* Partner commission helpers (My SIMs Points tab) */
.apps-theme-mysims .rw-balance-inline { display:flex; align-items:baseline; gap:8px; }
.apps-theme-mysims .rw-balance-inline strong { font-size:clamp(36px,5vw,52px); line-height:1; color:#082C45; }
.apps-theme-mysims .rw-balance-inline span { font-size:16px; color:rgba(8,44,69,.55); }
.apps-theme-mysims .rw-hero { display:flex; flex-wrap:wrap; gap:24px 40px; align-items:flex-end; justify-content:space-between; padding:28px 0 20px; border-bottom:1px solid rgba(8,44,69,.12); }
.apps-theme-mysims .rw-hero-actions { max-width:320px; }
.apps-theme-mysims .rw-pending { margin-top:10px; font-size:13px; color:rgba(8,44,69,.65); }
.apps-theme-mysims .rw-period,
.apps-theme-mysims .rw-history,
.apps-theme-mysims .rw-pipeline { margin-top:28px; padding-top:24px; border-top:1px solid rgba(8,44,69,.08); }
.apps-theme-mysims .rw-period-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:16px; }
.apps-theme-mysims .rw-period-head h3,
.apps-theme-mysims .rw-history h3,
.apps-theme-mysims .rw-pipeline h3 { margin:0; font-size:18px; color:#082C45; }
.apps-theme-mysims .rw-period-rate { font-size:13px; color:rgba(8,44,69,.65); }
.apps-theme-mysims .rw-period-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.apps-theme-mysims .rw-stat-label { font-size:12px; color:rgba(8,44,69,.55); margin-bottom:4px; }
.apps-theme-mysims .rw-stat-value { font-size:20px; font-weight:600; color:#082C45; }
.apps-theme-mysims .rw-progress { position:relative; height:10px; border-radius:999px; background:rgba(8,44,69,.08); overflow:hidden; margin-bottom:10px; }
.apps-theme-mysims .rw-progress-bar { height:100%; background:#0B6E4F; border-radius:inherit; }
.apps-theme-mysims .rw-progress-mark { position:absolute; top:0; bottom:0; width:2px; background:rgba(8,44,69,.35); }
.apps-theme-mysims .rw-history-list { list-style:none; margin:0; padding:0; }
.apps-theme-mysims .rw-history-list li { display:grid; grid-template-columns:minmax(0,1.4fr) auto auto auto; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid rgba(8,44,69,.06); font-size:14px; }
.apps-theme-mysims .rw-history-list .rw-hist-order { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; min-width:0; }
.apps-theme-mysims .rw-history-list .rw-hist-vol { font-weight:700; color:var(--apps-theme-color-ink); white-space:nowrap; }
.apps-theme-mysims .rw-history-list em { font-style:normal; color:rgba(8,44,69,.7); }
.apps-theme-mysims .rw-history-list small { color:rgba(8,44,69,.45); }
.apps-theme-mysims .rw-form { display:grid; gap:14px; margin-top:12px; }
.apps-theme-mysims .rw-form label { display:grid; gap:6px; font-size:13px; color:rgba(8,44,69,.75); }
.apps-theme-mysims .rw-form input,
.apps-theme-mysims .rw-form textarea,
.apps-theme-mysims .rw-form select { width:100%; padding:10px 12px; border:1px solid rgba(8,44,69,.18); border-radius:8px; font:inherit; color:#082C45; background:#fff; box-sizing:border-box; }
.apps-theme-mysims .rw-form-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; margin-top:8px; }
.apps-theme-mysims .rw-note { margin-top:24px; font-size:13px; line-height:1.5; color:rgba(8,44,69,.55); }
.apps-theme-mysims .rw-hint { margin:12px 0 0; font-size:13px; line-height:1.45; color:rgba(8,44,69,.6); }

/* ---- Payout modal (design-station aligned) ---- */
.apps-theme-mysims .overlay#mysims-reward-withdraw-overlay { align-items: flex-start; padding: 24px 16px; overflow-y: auto; }
.apps-theme-mysims .overlay.open.rw-payout-open,
.apps-theme-mysims #mysims-reward-withdraw-overlay.open { align-items: flex-start; }
.apps-theme-mysims .rw-payout-modal {
    max-width: 560px;
    width: min(560px, 100%);
    margin: 24px auto;
    max-height: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    padding: 0;
    box-sizing: border-box;
}
.apps-theme-mysims .overlay.open .rw-payout-modal {
    max-height: none;
    overflow: visible;
}
.apps-theme-mysims .rw-payout-head {
    padding: 22px 24px 8px !important;
    align-items: flex-start;
}
.apps-theme-mysims .rw-payout-head-text { flex: 1 1 auto; min-width: 0; padding-right: 8px; }
.apps-theme-mysims .rw-payout-head h2 {
    margin: 0 0 8px;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.2;
    color: #082C45;
}
.apps-theme-mysims .rw-payout-lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(8,44,69,.62);
}
.apps-theme-mysims .rw-payout-body {
    padding: 8px 24px 24px !important;
}
.apps-theme-mysims .rw-payout-balance {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    margin: 0 0 18px;
    border-radius: 14px;
    background: #eef6fc;
    border: 1px solid rgba(33,150,243,.12);
}
.apps-theme-mysims .rw-payout-balance-ic {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    color: #082C45;
}
.apps-theme-mysims .rw-payout-balance-ic svg { width: 28px; height: 28px; stroke-width: 1.75; }
.apps-theme-mysims .rw-payout-balance-copy { min-width: 0; }
.apps-theme-mysims .rw-payout-balance-amt {
    font-size: 26px;
    font-weight: 800;
    color: #082C45;
    line-height: 1.15;
}
.apps-theme-mysims .rw-payout-balance-label {
    margin-top: 2px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(8,44,69,.5);
    font-weight: 600;
}
.apps-theme-mysims .rw-payout-form {
    gap: 18px;
    margin-top: 0;
}
.apps-theme-mysims .rw-payout-field { display: grid; gap: 7px; }
/* display:grid above beats UA [hidden]; must force hide conditional tax rows */
.apps-theme-mysims .rw-payout-field[hidden],
.apps-theme-mysims .rw-payout-form [data-tax-vat][hidden],
.apps-theme-mysims .rw-payout-form [data-tax-ftax][hidden] {
    display: none !important;
}
.apps-theme-mysims .rw-payout-field > label {
    display: block !important;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: rgba(8,44,69,.78);
}
.apps-theme-mysims .rw-payout-field .rw-req { color: #c62828; font-style: normal; font-weight: 700; }
.apps-theme-mysims .rw-payout-form .rw-payout-field input,
.apps-theme-mysims .rw-payout-form .rw-payout-field select {
    width: 100%;
    min-height: 44px;
    padding: 11px 14px;
    border: 1px solid rgba(8,44,69,.2);
    border-radius: 10px;
    font-size: 15px;
    line-height: 1.3;
    color: #082C45;
    background: #fff;
}
.apps-theme-mysims .rw-payout-form .rw-payout-field input:focus,
.apps-theme-mysims .rw-payout-form .rw-payout-field select:focus {
    outline: none;
    border-color: #082C45;
    box-shadow: 0 0 0 3px rgba(8,44,69,.08);
}
.apps-theme-mysims .rw-payout-field.has-error input,
.apps-theme-mysims .rw-payout-field.has-error select,
.apps-theme-mysims .rw-payout-form input.mage-error,
.apps-theme-mysims .rw-payout-form select.mage-error {
    border-color: #c62828 !important;
    box-shadow: 0 0 0 3px rgba(198, 40, 40, .12);
}
.apps-theme-mysims .rw-payout-form label.rw-confirm.has-error > span,
.apps-theme-mysims .rw-payout-form label.rw-confirm.has-error {
    color: #c62828;
}
.apps-theme-mysims .rw-payout-tax {
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 16px;
    border: 1px solid rgba(8, 44, 69, .12);
    border-radius: 12px;
    background: rgba(8, 44, 69, .02);
    min-inline-size: 0;
}
.apps-theme-mysims .rw-payout-tax > legend {
    display: block;
    width: auto;
    max-width: 100%;
    margin: 0 0 -4px;
    padding: 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(8, 44, 69, .55);
}
.apps-theme-mysims .rw-field-hint {
    display: block;
    margin: 0;
    font-size: 12px;
    line-height: 1.4;
    color: rgba(8,44,69,.52);
}
.apps-theme-mysims .rw-payout-methods {
    border: 0;
    margin: 0;
    padding: 0;
    min-inline-size: 0;
}
.apps-theme-mysims .rw-payout-methods legend {
    display: block;
    width: 100%;
    margin: 0 0 10px;
    padding: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(8,44,69,.52);
}
.apps-theme-mysims .rw-payout-method-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.apps-theme-mysims .rw-payout-form label.rw-method-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 14px 14px;
    border: 1.5px solid rgba(8,44,69,.16);
    border-radius: 12px;
    cursor: pointer;
    background: #fff;
    box-sizing: border-box;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.apps-theme-mysims .rw-payout-form label.rw-method-card:hover {
    border-color: rgba(8,44,69,.35);
}
.apps-theme-mysims .rw-payout-form label.rw-method-card:has(input:checked),
.apps-theme-mysims .rw-payout-form label.rw-method-card.is-selected {
    border-color: #082C45;
    background: rgba(8,44,69,.03);
    box-shadow: 0 0 0 1px #082C45;
}
.apps-theme-mysims .rw-payout-form label.rw-method-card > input[type="radio"] {
    width: 18px !important;
    min-width: 18px;
    max-width: 18px;
    height: 18px;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    flex: 0 0 18px;
    accent-color: #082C45;
    align-self: flex-start;
}
.apps-theme-mysims .rw-method-body {
    display: grid;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}
.apps-theme-mysims .rw-method-body strong {
    color: #082C45;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
}
.apps-theme-mysims .rw-method-body em {
    font-style: normal;
    font-size: 12px;
    line-height: 1.4;
    color: rgba(8,44,69,.58);
}
.apps-theme-mysims .rw-payout-fields { display: grid; gap: 16px; }
.apps-theme-mysims .rw-payout-fields[hidden] { display: none !important; }
.apps-theme-mysims .rw-payout-form label.rw-confirm {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    gap: 10px;
    margin: 2px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
}
.apps-theme-mysims .rw-payout-form label.rw-confirm > input[type="checkbox"] {
    width: 18px !important;
    min-width: 18px;
    max-width: 18px;
    height: 18px;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    flex: 0 0 18px;
    accent-color: #082C45;
}
.apps-theme-mysims .rw-payout-form label.rw-confirm > span {
    font-size: 12.5px;
    line-height: 1.45;
    color: rgba(8,44,69,.72);
    font-weight: 400;
}
.apps-theme-mysims .rw-secure-note {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f7f4ef;
    border: 1px solid rgba(8,44,69,.06);
}
.apps-theme-mysims .rw-secure-ic {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    color: rgba(8,44,69,.55);
    margin-top: 1px;
}
.apps-theme-mysims .rw-secure-ic svg { width: 18px; height: 18px; }
.apps-theme-mysims .rw-secure-note p {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: rgba(8,44,69,.68);
}
.apps-theme-mysims .rw-secure-note strong { color: #082C45; font-weight: 700; }
.apps-theme-mysims .rw-payout-form .rw-form-actions {
    margin-top: 4px;
    padding-top: 4px;
    gap: 12px;
}
.apps-theme-mysims .rw-payout-form .rw-form-actions .theme-button {
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 999px;
}
@media (max-width: 560px) {
    .apps-theme-mysims .rw-payout-method-grid { grid-template-columns: 1fr; }
    .apps-theme-mysims .rw-payout-head,
    .apps-theme-mysims .rw-payout-body { padding-left: 18px !important; padding-right: 18px !important; }
    .apps-theme-mysims .rw-payout-balance-amt { font-size: 22px; }
}
.apps-theme-mysims .rw-points-faq .fq,
.apps-theme-mysims .rw-points-faq details { margin:0 0 8px; }
/* Activity/list pagers sit directly under feed rows — avoid stacked margin+padding. */
.apps-theme-mysims #mysims-reward-activity-pager,
.apps-theme-mysims #mysims-reward-attr-pager,
.apps-theme-mysims #mysims-reward-withdraw-pager,
.apps-theme-mysims #mysims-voucher-list-pager {
    margin-top: 8px;
    padding-top: 0;
    padding-bottom: 0;
}
.apps-theme-mysims #mysims-reward-activity-pager .pager,
.apps-theme-mysims #mysims-reward-attr-pager .pager,
.apps-theme-mysims #mysims-reward-withdraw-pager .pager,
.apps-theme-mysims #mysims-voucher-list-pager .pager {
    margin: 0;
    padding: 0;
}
@media (max-width: 720px) {
  .apps-theme-mysims .rw-hero { align-items: flex-start; }
  .apps-theme-mysims .rw-hero-actions { max-width: none; width: 100%; }
  .apps-theme-mysims .rw-period-stats { grid-template-columns: 1fr; }
  .apps-theme-mysims .rw-history-list li { grid-template-columns: 1fr 1fr; gap: 6px 12px; }
}


/* —— Destination picker modal + full coverage catalog (/destinations) —— */
.apps-coverage-search {
    position: relative;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.apps-coverage-search-field {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    min-height: 52px;
    padding: 0 16px;
    border: 1.5px solid rgba(14, 35, 72, .28);
    border-radius: 999px;
    background: #fff;
    box-sizing: border-box;
}
.apps-coverage-search-icon {
    color: rgba(8, 44, 69, .45);
    flex: 0 0 auto;
    display: inline-flex;
    line-height: 0;
}
/* Beat Magento Blank input[type=text] border (causes double outline inside pill) */
.apps-coverage-search input.apps-coverage-search-input[type="text"],
.apps-coverage-search input.apps-coverage-search-input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 12px 0;
    border: 0;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    background: transparent;
    font: inherit;
    font-size: 15px;
    line-height: 1.4;
    color: var(--apps-theme-color-ink, #082C45);
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.apps-coverage-search input.apps-coverage-search-input:focus,
.apps-coverage-search input.apps-coverage-search-input:focus-visible {
    border: 0;
    outline: none;
    box-shadow: none;
}
.apps-coverage-search-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    z-index: 40;
    display: none;
}
.apps-coverage-search-results.is-open,
.apps-coverage-search-results:not([hidden]) {
    display: block;
}
.apps-coverage-search-results[hidden] {
    display: none !important;
}
.apps-coverage-search-results-inner {
    max-height: min(52vh, 420px);
    overflow: auto;
    padding: 12px;
    background: #fff;
    border: 1px solid rgba(8, 44, 69, .12);
    border-radius: 18px;
    box-shadow: 0 18px 40px rgba(8, 44, 69, .16);
}
.apps-coverage-search-group[hidden],
.apps-coverage-search-item[hidden] {
    display: none !important;
}
.apps-coverage-search-group-label {
    margin: 8px 0 0;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(8, 44, 69, .04);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--apps-theme-color-ink, #082C45);
}
.apps-coverage-search-group-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 0 4px;
}
.apps-coverage-search-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    font-weight: 700;
    font-size: 14px;
}
.apps-coverage-search-item:hover {
    background: rgba(8, 44, 69, .04);
}
.apps-coverage-search-item-icon {
    width: 28px;
    height: 18px;
    object-fit: fill;
    object-position: center;
    border-radius: 3px;
    flex: 0 0 auto;
}

.destination-picker-bg {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 40px 16px;
    overflow-y: auto;
    background: rgba(8, 44, 69, .45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}
.destination-picker-bg.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.destination-picker {
    position: relative;
    width: min(560px, 100%);
    margin: 0 auto 40px;
    overflow: visible;
    padding: 28px 28px 24px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 24px 64px rgba(8, 44, 69, .22);
    color: var(--apps-theme-color-ink, #082C45);
    box-sizing: border-box;
}
.destination-picker-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: rgba(8, 44, 69, .06);
    color: inherit;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.destination-picker h2 {
    margin: 0 36px 18px 0;
    font-size: clamp(22px, 3vw, 28px);
    line-height: 1.2;
    font-weight: 800;
}
.destination-picker .apps-coverage-search {
    max-width: none;
}
.destination-picker-shortcuts {
    margin: 16px 0 0;
    font-size: 13px;
    line-height: 1.55;
    color: rgba(8, 44, 69, .62);
}
.destination-picker-shortcuts a {
    color: var(--apps-theme-color-primary, #1B6CA8);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.destination-picker .destination-picker-section {
    margin-top: 0;
    padding-top: 28px;
}
.destination-picker-section-label {
    margin: 0 0 14px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(8, 44, 69, .45);
    font-weight: 700;
}
.destination-picker-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.destination-picker-item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid var(--apps-theme-color-line, rgba(8,44,69,.12));
    border-radius: 12px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.destination-picker-item:hover {
    border-color: rgba(14, 35, 72, .2);
    box-shadow: var(--apps-theme-shadow-sm, 0 4px 14px rgba(8,44,69,.08));
    color: var(--apps-theme-color-primary, #1B6CA8);
}
.destination-picker-item-icon {
    width: 24px;
    height: 16px;
    object-fit: contain;
    object-position: center;
    border-radius: 3px;
    flex-shrink: 0;
}
.destination-picker-foot {
    margin-top: 28px;
    padding-top: 16px;
    border-top: 1px solid rgba(8, 44, 69, .08);
}
.destination-picker-foot p {
    margin: 0 0 10px;
    font-size: 13px;
    color: rgba(8, 44, 69, .55);
}
.destination-picker-full-link {
    color: var(--apps-theme-color-primary, #1B6CA8);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 560px) {
    .destination-picker { padding: 22px 18px 18px; border-radius: 16px; }
    .destination-picker-grid { grid-template-columns: 1fr; }
}

.coverage-catalog {
    padding: clamp(40px, 5vw, 64px) 0 clamp(64px, 8vw, 96px);
    color: var(--apps-theme-color-ink, #082C45);
}
.coverage-catalog-head {
    margin-bottom: 0;
}
.coverage-catalog-head .eyebrow {
    margin: 0 0 8px;
}
.coverage-catalog-head h1 {
    margin: 0 0 12px;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.15;
    font-weight: 800;
}
.coverage-catalog-lead {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.55;
    color: rgba(8, 44, 69, .62);
}
.coverage-catalog-head .apps-coverage-search {
    max-width: 560px;
}
.coverage-catalog-shortcuts {
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(8, 44, 69, .62);
}
.coverage-catalog-shortcuts a {
    color: var(--apps-theme-color-primary, #1B6CA8);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
/*
 * Do not put vertical spacing on .container — global content containers
 * keep padding-top/bottom at 0; use section wrappers for vertical rhythm.
 */
.coverage-catalog-popular,
.coverage-catalog-body {
    padding-top: 32px;
}
.coverage-catalog-section-label {
    margin: 0 0 16px;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(8, 44, 69, .45);
    font-weight: 700;
}
.coverage-catalog-group {
    margin: 0;
    padding: 0;
}
.coverage-catalog-group + .coverage-catalog-group {
    margin-top: 0;
    padding-top: 32px;
}
.coverage-catalog-group-head {
    display: block;
    margin: 0 0 16px;
}
.coverage-catalog-group-head h2 {
    margin: 0;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(8, 44, 69, .45);
    font-weight: 700;
}
.coverage-catalog-chip-grid,
.coverage-catalog-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.coverage-catalog-chip,
.coverage-catalog-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid var(--apps-theme-color-line, rgba(8,44,69,.12));
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.coverage-catalog-chip:hover,
.coverage-catalog-item:hover {
    border-color: rgba(14, 35, 72, .18);
    box-shadow: var(--apps-theme-shadow-sm, 0 4px 14px rgba(8,44,69,.08));
    transform: translateY(-1px);
    color: var(--apps-theme-color-primary, #1B6CA8);
}
.coverage-catalog-chip-icon,
.coverage-catalog-item-icon {
    width: 27px;
    height: 18px;
    object-fit: contain;
    object-position: center;
    border-radius: 3px;
    flex-shrink: 0;
}
@media (max-width: 992px) {
    .coverage-catalog-chip-grid,
    .coverage-catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .coverage-catalog-popular,
    .coverage-catalog-body { padding-top: 28px; }
    .coverage-catalog-group + .coverage-catalog-group { padding-top: 28px; }
    .coverage-catalog-chip-grid,
    .coverage-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .coverage-catalog-chip-grid,
    .coverage-catalog-grid { grid-template-columns: 1fr; }
}
/* ===== 2026-08-27 mobile UX: fold / buybar / mysims / checkout / locale ===== */
.apps-theme-mysims .ring.ring-unknown .bg {
    stroke: var(--apps-theme-color-line, #d8dee8);
    stroke-dasharray: 4 6;
}
.apps-theme-mysims .ring .pct-unknown,
.apps-theme-mysims .ring .pct-remain {
    font-size: 12px;
    font-weight: 800;
    color: var(--apps-theme-color-ink-soft);
}

@media (max-width: 640px) {
    .apps-theme-mysims .segment,
    .column.main .apps-theme-mysims .segment {
        flex-wrap: wrap;
        gap: 6px;
    }
    .apps-theme-mysims .segment button,
    .apps-theme-mysims .segment .segment-button,
    .column.main .apps-theme-mysims .segment button,
    .column.main .apps-theme-mysims .segment .segment-button {
        min-width: 0;
        padding: 8px 6px;
        font-size: 12px;
        line-height: 1.25;
        white-space: normal;
        text-align: center;
        hyphens: auto;
    }
}

@media (max-width: 768px) {
    .coverage-landing .hero {
        padding: 1.5rem 0 2rem;
    }

    .coverage-landing .hero-grid {
        display: flex;
        flex-direction: column;
    }

    /* Mobile: hide hero illustration so plans/content appear without scrolling past art. */
    .coverage-landing .hero-art {
        display: none;
    }

    .coverage-landing .hero-floating-badge,
    .coverage-landing .apps-card {
        display: none;
    }

    .coverage-landing .landing-mobile-buybar {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 70;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        padding: 8px 16px calc(8px + env(safe-area-inset-bottom, 0px));
        background: rgba(255, 255, 255, .96);
        border-top: 1px solid var(--apps-theme-color-line);
        box-shadow: 0 -6px 20px rgba(14, 35, 72, .08);
        transform: translateY(100%);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: transform .28s ease, opacity .28s ease, visibility .28s ease;
    }

    .coverage-landing .landing-mobile-buybar.is-visible {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .coverage-landing a.landing-mobile-buybar-cta,
    .column.main .coverage-landing a.landing-mobile-buybar-cta {
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        min-height: 44px;
        padding: 10px 14px;
        border-radius: var(--apps-theme-radius-pill);
        background: var(--apps-theme-color-brand, #ec1e24);
        background-color: var(--apps-theme-color-brand, #ec1e24);
        color: #fff;
        font-weight: 800;
        font-size: 14px;
        line-height: 1.25;
        text-decoration: none;
        text-align: center;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        box-shadow: 0 8px 18px rgba(236, 30, 36, .24);
    }
    .coverage-landing a.landing-mobile-buybar-cta:hover,
    .coverage-landing a.landing-mobile-buybar-cta:focus {
        color: #fff;
        opacity: 1;
    }

    body.has-landing-buybar .coverage-landing {
        padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
    }

    /* Fold: fixed-height clip + opaque bottom mask; exclusive Show more / less */
    .coverage-landing .apps-fold {
        position: relative;
        margin-bottom: 8px;
    }
    .coverage-landing .apps-fold-panel {
        position: relative;
        overflow: hidden;
    }

    .column.main .coverage-landing button.apps-fold-more,
    .column.main .coverage-landing button.apps-fold-less,
    .coverage-landing button.apps-fold-more,
    .coverage-landing button.apps-fold-less {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        min-height: 0;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        background-color: transparent;
        background-image: none;
        box-shadow: none;
        color: var(--apps-theme-color-primary);
        font-family: var(--apps-theme-font-body, inherit);
        font-size: 14px;
        font-weight: 600;
        line-height: 1.3;
        cursor: pointer;
        opacity: 1;
        -webkit-appearance: none;
        appearance: none;
    }
    .column.main .coverage-landing button.apps-fold-more:hover,
    .column.main .coverage-landing button.apps-fold-more:focus,
    .column.main .coverage-landing button.apps-fold-more:active,
    .column.main .coverage-landing button.apps-fold-less:hover,
    .column.main .coverage-landing button.apps-fold-less:focus,
    .column.main .coverage-landing button.apps-fold-less:active,
    .coverage-landing button.apps-fold-more:hover,
    .coverage-landing button.apps-fold-more:focus,
    .coverage-landing button.apps-fold-more:active,
    .coverage-landing button.apps-fold-less:hover,
    .coverage-landing button.apps-fold-less:focus,
    .coverage-landing button.apps-fold-less:active {
        border: 0;
        box-shadow: none;
        opacity: 1;
        color: var(--apps-theme-color-primary);
    }

    /* Collapsed: Show more = absolute mask on content bottom (top clear → bottom solid) */
    .column.main .coverage-landing .apps-fold.is-collapsed button.apps-fold-more,
    .coverage-landing .apps-fold.is-collapsed button.apps-fold-more {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 3;
        display: flex;
        align-items: flex-end;
        justify-content: center;
        min-height: 88px;
        padding: 0 12px 14px;
        /* Opaque by ~55% so label sits on nearly solid white */
        background: linear-gradient(
            180deg,
            hsla(0, 0%, 100%, 0) 0%,
            hsla(0, 0%, 100%, .55) 35%,
            hsla(0, 0%, 100%, .92) 55%,
            #fff 70%,
            #fff 100%
        );
    }
    .column.main .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more,
    .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more {
        background: linear-gradient(
            180deg,
            rgba(248, 245, 240, 0) 0%,
            rgba(248, 245, 240, .55) 35%,
            rgba(248, 245, 240, .92) 55%,
            #f8f5f0 70%,
            #f8f5f0 100%
        );
    }
    .column.main .coverage-landing .apps-fold.is-collapsed button.apps-fold-more:hover,
    .column.main .coverage-landing .apps-fold.is-collapsed button.apps-fold-more:focus,
    .column.main .coverage-landing .apps-fold.is-collapsed button.apps-fold-more:active,
    .coverage-landing .apps-fold.is-collapsed button.apps-fold-more:hover,
    .coverage-landing .apps-fold.is-collapsed button.apps-fold-more:focus,
    .coverage-landing .apps-fold.is-collapsed button.apps-fold-more:active {
        background: linear-gradient(
            180deg,
            hsla(0, 0%, 100%, 0) 0%,
            hsla(0, 0%, 100%, .55) 35%,
            hsla(0, 0%, 100%, .92) 55%,
            #fff 70%,
            #fff 100%
        );
    }
    .column.main .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more:hover,
    .column.main .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more:focus,
    .column.main .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more:active,
    .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more:hover,
    .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more:focus,
    .coverage-landing .travel-tips-section .apps-fold.is-collapsed button.apps-fold-more:active {
        background: linear-gradient(
            180deg,
            rgba(248, 245, 240, 0) 0%,
            rgba(248, 245, 240, .55) 35%,
            rgba(248, 245, 240, .92) 55%,
            #f8f5f0 70%,
            #f8f5f0 100%
        );
    }

    /* Exclusive visibility — match .column.main specificity so both never show */
    .column.main .coverage-landing .apps-fold:not(.is-collapsed) button.apps-fold-more,
    .coverage-landing .apps-fold:not(.is-collapsed) button.apps-fold-more {
        display: none;
    }
    .column.main .coverage-landing .apps-fold.is-collapsed button.apps-fold-less,
    .coverage-landing .apps-fold.is-collapsed button.apps-fold-less {
        display: none;
    }
    .column.main .coverage-landing .apps-fold:not(.is-collapsed) button.apps-fold-less,
    .coverage-landing .apps-fold:not(.is-collapsed) button.apps-fold-less {
        display: flex;
        position: relative;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 14px 12px 6px;
        color: var(--apps-theme-color-ink-muted);
        background: transparent;
        background-image: none;
    }
    .column.main .coverage-landing .apps-fold button.apps-fold-more[hidden],
    .column.main .coverage-landing .apps-fold button.apps-fold-less[hidden],
    .coverage-landing .apps-fold button.apps-fold-more[hidden],
    .coverage-landing .apps-fold button.apps-fold-less[hidden] {
        display: none;
    }

    .coverage-landing .apps-fold-more-label,
    .coverage-landing .apps-fold-less-label {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 0;
        border: none;
        background: transparent;
        box-shadow: none;
        color: inherit;
        position: relative;
        z-index: 1;
    }
    .coverage-landing .apps-fold-chevron {
        flex-shrink: 0;
        display: block;
        opacity: 0.85;
    }
}

@media (min-width: 769px) {
    .coverage-landing .landing-mobile-buybar {
        display: none;
    }
}

.apps-theme-mobile-nav .mobile-nav-locale {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    align-items: center;
    padding: 4px 0 8px;
}
.apps-theme-mobile-nav .mobile-nav-locale .language,
.apps-theme-mobile-nav .mobile-nav-locale .currency {
    display: inline-flex;
}
.apps-theme-mobile-nav .mobile-nav-locale .language .lang,
.apps-theme-mobile-nav .mobile-nav-locale .currency .curr {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    color: var(--apps-theme-color-ink);
    text-decoration: none;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--apps-theme-color-surface);
}
.apps-theme-mobile-nav .mobile-nav-locale .language .lang:hover,
.apps-theme-mobile-nav .mobile-nav-locale .currency .curr:hover {
    background: var(--apps-theme-color-surface-alt);
}

/*
 * Mobile header actions — uniform spacing, no vertical separators.
 * Icon-only tap targets stay landscape (min-width > height).
 * LESS hides .language/.currency ≤960px; re-show here.
 */
@media (max-width: 960px) {
    .apps-theme-header .inner {
        gap: 8px;
        min-width: 0;
        /* side gutters: shared .apps-theme-header .container (token), not a tighter 16px fork */
    }

    .apps-theme-header .logo {
        min-width: 0;
        flex-shrink: 1;
    }

    .apps-theme-header .logo img {
        height: 28px;
        max-width: 148px;
        width: auto;
        object-fit: contain;
    }

    .apps-theme-header .links {
        display: none;
    }

    .apps-theme-header .actions {
        display: flex;
        align-items: center;
        gap: 0;
        flex-shrink: 0;
        min-width: 0;
    }

    .apps-theme-header .actions .sep {
        display: none;
        width: 0;
        height: 0;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }

    /* Pure icon: compact landscape hit area */
    .apps-theme-header .actions .mysims,
    .apps-theme-header .actions .menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        height: 36px;
        min-width: 38px;
        padding: 0 8px;
        margin: 0;
        border: none;
        border-radius: 8px;
        background: transparent;
        background-color: transparent;
        box-shadow: none;
        color: var(--apps-theme-color-ink-soft);
        line-height: 1;
    }

    .apps-theme-header .actions .mysims:hover,
    .apps-theme-header .actions .mysims:focus,
    .apps-theme-header .actions .menu-toggle:hover,
    .apps-theme-header .actions .menu-toggle:focus {
        border: none;
        background: var(--apps-theme-color-surface);
        background-color: var(--apps-theme-color-surface);
        box-shadow: none;
        color: var(--apps-theme-color-primary);
    }

    .apps-theme-header .actions .mysims svg {
        width: 19px;
        height: 19px;
        display: block;
        flex-shrink: 0;
        margin: 0px 0px 2px 0px;
    }

    .apps-theme-header .actions .mysims .nav-mysims-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .apps-theme-header .actions .language,
    .apps-theme-header .actions .currency {
        display: inline-flex;
        align-items: center;
    }

    .apps-theme-header .actions .language .lang,
    .apps-theme-header .actions .currency .curr {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        gap: 4px;
        height: 36px;
        min-height: 36px;
        padding: 0 6px;
        margin: 0;
        font-size: 12.5px;
        font-weight: 600;
        line-height: 1;
        color: var(--apps-theme-color-ink-soft);
        text-decoration: none;
        white-space: nowrap;
        border-radius: 8px;
        border: none;
    }

    .apps-theme-header .actions .language .lang:hover,
    .apps-theme-header .actions .currency .curr:hover {
        color: var(--apps-theme-color-primary);
        background: var(--apps-theme-color-surface);
    }

    .apps-theme-header .actions .language .lang svg {
        width: 16px;
        height: 16px;
        display: block;
        flex-shrink: 0;
    }

    .apps-theme-header .actions .language .lang .chev {
        width: 10px;
        height: 10px;
        opacity: 0.75;
    }

    .apps-theme-header .actions .language .lang .label,
    .apps-theme-header .actions .currency .curr .label {
        font-size: 12.5px;
        font-weight: bold;
        line-height: 1;
    }

    .apps-theme-header .actions .menu-toggle svg {
        width: 22px;
        height: 22px;
        display: block;
    }
}

/* Narrow mobile: keep language short label + chevron visible */
@media (max-width: 400px) {
    .apps-theme-header .logo img {
        max-width: 120px;
        height: 24px;
    }

    .apps-theme-header .actions .language .lang {
        min-width: 0;
        padding: 0 6px;
        gap: 3px;
    }

    .apps-theme-header .actions .language .lang .label {
        display: inline;
        font-size: 12px;
    }

    .apps-theme-header .actions .language .lang .chev {
        width: 10px;
        height: 10px;
        flex-shrink: 0;
    }

    .apps-theme-header .actions .currency .curr {
        padding: 0 5px;
        font-size: 12px;
    }

    .apps-theme-header .actions .currency .curr .label {
        font-size: 12px;
    }
}

/* Native reward vouchers (My SIMs Points tab) */
.apps-theme-mysims .rw-voucher-list{display:flex;flex-direction:column;gap:8px;margin:14px 0 12px;}
.apps-theme-mysims .rw-voucher-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--apps-theme-color-line);border-radius:10px;background:var(--apps-theme-color-surface);cursor:pointer;}
.apps-theme-mysims .rw-voucher-row.is-disabled{opacity:.62;cursor:default;}
.apps-theme-mysims .rw-voucher-body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.apps-theme-mysims .rw-voucher-body b{font-size:14px;line-height:1.3;}
.apps-theme-mysims .rw-voucher-body small{font-size:12px;color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rw-voucher-redeem{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;}
.apps-theme-mysims .rw-voucher-iccid-lbl{font-size:13px;font-weight:600;}
.apps-theme-mysims .rw-voucher-redeem select{min-width:min(100%,220px);height:40px;border-radius:8px;border:1px solid var(--apps-theme-color-line);padding:0 10px;}
.apps-theme-mysims .rw-voucher-msg{width:100%;font-size:13px;color:#b42318;}

/* ============================================================
   My SIMs — Points (rp-) & Vouchers (rv-) traveler panes
   Design intent (not a 1:1 CSS dump): light hero, level, steps,
   activity; vouchers separate with invite tools. Theme tokens only.
   ============================================================ */
.apps-theme-mysims .rp-wrap{
  background:linear-gradient(180deg,#F1F7FE 0%,var(--apps-theme-color-surface) 55%);
  margin:0;
  padding:0 0 8px;
  border-radius:var(--apps-theme-radius-xl);
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.apps-theme-mysims .rp{display:flex;flex-direction:column;gap:16px;}
.apps-theme-mysims .rp-card{
  background:var(--apps-theme-color-white);
  border-radius:var(--apps-theme-radius-xl);
  padding:20px 22px;
  box-shadow:var(--apps-theme-shadow-sm);
}
.apps-theme-mysims .rp-card-h{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:12px;
  letter-spacing:.05em;text-transform:uppercase;color:var(--apps-theme-color-ink-soft);margin-bottom:10px;
}
.apps-theme-mysims .rp-card-h svg{width:14px;height:14px;color:var(--apps-theme-color-sky-deep);}

.apps-theme-mysims .rp-banner{
  display:flex;align-items:flex-start;gap:12px;padding:14px 16px;
  background:#E8F5EA;border-radius:var(--apps-theme-radius-lg);color:var(--apps-theme-color-ink);
  font-size:14px;line-height:1.45;
}
.apps-theme-mysims .rp-banner-ic{
  width:28px;height:28px;border-radius:50%;background:var(--apps-theme-color-green);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.apps-theme-mysims .rp-banner-ic svg{width:15px;height:15px;}

.apps-theme-mysims .rp-hero{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--apps-theme-color-white);border-radius:var(--apps-theme-radius-2xl);
  padding:26px 28px;box-shadow:var(--apps-theme-shadow-md);position:relative;overflow:hidden;
}
.apps-theme-mysims .rp-hero::after{
  content:"";position:absolute;right:-60px;top:-70px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(105,205,255,.22),rgba(105,205,255,0) 68%);
  pointer-events:none;z-index:0;
}
.apps-theme-mysims .rp-hero-mid{
  flex-direction:column;align-items:center;text-align:center;gap:0;padding:30px 28px 24px;
}
.apps-theme-mysims .rp-hero-lbl{
  display:inline-flex;align-items:center;gap:7px;justify-content:center;
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:11.5px;
  letter-spacing:.07em;text-transform:uppercase;color:var(--apps-theme-color-sky-deep);
}
.apps-theme-mysims .rp-hero-lbl svg{width:15px;height:15px;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rp-hero-num{
  font-family:var(--apps-theme-font-display);font-weight:900;
  font-size:clamp(42px,7vw,64px);line-height:1;letter-spacing:-.035em;
  color:var(--apps-theme-color-primary);margin:8px 0 6px;
  display:flex;align-items:baseline;justify-content:center;gap:9px;
}
.apps-theme-mysims .rp-hero-num span{
  font-size:.28em;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--apps-theme-color-ink-soft);
}
.apps-theme-mysims .rp-hero-worth{font-size:15px;color:var(--apps-theme-color-ink-muted);margin:0;}
.apps-theme-mysims .rp-hero-worth b,
.apps-theme-mysims .rp-hero-worth .rv-hero-em,
.apps-theme-mysims .rp-hero-worth .rp-howto-em,
.apps-theme-mysims .rv-hero .rv-hero-em{
  font-family:var(--apps-theme-font-display);font-weight:800;font-style:normal;
  color:var(--apps-theme-color-brand);
}
.apps-theme-mysims .rp-hero-note{
  font-size:14px;color:var(--apps-theme-color-ink-muted);max-width:420px;line-height:1.5;margin:8px auto 0;
}
.apps-theme-mysims .rp-chip{
  display:inline-flex;align-items:center;gap:6px;margin-top:14px;
  background:var(--apps-theme-color-cream);color:var(--apps-theme-color-primary);
  font-weight:800;font-size:12px;padding:6px 13px;border-radius:var(--apps-theme-radius-pill);
}
.apps-theme-mysims .rp-chip svg{width:13px;height:13px;}
.apps-theme-mysims .rp-hero-actions{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;margin-top:18px;
}
.apps-theme-mysims .rp-jump{
  display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;
  color:var(--apps-theme-color-sky-deep);text-decoration:none;background:#EDF6FF;
  padding:9px 14px;border-radius:var(--apps-theme-radius-pill);border:0;cursor:pointer;
  font-family:inherit;transition:background var(--apps-theme-duration-fast) var(--apps-theme-ease);
}
.apps-theme-mysims .rp-jump:hover{background:#DDEEFF;}
.apps-theme-mysims .rp-jump svg{width:14px;height:14px;}
.apps-theme-mysims .rp-jump svg:last-child{transform:rotate(-90deg);}

.apps-theme-mysims .rp-pile{position:relative;width:168px;height:150px;margin:8px 0 0;}
.apps-theme-mysims .rp-pile-glow{
  position:absolute;inset:-20% -14%;border-radius:50%;z-index:0;
  background:radial-gradient(circle,rgba(255,206,58,.45),rgba(255,206,58,.12) 45%,rgba(255,206,58,0) 70%);
  animation:apps-rp-glow 2.8s var(--apps-theme-ease) infinite;
}
.apps-theme-mysims .rp-pile-svg,
.apps-theme-mysims .rv-tickets{
  position:relative;z-index:1;width:100%;height:100%;
  animation:apps-rp-float 4.2s ease-in-out infinite;
  filter:drop-shadow(0 10px 16px rgba(11,63,103,.16));
}
@keyframes apps-rp-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes apps-rp-glow{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.05)}}
@media (prefers-reduced-motion:reduce){
  .apps-theme-mysims .rp-pile-svg,
  .apps-theme-mysims .rv-tickets,
  .apps-theme-mysims .rp-pile-glow{animation:none;}
}

.apps-theme-mysims .rp-hero-num.rp-shine{
  background:linear-gradient(100deg,var(--apps-theme-color-primary) 0%,var(--apps-theme-color-primary) 36%,#69CDFF 47%,#FFF3C4 52%,#69CDFF 57%,var(--apps-theme-color-primary) 68%,var(--apps-theme-color-primary) 100%);
  background-size:280% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:apps-rp-shine 3.4s ease-in-out infinite;
}
.apps-theme-mysims .rp-hero-num.rp-shine>span{-webkit-text-fill-color:var(--apps-theme-color-ink-soft);}
@keyframes apps-rp-shine{0%{background-position:120% 0}55%,100%{background-position:-20% 0}}
@media (prefers-reduced-motion:reduce){
  .apps-theme-mysims .rp-hero-num.rp-shine{
    animation:none;background:none;-webkit-text-fill-color:var(--apps-theme-color-primary);
  }
}

.apps-theme-mysims .rp-level-bare{
  width:100%;margin-top:26px;padding-top:22px;border-top:1px solid var(--apps-theme-color-line);text-align:left;
}
.apps-theme-mysims .rp-level-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.apps-theme-mysims .rp-lv-badge{
  display:inline-flex;align-items:center;gap:7px;background:var(--apps-theme-color-primary);color:#fff;
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:13px;padding:7px 15px;
  border-radius:var(--apps-theme-radius-pill);
}
.apps-theme-mysims .rp-lv-badge svg{width:14px;height:14px;color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rp-lv-next{font-size:13px;color:var(--apps-theme-color-ink-muted);}
.apps-theme-mysims .rp-lv-next b{font-family:var(--apps-theme-font-display);font-weight:800;color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rp-lv-bar{height:10px;border-radius:6px;background:#E7EEF6;overflow:hidden;margin:15px 0 11px;}
.apps-theme-mysims .rp-lv-bar i{display:block;height:100%;border-radius:6px;background:var(--apps-theme-color-sky-mid);}
.apps-theme-mysims .rp-lv-foot{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  font-size:13px;color:var(--apps-theme-color-ink-muted);line-height:1.5;
}
.apps-theme-mysims .rp-lv-foot b{font-weight:800;color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rp-lv-num{
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:12px;color:var(--apps-theme-color-ink-faint);
}

.apps-theme-mysims .rp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.apps-theme-mysims .rp-step{
  background:var(--apps-theme-color-white);border-radius:var(--apps-theme-radius-lg);
  padding:16px 18px;box-shadow:var(--apps-theme-shadow-xs);
  display:flex;align-items:flex-start;gap:13px;
}
.apps-theme-mysims .rp-step-ic{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;background:#EDF6FF;
  color:var(--apps-theme-color-sky-deep);display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.apps-theme-mysims .rp-step-ic svg{width:17px;height:17px;}
.apps-theme-mysims .rp-step:nth-child(2) .rp-step-ic{background:#FFF6E2;color:#C08A15;}
.apps-theme-mysims .rp-step:nth-child(3) .rp-step-ic{background:#E8F5EA;color:var(--apps-theme-color-green);}
.apps-theme-mysims .rp-step-big{
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:15.5px;
  color:var(--apps-theme-color-primary);letter-spacing:-.01em;
}
.apps-theme-mysims .rp-step-txt{font-size:12.5px;color:var(--apps-theme-color-ink-muted);line-height:1.45;margin-top:4px;}
@media (max-width:720px){.apps-theme-mysims .rp-steps{grid-template-columns:1fr;}}

.apps-theme-mysims .rp-arow{
  display:flex;align-items:center;gap:12px;padding:12px 0;
  border-bottom:1px solid var(--apps-theme-color-line);
}
.apps-theme-mysims .rp-arow:last-child{border-bottom:none;padding-bottom:2px;}
.apps-theme-mysims .rp-aic{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;background:#EDF6FF;color:var(--apps-theme-color-sky-deep);
}
.apps-theme-mysims .rp-aic-redeem{background:var(--apps-theme-color-cream);color:var(--apps-theme-color-primary);}
.apps-theme-mysims .rp-aic-ref,.apps-theme-mysims .rp-aic-bonus{background:#FBEAF2;color:var(--apps-theme-color-peony);}
.apps-theme-mysims .rp-aic svg{width:15px;height:15px;}
.apps-theme-mysims .rp-abody{flex:1;min-width:0;}
.apps-theme-mysims .rp-at{font-size:13.5px;color:var(--apps-theme-color-ink);line-height:1.35;}
.apps-theme-mysims .rp-ameta{font-size:11.5px;color:var(--apps-theme-color-ink-faint);margin-top:2px;}
.apps-theme-mysims .rp-aamt{
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:15px;white-space:nowrap;
}
.apps-theme-mysims .rp-aamt.pos{color:var(--apps-theme-color-green);}
.apps-theme-mysims .rp-aamt.neg{color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rp-aamt.pending{color:#B8860B;}
.apps-theme-mysims .rp-aamt.is-struck{text-decoration:line-through;opacity:.62;}
.apps-theme-mysims .rp-arow.is-struck .rp-at{opacity:.85;}
.apps-theme-mysims .rp-aic-pending{
  background:#FFF6E2;color:#C08A15;
}
.apps-theme-mysims .rp-pending-strip{
  display:flex;align-items:flex-start;gap:10px;width:100%;max-width:520px;margin:14px auto 0;
  text-align:left;background:#FFF8EB;border:1px solid rgba(192,138,21,.22);
  border-radius:var(--apps-theme-radius-lg);padding:11px 14px;box-sizing:border-box;
}
.apps-theme-mysims .rp-pending-ic{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;margin-top:1px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#FFF0D0;color:#C08A15;
}
.apps-theme-mysims .rp-pending-ic svg{width:14px;height:14px;}
.apps-theme-mysims .rp-pending-txt{
  font-size:13px;line-height:1.45;color:var(--apps-theme-color-ink-soft);
}
.apps-theme-mysims .rp-pending-txt b{color:#8A6508;font-weight:700;}
.apps-theme-mysims .rp-badge-pending{
  display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;
  font-size:10.5px;font-weight:700;letter-spacing:.02em;vertical-align:middle;
  background:#FFF0D0;color:#8A6508;text-transform:uppercase;
}
.apps-theme-mysims .rp-arow.is-pending{opacity:.96;}
.apps-theme-mysims .rp-arow.is-pending .rp-at{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;}
.apps-theme-mysims .rp-empty{font-size:14px;color:var(--apps-theme-color-ink-muted);margin:4px 0 0;line-height:1.5;}
@media (max-width:720px){
  .apps-theme-mysims .rp-pending-strip{max-width:none;margin-top:12px;}
  .apps-theme-mysims .rp-arow.is-pending .rp-aamt{align-self:flex-start;margin-top:2px;}
}
.apps-theme-mysims .rp-hint{font-size:13px;color:var(--apps-theme-color-ink-muted);margin:0 0 12px;line-height:1.45;}

.apps-theme-mysims .rp-acc{
  background:var(--apps-theme-color-white);border-radius:var(--apps-theme-radius-xl);
  box-shadow:var(--apps-theme-shadow-xs);overflow:hidden;
}
.apps-theme-mysims .rp-acc>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
  padding:16px 18px;font-family:var(--apps-theme-font-display);font-weight:800;
  color:var(--apps-theme-color-primary);
}
.apps-theme-mysims .rp-acc>summary::-webkit-details-marker{display:none;}
.apps-theme-mysims .rp-acc-ic{
  width:34px;height:34px;border-radius:50%;background:#EDF6FF;color:var(--apps-theme-color-sky-deep);
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.apps-theme-mysims .rp-acc-ic svg{width:16px;height:16px;}
.apps-theme-mysims .rp-acc-ttl{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px;}
.apps-theme-mysims .rp-acc-ttl small{font-family:var(--apps-theme-font-body);font-weight:600;font-size:12px;color:var(--apps-theme-color-ink-soft);}
.apps-theme-mysims .rp-acc-chev{width:18px;height:18px;color:var(--apps-theme-color-ink-faint);transition:transform var(--apps-theme-duration-fast) var(--apps-theme-ease);}
.apps-theme-mysims .rp-acc[open] .rp-acc-chev{transform:rotate(180deg);}
.apps-theme-mysims .rp-acc-body{padding:0 18px 18px;}

.apps-theme-mysims .rp-apply{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:var(--apps-theme-color-primary);color:#fff;border-radius:var(--apps-theme-radius-xl);
  padding:18px 20px;
}
.apps-theme-mysims .rp-apply-ic{
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.apps-theme-mysims .rp-apply-ic svg{width:18px;height:18px;}
.apps-theme-mysims .rp-apply strong{display:block;font-family:var(--apps-theme-font-display);font-size:15px;}
.apps-theme-mysims .rp-apply p{margin:4px 0 0;font-size:13px;line-height:1.45;opacity:.88;max-width:520px;}
.apps-theme-mysims .rp-apply .rw-btn{margin-left:auto;}

.apps-theme-mysims .rv-pile{width:180px;height:140px;}
.apps-theme-mysims .rv-glow{
  background:radial-gradient(circle,rgba(105,205,255,.5),rgba(105,205,255,.14) 46%,rgba(105,205,255,0) 70%);
}
.apps-theme-mysims .rv-cta{margin-top:16px;}
.apps-theme-mysims .rv-pend{
  margin-top:16px;font-size:13px;color:var(--apps-theme-color-ink-soft);
  display:inline-flex;align-items:center;gap:8px;background:var(--apps-theme-color-cream-soft);
  padding:9px 15px;border-radius:var(--apps-theme-radius-pill);
}
.apps-theme-mysims .rv-pend svg{width:14px;height:14px;}
.apps-theme-mysims .rv-vcount{
  margin-left:8px;font-size:11.5px;font-weight:800;letter-spacing:.02em;
  background:var(--apps-theme-color-primary);color:#fff;border-radius:var(--apps-theme-radius-pill);
  padding:3px 9px;
}
.apps-theme-mysims .rv-tasks{grid-template-columns:1fr;margin-top:14px;}
@media (max-width:720px){.apps-theme-mysims .rv-tasks{grid-template-columns:1fr;}}
@media (min-width:721px){
  .apps-theme-mysims .rv-tasks:has(.rv-task:nth-child(2)){grid-template-columns:repeat(2,1fr);}
}
.apps-theme-mysims .rv-task{align-items:center;}
.apps-theme-mysims .rv-task.done{opacity:.72;}
.apps-theme-mysims .rv-pay{
  margin-left:auto;flex-shrink:0;font-family:var(--apps-theme-font-display);font-weight:800;
  font-size:13px;color:var(--apps-theme-color-primary);background:#EDF6FF;padding:6px 12px;
  border-radius:var(--apps-theme-radius-pill);
}
.apps-theme-mysims .rv-pay.done{background:#E8F5EA;color:var(--apps-theme-color-green);display:inline-flex;align-items:center;}
.apps-theme-mysims .rv-pay.done svg{width:14px;height:14px;}
.apps-theme-mysims .rv-ref-note{font-size:13px;color:var(--apps-theme-color-ink-muted);line-height:1.5;margin:0 0 4px;}
.apps-theme-mysims .rv-ref-grid{display:flex;gap:26px;align-items:flex-start;margin-top:14px;}
.apps-theme-mysims .rv-ref-tools{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;}
.apps-theme-mysims .rv-qr{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px;}
.apps-theme-mysims .rv-qr .rw-qr{width:104px;height:104px;}
.apps-theme-mysims .rv-qr span{
  font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apps-theme-color-ink-faint);
}
@media (max-width:640px){
  .apps-theme-mysims .rv-ref-grid{flex-direction:column;align-items:stretch;}
  .apps-theme-mysims .rv-qr{align-self:flex-start;}
}
.apps-theme-mysims .rv-state{
  display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--apps-theme-radius-pill);
}
.apps-theme-mysims .rv-state.ready{background:#E8F5EA;color:#2C7A3F;}
.apps-theme-mysims .rv-state.pending{background:var(--apps-theme-color-cream);color:#8A6A22;}

/* Empty points hero (CTA right) + rules CTA / overlay */
.apps-theme-mysims .rp-hero-new{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.apps-theme-mysims .rp-hero-new .rp-hero-l{position:relative;z-index:1;min-width:0;flex:1 1 240px;}
.apps-theme-mysims .rp-hero-new .rp-hero-lbl{justify-content:flex-start;}
.apps-theme-mysims .rp-hero-new .rp-hero-num{justify-content:flex-start;margin:6px 0 4px;}
.apps-theme-mysims .rp-hero-new .rp-hero-note{
  font-size:14px;color:var(--apps-theme-color-ink);max-width:380px;line-height:1.5;margin:4px 0 0;text-align:left;
}
.apps-theme-mysims .rp-hero-new .rp-hero-note b{
  font-family:var(--apps-theme-font-display);font-weight:800;color:var(--apps-theme-color-primary);
}
.apps-theme-mysims .rp-hero-new .rw-btn{flex-shrink:0;white-space:nowrap;position:relative;z-index:1;}
.apps-theme-mysims .rp-lv-total{font-size:12.5px;color:var(--apps-theme-color-ink-muted);margin-right:auto;}
.apps-theme-mysims .rp-lv-total b{
  font-family:var(--apps-theme-font-display);font-weight:800;color:var(--apps-theme-color-ink);
}
.apps-theme-mysims .rp-rules,
.apps-theme-mysims button.rp-rules,
.column.main .apps-theme-mysims button.rp-rules,
body.apps-card-dashboard .column.main .apps-theme-mysims button.rp-rules{
  display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  width:auto;max-width:100%;height:auto;min-height:0;
  appearance:none;-webkit-appearance:none;margin:0;font:inherit;text-align:left;
  background:#fff;border:1px solid var(--apps-theme-color-line);
  border-radius:var(--apps-theme-radius-pill);padding:12px 20px;
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:13.5px;
  color:var(--apps-theme-color-primary);cursor:pointer;line-height:1.3;
  box-shadow:var(--apps-theme-shadow-xs);
  transition:box-shadow var(--apps-theme-duration-fast) var(--apps-theme-ease),
    transform var(--apps-theme-duration-fast) var(--apps-theme-ease);
}
.apps-theme-mysims .rp-rules:hover{box-shadow:var(--apps-theme-shadow-sm);transform:translateY(-1px);}
.apps-theme-mysims .rp-rules svg{width:15px;height:15px;flex-shrink:0;}
.apps-theme-mysims .rp-rules svg:first-child{color:var(--apps-theme-color-yellow);}
.apps-theme-mysims .rp-rules svg:last-child{color:var(--apps-theme-color-ink-faint);margin-left:2px;}
.apps-theme-mysims .rp-rules-overlay{
  align-items:center;justify-content:center;padding:20px 16px;overflow:hidden;
}
.apps-theme-mysims .rp-rules-overlay .modal{
  max-width:min(720px,94vw);
  width:100%;
  max-height:min(88vh,860px);
  display:flex;flex-direction:column;
  overflow:hidden;
  padding:0;
}
.apps-theme-mysims .overlay.open.rp-rules-overlay .modal{
  max-height:min(88vh,860px);
  overflow:hidden;
  display:flex;flex-direction:column;
}
.apps-theme-mysims .rp-rules-overlay .modal-head{
  flex:0 0 auto;padding:22px 24px 16px;border-bottom:1px solid var(--apps-theme-color-line);
}
.apps-theme-mysims .rp-rules-overlay .modal-head>div{min-width:0;flex:1;}
.apps-theme-mysims .rp-rules-overlay .modal-head h3{
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:20px;
  color:var(--apps-theme-color-primary);margin:0 0 6px;letter-spacing:-.02em;
}
.apps-theme-mysims .rp-rules-overlay .modal-head p{
  margin:0;font-size:13.5px;line-height:1.45;color:var(--apps-theme-color-ink-muted);
}
.apps-theme-mysims .rp-rules-overlay .modal-body{
  flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;
  -webkit-overflow-scrolling:touch;padding:18px 24px 8px;
}
.apps-theme-mysims .rp-rules-overlay .modal-foot{
  flex:0 0 auto;display:flex;justify-content:flex-end;gap:10px;
  padding:14px 24px 22px;border-top:1px solid var(--apps-theme-color-line);
  background:#fff;
}
.apps-theme-mysims .rl-h{
  font-family:var(--apps-theme-font-display);font-weight:800;font-size:12px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--apps-theme-color-sky-deep);
  margin:24px 0 12px;
}
.apps-theme-mysims .rl-h:first-child{margin-top:0;}
.apps-theme-mysims .rp-howto-note,
.apps-theme-mysims .rp-howto-extra{
  font-size:12px;line-height:1.5;color:var(--apps-theme-color-ink-faint);font-style:italic;margin:14px 0 0;
}
.apps-theme-mysims .rp-howto-em{
  font-family:var(--apps-theme-font-display);font-weight:800;font-style:normal;
  color:var(--apps-theme-color-ink);
}
.apps-theme-mysims .modal-body > p .rp-howto-em,
.apps-theme-mysims .rw-method-d .rp-howto-em,
.apps-theme-mysims .rp-howto-extra .rp-howto-em,
.apps-theme-mysims .modal .rp-howto-extra .rp-howto-em{
  font-family:var(--apps-theme-font-display);font-weight:800;font-style:normal;
  color:var(--apps-theme-color-ink);
}
.apps-theme-mysims .rw-method-t .rp-howto-em{
  font-weight:800;color:var(--apps-theme-color-primary);
}
.apps-theme-mysims .rl-facts .rp-howto-em{
  font-weight:800;color:var(--apps-theme-color-ink);
}
.apps-theme-mysims .rl-facts{
  list-style:none;margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--apps-theme-color-line);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;
}
.apps-theme-mysims .rl-facts li{
  display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.4;
  color:var(--apps-theme-color-ink-muted);font-weight:400;
}
.apps-theme-mysims .rl-facts li b,
.apps-theme-mysims .rl-facts li strong{
  font-weight:700;color:var(--apps-theme-color-ink);
}
.apps-theme-mysims .rl-fact-ic{
  width:18px;height:18px;flex-shrink:0;margin-top:1px;color:var(--apps-theme-color-sky-deep);
  display:inline-flex;align-items:center;justify-content:center;
}
.apps-theme-mysims .rl-fact-ic svg{width:14px;height:14px;}
@media (max-width:560px){
  .apps-theme-mysims .rl-facts{grid-template-columns:1fr;}
}
.apps-theme-mysims .rw-voucher-check{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin:0;
}
.apps-theme-mysims .rw-voucher-check input{width:16px;height:16px;margin:0;}
.apps-theme-mysims .rp-arow.is-disabled{opacity:.72;}
.apps-theme-mysims .rw-method-t b{font-weight:800;color:var(--apps-theme-color-primary);}

/* Traveler points / vouchers: transparent shell; gutters already on .rw-wrap .container */
.apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap),
.apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root,
.column.main .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap),
.column.main .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root,
body.apps-card-dashboard .column.main .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap),
body.apps-card-dashboard .column.main .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root{
  background:transparent;border-bottom:0;
}
.apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap) .container,
.apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root .container,
.column.main .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap) .container,
.column.main .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root .container,
body.apps-card-dashboard .column.main .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap) .container,
body.apps-card-dashboard .column.main .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root .container{
  padding-top:28px;
  padding-bottom:36px;
}
@media (max-width:768px){
  .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap) .container,
  .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root .container,
  .column.main .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap) .container,
  .column.main .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root .container,
  body.apps-card-dashboard .column.main .apps-theme-mysims #tab-mysims-points .rw-wrap:has(.rp-wrap) .container,
  body.apps-card-dashboard .column.main .apps-theme-mysims #tab-mysims-vouchers .rw-wrap.rv-root .container{
    padding-top:20px;
    padding-bottom:28px;
  }
}

/* ---- Voucher redeem modal (design-station aligned) ---- */
.apps-theme-mysims .overlay#mysims-voucher-redeem-overlay,
.apps-theme-mysims .overlay.open#mysims-voucher-redeem-overlay{
  align-items:center;justify-content:center;padding:16px;
  overflow:hidden !important; /* never scroll the dimmed backdrop */
}
.apps-theme-mysims .overlay.open#mysims-voucher-redeem-overlay .rv-redeem-modal{
  max-width:560px;width:min(560px,100%);
  max-height:min(92vh,900px);margin:0 auto;
  overflow:hidden !important; /* beat .overlay.open .modal{overflow:auto} */
  display:flex !important;flex-direction:column;
  padding:0;box-sizing:border-box;
}
.apps-theme-mysims .rv-redeem-modal{
  max-width:560px;width:min(560px,100%);
  max-height:min(92vh,900px);margin:0 auto;
  overflow:hidden;display:flex;flex-direction:column;
  padding:0;box-sizing:border-box;
}
.apps-theme-mysims .rv-redeem-head{
  padding:22px 24px 8px !important;align-items:flex-start;flex:0 0 auto;
}
.apps-theme-mysims .rv-redeem-head-text{flex:1 1 auto;min-width:0;padding-right:8px;}
.apps-theme-mysims .rv-redeem-head h2{
  margin:0 0 8px;font-size:24px;font-weight:800;line-height:1.2;color:#082C45;
}
.apps-theme-mysims .rv-redeem-lead{
  margin:0;font-size:14px;line-height:1.5;color:rgba(8,44,69,.62);
}
.apps-theme-mysims .overlay.open#mysims-voucher-redeem-overlay .rv-redeem-body,
.apps-theme-mysims .rv-redeem-body{
  padding:8px 24px 16px !important;flex:1 1 auto;min-height:0;
  overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.apps-theme-mysims .rv-qty{
  display:flex;align-items:center;gap:12px;margin:0 0 8px;padding:10px 12px;
  border:1px solid var(--apps-theme-color-line);border-radius:14px;background:#fff;
}
.apps-theme-mysims .rv-qty-btn{
  width:40px;height:40px;border-radius:10px;border:1px solid var(--apps-theme-color-line);
  background:#f3f8fd;color:#082C45;font-size:22px;line-height:1;cursor:pointer;flex:0 0 40px;
}
.apps-theme-mysims .rv-qty-btn:disabled{opacity:.4;cursor:default;}
.apps-theme-mysims .rv-qty-val{flex:1 1 auto;min-width:0;text-align:center;}
.apps-theme-mysims .rv-qty-val b{display:block;font-size:22px;font-weight:800;color:#082C45;line-height:1.1;}
.apps-theme-mysims .rv-qty-val span{display:block;margin-top:2px;font-size:12px;color:rgba(8,44,69,.55);}
.apps-theme-mysims .rv-redeem-lbl{
  margin:4px 0 10px;font-size:12px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:rgba(8,44,69,.55);
}
.apps-theme-mysims .rv-redeem-vlist,
.apps-theme-mysims .rv-redeem-cards{
  display:flex;flex-direction:column;gap:8px;margin:0 0 10px;
}
.apps-theme-mysims .rv-vgroup{
  position:relative;display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;
  padding:12px 14px;border:1.5px solid var(--apps-theme-color-line);border-radius:8px;
  background:#fff;cursor:pointer;appearance:none;font:inherit;color:inherit;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
  overflow:hidden;
}
.apps-theme-mysims .rv-vgroup-ic{
  flex:0 0 34px;width:34px;height:34px;border-radius:8px;margin-top:1px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#eef6fc;color:#0B3F67;
}
.apps-theme-mysims .rv-vgroup-ic svg{width:17px;height:17px;display:block;}
.apps-theme-mysims .rv-vgroup.is-on{
  border-color:rgba(11,63,103,.5);background:#f3f8fd;
  box-shadow:0 0 0 1px rgba(11,63,103,.1);
}
.apps-theme-mysims .rv-vgroup.is-on .rv-vgroup-ic{
  background:#0B3F67;color:#fff;
}
.apps-theme-mysims .rv-vgroup-body{flex:1 1 auto;min-width:0;padding-right:2px;}
.apps-theme-mysims .rv-vgroup-body b{display:block;font-size:14px;font-weight:700;color:#082C45;line-height:1.35;}
.apps-theme-mysims .rv-vgroup-body small{display:block;margin-top:2px;font-size:12px;color:rgba(8,44,69,.55);}
.apps-theme-mysims .rv-vgroup-n{
  flex:0 0 auto;align-self:center;margin:0 2px 0 0;padding:0;
  min-width:0;height:auto;border-radius:0;background:transparent;
  font-size:13px;font-weight:700;letter-spacing:.02em;line-height:1;
  color:rgba(8,44,69,.42);font-variant-numeric:tabular-nums;
}
.apps-theme-mysims .rv-vgroup.is-on .rv-vgroup-n{
  background:transparent;color:rgba(11,63,103,.72);
}
.apps-theme-mysims .rv-vgroup-check{
  position:absolute;right:0;bottom:0;width:30px;height:30px;padding:0;
  border-radius:0;background:#0B3F67;color:#fff;
  display:none;pointer-events:none;
  clip-path:polygon(100% 0,100% 100%,0 100%);
  box-shadow:none;
}
.apps-theme-mysims .rv-vgroup-check svg{
  position:absolute;right:3px;bottom:3px;width:11px;height:11px;display:block;
}
.apps-theme-mysims .rv-vgroup.is-on .rv-vgroup-check{display:block;}
.apps-theme-mysims .rv-vrow{
  display:flex;align-items:flex-start;gap:10px;padding:12px 14px;
  border:1px solid var(--apps-theme-color-line);border-radius:12px;
  background:var(--apps-theme-color-surface);cursor:pointer;margin:0;
}
.apps-theme-mysims .rv-vrow:has(input:checked),
.apps-theme-mysims .rv-vrow.is-on{
  border-color:rgba(11,63,103,.45);background:#f3f8fd;box-shadow:0 0 0 1px rgba(11,63,103,.12);
}
.apps-theme-mysims .rv-vrow input{width:16px;height:16px;margin:2px 0 0;flex:0 0 auto;}
.apps-theme-mysims .rv-vrow-body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.apps-theme-mysims .rv-vrow-body b{font-size:14px;line-height:1.35;font-weight:700;color:#082C45;}
.apps-theme-mysims .rv-vrow-body small{font-size:12px;color:rgba(8,44,69,.55);}
.apps-theme-mysims .rv-card-search{
  position:relative;margin:0 0 10px;
}
.apps-theme-mysims .rv-card-search-ic{
  position:absolute;left:12px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;color:rgba(8,44,69,.45);pointer-events:none;
}
.apps-theme-mysims .rv-card-search-ic svg{width:16px;height:16px;display:block;}
.apps-theme-mysims .rv-card-search input{
  width:100%;height:42px;box-sizing:border-box;border-radius:10px;
  border:1px solid var(--apps-theme-color-line);padding:0 12px 0 36px;
  font-size:14px;background:#fff;color:#082C45;
}
.apps-theme-mysims .rv-card{
  display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;
  padding:12px 14px;border:1px solid var(--apps-theme-color-line);border-radius:12px;
  background:#fff;cursor:pointer;appearance:none;font:inherit;color:inherit;
}
.apps-theme-mysims .rv-card i{
  width:16px;height:16px;margin-top:3px;border-radius:50%;flex:0 0 16px;
  border:2px solid rgba(8,44,69,.28);box-sizing:border-box;
}
.apps-theme-mysims .rv-card.is-on{
  border-color:rgba(11,63,103,.45);background:#f3f8fd;
}
.apps-theme-mysims .rv-card.is-on i{
  border-color:#0B3F67;box-shadow:inset 0 0 0 3px #0B3F67;
}
.apps-theme-mysims .rv-card-t{font-size:14px;font-weight:700;color:#082C45;line-height:1.3;}
.apps-theme-mysims .rv-card-d{font-size:12px;color:rgba(8,44,69,.55);margin-top:2px;word-break:break-all;}
.apps-theme-mysims .rv-manual{
  margin:12px 0 14px;border:1px dashed rgba(8,44,69,.2);border-radius:12px;padding:0 14px;
  background:rgba(241,247,254,.55);
}
.apps-theme-mysims .rv-manual > summary{
  cursor:pointer;list-style:none;padding:12px 0;font-size:13px;font-weight:700;color:#0B3F67;
}
.apps-theme-mysims .rv-manual > summary::-webkit-details-marker{display:none;}
.apps-theme-mysims .rv-manual-fields{display:flex;flex-direction:column;gap:12px;padding:0 0 14px;}
.apps-theme-mysims .rv-manual-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;
}
.apps-theme-mysims .rv-bind-msg{font-size:13px;color:#0B3F67;flex:1 1 160px;}
.apps-theme-mysims .rv-field label{
  display:block;margin:0 0 6px;font-size:13px;font-weight:600;color:#082C45;
}
.apps-theme-mysims .rv-field input{
  width:100%;height:42px;box-sizing:border-box;border-radius:10px;
  border:1px solid var(--apps-theme-color-line);padding:0 12px;font-size:14px;
}
.apps-theme-mysims .rv-redeem-note{
  display:flex;gap:10px;align-items:flex-start;margin:4px 0 8px;
  padding:12px 14px;border-radius:12px;background:#f7fafc;
  border:1px solid rgba(8,44,69,.08);font-size:13px;line-height:1.5;color:rgba(8,44,69,.7);
}
.apps-theme-mysims .rv-redeem-note svg{width:18px;height:18px;flex:0 0 18px;margin-top:1px;}
.apps-theme-mysims .rv-redeem-note-body{min-width:0;flex:1 1 auto;}
.apps-theme-mysims .rv-redeem-note-body a{
  color:#0B3F67;font-weight:700;text-decoration:underline;text-underline-offset:2px;
}
.apps-theme-mysims .rv-redeem-note-body p{margin:0;}
.apps-theme-mysims .rv-redeem-foot{
  display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;
  padding:12px 24px 22px !important;flex:0 0 auto;
  border-top:1px solid rgba(8,44,69,.08);background:#fff;
}
.apps-theme-mysims .rv-redeem-foot .rw-btn svg{width:16px;height:16px;margin-right:6px;vertical-align:-3px;}
.apps-theme-mysims .rv-redeem-loading,
.apps-theme-mysims .rv-redeem-empty{
  padding:16px;text-align:center;font-size:13px;color:rgba(8,44,69,.55);
  border:1px dashed rgba(8,44,69,.15);border-radius:12px;
}
.apps-theme-mysims .rv-redeem-pager{margin:0 0 14px;}
.apps-theme-mysims .rv-redeem-pager .pager.rv-pager{
  display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;
  gap:8px;width:100%;
}
.apps-theme-mysims .rv-redeem-pager .rv-pager-nav{
  flex:0 0 auto;white-space:nowrap;padding:0 12px;min-width:0;
}
.apps-theme-mysims .rv-redeem-pager .rv-pager-mid{
  flex:1 1 auto;min-width:0;display:flex;flex-wrap:nowrap;align-items:center;
  justify-content:center;gap:6px;
}
.apps-theme-mysims .rv-redeem-pager .pager-meta{
  margin:0;width:auto;white-space:nowrap;font-size:12.5px;font-weight:700;
  color:rgba(8,44,69,.62);letter-spacing:.01em;
}
.apps-theme-mysims .rv-redeem-pager .rv-pager-window{
  display:none;align-items:center;gap:4px;
}
.apps-theme-mysims .rv-redeem-pager .pager-link.is-current{
  background:#0B3F67;border-color:#0B3F67;color:#fff;
}
@media (min-width:480px){
  .apps-theme-mysims .rv-redeem-pager .rv-pager-window{display:inline-flex;}
  .apps-theme-mysims .rv-redeem-pager .pager-meta{display:none;}
}
@media (max-width:479px){
  .apps-theme-mysims .rv-redeem-pager .rv-pager-nav{
    font-size:12px;padding:0 10px;height:34px;line-height:34px;
  }
}
.apps-theme-mysims .rw-voucher-redeem-hint{margin-top:14px;}
.apps-theme-mysims .rv-state.redeemed{opacity:.75;}
@media (max-width:560px){
  .apps-theme-mysims .rv-redeem-head h2{font-size:20px;}
  .apps-theme-mysims .rv-redeem-foot{justify-content:stretch;}
  .apps-theme-mysims .rv-redeem-foot .rw-btn{flex:1 1 auto;justify-content:center;}
}
