/* ═══════════════════════════════════════════════════════════════════════════
   MWT Theme — Main Stylesheet
   Light/Dark Mode via CSS Variables (set in functions.php wp_head)
   All colors reference var(--mwt-*) — never hardcoded.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── Reset & Base ─────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
}

body {
    margin: 0; padding: 0;
    font-family: var(--mwt-font-body);
    font-weight: 400; line-height: 1.6;
    color: var(--mwt-text);
    background: var(--mwt-bg);
    overflow-x: hidden;
    transition: background 0.3s, color 0.3s;
}

/* Public LP + Customer dashboard headlines — Display font for H1/H2 (large hero
   text) gives the brand its character. H3-H6 stay on Geist (body/UI font) for
   tighter information density. Adopted from MWT Design System v2 Style Guide. */
h1, h2 {
    font-family: var(--mwt-font-display, var(--mwt-font-heading));
    font-weight: 600; line-height: 1.05;
    letter-spacing: -0.025em;
}
h3, h4, h5, h6 {
    font-family: var(--mwt-font-heading);
    font-weight: 600; line-height: 1.3;
    letter-spacing: -0.015em;
}
/* Heading color only in dashboard/app areas — public LP handles its own */
.mwt-main-content h1, .mwt-main-content h2, .mwt-main-content h3,
.mwt-main-content h4, .mwt-main-content h5, .mwt-main-content h6,
.mwt-card h1, .mwt-card h2, .mwt-card h3,
.mwt-card h4, .mwt-card h5, .mwt-card h6 {
    color: var(--mwt-zinc-100);
}

a { color: var(--mwt-primary); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--mwt-primary-dark); }
img { max-width: 100%; height: auto; }

/* ─── Layout Shell ─────────────────────────────────────────────────────────── */

.mwt-layout { min-height: 100vh; width: 100%; }

.mwt-content-wrapper {
    margin-left: var(--mwt-sidebar-width);
    width: calc(100% - var(--mwt-sidebar-width));
    min-height: 100vh;
    display: flex; flex-direction: column;
    transition: margin-left 0.3s, width 0.3s;
}

.mwt-sidebar-collapsed .mwt-content-wrapper {
    margin-left: var(--mwt-sidebar-collapsed);
    width: calc(100% - var(--mwt-sidebar-collapsed));
}

/* Consistent content width across ALL dashboard pages (dashboard, portfolio,
   academy, notebook, tools, profile, …). Previously each page/plugin sprawled
   to whatever the flex area allowed (1602px on a 1920px screen) or set its own
   cap. The FIX is one centered column on the shared <main>: instead of
   centering each child individually (which made width:auto children — like the
   greeting <h2> — shrink to their content and cling to the left), we cap the
   inner column once via symmetric auto-padding. Every direct child then shares
   the exact same left/right edge, so nothing can drift relative to anything
   else. Background still spans the full flex area. Simulator opts out. */
.mwt-main-content {
    flex: 1; min-width: 0; width: 100%;
    padding: 24px;
    /* Center a max-width column: when the area is wider than the cap, the extra
       space becomes equal left/right padding (clamped so it never goes below
       the base 24px gutter). */
    padding-left:  max(24px, calc((100% - var(--mwt-content-max, 1320px)) / 2));
    padding-right: max(24px, calc((100% - var(--mwt-content-max, 1320px)) / 2));
}
/* Full-bleed escape hatch: a child can opt back out to the full width by
   cancelling the centered gutter with negative margins. */
.mwt-main-content > .mwt-full-bleed {
    margin-left:  calc(0px - max(24px, calc((100% - var(--mwt-content-max, 1320px)) / 2)));
    margin-right: calc(0px - max(24px, calc((100% - var(--mwt-content-max, 1320px)) / 2)));
}
/* Pages that want the whole width (e.g. simulator) drop the centered gutter. */
.mwt-main-content[data-wide] { padding-left: 24px; padding-right: 24px; }
/* The tools page opts into full width via .mwt-full-bleed on its wrapper
   (needed for the simulator's chart + book + order panel side by side).

   The negative-margin escape hatch above is mathematically broken on wide
   viewports: its `100%` resolves against the parent's already-narrowed content
   box (the 1320px column), not the parent's full width, so the gutter term
   computes to 0 and the breakout never claws back more than the base 24px.
   When a full-bleed child is present we instead collapse the parent's centering
   gutter to the base 24px directly and neutralise the child margins. */
.mwt-main-content:has(> .mwt-full-bleed) {
    padding-left: 24px;
    padding-right: 24px;
}
.mwt-main-content:has(> .mwt-full-bleed) > .mwt-full-bleed {
    margin-left: 0;
    margin-right: 0;
}

/* ─── Sidebar ──────────────────────────────────────────────────────────────── */

.mwt-sidebar {
    position: fixed; top: 0; left: 0;
    width: var(--mwt-sidebar-width); height: 100vh;
    background: var(--mwt-sidebar-bg);
    border-right: 1px solid var(--mwt-border);
    color: var(--mwt-text-muted);
    z-index: 1000;
    display: flex; flex-direction: column;
    transition: width 0.3s;
    overflow: visible;
}

.mwt-sidebar-collapsed .mwt-sidebar { width: var(--mwt-sidebar-collapsed); }

/* Sidebar Brand */
.mwt-sidebar-brand {
    padding: 24px 20px 20px;
    display: flex; align-items: center; justify-content: center;
    min-height: 80px;
    border-bottom: 1px solid var(--mwt-border);
    flex-shrink: 0;
    overflow: hidden;
}

/* Full logo — visible when expanded */
.mwt-sidebar-logo { transition: opacity 0.3s; }
body.mwt-sidebar-collapsed .mwt-sidebar-logo { display: none !important; }

/* Icon — hidden when expanded, visible when collapsed */
.mwt-sidebar-icon { display: none !important; flex-shrink: 0; }
body.mwt-sidebar-collapsed .mwt-sidebar-icon { display: inline-block !important; }
body.mwt-sidebar-collapsed .mwt-sidebar-icon.mwt-light-only { display: none !important; }
body.mwt-sidebar-collapsed.mwt-light .mwt-sidebar-icon.mwt-light-only { display: inline-block !important; }
body.mwt-sidebar-collapsed.mwt-light .mwt-sidebar-icon.mwt-dark-only { display: none !important; }

.mwt-sidebar-brand-text { overflow: hidden; white-space: nowrap; transition: opacity 0.3s; }
.mwt-sidebar-collapsed .mwt-sidebar-brand-text { opacity: 0; width: 0; }

.mwt-sidebar-brand-name {
    font-family: var(--mwt-font-heading);
    font-size: 1.1rem; font-weight: 700;
    color: var(--mwt-zinc-100); line-height: 1.2;
    letter-spacing: -0.02em;
}

.mwt-sidebar-brand-tagline {
    font-size: 0.7rem; color: var(--mwt-text-muted);
    letter-spacing: 0.04em; text-transform: uppercase;
}

/* Sidebar Toggle */
.mwt-sidebar-toggle {
    position: absolute; top: 28px; right: -14px;
    width: 28px; height: 28px;
    background: var(--mwt-surface); border: 1px solid var(--mwt-border);
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--mwt-text-muted); z-index: 1001;
    transition: all 0.2s;
}

.mwt-sidebar-toggle:hover { background: var(--mwt-border); color: var(--mwt-zinc-100); }

/* Sidebar Navigation */
.mwt-sidebar-nav { flex: 1; padding: 16px 12px; overflow-y: auto; overflow-x: hidden; }
body.mwt-sidebar-collapsed .mwt-sidebar-nav { padding: 16px 8px; }
.mwt-sidebar-nav::-webkit-scrollbar { width: 4px; }
.mwt-sidebar-nav::-webkit-scrollbar-thumb { background: var(--mwt-border); border-radius: 2px; }

.mwt-nav-section {
    padding: 16px 14px 6px; font-size: 0.65rem; font-weight: 600;
    color: var(--mwt-text-muted); text-transform: uppercase;
    letter-spacing: 0.06em; white-space: nowrap; overflow: hidden;
    transition: opacity 0.2s, height 0.2s, padding 0.2s;
}
body.mwt-sidebar-collapsed .mwt-nav-section { opacity: 0; height: 0; padding: 0; margin: 0; overflow: hidden; }

.mwt-nav-item {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 14px; border-radius: 8px;
    color: var(--mwt-text-secondary); font-size: 0.875rem; font-weight: 400;
    transition: all 0.15s; margin-bottom: 2px;
    text-decoration: none; white-space: nowrap; overflow: hidden;
}

.mwt-nav-item:hover { background: var(--mwt-surface); color: var(--mwt-zinc-100); }
.mwt-nav-item.active { background: rgba(var(--mwt-primary-rgb), 0.18); color: var(--mwt-primary); font-weight: 600; }
.mwt-nav-item i { width: 20px; height: 20px; flex-shrink: 0; }
.mwt-sidebar-collapsed .mwt-nav-item span { opacity: 0; width: 0; overflow: hidden; }
body.mwt-sidebar-collapsed .mwt-nav-item { justify-content: center; padding: 10px; }
body.mwt-sidebar-collapsed .mwt-nav-item i { margin: 0; }
body.mwt-sidebar-collapsed .mwt-sidebar-toggle i { transform: rotate(180deg); }

/* ─── View-as banner ─────────────────────────────────────────────────────────
   Shown above the topbar when an admin is impersonating a user via
   ?view_user=. Read-only signals + clear exit affordance. Amber color
   from the warning palette to flag this as an unusual session state. */
