:root {
    --partner-purple: #59358c;
    --partner-purple-dark: #382846;
    --partner-purple-mid: #7049a3;
    --partner-yellow: #ffe979;
    --partner-surface: #fff;
    --partner-background: #f7f4fa;
    --partner-border: #e6deef;
    --partner-muted: #786b81;
    --partner-shadow: 0 16px 36px rgba(89, 53, 140, .1);
}

body {
    background: var(--partner-background);
    color: var(--partner-purple-dark);
}

/* En-têtes des écrans métier */
.partner-account-wrapper,
.partner-invoices-wrap {
    padding: clamp(24px, 4vw, 48px) clamp(16px, 5vw, 64px) 64px !important;
    background: var(--partner-background) !important;
}

.partner-account-container,
.partner-invoices-container {
    width: min(100%, 1380px) !important;
    max-width: 1380px !important;
}

.partner-account-header,
.partner-invoices-head {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 20px !important;
    margin-bottom: 18px !important;
    padding: clamp(24px, 4vw, 38px) !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, var(--partner-purple), #68419a) !important;
    box-shadow: 0 16px 36px rgba(89, 53, 140, .16) !important;
    color: #fff !important;
}

.partner-page-heading-icon,
.partner-form-heading-icon {
    display: grid;
    width: 62px;
    height: 62px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    color: var(--partner-yellow) !important;
    font-size: 27px;
}

