/* fotifypay Admin — windSEO layout + ftf project palette.
 * The cabinet base (cobalt windSEO) is imported first; then the cabinet's
 * ftf overlay re-binds palette tokens to cream/orange and re-skins buttons,
 * cards, inputs, tables, tabs etc. We reuse the SAME overlay file the
 * client cabinet uses so admin + cabinet + ftf storefront stay visually
 * consistent — single source of truth. */
@import url("/cabinet/style.css?v=20260518-collapse");
@import url("/cabinet/cabinet-ftf.css?v=20260517-enabled-assets-gate");

/* The cabinet overlay paints `.brand-logo` with a soft orange-tinted square
   so its 🌉 storefront glyph stands out. In admin the logo is the ⚙ glyph,
   which reads better as solid filled primary — overshadow the overlay rule. */
.brand-logo {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 2px 8px -3px rgba(255, 122, 69, 0.30);
}

/* Admin lists use `.pill-active` for the "healthy / live LP" badge —
   keep that green so brand orange isn't confused with "all good". */
.pill-active { background: var(--green); color: #fff; }

/* ─── Compact dropdowns ──────────────────────────────────────────────
 * The cabinet base CSS forces `select { width: 100% }`, which makes admin
 * selects stretch the full row width. `.select-compact` overrides that
 * with a natural-content width and tighter padding — used everywhere the
 * select is a small inline picker (currency, role, environment, etc.).
 * `.select-ccy` is a sub-variant that nudges the flag emoji baseline so
 * it sits neatly with the 3-letter ISO code. */
select.select-compact {
    width: auto;
    min-width: 0;
    max-width: 240px;
    padding: 6px 28px 6px 10px;
    font-size: 13px;
    line-height: 1.3;
    background-position: right 8px center;
}
select.select-ccy {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.members-tbl td.caps-cell {
    max-width: 460px;
}

.caps-grid {
    display: flex; flex-wrap: wrap; gap: 6px 10px;
}
.caps-grid label {
    display: inline-flex; align-items: center; gap: 6px;
    margin-bottom: 0; color: var(--fg);
    font-size: 12px; font-weight: 500;
    background: var(--bg2); padding: 4px 8px;
    border-radius: 6px; border: 1px solid var(--border);
    cursor: pointer; user-select: none;
}
.caps-grid label.checked {
    background: var(--accent-dim); color: var(--primary);
    border-color: var(--primary);
}
.caps-grid input[type=checkbox] { margin: 0; cursor: pointer; }
.caps-grid label.locked { opacity: 0.6; cursor: not-allowed; }

.role-pill {
    display: inline-block; padding: 3px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em;
}
.role-pill.owner   { background: rgba(212,160,23,0.15); color: var(--xp-gold); }
.role-pill.admin   { background: var(--accent-dim);    color: var(--primary); }
.role-pill.manager { background: rgba(31,157,85,0.12); color: var(--green); }
.role-pill.auditor { background: var(--bg3);           color: var(--muted); }

.no-access {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.no-access .card {
    max-width: 480px; text-align: center;
}
.no-access h2 { color: var(--red); margin-bottom: 8px; }
.no-access p  { color: var(--muted); margin-bottom: 16px; font-size: 14px; }

/* ── Liquidity providers ──────────────────────────────────────────────── */
.lp-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.lp-tbl th, .lp-tbl td {
    text-align: left; padding: 12px 10px;
    border-bottom: 1px solid var(--border);
}
.lp-tbl th {
    font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--muted); font-weight: 600; background: var(--bg2);
}
.lp-tbl tr.row-active { background: rgba(31, 157, 85, 0.06); }
.lp-tbl tr.row-disabled td { opacity: 0.55; }
.lp-tbl tr.row-disabled td:first-child { opacity: 1; }
.pill-status {
    display: inline-block; padding: 3px 8px; border-radius: 999px;
    font-size: 10px; font-weight: 700; letter-spacing: 0.08em; line-height: 1.4;
}
.pill-active  { background: var(--accent); color: #fff; }
.pill-pending { background: #e5e7eb; color: #6b7280; }
.pill-off     { background: #f3f4f6; color: #9ca3af; }
.pill-err     { background: rgba(248,113,113,0.18); color: #b91c1c; }

/* iOS-style toggle for the Registered providers table */
.lp-toggle {
    position: relative; display: inline-block; width: 38px; height: 22px;
    vertical-align: middle; cursor: pointer;
}
.lp-toggle input { opacity: 0; width: 0; height: 0; }
.lp-toggle-slider {
    position: absolute; inset: 0; background: #d1d5db;
    border-radius: 999px; transition: background .15s;
}
.lp-toggle-slider::before {
    content: ""; position: absolute; left: 2px; top: 2px;
    width: 18px; height: 18px; border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18);
    transition: transform .15s;
}
.lp-toggle input:checked + .lp-toggle-slider { background: var(--accent, #1f9d55); }
.lp-toggle input:checked + .lp-toggle-slider::before { transform: translateX(16px); }
.lp-toggle input:disabled + .lp-toggle-slider { opacity: 0.55; cursor: wait; }
.adapter-pill {
    display: inline-block; padding: 3px 9px; border-radius: 6px;
    background: var(--bg3); color: var(--primary); font-weight: 600;
    font-size: 11.5px; letter-spacing: 0.02em;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.btn-mini {
    padding: 6px 12px; font-size: 12px; font-weight: 600;
    border: 1px solid var(--border); background: #fff; color: var(--fg-bright);
    border-radius: 6px; cursor: pointer; transition: background .15s, border-color .15s;
    font-family: inherit;
}
.btn-mini:hover { background: var(--bg2); border-color: var(--primary); color: var(--primary); }
.btn-mini.btn-danger { color: var(--red); border-color: var(--red); }
.btn-mini.btn-danger:hover { background: var(--red); color: #fff; }

/* ─── KYC Config inner shell (4 sub-tabs) ─── */
.kyc-shell-tabs-inner { margin-bottom: 14px; }
.kyc-shell-tabs-inner .kyc-shell-tab { font-size: 13px; padding: 7px 14px; }

/* ─── Ondato (L2) integration form ─── */
.ondato-form {
    display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px;
}
.ondato-row { display: flex; flex-direction: column; }
.ondato-row label { display: block; }
.ondato-label {
    display: block; font-size: 11.5px; font-weight: 600;
    color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em;
    margin-bottom: 4px;
}
.ondato-form input, .ondato-form select {
    width: 100%; box-sizing: border-box;
    padding: 8px 10px; font-size: 13px;
    background: var(--bg2); border: 1px solid var(--border);
    color: var(--fg-bright); border-radius: 6px;
    font-family: inherit;
}
.ondato-form input:focus, .ondato-form select:focus {
    outline: none; border-color: var(--primary);
}
.ondato-secret-meta {
    font-size: 11px; color: var(--muted); margin-top: 4px;
}
.ondato-secret-meta code {
    background: var(--bg3); padding: 1px 5px; border-radius: 3px;
    font-size: 11px;
}
.ondato-test-ok, .ondato-test-err {
    padding: 10px 12px; border-radius: 6px; font-size: 13px;
    border: 1px solid var(--border); background: var(--bg2);
}
.ondato-test-ok  { border-color: #2f9e44; color: #b9e6c4; }
.ondato-test-err { border-color: #c92a2a; color: #f3b6b6; }
.btn.btn-ghost {
    background: transparent; border: 1px solid var(--border);
    color: var(--fg);
}
.btn.btn-ghost:hover { border-color: var(--primary); color: var(--fg-bright); }

/* ─── KYC config page ─── */
.kyccfg-list {
    display: flex; flex-direction: column; gap: 8px;
}
.kyccfg-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px;
    background: var(--bg2);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-sm);
}
.kyccfg-name {
    color: var(--fg-bright); font-weight: 600; font-size: 14px;
}
.kyccfg-key {
    color: var(--muted); font-size: 11px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    margin-top: 2px;
}
.kyccfg-switch {
    position: relative; display: inline-block;
    width: 44px; height: 24px;
    flex-shrink: 0;
}
.kyccfg-switch input { opacity: 0; width: 0; height: 0; }
.kyccfg-switch .slider {
    position: absolute; cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background: var(--border);
    transition: 0.2s;
    border-radius: 24px;
}
.kyccfg-switch .slider:before {
    position: absolute; content: "";
    width: 18px; height: 18px;
    left: 3px; top: 3px;
    background: #fff;
    transition: 0.2s;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.kyccfg-switch input:checked + .slider { background: var(--primary); }
.kyccfg-switch input:checked + .slider:before { transform: translateX(20px); }

/* ─── KYC config: L2 section cards ─── */
.kyccfg-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px;
}
.kyccfg-card {
    background: var(--bg2);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    display: flex; flex-direction: column; gap: 10px;
    transition: border-color 0.18s, box-shadow 0.18s, opacity 0.18s;
}
.kyccfg-card.on {
    border-color: rgba(26,77,190,0.35);
    box-shadow: 0 1px 0 rgba(26,77,190,0.04), 0 6px 18px -10px rgba(26,77,190,0.18);
}
.kyccfg-card.off { opacity: 0.62; }
.kyccfg-card-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 12px;
}
.kyccfg-card-title { min-width: 0; }
.kyccfg-card-name {
    color: var(--fg-bright); font-weight: 700; font-size: 14px;
    line-height: 1.25;
}
.kyccfg-card-key {
    color: var(--muted); font-size: 11px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    margin-top: 3px;
}
.kyccfg-card-body { display: flex; flex-direction: column; gap: 8px; }
.kyccfg-card-disabled {
    color: var(--muted); font-size: 12px;
    padding: 8px 10px;
    background: rgba(0,0,0,0.04);
    border-radius: var(--radius-sm);
    border: 1px dashed var(--border-light);
}
.kyccfg-fields {
    display: flex; flex-direction: column; gap: 4px;
}
.kyccfg-field {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background 0.12s;
    user-select: none;
}
.kyccfg-field:hover { background: rgba(26,77,190,0.05); }
.kyccfg-field input { position: absolute; opacity: 0; pointer-events: none; }
.kyccfg-field-mark {
    width: 18px; height: 18px;
    border: 1.5px solid var(--border);
    border-radius: 4px;
    background: var(--bg);
    position: relative;
    flex-shrink: 0;
    transition: background 0.12s, border-color 0.12s;
}
.kyccfg-field.on .kyccfg-field-mark {
    background: var(--primary);
    border-color: var(--primary);
}
.kyccfg-field.on .kyccfg-field-mark:after {
    content: "";
    position: absolute;
    left: 5px; top: 1.5px;
    width: 5px; height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.kyccfg-field-body { display: flex; flex-direction: column; min-width: 0; }
.kyccfg-field-name {
    color: var(--fg-bright); font-size: 13px; font-weight: 500;
    line-height: 1.2;
}
.kyccfg-field-key {
    color: var(--muted); font-size: 10px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    margin-top: 2px;
}
.kyccfg-field input:disabled ~ .kyccfg-field-mark { opacity: 0.4; }
.kyccfg-field:has(input:disabled) {
    cursor: not-allowed;
    opacity: 0.55;
}

.country-chips {
    display: flex; flex-wrap: wrap; gap: 6px;
    max-height: 320px; overflow-y: auto;
    padding: 4px;
}
.country-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 10px;
    background: rgba(220,38,38,0.06);
    border: 1px solid rgba(220,38,38,0.18);
    border-radius: 999px;
    font-size: 12px;
}
.country-chip .flag { font-size: 14px; line-height: 1; }
.country-chip .code {
    color: var(--red); font-weight: 700;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.country-chip .name { color: var(--fg); }

.kyccfg-banned-text {
    width: 100%;
    background: var(--bg); color: var(--fg-bright);
    border: 1px solid var(--border);
    padding: 10px 12px; border-radius: var(--radius-sm);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 13px;
    resize: vertical;
}
.kyccfg-banned-text:focus {
    outline: none; border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(26,77,190,0.12);
}

/* ─── Restricted countries: rebuilt card ─── */
.kyc-restricted { padding: 18px 20px; }
.kyc-rest-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 18px; flex-wrap: wrap; margin-bottom: 14px;
}
.kyc-rest-src { font-size: 12px; color: var(--muted); margin-top: 4px; }

.kyc-rest-stats { display: flex; gap: 8px; flex-wrap: wrap; }
.kyc-stat {
    background: var(--bg); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 8px 12px; min-width: 86px;
    text-align: center;
}
.kyc-stat-n { font-size: 20px; font-weight: 700; color: var(--fg-bright); line-height: 1.1; }
.kyc-stat-l { font-size: 11px; color: var(--muted); margin-top: 2px; }

.kyc-mode-row {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px; margin: 4px 0 14px;
}
.kyc-mode {
    display: flex; flex-direction: column; gap: 4px;
    padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    cursor: pointer; background: var(--bg); transition: border-color .15s, background .15s;
    position: relative;
}
.kyc-mode:hover { border-color: var(--primary); }
.kyc-mode.on { border-color: var(--primary); background: rgba(26,77,190,0.06); }
.kyc-mode input[type=radio] { position: absolute; right: 10px; top: 12px; }
.kyc-mode-title { font-weight: 600; color: var(--fg-bright); font-size: 13px; padding-right: 20px; }
.kyc-mode-hint  { font-size: 11px; color: var(--muted); line-height: 1.4; }

.kyc-policy-note {
    margin: 8px 0 16px; padding: 10px 14px;
    background: rgba(26,77,190,0.06); border: 1px solid rgba(26,77,190,0.25);
    border-radius: var(--radius-sm); font-size: 12px; color: var(--fg-bright);
    line-height: 1.55;
}
.kyc-policy-note b { color: var(--primary); }

.kyc-extras { margin: 0 0 14px; }
.kyc-extras-lbl { display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
.kyc-extras-row { display: flex; gap: 8px; align-items: stretch; }
.kyc-extras-input {
    flex: 1; background: var(--bg); color: var(--fg-bright);
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 8px 12px; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 13px;
}
.kyc-extras-input:focus { outline: none; border-color: var(--primary); }
.kyc-extras-add { flex: 0 0 auto; padding: 0 18px; font-weight: 600; letter-spacing: 0.4px; }
.kyc-extras-hint { font-size: 11px; color: var(--muted); margin-top: 4px; }
.kyc-extras-empty {
    font-size: 12px; color: var(--muted); margin-top: 10px; padding: 8px 10px;
    border: 1px dashed var(--border); border-radius: var(--radius-sm);
}
.kyc-extras-chips {
    display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px;
}
.kyc-extras-chip {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(20,160,90,0.10); border: 1px solid rgba(20,160,90,0.35);
    border-radius: 999px; padding: 3px 4px 3px 10px; font-size: 12px;
    color: var(--fg-bright);
}
.kyc-extras-chip-flag { font-size: 14px; line-height: 1; }
.kyc-extras-chip-iso {
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-weight: 600;
}
.kyc-extras-chip-name { color: var(--muted); font-size: 11px; }
.kyc-extras-chip-x {
    background: transparent; border: 0; color: var(--muted); cursor: pointer;
    font-size: 16px; line-height: 1; padding: 0 6px; border-radius: 999px;
    transition: background .12s, color .12s;
}
.kyc-extras-chip-x:hover { color: var(--red, #d94545); background: rgba(217,69,69,0.12); }

.kyc-ccard-extra { border-color: rgba(20,160,90,0.45); }
.kyc-ccard-remove {
    margin-top: 8px; width: 100%; background: transparent;
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 5px 10px; font-size: 12px; color: var(--muted); cursor: pointer;
    transition: border-color .12s, color .12s, background .12s;
}
.kyc-ccard-remove:hover {
    border-color: var(--red, #d94545); color: var(--red, #d94545);
    background: rgba(217,69,69,0.06);
}

.kyc-tabs {
    display: flex; gap: 4px; border-bottom: 1px solid var(--border);
    margin: 6px 0 12px; flex-wrap: wrap;
}
.kyc-tab {
    background: transparent; border: 0; padding: 8px 14px; color: var(--muted);
    cursor: pointer; font-size: 13px; border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.kyc-tab:hover { color: var(--fg-bright); }
.kyc-tab.on { color: var(--primary); border-bottom-color: var(--primary); font-weight: 600; }
.kyc-tab-count {
    display: inline-block; margin-left: 4px; padding: 1px 7px;
    background: var(--bg); border: 1px solid var(--border); border-radius: 999px;
    font-size: 11px; font-weight: 500;
}

.kyc-tab-body { min-height: 120px; }
.kyc-empty { padding: 24px; text-align: center; color: var(--muted); font-size: 13px; }

.kyc-country-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px;
}
.kyc-ccard {
    background: var(--bg); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 10px 12px;
}
.kyc-ccard.amb { border-color: var(--orange, #d98a1a); }
.kyc-ccard-h {
    display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
    flex-wrap: wrap;
}
.kyc-flag { font-size: 18px; line-height: 1; }
.kyc-cname { color: var(--fg-bright); font-weight: 600; font-size: 13px; flex: 1; }
.kyc-ciso {
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px;
    color: var(--muted); padding: 1px 6px; background: var(--bg2, rgba(0,0,0,0.2));
    border-radius: 4px;
}
.kyc-ccard-row {
    display: flex; justify-content: space-between; font-size: 12px;
    color: var(--muted); padding: 2px 0;
}
.kyc-ccard-row b {
    color: var(--fg-bright); font-weight: 500;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.kyc-badge {
    font-size: 10px; padding: 1px 6px; border-radius: 4px; text-transform: uppercase;
    letter-spacing: 0.4px; font-weight: 600;
}
.kyc-badge.house { background: rgba(26,77,190,0.12); color: var(--primary); }
.kyc-badge.extra { background: rgba(20,160,90,0.12); color: var(--green, #1aa05a); }
.kyc-badge.amb   { background: rgba(217,138,26,0.16); color: var(--orange, #d98a1a); }

.kyc-prow {
    display: grid; grid-template-columns: 110px 1fr; gap: 12px;
    padding: 8px 0; border-bottom: 1px dashed var(--border); align-items: start;
}
.kyc-prow:last-child { border-bottom: 0; }
.kyc-prefix {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 14px; font-weight: 600; color: var(--red);
}
.kyc-prefix.kyc-mcc { color: var(--primary); }
.kyc-prefix-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.kyc-prefix-c {
    background: var(--bg); border: 1px solid var(--border);
    padding: 3px 8px; border-radius: var(--radius-sm); font-size: 12px;
}
.kyc-prefix-c code {
    font-size: 10px; padding: 0 4px; background: rgba(0,0,0,0.15); border-radius: 3px;
    margin-left: 4px;
}
.kyc-amb { color: var(--orange, #d98a1a); font-style: italic; font-size: 11px; }
.kyc-amb-help {
    background: rgba(217,138,26,0.08); border-left: 3px solid var(--orange, #d98a1a);
    padding: 10px 12px; border-radius: var(--radius-sm); margin-bottom: 12px;
    font-size: 12px; color: var(--fg);
}

/* KYC unified shell — top tab strip + sub-header */
.kyc-shell-tabs {
    display: flex; gap: 4px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 18px;
    padding: 0 2px;
}
.kyc-shell-tab {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    padding: 10px 16px;
    margin-bottom: -1px;
    color: var(--muted);
    font-size: 14px; font-weight: 600;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.kyc-shell-tab:hover {
    color: var(--fg-bright);
    background: var(--bg2);
}
.kyc-shell-tab.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    background: transparent;
}
.kyc-subhead {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
    gap: 12px;
}
.kyc-subhead .sub { color: var(--muted); font-size: 12px; }

/* MCC tab: red provider-required notice */
.mcc-notice {
    background: rgba(220, 38, 38, 0.06);
    border: 1px solid rgba(220, 38, 38, 0.35);
    border-left: 4px solid var(--red);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    margin-bottom: 14px;
    color: var(--red);
}
.mcc-notice-head {
    display: flex; gap: 10px; align-items: flex-start;
    font-size: 13px; line-height: 1.45;
}
.mcc-notice-head b { color: var(--red); font-weight: 700; }
.mcc-notice-icon {
    width: 22px; height: 22px; flex-shrink: 0;
    background: var(--red); color: #fff;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 14px;
    margin-top: 1px;
}
.mcc-prov-list {
    margin: 12px 0 6px; padding: 0; list-style: none;
    display: flex; flex-direction: column; gap: 8px;
}
.mcc-prov {
    background: #fff;
    border: 1px solid rgba(220, 38, 38, 0.18);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
}
.mcc-prov-head {
    display: flex; align-items: center; gap: 10px;
    flex-wrap: wrap;
}
.mcc-prov-rank {
    width: 22px; height: 22px; flex-shrink: 0;
    background: var(--red); color: #fff;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 12px;
}
.mcc-prov-name {
    color: var(--fg-bright); font-weight: 700; font-size: 13px;
    text-decoration: none;
    border-bottom: 1px dashed rgba(220, 38, 38, 0.55);
}
.mcc-prov-name:hover { color: var(--red); border-bottom-color: var(--red); }
.mcc-prov-price {
    margin-left: auto;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 12px; color: var(--red); font-weight: 600;
    background: rgba(220, 38, 38, 0.08);
    padding: 2px 8px; border-radius: 999px;
}
.mcc-prov-why {
    color: var(--fg); font-size: 12px; line-height: 1.45;
    margin-top: 6px;
}
.mcc-notice-foot {
    margin-top: 10px; font-size: 11px; color: var(--muted);
    font-style: italic;
}

/* tester */
.kyc-tester {
    margin-top: 18px; padding: 14px; background: var(--bg);
    border: 1px solid var(--border); border-radius: var(--radius-sm);
}
.kyc-tester-h { margin: 0 0 10px; color: var(--fg-bright); font-size: 13px; }
.kyc-tester-row {
    display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr auto;
    gap: 8px; align-items: center;
}
.kyc-tester-in {
    background: var(--bg2, rgba(0,0,0,0.2)); border: 1px solid var(--border);
    color: var(--fg-bright); padding: 7px 10px; border-radius: var(--radius-sm);
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px;
}
.kyc-tester-in:focus { outline: none; border-color: var(--primary); }
.kyc-tester-result { margin-top: 10px; font-size: 13px; min-height: 24px; }
.kyc-tester-result.running { color: var(--muted); }
.kyc-tester-result.err     { color: var(--red); }
.kyct-badge {
    display: inline-block; padding: 4px 10px; border-radius: var(--radius-sm);
    font-weight: 700; font-size: 12px; letter-spacing: 0.4px;
}
.kyct-badge.ok      { background: rgba(20,160,90,0.18); color: var(--green, #1aa05a); }
.kyct-badge.blocked { background: rgba(220,60,60,0.18); color: var(--red); }
.kyct-badge.ambig   { background: rgba(217,138,26,0.18); color: var(--orange, #d98a1a); }
.kyct-reasons { margin: 8px 0 0 18px; padding: 0; font-size: 12px; color: var(--fg); }
.kyct-reasons li { margin: 2px 0; }
.kyct-reasons code {
    background: rgba(0,0,0,0.15); padding: 1px 5px; border-radius: 3px;
    font-size: 11px;
}
.kyct-hint { margin-top: 6px; font-size: 11px; color: var(--muted); font-style: italic; }

@media (max-width: 720px) {
    .kyc-tester-row { grid-template-columns: 1fr; }
    .kyc-rest-stats { width: 100%; }
}

/* ─── Compliance page ─── */
.cmp-section { margin-bottom: 32px; }
.cmp-section-title {
    color: var(--fg-bright); font-size: 18px; font-weight: 700;
    display: flex; align-items: center; gap: 10px; margin: 0 0 14px;
}
.cmp-section-flag { font-size: 22px; line-height: 1; }
.cmp-section-badge {
    font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    background: var(--accent-dim); color: var(--primary);
    padding: 3px 8px; border-radius: 999px; margin-left: 4px;
}

.cmp-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}

.cmp-card {
    text-align: left; cursor: pointer;
    background: var(--bg); border: 1px solid var(--border); border-radius: 12px;
    padding: 16px; font-family: inherit;
    transition: border-color .15s, transform .12s, box-shadow .15s;
    display: flex; flex-direction: column; gap: 8px;
}
.cmp-card:hover {
    border-color: var(--primary);
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(26,77,190,0.10);
}
.cmp-card:focus-visible {
    outline: 2px solid var(--primary); outline-offset: 2px;
}
.cmp-card-head { display: flex; align-items: center; gap: 8px; }
.cmp-card-flag { font-size: 18px; line-height: 1; }
.cmp-card-name { color: var(--fg-bright); font-weight: 700; font-size: 15px; }
.cmp-card-full { color: var(--fg); font-size: 13px; line-height: 1.35; }
.cmp-card-meta { color: var(--muted); font-size: 11px; }
.cmp-card-bar {
    height: 6px; background: var(--bg3); border-radius: 999px; overflow: hidden;
}
.cmp-card-bar-fill {
    height: 100%; background: linear-gradient(90deg, #1F9D55, #1A4DBE);
    border-radius: 999px;
}
.cmp-card-count {
    color: var(--muted); font-size: 11px; font-weight: 500;
}
.cmp-card-count-sat { color: var(--accent, #1F9D55); font-weight: 700; font-size: 13px; }

/* ─── Compliance modal ─── */
.cmp-modal[hidden] { display: none; }
.cmp-modal {
    position: fixed; inset: 0; z-index: 1000;
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
}
.cmp-modal-backdrop {
    position: absolute; inset: 0;
    background: rgba(10, 16, 35, 0.55);
    backdrop-filter: blur(2px);
}
.cmp-modal-card {
    position: relative; z-index: 1;
    background: var(--bg); border: 1px solid var(--border); border-radius: 14px;
    max-width: 760px; width: 100%; max-height: 86vh; overflow-y: auto;
    padding: 28px 28px 24px;
    box-shadow: 0 20px 60px rgba(10, 16, 35, 0.25);
}
.cmp-modal-close {
    position: absolute; top: 12px; right: 12px;
    background: transparent; border: 0; font-size: 28px; line-height: 1;
    color: var(--muted); cursor: pointer; padding: 4px 10px; border-radius: 8px;
}
.cmp-modal-close:hover { background: var(--bg2); color: var(--fg-bright); }

.cmp-mod-head { margin-bottom: 18px; }
.cmp-mod-head-top { display: flex; align-items: center; gap: 10px; padding-right: 40px; }
.cmp-mod-flag { font-size: 22px; line-height: 1; }
.cmp-mod-head h2 {
    color: var(--fg-bright); font-size: 18px; font-weight: 700; margin: 0;
}
.cmp-mod-meta {
    margin-top: 14px;
    border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px;
    background: var(--bg2);
}
.cmp-mod-meta-row {
    display: grid; grid-template-columns: 92px 1fr; gap: 8px;
    padding: 4px 0; font-size: 13px; color: var(--fg);
}
.cmp-mod-meta-l { color: var(--muted); font-weight: 600; font-size: 11px;
    text-transform: uppercase; letter-spacing: .04em; padding-top: 1px; }

.cmp-mod-link {
    display: inline-flex; align-items: center; gap: 6px;
    margin-top: 12px;
    background: var(--primary); color: #fff;
    padding: 10px 16px; border-radius: 8px;
    font-weight: 600; font-size: 13px; text-decoration: none;
}
.cmp-mod-link:hover { background: #163d97; }

.cmp-mod-progress {
    margin: 18px 0 10px; color: var(--muted); font-size: 12px;
}
.cmp-mod-progress-n { color: var(--accent, #1F9D55); font-weight: 700; font-size: 16px; }

.cmp-mod-clauses {
    list-style: none; padding: 0; margin: 0;
    border-top: 1px solid var(--border);
}
.cmp-mod-clause {
    display: grid; grid-template-columns: 28px 1fr; gap: 12px;
    padding: 14px 0; border-bottom: 1px solid var(--border);
}
.cmp-mod-clause:last-child { border-bottom: 0; }
.cmp-mod-tick {
    display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 50%;
    font-size: 14px; font-weight: 700; line-height: 1;
}
.cmp-mod-tick.on  { background: rgba(31, 157, 85, 0.15); color: #1F9D55; }
.cmp-mod-tick.off { background: var(--bg3); color: var(--muted); }
.cmp-mod-clause-ref {
    color: var(--primary); font-weight: 700; font-size: 11px;
    text-transform: uppercase; letter-spacing: .04em;
}
.cmp-mod-clause-title {
    color: var(--fg-bright); font-weight: 600; font-size: 14px; margin-top: 2px;
}
.cmp-mod-clause-how {
    color: var(--muted); font-size: 12.5px; line-height: 1.45; margin-top: 4px;
}
.cmp-mod-clause.off .cmp-mod-clause-how { color: #7a6650; }

@media (max-width: 640px) {
    .cmp-modal { padding: 12px; }
    .cmp-modal-card { padding: 22px 18px 18px; }
    .cmp-mod-meta-row { grid-template-columns: 1fr; gap: 2px; }
    .cmp-mod-meta-l { padding-top: 0; }
}

/* ─── Liquidity-provider test modal ─── */
.lp-modal[hidden] { display: none; }
.lp-modal {
    position: fixed; inset: 0; z-index: 1000;
    display: grid; place-items: center; padding: 24px;
}
.lp-modal-backdrop {
    position: absolute; inset: 0; background: rgba(8,13,28,.72); backdrop-filter: blur(2px);
}
.lp-modal-card {
    position: relative; background: var(--bg2, #0f1924); border: 1px solid var(--border, #20303f);
    border-radius: 14px; padding: 28px 30px 22px; max-width: 820px; width: 100%;
    max-height: 86vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.lp-modal-close {
    position: absolute; top: 12px; right: 14px; background: transparent;
    border: 0; color: var(--muted, #7d8c9d); font-size: 22px; line-height: 1;
    cursor: pointer; padding: 4px 10px; border-radius: 6px;
}
.lp-modal-close:hover { background: rgba(255,255,255,.06); color: var(--fg-bright, #fff); }
.lp-modal-head { margin-bottom: 18px; }
.lp-modal-head h2 { margin: 6px 0 4px; font-size: 22px; color: var(--fg-bright, #fff); }
.lp-modal-sub { color: var(--muted, #7d8c9d); font-size: 13px; margin: 0; }
.lp-modal-sub strong { color: var(--fg-bright, #fff); }
.lp-modal-sub code { background: rgba(255,255,255,.06); padding: 1px 6px; border-radius: 4px; font-size: 12px; }
.lp-modal-tag {
    display: inline-block; background: rgba(255,255,255,.06); color: var(--muted, #7d8c9d);
    padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 700;
    letter-spacing: .04em; text-transform: uppercase;
}
.lp-modal-tag.ok { background: rgba(34,197,94,.14); color: #4ade80; }
.lp-modal-tag.err { background: rgba(239,68,68,.14); color: #f87171; }
.lp-stat.ok { color: #4ade80; }
.lp-modal-loading { padding: 60px 0; text-align: center; }
.lp-modal-err { background: rgba(239,68,68,.06); border: 1px solid rgba(239,68,68,.18); border-radius: 10px; padding: 14px 16px; }
.lp-modal-err strong { display: block; color: #f87171; font-size: 13px; margin-bottom: 6px; }
.lp-modal-err pre { background: rgba(0,0,0,.3); padding: 10px 12px; border-radius: 6px; color: #e6eef9; font-size: 12px; overflow-x: auto; margin: 0; white-space: pre-wrap; word-break: break-word; }
.lp-modal-tbl-wrap { overflow-x: auto; border: 1px solid var(--border, #20303f); border-radius: 10px; }
.lp-modal-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.lp-modal-tbl th, .lp-modal-tbl td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--border, #20303f); }
.lp-modal-tbl th { background: rgba(255,255,255,.03); font-weight: 600; font-size: 11px; color: var(--muted, #7d8c9d); text-transform: uppercase; letter-spacing: .04em; }
.lp-modal-tbl tr:last-child td { border-bottom: 0; }
.lp-modal-tbl td.num { font-variant-numeric: tabular-nums; text-align: right; }
.lp-modal-tbl td.muted { color: var(--muted, #7d8c9d); }
.lp-modal-tbl td.up { color: #4ade80; }
.lp-modal-tbl td.down { color: #f87171; }
.lp-modal-foot { display: flex; gap: 10px; justify-content: flex-end; align-items: center; margin-top: 16px; }

/* ─── Rate matrix on /providers ─── */
.legend-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; vertical-align: middle; margin-right: 4px; }
.legend-swatch.low { background: rgba(34,197,94,.55); }
.legend-swatch.high { background: rgba(239,68,68,.55); }

.lp-matrix-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: 720px; }
.lp-matrix-tbl th, .lp-matrix-tbl td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--border, #20303f); }
.lp-matrix-tbl th { font-weight: 600; font-size: 11px; color: var(--muted, #7d8c9d); text-transform: uppercase; letter-spacing: .04em; background: rgba(255,255,255,.025); white-space: nowrap; }
.lp-matrix-tbl td.num, .lp-matrix-tbl th.num { text-align: right; font-variant-numeric: tabular-nums; }
.lp-matrix-tbl td.low { background: rgba(34,197,94,.13); color: #4ade80; font-weight: 600; }
.lp-matrix-tbl td.high { background: rgba(239,68,68,.13); color: #f87171; font-weight: 600; }
.lp-matrix-tbl td.lp-mx-avg { background: rgba(96,165,250,.06); }
.lp-matrix-tbl td.lp-mx-na { color: var(--muted, #7d8c9d); }
.lp-matrix-tbl tr:hover td:not(.lp-mx-na) { background: rgba(255,255,255,.02); }
.lp-mx-ok { color: #4ade80; font-size: 10px; }
.lp-mx-err { color: #f87171; font-size: 10px; cursor: help; }
.lp-mx-d { font-size: 10px; color: var(--muted, #7d8c9d); margin-left: 4px; }
.lp-mx-d.up { color: #4ade80; }
.lp-mx-d.down { color: #f87171; }
.lp-mx-meta { font-size: 10px; color: var(--muted, #7d8c9d); font-weight: 400; margin-top: 1px; }
.lp-mx-spread { padding: 1px 6px; border-radius: 4px; background: rgba(255,255,255,.05); color: var(--muted, #7d8c9d); font-size: 11px; }
.lp-mx-spread.hot { background: rgba(239,68,68,.13); color: #f87171; }
.lp-mx-base { display: inline-block; margin-left: 4px; padding: 1px 5px; border-radius: 3px; background: rgba(255,255,255,.06); color: var(--muted, #7d8c9d); font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; vertical-align: middle; }

/* ─── ECB reference rates block ─── */
.ecb-tbl { width: 100%; border-collapse: collapse; }
.ecb-tbl th { font-weight: 600; font-size: 11px; color: var(--muted, #7d8c9d); text-transform: uppercase; letter-spacing: .04em; background: rgba(255,255,255,.025); padding: 8px 10px; text-align: left; position: sticky; top: 0; z-index: 1; }
.ecb-tbl td { padding: 7px 10px; font-size: 13px; border-top: 1px solid var(--border, #20303f); }
.ecb-tbl td.num { text-align: right; font-variant-numeric: tabular-nums; }
.ecb-tbl td.muted { color: var(--muted, #7d8c9d); }
.ecb-row.ecb-up   { background: rgba(74,222,128,.07); }
.ecb-row.ecb-down { background: rgba(248,113,113,.07); }
.ecb-row.ecb-flat { background: transparent; }
.ecb-delta.ecb-up   { color: #4ade80; font-weight: 600; }
.ecb-delta.ecb-down { color: #f87171; font-weight: 600; }
.ecb-delta.ecb-flat { color: var(--muted, #7d8c9d); }
.ecb-arrow { display: inline-block; min-width: 12px; }
.ecb-legend { font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: 4px; }
.ecb-legend.up   { color: #4ade80; background: rgba(74,222,128,.10); }
.ecb-legend.down { color: #f87171; background: rgba(248,113,113,.10); }

/* ─── Supported assets (Coins) tab ─── */
.assets-tbl tr.row-disabled td { opacity: 0.55; }
.assets-tbl tr.row-disabled td.coin-actions-cell,
.assets-tbl tr.row-disabled td.coin-id-cell,
.assets-tbl tr.row-disabled td.ccy-actions { opacity: 1; }

/* Operating currencies: flag chip + locked name display. The toggle lives
   in the actions cell next to Delete so on/off and removal share visual
   weight instead of being split across two ends of the row. */
.ccy-flag {
    display: inline-block;
    width: 22px; text-align: center;
    font-size: 16px; line-height: 1;
    margin-right: 4px;
    vertical-align: middle;
}
.ccy-name { color: var(--fg); font-size: 13.5px; }
.ccy-actions .lp-toggle { vertical-align: middle; }

.coin-id-cell { display: flex; align-items: center; gap: 12px; min-width: 200px; }
.coin-logo { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; background: var(--bg2); }
.coin-logo-fallback {
    width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--accent-dim); color: var(--primary);
    font-weight: 700; font-size: 13px;
}
.coin-id-text { line-height: 1.2; }
.coin-symbol { font-size: 13.5px; font-weight: 700; color: var(--fg-bright); }
.coin-name { font-size: 11.5px; color: var(--muted); margin-top: 1px; }

.coin-nets-cell { vertical-align: middle; }
.net-pills-row { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.asset-net {
    display: inline-flex; align-items: center;
    background: var(--accent-dim); color: var(--primary);
    border: 1px solid rgba(26,77,190,0.22);
    padding: 3px 9px; border-radius: 5px;
    font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
}
.net-edit-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 24px; padding: 0;
    background: transparent; border: 1px solid var(--border);
    color: var(--muted); border-radius: 5px;
    cursor: pointer; transition: border-color .12s, color .12s, background .12s;
}
.net-edit-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--accent-dim); }

.coin-actions-cell { white-space: nowrap; text-align: right; vertical-align: middle; }
.coin-actions-cell .lp-toggle { vertical-align: middle; margin-right: 10px; }

/* Network-editor popup — click-to-toggle chips */
.net-editor-card { max-width: 520px; width: calc(100vw - 40px); display: flex; flex-direction: column; }
.net-editor-body { padding: 0 18px 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.net-editor-foot { padding: 12px 18px; display: flex; justify-content: flex-end; gap: 8px; }
.net-chip-toggle {
    padding: 8px 14px; border-radius: 999px;
    background: var(--bg2); border: 1px solid var(--border);
    color: var(--fg); font-size: 12.5px; font-weight: 600;
    cursor: pointer; transition: background .12s, border-color .12s, color .12s;
    font-family: inherit;
}
.net-chip-toggle:hover { border-color: var(--primary); color: var(--primary); }
.net-chip-toggle.selected {
    background: var(--primary); color: #fff; border-color: var(--primary);
}
.net-chip-toggle.selected:hover { background: var(--primary-dark, #163e9a); }

/* ─── Asset picker modal (Coins tab → + Add asset) ─── */
.asset-picker-card { max-width: 720px; width: calc(100vw - 40px); max-height: calc(100vh - 60px); display: flex; flex-direction: column; }
#asset-picker-search {
    width: 100%; box-sizing: border-box;
    padding: 10px 12px; font-size: 14px;
    background: var(--bg2); border: 1px solid var(--border);
    color: var(--fg-bright); border-radius: 8px; font-family: inherit;
}
#asset-picker-search:focus { outline: none; border-color: var(--primary); }
.asset-picker-summary { font-size: 12px; color: var(--muted); margin-top: 6px; min-height: 16px; }
.asset-picker-body { padding: 0 18px 18px; overflow-y: auto; flex: 1; }
.asset-picker-row {
    display: grid; grid-template-columns: 130px 1fr auto;
    gap: 14px; align-items: center;
    padding: 12px 0; border-top: 1px solid var(--border-light);
}
.asset-picker-row:first-child { border-top: 0; }
.asset-picker-symbol { font-size: 14px; font-weight: 700; color: var(--fg-bright); }
.asset-picker-name { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.asset-picker-nets { display: flex; flex-wrap: wrap; gap: 6px; }
.asset-picker-net {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--bg2); border: 1px solid var(--border-light);
    padding: 4px 9px; border-radius: 6px;
    font-size: 11.5px; color: var(--fg); cursor: pointer;
    user-select: none; transition: background .12s, border-color .12s;
}
.asset-picker-net:hover { border-color: var(--primary); }
.asset-picker-net input { margin: 0; cursor: pointer; }
.asset-picker-net:has(input:checked) {
    background: var(--accent-dim); border-color: var(--primary); color: var(--primary);
}
.asset-picker-add { white-space: nowrap; }

/* ─── KYC clients queue (real users from fotifypay-app DB) ───────────── */
.kyc-users-card { padding: 18px 18px 22px; }
.kyc-users-toolbar {
    display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
    margin-bottom: 14px;
}
.kyc-users-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.kyc-users-pill {
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--fg);
    padding: 5px 12px; border-radius: 999px;
    font-size: 12px; font-weight: 600;
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
    display: inline-flex; align-items: center; gap: 7px;
}
.kyc-users-pill:hover { border-color: var(--primary); color: var(--primary); }
.kyc-users-pill.active {
    background: var(--primary); border-color: var(--primary); color: #fff;
}
.kyc-users-pill .kyc-users-pill-n {
    background: rgba(42, 24, 16, 0.08);
    color: var(--fg);
    border-radius: 999px;
    padding: 1px 7px; font-size: 10.5px; font-weight: 700;
    line-height: 1.4;
}
.kyc-users-pill.active .kyc-users-pill-n {
    background: rgba(255, 255, 255, 0.25); color: #fff;
}
.kyc-users-search {
    flex: 1; min-width: 220px;
    padding: 8px 12px; font-size: 13px;
    background: var(--bg); color: var(--fg-bright);
    border: 1px solid var(--border); border-radius: 8px;
    font-family: inherit;
}
.kyc-users-search:focus {
    outline: none; border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--accent-dim);
}

.kyc-users-meta {
    font-size: 11.5px; color: var(--muted);
    margin: 4px 0 10px;
}
.kyc-users-loading, .kyc-users-empty, .kyc-users-err {
    padding: 28px 16px; text-align: center; color: var(--muted);
    font-size: 13px;
}
.kyc-users-err { color: var(--red); }
.kyc-users-err code {
    background: rgba(178, 64, 31, 0.10); color: var(--red);
    padding: 1px 6px; border-radius: 4px;
}
.kyc-users-err-detail, .kyc-users-err-hint {
    margin-top: 8px; font-size: 11.5px; color: var(--muted);
}

.kyc-users-tbl { width: 100%; border-collapse: collapse; }
.kyc-users-tbl th, .kyc-users-tbl td {
    text-align: left; padding: 10px 12px;
    border-bottom: 1px solid var(--border-light);
    font-size: 13px; vertical-align: middle;
}
.kyc-users-tbl th {
    font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--muted); font-weight: 700; background: var(--bg2);
}
.kyc-users-tbl tr:hover { background: var(--bg3); }
.kyc-users-tbl .kyc-id-col {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11.5px; color: var(--muted);
}
.kyc-users-tbl .kyc-dt {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11.5px; color: var(--muted); white-space: nowrap;
}

.kyc-user-cell { display: flex; align-items: center; gap: 10px; }
.kyc-user-avatar {
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--accent-dim); color: var(--primary);
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 13px;
    flex-shrink: 0; overflow: hidden;
}
.kyc-user-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kyc-user-meta { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.kyc-user-email { color: var(--fg-bright); font-weight: 600; word-break: break-all; }
.kyc-user-name  { font-size: 11.5px; color: var(--fg); }
.kyc-user-tg    { font-size: 11px; color: var(--muted); font-family: 'JetBrains Mono', monospace; }

.kyc-lvl {
    display: inline-block; padding: 2px 8px; border-radius: 6px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px; font-weight: 700;
}
.kyc-lvl-0 { background: var(--bg3); color: var(--muted); }
.kyc-lvl-1 { background: rgba(184, 111, 0, 0.14); color: var(--yellow); }
.kyc-lvl-2 { background: rgba(31, 122, 74, 0.14); color: var(--green); }

/* Reuse .status-pill from cabinet base for KYC status. Add a third bucket
   for the "L1-only" stage which doesn't map cleanly to pending or completed. */
.status-pill.in-progress {
    background: var(--accent-dim); color: var(--primary);
}

.kyc-acct-pill {
    display: inline-block; padding: 1px 6px; border-radius: 4px;
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.06em; margin-left: 6px;
    vertical-align: middle;
}
.kyc-acct-locked, .kyc-acct-banned {
    background: rgba(178, 64, 31, 0.12); color: var(--red);
}

/* ─── Rate-basis card (admin → Assets → Commissions) ─────────────────── */
.rb-card { padding: 22px 24px 18px; }
.rb-title {
    margin: 0 0 6px;
    font-size: 16px; font-weight: 800;
    color: var(--fg-bright);
    letter-spacing: -0.005em;
}
.rb-lead {
    color: var(--muted); font-size: 13px;
    margin: 0 0 18px;
}
.rb-lead em { color: var(--fg); font-style: italic; }
.rb-section {
    display: flex; flex-direction: column; gap: 10px;
}
.rb-section-head {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 2px;
}
.rb-section-tag {
    display: inline-block; padding: 2px 9px; border-radius: 999px;
    font-size: 10.5px; font-weight: 800; letter-spacing: 0.08em;
    text-transform: uppercase;
}
.rb-tag-internal { background: var(--accent-dim); color: var(--primary); }
.rb-tag-public   { background: rgba(31, 122, 74, 0.14); color: var(--green); }
.rb-section-title { font-size: 13.5px; font-weight: 700; color: var(--fg); }
.rb-divider {
    height: 1px; background: var(--border-light);
    margin: 20px 0;
}

.rb-choices {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
@media (max-width: 720px) {
    .rb-choices { grid-template-columns: 1fr; }
}
.rb-choice {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg);
    cursor: pointer;
    transition: border-color .12s, background .12s, box-shadow .12s;
}
.rb-choice:hover  { border-color: var(--primary); }
.rb-choice.active {
    border-color: var(--primary);
    background: var(--accent-dim);
    box-shadow: 0 0 0 1px var(--primary) inset;
}
.rb-choice input[type="radio"] {
    margin-top: 3px; accent-color: var(--primary);
    cursor: pointer; flex-shrink: 0;
}
.rb-choice-body { display: flex; flex-direction: column; gap: 4px; }
.rb-choice-label { font-weight: 700; color: var(--fg-bright); font-size: 13.5px; }
.rb-choice-hint  { font-size: 11.5px; color: var(--muted); line-height: 1.45; }

.rb-markup {
    margin-top: 14px;
    padding: 12px 14px;
    background: var(--bg2);
    border: 1px dashed var(--border);
    border-radius: 10px;
}
.rb-markup-label {
    display: block;
    font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--muted); font-weight: 700;
    margin-bottom: 6px;
}
.rb-markup-row {
    display: flex; align-items: center; gap: 8px;
}
.rb-markup-row input {
    padding: 7px 10px; font-size: 14px; font-weight: 700;
    color: var(--fg-bright);
    background: var(--bg); border: 1px solid var(--border);
    border-radius: 8px; font-family: 'JetBrains Mono', ui-monospace, monospace;
}
.rb-markup-row input:focus {
    outline: none; border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--accent-dim);
}
.rb-markup-unit { font-weight: 700; color: var(--fg); }
.rb-markup-hint { font-size: 11.5px; color: var(--muted); }

/* ─────────── page-docs button (per-page «📖 Документация») ─────────── */
.docs-btn-wrap { flex: 0 0 auto; align-self: flex-start; }
.docs-btn {
    appearance: none;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px;
    background: linear-gradient(135deg, rgba(196,181,253,0.12), rgba(255,255,170,0.10));
    color: var(--fg-bright);
    border: 1px solid #c4b5fd;
    border-radius: 999px;
    font: inherit; font-size: 13px; font-weight: 600;
    cursor: pointer;
    transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
    white-space: nowrap;
}
.docs-btn:hover {
    background: linear-gradient(135deg, rgba(196,181,253,0.22), rgba(255,255,170,0.18));
    box-shadow: 0 4px 14px rgba(196,181,253,0.25);
    transform: translateY(-1px);
}
.docs-btn:active { transform: translateY(0); }
.docs-btn:focus-visible {
    outline: 2px solid #c4b5fd;
    outline-offset: 2px;
}

/* tx-feed (transactions page) */
.status-pill { display:inline-block; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600; line-height:1.5; }
.status-pill.completed { background: rgba(31,157,85,0.12); color: var(--green); }
.status-pill.pending   { background: rgba(217,119,6,0.12); color: #d97706; }
.status-pill.failed    { background: rgba(220,38,38,0.12); color: var(--red); }
.tx-type { display:inline-block; padding:2px 8px; border-radius:6px; font-size:11px; font-weight:700; letter-spacing:0.04em; }
.tx-type-buy  { background: rgba(31,157,85,0.12); color: var(--green); }
.tx-type-sell { background: rgba(37,99,235,0.12); color: #2563eb; }
.tx-amt { font-family:'JetBrains Mono',ui-monospace,monospace; font-size:13px; white-space:nowrap; }
.tx-unit { color: var(--muted); font-size:12px; }
.tx-order code { font-family:'JetBrains Mono',ui-monospace,monospace; font-size:11px; color: var(--muted); }
.tx-filter-sep { display:inline-block; width:1px; height:20px; background: var(--border-light, rgba(255,255,255,0.12)); margin:0 8px; vertical-align:middle; }
