:root {
  --navy-950: #002d4d;
  --navy-900: #003d62;
  --navy-800: #004e75;
  --navy-700: #0a5f8d;
  --blue-600: #1766b1;
  --blue-100: #eaf4fb;
  --green-600: #34b958;
  --green-700: #229b45;
  --green-100: #e7f8ed;
  --ink: #06233c;
  --text: #263b4d;
  --muted: #667785;
  --line: #d8e0e6;
  --line-dark: #c7d2da;
  --surface: #fff;
  --canvas: #f3f6f8;
  --danger: #c93544;
  --warning: #8a6a00;
  --shadow: 0 9px 28px rgba(12, 43, 64, .08);
  --radius: 9px;
  --font: Arial, "Helvetica Neue", Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--canvas); font-family: var(--font); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--blue-600); text-decoration: none; }
a:hover { text-decoration: underline; }
button { cursor: pointer; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, strong { color: var(--ink); }
h1 { font-size: clamp(1.75rem, 2.7vw, 2.35rem); line-height: 1.16; letter-spacing: -.025em; margin-bottom: 10px; }
h2 { font-size: 1.35rem; line-height: 1.25; }
h3 { font-size: 1.04rem; }
svg { display: block; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #61a9e8; outline-offset: 3px; }
.skip-link { position: fixed; z-index: 999; top: 8px; left: 8px; padding: 10px 14px; background: #fff; color: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.sr-only, .login-form .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.shell { width: min(1188px, calc(100% - 40px)); margin-inline: auto; }
.admin-shell { width: min(1440px, calc(100% - 48px)); margin-inline: auto; }
.eyebrow { margin-bottom: 7px; color: var(--blue-600); font-size: .72rem; font-weight: 800; letter-spacing: .105em; text-transform: uppercase; }
.muted { display: block; color: var(--muted); font-size: .79rem; margin-top: 3px; }
.text-button { padding: 0; border: 0; background: transparent; color: var(--blue-600); font-weight: 700; }

.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 22px; border: 1px solid transparent; border-radius: 3px; font-weight: 700; line-height: 1.2; transition: background .18s, border-color .18s, transform .18s, box-shadow .18s; }
.btn:hover { text-decoration: none; transform: translateY(-1px); box-shadow: 0 5px 13px rgba(0,0,0,.12); }
.btn--green { background: var(--green-600); color: #fff; }
.btn--green:hover { background: var(--green-700); }
.btn--blue { background: var(--blue-600); color: #fff; }
.btn--blue:hover { background: #0d559c; }
.btn--secondary { border-color: var(--line-dark); background: #fff; color: var(--ink); }
.btn--ghost { border-color: rgba(255,255,255,.35); color: #fff; background: transparent; }
.btn--small { min-height: 36px; padding: 8px 14px; font-size: .82rem; }
.btn--full { width: 100%; }

.brand { display: inline-flex; align-items: center; color: #fff; line-height: 1; }
.brand__viewport { display: block; width: 190px; }
.brand__image { display: block; width: 100%; height: auto; }
.brand-link:hover { text-decoration: none; }

/* Admin login */
.login-page { min-height: 100vh; overflow: hidden; background: #050505; }
.login-stage { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-form { width: min(460px, 88vw); text-align: center; }
.login-form input[type="password"] { width: 100%; height: 58px; padding: 0 19px; border: 1px solid #303030; border-radius: 0; background: #0b0b0b; color: #fff; caret-color: #fff; font-size: 1.15rem; box-shadow: 0 0 0 1px transparent; transition: border .2s, box-shadow .2s; }
.login-form input[type="password"]:focus { outline: none; border-color: #727272; box-shadow: 0 0 0 1px #727272; }
.login-message { min-height: 25px; margin: 13px 0 0; color: #9f9f9f; font-size: .82rem; }

/* Shared headers */
.public-header { min-height: 72px; background: var(--navy-800); border-bottom: 3px solid rgba(0,0,0,.08); color: #fff; }
.public-header__inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; }
.public-header__actions { display: flex; align-items: center; gap: 22px; }
.header-help { color: #fff; font-size: 1rem; font-weight: 800; }
.language-picker { margin: 0; }
.language-picker label { min-height: 42px; display: flex; align-items: center; gap: 7px; padding: 0 8px 0 11px; border: 1px solid rgba(255,255,255,.38); border-radius: 4px; background: rgba(0,30,52,.2); }
.language-picker__icon { color: #fff; }
.language-picker__icon svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.language-picker select { min-height: 38px; max-width: 145px; padding: 0 25px 0 3px; border: 0; outline: 0; background: transparent; color: #fff; font-weight: 700; cursor: pointer; }
.language-picker select option { color: var(--ink); background: #fff; }
.admin-header { position: sticky; z-index: 20; top: 0; background: var(--navy-900); color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.16); }
.admin-header__inner { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.admin-nav { display: flex; align-items: center; gap: 22px; }
.admin-nav > a:not(.btn) { color: #fff; font-weight: 700; font-size: .88rem; }
.admin-nav form { margin: 0; }

/* Admin */
.admin-page { background: #f5f7f9; }
.admin-main { padding-block: 42px 70px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.page-heading h1 { margin-bottom: 5px; }
.page-heading p:last-child { margin-bottom: 0; color: var(--muted); }
.page-heading--compact { align-items: center; }
.back-link { display: inline-block; margin-bottom: 11px; font-weight: 700; }
.admin-card { background: #fff; border: 1px solid #e2e7eb; border-radius: var(--radius); box-shadow: 0 5px 18px rgba(10,42,62,.045); }
.flash { margin: 0 0 20px; padding: 13px 16px; border: 1px solid; border-radius: 5px; font-weight: 700; }
.flash--success { color: #1d6533; background: var(--green-100); border-color: #a7ddb8; }
.flash--error { color: #8e2430; background: #fff0f2; border-color: #efb8bf; }
.filters-card { padding: 22px; margin-bottom: 20px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 17px; }
.section-heading h2 { margin: 0; font-size: 1rem; }
.filters { display: grid; grid-template-columns: minmax(260px, 1.6fr) repeat(6, minmax(128px, .7fr)); gap: 13px; align-items: end; }
.filters__actions { display: flex; gap: 8px; grid-column: 1 / -1; justify-content: flex-end; padding-top: 4px; }
.field { min-width: 0; display: flex; flex-direction: column; gap: 6px; color: var(--ink); font-size: .84rem; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid var(--line-dark); border-radius: 4px; background: #fff; color: var(--ink); font-weight: 400; transition: border .16s, box-shadow .16s; }
.field textarea { min-height: 100px; resize: vertical; line-height: 1.5; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(23,102,177,.13); }
.field input[readonly] { background: #f3f5f7; color: #64727d; }
.field small { color: var(--muted); font-weight: 400; }
.field .is-invalid { border-color: var(--danger); }
.field .field-error { color: var(--danger); font-weight: 700; }
.table-card { position: relative; }
.table-scroll { overflow-x: auto; }
.transaction-table { width: 100%; border-collapse: collapse; text-align: left; }
.transaction-table th { padding: 13px 16px; background: #f7f9fa; border-bottom: 1px solid var(--line); color: #60717e; font-size: .7rem; letter-spacing: .065em; text-transform: uppercase; white-space: nowrap; }
.transaction-table td { padding: 16px; border-bottom: 1px solid #e8ecef; vertical-align: middle; font-size: .83rem; }
.transaction-table tbody tr:hover { background: #fbfdfe; }
.transaction-title { display: block; min-width: 160px; color: var(--ink); font-weight: 800; }
.public-link { white-space: nowrap; font-weight: 700; }
.transaction-links { min-width: 110px; display: grid; gap: 5px; }
.email-download-link { color: var(--green-700); white-space: nowrap; font-size: .76rem; font-weight: 800; }
.status { display: inline-flex; padding: 4px 9px; border-radius: 999px; font-size: .7rem; font-weight: 800; text-transform: capitalize; }
.status--published { background: var(--green-100); color: #1d7138; }
.status--draft { background: #fff5c9; color: var(--warning); }
.status--disabled { background: #eceff1; color: #596872; }
.status--archived { background: #e8eef9; color: #3a5788; }
.actions-menu { position: relative; }
.actions-menu summary { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 4px; color: var(--ink); list-style: none; font-weight: 900; cursor: pointer; }
.actions-menu summary::-webkit-details-marker { display: none; }
.actions-menu summary:hover { background: #eaf0f4; }
.actions-menu__panel { position: absolute; z-index: 15; right: 0; top: 39px; width: 150px; padding: 6px; border: 1px solid var(--line); border-radius: 5px; background: #fff; box-shadow: var(--shadow); }
.actions-menu__panel a, .actions-menu__panel button { width: 100%; display: block; padding: 8px 10px; border: 0; background: transparent; color: var(--ink); text-align: left; font-size: .82rem; }
.actions-menu__panel a:hover, .actions-menu__panel button:hover { background: #f1f5f7; text-decoration: none; }
.actions-menu__panel .danger { color: var(--danger); }
.actions-menu__panel form { margin: 0; }
.pagination { display: flex; justify-content: center; gap: 5px; padding: 18px; }
.pagination a { min-width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 3px; color: var(--ink); }
.pagination a.is-current { background: var(--blue-600); border-color: var(--blue-600); color: #fff; }
.empty-state { padding: 70px 20px; text-align: center; }
.empty-state__icon { display: block; color: #8fa0ac; font-size: 2.5rem; }

/* Admin form */
.admin-form-page { width: min(1190px, calc(100% - 48px)); }
.email-kit { position: relative; overflow: hidden; padding: 25px 27px; margin-bottom: 18px; border-left: 4px solid var(--green-600); }
.email-kit::after { content: ""; position: absolute; top: -80px; right: -65px; width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle, rgba(52,190,88,.1), rgba(52,190,88,0) 68%); pointer-events: none; }
.email-kit__heading { position: relative; z-index: 1; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: start; gap: 15px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.email-kit__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--green-100); color: var(--green-700); }
.email-kit__icon svg { width: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.email-kit__heading .eyebrow { margin-bottom: 4px; }
.email-kit__heading h2 { margin: 0 0 5px; font-size: 1.18rem; }
.email-kit__heading p:last-child { max-width: 690px; margin: 0; color: var(--muted); font-size: .84rem; }
.email-kit__ready { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 99px; background: var(--green-100); color: var(--green-700); font-size: .72rem; font-weight: 900; }
.email-kit__ready span { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; background: var(--green-600); color: #fff; font-size: .66rem; }
.email-language-picker { display: flex; align-items: center; gap: 18px; padding: 14px 16px; margin-top: 18px; border: 1px solid #cbdce7; border-radius: 6px; background: #f2f8fb; }
.email-language-picker label { flex: 0 0 270px; display: grid; grid-template-columns: auto minmax(130px, 1fr); align-items: center; gap: 10px; color: var(--navy-800); font-size: .82rem; font-weight: 900; }
.email-language-picker select { width: 100%; min-height: 40px; padding: 7px 32px 7px 10px; border: 1px solid #a9bfcd; border-radius: 4px; background: #fff; color: var(--ink); font-weight: 700; }
.email-language-picker select:focus { outline: 3px solid rgba(23,102,177,.15); border-color: var(--blue-600); }
.email-language-picker p { flex: 1; margin: 0; color: var(--muted); font-size: .78rem; }
.email-language-picker noscript { display: contents; }
.email-kit__meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 20px 0; border: 1px solid var(--line); border-radius: 6px; background: #f8fafb; }
.email-kit__meta > div { min-width: 0; padding: 15px 17px; }
.email-kit__meta > div + div { border-left: 1px solid var(--line); }
.email-kit__meta dt, .email-kit__meta dd { margin: 0; }
.email-kit__meta dt { margin-bottom: 5px; color: var(--muted); font-size: .68rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.email-kit__meta dd { min-width: 0; display: grid; gap: 3px; }
.email-kit__meta dd strong, .email-kit__meta dd span { overflow-wrap: anywhere; }
.email-kit__meta dd strong { color: var(--ink); font-size: .88rem; }
.email-kit__meta dd span { color: var(--muted); font-size: .76rem; }
.email-kit__link { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 13px; padding: 12px 14px; border: 1px solid #cbdce7; border-radius: 5px; background: #f2f8fb; }
.email-kit__link span { color: var(--navy-800); font-size: .73rem; font-weight: 900; }
.email-kit__link code { min-width: 0; overflow-wrap: anywhere; color: var(--blue-600); font-size: .8rem; }
.email-kit__actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.email-kit__note { margin: 13px 0 0; color: var(--muted); font-size: .76rem; text-align: right; }
.email-kit__warning { margin: 14px 0 0; padding: 11px 13px; border: 1px solid #ecd988; border-radius: 4px; background: #fffbe8; color: #725c09; font-size: .8rem; }
.transaction-form { display: grid; gap: 18px; }
.form-tabs { position: sticky; z-index: 10; top: 80px; display: grid; grid-template-columns: repeat(4, 1fr); padding: 6px; border: 1px solid var(--line); border-radius: 7px; background: #fff; box-shadow: 0 4px 14px rgba(10,42,62,.06); }
.form-error-summary { margin: 0 0 18px; padding: 16px 18px; border: 1px solid #e7a9a9; border-left: 4px solid #c43d3d; border-radius: 7px; background: #fff4f4; color: #6f2020; }
.form-error-summary strong { display: block; margin-bottom: 4px; font-size: 1rem; }
.form-error-summary p { margin: 0; }
.form-error-summary ul { margin: 10px 0 0; padding-left: 20px; }
.form-error-summary li + li { margin-top: 4px; }
.form-error-summary li span { font-weight: 700; text-transform: capitalize; }
.form-tabs button { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 8px 12px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-weight: 800; text-align: left; }
.form-tabs button b { width: 27px; height: 27px; display: grid; flex: 0 0 27px; place-items: center; border-radius: 50%; background: #e8eef2; color: var(--navy-800); font-size: .75rem; }
.form-tabs button span { display: flex; flex-direction: column; line-height: 1.15; }
.form-tabs button small { margin-top: 3px; color: #82909a; font-size: .66rem; font-weight: 500; }
.form-tabs button[aria-selected="true"] { background: var(--navy-900); color: #fff; }
.form-tabs button[aria-selected="true"] b { background: var(--green-600); color: #fff; }
.form-tabs button[aria-selected="true"] small { color: #c9dce7; }
.form-panel { padding: 30px; }
.panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 30px; padding-bottom: 22px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.panel-heading > div { display: flex; align-items: center; gap: 11px; }
.panel-heading h2 { margin: 0; }
.panel-heading p { max-width: 430px; margin: 0; color: var(--muted); text-align: right; }
.panel-number { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--blue-100); color: var(--blue-600); font-size: .73rem; font-weight: 900; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.field--wide { grid-column: 1 / -1; }
.form-subheading { margin: 30px 0 16px; padding-bottom: 8px; border-bottom: 1px solid #e8edf0; }
.code-input { font-family: Consolas, "Courier New", monospace !important; font-size: .82rem !important; tab-size: 2; }
.manager-photo-control { display: grid; grid-template-columns: minmax(0, 1fr) 190px; align-items: stretch; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; background: #f7fafb; }
.manager-photo-dropzone { min-height: 122px; display: flex; align-items: center; gap: 18px; padding: 18px; border: 2px dashed #b5c8d4; border-radius: 6px; background: #fff; cursor: pointer; transition: border-color .18s, background .18s, box-shadow .18s; }
.manager-photo-dropzone:hover, .manager-photo-dropzone:focus-visible, .manager-photo-dropzone.is-dragging { border-color: var(--blue-600); background: var(--blue-100); box-shadow: 0 0 0 3px rgba(0,102,179,.12); outline: none; }
.manager-photo-preview { width: 82px; height: 82px; display: grid; flex: 0 0 82px; place-items: center; overflow: hidden; border-radius: 50%; background: var(--navy-900); color: #fff; font-size: 1.15rem; font-weight: 900; box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
.manager-photo-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.manager-photo-dropcopy { min-width: 0; display: grid; gap: 4px; color: var(--muted); }
.manager-photo-dropcopy strong { color: var(--ink); font-size: .95rem; }
.manager-photo-dropcopy span { color: var(--blue-600); font-size: .84rem; font-weight: 800; }
.manager-photo-dropcopy small { line-height: 1.45; }
.manager-photo-actions { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; }
.manager-photo-actions small { line-height: 1.45; }
.payment-availability { min-width: 0; padding: 0; margin: 8px 0 0; border: 0; }
.payment-availability legend { margin-bottom: 10px; color: var(--ink); font-size: .84rem; font-weight: 800; }
.payment-availability__choices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.payment-availability__choices > label { cursor: pointer; }
.payment-availability__choices input { position: absolute; opacity: 0; }
.payment-availability__card { min-height: 112px; display: grid; grid-template-columns: 42px 1fr; align-content: center; column-gap: 12px; padding: 18px; border: 2px solid var(--line); border-radius: 6px; background: #fff; transition: border-color .18s, background .18s, box-shadow .18s; }
.payment-availability__card svg { grid-row: 1 / 3; width: 36px; height: 36px; padding: 7px; border-radius: 50%; background: var(--blue-100); fill: none; stroke: var(--blue-600); stroke-width: 1.7; }
.payment-availability__card strong { align-self: end; }
.payment-availability__card small { align-self: start; color: var(--muted); font-size: .76rem; }
.payment-availability__choices input:checked + .payment-availability__card { border-color: var(--green-600); background: #f3fbf6; box-shadow: inset 0 0 0 1px var(--green-600); }
.payment-availability__choices input:focus-visible + .payment-availability__card { outline: 3px solid #61a9e8; outline-offset: 3px; }
.payment-availability__hint { display: block; margin-top: 9px; color: var(--muted); }
.payment-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 18px; border: 1px solid var(--line); border-radius: 7px; background: #f7f9fa; }
.party-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.party-columns fieldset { min-width: 0; margin: 0; padding: 22px; border: 1px solid var(--line); border-radius: 7px; }
.party-columns legend { padding: 0 8px; color: var(--ink); font-size: 1.08rem; font-weight: 800; }
.switch-field { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.switch-field input { position: absolute; opacity: 0; }
.switch { position: relative; flex: 0 0 44px; height: 24px; border-radius: 99px; background: #9ba8b0; transition: background .2s; }
.switch::after { content: ""; position: absolute; width: 18px; height: 18px; top: 3px; left: 3px; border-radius: 50%; background: #fff; transition: transform .2s; }
.switch-field input:checked + .switch { background: var(--green-600); }
.switch-field input:checked + .switch::after { transform: translateX(20px); }
.switch-field input:focus-visible + .switch { outline: 3px solid #61a9e8; outline-offset: 3px; }
.switch-field > span:last-child { display: flex; flex-direction: column; }
.switch-field small { color: var(--muted); }
.form-actions { position: sticky; z-index: 9; bottom: 14px; display: flex; justify-content: flex-end; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.96); box-shadow: 0 -4px 18px rgba(10,42,62,.08); backdrop-filter: blur(8px); }

/* Public */
.public-page { color: #12283a; background: #f2f5f7; }
.public-main { padding-block: 22px 70px; }
.transaction-intro { min-height: 142px; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 28px 42px; margin-bottom: 42px; border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.transaction-intro h1 { margin-bottom: 10px; font-size: 1.25rem; }
.transaction-intro p:last-child { margin-bottom: 0; color: #334a5b; }
.security-seal { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border: 1px solid #c9e7d1; border-radius: 5px; background: #f0fbf3; }
.security-seal svg { width: 28px; fill: none; stroke: var(--green-700); stroke-width: 1.8; }
.security-seal span { display: flex; flex-direction: column; }
.security-seal small { color: var(--muted); }
.wizard-card { padding: 42px 44px 44px; margin-bottom: 24px; border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.stepper { display: flex; align-items: flex-start; justify-content: space-between; padding: 0 15px; margin: 0; list-style: none; }
.stepper__item { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 13px; color: #526571; text-align: center; }
.stepper__item::after { content: ""; position: absolute; top: 19px; left: calc(50% + 29px); right: calc(-50% + 29px); height: 1px; background: #9ba8ae; }
.stepper__item:last-child::after { display: none; }
.stepper__dot { z-index: 1; width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid #819097; border-radius: 50%; background: #849397; color: #fff; font-weight: 700; }
.stepper__label { max-width: 90px; color: #13283a; font-size: .82rem; }
.stepper__item.is-current .stepper__dot { background: var(--green-600); border-color: var(--green-600); outline: 1px solid var(--green-600); outline-offset: 4px; }
.stepper__item.is-current .stepper__label { font-weight: 800; }
.stepper__item.is-complete .stepper__dot { background: var(--blue-600); border-color: var(--blue-600); }
.stepper__item.is-complete::after { background: var(--blue-600); }
.stepper__item.is-locked { opacity: 1; }
.wizard-divider { height: 1px; margin: 32px 0; background: var(--line); }
.wizard-content { padding: 2px 0 0; }
.wizard-heading { display: flex; align-items: flex-start; gap: 17px; margin-bottom: 25px; }
.wizard-heading h2 { margin-bottom: 7px; font-size: 1.32rem; }
.wizard-heading p:last-child { margin-bottom: 0; color: var(--muted); }
.section-icon { flex: 0 0 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--blue-100); color: var(--blue-600); }
.section-icon svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.summary-grid article { min-height: 145px; padding: 20px; border: 1px solid #dce4e9; background: #fff; }
.summary-grid article > span { display: block; margin-bottom: 9px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.summary-grid article > strong { display: block; font-size: 1.05rem; }
.summary-grid article p { margin: 6px 0; color: var(--muted); }
.summary-grid article small { color: var(--muted); }
.summary-grid .amount-summary { background: #f4f8fb; border-color: #c9dbe8; }
.amount-summary > strong { font-size: 1.55rem !important; }
.amount-summary dl { margin: 13px 0 0; }
.amount-summary dl div { display: flex; justify-content: space-between; gap: 15px; margin: 5px 0; color: var(--muted); font-size: .8rem; }
.amount-summary dt, .amount-summary dd { margin: 0; }
.verified { position: relative; display: inline-grid; width: 22px; height: 22px; place-items: center; padding: 0; margin-left: 5px; border: 0; border-radius: 50%; background: var(--blue-600); color: #fff; font-size: .75rem; vertical-align: 2px; cursor: help; }
.verified::after { content: attr(data-tooltip); position: absolute; z-index: 8; left: 50%; bottom: calc(100% + 9px); width: max-content; max-width: 220px; padding: 7px 10px; border-radius: 4px; background: var(--navy-950); color: #fff; font-size: .73rem; font-weight: 700; line-height: 1.3; opacity: 0; pointer-events: none; transform: translate(-50%, 4px); transition: opacity .16s, transform .16s; }
.verified:hover::after, .verified:focus-visible::after, .verified.is-open::after { opacity: 1; transform: translate(-50%, 0); }
.party-contact { display: grid; gap: 5px; padding: 0; margin: 12px 0 0; list-style: none; color: var(--text); font-size: .82rem; }
.party-contact li { display: grid; grid-template-columns: minmax(72px, auto) 1fr; gap: 9px; overflow-wrap: anywhere; }
.party-contact li > span { color: var(--muted); }
.party-contact a { font-weight: 700; }
.wizard-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 26px; }
.process-flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.process-flow article { position: relative; display: flex; align-items: flex-start; gap: 11px; padding: 18px 15px; border: 1px solid var(--line); background: #fff; }
.process-flow article:not(:last-child)::after { content: "→"; position: absolute; z-index: 1; right: -13px; top: 25px; color: var(--blue-600); font-weight: 900; }
.process-flow b { flex: 0 0 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--navy-900); color: #fff; }
.process-flow strong { font-size: .88rem; }
.process-flow p { margin: 5px 0 0; color: var(--muted); font-size: .77rem; }
.protection-note { display: flex; align-items: center; gap: 13px; padding: 16px 18px; margin-top: 17px; border: 1px solid #b8dec4; background: var(--green-100); }
.protection-note svg { width: 32px; fill: none; stroke: var(--green-700); stroke-width: 1.7; }
.protection-note p { margin: 2px 0 0; color: #3f6750; }
.payment-options { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.payment-options.is-single { grid-template-columns: minmax(280px, 560px); }
.payment-option { cursor: pointer; }
.payment-option input { position: absolute; opacity: 0; }
.payment-option__card { min-height: 225px; display: flex; flex-direction: column; align-items: center; padding: 26px 21px; border: 2px solid var(--line); text-align: center; transition: border .18s, background .18s, transform .18s; }
.payment-option input:checked + .payment-option__card { border-color: var(--green-600); background: #f6fcf8; box-shadow: inset 0 0 0 1px var(--green-600); }
.payment-option input:focus-visible + .payment-option__card { outline: 3px solid #61a9e8; outline-offset: 3px; }
.payment-icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 50%; background: var(--blue-100); color: var(--blue-600); }
.payment-icon svg { width: 28px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.payment-option__card strong { font-size: 1.05rem; }
.payment-option__card small { max-width: 340px; margin-top: 7px; color: var(--muted); }
.payment-option__card em { margin-top: auto; padding-top: 14px; color: var(--blue-600); font-size: .75rem; font-style: normal; font-weight: 700; }
.waiting-content { max-width: 720px; margin-inline: auto; text-align: center; }
.waiting-content > p { color: var(--muted); }
.waiting-spinner { width: 64px; height: 64px; display: block; margin: 0 auto 22px; border: 5px solid #dce7ed; border-top-color: var(--green-600); border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } .waiting-spinner { animation-duration: 2.5s; } }
.waiting-status { display: flex; align-items: center; gap: 14px; margin: 23px 0; padding: 15px 18px; border: 1px solid #ecd988; background: #fffbe8; text-align: left; }
.waiting-status > span { width: 12px; height: 12px; border-radius: 50%; background: #e2b726; box-shadow: 0 0 0 5px #f8ebae; }
.waiting-status div { display: flex; flex-direction: column; }
.waiting-status small { color: var(--muted); }
.future-statuses { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; text-align: left; }
.future-statuses article { display: flex; align-items: center; gap: 9px; padding: 13px; border: 1px solid var(--line); background: #f5f7f8; opacity: .65; }
.future-statuses b { flex: 0 0 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #8b999f; color: #fff; }
.future-statuses span { display: flex; flex-direction: column; }
.future-statuses small { color: var(--muted); font-size: .72rem; }
.public-lower-grid { display: grid; grid-template-columns: 1.55fr .8fr; gap: 24px; }
.item-card, .faq-card { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.item-card h2, .faq-card h2 { display: flex; align-items: center; gap: 9px; color: var(--blue-600); font-size: 1rem; }
.item-card h2 svg, .faq-card h2 svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.item-card > div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; }
.item-card > div span { display: flex; flex-direction: column; }
.item-card > div small { color: var(--muted); }
.item-card dl { padding-top: 12px; margin: 0; border-top: 1px solid var(--line); }
.item-card dl div { display: flex; justify-content: space-between; gap: 20px; margin: 7px 0; }
.item-card dt, .item-card dd { margin: 0; }
.item-total { padding-top: 8px; border-top: 1px solid #e7ecef; color: var(--ink); font-weight: 800; }
.faq-card details { border-bottom: 1px solid var(--line); }
.faq-card summary { padding: 13px 0; color: var(--ink); font-weight: 700; cursor: pointer; }
.faq-card details p { padding: 0 0 12px; margin: 0; color: var(--muted); font-size: .86rem; }
.public-footer { padding: 36px 0; background: var(--navy-950); color: #dbe7ee; }
.public-footer .shell { display: grid; grid-template-columns: auto minmax(260px, 560px) auto; align-items: center; justify-content: space-between; gap: 32px; }
.public-footer__copy { color: #fff; }
.public-footer__copy strong { display: block; margin-bottom: 7px; color: #fff; font-size: .98rem; }
.public-footer__copy p { max-width: 560px; margin: 0; color: rgba(255,255,255,.78); font-size: .83rem; line-height: 1.55; }
.public-footer > div > span { font-size: .78rem; }
.public-footer .brand { transform: scale(.8); transform-origin: left; }

/* Buyer authentication */
.transaction-intro--auth { margin-bottom: 24px; }
.auth-card { display: grid; grid-template-columns: .9fr 1.1fr; overflow: hidden; border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.auth-card__intro { position: relative; padding: 52px 48px; background: linear-gradient(145deg, var(--navy-900), var(--navy-950)); color: #d9e9f2; }
.auth-card__intro h2 { max-width: 360px; color: #fff; font-size: 1.7rem; }
.auth-card__intro .eyebrow { color: #71d2ee; }
.auth-card__intro > p:not(.eyebrow) { max-width: 410px; color: #c4d8e4; }
.auth-card__intro ul { display: grid; gap: 10px; padding: 21px 0 0; margin: 25px 0 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.auth-card__intro li::before { content: "✓"; display: inline-grid; width: 22px; height: 22px; place-items: center; margin-right: 9px; border-radius: 50%; background: rgba(63,189,67,.18); color: #5edf73; font-weight: 900; }
.shield-large { display: inline-grid; width: 64px; height: 70px; place-items: center; margin-bottom: 25px; color: #fff; }
.shield-large svg { width: 62px; fill: none; stroke: currentColor; stroke-width: 2; }
.auth-card__forms { padding: 42px 54px; }
.auth-switch { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; margin-bottom: 28px; border-radius: 5px; background: #edf2f5; }
.auth-switch button { min-height: 42px; border: 0; border-radius: 3px; background: transparent; color: var(--muted); font-weight: 800; }
.auth-switch button[aria-selected="true"] { background: #fff; color: var(--ink); box-shadow: 0 2px 7px rgba(7,40,60,.1); }
.auth-form { display: grid; gap: 17px; }
.auth-form h3 { margin-bottom: 1px; }
.form-hint { margin: 2px 0 0; color: var(--muted); text-align: center; font-size: .83rem; }

/* Payment */
.payment-main { padding-top: 26px; }
.payment-breadcrumb { display: flex; justify-content: space-between; margin-bottom: 18px; color: var(--muted); font-size: .84rem; }
.payment-breadcrumb a { font-weight: 700; }
.payment-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 23px; align-items: start; }
.payment-card, .order-card { border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.payment-card { padding: 34px; }
.payment-card__heading { display: flex; gap: 15px; padding-bottom: 24px; margin-bottom: 25px; border-bottom: 1px solid var(--line); }
.payment-card__heading h1 { margin-bottom: 5px; font-size: 1.75rem; }
.payment-card__heading p:last-child { margin-bottom: 0; color: var(--muted); }
.payment-lock { flex: 0 0 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--green-100); color: var(--green-700); }
.payment-lock svg { width: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.manager-card { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 13px; padding: 16px; margin-bottom: 22px; border: 1px solid #cddfea; background: #f2f8fb; }
.manager-avatar { width: 52px; height: 52px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--navy-900); color: #fff; font-weight: 800; }
.manager-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.manager-card div { display: flex; flex-direction: column; }
.manager-card small, .manager-card p { color: var(--muted); }
.manager-card p { margin: 3px 0 0; font-size: .8rem; }
.online-dot { color: var(--green-700); font-size: .75rem; font-weight: 800; }
.online-dot::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: var(--green-600); }
.payment-instructions, .crypto-panel { display: grid; grid-template-columns: 1fr 230px; gap: 25px; align-items: start; }
.payment-instructions h2 { font-size: 1.05rem; }
.details-list { margin: 0; border-top: 1px solid var(--line); }
.details-list > div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.details-list dt { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: capitalize; }
.details-list dd { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 3px 0 0; color: var(--ink); font-weight: 700; overflow-wrap: anywhere; }
.copy-button { border: 0; background: transparent; color: var(--blue-600); font-size: .77rem; font-weight: 800; }
.qr-card { padding: 13px; margin: 0; border: 1px solid var(--line); text-align: center; }
.qr-card img { width: 100%; height: auto; }
.qr-card figcaption { color: var(--muted); font-size: .72rem; }
.network-picker { display: flex; gap: 7px; margin-bottom: 22px; }
.network-picker button { min-height: 42px; padding: 8px 18px; border: 1px solid var(--line-dark); background: #fff; color: var(--ink); font-weight: 800; }
.network-picker button[aria-selected="true"] { border-color: var(--navy-900); background: var(--navy-900); color: #fff; }
.crypto-address { padding: 20px; border: 1px solid var(--line); background: #f7f9fa; }
.crypto-address > small { display: block; color: var(--muted); font-weight: 800; }
.crypto-address > strong { display: block; margin: 10px 0; overflow-wrap: anywhere; font-family: Consolas, monospace; font-size: 1rem; }
.crypto-address p { margin: 18px 0 0; color: var(--muted); font-size: .8rem; }
.payment-confirm { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding-top: 24px; margin-top: 28px; border-top: 1px solid var(--line); }
.payment-confirm p { max-width: 570px; margin: 3px 0 0; color: var(--muted); font-size: .83rem; }
.order-card { position: sticky; top: 20px; padding: 25px; }
.order-card h2 { margin-bottom: 7px; font-size: 1.1rem; }
.order-card > p:not(.eyebrow) { color: var(--muted); font-size: .83rem; }
.order-card dl { padding-top: 14px; margin: 18px 0; border-top: 1px solid var(--line); }
.order-card dl div { display: flex; justify-content: space-between; gap: 15px; margin: 8px 0; }
.order-card dt, .order-card dd { margin: 0; }
.order-total { padding-top: 11px; margin-top: 12px !important; border-top: 1px solid var(--line); font-weight: 900; }
.secure-note { display: flex; gap: 10px; padding: 13px; background: var(--green-100); }
.secure-note svg { flex: 0 0 28px; width: 28px; fill: none; stroke: var(--green-700); stroke-width: 1.8; }
.secure-note span { display: flex; flex-direction: column; }
.secure-note small { color: #487458; }

.status-page { min-height: 80vh; display: grid; place-items: center; }
.status-card { width: min(520px, 100%); padding: 45px; border-radius: 9px; background: var(--navy-900); color: #dbe8ef; text-align: center; box-shadow: var(--shadow); }
.status-card h1 { margin-top: 25px; color: #fff; }

@media (max-width: 1100px) {
  .filters { grid-template-columns: repeat(4, 1fr); }
  .field--search { grid-column: span 2; }
  .process-flow { grid-template-columns: repeat(2,1fr); }
  .process-flow article:nth-child(2)::after { display: none; }
  .stepper__label { font-size: .72rem; }
  .payment-layout { grid-template-columns: 1fr 285px; }
}

@media (max-width: 820px) {
  .shell, .admin-shell, .admin-form-page { width: min(100% - 28px, 680px); }
  .admin-header__inner { min-height: 60px; }
  .admin-nav > a:not(.btn), .admin-nav .btn--green { display: none; }
  .public-header__inner { gap: 14px; }
  .public-header__actions { gap: 10px; }
  .header-help { display: none; }
  .admin-main { padding-block: 28px 50px; }
  .page-heading { align-items: flex-start; }
  .filters { grid-template-columns: repeat(2,1fr); }
  .field--search { grid-column: 1 / -1; }
  .form-tabs { top: 70px; overflow-x: auto; grid-template-columns: repeat(4, minmax(140px,1fr)); scroll-snap-type: x proximity; }
  .form-tabs button { scroll-snap-align: start; }
  .form-panel { padding: 22px; }
  .email-kit__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .email-kit__meta > div:nth-child(3) { border-left: 0; }
  .email-kit__meta > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .party-columns { grid-template-columns: 1fr; }
  .public-main { padding-block: 16px 45px; }
  .transaction-intro { min-height: 120px; padding: 23px; margin-bottom: 22px; }
  .wizard-card { padding: 28px 22px; }
  .stepper { padding: 7px 5px 13px; overflow-x: auto; justify-content: flex-start; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .stepper__item { flex: 0 0 92px; scroll-snap-align: start; }
  .stepper__item::after { left: 66px; right: -26px; }
  .summary-grid, .public-lower-grid { grid-template-columns: 1fr; }
  .future-statuses { grid-template-columns: 1fr; }
  .public-footer .shell { grid-template-columns: 1fr; gap: 15px; justify-items: start; }
  .auth-card { grid-template-columns: 1fr; }
  .auth-card__intro { padding: 35px; }
  .auth-card__forms { padding: 35px; }
  .payment-layout { grid-template-columns: 1fr; }
  .order-card { position: static; }
}

@media (max-width: 560px) {
  body { font-size: 14px; }
  .shell, .admin-shell, .admin-form-page { width: min(100% - 20px, 520px); }
  .brand__viewport { width: 138px; }
  .public-header, .public-header__inner { min-height: 66px; }
  .public-header__actions { gap: 6px; }
  .language-picker label { min-height: 44px; gap: 4px; padding: 0 5px; }
  .language-picker__icon { display: none; }
  .language-picker select { width: 118px; max-width: 118px; padding-inline: 5px 20px; font-size: .78rem; }
  .header-help { font-size: .84rem; }
  .public-page .brand-link, .public-page .header-help, .public-page .form-hint .text-button { min-height: 44px; display: inline-flex; align-items: center; }
  .public-page .field input, .public-page .auth-switch button { min-height: 44px; }
  .admin-header .brand__viewport { width: 116px; }
  .page-heading { display: grid; gap: 18px; }
  .page-heading > .btn { width: 100%; }
  .email-kit { padding: 20px 16px; }
  .email-kit__heading { grid-template-columns: 42px minmax(0, 1fr); }
  .email-kit__icon { width: 42px; height: 42px; }
  .email-kit__ready { grid-column: 2; justify-self: start; }
  .email-kit__meta { grid-template-columns: 1fr; }
  .email-kit__meta > div + div, .email-kit__meta > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .email-kit__link { grid-template-columns: 1fr; gap: 5px; }
  .email-language-picker { display: grid; gap: 9px; }
  .email-language-picker label { grid-template-columns: 1fr; gap: 6px; }
  .email-kit__actions { display: grid; grid-template-columns: 1fr; }
  .email-kit__actions .btn { width: 100%; }
  .email-kit__note { text-align: left; }
  .filters { grid-template-columns: 1fr; }
  .filters .field, .field--search { grid-column: 1; }
  .filters__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .manager-photo-control { grid-template-columns: 1fr; gap: 11px; padding: 11px; }
  .manager-photo-dropzone { min-height: 108px; gap: 13px; padding: 13px; }
  .manager-photo-preview { width: 64px; height: 64px; flex-basis: 64px; }
  .manager-photo-actions { display: grid; justify-items: start; }
  .payment-availability__choices, .payment-details-grid { grid-template-columns: 1fr; }
  .field--wide { grid-column: 1; }
  .panel-heading { display: block; }
  .panel-heading p { margin-top: 10px; text-align: left; }
  .party-columns fieldset { padding: 15px; }
  .form-actions .btn { flex: 1; }
  .transaction-intro { display: grid; gap: 15px; padding: 20px; }
  .security-seal { width: 100%; }
  .wizard-card { padding: 22px 16px; border-radius: 5px; }
  .wizard-heading { display: block; }
  .section-icon { margin-bottom: 13px; }
  .summary-grid article { min-height: auto; }
  .party-contact li { grid-template-columns: 1fr; gap: 0; }
  .process-flow, .payment-options { grid-template-columns: 1fr; }
  .process-flow article::after { display: none; }
  .wizard-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .wizard-actions .btn { width: 100%; }
  .item-card, .faq-card { padding: 18px; }
  .auth-card__intro, .auth-card__forms { padding: 26px 20px; }
  .auth-card__intro ul { padding-top: 14px; margin-top: 16px; }
  .payment-card { padding: 22px 16px; }
  .payment-breadcrumb { gap: 15px; }
  .payment-breadcrumb { flex-wrap: wrap; }
  .manager-card { grid-template-columns: 48px 1fr; }
  .online-dot { grid-column: 2; }
  .payment-instructions, .crypto-panel { grid-template-columns: 1fr; }
  .qr-card { width: min(220px,100%); margin-inline: auto; }
  .network-picker { overflow-x: auto; }
  .network-picker button { flex: 0 0 auto; }
  .payment-confirm { display: grid; }
  .payment-confirm .btn { width: 100%; }
}
html:has(body.not-found-page),
body.not-found-page {
  min-height: 100%;
  margin: 0;
  background: #000;
  color: #000;
}