.partner-page-kicker {
    display: block;
    margin-bottom: 5px;
    color: var(--partner-yellow) !important;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.partner-account-header h1,
.partner-invoices-head h1 {
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(26px, 3vw, 36px) !important;
    line-height: 1.15 !important;
}

.partner-account-header p,
.partner-invoices-head p {
    max-width: 660px;
    margin: 8px 0 0 !important;
    color: #e8dff0 !important;
    font-size: 14px !important;
    line-height: 1.55;
}

/* Cartes et tableaux */
.partner-section-card,
.partner-invoices-wrap .table-card,
.partner-invoices-wrap .upload-card,
.partner-invoices-wrap .step2-card {
    border: 1px solid var(--partner-border) !important;
    border-radius: 16px !important;
    background: var(--partner-surface) !important;
    box-shadow: var(--partner-shadow) !important;
}

.partner-invoices-wrap .table-head,
.partner-invoices-wrap .upload-title,
.partner-invoices-wrap .step2-title {
    color: var(--partner-purple-dark) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

.partner-invoices-wrap .table-head {
    display: flex;
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 24px !important;
    border-bottom: 1px solid var(--partner-border) !important;
}

.partner-invoices-wrap .table-head .invoice-search {
    width: 250px;
    min-height: 38px;
    height: 38px;
    max-height: 38px;
    flex: 0 0 auto !important;
    padding: 8px 12px !important;
    line-height: 20px;
}

.table-head-title {
    white-space: nowrap;
}

.table-head-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.invoice-search-field {
    display: flex;
    align-items: center;
    gap: 10px;
}

.invoice-search-field label {
    color: var(--partner-purple-dark);
    font-size: 11px;
    font-weight: 700;
}

.invoice-search::placeholder {
    color: #8d7a99 !important;
    opacity: 1;
}

.partner-invoices-wrap .invoice-table th {
    background: #faf8fc !important;
    color: var(--partner-muted) !important;
    font-size: 10px !important;
    letter-spacing: .07em;
}

.partner-invoices-wrap .invoice-table td {
    color: var(--partner-purple-dark);
}

.partner-invoices-wrap .invoice-table tbody tr:hover {
    background: #fcfaff;
}

.invoice-stats {
    gap: 12px !important;
    margin-bottom: 18px !important;
}

.invoice-stat {
    padding: 16px 18px !important;
    border: 1px solid var(--partner-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(89, 53, 140, .07) !important;
}

.invoice-stat .label {
    color: var(--partner-muted) !important;
    font-size: 10px !important;
    font-weight: 700;
    letter-spacing: .07em !important;
}

.invoice-stat .value {
    color: var(--partner-purple-dark) !important;
    font-size: 22px !important;
}

/* Dépôt de facture */
.processing-steps {
    margin-bottom: 18px !important;
    padding: 20px !important;
    border: 1px solid var(--partner-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(89, 53, 140, .07);
}

.processing-step-num {
    border-color: #d8cae6 !important;
    background: #f1ebf7 !important;
    color: var(--partner-purple) !important;
}

.processing-step.active .processing-step-num,
.processing-step.done .processing-step-num {
    border-color: var(--partner-purple) !important;
    background: var(--partner-purple) !important;
    color: var(--partner-yellow) !important;
}

.processing-step.active .processing-step-label,
.processing-step.done .processing-step-label {
    color: var(--partner-purple-dark) !important;
}

.dropzone {
    border: 2px dashed #9b80bc !important;
    border-radius: 14px !important;
    background: #faf8fc !important;
}

.dropzone:hover,
.dropzone.dragover,
.dropzone:focus-visible {
    border-color: var(--partner-purple) !important;
    background: #f3eef8 !important;
    outline: none;
    box-shadow: 0 0 0 4px rgba(89, 53, 140, .1);
}

.dropzone-label strong,
.dropzone-icon,
.index-link a {
    color: var(--partner-purple) !important;
}

.preview-shell,
.step2-pdf,
.step2-form {
    border-color: var(--partner-border) !important;
    border-radius: 12px !important;
}

/* Formulaires */
.partner-card {
    border: 1px solid var(--partner-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: var(--partner-shadow) !important;
    padding: clamp(24px, 4vw, 38px) !important;
}

.partner-form-heading,
.supplier-intro-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    margin-bottom: 24px;
}

.partner-form-heading-icon {
    width: 54px;
    height: 54px;
    background: var(--partner-purple);
    font-size: 23px;
}

.partner-form-heading .partner-page-kicker {
    color: var(--partner-purple) !important;
}

.partner-title {
    margin-bottom: 8px !important;
    color: var(--partner-purple-dark) !important;
    font-size: clamp(22px, 3vw, 30px) !important;
    line-height: 1.2;
}

.partner-form-heading .partner-title,
.partner-form-heading .partner-subtitle,
.supplier-intro-heading .supplier-intro-title {
    margin-bottom: 0 !important;
}

.partner-subtitle {
    margin-bottom: 24px !important;
    color: var(--partner-muted) !important;
    font-size: 13px !important;
    line-height: 1.55;
}

.partner-label,
.form-label {
    color: var(--partner-purple-dark) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.partner-input,
.partner-select,
.partner-account-wrapper .form-control,
.invoice-search,
.step2-input {
    min-height: 42px;
    border: 1px solid #d8cfee !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--partner-purple-dark) !important;
    font-size: 13px !important;
}

.partner-input:focus,
.partner-select:focus,
.partner-account-wrapper .form-control:focus,
.invoice-search:focus,
.step2-input:focus {
    border-color: var(--partner-purple) !important;
    outline: none;
    box-shadow: 0 0 0 4px rgba(89, 53, 140, .1) !important;
}

.partner-accordion .accordion-item {
    border-color: var(--partner-border) !important;
}

.partner-accordion .accordion-button {
    min-height: 54px;
    background: #fff !important;
    color: var(--partner-purple-dark) !important;
    font-weight: 700 !important;
}

.partner-accordion .accordion-button:not(.collapsed) {
    background: #f3eef8 !important;
    color: var(--partner-purple) !important;
}

.partner-accordion .accordion-button i {
    color: var(--partner-purple) !important;
}

/* Actions */
.btn-partner-primary,
.btn-invoice-primary,
.btn-submit,
.btn-head {
    min-height: 42px;
    border: 1px solid var(--partner-yellow) !important;
    border-radius: 10px !important;
    background: var(--partner-yellow) !important;
    color: var(--partner-purple) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}

.btn-partner-primary:hover,
.btn-invoice-primary:hover,
.btn-submit:hover,
.btn-head:hover {
    border-color: #f1d94f !important;
    background: #f1d94f !important;
    color: #402269 !important;
}

.btn-partner-link,
.btn-invoice-secondary,
.btn-cancel {
    min-height: 42px;
    border: 1px solid #d8cfee !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--partner-purple) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.btn-partner-link:hover,
.btn-invoice-secondary:hover,
.btn-cancel:hover {
    border-color: var(--partner-purple) !important;
    background: #f3eef8 !important;
    color: var(--partner-purple-dark) !important;
}

.btn-partner-primary:focus-visible,
.btn-partner-link:focus-visible,
.btn-invoice-primary:focus-visible,
.btn-invoice-secondary:focus-visible,
.btn-submit:focus-visible,
.btn-cancel:focus-visible,
.btn-head:focus-visible {
    outline: 3px solid var(--partner-purple);
    outline-offset: 3px;
}

/* Introduction */
.supplier-intro-wrap {
    padding: clamp(24px, 4vw, 48px) 16px 64px !important;
    background: var(--partner-background) !important;
}

.supplier-intro-card {
    border: 1px solid var(--partner-border) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: var(--partner-shadow) !important;
    padding: clamp(28px, 5vw, 48px) !important;
}

.supplier-intro-label {
    color: var(--partner-purple) !important;
    font-size: 11px !important;
    letter-spacing: .12em !important;
}

.supplier-intro-title {
    color: var(--partner-purple-dark) !important;
    font-size: clamp(26px, 4vw, 36px) !important;
    line-height: 1.2;
}

.supplier-intro-text {
    color: var(--partner-muted) !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
}

.supplier-intro-notice {
    border: 1px solid #ddd2ea !important;
    border-left: 4px solid var(--partner-purple) !important;
    border-radius: 12px !important;
    background: #f7f3fb !important;
    color: var(--partner-purple-dark) !important;
}

.supplier-intro-primary {
    border-color: var(--partner-yellow) !important;
    border-radius: 10px !important;
    background: var(--partner-yellow) !important;
    color: var(--partner-purple) !important;
}

.supplier-intro-primary:hover {
    background: #f1d94f !important;
    color: #402269 !important;
}

.supplier-intro-secondary {
    border-color: #d8cfee !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--partner-purple) !important;
}

.supplier-intro-secondary:hover {
    border-color: var(--partner-purple) !important;
    background: #f3eef8 !important;
}

@media (max-width: 700px) {
    .partner-account-wrapper,
    .partner-invoices-wrap {
        padding: 20px 12px 40px !important;
    }

    .partner-account-header,
    .partner-invoices-head {
        grid-template-columns: auto minmax(0, 1fr) !important;
        padding: 22px 20px !important;
    }

    .partner-page-heading-icon {
        width: 48px;
        height: 48px;
        font-size: 22px;
    }

    .partner-card,
    .supplier-intro-card {
        padding: 22px 20px !important;
    }

    .partner-form-heading,
    .supplier-intro-heading {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .processing-steps {
        padding: 16px 10px !important;
    }

    .table-head-main {
        align-items: flex-start;
        flex-direction: column;
    }

    .partner-invoices-wrap .table-head {
        align-items: stretch;
        flex-direction: column;
    }

    .invoice-search-field {
        align-items: stretch;
        flex-direction: column;
    }

    .partner-invoices-wrap .table-head .invoice-search {
        width: 100%;
    }
}
