﻿/* =========================================================
   VENDOR REGISTRATION (prefix: vr-) — Bootstrap-free, minimum spacing, responsive
   ========================================================= */
.vr {
    --v-p: var(--fn-primary, #4f46e5);
    --v-ink: var(--fn-ink, #0f172a);
    --v-mut: var(--fn-muted, #64748b);
    --v-line: var(--fn-line, #e2e8f0);
    --v-bg: var(--fn-bg, #f8fafc);
    background: var(--v-bg);
    color: var(--v-ink);
    padding: 14px 12px 24px;
}

    .vr * {
        box-sizing: border-box;
    }

    .vr a {
        text-decoration: none;
    }

.vr-wrap {
    max-width: 980px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 300px 1fr;
    border: 1px solid var(--v-line);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

/* ---------- side ---------- */
.vr-side {
    padding: 20px 18px;
    color: #fff;
    background: linear-gradient(160deg, var(--v-p), #7c3aed);
}

    .vr-side h2 {
        margin: 0;
        font-size: 1.25rem;
        font-weight: 800;
    }

    .vr-side > p {
        margin: 4px 0 14px;
        font-size: .86rem;
        opacity: .9;
    }

    .vr-side ul {
        margin: 0;
        padding: 0;
        list-style: none;
        display: grid;
        gap: 10px;
    }

    .vr-side li {
        display: flex;
        align-items: center;
        gap: 10px;
    }

        .vr-side li > i {
            width: 34px;
            height: 34px;
            flex: none;
            display: grid;
            place-items: center;
            border-radius: 10px;
            background: rgba(255, 255, 255, .18);
            font-size: .9rem;
        }

        .vr-side li b {
            display: block;
            font-size: .86rem;
        }

        .vr-side li small {
            display: block;
            font-size: .74rem;
            opacity: .85;
        }

/* ---------- card ---------- */
.vr-card {
    padding: 16px 18px 18px;
    min-width: 0;
}

.vr-head {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--v-line);
}

    .vr-head h1 {
        margin: 0;
        font-size: 1.15rem;
        font-weight: 800;
    }

    .vr-head p {
        margin: 2px 0 0;
        font-size: .8rem;
        color: var(--v-mut);
    }

.vr-alert {
    margin-bottom: 10px;
    padding: 9px 12px;
    border-radius: 10px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    font-size: .84rem;
    font-weight: 600;
}

    .vr-alert:empty, .vr-alert.validation-summary-valid {
        display: none;
    }

    .vr-alert ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

.vr-form {
    margin: 0;
    display: grid;
    gap: 10px;
}

.vr-sec {
    margin: 0;
    padding: 10px 12px 12px;
    border: 1px solid var(--v-line);
    border-radius: 12px;
    min-width: 0;
    display: grid;
    gap: 10px;
}

    .vr-sec legend {
        float: left;
        width: 100%;
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        padding: 0;
        font-size: .8rem;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .05em;
    }

        .vr-sec legend + * {
            clear: both;
        }

        .vr-sec legend span {
            width: 22px;
            height: 22px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            background: var(--v-p);
            color: #fff;
            font-size: .72rem;
            letter-spacing: 0;
        }

.vr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 12px;
}

.vr-field {
    display: grid;
    gap: 4px;
    align-content: start;
    min-width: 0;
}

    .vr-field.full {
        grid-column: 1 / -1;
    }

    .vr-field label {
        margin: 0;
        font-size: .72rem;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

        .vr-field label i {
            color: #ef4444;
            font-style: normal;
        }

.vr-input {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    background: #fff;
    border: 1.5px solid var(--v-line);
    border-radius: 10px;
    transition: border-color .2s, box-shadow .2s, background .2s;
}

    .vr-input:focus-within {
        border-color: var(--v-p);
        box-shadow: 0 0 0 3px rgba(79, 70, 229, .12);
    }

    .vr-input > i {
        width: 16px;
        text-align: center;
        flex: none;
        color: var(--v-mut);
        font-size: .85rem;
    }

    .vr-input input, .vr-input select {
        flex: 1;
        min-width: 0;
        width: 100%;
        padding: 10px 0;
        border: 0;
        outline: 0;
        background: transparent;
        font: inherit;
        font-size: 16px;
        color: var(--v-ink);
    }

        .vr-input input::placeholder {
            color: #94a3b8;
        }

.vr-select select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 22px;
    cursor: pointer;
}

.vr-select .vr-caret {
    position: absolute;
    right: 12px;
    width: auto;
    font-size: .7rem;
    pointer-events: none;
}

.vr-input:has(.input-validation-error), .vr-field.has-error .vr-input {
    border-color: #ef4444;
    background: #fff5f5;
}

.vr-msg {
    color: #dc2626;
    font-size: .76rem;
    font-weight: 600;
}

    .vr-msg:empty, .vr-msg[hidden] {
        display: none;
    }

.vr-terms {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    font-size: .82rem;
    color: var(--v-mut);
    cursor: pointer;
}

    .vr-terms input {
        margin-top: 2px;
        width: 16px;
        height: 16px;
        accent-color: var(--v-p);
    }

.vr-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.vr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 24px;
    border: 1px solid var(--v-p);
    border-radius: 10px;
    background: linear-gradient(135deg, var(--v-p), #7c3aed);
    color: #fff !important;
    font: inherit;
    font-size: .88rem;
    font-weight: 700;
    cursor: pointer;
    transition: filter .15s, transform .15s, box-shadow .2s;
}

    .vr-btn:hover {
        filter: brightness(1.08);
        transform: translateY(-1px);
        box-shadow: 0 8px 18px rgba(79, 70, 229, .25);
    }

    .vr-btn.light {
        background: #fff;
        color: var(--v-ink) !important;
        border-color: var(--v-line);
    }

        .vr-btn.light:hover {
            background: var(--v-bg);
            box-shadow: none;
            transform: none;
            filter: none;
        }

    .vr-btn.is-loading {
        pointer-events: none;
        opacity: .75;
    }

/* ---------- responsive ---------- */
@media (max-width: 820px) {
    .vr-wrap {
        grid-template-columns: 1fr;
    }

    .vr-side {
        padding: 14px;
    }

        .vr-side ul {
            grid-template-columns: 1fr 1fr;
            gap: 8px;
        }

        .vr-side > p {
            margin-bottom: 10px;
        }
}

@media (max-width: 560px) {
    .vr {
        padding: 8px 8px 16px;
    }

    .vr-card {
        padding: 12px;
    }

    .vr-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vr-side ul {
        grid-template-columns: 1fr;
    }

    .vr-side li small {
        display: none;
    }

    .vr-actions {
        position: sticky;
        bottom: 0;
        z-index: 5;
        margin: 0 -12px -12px;
        padding: 8px 12px;
        background: #fff;
        border-top: 1px solid var(--v-line);
    }

        .vr-actions .vr-btn {
            flex: 1;
            padding: 11px 10px;
        }

            .vr-actions .vr-btn.light {
                flex: 0 0 auto;
            }
}

@media (prefers-reduced-motion: reduce) {
    .vr-input, .vr-btn {
        transition: none;
    }
}
