:root {
    --pm-bg: #f5f8f6;
    --pm-surface: #ffffff;
    --pm-surface-2: #eef6f1;
    --pm-text: #13241a;
    --pm-muted: #627268;
    --pm-brand: #0b7a49;
    --pm-brand-2: #16a363;
    --pm-line: #dbe7df;
    --pm-danger: #bd2d2d;
    --pm-warn: #9a6a08;
    --pm-shadow: 0 18px 45px rgba(10, 42, 25, 0.10);
    --pm-radius: 22px;
}

@media (prefers-color-scheme: dark) {
    :root {
        --pm-bg: #07130d;
        --pm-surface: #0d1d14;
        --pm-surface-2: #11271b;
        --pm-text: #edf8f1;
        --pm-muted: #9db1a5;
        --pm-brand: #4bd28b;
        --pm-brand-2: #6de49f;
        --pm-line: #243d2e;
        --pm-shadow: 0 20px 55px rgba(0, 0, 0, 0.34);
    }
}

* {
    box-sizing: border-box;
}

.pm-page {
    min-height: 100vh;
    background:
        radial-gradient(
            circle at top right,
            rgba(22, 163, 99, 0.14),
            transparent 28%
        ),
        var(--pm-bg);
    color: var(--pm-text);
    padding: 24px 14px 80px;
}

.pm-wrap {
    width: min(1120px, 100%);
    margin: auto;
}

.pm-hero {
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 22px;
    align-items: stretch;
}

.pm-card,
.pm-panel {
    background: var(--pm-surface);
    border: 1px solid var(--pm-line);
    border-radius: var(--pm-radius);
    box-shadow: var(--pm-shadow);
}

.pm-card {
    padding: clamp(22px, 4vw, 42px);
}

.pm-kicker {
    display: inline-flex;
    padding: 7px 11px;
    border-radius: 999px;
    background: var(--pm-surface-2);
    color: var(--pm-brand);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.pm-title {
    font-size: clamp(2rem, 6vw, 4.2rem);
    line-height: 0.96;
    margin: 18px 0 16px;
    letter-spacing: -0.05em;
}

.pm-lead {
    font-size: clamp(1rem, 2.2vw, 1.2rem);
    line-height: 1.2;
    color: var(--pm-muted);
    max-width: 760px;
    margin-bottom: 5px;
}

.pm-money {
    display: grid;
    gap: 12px;
}

.pm-money article {
    padding: 18px;
    border-radius: 18px;
    background: var(--pm-surface-2);
    border: 1px solid var(--pm-line);
}

.pm-money strong {
    display: block;
    font-size: 1.8rem;
    color: var(--pm-brand);
}

.pm-money span {
    color: var(--pm-muted);
    font-size: 0.92rem;
}

.pm-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 18px;
}

.pm-stat {
    padding: 20px;
}

.pm-stat strong {
    display: block;
    font-size: 1.8rem;
}

.pm-stat span {
    color: var(--pm-muted);
    font-size: 0.9rem;
}

.pm-form {
    display: grid;
    gap: 16px;
}

.pm-form label {
    display: grid;
    gap: 7px;
    font-weight: 800;
    font-size: 0.92rem;
}

.pm-form input,
.pm-form select,
.pm-form textarea {
    width: 100%;
    border: 1px solid var(--pm-line);
    background: var(--pm-bg);
    color: var(--pm-text);
    border-radius: 14px;
    padding: 14px 15px;
    font: inherit;
    outline: none;
}

.pm-form input:focus,
.pm-form select:focus,
.pm-form textarea:focus {
    border-color: var(--pm-brand);
    box-shadow:
        0 0 0 3px
        color-mix(in srgb, var(--pm-brand) 18%, transparent);
}

.pm-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.pm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 14px;
    padding: 13px 18px;
    background:
        linear-gradient(
            135deg,
            var(--pm-brand),
            var(--pm-brand-2)
        );
    color: #fff;
    text-decoration: none;
    font-weight: 900;
    cursor: pointer;
    min-height: 48px;
}

.pm-btn--soft {
    background: var(--pm-surface-2);
    color: var(--pm-brand);
    border: 1px solid var(--pm-line);
}

.pm-btn--danger {
    background: #b83232;
}

.pm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex-direction: row;
}

.pm-note {
    padding: 13px 15px;
    border: 1px solid var(--pm-line);
    border-radius: 14px;
    background: var(--pm-surface-2);
    color: var(--pm-muted);
    line-height: 1.6;
}

.pm-alert {
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid var(--pm-line);
    margin-bottom: 14px;
    font-weight: 700;
}

.pm-alert--error {
    background:
        color-mix(
            in srgb,
            var(--pm-danger) 12%,
            var(--pm-surface)
        );
    color: var(--pm-danger);
}

.pm-alert--success {
    background:
        color-mix(
            in srgb,
            var(--pm-brand) 12%,
            var(--pm-surface)
        );
    color: var(--pm-brand);
}

.pm-table-wrap {
    overflow: auto;
    border: 1px solid var(--pm-line);
    border-radius: 18px;
}

.pm-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 680px;
}

.pm-table th,
.pm-table td {
    padding: 13px 14px;
    text-align: left;
    border-bottom: 1px solid var(--pm-line);
}

.pm-table th {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--pm-muted);
}

.pm-badge {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--pm-surface-2);
    font-size: 0.76rem;
    font-weight: 900;
}

.pm-sharebox {
    padding: 22px;
    background:
        linear-gradient(
            145deg,
            var(--pm-surface-2),
            var(--pm-surface)
        );
    border: 1px solid var(--pm-line);
    border-radius: 20px;
}

.pm-link {
    word-break: break-all;
    font-weight: 900;
    color: var(--pm-brand);
}

.pm-lock {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: var(--pm-muted);
    font-size: 0.9rem;
}

.pm-section {
    margin-top: 18px;
}

.pm-section h2 {
    margin: 0 0 12px;
}

.pm-small {
    color: var(--pm-muted);
    font-size: 0.9rem;
    line-height: 1.2;
}

.pm-center {
    text-align: center;
}

.pm-logo {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 18px;
    background: var(--pm-surface);
}

@media (max-width: 780px) {
    .pm-hero,
    .pm-grid,
    .pm-two {
        grid-template-columns: 1fr;
    }

    .pm-page {
        padding-inline: 10px;
    }

    .pm-card {
        padding: 20px;
    }

    .pm-title {
        font-size: 1.5rem;
    }

    .pm-btn {
        flex-direction: row;
    }
}


/* Promoter bank searchable dropdown */
.pm-bank-search {
    position: relative;
    width: 100%;
}

.pm-bank-search__input {
    width: 100%;
}

.pm-bank-search__native {
    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;
    opacity: 0 !important;
    pointer-events: none !important;
}

.pm-bank-search__results {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 1000;
    max-height: 260px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--pm-surface);
    border: 1px solid var(--pm-line);
    border-radius: 14px;
    box-shadow: var(--pm-shadow);
    padding: 6px;
}

.pm-bank-search__results[hidden] {
    display: none !important;
}

.pm-bank-search__option,
.pm-bank-search__empty {
    width: 100%;
    display: block;
    border: 0;
    border-radius: 10px;
    padding: 11px 12px;
    background: transparent;
    color: var(--pm-text);
    text-align: left;
    font: inherit;
}

.pm-bank-search__option {
    cursor: pointer;
}

.pm-bank-search__option:hover,
.pm-bank-search__option:focus {
    background: var(--pm-surface-2);
    color: var(--pm-brand);
    outline: none;
}

.pm-bank-search__empty {
    color: var(--pm-muted);
    cursor: default;
}