.mwt-view-as-banner {
    background: linear-gradient(90deg, rgba(245,158,11,0.16), rgba(245,158,11,0.10));
    border-bottom: 1px solid rgba(245,158,11,0.40);
    color: var(--mwt-zinc-100);
    padding: 0;
    flex-shrink: 0;
}
.mwt-view-as-banner__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 8px 24px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.82rem;
    line-height: 1.4;
}
.mwt-view-as-banner__icon {
    color: #F59E0B;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}
.mwt-view-as-banner__text { flex: 1; }
.mwt-view-as-banner__text strong { color: #F59E0B; font-weight: 600; }
.mwt-view-as-banner__exit {
    background: rgba(245,158,11,0.18);
    border: 1px solid rgba(245,158,11,0.45);
    color: var(--mwt-zinc-100);
    padding: 4px 12px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.78rem;
    transition: all 0.15s;
    flex-shrink: 0;
}
.mwt-view-as-banner__exit:hover {
    background: rgba(245,158,11,0.30);
    border-color: rgba(245,158,11,0.65);
    color: #fff;
}
body.mwt-light .mwt-view-as-banner {
    background: linear-gradient(90deg, #FEF3C7, #FEF9E7);
    border-bottom-color: #F59E0B;
    color: #78350F;
}
body.mwt-light .mwt-view-as-banner__text strong { color: #92400E; }
body.mwt-light .mwt-view-as-banner__exit {
    background: rgba(245,158,11,0.20);
    border-color: #F59E0B;
    color: #78350F;
}
body.mwt-light .mwt-view-as-banner__exit:hover {
    background: #F59E0B;
    color: #fff;
}

/* ─── Topbar ───────────────────────────────────────────────────────────────── */

.mwt-topbar {
    height: var(--mwt-topbar-height);
    background: var(--mwt-sidebar-bg);
    border-bottom: 1px solid var(--mwt-border);
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 24px; flex-shrink: 0;
}

.mwt-topbar-left { display: flex; align-items: center; gap: 12px; }
.mwt-topbar-title { font-size: 1.1rem; font-weight: 600; color: var(--mwt-zinc-100); }
.mwt-topbar-actions { display: flex; align-items: center; gap: 10px; }

/* ─── Live market ticker — 3 position variants ─────────────────────────
   Controlled by admin setting: below / above / inside / hidden
   Rendered by theme.js, placed in DOM by header.php or topbar.php
   ──────────────────────────────────────────────────────────────────── */

.mwt-ticker {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    overflow: hidden;
}
.mwt-ticker-group {
    display: flex;
    align-items: center;
    gap: 8px;
}
.mwt-ticker-group + .mwt-ticker-group {
    padding-left: 10px;
    border-left: 1px solid var(--mwt-border);
    margin-left: 2px;
}

/* ── Variant: BELOW topbar (recommended) ───────────────────────────────
   Thin, dezent strip under the topbar. Subtle bg, small padding. */
.mwt-ticker--below {
    padding: 6px 24px;
    /* Reserve the populated height up front so the bar doesn't grow from
       padding-only (~13px) to its filled height (~42px) once the JS ticker
       data arrives — that delta read as the page "expanding" on load.
       border-box, so this includes padding + the 1px bottom border. */
    min-height: 42px;
    box-sizing: border-box;
    background: var(--mwt-sidebar-bg, #18181B);
    border-bottom: 1px solid var(--mwt-border);
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}
.mwt-ticker--below::-webkit-scrollbar { display: none; }

/* ── Variant: ABOVE topbar (pinned to viewport top) ────────────────── */
.mwt-ticker--above {
    padding: 6px 24px;
    min-height: 42px;
    box-sizing: border-box;
    background: var(--mwt-bg, #09090B);
    border-bottom: 1px solid var(--mwt-border);
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    position: relative;
    z-index: 50;
}
.mwt-ticker--above::-webkit-scrollbar { display: none; }

/* ── Variant: INSIDE topbar (original compact style) ───────────────── */
.mwt-ticker--inside {
    flex: 1;
    justify-content: center;
    padding: 0 16px;
}

/* ── Pills (shared across all positions) ───────────────────────────── */
.mwt-ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    font-size: 0.75rem;
    font-family: ui-monospace, "SF Mono", Consolas, monospace;
    border-radius: 6px;
    background: var(--mwt-card, rgba(255,255,255,0.03));
    border: 1px solid var(--mwt-border);
    color: var(--mwt-text);
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.mwt-ticker--below .mwt-ticker-item,
.mwt-ticker--above .mwt-ticker-item {
    /* Even more subtle in strip mode */
    background: transparent;
    border-color: transparent;
    padding: 2px 6px;
}
.mwt-ticker--below .mwt-ticker-item:hover,
.mwt-ticker--above .mwt-ticker-item:hover {
    background: var(--mwt-card, rgba(255,255,255,0.05));
    border-color: var(--mwt-border);
}
.mwt-ticker--inside .mwt-ticker-item:hover {
    border-color: var(--mwt-primary);
}

.mwt-ticker-symbol {
    font-weight: 700;
    color: var(--mwt-text-muted, var(--mwt-zinc-400));
    letter-spacing: 0.03em;
}
/* Inline icon next to the symbol — kept compact (14px) so it doesn't
   blow up the topbar height. The SVG itself is 32×32 viewBox so it
   scales cleanly. flex-shrink:0 prevents the icon from squishing when
   the ticker scrolls horizontally on narrow viewports. */
.mwt-ticker-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 0;
}
.mwt-ticker-icon svg {
    width: 14px;
    height: 14px;
    display: block;
}
/* Vertical divider between asset groups (crypto | forex | macro) —
   uses a 'spacer' ticker-item with no content but a 1px right-border. */
.mwt-ticker-divider {
    width: 1px !important;
    height: 14px;
    background: var(--mwt-border) !important;
    padding: 0 !important;
    margin: 0 4px;
    border: 0 !important;
    align-self: center;
    flex-shrink: 0;
}
.mwt-ticker-price {
    font-weight: 600;
    color: var(--mwt-text, var(--mwt-zinc-100));
    font-variant-numeric: tabular-nums;
}
.mwt-ticker-change {
    font-size: 0.7rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.mwt-ticker-change.positive { color: var(--mwt-success, #22C55E); }
.mwt-ticker-change.negative { color: var(--mwt-danger, #EF4444); }
.mwt-ticker-placeholder {
    font-size: 0.72rem;
    color: var(--mwt-text-muted, var(--mwt-zinc-500));
    opacity: 0.5;
}

/* Session pill */
.mwt-ticker-session { gap: 5px; }
.mwt-ticker-session-icon { font-size: 0.9rem; }
.mwt-ticker-session-name {
    font-weight: 700;
    color: var(--mwt-text, var(--mwt-zinc-100));
}
.mwt-ticker-session-utc {
    color: var(--mwt-text-muted, var(--mwt-zinc-400));
    font-variant-numeric: tabular-nums;
    font-size: 0.7rem;
    margin-left: 4px;
    padding: 1px 5px;
    background: rgba(255,255,255,0.04);
    border-radius: 3px;
}
.mwt-ticker-session-remain {
    color: var(--mwt-text-muted, var(--mwt-zinc-500));
    font-size: 0.7rem;
    font-variant-numeric: tabular-nums;
}
.mwt-ticker-session.session-overlap {
    border-color: var(--mwt-primary, #2870ED);
    background: rgba(40,112,237, 0.06);
}
.mwt-ticker-session.session-overlap .mwt-ticker-session-name {
    color: var(--mwt-primary, #2870ED);
}
.mwt-ticker--inside .mwt-ticker-session.session-asian   { border-color: rgba(234, 179, 8, 0.25); }
.mwt-ticker--inside .mwt-ticker-session.session-london  { border-color: rgba(59, 130, 246, 0.25); }
.mwt-ticker--inside .mwt-ticker-session.session-ny      { border-color: rgba(239, 68, 68, 0.25); }
.mwt-ticker--inside .mwt-ticker-session.session-late    { border-color: rgba(167, 139, 250, 0.25); }

/* Tip pill */
.mwt-ticker-tip {
    color: var(--mwt-text-muted, var(--mwt-zinc-400));
    font-family: inherit;
    font-size: 0.74rem;
}
.mwt-ticker--inside .mwt-ticker-tip {
    background: rgba(40,112,237, 0.06);
    border-color: rgba(40,112,237, 0.2);
    color: var(--mwt-text, var(--mwt-zinc-100));
}
.mwt-ticker-tip-icon { font-size: 0.85rem; }

/* Weekend warning */
.mwt-ticker-warn {
    color: var(--mwt-danger, #EF4444);
    font-family: inherit;
    font-weight: 600;
    font-size: 0.74rem;
}
.mwt-ticker--inside .mwt-ticker-warn {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.3);
}
.mwt-ticker-warn-icon { font-size: 0.9rem; }

/* Light mode */
body.mwt-light .mwt-ticker--below,
body.mwt-light .mwt-ticker--above {
    background: #FAFAFA;
    border-bottom-color: #E5E7EB;
}
body.mwt-light .mwt-ticker-session-utc { background: rgba(15, 23, 42, 0.05); }

/* Responsive — applies to all variants */
@media (max-width: 1440px) {
    .mwt-ticker--inside .mwt-ticker-tip,
    .mwt-ticker--inside .mwt-ticker-warn { display: none; }
}
@media (max-width: 1280px) {
    .mwt-ticker--inside .mwt-ticker-prices .mwt-ticker-change { display: none; }
    .mwt-ticker--inside .mwt-ticker-session-remain { display: none; }
}
@media (max-width: 1180px) {
    .mwt-ticker--inside .mwt-ticker-prices .mwt-ticker-item:nth-child(3) { display: none; }
}
@media (max-width: 1024px) {
    .mwt-ticker--inside { display: none; }
    /* below/above stay visible on mobile — they're in their own row,
       and can horizontally scroll if content overflows */
    .mwt-ticker--below,
    .mwt-ticker--above {
        padding: 5px 12px;
        min-height: 36px;
        font-size: 0.72rem;
    }
}

/* Avatar + User dropdown */
.mwt-user-menu { position: relative; }

.mwt-user-trigger {
    display: flex; align-items: center; gap: 8px;
    padding: 4px 6px 4px 4px; border-radius: 10px;
    cursor: pointer; transition: background 0.15s;
    border: none; background: none; color: var(--mwt-text);
}

.mwt-user-trigger:hover { background: var(--mwt-surface); }

.mwt-user-avatar {
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--mwt-surface); flex-shrink: 0;
    object-fit: cover;
}

.mwt-user-trigger-name { font-size: 0.82rem; font-weight: 500; color: var(--mwt-zinc-200); }
.mwt-user-trigger-role { font-size: 0.65rem; color: var(--mwt-text-muted); }
.mwt-user-trigger-chevron { color: var(--mwt-text-muted); transition: transform 0.2s; }
.mwt-user-menu.open .mwt-user-trigger-chevron { transform: rotate(180deg); }

/* Dropdown */
.mwt-user-dropdown {
    display: none; position: absolute; top: calc(100% + 8px); right: 0;
    width: 240px;
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.25);
    z-index: 1001; overflow: hidden;
}

.mwt-user-menu.open .mwt-user-dropdown { display: block; }

.mwt-user-dropdown-header {
    padding: 14px 16px; border-bottom: 1px solid var(--mwt-border);
    display: flex; align-items: center; gap: 10px;
}

.mwt-user-dropdown-name { font-size: 0.85rem; font-weight: 600; color: var(--mwt-zinc-100); }
.mwt-user-dropdown-email { font-size: 0.72rem; color: var(--mwt-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.mwt-user-dropdown-links { padding: 6px; }

.mwt-user-dropdown-item {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 12px; border-radius: 8px;
    font-size: 0.82rem; color: var(--mwt-text-secondary);
    text-decoration: none; transition: all 0.15s;
}

.mwt-user-dropdown-item:hover { background: var(--mwt-surface); color: var(--mwt-zinc-100); }
.mwt-user-dropdown-item i { width: 16px; height: 16px; flex-shrink: 0; }

.mwt-user-dropdown-divider { height: 1px; background: var(--mwt-border); margin: 4px 6px; }

.mwt-user-dropdown-item--danger { color: var(--mwt-danger); }
.mwt-user-dropdown-item--danger:hover { background: rgba(239,68,68,0.06); }

/* Theme toggle */
.mwt-theme-btn {
    width: 32px; height: 32px; border-radius: 8px;
    border: 1px solid var(--mwt-border); background: transparent;
    color: var(--mwt-text-muted); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.85rem; transition: all 0.15s;
}
.mwt-theme-btn:hover { background: var(--mwt-surface); color: var(--mwt-zinc-100); }

/* Admin badges */
.mwt-admin-badge {
    font-size: 0.6rem; font-weight: 700; padding: 2px 6px;
    border-radius: 4px; background: rgba(239,68,68,0.12);
    color: var(--mwt-danger); text-transform: uppercase; letter-spacing: 0.05em;
}

.mwt-topbar-role-badge {
    font-size: 0.62rem; font-weight: 600; padding: 2px 8px;
    border-radius: 10px; background: rgba(var(--mwt-primary-rgb),0.12);
    color: var(--mwt-primary); text-transform: uppercase; letter-spacing: 0.04em;
}

/* View-as switcher */
.mwt-view-as {
    display: inline-flex; align-items: center; gap: 2px;
    background: var(--mwt-surface); border-radius: 8px; padding: 2px;
}

.mwt-view-as a {
    padding: 4px 12px; border-radius: 6px; font-size: 0.7rem;
    font-weight: 600; color: var(--mwt-text-muted);
    text-decoration: none; transition: all 0.15s;
}

.mwt-view-as a.active { background: var(--mwt-primary); color: #fff; }
.mwt-view-as a:hover:not(.active) { color: var(--mwt-zinc-100); }

/* ─── Cards ────────────────────────────────────────────────────────────────── */

.mwt-card {
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    border-radius: 12px; padding: 24px;
    transition: border-color 0.2s;
}

.mwt-card:hover { border-color: var(--mwt-border-light); }

.mwt-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.mwt-card-title { font-size: 0.95rem; font-weight: 600; color: var(--mwt-zinc-100); margin: 0; }

/* ─── Stat Cards ───────────────────────────────────────────────────────────── */

.mwt-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }

.mwt-stat {
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    border-radius: 12px; padding: 20px;
    display: flex; align-items: center; gap: 14px;
}

.mwt-stat-icon {
    width: 44px; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

.mwt-stat-icon--primary { background: rgba(var(--mwt-primary-rgb),0.1); color: var(--mwt-primary); }
.mwt-stat-icon--success { background: rgba(34,197,94,0.08); color: var(--mwt-success); }
.mwt-stat-icon--warning { background: rgba(245,158,11,0.08); color: var(--mwt-warning); }
.mwt-stat-icon--accent { background: rgba(139,92,246,0.08); color: var(--mwt-accent); }

.mwt-stat-value { font-size: 1.3rem; font-weight: 700; color: var(--mwt-zinc-100); font-variant-numeric: tabular-nums; }
.mwt-stat-label { font-size: 0.72rem; color: var(--mwt-text-muted); text-transform: uppercase; letter-spacing: 0.04em; }

/* ─── Buttons ──────────────────────────────────────────────────────────────── */

.mwt-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px; border-radius: 8px;
    font-size: 0.82rem; font-weight: 500; font-family: inherit;
    cursor: pointer; transition: all 0.15s; border: none; text-decoration: none;
}

.mwt-btn--primary { background: var(--mwt-primary); color: #fff; }
.mwt-btn--primary:hover { background: var(--mwt-primary-dark); color: #fff; }
.mwt-btn--primary:active { transform: scale(0.98); }
.mwt-btn--ghost { background: transparent; border: 1px solid var(--mwt-border); color: var(--mwt-text-secondary); }
.mwt-btn--ghost:hover { border-color: var(--mwt-border-light); color: var(--mwt-zinc-100); background: var(--mwt-surface); }
.mwt-btn--ghost:active { transform: scale(0.98); }
.mwt-btn:focus-visible { outline: 2px solid var(--mwt-primary); outline-offset: 2px; }

/* ─── Badges ───────────────────────────────────────────────────────────────── */

.mwt-badge {
    display: inline-block; padding: 2px 10px; border-radius: 10px;
    font-size: 0.7rem; font-weight: 600; letter-spacing: 0.02em;
}

.mwt-badge--success { background: rgba(34,197,94,0.1); color: var(--mwt-success); }
.mwt-badge--warning { background: rgba(245,158,11,0.1); color: var(--mwt-warning); }
.mwt-badge--danger { background: rgba(239,68,68,0.08); color: var(--mwt-danger); }
.mwt-badge--info { background: rgba(var(--mwt-primary-rgb),0.1); color: var(--mwt-primary); }
.mwt-badge--neutral { background: var(--mwt-surface); color: var(--mwt-text-muted); }
.mwt-badge--accent { background: rgba(139,92,246,0.1); color: var(--mwt-accent); }

/* ─── Tables ───────────────────────────────────────────────────────────────── */

.mwt-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.mwt-table th {
    text-align: left; font-weight: 600; font-size: 0.72rem;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--mwt-text-muted); padding: 10px 12px;
    border-bottom: 1px solid var(--mwt-border); background: var(--mwt-surface);
}
.mwt-table td { padding: 10px 12px; border-bottom: 1px solid var(--mwt-border); color: var(--mwt-text); }
.mwt-table tr:hover td { background: var(--mwt-surface); }

/* ─── Tabs ─────────────────────────────────────────────────────────────────── */

.mwt-dashboard-tabs {
    display: flex; gap: 4px; margin-bottom: 24px;
    border-bottom: 1px solid var(--mwt-border); padding-bottom: 0;
}

.mwt-tab {
    display: flex; align-items: center; gap: 6px;
    padding: 10px 16px; font-size: 0.82rem; font-weight: 500;
    color: var(--mwt-text-muted); border-bottom: 2px solid transparent;
    text-decoration: none; transition: all 0.15s; margin-bottom: -1px;
}

.mwt-tab:hover { color: var(--mwt-zinc-100); }
.mwt-tab.active { color: var(--mwt-primary); border-bottom-color: var(--mwt-primary); }

/* ─── Forms ────────────────────────────────────────────────────────────────── */

.mwt-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.mwt-form-field { margin-bottom: 14px; }
.mwt-form-field label {
    display: block; font-size: 0.75rem; font-weight: 500;
    color: var(--mwt-text-secondary); margin-bottom: 6px;
}

.mwt-form-field input, .mwt-form-field select, .mwt-form-field textarea {
    width: 100%; padding: 10px 14px; border: 1px solid var(--mwt-input-border);
    border-radius: 8px; background: var(--mwt-input-bg); color: var(--mwt-text);
    font-size: 0.85rem; font-family: inherit; transition: border-color 0.2s;
}

.mwt-form-field input:focus, .mwt-form-field select:focus {
    outline: none; border-color: var(--mwt-primary);
    box-shadow: 0 0 0 3px rgba(var(--mwt-primary-rgb),0.1);
}

.mwt-form-field input::placeholder { color: var(--mwt-text-muted); }
.mwt-form-field small { font-size: 0.72rem; color: var(--mwt-text-muted); margin-top: 4px; display: block; }

/* Form messages */
/* form-msg: see Auth section below for full definition */

/* ─── Loading ──────────────────────────────────────────────────────────────── */

.mwt-dash-loading { text-align: center; padding: 60px 20px; color: var(--mwt-text-muted); }
.mwt-spinner {
    width: 28px; height: 28px; border: 2px solid var(--mwt-border);
    border-top-color: var(--mwt-primary); border-radius: 50%;
    animation: mwt-spin 0.6s linear infinite; margin: 0 auto 12px;
}
@keyframes mwt-spin { to { transform: rotate(360deg); } }

/* Stat values — solid, no animation */

/* ─── Paywall ──────────────────────────────────────────────────────────────── */

.mwt-paywall { display: flex; align-items: center; justify-content: center; min-height: 60vh; padding: 40px 24px; }
.mwt-paywall-card { max-width: 640px; width: 100%; text-align: center; }
.mwt-paywall-link { display: inline-flex; align-items: center; gap: 6px; color: var(--mwt-text-muted); font-size: 0.82rem; }
.mwt-paywall-plans { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }


/* ─── Auth Pages — Centered Card ───────────────────────────────────────────── */

/* ─── Auth: Split-Screen Layout ───────────────────────────────────────────── */
.mwt-auth-page {
    height: 100vh; display: flex;
    background: var(--mwt-bg);
    font-family: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
    overflow: hidden;
}
.mwt-auth-split {
    display: grid; grid-template-columns: 1fr 1fr;
    width: 100%; height: 100vh;
    padding: 16px; gap: 0;
}

/* Left: Form Side */
.mwt-auth-left {
    display: flex; flex-direction: column; align-items: center;
    padding: 40px; background: var(--mwt-bg);
    overflow-y: auto;
}
/* margin:auto centers a short form vertically but collapses when the form is
   taller than the viewport, so the top stays reachable (justify-content:center
   would clip the top of an overflowing column). */
.mwt-auth-form-wrap {
    width: 100%; max-width: 420px; margin: auto 0;
}

/* Brand — vertical bar style (like reference) */
.mwt-auth-brand {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 40px;
}
.mwt-auth-brand-bar {
    width: 3px; height: 44px; border-radius: 2px;
    background: var(--mwt-primary);
    flex-shrink: 0;
}
.mwt-auth-brand-name { font-size: 1.2rem; font-weight: 700; color: var(--mwt-primary); letter-spacing: -0.02em; }
.mwt-auth-brand-sub { font-size: 0.65rem; color: var(--mwt-text-muted); letter-spacing: 0.06em; text-transform: uppercase; margin-top: 2px; }

/* Footer */
.mwt-auth-footer { text-align: left; padding: 24px 0 0; font-size: 0.68rem; color: var(--mwt-text-muted); font-family: var(--mwt-font-mono); margin-top: auto; }

/* Right: Image / Animated Side — floating card effect */
.mwt-auth-right {
    position: relative; overflow: hidden;
    border-radius: 24px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.04);
}

/* Default: Animated gradient mesh — DARK */
.mwt-auth-right--animated {
    background: #050709;
}

/* ── Orbs v3 — punchy, saturated, less blur ────────────────── */
.mwt-auth-orb {
    position: absolute; border-radius: 50%;
    will-change: transform, margin; pointer-events: none;
    transition: margin 0.15s ease-out;
}
.mwt-auth-orb--1 {
    width: 450px; height: 450px; top: -10%; left: -10%;
    background: radial-gradient(circle, rgba(40,112,237,0.6) 0%, rgba(40,112,237,0.15) 40%, transparent 60%);
    filter: blur(30px); animation: mwt-orb-a 8s ease-in-out infinite;
}
.mwt-auth-orb--2 {
    width: 380px; height: 380px; bottom: -10%; right: -10%;
    background: radial-gradient(circle, rgba(139,92,246,0.55) 0%, rgba(139,92,246,0.12) 40%, transparent 60%);
    filter: blur(28px); animation: mwt-orb-b 11s ease-in-out infinite;
}
.mwt-auth-orb--3 {
    width: 320px; height: 320px; top: 30%; left: 20%;
    background: radial-gradient(circle, rgba(14,165,233,0.5) 0%, rgba(14,165,233,0.1) 40%, transparent 60%);
    filter: blur(25px); animation: mwt-orb-c 9s ease-in-out infinite;
}
.mwt-auth-orb--4 {
    width: 240px; height: 240px; top: 10%; right: 5%;
    background: radial-gradient(circle, rgba(236,72,153,0.5) 0%, rgba(236,72,153,0.1) 40%, transparent 60%);
    filter: blur(22px); animation: mwt-orb-d 7s ease-in-out infinite;
}
.mwt-auth-orb--5 {
    width: 280px; height: 280px; bottom: 15%; left: 5%;
    background: radial-gradient(circle, rgba(40,112,237,0.5) 0%, rgba(40,112,237,0.1) 40%, transparent 60%);
    filter: blur(25px); animation: mwt-orb-e 12s ease-in-out infinite;
}
.mwt-auth-orb--6 {
    width: 350px; height: 350px; top: 50%; right: -8%;
    background: radial-gradient(circle, rgba(45,212,191,0.45) 0%, rgba(45,212,191,0.1) 40%, transparent 60%);
    filter: blur(28px); animation: mwt-orb-f 10s ease-in-out infinite;
}
.mwt-auth-orb--7 {
    width: 160px; height: 160px; top: 65%; left: 35%;
    background: radial-gradient(circle, rgba(250,204,21,0.45) 0%, transparent 55%);
    filter: blur(18px); animation: mwt-orb-d 8.5s ease-in-out infinite reverse;
}
.mwt-auth-orb--8 {
    width: 200px; height: 200px; top: 5%; left: 45%;
    background: radial-gradient(circle, rgba(99,102,241,0.4) 0%, transparent 55%);
    filter: blur(20px); animation: mwt-orb-c 7.5s ease-in-out infinite reverse;
}

/* ±120px travel, 15-30% scale swing, fast 7-12s */
@keyframes mwt-orb-a { 0%,100%{transform:translate(0,0) scale(1)} 25%{transform:translate(120px,-70px) scale(1.2)} 50%{transform:translate(-60px,100px) scale(0.85)} 75%{transform:translate(80px,40px) scale(1.1)} }
@keyframes mwt-orb-b { 0%,100%{transform:translate(0,0) scale(1)} 20%{transform:translate(-100px,-60px) scale(1.15)} 50%{transform:translate(80px,-100px) scale(0.85)} 75%{transform:translate(-40px,70px) scale(1.12)} }
@keyframes mwt-orb-c { 0%,100%{transform:translate(0,0) scale(1)} 30%{transform:translate(100px,80px) scale(1.25)} 60%{transform:translate(-90px,-50px) scale(0.8)} }
@keyframes mwt-orb-d { 0%,100%{transform:translate(0,0) scale(1)} 25%{transform:translate(-80px,90px) scale(1.3)} 50%{transform:translate(60px,-70px) scale(0.75)} 75%{transform:translate(-50px,-40px) scale(1.15)} }
@keyframes mwt-orb-e { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(70px,-90px) scale(1.2)} 66%{transform:translate(-80px,60px) scale(0.82)} }
@keyframes mwt-orb-f { 0%,100%{transform:translate(0,0) scale(1)} 20%{transform:translate(-70px,-80px) scale(1.15)} 45%{transform:translate(90px,50px) scale(0.88)} 70%{transform:translate(-40px,70px) scale(1.18)} }

/* ── Particles v3 — bright glowing dots ────────────────────── */
.mwt-auth-particle {
    position: absolute; border-radius: 50%;
    pointer-events: none; will-change: transform, margin, filter;
    transition: margin 0.15s ease-out, filter 0.3s ease;
}
@keyframes mwt-pfloat-1 { 0%,100%{transform:translate(0,0)} 25%{transform:translate(130px,-90px)} 50%{transform:translate(-70px,110px)} 75%{transform:translate(90px,50px)} }
@keyframes mwt-pfloat-2 { 0%,100%{transform:translate(0,0)} 30%{transform:translate(-110px,70px)} 60%{transform:translate(80px,-100px)} }
@keyframes mwt-pfloat-3 { 0%,100%{transform:translate(0,0)} 20%{transform:translate(90px,80px)} 50%{transform:translate(-120px,-40px)} 80%{transform:translate(50px,-90px)} }
@keyframes mwt-pfloat-4 { 0%,100%{transform:translate(0,0)} 35%{transform:translate(-80px,-110px)} 65%{transform:translate(100px,70px)} }
@keyframes mwt-ppulse { 0%,100%{opacity:0.4} 50%{opacity:1} }

.mwt-auth-grid {
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(40,112,237,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(40,112,237,0.06) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
}

/* Custom image: dark overlay */
.mwt-auth-right-overlay--image {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
}

/* Content overlay text (bottom) */
.mwt-auth-right-content {
    position: absolute; bottom: 0; left: 0; right: 0; z-index: 2;
    padding: 48px;
    background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
}
.mwt-auth-right-content h2 {
    font-size: 2rem; font-weight: 800; color: #fff;
    letter-spacing: -0.03em; margin: 0 0 12px; line-height: 1.2;
}
.mwt-auth-right-content p {
    font-size: 0.92rem; color: rgba(255,255,255,0.6);
    margin: 0; line-height: 1.6; max-width: 340px;
}

/* Heading */
.mwt-auth-heading { margin-bottom: 28px; }
.mwt-auth-heading h2 { font-size: 1.4rem; font-weight: 700; letter-spacing: -0.03em; color: var(--mwt-text); margin: 0 0 6px; }
.mwt-auth-heading p { font-size: 0.84rem; color: var(--mwt-text-muted); margin: 0; line-height: 1.5; }

/* Registration form section labels & descriptions */
.mwt-auth-section-label { font-size: 0.92rem; font-weight: 700; color: var(--mwt-text); margin: 8px 0 18px; letter-spacing: -0.01em; }

/* Fields */
.mwt-auth-field { margin-bottom: 20px; }
.mwt-auth-field label { display: block; font-size: 0.78rem; font-weight: 500; color: var(--mwt-text-muted); margin-bottom: 8px; }
.mwt-auth-field input, .mwt-auth-field select {
    width: 100%; padding: 13px 16px; border-radius: 10px; font-size: 0.88rem; font-family: 'Geist', sans-serif;
    border: 1px solid var(--mwt-border); background: var(--mwt-input-bg, rgba(255,255,255,0.03));
    color: var(--mwt-text); outline: none; transition: border-color 0.2s, box-shadow 0.2s;
}
.mwt-auth-field input:focus, .mwt-auth-field select:focus {
    border-color: var(--mwt-primary); box-shadow: 0 0 0 3px rgba(var(--mwt-primary-rgb), 0.12);
}
.mwt-auth-field input::placeholder { color: var(--mwt-zinc-600); }
.mwt-auth-field small { font-size: 0.68rem; color: var(--mwt-text-muted); margin-top: 6px; display: block; }
.mwt-auth-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 2px; }

/* ── Auth field with leading icon + trailing action (password reveal) ── */
.mwt-auth-input-wrap { position: relative; }
.mwt-auth-input-wrap input { padding-left: 44px !important; }
.mwt-auth-input-wrap--with-trailing input { padding-right: 44px !important; }
.mwt-auth-input-icon {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; color: var(--mwt-text-muted); pointer-events: none;
    transition: color 0.2s;
}
.mwt-auth-input-wrap input:focus ~ .mwt-auth-input-icon { color: var(--mwt-primary); }
.mwt-auth-input-trailing {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 28px; height: 28px; border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    background: transparent; border: none; color: var(--mwt-text-muted);
    cursor: pointer; transition: color 0.15s, background 0.15s;
}
.mwt-auth-input-trailing:hover { color: var(--mwt-primary); background: var(--mwt-surface); }
.mwt-auth-input-trailing:focus-visible { outline: 2px solid var(--mwt-primary); outline-offset: 1px; }
.mwt-auth-input-trailing svg { width: 16px; height: 16px; }

/* Inline validity check (green checkmark right-aligned inside field) */
.mwt-auth-input-valid {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 14px; height: 14px; color: var(--mwt-success);
    opacity: 0; transition: opacity 0.2s; pointer-events: none;
}
.mwt-auth-input-wrap--valid .mwt-auth-input-valid { opacity: 1; }
.mwt-auth-input-wrap--valid input { border-color: var(--mwt-success); }

/* Caps-lock warning chip */
.mwt-auth-capslock {
    display: none; align-items: center; gap: 6px;
    padding: 6px 10px; margin-top: 8px;
    background: rgba(245, 158, 11, 0.08);
    border: 1px solid rgba(245, 158, 11, 0.2);
    border-radius: 6px;
    font-size: 0.72rem; color: var(--mwt-warning);
}
.mwt-auth-capslock.is-on { display: inline-flex; }
.mwt-auth-capslock svg { width: 12px; height: 12px; }

/* Label row with optional "Forgot?" link */
.mwt-auth-label-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 8px;
}
.mwt-auth-label-row label { margin-bottom: 0 !important; }
.mwt-auth-label-row a {
    font-size: 0.72rem; color: var(--mwt-primary);
    text-decoration: none; font-weight: 500;
}
.mwt-auth-label-row a:hover { text-decoration: underline; }

/* ═══ Registration 2-Step Layout ═════════════════════════════════════════ */

/* Progress bar (thin track + fill + step labels) */
.mwt-reg-progress { margin-bottom: 28px; }
.mwt-reg-progress-track {
    position: relative; height: 4px; background: var(--mwt-border);
    border-radius: 2px; overflow: hidden;
}
.mwt-reg-progress-fill {
    height: 100%; background: var(--mwt-primary);
    border-radius: 2px; transition: width 0.3s ease;
}
.mwt-reg-progress-steps {
    display: flex; justify-content: space-between;
    margin-top: 8px; font-size: 0.72rem;
    color: var(--mwt-text-muted); letter-spacing: 0.02em;
}
.mwt-reg-progress-step.active { color: var(--mwt-primary); font-weight: 600; }
.mwt-reg-progress-step.done { color: var(--mwt-success); }

/* Plan grid (2-up with active-state styling) */
.mwt-auth-plan-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 14px; margin-bottom: 20px;
}
.mwt-auth-plan { outline: none; }
.mwt-auth-plan:focus-visible {
    box-shadow: 0 0 0 3px rgba(var(--mwt-primary-rgb), 0.25);
}

/* Plan features list */
.mwt-auth-plan-features {
    list-style: none; padding: 0;
    margin: 14px 0 0;
    display: flex; flex-direction: column; gap: 6px;
    text-align: left;
}
.mwt-auth-plan-features li {
    display: flex; align-items: center; gap: 6px;
    font-size: 0.75rem; color: var(--mwt-text-muted);
}
.mwt-auth-plan-features li svg { color: var(--mwt-success); flex-shrink: 0; }

/* Referral code collapsible (details/summary) */
.mwt-reg-referral-details {
    margin: 10px 0 20px; padding: 14px 16px;
    background: var(--mwt-surface);
    border: 1px solid var(--mwt-border); border-radius: 10px;
}
.mwt-reg-referral-details summary {
    display: flex; align-items: center; gap: 8px;
    font-size: 0.82rem; font-weight: 500; color: var(--mwt-text);
    cursor: pointer; list-style: none; user-select: none;
}
.mwt-reg-referral-details summary::-webkit-details-marker { display: none; }
.mwt-reg-referral-details[open] summary svg { transform: rotate(180deg); }

/* Section blocks on step 2 (Account + Billing groups) */
.mwt-reg-section {
    padding-bottom: 22px; margin-bottom: 22px;
    border-bottom: 1px solid var(--mwt-border);
}
.mwt-reg-section:last-of-type { border-bottom: none; padding-bottom: 0; }
.mwt-reg-section-title {
    font-size: 0.72rem; font-weight: 600;
    color: var(--mwt-text-muted); text-transform: uppercase;
    letter-spacing: 0.08em; margin-bottom: 14px;
}
.mwt-reg-section-hint {
    font-size: 0.78rem; color: var(--mwt-text-muted);
    line-height: 1.6; margin: -10px 0 16px;
}

/* Password strength meter */
.mwt-pw-strength {
    display: flex; align-items: center; gap: 10px;
    margin-top: 8px;
}
.mwt-pw-strength-bar {
    flex: 1; height: 3px; background: var(--mwt-border);
    border-radius: 2px; overflow: hidden;
}
.mwt-pw-strength-fill {
    height: 100%; width: 0;
    background: var(--mwt-border);
    transition: width 0.25s ease, background 0.25s ease;
    border-radius: 2px;
}
.mwt-pw-strength-label {
    font-size: 0.68rem; font-weight: 500;
    color: var(--mwt-text-muted);
    min-width: 80px; text-align: right;
    letter-spacing: 0.02em;
}

/* Terms-of-service paragraph */
.mwt-reg-tos {
    font-size: 0.72rem; color: var(--mwt-text-muted);
    line-height: 1.6; margin: 22px 0 16px;
}

/* Btn-row: horizontal on step 2 (where back+submit live side by side) */
#mwt-step-2 .mwt-auth-btn-row {
    flex-direction: row; gap: 12px; margin-top: 8px;
}
#mwt-step-2 .mwt-auth-btn-row .mwt-auth-btn--ghost { flex: 1; }
#mwt-step-2 .mwt-auth-btn-row .mwt-auth-btn:not(.mwt-auth-btn--ghost) { flex: 2; }

@media (max-width: 520px) {
    .mwt-auth-plan-grid { grid-template-columns: 1fr; }
    .mwt-auth-plan-features li { font-size: 0.72rem; }
    #mwt-step-2 .mwt-auth-btn-row { flex-direction: column; }
    #mwt-step-2 .mwt-auth-btn-row .mwt-auth-btn--ghost,
    #mwt-step-2 .mwt-auth-btn-row .mwt-auth-btn:not(.mwt-auth-btn--ghost) { flex: 1; width: 100%; }
}

/* Auth Button */
.mwt-auth-btn {
    width: 100%; padding: 14px 20px; border-radius: 12px; border: none;
    background: var(--mwt-primary); color: #fff; font-size: 0.88rem; font-weight: 600;
    font-family: 'Geist', sans-serif; cursor: pointer; transition: all 0.2s;
}
.mwt-reg-panel > .mwt-auth-btn { margin-top: 24px; }
.mwt-auth-btn:hover { filter: brightness(1.1); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(var(--mwt-primary-rgb), 0.35); }
.mwt-auth-btn:active { transform: translateY(0); }
.mwt-auth-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; filter: none; }

/* Steps */
.mwt-auth-steps { display: flex; justify-content: center; gap: 4px; margin-bottom: 28px; }
.mwt-auth-step { padding: 5px 14px; border-radius: 20px; font-size: 0.68rem; font-weight: 600; background: transparent; color: var(--mwt-text-muted); border: 1px solid var(--mwt-border); transition: all 0.3s; }
.mwt-auth-step.active { background: var(--mwt-primary); color: #fff; border-color: var(--mwt-primary); }
.mwt-auth-step.done { background: rgba(34,197,94,0.1); color: #4ADE80; border-color: rgba(34,197,94,0.3); }

/* Plan Cards */
.mwt-auth-plan { padding: 24px 20px; border: 2px solid var(--mwt-border); border-radius: 16px; text-align: center; cursor: pointer; transition: all 0.2s; }
.mwt-auth-plan:hover { border-color: var(--mwt-primary); }
.mwt-auth-plan.active { border-color: var(--mwt-primary); background: rgba(var(--mwt-primary-rgb), 0.04); }
.mwt-auth-plan-badge { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--mwt-text-muted); margin-bottom: 8px; }
.mwt-auth-plan-price { font-size: 1.3rem; font-weight: 700; color: var(--mwt-text); }
.mwt-auth-plan-period { font-size: 0.78rem; color: var(--mwt-text-muted); margin-top: 4px; }
.mwt-auth-plan-note { font-size: 0.68rem; color: var(--mwt-text-muted); margin-top: 10px; }

/* Ghost Button */
.mwt-auth-btn--ghost { background: transparent !important; border: 1px solid var(--mwt-border) !important; color: var(--mwt-zinc-400) !important; box-shadow: none !important; border-radius: 12px !important; }
.mwt-auth-btn-row { display: flex; flex-direction: column; gap: 8px; margin-top: 28px; }
.mwt-auth-btn--ghost:hover { border-color: var(--mwt-zinc-600) !important; background: rgba(255,255,255,0.03) !important; transform: none !important; filter: none !important; }

/* Divider */
.mwt-auth-divider { display: flex; align-items: center; gap: 12px; margin: 28px 0 24px; font-size: 0.68rem; color: var(--mwt-text-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.mwt-auth-divider::before, .mwt-auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--mwt-border); }

/* Form messages */
.mwt-form-msg { padding: 12px 16px; border-radius: 12px; font-size: 0.82rem; margin-bottom: 16px; display: none; }
.mwt-form-msg--error { background: rgba(239,68,68,0.08); color: #FCA5A5; border: 1px solid rgba(239,68,68,0.15); }
.mwt-form-msg--success { background: rgba(34,197,94,0.08); color: #86EFAC; border: 1px solid rgba(34,197,94,0.15); }
body.mwt-light .mwt-form-msg--error { color: #B91C1C; background: rgba(239,68,68,0.06); }
body.mwt-light .mwt-form-msg--success { color: #15803D; background: rgba(34,197,94,0.06); }

/* Light mode — warm palette, different vibe */
body.mwt-light .mwt-auth-right--animated { background: #F8FAFC; }
body.mwt-light .mwt-auth-right { box-shadow: 0 8px 40px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04); }
body.mwt-light .mwt-auth-orb--1 { background: radial-gradient(circle, rgba(59,130,246,0.25) 0%, transparent 60%); }
body.mwt-light .mwt-auth-orb--2 { background: radial-gradient(circle, rgba(139,92,246,0.2) 0%, transparent 60%); }
body.mwt-light .mwt-auth-orb--3 { background: radial-gradient(circle, rgba(14,165,233,0.18) 0%, transparent 60%); }
body.mwt-light .mwt-auth-orb--4 { background: radial-gradient(circle, rgba(245,158,11,0.22) 0%, transparent 65%); }
body.mwt-light .mwt-auth-orb--5 { background: radial-gradient(circle, rgba(236,72,153,0.15) 0%, transparent 65%); }
body.mwt-light .mwt-auth-orb--6 { background: radial-gradient(circle, rgba(16,185,129,0.18) 0%, transparent 65%); }
body.mwt-light .mwt-auth-orb--7 { background: radial-gradient(circle, rgba(250,204,21,0.2) 0%, transparent 55%); }
body.mwt-light .mwt-auth-orb--8 { background: radial-gradient(circle, rgba(99,102,241,0.18) 0%, transparent 55%); }
body.mwt-light .mwt-auth-grid {
    background-image: linear-gradient(rgba(59,130,246,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(59,130,246,0.06) 1px, transparent 1px);
}
body.mwt-light .mwt-auth-right-content h2 { color: #0F172A; }
body.mwt-light .mwt-auth-right-content p { color: rgba(15,23,42,0.55); }
body.mwt-light .mwt-auth-right-content { background: linear-gradient(0deg, rgba(248,250,252,0.92) 0%, transparent 100%); }
body.mwt-light .mwt-auth-field input, body.mwt-light .mwt-auth-field select {
    background: #F8FAFC; border-color: #E2E8F0;
}

/* Auth body — enforced via body_class filter + template */
.mwt-auth-body { overflow: hidden !important; height: 100vh !important; margin: 0 !important; padding: 0 !important; }
.mwt-auth-body #wpadminbar { display: none !important; }
.mwt-auth-body .mwt-auth-page { position: fixed; inset: 0; z-index: 9999; }

/* Standalone auth card (lost-password, reset-password — not in split layout) */
.mwt-auth-card {
    width: 100%; max-width: 420px; margin: 40px auto;
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    border-radius: 20px; padding: 36px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

/* ─── View-as User Dropdown ────────────────────────────────────────────────── */

.mwt-vud {
    position: absolute; top: calc(100% + 8px); right: 0; width: 320px;
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.3); z-index: 1001; overflow: hidden;
}
.mwt-vud input { width: 100%; padding: 12px 14px; border: none; border-bottom: 1px solid var(--mwt-border); background: transparent; color: var(--mwt-text); font-size: 0.82rem; font-family: inherit; outline: none; }
.mwt-vud input::placeholder { color: var(--mwt-text-muted); }
.mwt-vud-item { display: flex; align-items: center; gap: 8px; padding: 8px 14px; text-decoration: none; color: var(--mwt-text); transition: background 0.15s; cursor: pointer; }
.mwt-vud-item:hover { background: var(--mwt-surface); }

/* ─── Mobile ───────────────────────────────────────────────────────────────── */

.mwt-mobile-menu-btn {
    display: none; background: none; border: none; color: var(--mwt-text-muted);
    cursor: pointer; padding: 4px; border-radius: 6px;
}
.mwt-mobile-menu-btn:hover { background: var(--mwt-surface); color: var(--mwt-zinc-100); }

.mwt-sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 999; }
.mwt-sidebar-overlay.active { display: block; }

@media (max-width: 1024px) {
    .mwt-mobile-menu-btn { display: flex; }
    .mwt-sidebar { transform: translateX(-100%); transition: transform 0.3s ease; position: fixed; z-index: 1000; }
    .mwt-sidebar.mwt-sidebar--open { transform: translateX(0); }
    .mwt-main { margin-left: 0 !important; }
    .mwt-content-wrapper { margin-left: 0 !important; width: 100% !important; }
    .mwt-topbar { left: 0 !important; }
    .mwt-user-trigger-name, .mwt-user-trigger-role { display: none; }
    .mwt-auth-form-inner { padding: 32px 0; max-width: 100%; }
    .mwt-auth-field-row { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    /* Stat grids: 2 columns */
    .mwt-stat-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
    .mwt-stat-value { font-size: 1.05rem !important; }
    .mwt-stat-label { font-size: 0.65rem !important; }
    .mwt-stat { padding: 14px !important; }

    /* Main content padding */
    .mwt-main-content { padding: 16px !important; }

    /* Cards */
    .mwt-card { padding: 16px; border-radius: 12px; }
    .mwt-card-title { font-size: 0.88rem; }

    /* Forms */
    .mwt-form-grid { grid-template-columns: 1fr !important; }

    /* Paywall */
    .mwt-paywall-plans { grid-template-columns: 1fr !important; }

    /* Topbar */
    .mwt-topbar { padding: 0 12px; }
    .mwt-topbar-title { font-size: 0.95rem; }

    /* Tables: scroll wrapper */
    .mwt-table-wrap, [style*="overflow-x:auto"], [style*="overflow-x: auto"] {
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    /* Stat grids: single column on small phones */
    .mwt-stat-grid { grid-template-columns: 1fr !important; }

    /* Topbar: minimal */
    .mwt-topbar-actions { gap: 6px; }
    .mwt-topbar-title { font-size: 0.85rem; }

    /* Cards: tighter */
    .mwt-card { padding: 14px; }

    /* Buttons: full width */
    .mwt-btn { padding: 10px 16px; font-size: 0.8rem; }
}

/* ─── Light Mode Overrides ─────────────────────────────────────────────────── */

body.mwt-light .mwt-sidebar { box-shadow: 1px 0 0 var(--mwt-border); }
body.mwt-light .mwt-topbar { box-shadow: 0 1px 0 var(--mwt-border); }
body.mwt-light .mwt-card { box-shadow: 0 1px 3px rgba(0,0,0,0.06); border-color: #E2E8F0; }
body.mwt-light .mwt-card:hover { border-color: #CBD5E1; }
body.mwt-light .mwt-stat { box-shadow: 0 1px 3px rgba(0,0,0,0.06); border-color: #E2E8F0; }
body.mwt-light .mwt-user-dropdown { box-shadow: 0 10px 40px rgba(0,0,0,0.12); }

/* Buttons */
body.mwt-light .mwt-btn--ghost { border-color: #CBD5E1; color: #334155; }
body.mwt-light .mwt-btn--ghost:hover { background: #F1F5F9; border-color: #94A3B8; color: #0F172A; }

/* Tables */
body.mwt-light .mwt-table th { color: #64748B; border-bottom-color: #E2E8F0; }
body.mwt-light .mwt-table td { border-bottom-color: #F1F5F9; color: #0F172A; }
body.mwt-light .mwt-table tr:hover td { background: #F8FAFC; }

/* Badges */
body.mwt-light .mwt-badge--success { color: #15803D; }
body.mwt-light .mwt-badge--warning { color: #B45309; }
body.mwt-light .mwt-badge--danger { color: #B91C1C; }
body.mwt-light .mwt-badge--neutral { background: #F1F5F9; color: #64748B; }

/* Sidebar navigation */
body.mwt-light .mwt-nav-item { color: #64748B; }
body.mwt-light .mwt-nav-item:hover { background: #F1F5F9; color: #0F172A; }
body.mwt-light .mwt-nav-item.active { background: rgba(var(--mwt-primary-rgb), 0.08); }
body.mwt-light .mwt-nav-section { color: #94A3B8; }

/* Sidebar toggle */
body.mwt-light .mwt-sidebar-toggle { background: #FFFFFF; border-color: #E2E8F0; color: #64748B; }
body.mwt-light .mwt-sidebar-toggle:hover { background: #F1F5F9; color: #0F172A; }

/* Topbar user menu */
body.mwt-light .mwt-user-trigger:hover { background: #F1F5F9; }

/* Inline stat values from dashboard.js */
body.mwt-light .mwt-stat-value { color: #0F172A !important; }
body.mwt-light .mwt-stat-label { color: #64748B !important; }
body.mwt-light .mwt-card-title { color: #0F172A !important; }

/* Notification bell */
body.mwt-light .mwt-notif-panel { background: #FFFFFF; border-color: #E2E8F0; }
body.mwt-light .mwt-notif-item:hover { background: #F8FAFC; }
body.mwt-light .mwt-notif-empty { color: #94A3B8; }

/* ═══ Public Navigation (guests) ═══════════════════════════════════════════ */

.mwt-public-nav {
    position: sticky; top: 0; z-index: 100;
    background: rgba(9,9,11,0.82); border-bottom: 1px solid var(--mwt-border);
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
}
body.mwt-light .mwt-public-nav { background: rgba(248,250,252,0.82); }

.mwt-public-nav-inner {
    max-width: 1120px; margin: 0 auto; padding: 0 24px;
    display: flex; align-items: center; height: 64px;
}

.mwt-public-nav-brand {
    display: flex; align-items: center; gap: 10px; text-decoration: none; margin-right: 40px;
}

.mwt-public-nav-brand span { font-size: 0.95rem; font-weight: 700; color: var(--mwt-zinc-100); letter-spacing: -0.02em; }

.mwt-public-nav-logo {
    width: 32px; height: 32px; border-radius: 8px;
    background: linear-gradient(135deg, var(--mwt-primary), var(--mwt-accent, #8B5CF6));
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-weight: 800; font-size: 0.85rem; flex-shrink: 0;
}

.mwt-public-nav-links { display: flex; gap: 8px; flex: 1; }
.mwt-public-nav-links a {
    padding: 6px 14px; border-radius: 8px; font-size: 0.85rem; font-weight: 500;
    color: var(--mwt-text-muted); text-decoration: none; transition: all 0.15s;
}
.mwt-public-nav-links a:hover { color: var(--mwt-zinc-100); background: var(--mwt-surface); }

.mwt-public-nav-actions { display: flex; gap: 8px; align-items: center; }
.mwt-public-main { min-height: 100vh; }

/* ═══ Landing Page Sections ════════════════════════════════════════════════ */

.mwt-container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }

.mwt-section {
    padding: 80px 0;
}

.mwt-section-label {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.1em; color: var(--mwt-primary); margin-bottom: 12px;
    text-align: center;
}

.mwt-section-title {
    font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800;
    letter-spacing: -0.03em; text-align: center; margin-bottom: 12px;
}

.mwt-section-sub {
    font-size: 0.95rem; color: var(--mwt-text-muted); text-align: center;
    max-width: 600px; margin: 0 auto; line-height: 1.6;
}

/* ═══ Hero ══════════════════════════════════════════════════════════════════ */

[id] { scroll-margin-top: 80px; }

.mwt-hero {
    position: relative; padding: 100px 0 80px; text-align: center; overflow: hidden;
}

.mwt-hero-bg {
    position: absolute; inset: 0; z-index: 0;
    background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(40,112,237,0.14) 0%, transparent 70%);
}

.mwt-hero-badge {
    display: inline-block; padding: 6px 16px; border-radius: 20px;
    background: var(--mwt-surface); border: 1px solid var(--mwt-border);
    font-size: 0.78rem; font-weight: 600; color: var(--mwt-primary);
    letter-spacing: 0.02em; margin-bottom: 28px;
}

.mwt-hero-title {
    font-size: clamp(2.2rem, 5vw, 3.5rem); font-weight: 800;
    letter-spacing: -0.04em; line-height: 1.1; margin-bottom: 20px;
}

.mwt-hero-sub {
    font-size: clamp(0.95rem, 1.5vw, 1.1rem); color: var(--mwt-text-muted);
    max-width: 580px; margin: 0 auto 36px; line-height: 1.7;
}

.mwt-hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

.mwt-hero-stats {
    display: flex; justify-content: center; align-items: center; gap: 32px;
    margin-top: 60px;
}

.mwt-hero-stat-value { font-size: 1.5rem; font-weight: 800; color: var(--mwt-zinc-100); letter-spacing: -0.02em; }
.mwt-hero-stat-label { font-size: 0.78rem; color: var(--mwt-text-muted); margin-top: 2px; }

/* ═══ Feature Cards ════════════════════════════════════════════════════════ */

.mwt-feature-card {
    padding: 28px; border-radius: 14px;
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    transition: border-color 0.2s, transform 0.2s;
}

.mwt-feature-card:hover { border-color: var(--mwt-primary); transform: translateY(-2px); }

/* ═══ Pricing Cards ════════════════════════════════════════════════════════ */

.mwt-pricing-card {
    position: relative; padding: 36px 28px; border-radius: 16px;
    background: var(--mwt-card); border: 1px solid var(--mwt-border);
    display: flex; flex-direction: column;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}

.mwt-pricing-card:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(0,0,0,0.12); }

.mwt-pricing-card--featured { border-color: var(--mwt-primary); }

.mwt-pricing-features {
    list-style: none; padding: 0; margin: 0 0 28px; flex: 1;
}

.mwt-pricing-features li {
    padding: 8px 0; font-size: 0.85rem; color: var(--mwt-text-secondary);
    border-bottom: 1px solid var(--mwt-border);
    display: flex; align-items: center; gap: 8px;
}

.mwt-pricing-features li::before {
    content: '✓'; color: var(--mwt-success); font-weight: 700; font-size: 0.75rem;
}

/* ═══ FAQ ═══════════════════════════════════════════════════════════════════ */

.mwt-faq-item {
    border-bottom: 1px solid var(--mwt-border); cursor: pointer;
}

.mwt-faq-q {
    display: flex; justify-content: space-between; align-items: center;
    padding: 18px 0; font-size: 0.92rem; font-weight: 500; color: var(--mwt-zinc-100);
}

.mwt-faq-q svg { transition: transform 0.3s; color: var(--mwt-text-muted); flex-shrink: 0; }
.mwt-faq-item.open .mwt-faq-q svg { transform: rotate(180deg); }

.mwt-faq-a {
    max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.3s;
    font-size: 0.85rem; color: var(--mwt-text-muted); line-height: 1.7; padding: 0;
}

.mwt-faq-item.open .mwt-faq-a { max-height: 300px; padding-bottom: 18px; }

/* ═══ Footer ═══════════════════════════════════════════════════════════════ */

.mwt-public-footer {
    padding: 32px 0; border-top: 1px solid var(--mwt-border);
}

.mwt-public-footer a { color: var(--mwt-text-muted); font-size: 0.78rem; }
.mwt-public-footer a:hover { color: var(--mwt-primary); }

/* ═══ Landing Responsive ═══════════════════════════════════════════════════ */

@media (max-width: 768px) {
    /* Public Nav */
    .mwt-public-nav-links { display: none; }
    .mwt-public-nav-inner { padding: 0 16px; }
    .mwt-public-nav-brand { margin-right: auto; }
    .mwt-public-nav-brand span { font-size: 0.82rem; }
    .mwt-public-nav-actions .mwt-btn--ghost { display: none; }

    /* Hero */
    .mwt-hero { padding: 50px 0 40px; }
    .mwt-hero-actions { flex-direction: column; align-items: center; }
    .mwt-hero-actions .mwt-btn { width: 100%; max-width: 300px; text-align: center; }
    .mwt-hero-stats { flex-direction: column; gap: 16px; }
    .mwt-hero-stats > div:nth-child(even) { display: none; } /* hide dividers */
    .mwt-hero-stat-value { font-size: 1.2rem; }

    /* Sections */
    .mwt-section { padding: 40px 0; }
    .mwt-container { padding: 0 16px; }
    .mwt-feature-card, .mwt-pricing-card { padding: 20px; }

    /* Grids → 1 column on mobile */
    [style*="grid-template-columns: repeat(3"] { grid-template-columns: 1fr !important; }
    [style*="grid-template-columns:repeat(3"] { grid-template-columns: 1fr !important; }
    [style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: 1fr !important; }
    [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
    [style*="grid-template-columns: 2fr 1fr"] { grid-template-columns: 1fr !important; }
    [style*="grid-template-columns:2fr 1fr"] { grid-template-columns: 1fr !important; }
    [style*="grid-template-columns: 1fr 1fr 1fr"] { grid-template-columns: 1fr !important; }

    /* FAQ */
    .mwt-faq-q { font-size: 0.85rem; padding: 14px 0; }
}

/* ═══ Rank Badges (frontend) ═══════════════════════════════════════════════ */
[class*="mwt-rank--"] { display: inline-block; padding: 3px 10px; border-radius: 10px; font-size: 0.72rem; font-weight: 700; }
.mwt-rank--unranked { background: var(--mwt-surface); color: var(--mwt-text-muted); }
.mwt-rank--bronze { background: rgba(180,83,9,0.12); color: #D97706; }
.mwt-rank--silver { background: rgba(148,163,184,0.15); color: #94A3B8; }
.mwt-rank--gold { background: rgba(212,184,92,0.15); color: #D4B85C; }
.mwt-rank--platinum { background: rgba(40,112,237,0.12); color: #2870ED; }
.mwt-rank--diamond { background: rgba(167,139,250,0.12); color: #A78BFA; }
.mwt-rank--elite { background: rgba(236,72,153,0.12); color: #EC4899; }
.mwt-rank--vip { background: linear-gradient(135deg,rgba(212,184,92,0.15),rgba(236,72,153,0.1)); color: #D4B85C; }
.mwt-rank--vip_bronze { background: linear-gradient(135deg,rgba(205,127,50,0.18),rgba(120,72,28,0.12)); color: #CD7F32; }
.mwt-rank--vip_silver { background: linear-gradient(135deg,rgba(199,205,214,0.18),rgba(120,128,140,0.12)); color: #C7CDD6; }
.mwt-rank--vip_gold { background: linear-gradient(135deg,rgba(232,194,74,0.20),rgba(180,140,30,0.12)); color: #E8C24A; }

/* ─── Notification Bell ───────────────────────────────────────────────────── */
.mwt-notif-btn {
    position: relative; background: none; border: 1px solid var(--mwt-border); border-radius: 10px;
    width: 38px; height: 38px; display: flex; align-items: center; justify-content: center;
    color: var(--mwt-text-muted); cursor: pointer; transition: all 0.2s;
}
.mwt-notif-btn:hover { border-color: var(--mwt-primary); color: var(--mwt-text); }
.mwt-notif-badge {
    position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px;
    background: #EF4444; color: #fff; border-radius: 9px; font-size: 0.6rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center; padding: 0 4px;
    border: 2px solid var(--mwt-bg);
}
.mwt-notif-panel {
    position: absolute; top: calc(100% + 8px); right: 0; width: 360px; max-height: 440px;
    background: var(--mwt-card); border: 1px solid var(--mwt-border); border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.3); z-index: 1000; overflow: hidden;
}
.mwt-notif-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px 16px; border-bottom: 1px solid var(--mwt-border);
    font-size: 0.82rem; color: var(--mwt-text);
}
.mwt-notif-list { max-height: 380px; overflow-y: auto; }
.mwt-notif-item {
    position: relative; padding: 12px 16px 12px 20px; border-bottom: 1px solid var(--mwt-border);
    cursor: pointer; transition: background 0.15s;
}
.mwt-notif-item:hover { background: rgba(var(--mwt-primary-rgb), 0.04); }
.mwt-notif-item.unread { background: rgba(var(--mwt-primary-rgb), 0.06); }
.mwt-notif-item.unread::before {
    content: ''; position: absolute; left: 6px; top: 50%; transform: translateY(-50%);
    width: 6px; height: 6px; border-radius: 50%; background: var(--mwt-primary);
}
.mwt-notif-title { font-size: 0.78rem; font-weight: 600; color: var(--mwt-text); margin-bottom: 2px; }
.mwt-notif-msg { font-size: 0.72rem; color: var(--mwt-text-muted); line-height: 1.4; }
.mwt-notif-time { font-size: 0.62rem; color: var(--mwt-zinc-600); margin-top: 4px; }
.mwt-notif-empty { padding: 40px 20px; text-align: center; color: var(--mwt-text-muted); font-size: 0.82rem; }

/* ─── Welcome Modal ───────────────────────────────────────────────────────── */
.mwt-welcome-overlay {
    position: fixed; inset: 0; z-index: 10002; background: rgba(0,0,0,0.6);
    display: flex; align-items: center; justify-content: center; padding: 20px;
}
.mwt-welcome-card {
    background: var(--mwt-card); border: 1px solid var(--mwt-border); border-radius: 24px;
    max-width: 540px; width: 100%; overflow: hidden;
}

/* ─── Share Buttons ───────────────────────────────────────────────────────── */
.mwt-share-row { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.mwt-share-btn {
    display: flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 10px;
    font-size: 0.75rem; font-weight: 500; border: 1px solid var(--mwt-border);
    background: transparent; color: var(--mwt-text); cursor: pointer; transition: all 0.2s;
    text-decoration: none;
}
.mwt-share-btn:hover { border-color: var(--mwt-primary); background: rgba(var(--mwt-primary-rgb), 0.05); }
.mwt-share-btn--wa { color: #25D366; }
.mwt-share-btn--tg { color: #2AABEE; }
.mwt-share-btn--tw { color: #1DA1F2; }
.mwt-share-btn--em { color: var(--mwt-text-muted); }
.mwt-share-btn--qr { color: var(--mwt-primary); }

/* ─── Dashboard Mobile ─────────────────────────────────────────────────── */
/* ─── Dashboard Mobile ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .mwt-stat-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
    .mwt-table { font-size: 0.72rem; }
    .mwt-table th, .mwt-table td { padding: 8px 6px; white-space: nowrap; }
    .mwt-card { padding: 14px; border-radius: 12px; }
    .mwt-dashboard-tabs { flex-wrap: wrap; gap: 4px; }
    .mwt-tab { font-size: 0.7rem; padding: 7px 10px; }
    .mwt-notif-panel { width: calc(100vw - 32px); right: -100px; }
    .mwt-form-grid { grid-template-columns: 1fr !important; }
    .mwt-main-content { padding: 16px !important; }
    .mwt-topbar { padding: 0 12px; }
    .mwt-view-as, .mwt-view-user-wrap { display: none !important; }
}
@media (max-width: 480px) {
    .mwt-stat-grid { grid-template-columns: 1fr !important; }
    .mwt-topbar-title { font-size: 0.85rem; }
    .mwt-user-trigger-name, .mwt-user-trigger-role { display: none; }
    .mwt-tab { font-size: 0.65rem; padding: 6px 8px; }
    .mwt-notif-panel { width: calc(100vw - 16px); right: -140px; }
    .mwt-share-row { flex-direction: column; }
    .mwt-share-btn { justify-content: center; }
    .mwt-card-title { font-size: 0.9rem; }
    .mwt-stat-value { font-size: 1.1rem; }
    /* Auth page */
    .mwt-auth-left { padding: 20px 16px; }
    .mwt-auth-form-wrap { max-width: 100%; }
    .mwt-auth-steps { gap: 2px; }
    .mwt-auth-step { font-size: 0.6rem; padding: 4px 8px; }
    .mwt-auth-btn { font-size: 0.82rem; padding: 12px 16px; }
}

/* ─── Auth Page Mobile ─────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .mwt-auth-split { grid-template-columns: 1fr; padding: 0; }
    .mwt-auth-right { display: none; }
    .mwt-auth-left { padding: 24px 20px; }
    .mwt-auth-field-row { grid-template-columns: 1fr; }
    .mwt-auth-brand-name { font-size: 1rem; }
    .mwt-auth-heading h2 { font-size: 1.2rem; }
}

/* ─── Welcome Modal Mobile ─────────────────────────────────────────────── */
@media (max-width: 580px) {
    .mwt-welcome-card { max-width: 100%; border-radius: 16px; }
    .mwt-welcome-card [style*="grid-template-columns: repeat(3"] { grid-template-columns: 1fr !important; }
    .mwt-welcome-card [style*="grid-template-columns:repeat(3"] { grid-template-columns: 1fr !important; }
}

/* ─── Ensure all tables are horizontally scrollable ───────────────────── */
.mwt-table { min-width: 500px; }
.mwt-card > div[style*="overflow-x"], .mwt-card > .mwt-table-wrap { -webkit-overflow-scrolling: touch; }

/* ─── Toast Notifications ─────────────────────────────────────────────── */
@keyframes mwt-slide-in { from { transform: translateX(40px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ─── Skeleton Loading ────────────────────────────────────────────────── */
@keyframes mwt-pulse { 0%,100% { opacity: 0.4; } 50% { opacity: 0.7; } }
.mwt-skeleton { background: var(--mwt-surface); border-radius: 4px; animation: mwt-pulse 1.5s ease infinite; }

/* ─── Accessibility: Focus Visible ────────────────────────────────────── */
.mwt-tab:focus-visible, .mwt-btn:focus-visible, button:focus-visible, a:focus-visible {
    outline: 2px solid var(--mwt-primary); outline-offset: 2px; border-radius: 4px;
}

/* ─── Skip Navigation (screen reader) ─────────────────────────────────── */
.mwt-skip-nav {
    position: absolute; left: -9999px; top: 0; z-index: 99999;
    background: var(--mwt-primary); color: #fff; padding: 8px 16px; font-size: 0.82rem;
    border-radius: 0 0 8px 0; text-decoration: none;
}
.mwt-skip-nav:focus { left: 0; }

/* ─── Language Switcher ───────────────────────────────────────────── */
.mwt-lang-option:hover { background: var(--mwt-surface); }

/* ─── Theme-conditional visibility ────────────────────────── */
.mwt-dark .mwt-dark-only { display: inline-block; }
.mwt-dark .mwt-light-only { display: none !important; }
.mwt-light .mwt-dark-only { display: none !important; }
.mwt-light .mwt-light-only { display: inline-block; }

/* ─── EU Distance Marketing Directive — Persistent Withdrawal Button ── */
.mwt-eu-withdrawal {
    padding: 12px 20px; margin-top: 20px; border-top: 1px solid var(--mwt-border);
    text-align: center;
}
.mwt-eu-withdrawal-link {
    color: var(--mwt-text-muted); font-size: 0.78rem; text-decoration: underline;
    text-underline-offset: 3px; transition: color 0.15s;
}
.mwt-eu-withdrawal-link:hover { color: var(--mwt-danger); }

/* ═════════════════════════════════════════════════════════════════════════
   DESIGN-SYSTEM UTILITIES (v2.7)
   Extracted from dashboard.js inline styles. These semantic classes replace
   the 171 repetitive inline-style declarations in dashboard templates.
   Use these consistently — no new inline styles in dashboard.js going forward.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── Vertical spacing (margin-bottom utility on cards/sections) ──────── */
.mwt-stack         { margin-bottom: 20px; }
.mwt-stack--xs     { margin-bottom: 8px; }
.mwt-stack--sm     { margin-bottom: 12px; }
.mwt-stack--md     { margin-bottom: 16px; }
.mwt-stack--lg     { margin-bottom: 24px; }
.mwt-stack--xl     { margin-bottom: 32px; }
.mwt-stack--none   { margin-bottom: 0; }

/* ── Stat grid column modifiers ──────────────────────────────────────── */
.mwt-stat-grid--2  { grid-template-columns: repeat(2, 1fr); }
.mwt-stat-grid--3  { grid-template-columns: repeat(3, 1fr); }
.mwt-stat-grid--4  { grid-template-columns: repeat(4, 1fr); }

/* ── Stat-value semantic colors (replaces inline style="color:var(--mwt-X)") ── */
.mwt-stat-value--primary  { color: var(--mwt-primary); }
.mwt-stat-value--success  { color: var(--mwt-success); }
.mwt-stat-value--warning  { color: var(--mwt-warning); }
.mwt-stat-value--danger   { color: var(--mwt-danger); }
.mwt-stat-value--accent   { color: var(--mwt-accent); }

/* ── Flex rows (extremely common: center + space-between) ────────────── */
.mwt-row {
    display: flex; align-items: center; gap: 12px;
}
.mwt-row--between   { justify-content: space-between; }
.mwt-row--center    { justify-content: center; }
.mwt-row--end       { justify-content: flex-end; }
.mwt-row--wrap      { flex-wrap: wrap; }
.mwt-row--gap-sm    { gap: 6px; }
.mwt-row--gap-lg    { gap: 20px; }

/* ── Avatar circles (initials or image) ──────────────────────────────── */
.mwt-avatar {
    width: 32px; height: 32px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--mwt-zinc-400); font-size: 0.7rem; font-weight: 600;
    background: var(--mwt-zinc-800); flex-shrink: 0; overflow: hidden;
}
.mwt-avatar--lg    { width: 44px; height: 44px; font-size: 0.85rem; }
.mwt-avatar--xl    { width: 72px; height: 72px; font-size: 1.1rem;
                     border: 2px solid var(--mwt-border); }
.mwt-avatar--xxl   { width: 120px; height: 120px; font-size: 1.8rem;
                     border: 3px solid var(--mwt-border); }
.mwt-avatar--gradient {
    background: linear-gradient(135deg, var(--mwt-primary), var(--mwt-accent, #8B5CF6));
    color: #fff;
}
.mwt-avatar img { width: 100%; height: 100%; object-fit: cover; }
img.mwt-avatar { object-fit: cover; display: inline-block; }

/* ── Photo editor overlay buttons (camera icon + remove X) ───────────── */
.mwt-photo-edit-btn {
    position: absolute; bottom: -2px; right: -2px;
    width: 24px; height: 24px; border-radius: 50%;
    background: var(--mwt-primary); color: var(--mwt-primary-ink, #000);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; font-size: 11px;
    border: 2px solid var(--mwt-card);
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    transition: transform 0.15s;
}
.mwt-photo-edit-btn:hover { transform: scale(1.08); }
.mwt-photo-remove-btn {
    position: absolute; top: -2px; right: -2px;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--mwt-danger); color: #fff;
    border: 2px solid var(--mwt-card);
    cursor: pointer; font-size: 10px;
    display: flex; align-items: center; justify-content: center;
}

/* ── Form dividers (banking / tax section headings inside forms) ─────── */
.mwt-form-divider {
    font-size: 0.78rem; font-weight: 600; color: var(--mwt-text-muted);
    text-transform: uppercase; letter-spacing: 0.06em;
    margin: 24px 0 14px; padding-top: 16px;
    border-top: 1px solid var(--mwt-border);
}

/* ── Profile header (avatar + name + badges row at top of profile) ───── */
.mwt-profile-header {
    display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
    padding-bottom: 4px;
}
.mwt-profile-header-info { flex: 1; min-width: 180px; }
.mwt-profile-header-name { margin: 0; font-size: 1.2rem; font-weight: 600; }
.mwt-profile-header-meta { color: var(--mwt-text-muted); font-size: 0.82rem; margin-top: 2px; }
.mwt-profile-header-since { font-size: 0.72rem; color: var(--mwt-text-muted); margin-top: 4px; }
.mwt-profile-header-badges { display: flex; gap: 8px; flex-shrink: 0; }

/* Code-pill inside meta (e.g. referral code) */
.mwt-code-pill {
    background: var(--mwt-surface); padding: 2px 8px; border-radius: 4px;
    color: var(--mwt-primary); font-family: var(--mwt-font-mono); font-size: 0.82rem;
}

/* ── Meta-grid (key/value layout for subscription info, etc.) ────────── */
.mwt-meta-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px; margin-bottom: 20px; font-size: 0.82rem;
    color: var(--mwt-text-muted);
}
.mwt-meta-grid-label {
    color: var(--mwt-text); font-weight: 500; display: block; margin-bottom: 2px;
}

/* ── Data-row (table-row-like row inside a card for key/value pairs) ─── */
.mwt-kv-row {
    display: flex; align-items: baseline; justify-content: space-between;
    padding: 8px 0; border-bottom: 1px solid var(--mwt-border);
    font-size: 0.85rem; gap: 12px;
}
.mwt-kv-row:last-child { border-bottom: 0; }
.mwt-kv-row-key { color: var(--mwt-text-muted); }
.mwt-kv-row-val { color: var(--mwt-text); font-weight: 500; text-align: right; }

/* ── Level dots (L1/L2/L3 commission indicator) ──────────────────────── */
.mwt-level-dot {
    display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    margin-right: 6px; vertical-align: middle;
}
.mwt-level-dot--1  { background: #2870ED; }  /* L1 gold */
.mwt-level-dot--2  { background: #3B82F6; }  /* L2 blue */
.mwt-level-dot--3  { background: #A78BFA; }  /* L3 purple */
.mwt-level-dot--rank { background: #0EA5E9; }  /* rank bonus */

/* ── Totals footer (statement/invoice bottom summary) ────────────────── */
.mwt-totals {
    border-top: 1px solid var(--mwt-border);
    margin-top: 16px; padding-top: 16px;
    display: flex; justify-content: flex-end; gap: 32px;
    font-size: 0.9rem;
}
.mwt-totals-block { text-align: right; }
.mwt-totals-block-label {
    color: var(--mwt-text-muted); font-size: 0.75rem;
}
.mwt-totals-block--grand .mwt-totals-block-label { font-weight: 600; }
.mwt-totals-block--grand .mwt-totals-block-val {
    font-weight: 700; font-size: 1.1rem; color: var(--mwt-zinc-100);
}

/* ── Upgrade card (dark-mode-safe gradient accent for upsells) ────────── */
.mwt-upgrade-card {
    background: linear-gradient(135deg, rgba(40,112,237,0.06), rgba(139,92,246,0.06));
    border: 1px solid rgba(40,112,237,0.2);
    border-radius: 12px; padding: 24px; margin-bottom: 20px;
}
.mwt-upgrade-card-heading {
    display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
}
.mwt-upgrade-card-heading h4 { margin: 0; color: var(--mwt-text); }
.mwt-upgrade-card-body {
    color: var(--mwt-text-muted); font-size: 0.85rem;
    margin-bottom: 16px; line-height: 1.6;
}

/* ── Action zone (delete/dangerous actions) ──────────────────────────── */
.mwt-action-zone {
    padding-top: 20px; border-top: 1px solid var(--mwt-border);
}
.mwt-action-zone h4 {
    color: var(--mwt-zinc-300); font-size: 0.9rem; margin-bottom: 12px;
}
.mwt-action-zone-desc {
    color: var(--mwt-text-muted); font-size: 0.85rem; margin-bottom: 16px;
}

/* ── Danger-card (dashed red border for GDPR/delete sections) ─────────── */
.mwt-danger-card {
    border-color: var(--mwt-danger) !important;
    border-style: dashed !important;
}
.mwt-danger-card .mwt-card-title { color: var(--mwt-danger); }

/* ── Button variants: danger + size modifiers ─────────────────────────── */
.mwt-btn--danger {
    background: transparent; color: var(--mwt-danger);
    border: 1px solid var(--mwt-danger);
}
.mwt-btn--danger:hover {
    background: rgba(239,68,68,0.08); color: var(--mwt-danger);
}
.mwt-btn--sm       { padding: 5px 10px; font-size: 0.72rem; }
.mwt-btn--lg       { padding: 12px 28px; font-size: 0.9rem; }
.mwt-btn--block    { width: 100%; justify-content: center; }

/* ── Muted/secondary text (replaces inline color:var(--mwt-text-muted)) ─ */
.mwt-text-muted    { color: var(--mwt-text-muted); }
.mwt-text-sm       { font-size: 0.82rem; }
.mwt-text-xs       { font-size: 0.72rem; }
.mwt-text-center   { text-align: center; }
.mwt-text-mono     { font-family: var(--mwt-font-mono); font-size: 0.78rem; }

/* ── Empty state ─────────────────────────────────────────────────────── */
.mwt-empty {
    padding: 32px 20px; text-align: center;
    color: var(--mwt-text-muted); font-size: 0.85rem;
}

/* ── Subheading (inside cards, slightly smaller than card-title) ──────── */
.mwt-subheading {
    font-size: 0.82rem; font-weight: 600; color: var(--mwt-zinc-300);
    margin: 20px 0 12px;
}

/* ── Responsive overrides for new utilities ───────────────────────────── */
@media (max-width: 768px) {
    .mwt-stat-grid--3, .mwt-stat-grid--4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .mwt-totals { gap: 20px; font-size: 0.82rem; }
    .mwt-profile-header { gap: 14px; }
}

@media (max-width: 480px) {
    .mwt-stat-grid--2, .mwt-stat-grid--3, .mwt-stat-grid--4 {
        grid-template-columns: 1fr !important;
    }
    .mwt-totals { flex-wrap: wrap; justify-content: space-between; }
}

/* ── Light-mode adjustments for new utilities ─────────────────────────── */
body.mwt-light .mwt-code-pill { background: #F1F5F9; color: var(--mwt-primary); }
body.mwt-light .mwt-avatar { background: #F1F5F9; color: #64748B; }
body.mwt-light .mwt-upgrade-card {
    background: linear-gradient(135deg, rgba(40,112,237,0.05), rgba(139,92,246,0.05));
}
body.mwt-light .mwt-totals-block--grand .mwt-totals-block-val { color: #0F172A; }

/* ── Reduced motion: respect user OS preference ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .lp-marquee-track { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Reusable Modal Component (<dialog>-based, accessible)
   Used by MwtModal.alert/confirm/prompt/open in theme.js
   ═══════════════════════════════════════════════════════════════════════ */

/* Native <dialog> reset + positioning */
dialog.mwt-modal {
    padding: 0; border: none; background: transparent;
    max-width: 500px; width: calc(100% - 40px);
    max-height: calc(100vh - 40px);
    color: var(--mwt-text); /* inherit from body */
}
/* Wider variant for content-heavy modals (connect-exchange, etc.) */
dialog.mwt-modal.mwt-modal--wide { max-width: 760px; }
dialog.mwt-modal.mwt-modal--xl   { max-width: 960px; }
dialog.mwt-modal::backdrop {
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
/* Fallback for older browsers without <dialog> support */
dialog.mwt-modal[open]:not([data-native]) {
    position: fixed; inset: 0; margin: auto;
    z-index: 10001;
}

.mwt-modal-inner {
    background: var(--mwt-card);
    border: 1px solid var(--mwt-border);
    border-radius: 16px;
    overflow: hidden;
    display: flex; flex-direction: column;
    max-height: calc(100vh - 40px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    margin: 0; padding: 0;
}

.mwt-modal-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid var(--mwt-border);
}
.mwt-modal-title {
    margin: 0; font-size: 1rem; font-weight: 600;
    color: var(--mwt-text); letter-spacing: -0.01em;
}
.mwt-modal-close {
    background: transparent; border: none;
    width: 28px; height: 28px; border-radius: 6px;
    color: var(--mwt-text-muted); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.15s, color 0.15s;
}
.mwt-modal-close:hover { background: var(--mwt-surface); color: var(--mwt-text); }
.mwt-modal-close:focus-visible { outline: 2px solid var(--mwt-primary); outline-offset: 2px; }

.mwt-modal-body {
    padding: 20px 22px;
    color: var(--mwt-text-secondary);
    font-size: 0.88rem; line-height: 1.6;
    overflow-y: auto;
}
.mwt-modal-body > :first-child { margin-top: 0; }
.mwt-modal-body > :last-child { margin-bottom: 0; }
.mwt-modal-text { margin: 0 0 12px; }

.mwt-modal-footer {
    display: flex; gap: 10px; justify-content: flex-end;
    padding: 16px 22px;
    border-top: 1px solid var(--mwt-border);
    background: var(--mwt-surface);
}
.mwt-modal-footer .mwt-btn { padding: 10px 18px; font-size: 0.85rem; }

/* Prompt: label + input */
.mwt-modal-label {
    display: block; font-size: 0.78rem; font-weight: 500;
    color: var(--mwt-text-secondary); margin-bottom: 6px;
}
.mwt-modal-input {
    width: 100%; padding: 10px 14px;
    background: var(--mwt-input-bg); color: var(--mwt-text);
    border: 1px solid var(--mwt-input-border); border-radius: 8px;
    font-size: 0.88rem; font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
    outline: none;
}
.mwt-modal-input:focus {
    border-color: var(--mwt-primary);
    box-shadow: 0 0 0 3px rgba(var(--mwt-primary-rgb), 0.12);
}
textarea.mwt-modal-input { resize: vertical; min-height: 80px; line-height: 1.5; }

@media (max-width: 520px) {
    dialog.mwt-modal { width: calc(100% - 24px); }
    .mwt-modal-footer { flex-direction: column-reverse; }
    .mwt-modal-footer .mwt-btn { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Collapsible Profile Sections (Paket 4)
   Used in the agent/customer profile tab: Personal / Banking / Tax groups.
   Built on native <details>/<summary> for zero-JS progressive disclosure.
   ═══════════════════════════════════════════════════════════════════════ */

.mwt-section {
    border-top: 1px solid var(--mwt-border);
}
.mwt-section:first-of-type { border-top: none; }

.mwt-section-summary {
    display: flex; align-items: center; gap: 14px;
    padding: 16px 4px;
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background 0.15s;
    border-radius: 8px;
}
.mwt-section-summary::-webkit-details-marker { display: none; }
.mwt-section-summary:hover { background: var(--mwt-surface); padding-left: 10px; padding-right: 10px; }
.mwt-section-summary:focus-visible {
    outline: 2px solid var(--mwt-primary); outline-offset: 2px;
}

.mwt-section-summary-title {
    display: flex; align-items: center; gap: 10px;
    font-size: 0.95rem; font-weight: 600;
    color: var(--mwt-text);
    flex-shrink: 0;
}
.mwt-section-icon {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--mwt-surface);
    border-radius: 8px;
    font-size: 1rem;
    flex-shrink: 0;
}

.mwt-section-summary-meta {
    flex: 1; min-width: 0;
    font-size: 0.82rem;
    color: var(--mwt-text-muted);
    text-align: right;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mwt-section-badge {
    font-size: 0.65rem !important;
    padding: 2px 8px !important;
}

.mwt-section-chevron {
    width: 16px; height: 16px;
    color: var(--mwt-text-muted);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.mwt-section[open] > .mwt-section-summary .mwt-section-chevron {
    transform: rotate(180deg);
}

.mwt-section-content {
    padding: 8px 4px 20px;
    animation: mwt-section-slide 0.2s ease;
}
@keyframes mwt-section-slide {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.mwt-section-hint {
    margin: 0 0 16px;
    line-height: 1.6;
}

/* Sticky save bar at bottom of the profile sections card */
.mwt-profile-save-bar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding: 16px 4px 4px;
    border-top: 1px solid var(--mwt-border);
}

/* "View all" link at bottom of preview cards (e.g. Recent Commissions) */
.mwt-card-viewall {
    display: block; text-align: center;
    margin-top: 12px;
    font-size: 0.78rem; color: var(--mwt-primary);
    text-decoration: none;
}
.mwt-card-viewall:hover { text-decoration: underline; }

/* Mobile: stack the save bar vertically */
@media (max-width: 520px) {
    .mwt-section-summary { gap: 10px; padding: 14px 4px; }
    .mwt-section-summary-meta { display: none; }
    .mwt-section-summary-title { flex: 1; }
    .mwt-profile-save-bar { flex-direction: column; align-items: stretch; gap: 10px; }
    .mwt-profile-save-bar .mwt-btn { width: 100%; justify-content: center; }
}

/* Light-mode subtle adjustments */
body.mwt-light .mwt-section-icon { background: #F1F5F9; }
body.mwt-light .mwt-section-summary:hover { background: #F8FAFC; }

/* ═══════════════════════════════════════════════════════════════════════
   Paket 9 — Customer Dashboard Polish
   Utility classes to replace inline styles in custProfile/custBilling/
   custSub/secTab. Consistency with agent side (Paket 1 + 4).
   ═══════════════════════════════════════════════════════════════════════ */

/* Key-Value rows (used in subscription meta-grid) */
.mwt-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}
.mwt-kv-row {
    display: flex; flex-direction: column; gap: 2px;
    font-size: 0.82rem;
}
.mwt-kv-label {
    font-weight: 500;
    color: var(--mwt-text);
    font-size: 0.78rem;
}
.mwt-kv-value {
    color: var(--mwt-text-muted);
    font-size: 0.82rem;
}

/* Reactivate / pending payment card (neutral primary-tint) */
.mwt-reactivate-card {
    background: rgba(var(--mwt-primary-rgb, 40,112,237), 0.04);
    border: 1px solid rgba(var(--mwt-primary-rgb, 40,112,237), 0.2);
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 20px;
    text-align: center;
}
.mwt-reactivate-card-title {
    margin: 0 0 8px;
    color: var(--mwt-text);
    font-size: 1rem;
    font-weight: 600;
}
.mwt-reactivate-card-text {
    color: var(--mwt-text-muted);
    font-size: 0.85rem;
    margin: 0 0 20px;
    line-height: 1.6;
}

/* Upgrade-to-lifetime card (gold + violet gradient) */
.mwt-upgrade-card {
    background: linear-gradient(135deg, rgba(40,112,237, 0.06), rgba(139, 92, 246, 0.06));
    border: 1px solid rgba(40,112,237, 0.2);
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 20px;
}

/* Action zone (bottom of subscription: cancel, etc.) */
.mwt-action-zone {
    padding-top: 20px;
    border-top: 1px solid var(--mwt-border);
}
.mwt-action-zone-title {
    color: var(--mwt-text-secondary);
    font-size: 0.9rem;
    font-weight: 500;
    margin: 0 0 8px;
}
.mwt-action-zone-text {
    color: var(--mwt-text-muted);
    font-size: 0.85rem;
    margin: 0 0 16px;
    line-height: 1.6;
}

/* Danger-ghost button variant (for Cancel/Delete-Account) */
.mwt-btn.mwt-btn--danger-ghost {
    background: transparent;
    color: var(--mwt-danger);
    border: 1px solid var(--mwt-danger);
}
.mwt-btn.mwt-btn--danger-ghost:hover {
    background: rgba(239, 68, 68, 0.08);
}

/*
 * Danger-outline variant — used for Cancel Subscription.
 * MUST have the same visual weight as .mwt-btn--primary (EU DMD 2023/2673
 * requires equal prominence for positive/negative actions). Same padding,
 * same font-size, same font-weight. Only the color/background differ.
 */
.mwt-btn.mwt-btn--danger-outline {
    background: transparent;
    color: var(--mwt-danger);
    border: 1.5px solid var(--mwt-danger);
    font-weight: 500;
}
.mwt-btn.mwt-btn--danger-outline:hover {
    background: var(--mwt-danger);
    color: #fff;
}
.mwt-btn.mwt-btn--danger-outline:focus-visible {
    outline: 2px solid var(--mwt-danger);
    outline-offset: 2px;
}

/* Small button variant */
.mwt-btn.mwt-btn--sm {
    font-size: 0.82rem;
    padding: 10px 20px;
}

/* Dashed danger card (Data & Privacy) */
.mwt-danger-card {
    background: var(--mwt-card);
    border: 1px dashed var(--mwt-danger);
    border-radius: 16px;
    padding: 24px;
}
.mwt-danger-card-title {
    margin: 0 0 8px;
    color: var(--mwt-danger);
    font-size: 1rem;
    font-weight: 600;
}
.mwt-danger-card-text {
    font-size: 0.82rem;
    color: var(--mwt-text-muted);
    margin: 0 0 16px;
    line-height: 1.6;
}
.mwt-danger-card-summary {
    cursor: pointer;
    font-size: 0.82rem;
    color: var(--mwt-text-muted);
    padding: 4px 0;
    user-select: none;
}
.mwt-danger-card-summary:hover { color: var(--mwt-text); }
.mwt-danger-card-list {
    font-size: 0.78rem;
    color: var(--mwt-text-muted);
    margin: 8px 0 0 16px;
    line-height: 1.8;
}

/* Checkbox list (Email Notifications) */
.mwt-check-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.mwt-check-item {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--mwt-text);
    user-select: none;
}
.mwt-check-item input[type="checkbox"] {
    accent-color: var(--mwt-primary);
    width: 18px;
    height: 18px;
    cursor: pointer;
    margin: 0;
}
.mwt-check-item:hover span { color: var(--mwt-primary); }

/* Stack size variants (sm for tighter spacing) */
.mwt-stack--sm { margin-top: 12px; }
.mwt-stack--md { margin-bottom: 20px; }

/* Row helpers */
.mwt-row--center { justify-content: center; }

/* PDF download link style (used in payment history) */
.mwt-link-pdf {
    color: var(--mwt-primary);
    font-size: 0.78rem;
    text-decoration: none;
    white-space: nowrap;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: 4px;
    transition: background 0.15s;
}
.mwt-link-pdf:hover {
    background: rgba(var(--mwt-primary-rgb, 40,112,237), 0.1);
}

/* Empty state — proper empty state component (not a sad paragraph) */
.mwt-empty-state {
    text-align: center;
    padding: 40px 24px;
    color: var(--mwt-text-muted);
}
.mwt-empty-state-icon {
    font-size: 2.5rem;
    margin-bottom: 12px;
    opacity: 0.5;
}
.mwt-empty-state-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--mwt-text-secondary);
    margin: 0 0 6px;
}
.mwt-empty-state-hint {
    font-size: 0.82rem;
    margin: 0;
    line-height: 1.6;
}

/* Customer profile photo section */
.mwt-cust-photo-row {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    flex-wrap: wrap;
}
.mwt-cust-photo-wrap {
    position: relative;
    flex-shrink: 0;
}
.mwt-cust-photo-img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--mwt-border);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.mwt-cust-photo-remove {
    position: absolute;
    top: 2px; right: 2px;
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--mwt-danger);
    color: #fff;
    border: 2px solid var(--mwt-card);
    cursor: pointer;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    transition: transform 0.15s;
}
.mwt-cust-photo-remove:hover { transform: scale(1.08); }
.mwt-cust-photo-dropzone {
    flex: 1;
    min-width: 220px;
    max-width: 400px;
    border: 2px dashed var(--mwt-border);
    border-radius: 12px;
    padding: 28px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
}
.mwt-cust-photo-dropzone:hover {
    border-color: var(--mwt-primary);
    background: rgba(var(--mwt-primary-rgb, 40,112,237), 0.02);
}
.mwt-cust-photo-dropzone.is-dragover {
    border-color: var(--mwt-primary);
    background: rgba(var(--mwt-primary-rgb, 40,112,237), 0.06);
}
.mwt-cust-photo-icon {
    font-size: 1.8rem;
    margin-bottom: 8px;
}
.mwt-cust-photo-primary {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--mwt-text-secondary);
}
.mwt-cust-photo-hint {
    font-size: 0.72rem;
    color: var(--mwt-text-muted);
    margin-top: 4px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Paket 10a — Registration mobile polish (3-step flow)
   Plan cards stack on narrow viewports, progress steps show just numbers
   on mobile, button rows stack vertically for thumb-friendly tap areas.
   ═══════════════════════════════════════════════════════════════════════ */

@media (max-width: 640px) {
    /* Registration progress: compact on mobile — show number + short label */
    .mwt-reg-progress-steps {
        font-size: 0.65rem;
        gap: 6px;
    }
    .mwt-reg-progress-step {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 33%;
    }

    /* Plan cards stack full-width on mobile */
    .mwt-auth-plan-grid {
        grid-template-columns: 1fr !important;
        gap: 10px;
    }
    .mwt-auth-plan {
        padding: 16px !important;
    }
    .mwt-auth-plan-price {
        font-size: 1.6rem !important;
    }
    .mwt-auth-plan-features li {
        font-size: 0.72rem !important;
    }

    /* Field rows stack on mobile (First/Last name, City/Postal) */
    .mwt-auth-field-row {
        grid-template-columns: 1fr !important;
        gap: 0;
    }

    /* Button row stacks vertically, primary button on TOP (thumb-friendly) */
    .mwt-auth-btn-row {
        flex-direction: column-reverse !important;
        gap: 10px !important;
    }
    .mwt-auth-btn-row .mwt-auth-btn,
    .mwt-auth-btn-row .mwt-auth-btn--ghost {
        flex: 1 !important;
        width: 100%;
        justify-content: center;
    }

    /* Referral code details: tighter padding on mobile */
    .mwt-reg-referral-details {
        padding: 12px;
    }

    /* Password strength: stack if too wide */
    .mwt-pw-strength {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
    }
    .mwt-pw-strength-label {
        text-align: left;
        min-width: 0;
    }

    /* Section hint: keep readable */
    .mwt-reg-section-hint {
        font-size: 0.78rem;
        line-height: 1.5;
    }

    /* Country select: avoid zoom on iOS */
    .mwt-reg-panel select,
    .mwt-reg-panel input {
        font-size: 16px; /* prevents zoom on focus on iOS */
    }
}

/* Extra-tight spacing for very small screens (iPhone SE etc.) */
@media (max-width: 380px) {
    .mwt-reg-progress-steps {
        font-size: 0.6rem;
    }
    .mwt-reg-progress-step {
        /* show just "1." "2." "3." on tiniest screens */
        max-width: 25%;
    }
    .mwt-auth-plan-features {
        display: none; /* remove feature list to save space */
    }
    .mwt-auth-plan-price {
        font-size: 1.4rem !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   Paket 11 — EU Distance Marketing Directive (2023/2673) Compliance
   Withdrawal page, pre-contract info block, large button variant.
   ═══════════════════════════════════════════════════════════════════════ */

/* /withdrawal/ page layout */
.mwt-withdrawal-page {
    max-width: 720px;
    margin: 0 auto;
    padding: 48px 20px;
    color: var(--mwt-text);
}

.mwt-withdrawal-heading { margin-bottom: 32px; }
.mwt-withdrawal-heading h1 {
    font-size: clamp(1.6rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--mwt-text);
    margin: 0 0 14px;
    letter-spacing: -0.02em;
    line-height: 1.2;
}
.mwt-withdrawal-lede {
    font-size: 1.05rem;
    color: var(--mwt-text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* Info card — key facts at a glance */
.mwt-withdrawal-info-card {
    background: var(--mwt-surface);
    border: 1px solid var(--mwt-border);
    border-radius: 12px;
    padding: 20px 24px;
    margin-bottom: 32px;
}
.mwt-withdrawal-info-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    font-size: 0.92rem;
    border-bottom: 1px solid var(--mwt-border);
}
.mwt-withdrawal-info-row:last-child { border-bottom: none; }
.mwt-withdrawal-info-row strong {
    color: var(--mwt-text);
    font-weight: 600;
    flex-shrink: 0;
    min-width: 160px;
}
.mwt-withdrawal-info-row span {
    color: var(--mwt-text-muted);
    text-align: right;
    flex: 1;
}

/* Action block — exercise right (customer only) */
.mwt-withdrawal-action {
    background: rgba(239, 68, 68, 0.04);
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-radius: 12px;
    padding: 28px;
    margin-bottom: 32px;
}
.mwt-withdrawal-action h2 {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--mwt-text);
    margin: 0 0 12px;
}
.mwt-withdrawal-action p {
    color: var(--mwt-text-secondary);
    margin: 0 0 18px;
    line-height: 1.6;
    font-size: 0.95rem;
}
.mwt-withdrawal-action-hint {
    font-size: 0.82rem !important;
    color: var(--mwt-text-muted) !important;
    margin-top: 14px !important;
    margin-bottom: 0 !important;
    line-height: 1.5 !important;
}

/* Large button variant */
.mwt-btn.mwt-btn--lg {
    padding: 14px 28px;
    font-size: 0.95rem;
    font-weight: 600;
}

/* Alternative methods block */
.mwt-withdrawal-alt {
    margin-bottom: 32px;
}
.mwt-withdrawal-alt h2 {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--mwt-text);
    margin: 0 0 12px;
}
.mwt-withdrawal-alt p {
    color: var(--mwt-text-secondary);
    line-height: 1.6;
    font-size: 0.92rem;
    margin: 0 0 16px;
}
.mwt-withdrawal-contact {
    background: var(--mwt-surface);
    border: 1px solid var(--mwt-border);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 20px;
    font-size: 0.9rem;
    line-height: 1.8;
}
.mwt-withdrawal-contact > div {
    color: var(--mwt-text-secondary);
}
.mwt-withdrawal-contact strong {
    display: inline-block;
    min-width: 130px;
    color: var(--mwt-text);
}
.mwt-withdrawal-contact a {
    color: var(--mwt-primary);
    text-decoration: none;
}
.mwt-withdrawal-contact a:hover { text-decoration: underline; }

/* Model form <details> */
.mwt-withdrawal-model-form {
    margin-top: 12px;
}
.mwt-withdrawal-model-form summary {
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--mwt-primary);
    padding: 10px 0;
    user-select: none;
    list-style: none;
}
.mwt-withdrawal-model-form summary::-webkit-details-marker { display: none; }
.mwt-withdrawal-model-form summary::before {
    content: '▸ ';
    transition: transform 0.2s;
    display: inline-block;
}
.mwt-withdrawal-model-form[open] summary::before {
    transform: rotate(90deg);
}
.mwt-withdrawal-model-form-body {
    background: var(--mwt-surface);
    border: 1px solid var(--mwt-border);
    border-radius: 10px;
    padding: 16px 20px;
    margin-top: 8px;
}
.mwt-withdrawal-model-form-text {
    font-family: var(--mwt-font-mono), ui-monospace, monospace;
    font-size: 0.82rem;
    line-height: 1.7;
    color: var(--mwt-text);
    white-space: pre-wrap;
    word-wrap: break-word;
    margin: 0;
    padding: 0;
    background: transparent;
}

/* Legal reference at bottom */
.mwt-withdrawal-legal {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--mwt-border);
}
.mwt-withdrawal-legal p {
    font-size: 0.78rem;
    color: var(--mwt-text-muted);
    line-height: 1.7;
    margin: 0 0 10px;
}

/* ── Pre-contract info block (registration step 3) ────────────────── */

.mwt-reg-precontract {
    background: rgba(var(--mwt-primary-rgb, 40,112,237), 0.05);
    border: 1px solid rgba(var(--mwt-primary-rgb, 40,112,237), 0.15);
    border-radius: 10px;
    padding: 16px 18px;
    margin: 20px 0 16px;
}
.mwt-reg-precontract-title {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--mwt-primary);
    margin-bottom: 10px;
}
.mwt-reg-precontract-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.mwt-reg-precontract-list li {
    font-size: 0.82rem;
    color: var(--mwt-text-secondary);
    line-height: 1.55;
}
.mwt-reg-precontract-list li strong {
    color: var(--mwt-text);
    font-weight: 600;
}
.mwt-reg-precontract-list a {
    color: var(--mwt-primary);
    text-decoration: none;
}
.mwt-reg-precontract-list a:hover { text-decoration: underline; }

/* Mobile tightening */
@media (max-width: 520px) {
    .mwt-withdrawal-page { padding: 32px 16px; }
    .mwt-withdrawal-info-row {
        flex-direction: column;
        gap: 2px;
    }
    .mwt-withdrawal-info-row span { text-align: left; }
    .mwt-withdrawal-info-row strong { min-width: 0; }
    .mwt-withdrawal-contact strong { min-width: 0; display: block; margin-bottom: 2px; }
    .mwt-withdrawal-action { padding: 20px; }
    .mwt-btn.mwt-btn--lg { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Paket 11b — Unified notice component (inline alert banners)
   Used for: inactive agent banner, payment-past-due, generic warnings.
   ═══════════════════════════════════════════════════════════════════════ */

.mwt-notice {
    border-radius: 12px;
    padding: 14px 18px;
    font-size: 0.88rem;
    line-height: 1.55;
    border: 1px solid var(--mwt-border);
    background: var(--mwt-surface);
    color: var(--mwt-text);
}
.mwt-notice strong { color: var(--mwt-text); }
.mwt-notice p { margin: 4px 0 0; font-size: 0.82rem; color: var(--mwt-text-muted); }

.mwt-notice--inline {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 20px;
}
.mwt-notice-icon {
    font-size: 1.3rem;
    flex-shrink: 0;
    line-height: 1.2;
}

.mwt-notice--warning {
    background: rgba(245, 158, 11, 0.06);
    border-color: rgba(245, 158, 11, 0.2);
}
.mwt-notice--warning strong { color: var(--mwt-warning); }

.mwt-notice--success {
    background: rgba(34, 197, 94, 0.06);
    border-color: rgba(34, 197, 94, 0.2);
}
.mwt-notice--success strong { color: var(--mwt-success); }

.mwt-notice--error {
    background: rgba(239, 68, 68, 0.06);
    border-color: rgba(239, 68, 68, 0.2);
}
.mwt-notice--error strong { color: var(--mwt-danger); }

.mwt-notice--info {
    background: rgba(var(--mwt-primary-rgb, 40,112,237), 0.06);
    border-color: rgba(var(--mwt-primary-rgb, 40,112,237), 0.2);
}
.mwt-notice--info strong { color: var(--mwt-primary); }

/* ═══════════════════════════════════════════════════════════════════════
   TEXT SELECTION — Brand-colored highlight on theme pages.
   Mirrors the academy.css selection color so it's consistent across
   the entire app (member dashboards + academy + tools).
   ═══════════════════════════════════════════════════════════════════════ */

::selection {
    background: rgba(40, 112, 237, 0.30);
    color: var(--mwt-text);
    text-shadow: none;
}
::-moz-selection {
    background: rgba(40, 112, 237, 0.30);
    color: var(--mwt-text);
    text-shadow: none;
}
html.mwt-light ::selection,
body.mwt-light ::selection {
    background: rgba(31, 141, 146, 0.25);
    color: var(--mwt-text);
}
html.mwt-light ::-moz-selection,
body.mwt-light ::-moz-selection {
    background: rgba(31, 141, 146, 0.25);
    color: var(--mwt-text);
}
input::selection, textarea::selection {
    background: rgba(40, 112, 237, 0.45);
}
html.mwt-light input::selection, html.mwt-light textarea::selection,
body.mwt-light input::selection, body.mwt-light textarea::selection {
    background: rgba(31, 141, 146, 0.35);
}

/* ═══════════════════════════════════════════════════════════════════════
   SCROLLBAR — Theme-wide thin custom scrollbars (member dashboards,
   subscription page, etc.). Mirrors the academy.css implementation.
   ═══════════════════════════════════════════════════════════════════════ */

html, body {
    scrollbar-width: thin;
    scrollbar-color: var(--mwt-zinc-700, #3a3f4a) transparent;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
*::-webkit-scrollbar-track {
    background: transparent;
}
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-thumb {
    background: var(--mwt-zinc-700, #3a3f4a);
    border-radius: 5px;
    border: 2px solid transparent;
    background-clip: padding-box;
    transition: background 0.15s;
}
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
*::-webkit-scrollbar-thumb:hover {
    background: var(--mwt-primary, #2870ED);
    background-clip: padding-box;
}
*::-webkit-scrollbar-corner {
    background: transparent;
}

html.mwt-light, html.mwt-light body, body.mwt-light {
    scrollbar-color: var(--mwt-zinc-300, #cbd5e1) transparent;
}
html.mwt-light *::-webkit-scrollbar-thumb,
body.mwt-light *::-webkit-scrollbar-thumb {
    background: var(--mwt-zinc-300, #cbd5e1);
    background-clip: padding-box;
}
html.mwt-light *::-webkit-scrollbar-thumb:hover,
body.mwt-light *::-webkit-scrollbar-thumb:hover {
    background: var(--mwt-primary-dark, #1E5FDB);
    background-clip: padding-box;
}

/* ─── Subscription tab: plan header + change-plan grid ─────────────── */
.mwt-plan-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.mwt-plan-name {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--mwt-text);
    letter-spacing: -0.01em;
}
.mwt-plan-price {
    font-size: 0.95rem;
    color: var(--mwt-text-muted);
    margin-top: 2px;
}
.mwt-plan-price-unit { opacity: 0.7; font-size: 0.85em; }
.mwt-plan-status {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: capitalize;
    padding: 4px 12px;
    border: 1px solid;
    border-radius: 999px;
    white-space: nowrap;
}
.mwt-upgrade-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}
.mwt-upgrade-card--grid {
    margin: 0;
    display: flex;
    flex-direction: column;
}
.mwt-upgrade-card--grid p { flex: 1; }

/* ─── Profile tab: hero + completion + sticky save bar ─────────────── */
.mwt-profile-hero {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.mwt-profile-hero-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--mwt-border);
    cursor: pointer;
    transition: border-color .15s;
    flex-shrink: 0;
}
.mwt-profile-hero-avatar:hover { border-color: var(--mwt-accent); }
.mwt-profile-hero-id { flex: 1; min-width: 180px; }
.mwt-profile-completion { margin-top: 16px; }
.mwt-profile-completion.is-complete { opacity: 0.7; }
.mwt-profile-completion-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}
.mwt-profile-completion-next {
    color: var(--mwt-accent);
    text-decoration: none;
}
.mwt-profile-completion-next:hover { text-decoration: underline; }
.mwt-profile-completion-bar {
    height: 6px;
    border-radius: 999px;
    background: var(--mwt-border);
    overflow: hidden;
}
.mwt-profile-completion-fill {
    height: 100%;
    border-radius: 999px;
    background: var(--mwt-accent);
    transition: width .3s ease;
}
.mwt-profile-save-bar {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0 4px;
    background: var(--mwt-card-bg, var(--mwt-bg));
    border-top: 1px solid var(--mwt-border);
    margin-top: 8px;
    z-index: 5;
}

/* ─── Dashboard collapsible sections (details.mwt-section) ──────────
   The bare .mwt-section class is the LANDING PAGE section wrapper with
   padding: 80px 0 — the dashboard's collapsible <details> sections share
   the class name and inherited those 80px voids (profile tab rendered
   with ~160px of dead space between sections). details.mwt-section
   (specificity 0,1,1) beats .mwt-section (0,1,0) without !important. */
details.mwt-section {
    padding: 0;
    border: 1px solid var(--mwt-border);
    border-radius: 10px;
    background: transparent;
}
details.mwt-section + details.mwt-section { margin-top: 12px; }
details.mwt-section > .mwt-section-summary {
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
}
details.mwt-section > .mwt-section-summary::-webkit-details-marker { display: none; }
details.mwt-section .mwt-section-content { padding: 4px 16px 16px; }
details.mwt-section[open] > .mwt-section-summary { border-bottom: 1px solid var(--mwt-border); margin-bottom: 12px; }

/* ─── Inline line icons (emoji replacement) ────────────────────────── */
.mwt-ic { vertical-align: -2px; flex-shrink: 0; }
.mwt-section-icon { display: inline-flex; align-items: center; opacity: 0.8; }
.mwt-upgrade-ic { display: inline-flex; color: var(--mwt-accent); }
.mwt-notice .mwt-ic { vertical-align: -2px; margin-right: 2px; }
