/* ==========================================================================
   PVL Dashboard — responsive (desktop · tablette · mobile)
   Breakpoints :
     · Desktop  ≥ 1024px — styles de base (_dashboard.css)
     · Tablette   768px – 1023px
     · Mobile     < 768px
     · Petit mobile < 480px
   ========================================================================== */

/* --- Intégration colonnes Gutenberg / Astra --- */
.wp-block-column > .pvl-dashboard,
.wp-block-column .pvl-dashboard,
.ast-separate-container .entry-content .pvl-dashboard {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.wp-block-columns:has(.pvl-dashboard) {
    width: 100%;
    max-width: 100%;
}

.wp-block-column:has(.pvl-dashboard) {
    min-width: 0;
}

@media (min-width: 782px) and (max-width: 1023px) {
    .wp-block-columns:has(.pvl-dashboard + .pvl-dashboard),
    .wp-block-columns:has(.pvl-dashboard):has(.pvl-client-dashboard) {
        flex-wrap: wrap !important;
    }

    .wp-block-column:has(.pvl-dashboard) {
        flex-basis: 100% !important;
    }
}

/* --- Tableaux : défilement horizontal fluide --- */
.pvl-dashboard-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.pvl-dashboard-table {
    min-width: 520px;
}

.pvl-dashboard-table:has(.pvl-order-main-row) {
    min-width: 680px;
}

.pvl-order-products-table {
    min-width: 640px;
    font-size: 0.875rem;
}

.pvl-order-accounting-panel {
    max-width: 100%;
    overflow-x: auto;
}

.pvl-order-accounting-panel table {
    min-width: 520px;
}

.pvl-admin-users-table {
    min-width: 720px;
}

.pvl-moderation-table {
    min-width: 680px;
}

/* ==========================================================================
   TABLETTE (768px – 1023px)
   ========================================================================== */
@media (max-width: 1023px) {
    .pvl-dashboard {
        margin: 1.5rem auto 2.5rem;
        padding: 0 0.875rem;
    }

    .pvl-dashboard-hero {
        padding: 1.35rem 1.25rem 1rem;
    }

    .pvl-dashboard-hero__title {
        font-size: clamp(1.5rem, 3.5vw, 2rem);
    }

    .pvl-dashboard-stats,
    .pvl-dashboard-stats--wide {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pvl-dashboard-stats--earnings {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pvl-dashboard-stats--earnings-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pvl-dashboard-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        gap: 6px;
        padding-bottom: 6px;
        margin-left: -0.25rem;
        margin-right: -0.25rem;
        padding-left: 0.25rem;
        padding-right: 0.25rem;
    }

    .pvl-dashboard-tabs__item {
        flex-shrink: 0;
        padding: 9px 14px;
        font-size: 0.875rem;
    }

    .pvl-dashboard-tab-content {
        padding: 1.25rem 1.15rem 1.5rem;
    }

    .pvl-dashboard-section__head--actions {
        flex-direction: column;
        align-items: stretch;
    }

    .pvl-dashboard-cta {
        align-self: flex-start;
    }

    .pvl-dashboard-table th,
    .pvl-dashboard-table td {
        padding: 11px 14px;
        font-size: 0.875rem;
    }

    .pvl-dashboard-table thead th {
        font-size: 0.72rem;
    }

    .pvl-partner-pricing-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .pvl-partner-pricing-base {
        grid-template-columns: 1fr;
    }

    .pvl-partner-pricing-base input[type="number"] {
        max-width: 100%;
    }

    .pvl-month-summary-panel > div[style*="grid-template-columns"] {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .pvl-order-accounting-panel > div[style*="grid-template-columns"] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .pvl-admin-users-subtabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 4px;
    }

    .pvl-admin-users-subtabs__item {
        flex-shrink: 0;
    }

    .pvl-partner-calendar {
        min-height: 360px;
    }
}

/* Desktop large : KPI admin sur 4 colonnes */
@media (min-width: 1024px) {
    .pvl-dashboard-stats--wide {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ==========================================================================
   MOBILE (< 768px)
   ========================================================================== */
@media (max-width: 767px) {
    .pvl-dashboard {
        margin: 1rem auto 2rem;
        padding: 0 0.75rem;
    }

    .pvl-dashboard-hero {
        padding: 1.15rem 1rem 0.85rem;
        border-radius: 12px;
    }

    .pvl-dashboard-hero__top {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }

    .pvl-dashboard-hero__actions {
        align-self: flex-start;
    }

    .pvl-dashboard-logout-link {
        width: 100%;
        justify-content: center;
    }

    .pvl-dashboard-hero__subtitle {
        font-size: 0.92rem;
    }

    .pvl-dashboard-stats,
    .pvl-dashboard-stats--wide,
    .pvl-dashboard-stats--earnings,
    .pvl-dashboard-stats--earnings-summary {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .pvl-dashboard-stat {
        padding: 0.875rem 1rem;
    }

    .pvl-dashboard-stat__value {
        font-size: 1.5rem;
    }

    .pvl-dashboard-panel {
        margin-top: 1rem;
        border-radius: 12px;
    }

    .pvl-dashboard-tab-content {
        padding: 1rem 0.875rem 1.25rem;
    }

    .pvl-dashboard-section__title {
        font-size: 1.1rem;
    }

    .pvl-dashboard-section__desc {
        font-size: 0.9rem;
    }

    .pvl-dashboard-cta {
        width: 100%;
        text-align: center;
        white-space: normal;
    }

    .pvl-dashboard-tabs__item {
        padding: 8px 12px;
        font-size: 0.8125rem;
    }

    .pvl-dashboard-tabs__icon {
        font-size: 0.95rem;
    }

    .pvl-dashboard-table {
        min-width: 480px;
    }

    .pvl-dashboard-table:has(.pvl-order-main-row) {
        min-width: 560px;
    }

    .pvl-dashboard-table th,
    .pvl-dashboard-table td {
        padding: 9px 10px;
        font-size: 0.8125rem;
    }

    /* Commandes : masquer la colonne Composition */
    .pvl-dashboard-table:has(.pvl-order-main-row) thead th:nth-child(3),
    .pvl-order-main-row > td:nth-child(3) {
        display: none;
    }

    .pvl-order-main-row__composition {
        max-width: 140px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .pvl-toggle-details {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
    }

    .pvl-order-actions__buttons {
        flex-direction: column;
        align-items: flex-start;
    }

    .pvl-order-actions__buttons .button {
        width: 100%;
        text-align: center;
        white-space: normal;
    }

    .pvl-order-details-content {
        padding: 0;
    }

    .pvl-order-details-content .pvl-financial-summary {
        max-width: 100% !important;
        margin-left: 0 !important;
    }

    .pvl-order-details-content [style*="display: flex"][style*="justify-content: space-between"] {
        flex-direction: column;
        align-items: stretch !important;
        gap: 10px;
    }

    .pvl-order-details-content .pvl-order-actions-admin [style*="display: flex"] {
        flex-direction: column;
    }

    .pvl-order-details-content .pvl-order-actions-admin .button {
        width: 100%;
        text-align: center;
    }

    .pvl-record-payment-box {
        flex-direction: column;
        align-items: stretch;
    }

    .pvl-record-payment-box label,
    .pvl-record-payment-box input,
    .pvl-record-payment-box select,
    .pvl-record-payment-box .button {
        width: 100%;
        max-width: none;
    }

    .pvl-month-summary-panel {
        padding: 14px !important;
    }

    .pvl-month-summary-panel > div:first-child {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .pvl-month-summary-panel form {
        width: 100%;
    }

    .pvl-month-summary-panel form select,
    .pvl-month-summary-panel form .button {
        flex: 1 1 auto;
        min-width: 0;
    }

    .pvl-month-summary-panel > div[style*="grid-template-columns"] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .pvl-order-accounting-panel > div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }

    .pvl-order-accounting-panel > div:first-child {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .pvl-admin-users-search {
        flex-direction: column;
        align-items: stretch;
    }

    .pvl-admin-users-search input[type="search"] {
        min-width: 0;
        width: 100%;
    }

    .pvl-admin-user-content-stats {
        flex-direction: column;
    }

    .pvl-admin-user-detail__hero {
        flex-direction: column;
    }

    .pvl-admin-order-card__aside {
        text-align: left;
    }

    .pvl-partner-form-panel__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .pvl-partner-form-panel__actions .button {
        width: 100%;
        text-align: center;
    }

    .pvl-partner-calendar {
        min-height: 300px;
        padding: 0.65rem;
    }

    .pvl-partner-calendar .fc-header-toolbar {
        flex-direction: column;
        gap: 8px;
        align-items: stretch;
    }

    .pvl-partner-calendar .fc-toolbar-chunk {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 6px;
    }

    .pvl-contracts-table {
        min-width: 440px;
    }

    .pvl-contracts-table__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .pvl-contracts-table__actions .button {
        width: 100%;
        text-align: center;
    }

    .pvl-order-card__header {
        flex-direction: column;
    }

    .pvl-order-card__aside {
        text-align: left;
    }

    .pvl-order-progress {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pvl-accounting-hub .pvl-accounting-filters {
        flex-direction: column;
        align-items: stretch;
    }

    .pvl-accounting-hub .pvl-accounting-filters > * {
        width: 100%;
    }

    .pvl-accounting-layout {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .pvl-accounting-nav {
        display: none;
    }

    .pvl-accounting-nav-mobile {
        display: block;
    }
}

/* ==========================================================================
   PETIT MOBILE (< 480px)
   ========================================================================== */
@media (max-width: 479px) {
    .pvl-dashboard {
        padding: 0 0.625rem;
    }

    .pvl-dashboard-tab-content {
        padding: 0.875rem 0.75rem 1rem;
    }

    .pvl-dashboard-tabs__label {
        max-width: 9rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Commandes : masquer aussi Dates */
    .pvl-dashboard-table:has(.pvl-order-main-row) thead th:nth-child(4),
    .pvl-order-main-row > td:nth-child(4) {
        display: none;
    }

    .pvl-dashboard-table:has(.pvl-order-main-row) {
        min-width: 420px;
    }

    .pvl-month-summary-panel > div[style*="grid-template-columns"] {
        grid-template-columns: 1fr 1fr !important;
    }

    .pvl-order-progress {
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }

    .pvl-order-progress__label {
        font-size: 0.65rem;
    }

    .pvl-signature-modal__dialog {
        padding: 1.25rem;
    }
}
