/* =========================================================
   DATADON ADMIN STYLES
   - these styles are only loaded on our admin pages, so we can be more specific and opinionated here without worrying about conflicts
========================================================= */


.dd-form-actions-bottom {
    width: 100%;
	display: flex;
	flex-direction: column;
	margin: 1rem 0;
	justify-content: flex-end;
}

.dd-form-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
}


.dd-btn {
	padding: 10px 16px;
	cursor: pointer;
	transition: all 0.15s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.dd-btn:hover {
	cursor: pointer;
	filter: opacity(0.9);
}

.dd-btn-primary {
	background: var(--dd-admin-pink);
	border: 1px solid var(--dd-admin-pink);
	border-radius: 10px;
}



#dd_admin_loadbar {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,0.6);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dd-admin-loadbar-inner {
    display: flex;
    gap: 8px;
    opacity: 0;
    transform: translateY(16px) scale(0.96);
    animation: ddLoaderEnter 0.45s ease-out forwards;
}

.dd-admin-bar {
    width: 14px;
    height: 14px;
    background: var(--dd-admin-pink);
    border-radius: 50%;
    opacity: 0;
    transform: translateY(0) scale(1);
    animation:
        ddDotEnter 0.35s ease-out forwards,
        ddBounce 0.6s infinite alternate ease-in-out;
    animation-delay:
        0.05s,
        0s;
}

.dd-admin-bar:nth-child(2) {
    animation-delay:
        0.15s,
        -0.2s;
}

.dd-admin-bar:nth-child(3) {
    animation-delay:
        0.25s,
        -0.4s;
}

@keyframes ddLoaderEnter {
    from {
        opacity: 0;
        transform: translateY(100px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes ddDotEnter {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.7);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes ddBounce {
    from {
        transform: translateY(0);
    }
    to {
        transform: translateY(-16px);
    }
}

.dd-admin-message.success {
    color: green;
}

.dd-admin-message.error {
    color: red;
}



.dd-login-message-success {
    color: #000;
}

.dd-login-message-error {
    color: rgb(151, 31, 31);
    animation: shake .5s ease-in-out;
}


@keyframes shake {
    0% { transform: translateX(0); }
    25% { transform: translateX(5px); }
    50% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
    100% { transform: translateX(0); }
}



:root {
    --dd-admin-pink: #f3d6ff;
    --dd-admin-border: #d8d8d8;
    --dd-admin-surface: #fff;
    --dd-admin-surface-alt: #f2f5f9;
    --dd-admin-topbar-height: 58px;
}


/* =========================
   ADMIN FORMS - GENERAL
========================= */

.dd-admin-dashboard form {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Field wrapper */
.dd-field {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.dd-field-label {
	margin-top: 10px;
    font-size: 0.88rem;
    font-weight: 600;
    color: #555;
}

/* Inputs reset override */
.dd-admin-dashboard input,
.dd-admin-dashboard textarea,
.dd-admin-dashboard select {
    width: 100%;
    min-height: 42px;
    padding: 0.55rem 0.7rem;
    margin: 0;
    border: 1px solid var(--dd-admin-border);
    border-radius: 10px;
    background: var(--dd-admin-surface);
    color: #000;
    font: inherit;
    line-height: 1.25;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.dd-admin-dashboard textarea {
    min-height: 120px;
    resize: vertical;
}

.dd-admin-dashboard select {
    appearance: none;
    cursor: pointer;
}

/* Focus */
.dd-admin-dashboard input:focus,
.dd-admin-dashboard textarea:focus,
.dd-admin-dashboard select:focus {
    border-color: #000;
    background: #fff;
}

/* Placeholder */
.dd-admin-dashboard input::placeholder,
.dd-admin-dashboard textarea::placeholder {
    color: #777;
}

/* Dates/months/files */
.dd-admin-dashboard input[type="date"],
.dd-admin-dashboard input[type="month"],
.dd-admin-dashboard input[type="file"] {
    cursor: pointer;
}

/* File input */
.dd-admin-dashboard input[type="file"] {
    padding: 0.45rem 0.7rem;
}

/* Hidden inputs */
.dd-admin-dashboard input[type="hidden"] {
    display: none;
}


/* Inline form groups generated by JS */
.dd-checkbox-group,
.dd-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

/* Form sections / JS injected blocks */
.dd-admin-dashboard form > div[id]:not(.dd-form-actions-bottom):empty {
    display: none;
}

.dd-admin-dashboard form > div[id]:not(.dd-form-actions-bottom):not(:empty) {
    width: 100%;
}

/* Better spacing for consecutive loose inputs */
.dd-admin-dashboard form > input + input,
.dd-admin-dashboard form > input + textarea,
.dd-admin-dashboard form > textarea + textarea,
.dd-admin-dashboard form > textarea + input {
    margin-top: 0;
}

/* Action area */
.dd-form-actions-bottom {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 1rem 0 0;
}


/* Mobile */
@media (max-width: 600px) {
    .dd-admin-dashboard form {
        gap: 0.65rem;
    }

    .dd-admin-dashboard input,
    .dd-admin-dashboard textarea,
    .dd-admin-dashboard select {
        min-height: 44px;
        font-size: 1rem;
    }

    .dd-form-actions,
    .dd-form-actions-bottom {
        align-items: stretch;
    }

    .dd-form-actions .dd-btn,
    .dd-form-actions-bottom > .dd-btn {
        width: 100%;
    }
}


/* fixed topbar */

.dd-admin-topbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    min-height: var(--dd-admin-topbar-height);
    padding: 10px 16px;
    background: var(--dd-admin-surface-alt);
    display: flex;
    align-items: center;
}

.dd-admin-topbar-left {
    width: min(1050px, calc(100vw - 32px));
    margin: 0 auto;
    min-width: 0;
}

.dd-admin-welcome {
    display: block;
    font-weight: 600;
}

.dd-admin-message {
    margin-top: 2px;
}

/* desktop shell */

.dd-admin-shell {
    width: min(1050px, calc(100vw - 32px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(280px, 35%) minmax(0, 65%);
    gap: 24px;
    align-items: start;
}

.dd-admin-dashboard {
	grid-column: 2;
	grid-row: 1;
    min-width: 0;
    padding: 0 0 32px;
}

/* desktop sidebar */

.dd-admin-messages-panel {
	grid-column: 1;
	grid-row: 1;
    position: sticky;
    height: calc(100vh - var(--dd-admin-topbar-height) - 48px);
    max-height: calc(100vh - var(--dd-admin-topbar-height) - 48px);
    overflow: hidden;
    background: var(--dd-admin-surface-alt);
}


.dd-admin-messages-panel-inner {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.dd-admin-messages-panel-header {
    flex: 0 0 auto;
    padding: 14px;
    background: var(--dd-admin-surface-alt);
}

.dd-admin-messages-panel-header strong {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.dd-admin-messages-panel-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.dd-admin-messages-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px;
}

.dd-admin-message-item-header {
    cursor: pointer;
}

.dd-admin-message-item-header-actions {
    flex: 0 0 auto;
}

.dd-admin-message-read-badge {
    width: 20px;
    height: 20px;
    min-width: 20px;
    padding: 0;
    border-radius: 999px;
    background: var(--dd-admin-pink);
    color: #000;
    line-height: 1;
    cursor: pointer;
}

.dd-admin-message-read-badge:hover {
    filter: brightness(0.97);
}

.dd-admin-message-read-badge:focus-visible {
    outline: 2px solid #000;
    outline-offset: 2px;
}


.dd-admin-message-item mark {
  background: #fff3a3;
}




.dd-admin-nav {
    flex: 0 0 auto;
    padding: 10px;
    background: var(--dd-admin-surface-alt);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.dd-admin-nav form {
    margin: 0;
    display: contents;
}

.dd-admin-nav button {
    width: 100%;
    min-width: 0;
    padding: 6px 8px;
    font-size: 0.9rem;
    line-height: 1.15;
    text-align: center;
}


.dd-admin-nav button:hover,
.dd-admin-messages-panel-actions button:hover,
.dd-admin-section-grid button:hover {
    background: var(--dd-admin-pink);
}

/* badges */

.dd-admin-messages-count,
.dd-admin-mobile-toggle-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--dd-admin-pink);
    color: #000;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
}

/* mobile floating button hidden on desktop */

.dd-admin-mobile-toggle,
.dd-admin-panel-backdrop {
    display: none;
}

/* message item cleanup */


.dd-admin-message-list {
	background: var(--dd-admin-surface-alt);
}

.dd-admin-message-item {
    padding: 10px;
    margin-bottom: 10px;
    background: #fff;
	border-radius: 10px;
}


.dd-admin-message-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.dd-admin-message-item-date {
    margin-top: 4px;
    font-size: 12px;
    opacity: 0.7;
}

.dd-admin-message-item-body {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #eee;
    white-space: pre-line;
}


@media (max-width: 600px) {
    .dd-admin-shell {
        width: min(100%, calc(100vw - 24px));
        display: block;
        padding-top: calc(var(--dd-admin-topbar-height) + 16px);
    }

    .dd-admin-dashboard {
        padding-bottom: 96px;
    }

    .dd-admin-messages-panel {
        position: fixed;
        top: var(--dd-admin-topbar-height);
        right: 0;
        bottom: 0;
        width: min(88vw, 380px);
        height: auto;
        z-index: 80;
        transform: translateX(105%);
        transition: transform 0.22s ease;
        border-top: 0;
        border-right: 0;
        border-bottom: 0;
        display: block;
    }

    .dd-admin-messages-panel.is-open {
        transform: translateX(0);
    }

    .dd-admin-panel-backdrop {
        position: fixed;
        inset: var(--dd-admin-topbar-height) 0 0;
        z-index: 70;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.22s ease;
    }

    .dd-admin-panel-backdrop.is-open {
        display: block;
        opacity: 1;
        pointer-events: auto;
    }

    .dd-admin-mobile-toggle {
        position: fixed;
        right: 16px;
        bottom: 16px;
        z-index: 90;
        width: 58px;
        height: 58px;
        border-radius: 999px;
        background: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .dd-admin-mobile-toggle-icon,
    .dd-admin-mobile-toggle-icon::before,
    .dd-admin-mobile-toggle-icon::after {
        content: "";
        display: block;
        width: 22px;
        height: 2px;
        background: #000;
        position: absolute;
        transition: transform 0.18s ease, opacity 0.18s ease;
    }

    .dd-admin-mobile-toggle-icon::before {
        transform: translateY(-7px);
    }

    .dd-admin-mobile-toggle-icon::after {
        transform: translateY(7px);
    }

    .dd-admin-mobile-toggle[aria-expanded="true"] .dd-admin-mobile-toggle-icon {
        background: transparent;
    }

    .dd-admin-mobile-toggle[aria-expanded="true"] .dd-admin-mobile-toggle-icon::before {
        transform: rotate(45deg);
    }

    .dd-admin-mobile-toggle[aria-expanded="true"] .dd-admin-mobile-toggle-icon::after {
        transform: rotate(-45deg);
    }

    .dd-admin-mobile-toggle-count {
        position: absolute;
        top: -6px;
        right: -6px;
    }

}


/* search bar */
.dd-checkbox {
    display: inline-block;
    cursor: pointer;
    margin: 5px 5px 5px 0;
}

.dd-checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.dd-checkbox span {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border: 1px solid var(--dd-admin-border);
    font-size: .9rem;
    user-select: none;
    transition: all 0.15s ease;
	border-radius: 10px;
}

.dd-checkbox:hover span {
    border: 1px solid var(--dd-admin-pink);
}

.dd-checkbox input[type="checkbox"]:checked + span {
    background: var(--dd-admin-pink);
}

.dd-checkbox input[type="checkbox"]:focus-visible + span {
    outline: 2px solid var(--dd-admin-border);
    outline-offset: 2px;
}

.dd-list-filterbar-search {
  display: inline-block;
  padding: 5px;
  border: 1px solid var(--dd-admin-border);
  font-size: .9rem;
  border-radius: 10px;
}

/* Match .dd-list-filterbar-toggle checkbox “pill” styling for your radios */

.dd-radio-item {
  display: inline-flex;
  align-items: center;
  gap: 0;                 /* keep the pill tight to the input state */
  cursor: pointer;
  user-select: none;
}

/* Hide the native radio but keep it accessible */
.dd-radio-item > input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

/* The visible “pill” */
.dd-radio-item > .dd-radio-label {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border: 1px solid var(--dd-admin-border);
  font-size: .9rem;
  transition: all 0.15s ease;
  margin-bottom: 3px;
  border-radius: 10px;
}

/* Hover matches checkbox */
.dd-radio-item:hover > .dd-radio-label {
  border: 1px solid var(--dd-admin-pink);
}

/* Checked state matches checkbox */
.dd-radio-item > input[type="radio"]:checked + .dd-radio-label {
  background: var(--dd-admin-pink);
}

/* Keyboard focus matches checkbox */
.dd-radio-item > input[type="radio"]:focus-visible + .dd-radio-label {
  outline: 2px solid var(--dd-admin-border);
  outline-offset: 2px;
}

/* Optional: if you render extra text under the pill */
.dd-radio-item .dd-radio-extra {
  margin-left: 6px;
  font-size: .85rem;
  opacity: .85;
}


.dd-client-subs-past {
    margin-top: 1rem;
    color: #777;
}



/* =========================
   CLIENTS ADMIN
========================= */

.dd-client-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.dd-client-item {
    padding: 1rem;
    background: var(--dd-admin-surface-alt);
    border-radius: 10px;
}

.dd-client-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.dd-client-name {
    flex: 1 1 180px;
    min-width: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.dd-client-row button {
    flex: 0 0 auto;
    padding: 0.25rem 0.55rem;
    line-height: 1.2;
    cursor: pointer;
}

.dd-client-info-panel {
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: var(--dd-admin-surface);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.92rem;
    color: #555;
}

.dd-client-info-panel strong {
    color: #000;
}


.dd-client-info-panel div {
    overflow-wrap: anywhere;
}

@media (max-width: 600px) {
    .dd-client-item {
        padding: 0.75rem;
    }

    .dd-client-row {
        align-items: stretch;
    }

    .dd-client-name {
        flex: 1 1 100%;
    }

    .dd-client-row button {
        flex: 1 1 auto;
    }
}


/* =========================
   CLIENT ORDERS ADMIN
========================= */

.dd-client-orders-toolbar {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}


.dd-client-order-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.dd-client-order-item {
    padding: 0.9rem;
    background: var(--dd-admin-surface-alt);
    border-radius: 10px;

    display: grid;
    grid-template-columns: minmax(140px, 1fr) minmax(180px, 1.4fr) auto;
    gap: 0.75rem;
    align-items: start;
}

.dd-client-order-main,
.dd-client-order-meta {
    min-width: 0;
}

.dd-client-order-date {
    font-weight: 600;
    color: #000;
}

.dd-client-order-name {
    margin-top: 0.2rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.dd-client-order-meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.92rem;
    color: #666;
    overflow-wrap: anywhere;
}

.dd-client-order-weight,
.dd-client-order-price {
    color: #666;
    font-weight: 600;
}

.dd-client-order-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

.dd-client-order-actions button {
    padding: 0.25rem 0.55rem;
    font-size: 0.82rem;
    cursor: pointer;
}

/* Order edit summary */
#dd_clients_order_edit_summary {
    padding: 0.75rem;
    background: var(--dd-admin-surface-alt);
    border-radius: 10px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

/* Override fields block */
#dd_clients_order_edit_override_fields {
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: var(--dd-admin-surface-alt);
    border-radius: 10px;
}



@media (max-width: 700px) {
    .dd-client-order-item {
        grid-template-columns: 1fr;
    }

    .dd-client-order-actions {
        justify-content: flex-start;
    }
}


/* =========================
   CLIENT SUBSCRIPTIONS ADMIN
========================= */

.dd-client-subs-section {
    margin-bottom: 1rem;
}

.dd-client-subs-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.dd-client-subs-item {
    padding: 0.9rem;
    background: var(--dd-admin-surface-alt);
    border-radius: 10px;

    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) minmax(130px, auto) auto;
    gap: 0.75rem;
    align-items: start;
}

.dd-client-subs-main,
.dd-client-subs-dates {
    min-width: 0;
}

.dd-client-subs-name {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.dd-client-subs-description,
.dd-client-subs-size,
.dd-client-subs-price,
.dd-client-subs-place,
.dd-client-subs-dates {
    margin-top: 0.2rem;
    font-size: 0.92rem;
    color: #666;
    overflow-wrap: anywhere;
}

.dd-client-subs-price {
    color: #000;
    font-weight: 600;
}

.dd-client-subs-actions {
    display: flex;
    justify-content: flex-end;
}

.dd-client-subs-actions button,
.dd-client-subs-pauses-actions button,
#dd_clients_subscription_toggle_past,
#dd_clients_subscription_back {
    padding: 0.25rem 0.55rem;
    font-size: 0.82rem;
    cursor: pointer;
}

/* Pauses */
.dd-client-subs-children {
    grid-column: 1 / -1;
}

.dd-client-subs-pauses {
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: var(--dd-admin-surface);
    border-radius: 10px;
}

.dd-client-subs-pauses-header {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 0.5rem;
}

.dd-client-subs-pauses-title {
    font-weight: 600;
}

.dd-client-subs-pauses-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.dd-client-subs-pause-item {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
    padding: 0.5rem 0;
    border-top: 1px solid var(--dd-admin-border);
}

.dd-client-subs-pause-dates {
    font-size: 0.92rem;
    color: #666;
}

/* Past subscriptions */
.dd-client-subs-past {
    margin-top: 1rem;
    opacity: 0.78;
}

/* Buttons */
.dd-client-subs-actions .button,
.dd-client-subs-pauses-actions .button,
.dd-add-subscription-pause,
#dd_clients_subscription_toggle_past,
#dd_clients_subscription_back {
    border: 1px solid var(--dd-admin-border);
    border-radius: 999px;
    background: var(--dd-admin-surface);
    transition: background 0.15s ease, border-color 0.15s ease;
}

.dd-client-subs-actions .button:hover,
.dd-client-subs-pauses-actions .button:hover,
.dd-add-subscription-pause:hover,
#dd_clients_subscription_toggle_past:hover,
#dd_clients_subscription_back:hover {
    border-color: var(--dd-admin-pink);
    background: var(--dd-admin-pink);
}

/* Footer buttons added by JS */
#dd_clients_subscription_toggle_past {
    margin-top: 1rem;
    margin-right: 0.5rem;
}

#dd_clients_subscription_back {
    margin-top: 1rem;
}

/* Add/edit forms radio groups */
#dd_clients_subscription_add_sizes,
#dd_clients_subscription_add_places,
#dd_clients_subscription_edit_sizes,
#dd_clients_subscription_edit_places {
    margin-top: 0.35rem;
}

/* Pause forms */
#dd_clients_subscription_pause_add,
#dd_clients_subscription_pause_edit {
    max-width: 520px;
}

@media (max-width: 700px) {
    .dd-client-subs-item {
        grid-template-columns: 1fr;
    }

    .dd-client-subs-actions {
        justify-content: flex-start;
    }

    .dd-client-subs-children {
        grid-column: auto;
    }
}

@media (max-width: 600px) {
    .dd-client-subs-pauses-header,
    .dd-client-subs-pause-item {
        flex-direction: column;
        align-items: stretch;
    }


    #dd_clients_subscription_toggle_past {
        margin-right: 0;
    }
}



/* =========================
   ACCOUNTING
========================= */

.dd-accounting-toolbar {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 1rem;
}

.dd-accounting-toolbar button {
  width: auto;
  flex: 0 0 auto;
  text-align: left;
}


.dd-accounting-month-summary {
  margin-bottom: 1rem;
  padding: 1rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-accounting-month-summary-controls {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  align-items: end;
  margin-bottom: 1rem;
}

.dd-accounting-month-summary-controls label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.dd-accounting-month-summary-controls span {
  font-size: 0.88em;
  color: #666;
}

.dd-accounting-month-summary-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.dd-accounting-month-summary-values > div {
  padding: 0.75rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;
}

.dd-accounting-month-summary-values strong {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.88em;
  color: #666;
}

.dd-accounting-month-summary-values span {
  font-weight: 600;
}

.dd-accounting-entry-list-wrap {
  margin-top: 1rem;
}

.dd-accounting-entry-list-items {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dd-accounting-entry-item {
  padding: 0.3rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
  display: grid;
  grid-template-columns: 120px minmax(90px, auto) minmax(140px, 1fr) minmax(160px, 1.2fr);  gap: 0.75rem;
  align-items: start;
}


.dd-accounting-entry-date,
.dd-accounting-entry-method,
.dd-accounting-entry-meta {
  font-size: 0.9em;
  color: #666;
}

.dd-accounting-entry-amount,
.dd-accounting-entry-label {
  font-weight: 600;
}

.dd-accounting-entry-method {
  margin-top: 0.2rem;
}

.dd-accounting-entry-meta {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.dd-accounting-entry-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}


.dd-accounting-entry-actions button {
  padding: 0.2rem 0.1rem;
  font-size: 0.78em;
  cursor: pointer;
}

.dd-accounting-toolbar button,
.dd-accounting-month-summary-controls button,
.dd-accounting-proof-actions button {
  cursor: pointer;
}

.dd-accounting-proof-actions {
  margin-top: 0.4rem;
}

.dd-accounting-entry-col-date-actions {
  min-width: 0;
}

.dd-accounting-entry-col-label,
.dd-accounting-entry-col-meta {
  min-width: 0;
  overflow-wrap: anywhere;
}

.dd-accounting-entry-col-amount-method {
  text-align: right;
}


/* month summary */
.dd-accounting-month-summary-controls {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: end;
  margin-bottom: 1rem;
}

.dd-accounting-month-nav {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}

.dd-accounting-month-control {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
}

.dd-accounting-month-display {
  text-align: center;
}

.dd-accounting-month-control button {
  width: auto;
  flex: 0 0 auto;
  padding: 0.25rem 0.55rem;
  cursor: pointer;
}

.dd-accounting-month-control button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.dd-accounting-month-nav button {
  width: auto;
  flex: 0 0 auto;
  padding: 0.35rem 0.7rem;
  cursor: pointer;
}

.dd-accounting-month-label {
  font-size: 0.88em;
  color: #666;
  margin-bottom: 0.25rem;
}


.dd-accounting-month-summary-values {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dd-accounting-summary-expenses-card {
  grid-column: 1 / -1;
}


.dd-accounting-method-balances {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0.75rem;
  padding: 0 !important;
  background: transparent !important;
}

.dd-account-balance-row {
  padding: 0.75rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;

  display: flex;
  justify-content: space-between;
  align-items: center;
}

.dd-account-balance-row strong {
  margin:0;
}


.dd-accounting-summary-balance-positive {
  color: #2e7d32;
}

.dd-accounting-summary-balance-negative {
  color: #9c2f2f;
}

.dd-accounting-summary-effective-incomes,
.dd-accounting-summary-expected-incomes,
.dd-accounting-summary-expenses {
  color: #000;
}





.dd-accounting-month-summary-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

/* accounting forms */


.dd-accounting-add-type-centered {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 2rem 0;
}

.dd-accounting-client-picker-list {
  display: grid;
  gap: 0.5rem;
  margin-top: 1rem;
}

.dd-accounting-client-picker-item {
  text-align: left;
  padding: 0.75rem 1rem;
  cursor: pointer;
}


#dd_accounting_entry_add_expense_fields,
#dd_accounting_entry_add_payment_fields {
  margin-top: 1rem;
}

#dd_accounting_entry_add_payment_client_balance,
#dd_accounting_entry_add_payment_projected_balance,
#dd_accounting_entry_edit_current_proof {
  padding: 0.65rem 0.75rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-checkbox-group,
.dd-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

/* =========================
   ACCOUNTING RESPONSIVE
========================= */

@media (max-width: 800px) {
  .dd-accounting-entry-item {
    grid-template-columns: minmax(95px, auto) minmax(90px, auto);
  }

  .dd-accounting-entry-col-label,
  .dd-accounting-entry-col-meta {
    grid-column: 1 / -1;
  }

  .dd-accounting-entry-col-amount-method {
    text-align: right;
  }
}

@media (max-width: 600px) {
  .dd-accounting-toolbar,
  .dd-accounting-month-summary-controls {
    align-items: flex-start;
  }

  .dd-accounting-toolbar button,
  .dd-accounting-month-summary-controls button {
    width: auto;
  }

  .dd-accounting-month-summary-values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dd-accounting-method-balances {
    grid-template-columns: 1fr;
  }
}


.dd-accounting-payment-edit-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 0.75rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-accounting-payment-edit-details > div {
  min-width: 0;
}

.dd-accounting-payment-edit-details strong {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.88em;
  color: #666;
}

.dd-accounting-payment-edit-details span {
  font-weight: 600;
  overflow-wrap: anywhere;
}

.dd-payment-edit-reference-row,
.dd-payment-edit-comment-row {
  grid-column: 1 / -1;
}

.dd-accounting-payment-invoice-edit-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

#dd_accounting_payment_invoice_toggle_all {
  margin-bottom: 0.5rem;
}

@media (max-width: 600px) {
  .dd-accounting-payment-edit-details {
    grid-template-columns: 1fr;
  }

  .dd-payment-edit-reference-row,
  .dd-payment-edit-comment-row {
    grid-column: auto;
  }
}




.dd-accounting-import-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.dd-accounting-import-summary > div,
.dd-accounting-import-bank-row > div {
  border: 1px solid currentColor;
  padding: 0.75rem;
  border-radius: 0.5rem;
}

.dd-accounting-import-summary span,
.dd-accounting-import-bank-row span {
  display: block;
  margin-top: 0.25rem;
}

.dd-accounting-import-mini-list,
.dd-accounting-import-suggestions {
  display: grid;
  gap: 0.5rem;
  margin: 0.75rem 0 1rem;
}

.dd-accounting-import-bank-row {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.dd-accounting-import-progress {
  font-weight: 700;
  margin-bottom: 1rem;
}

.dd-accounting-import-suggestions button {
  text-align: left;
}

.dd-accounting-import-mini-item {
  display: grid;
  gap: 0.25rem;
}

/* =========================
   BATCHES ADMIN
   ========================= */

.dd-batch-past-toggle-wrap {
  margin-bottom: 1rem;
}

.dd-batch-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dd-batch-item {
  padding: .5rem 0 0;
  border-top: 1px solid #000;
}

.dd-batch-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.4rem;
}

.dd-batch-item-title {
  font-weight: 600;
}

.dd-batch-item-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.dd-batch-item-meta {
  margin-bottom: 0.8rem;
  font-size: 0.92em;
  color: #666;
}

.dd-batch-item-content, .dd-batch-content-rows {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.dd-batch-content-group, .dd-batch-content-row {
  padding: 0.75rem;
  border-radius: 10px;
  background: var(--dd-admin-surface-alt);
}

.dd-batch-content-group-hidden {
  border-style: dashed;
  opacity: 0.82;
}

.dd-batch-content-group-title {
  font-weight: 600;
  margin-bottom: 0.2rem;
}

.dd-batch-content-group-recipe {
  font-size: 0.92em;
  color: #666;
  margin-bottom: 0.45rem;
  font-style: italic;
}

.dd-batch-content-group-weights {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.dd-batch-content-group-weight {
  padding: 0.2rem 0.45rem;
  border: 1px solid #d8d8d8;
  background: #fff;
  font-size: 0.92em;
}


.dd-batch-content-group-weight-toggle {
  cursor: pointer;
  color: #000;
}



.dd-batch-content-order-count-badge {
  display: inline-block;
  padding: 0.2rem .8rem;

  background: var(--dd-admin-pink);
  border-radius: 999px;
  font-size: 0.85em;
  font-weight: 600;
}


/* =========================
   INVOICES
========================= */

.dd-invoice-toolbar {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.dd-invoice-date-group {
  margin-bottom: 1rem;
  padding: 1rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-invoice-date-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}

.dd-invoice-date-title {
  font-weight: 600;
  flex: 1;
}

.dd-invoice-date-group-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.dd-invoice-date-items {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dd-invoice-item {
  padding: 0.9rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;
}

.dd-invoice-main {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.dd-invoice-client {
  font-weight: 600;
}

.dd-invoice-range {
  font-size: 0.95em;
}

.dd-invoice-meta {
  font-size: 0.92em;
  color: #666;
}

.dd-invoice-amount {
  font-weight: 600;
}

.dd-invoice-overrides {
  margin-top: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dd-invoice-override-item {
  padding: 0.35rem 0.5rem;
  background: #fff;
  border: 1px solid #ddd;
  font-size: 0.9em;
}

.dd-invoice-actions {
  margin-top: 0.75rem;
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* =========================
   UNINVOICED ORDER SUMMARY
========================= */

.dd-uninvoiced-orders-summary {
  margin-bottom: 1rem;
}

.dd-uninvoiced-orders-list {
  margin-top: 0.75rem;
  padding: 0.9rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;

  max-height: 420px;
  overflow-y: auto;
}

.dd-uninvoiced-orders-item {
  padding: 0.45rem 0.55rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;
  font-size: 0.92em;
}

/* count badge */
.dd-uninvoiced-orders-toggle {
  font-weight: 600;
}

/* optional if you want count badge look */
.dd-uninvoiced-order-count-badge {
  display: inline-block;
  padding: 0.1rem 0.45rem 0;
  border-radius: 5px;
  border: 1px solid #225b9c;
  font-size: 0.85em;
  font-weight: 600;
}


/* =========================
   INVOICE EDIT OVERRIDES
========================= */

.dd-invoice-override-row {
  padding: 0.8rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;

  display: flex;
  flex-direction: column;
  gap: 0.55rem;

  margin-bottom: 0.7rem;
}

.dd-invoice-override-row textarea {
  min-height: 70px;
}

.dd-invoice-override-category,
.dd-invoice-override-amount {
  max-width: 320px;
}


/* =========================
   SEND BATCH CHECKLIST
========================= */

.dd-invoice-send-batch-item {
  display: block;
  padding: 0.8rem;
  border: 1px solid #ddd;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
  margin-bottom: 0.7rem;
}

.dd-invoice-send-batch-item strong {
  display: inline-block;
  margin-bottom: 0.25rem;
}


/* =========================
   RESPONSIVE
========================= */

@media (max-width: 600px) {

  .dd-invoice-date-head {
    flex-direction: column;
    align-items: stretch;
  }

  .dd-invoice-date-group-actions,
  .dd-invoice-actions,
  .dd-invoice-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .dd-invoice-actions .button,
  .dd-invoice-date-group-actions .button,
  .dd-invoice-toolbar .button {
    width: 100%;
  }

}

.dd-invoice-status-badge {
  display:inline-block;
  padding:0.1rem 0.45rem;
  border-radius:5px;
  font-size:.82em;
  font-weight:600;
  border:1px solid #ccc;
}

.dd-invoice-status-draft { border-color:#777; }
.dd-invoice-status-pdf   { border-color:#225b9c; }
.dd-invoice-status-sent  { border-color:#2e7d32; }



/* =========================
   SUBSCRIPTION ADMIN
   ========================= */
.dd-subscription-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dd-subscription-item {
  padding: 1rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-subscription-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.4rem;
}

.dd-subscription-short-description {
  margin-bottom: 0.35rem;
  color: #444;
}

.dd-subscription-long-description {
  margin-bottom: 0.7rem;
  color: #666;
}

.dd-subscription-sizes {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.dd-subscription-size {
  padding: 0.75rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;
}

.dd-subscription-size-main {
  font-weight: 600;
}

.dd-subscription-size-secondary {
  margin-top: 0.2rem;
  font-size: 0.92em;
  color: #666;
}

.dd-subscription-size-rows {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.dd-subscription-size-row {
  padding: 0.75rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-subscription-size-row .dd-field + .dd-field {
  margin-top: 0.6rem;
}

/* =========================
   ADMIN DELIVERY PLACES
   ========================= */


   .dd-delivery-place-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dd-delivery-place-item {
  padding: 1rem;
  background: var(--dd-admin-surface-alt);
  border-radius: 10px;
}

.dd-delivery-place-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.4rem;
}

.dd-delivery-place-name {
  font-weight: 600;
}

.dd-delivery-place-meta {
  margin-bottom: 0.5rem;
  font-size: 0.92em;
  color: #666;
}

.dd-delivery-place-details {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dd-delivery-place-detail {
  padding: 0.6rem 0.75rem;
  background: var(--dd-admin-surface);
  border-radius: 10px;
}



/* END fournees new public styles */

/* =========================================================
   USER DASHBOARD
========================================================= */

.dd-user-dashboard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
	color: var(--pv-text);
	background: var(--pv-white);
}




/* RECAPTCHA MESSAGE */

.dd-recaptcha-info {
    margin-left: auto;
    font-size: 0.84rem;
    line-height: 1.4;
    color: var(--pv-text-soft);
}


/* =========================================================
   NOTIFICATION BAR
   floating overlay above header
========================================================= */

.dd-user-message {
	position: fixed;
	top: 12px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 11050;
	display: none;
	width: min(calc(100% - 28px), 760px);
	margin: 0;
	padding: 14px 16px;
	border-radius: 14px;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.45;
	background: var(--pv-message-bg);
	color: var(--pv-text);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}

.dd-user-message.is-success {
	background: var(--pv-success);
	color: var(--pv-text);
}

.dd-user-message.is-error {
	background: var(--pv-danger);
	color: var(--pv-text);
}

.dd-user-message.is-info {
	background: var(--pv-warning);
	color: var(--pv-text);
}

/* =========================================================
   LOADBAR
========================================================= */

.dd-user-loadbar,
.dd-user-panel-loadbar {
	width: 100%;
}

.dd-user-loadbar {
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 42px;
}

.dd-user-loadbar-track {
	position: relative;
	width: 100%;
	height: 2px;
	overflow: hidden;
	background: var(--pv-light-blue);
	border-radius: 999px;
}

.dd-user-loadbar-fill {
	position: absolute;
	top: 0;
	left: -35%;
	width: 35%;
	height: 100%;
	background: var(--pv-gold);
	border-radius: 999px;
	animation: dd-user-solid-load 1.4s linear infinite;
}

@keyframes dd-user-solid-load {
	0% { left: -35%; }
	100% { left: 100%; }
}

/* =========================================================
   SKELETONS
========================================================= */

.dd-user-section, .dd-user-section-orders {
	padding: 18px 42px;
}
@media (max-width: 600px) {
	.dd-user-section, .dd-user-section-orders {
		padding: 10px;
	}
}

.dd-user-loading-card-list {
	margin-top: 12px;
	min-height: 200px;
	border-radius: 16px;
	border: 1px solid var(--pv-border);
	background: var(--pv-white);
}



.dd-user-section-orders {
	background: var(--pv-light-blue);
}

.dd-user-loading-card-list-order {
	border: 1px solid var(--pv-border-soft);
	background: var(--pv-white);
}

.dd-user-loading-card-header {
	min-height: 74px;
	margin: 0;
	border-radius: 16px;
	background: var(--pv-surface-alt);
}

.dd-fournees-skeleton-root {
	pointer-events: none;
}


/* =========================================================
   HEADER / INTRO
========================================================= */

.dd-user-client-header {
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
	padding: 18px 18px 0;
}

.dd-user-client-coordinates,
.dd-user-client-balance {
	width: 100%;
}

.dd-user-client-identity {
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 42px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.dd-user-client-name {
	font-size: 1.25rem;
	line-height: 1.2;
	color: var(--pv-text);
}

.dd-user-client-company {
	font-size: 1rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

.dd-user-client-main {
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
}

/* =========================================================
   BANNERS
   full-width backgrounds / centered inner content
========================================================= */

.dd-user-banner,
.dd-user-password-banner,
.dd-user-info-banner-slot:not(:empty) {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 14px 18px 12px;
	background: var(--pv-warning);
}

.dd-user-banner > *,
.dd-user-password-banner > *,
.dd-user-info-banner-slot:not(:empty) > * {
	width: 100%;
	max-width: 1050px;
	padding-left: 42px;
	padding-right: 42px;
}

.dd-user-banner-main {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.dd-user-banner-title {
	font-weight: 700;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-user-banner-text {
	line-height: 1.45;
	color: var(--pv-text);
}

.dd-user-banner-small {
	font-size: 0.8rem;
	line-height: 1.45;
	color: var(--pv-text-soft);
}

.dd-user-banner-actions,
.dd-user-password-banner-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	justify-content: flex-start;
}

.dd-user-banner-balance-positive {
	background: var(--pv-white);
}

.dd-user-banner-balance-credit {
	background: var(--pv-white);
}

/* =========================================================
   PASSWORD BANNER
========================================================= */

.dd-user-password-banner {
	background: var(--pv-warning);
}

.dd-user-password-banner-text {
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--pv-text);
}

.dd-user-password-banner-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	font-size: 0.9rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
	cursor: pointer;
}

.dd-user-password-banner-checkbox input {
	margin: 0;
}

.dd-user-password-banner .dd-user-inline-panel {
	margin-top: 2px;
}

/* =========================================================
   MANDATORY OVERLAY
   same visual language as current banners
========================================================= */

body.dd-user-has-mandatory-overlay {
    overflow: hidden;
}

.dd-user-mandatory-overlay {
	position: fixed;
	inset: 0;
	z-index: 11000;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	overflow-y: auto;
}

.dd-user-mandatory-overlay__backdrop {
	position: fixed;
	inset: 0;
	background: var(--pv-white);
}

.dd-user-mandatory-overlay__shell {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	min-height: 100%;
	padding: 0 0 32px 0;
}

.dd-user-mandatory-overlay__banner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 14px 18px 12px;
	background: var(--pv-warning);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.10);
}

.dd-user-mandatory-overlay__banner > * {
	width: 100%;
	max-width: 1050px;
	padding-left: 42px;
	padding-right: 42px;
}

.dd-user-mandatory-overlay__main {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.dd-user-mandatory-overlay__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-user-mandatory-overlay__text {
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--pv-text);
}

.dd-user-mandatory-overlay__small {
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--pv-text-soft);
}

.dd-user-mandatory-overlay__panel {
	width: 100%;
	max-width: 1050px;
	padding-left: 42px;
	padding-right: 42px;
	margin-top: 2px;
}

.dd-user-mandatory-overlay__panel .dd-user-panel-loadbar {
	display: none;
}

.dd-user-mandatory-overlay__form {
	display: block;
}

.dd-user-mandatory-overlay__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 18px;
}

.dd-user-mandatory-overlay__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.dd-user-mandatory-overlay__field--full {
	grid-column: 1 / -1;
}

.dd-user-mandatory-overlay__label {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-user-mandatory-overlay__label em {
	font-style: normal;
	font-weight: 400;
	color: var(--pv-text-soft);
}

.dd-user-mandatory-overlay__input,
.dd-user-mandatory-overlay__textarea {
	width: 100%;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid var(--pv-border, rgba(0,0,0,0.12));
	border-radius: 10px;
	background: var(--pv-white);
	color: var(--pv-text);
	font: inherit;
	line-height: 1.4;
	box-sizing: border-box;
}

.dd-user-mandatory-overlay__input:focus,
.dd-user-mandatory-overlay__textarea:focus {
	outline: none;
	border-color: var(--pv-text-soft);
}

.dd-user-mandatory-overlay__textarea {
	resize: vertical;
	min-height: 92px;
}

.dd-user-mandatory-overlay__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	justify-content: flex-start;
	margin-top: 14px;
}

body.dd-user-has-mandatory-overlay {
	overflow: hidden;
}

@media (max-width: 600px) {
	.dd-user-mandatory-overlay__shell {
		padding: 0 0 16px 0;
	}

	.dd-user-mandatory-overlay__banner > *,
	.dd-user-mandatory-overlay__panel {
		padding-left: 18px;
		padding-right: 18px;
	}

	.dd-user-mandatory-overlay__grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.dd-user-mandatory-overlay__field--full {
		grid-column: auto;
	}

	.dd-user-mandatory-overlay__actions .dd-user-btn {
		width: 100%;
	}
}


/* =========================================================
   SECTIONS
========================================================= */

.dd-user-section {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 18px 18px;
}

.dd-user-section-title,
.dd-user-section > h2 {
	width: 100%;
	max-width: 1050px;
	padding: 0 42px;
	font-size: clamp(28px, 3.5vw, 42px);
	line-height: 1.06;
	font-weight: 700;
	color: var(--pv-text);
}

#dd_user_orders_section {
	background: var(--pv-surface-blue);
}

.dd-user-list {
	width: 100%;
	max-width: 1050px;
	padding: 0 42px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dd-user-empty,
.dd-user-empty-inline {
	padding: 14px 16px;
	border: 1px solid var(--pv-border);
	border-radius: 16px;
	background: var(--pv-white);
	color: var(--pv-text-soft);
}

.dd-user-empty-inline {
	border-style: dashed;
}

/* =========================================================
   CARDS
========================================================= */

.dd-user-item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--pv-border);
	border-radius: 16px;
	background: var(--pv-white);
}

#dd_user_orders .dd-user-item {
	border-color: transparent;
}

#dd_user_orders .dd-user-item.is-cancelled,
#dd_user_orders .dd-user-item.is-paused {
	background: var(--pv-surface-blue);
	border-color: var(--pv-border-soft);
}

.dd-user-item-main,
.dd-user-item-main--stack {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dd-user-item-summary {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.dd-user-item-title {
	font-weight: 700;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-user-item-meta {
	font-size: 1rem;
	line-height: 1;
	color: var(--pv-text-soft);
}

.dd-user-item-meta-inline {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.dd-user-item-status {
	font-size: 0.92rem;
	color: #a13838;
}

.dd-user-item-lock {
	font-size: 0.8rem;
	color: var(--pv-text-soft);
}

/* order date group label: ready for future markup update */

.dd-user-orders-top-action {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	max-width: 1050px;
	padding: 0 42px;
}

.dd-user-add-order-static {
	font-size: 0.92rem;
	color: var(--pv-text-soft);
}

.dd-user-order-group {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.dd-user-order-group-date {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--pv-text-soft);
	padding: 2px 2px 0;
	text-transform: none;
}

.dd-user-order-group-items {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* =========================================================
   ACTION LINKS / BUTTONS
========================================================= */

.dd-user-item-actions,
.dd-user-item-actions--below,
.dd-user-banner-actions,
.dd-user-password-banner-actions,
.dd-user-sub-pause-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0 10px;
	justify-content: flex-start;
}

.dd-user-action-link,
.dd-user-link-btn {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 28px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pv-gold);
	font-size: 0.94rem;
	line-height: 1.35;
	text-decoration: none;
	transition: opacity 0.15s ease, color 0.15s ease;
}

#dd-user-password-banner .dd-user-action-link {
	color: #7a5d22;
}

.dd-user-action-link:hover,
.dd-user-link-btn:hover {
	opacity: 0.76;
	text-decoration: none;
}

.dd-user-action-link:disabled {
	opacity: 0.42;
	pointer-events: none;
}

.dd-user-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-height: 42px;
	padding: 10px 16px;
	border: 1px solid var(--pv-gold);
	border-radius: var(--pv-radius);
	background: transparent;
	color: var(--pv-gold);
	font-size: 1rem;
	line-height: 1.2;
	transition: opacity 0.16s ease, background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.dd-user-btn:hover,
.dd-user-btn-small:hover {
	background: var(--pv-light-blue);
	border-color: var(--pv-light-blue);
	color: var(--pv-gold);
	text-decoration: none;
	opacity: 1;
}

.dd-user-btn-small {
	min-height: 34px;
	min-width: 42px;
	padding: 6px 10px;
	font-size: 0.88rem;
}

.dd-user-btn--light {
	background: var(--pv-white);
	border-color: var(--pv-gold);
	color: var(--pv-gold);
}

/* =========================================================
   PANELS / FORMS
========================================================= */

.dd-user-inline-panel {
	padding: 12px 0 0;
	border-top: 1px dashed var(--pv-border);
}

.dd-user-inline-panel-body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 8px;
}

.dd-user-panel-error {
	font-size: 1.1rem;
	color: #971f1f;
	animation: shake .5s ease-in-out;
}

.dd-user-panel-text,
.dd-user-recipe-content,
.dd-user-last-payment {
	color: var(--pv-text);
    font-size: 0.95rem;

}

.dd-user-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dd-user-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.93rem;
	color: var(--pv-text);
}

.dd-user-form input,
.dd-user-form textarea,
.dd-user-form select {
	width: 100%;
	padding: 0 10px;
	border: 1px solid var(--pv-border-soft);
	border-radius: 8px;
	background: var(--pv-white);
	color: var(--pv-text);
}

.dd-user-form input,
.dd-user-form select {
	min-height: 42px;
}

.dd-user-form input[type="checkbox"] {
	width: auto;
	min-height: 0;
	padding: 0;
	border: none;
}

.dd-user-form textarea {
	min-height: 110px;
	padding-top: 10px;
	padding-bottom: 10px;
}

.dd-user-form input:focus,
.dd-user-form textarea:focus,
.dd-user-form select:focus {
	border-color: var(--pv-gold);
	box-shadow: none;
	outline: none;
}

/* =========================================================
   PAUSE BLOCKS
========================================================= */

.dd-user-subscription-pauses {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dd-user-sub-pause-row {
	padding: 8px 0 0;
	border-top: 1px dashed var(--pv-border);
}

.dd-user-sub-pause-main {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	gap: 8px;
}

.dd-user-sub-pause-dates {
	display: flex;
	align-items: center;
	font-size: 0.93rem;
	line-height: 1.4;
	color: var(--pv-text-soft);
}

/* =========================================================
   COUNT PICKER
========================================================= */

.dd-user-count-picker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.dd-user-count-picker input[name="count"] {
	width: 56px;
	min-height: 34px;
	padding: 6px 8px;
	text-align: center;
	border: 1px solid var(--pv-border-soft);
	border-radius: 10px;
	background: var(--pv-white);
	/*hide native number input controls*/
	appearance: textfield;
	-moz-appearance: textfield;
	-webkit-appearance: textfield;
}

.dd-user-count-max {
	font-size: 1rem;
	color: var(--pv-text-soft);
}

/* =========================================================
   RADIOS
   forced 2 columns on all widths
========================================================= */

.dd-user-radio-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	align-items: stretch;
}

.dd-user-radio-item {
	display: flex;
	width: 100%;
	min-width: 0;
	cursor: pointer;
	user-select: none;
}

.dd-user-radio-item > input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}

.dd-user-radio-item > .dd-user-radio-label {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 42px;
	height: 100%;
	padding: 8px 12px;
	border: 1px solid var(--pv-border-soft);
	border-radius: 12px;
	background: var(--pv-white);
	color: var(--pv-text);
	font-size: 0.93rem;
	line-height: 1.4;
	transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease;
}

.dd-user-radio-item:hover > .dd-user-radio-label {
	background: var(--pv-surface-alt);
}

.dd-user-radio-item > input[type="radio"]:checked + .dd-user-radio-label {
	background: #e6edf3;
	border-color: #e6edf3;
	color: var(--pv-text);
}

.dd-user-radio-item > input[type="radio"]:focus-visible + .dd-user-radio-label {
	outline: 1px solid var(--pv-gold);
	outline-offset: 2px;
}

/* =========================================================
   FAB
========================================================= */

.dd-user-fab {
	position: fixed;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%) translateY(18px);
	width: calc(100% - 32px);
	max-width: 1050px;
	z-index: 950;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 18px;
	border: 1px solid var(--pv-text-soft);
	border-radius: var(--pv-radius);
	background: var(--pv-text-soft);
	color: var(--pv-white);
	font-size: 0.95rem;
	line-height: 1;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.24s ease,
		transform 0.24s ease,
		visibility 0.24s ease;
}

.dd-user-fab:hover {
	text-decoration: none;
	opacity: 0.92;
}

.dd-user-fab.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}



/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 600px) {
	.dd-user-message {
		top: 10px;
		width: calc(100% - 20px);
		padding: 12px 14px;
		font-size: 0.93rem;
		border-radius: 12px;
	}

	.dd-user-loadbar {
		padding: 0 14px;
	}
	.dd-user-panel-error {
		font-size: 0.9rem;
	}

	.dd-user-client-header {
		padding: 14px 14px 0;
		gap: 14px;
	}

	.dd-user-client-identity {
		padding: 0;
	}

	.dd-user-banner,
	.dd-user-password-banner,
	.dd-user-info-banner-slot:not(:empty) {
		padding: 12px 14px 10px;
	}

	.dd-user-banner > *,
	.dd-user-password-banner > *,
	.dd-user-info-banner-slot:not(:empty) > * {
		padding-left: 0;
		padding-right: 0;
	}

	.dd-user-section {
		padding: 14px 14px;
	}

	.dd-user-section-title,
	.dd-user-section > h2,
	.dd-user-list {
		padding-left: 0;
		padding-right: 0;
	}

	.dd-user-section-title,
	.dd-user-section > h2 {
		font-size: 30px;
	}

	.dd-user-item {
		padding: 14px;
	}

	.dd-user-item-actions,
	.dd-user-item-actions--below,
	.dd-user-banner-actions,
	.dd-user-password-banner-actions,
	.dd-user-sub-pause-actions {
		gap: 6px 12px;
	}

	.dd-user-sub-pause-main {
		flex-direction: column;
		align-items: flex-start;
	}

	.dd-user-btn {
		width: 100%;
	}

	.dd-user-btn-small {
		width: 50px;
	}


}

/* =========================================================
   ENTRY ANIMATIONS
   unchanged
========================================================= */

@keyframes dd-card-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes dd-content-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.dd-user-enter-card,
.dd-user-enter-content {
	opacity: 1;
	transform: none;
}

.dd-user-dashboard.is-entering .dd-user-enter-card {
	animation: dd-card-in 0.38s ease-out both;
	animation-delay: calc(var(--dd-enter-index, 0) * 70ms);
}

.dd-user-dashboard.is-entering .dd-user-enter-content {
	animation: dd-content-in 0.42s ease-out both;
	animation-delay: calc(var(--dd-enter-index, 0) * 70ms + 120ms);
}

@media (prefers-reduced-motion: reduce) {
	.dd-user-dashboard.is-entering .dd-user-enter-card,
	.dd-user-dashboard.is-entering .dd-user-enter-content {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* =========================================================
   FOURNÉES — LIST
========================================================= */

.dd-fournees {
	width: 100%;
	color: var(--pv-text);
	background: var(--pv-light-blue);
}

/* =========================================================
   FLOATING MESSAGE
========================================================= */

.dd-fournees-message {
	position: fixed;
	top: 12px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 11050;
	width: min(calc(100% - 28px), 760px);
	margin: 0;
	padding: 14px 16px;
	border-radius: 14px;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.45;
	background: var(--pv-message-bg);
	color: var(--pv-text);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}

.dd-fournees-message.is-success {
	background: var(--pv-success);
	color: var(--pv-text);
}

.dd-fournees-message.is-error {
	background: var(--pv-danger);
	color: var(--pv-text);
}

.dd-fournees-message.is-info {
	background: var(--pv-warning);
	color: var(--pv-text);
}

/* =========================================================
   TOP BAR
========================================================= */

.dd-fournees-toolbar {
	max-width: 1050px;
	margin: 0 auto;
	padding: 12px 42px 4px;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}



.dd-fournees-loadbar {
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 42px 8px;
	width: 100%;
}

.dd-fournees-loadbar-track {
	position: relative;
	width: 100%;
	height: 2px;
	overflow: hidden;
	background: var(--pv-light-blue);
}

.dd-fournees-loadbar-fill {
	position: absolute;
	top: 0;
	left: -35%;
	width: 35%;
	height: 100%;
	background: var(--pv-gold);
	animation: dd-fournees-solid-load 1.4s linear infinite;
}

@keyframes dd-fournees-solid-load {
	0% { left: -35%; }
	100% { left: 100%; }
}

/* =========================================================
   CATALOG LAYOUT
========================================================= */

.dd-fournees-catalog {
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 42px 24px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.dd-fournees-month {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dd-fournees-month-title {
	text-align: end	;
	margin: 0;
	font-size: 1rem;
	line-height: 1.05;
	font-weight: 700;
	color: var(--pv-text-soft);
}

.dd-fournees-month-content {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* =========================================================
   BATCH BLOCK
========================================================= */

.dd-fournees-batch {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dd-fournees-batch-date {
	margin: 0;
	font-size: 1rem;
	line-height: 1.15;
	font-weight: 700;
	border-top: 1px solid var(--pv-border-soft);
	color: var(--pv-text-soft);
    padding: 10px 14px;
}

/* =========================================================
   HORIZONTAL CARD ROW
========================================================= */

.dd-fournees-batch-groups {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x proximity;

	scrollbar-width: none;
	-ms-overflow-style: none;
}

.dd-fournees-batch-groups::-webkit-scrollbar {
	display: none;
}

.dd-fournees-batch-groups::after {
	content: "";
	flex: 0 0 72px; /* peek space */
}

/* =========================================================
   CARD
========================================================= */

.dd-fournees-card {
	flex: 0 0 clamp(200px, 32vw, 200px);
	min-width: 200px;
	max-width: 200px;
	display: flex;
	flex-direction: column;
    justify-content: space-between;
	border: 1px solid var(--pv-border-soft);
	border-radius: 14px;
	background: var(--pv-white);
	overflow: hidden;
}

.dd-fournees-card-main {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px;
}

.dd-fournees-card-header {
	padding: 20px 14px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.dd-fournees-card-pretitle {
	font-size: 0.6rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pv-text-soft);
}

.dd-fournees-card-title {
	font-size: 1.2rem;
	line-height: 1.22;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-fournees-card-summary {
	font-size: 0.9rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

.dd-fournees-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0 10px;
	align-items: center;
	min-height: 22px;
}

.dd-fournees-card-footer {
	padding: 0 12px 12px;
}

.dd-fournees-card-note {
	font-size: 0.78rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

/* =========================================================
   BUTTONS / LINKS
========================================================= */

.dd-fournees-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 9px 14px;
	border: 1px solid var(--pv-gold);
	border-radius: var(--pv-radius);
	background: transparent;
	color: var(--pv-gold);
	font-size: 0.96rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition:
		background-color 0.16s ease,
		border-color 0.16s ease,
		color 0.16s ease,
		opacity 0.16s ease;
}

.dd-fournees-btn:hover {
	background: var(--pv-light-blue);
	border-color: var(--pv-light-blue);
	color: var(--pv-gold);
	text-decoration: none;
	opacity: 1;
}

.dd-fournees-btn--primary {
	width: 100%;
}

.dd-fournees-action-link {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 22px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pv-gold);
	font-size: 0.9rem;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.15s ease, color 0.15s ease;
}

.dd-fournees-action-link:hover {
	opacity: 0.76;
	text-decoration: none;
}

/* =========================================================
   INLINE PANELS
========================================================= */

.dd-fournees-inline-panel {
	border-top: 1px dashed var(--pv-border-soft);
}

.dd-fournees-inline-panel-body {
	padding: 9px 12px 11px;
	font-size: 0.9rem;
	line-height: 1.48;
	color: var(--pv-text);
}

.dd-fournees-recipe-note {
	font-size: 0.8rem;
	line-height: 1.35;
}

/* =========================================================
   DETAIL PANEL
========================================================= */

.dd-fournees-detail-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.dd-fournees-detail-row {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.dd-fournees-detail-meta {
	font-size: 0.86rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

.dd-fournees-price-kg {
    margin-left: 4px;
    font-size: 0.8rem;
    color: var(--pv-text-soft);
    white-space: nowrap;
}


/* =========================================================
   EMPTY STATES
========================================================= */

.dd-fournees-empty,
.dd-fournees-empty-inline {
	padding: 12px 14px;
	line-height: 1.5;
	border-radius: 14px;
	background: var(--pv-white);
	color: var(--pv-text-soft);
}

.dd-fournees-btn-empty {
	width: 100%;
	margin-top: 14px;
}

@media (max-width: 600px) {
	.dd-fournees-empty,
	.dd-fournees-empty-inline {
		padding: 10px 12px;
	}
	.dd-fournees-empty .dd-fournees-enter-content {
		font-size: 0.9rem;
	}
}



/* =========================================================
   MODAL SHELL
========================================================= */

.dd-fournees-modal {
	position: fixed;
	inset: 0;
	z-index: 11000;
	padding: 20px 18px;
	background: var(--pv-light-blue);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	opacity: 0;
	transition: opacity 0.18s ease;

	min-height: 100vh;
	min-height: 100dvh;
}


.dd-fournees-modal.is-open {
	opacity: 1;
}

.dd-fournees-modal-card {
	width: min(100%, 700px);
	max-width: 700px;
	margin: 0 auto;
	border-radius: 18px;
	background: var(--pv-white);
	box-shadow: none;
	overflow: hidden;
	transform: translateY(8px) scale(0.985);
	opacity: 0;
	transition:
		transform 0.22s ease,
		opacity 0.22s ease;

	display: flex;
	flex-direction: column;
	min-height: calc(100vh - 40px);
	min-height: calc(100dvh - 40px);
}


.dd-fournees-modal.is-open .dd-fournees-modal-card {
	transform: translateY(0) scale(1);
	opacity: 1;
}

.dd-fournees-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
}

.dd-fournees-modal-title {
	font-size: 1rem;
	line-height: 1.28;
	color: var(--pv-text);
	font-weight: 700;
}

.dd-fournees-modal-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}

.dd-fournees-success-box {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	font-size: 0.96rem;
	line-height: 1.5;
	color: var(--pv-text);
	padding: 6px 0;
}

.dd-fournees-success-mark {
	flex: 0 0 auto;
	font-size: 2rem;
	line-height: 1;
	font-weight: 700;
	color: #2f8f4e;
}

.dd-fournees-success-content {
	flex: 1 1 auto;
	min-width: 0;
}

.dd-fournees-success-content p + p {
	margin-top: 10px;
}

/* =========================================================
   FOURNÉES MODAL FORM
========================================================= */

.dd-fournees-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	flex: 1 1 auto;
	min-height: 0;
}

.dd-fournees-form-section {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 4px 0 10px;
}

.dd-fournees-form-section + .dd-fournees-form-section {
	margin-top: 4px;
}

.dd-fournees-form-section h4 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.25;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-fournees-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.92rem;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-fournees-form input[type="text"],
.dd-fournees-form input[type="email"] {
	width: 100%;
	min-height: 42px;
	padding: 0 10px;
	border: 1px solid var(--pv-border-soft, #d8dde2);
	border-radius: 8px;
	background: var(--pv-white);
	color: var(--pv-text);
	font-size: 0.92rem;
	line-height: 1.35;
	-webkit-tap-highlight-color: transparent;
}

.dd-fournees-form input::placeholder {
	color: var(--pv-text-soft);
	opacity: 1;
	font-size: 0.92rem;
}

.dd-fournees-form input[type="text"]:focus,
.dd-fournees-form input[type="email"]:focus {
	border-color: var(--pv-text);
	outline: none;
	box-shadow: none;
}

.dd-fournees-field-error {
	border-color: #971f1f !important;
	animation: shake 0.5s ease-in-out;
}

.dd-fournees-field-error:focus {
	border-color: #971f1f !important;
}

/* =========================================================
   STEP NAV
========================================================= */



.dd-fournees-steps-nav {
	display: flex;
	align-items: stretch;
	gap: 10px;
	margin: -14px -14px 16px;
	border-bottom: 1px solid var(--pv-border, #e4d8c8);
	background: var(--pv-white);
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}


.dd-fournees-steps-nav::-webkit-scrollbar {
	display: none;
}

.dd-fournees-step-tab {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 10px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: var(--pv-text-soft);
	font-size: 0.84rem;
	line-height: 1.2;
	font-weight: 600;
	text-align: center;
	white-space: nowrap;
	cursor: default;
	transition:
		color 0.16s ease,
		border-color 0.16s ease,
		background-color 0.16s ease,
		opacity 0.16s ease;
}

.dd-fournees-step-tab.is-available {
	cursor: pointer;
}

.dd-fournees-step-tab.is-available:hover {
	color: var(--pv-text);
	background: var(--pv-surface-alt, #f6f8fa);
}

.dd-fournees-step-tab.is-active {
	color: var(--pv-text);
	border-bottom-color: var(--pv-gold);
	background: var(--pv-white);
}

.dd-fournees-step-tab.is-done {
	color: var(--pv-text);
}

.dd-fournees-step-tab.is-done::before {
	content: "✓";
	color: #2f8f4e;
	font-weight: 700;
}

.dd-fournees-step-tab:disabled {
	opacity: 0.55;
	cursor: default;
}

/* =========================================================
   STEP PANELS
========================================================= */

.dd-fournees-steps-wrap {
	position: relative;
}

.dd-fournees-step-panel {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	opacity: 1;
	transform: translateX(0);
}

.dd-fournees-step-panel.is-entering {
	animation: ddFourneesStepIn 0.22s ease;
}

.dd-fournees-step-panel.is-leaving {
	opacity: 0;
}

@keyframes ddFourneesStepIn {
	from {
		opacity: 0;
		transform: translateX(12px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* =========================================================
   ORDER GROUPS / ITEMS
========================================================= */

#dd_fournees_more_groups_panel .dd-fournees-inline-panel-body {
	padding: 0;
}

.dd-fournees-form-group-block {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px;
}

.dd-fournees-form-group-head {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.dd-fournees-form-group-pretitle {
	font-size: 0.6rem;
	line-height: 1.2;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pv-text-soft);
}

.dd-fournees-form-group-title {
	font-size: 0.98rem;
	line-height: 1.25;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-fournees-form-group-items {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dd-fournees-form-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding-bottom: 3px;
	border-bottom: 1px dashed var(--pv-border, #e4d8c8);
}

.dd-fournees-form-item-main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.dd-fournees-form-item-meta {
	font-size: 0.92rem;
	line-height: 1.4;
	color: var(--pv-text-soft);
}

.dd-fournees-form-item-qty {
	flex: 0 0 auto;
}

/* =========================================================
   COUNTERS
========================================================= */

.dd-fournees-counter {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.dd-fournees-counter-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid var(--pv-light-blue);
	border-radius: 10px;
	background: var(--pv-light-blue);
	color: var(--pv-text);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	transition:
		background-color 0.16s ease,
		border-color 0.16s ease,
		color 0.16s ease;
}

.dd-fournees-counter-btn:hover {
	background: var(--pv-light-blue);
	border-color: var(--pv-text-soft);
}

.dd-fournees-counter input[type="number"] {
	width: 42px;
	min-height: 34px;
	padding: 0 8px;
	border: 1px solid var(--pv-border-soft, #d8dde2);
	border-radius: 10px;
	background: var(--pv-white);
	color: var(--pv-text);
	font-size: 0.92rem;
	line-height: 1.2;
	text-align: center;
	/*hide native number input controls*/
	appearance: textfield;
	-moz-appearance: textfield;
	-webkit-appearance: textfield;
}

/* =========================================================
   DELIVERY PLACE BOXES
========================================================= */

.dd-fournees-place-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	align-items: stretch;
}

.dd-fournees-place-box {
	display: flex;
	height: 100%;
	cursor: pointer;
}

.dd-fournees-place-box input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.dd-fournees-place-box-inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 100%;
	height: 100%;
	padding: 10px 12px;
	border: 1px solid #e6edf3;
	border-radius: 12px;
	background: var(--pv-white);
	transition:
		border-color 0.16s ease,
		background-color 0.16s ease;
}

.dd-fournees-place-box:hover .dd-fournees-place-box-inner {
	background: var(--pv-surface-alt, #f6f8fa);
}

.dd-fournees-place-box input[type="radio"]:checked + .dd-fournees-place-box-inner {
	background: #e6edf3;
	border-color: #e6edf3;
}

.dd-fournees-place-name {
	font-size: 0.92rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-fournees-place-address,
.dd-fournees-place-extra {
	font-size: 0.84rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

/* =========================================================
   ORDER RECAP / PRETOTAL
========================================================= */

.dd-fournees-order-recap {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-bottom: 8px;
}

.dd-fournees-order-recap-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.dd-fournees-order-recap-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-size: 0.9rem;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-fournees-order-recap-row strong {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-fournees-pretotal-box {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dd-fournees-pretotal-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-size: 0.94rem;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-fournees-pretotal-row strong {
	font-size: 0.96rem;
	color: var(--pv-text);
}

.dd-fournees-pretotal-row.is-total {
	padding-top: 6px;
	border-top: 1px dashed var(--pv-border, #e4d8c8);
	font-weight: 700;
}

.dd-fournees-pretotal-row.is-total strong {
	font-size: 1rem;
}

/* =========================================================
   SUMMARY TABLE
========================================================= */

.dd-fournees-recap-box {
	border-top: 1px solid var(--pv-border-soft, #d8dde2);
	background: var(--pv-white);
}

.dd-fournees-recap-row {
	display: grid;
	grid-template-columns: 190px 1fr;
	gap: 0;
	border-top: 1px solid var(--pv-border-soft, #d8dde2);
}

.dd-fournees-recap-row:first-child {
	border-top: 0;
}

.dd-fournees-recap-label,
.dd-fournees-recap-value {
	padding: 12px 0;
}

.dd-fournees-recap-label {
	font-size: 0.9rem;
	line-height: 1.35;
	font-weight: 700;
	color: var(--pv-text);
	background: none;
}

.dd-fournees-recap-value {
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--pv-text);
	background: none;
}

/* =========================================================
   GUEST FIELDS / CHECKBOXES / CGV
========================================================= */

.dd-fournees-guest-fields {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.dd-fournees-guest-fields--compact {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.dd-fournees-guest-fields--compact input[name="address_public_order_request"],
.dd-fournees-guest-fields--compact .dd-fournees-checkbox,
.dd-fournees-guest-fields--compact .dd-fournees-form-warning {
	grid-column: 1 / -1;
}

.dd-fournees-checkbox {
	flex-direction: row !important;
	align-items: flex-start;
	gap: 8px !important;
}

.dd-fournees-checkbox input[type="checkbox"] {
	width: auto;
	margin: 2px 0 0;
}

.dd-fournees-inline-link {
	display: inline;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pv-gold);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}

.dd-fournees-cgv-box {
	max-height: 52vh;
	overflow-y: auto;
	padding-right: 4px;
	color: var(--pv-text);
	font-size: 0.92rem;
	line-height: 1.55;
}

.dd-fournees-cgv-box h1,
.dd-fournees-cgv-box h2,
.dd-fournees-cgv-box h3,
.dd-fournees-cgv-box h4,
.dd-fournees-cgv-box h5,
.dd-fournees-cgv-box h6 {
	margin: 0 0 10px;
	color: var(--pv-text);
	line-height: 1.3;
	font-weight: 700;
}

.dd-fournees-cgv-box h1 { font-size: 1.15rem; }
.dd-fournees-cgv-box h2 { font-size: 1.05rem; }
.dd-fournees-cgv-box h3 { font-size: 1rem; }

.dd-fournees-cgv-box p,
.dd-fournees-cgv-box ul,
.dd-fournees-cgv-box ol {
	margin: 0 0 10px;
	font-size: 0.92rem;
	line-height: 1.55;
}

.dd-fournees-cgv-box li {
	margin-left: 18px;
	font-size: 0.92rem;
	line-height: 1.55;
}

.dd-fournees-cgv-box strong {
	font-weight: 700;
}

/* =========================================================
   WARNING / ACTIONS / ERRORS / SUBMIT LOADBAR
========================================================= */

.dd-fournees-form-warning {
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--pv-text-soft);
}

.dd-fournees-form-actions {
	margin-top: auto;
	padding-top: 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex-shrink: 0;
}

.dd-fournees-form-actions .dd-fournees-btn {
	width: 100%;
}

.dd-fournees-form-error {
	display: none;
	color: #971f1f;
	font-size: 0.9rem;
	line-height: 1.4;
	animation: shake 0.5s ease-in-out;
}

.dd-fournees-submit-loadbar {
	margin: 4px 0 2px;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {
	.dd-fournees-modal {
		padding: 14px;
		min-height: 100vh;
		min-height: 100dvh;
	}

	.dd-fournees-modal-card {
		min-height: calc(100vh - 28px);
		min-height: calc(100dvh - 28px);
	}

	.dd-fournees-modal-header,
	.dd-fournees-modal-body {
		padding-left: 14px;
		padding-right: 14px;
	}

	.dd-fournees-step-tab {
		padding: 10px 10px;
		font-size: 0.84rem;
	}

	.dd-fournees-step-panel {
		min-height: 0;
	}

	.dd-fournees-form-actions {
		padding-top: 22px;
		padding-bottom: max(6px, env(safe-area-inset-bottom));
	}

	.dd-fournees-form-group-block,
	.dd-fournees-pretotal-box {
		padding: 11px;
	}

	.dd-fournees-form-item {
		flex-direction: row;
		align-items: flex-start;
	}

	.dd-fournees-recap-row {
		grid-template-columns: 140px 1fr;
	}

	.dd-fournees-recap-label,
	.dd-fournees-recap-value {
		padding: 10px 0;
	}

	.dd-fournees-success-box {
		gap: 12px;
	}

	.dd-fournees-success-mark {
		font-size: 1.9rem;
	}

	.dd-fournees-guest-fields--compact {
		grid-template-columns: 1fr;
	}
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 600px) {
	.dd-fournees-message {
		top: 10px;
		width: calc(100% - 20px);
		padding: 12px 14px;
		font-size: 0.93rem;
		border-radius: 12px;
	}

	.dd-fournees-toolbar {
		padding: 12px 14px 4px;
	}

	.dd-fournees-loadbar {
		padding: 0 14px 8px;
	}

	.dd-user-orders-top-action {
		padding: 15px 0;
	}

	.dd-fournees-catalog {
		padding: 0 14px 20px;
		gap: 16px;
	}

	.dd-fournees-month-title {
		font-size: 0.98rem;
	}

	.dd-fournees-batch-date {
		font-size: 0.98rem;
	}

    .dd-fournees-batch-groups {
		gap: 8px;
	}

	.dd-fournees-card {
		flex: 0 0 200px;
		min-width: 200px;
		max-width: 200px;
	}

	.dd-fournees-card-main {
		padding: 11px;
		gap: 8px;
	}

	.dd-fournees-card-footer {
		padding: 0 11px 11px;
	}

	.dd-fournees-inline-panel-body {
		padding: 9px 11px 11px;
	}
    #dd_fournees_more_groups_panel  .dd-fournees-inline-panel-body {
        padding: 0;
    }


}

/* =========================================================
   FOURNÉES ENTRY ANIMATIONS
========================================================= */

@keyframes dd-fournees-card-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.985);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes dd-fournees-content-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* safe default */
.dd-fournees-enter-card,
.dd-fournees-enter-content {
	opacity: 1;
	transform: none;
}

/* animate only while root is entering */
.dd-fournees.is-entering .dd-fournees-enter-card {
	animation: dd-fournees-card-in 0.38s ease-out both;
	animation-delay: calc(var(--dd-enter-index, 0) * 70ms);
}

.dd-fournees.is-entering .dd-fournees-enter-content {
	animation: dd-fournees-content-in 0.42s ease-out both;
	animation-delay: calc(var(--dd-enter-index, 0) * 70ms + 100ms);
}

@media (prefers-reduced-motion: reduce) {
	.dd-fournees.is-entering .dd-fournees-enter-card,
	.dd-fournees.is-entering .dd-fournees-enter-content {
		animation: none;
		opacity: 1;
		transform: none;
	}
}


/* =========================================================
   FOURNÉES SKELETON
========================================================= */

.dd-fournees-skeleton-root {
	pointer-events: none;
}

/* shimmer animation */


.dd-fournees-skeleton-line,
.dd-fournees-skeleton-btn {
	display: block;
	border-radius: 999px;
	background: var(--pv-light-blue);
	background-size: 200% 100%;
}

.dd-fournees-skeleton-line {
	height: 12px;
}

.dd-fournees-skeleton-card {
	border: 1px solid var(--pv-border, #e4d8c8);
	background: var(--pv-white);
}

.dd-fournees-skeleton-btn {
	height: 36px;
	width: 100%;
	border-radius: var(--pv-radius);
}

/* =========================================================
   ABONNEMENTS
========================================================= */

.dd-abonnements {
	width: 100%;
	color: var(--pv-text);
	background: var(--pv-white);
}

/* =========================================================
   FLOATING MESSAGE
========================================================= */

.dd-abonnements-message {
	position: fixed;
	top: 12px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 11050;
	width: min(calc(100% - 28px), 760px);
	margin: 0;
	padding: 14px 16px;
	border-radius: 14px;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.45;
	background: var(--pv-message-bg);
	color: var(--pv-text);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}

.dd-abonnements-message.is-success {
	background: var(--pv-success);
}

.dd-abonnements-message.is-error {
	background: var(--pv-danger);
}

.dd-abonnements-message.is-info {
	background: var(--pv-warning);
}

/* =========================================================
   LOADBAR
========================================================= */

.dd-abonnements-loadbar {
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 42px 10px;
	width: 100%;
}

.dd-abonnements-loadbar-track {
	position: relative;
	width: 100%;
	height: 2px;
	overflow: hidden;
	background: var(--pv-light-blue);
	border-radius: 999px;
}

.dd-abonnements-loadbar-fill {
	position: absolute;
	top: 0;
	left: -35%;
	width: 35%;
	height: 100%;
	background: var(--pv-gold);
	border-radius: 999px;
	animation: dd-abonnements-solid-load 1.4s linear infinite;
}

@keyframes dd-abonnements-solid-load {
	0% { left: -35%; }
	100% { left: 100%; }
}

/* =========================================================
   CATALOG
========================================================= */

.dd-abonnements-catalog {
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 42px 24px;
}

.dd-abonnements-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 250px));
	gap: 12px;
	align-items: stretch;
}

/* =========================================================
   CARD
========================================================= */

.dd-abonnements-card {
	width: 100%;
	max-width: 250px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border: 1px solid var(--pv-border-soft);
	border-radius: 14px;
	background: var(--pv-white);
	overflow: hidden;
}

.dd-abonnements-card-main {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 3rem 14px 14px;
}

.dd-abonnements-card-header {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.dd-abonnements-card-title {
	margin: 0;
	font-size: 1.4rem;
	line-height: 1.22;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-abonnements-card-short {
	font-size: 1.05rem;
	line-height: 1.4;
	color: var(--pv-text-soft);
}

.dd-abonnements-card-price-line {
	font-size: 1.05rem;
	line-height: 1.35;
}

.dd-abonnements-card-footer {
	padding: 0 14px 2rem;
}

@media (max-width: 600px) {
	.dd-abonnements-card-main {
		padding: 2rem 14px 14px;
	}


	.dd-abonnements-card-short {
		font-size: 0.9rem;
	}

	.dd-abonnements-card-price-line {
		font-size: 0.9rem;
	}

	.dd-abonnements-card-footer {
		padding: 0 12px 2rem;
	}
}

.dd-abonnements-price-details-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dd-abonnements-price-details-note {
	font-size: 0.7rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

.dd-abonnements-price-details-row {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.dd-abonnements-price-details-weight {
	opacity: 1;
}

.dd-abonnements-price-details-value {
	opacity: 1;
}

.dd-abonnements-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0 10px;
	align-items: center;
	min-height: 22px;
}

/* =========================================================
   BUTTONS / ACTION LINKS
========================================================= */

.dd-abonnements-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 9px 14px;
	border: 1px solid var(--pv-gold);
	border-radius: var(--pv-radius);
	background: transparent;
	color: var(--pv-gold);
	font-size: 0.96rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition:
		background-color 0.16s ease,
		border-color 0.16s ease,
		color 0.16s ease,
		opacity 0.16s ease;
	-webkit-tap-highlight-color: transparent;
}

.dd-abonnements-btn:hover {
	background: var(--pv-light-blue);
	border-color: var(--pv-light-blue);
	color: var(--pv-gold);
	text-decoration: none;
	opacity: 1;
}

.dd-abonnements-btn--primary {
	width: 100%;
}

.dd-abonnements-action-link {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 22px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pv-gold);
	font-size: 0.9rem;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.15s ease, color 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}

.dd-abonnements-action-link:hover {
	opacity: 0.76;
	text-decoration: none;
}

/* =========================================================
   INLINE PANELS
========================================================= */

.dd-abonnements-inline-panel {
	border-top: 1px dashed var(--pv-border, #e4d8c8);
}

.dd-abonnements-inline-panel-body {
	padding: 10px 12px 12px;
	font-size: 0.9rem;
	line-height: 1.48;
	color: var(--pv-text);
}

/* =========================================================
   EMPTY STATES / FALLBACK
========================================================= */

.dd-abonnements-empty-inline,
.dd-abonnements-empty-fallback {
	padding: 100px 14px 12px;
	background: var(--pv-white);
	color: var(--pv-text-soft);
}

.dd-abonnements-empty-fallback p + p {
	margin-top: 10px;
}

.dd-abonnements-btn-empty {
	width: 100%;
}

@media (max-width: 600px) {
	.dd-abonnements-empty-inline,
	.dd-abonnements-empty-fallback {
		padding: 100px 12px 10px 12px;
	}

	.dd-abonnements-empty-fallback .dd-abonnements-enter-content {
		font-size: 0.9rem;
	}
}

/* =========================================================
   MODAL
========================================================= */

.dd-abonnements-modal {
	position: fixed;
	inset: 0;
	z-index: 11000;
	padding: 20px 18px;
	background: var(--pv-light-blue);
	overflow-y: auto;
	opacity: 0;
	transition: opacity 0.18s ease;
}

.dd-abonnements-modal.is-open {
	opacity: 1;
}

.dd-abonnements-modal-card {
	width: min(100%, 700px);
	max-width: 700px;
	margin: 0 auto;
	border-radius: 18px;
	background: var(--pv-white);
	box-shadow: none;
	overflow: hidden;
	transform: translateY(8px) scale(0.985);
	opacity: 0;
	transition:
		transform 0.22s ease,
		opacity 0.22s ease;
}

.dd-abonnements-modal.is-open .dd-abonnements-modal-card {
	transform: translateY(0) scale(1);
	opacity: 1;
}

.dd-abonnements-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	}

.dd-abonnements-modal-title {
	font-size: 1rem;
	line-height: 1.28;
	color: var(--pv-text);
	font-weight: 700;
}

.dd-abonnements-modal-body {
	padding: 16px;
}

.dd-abonnements-success-box {
	font-size: 0.96rem;
	line-height: 1.5;
	color: var(--pv-text);
}

.dd-abonnements-success-box p + p {
	margin-top: 10px;
}

/* =========================================================
   FORM
========================================================= */

.dd-abonnements-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.dd-abonnements-form-section {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 4px 0 10px;
}

.dd-abonnements-form-section + .dd-abonnements-form-section {
	margin-top: 4px;
}

.dd-abonnements-step-panel[data-step-panel="2"] .dd-abonnements-form-section {
	gap: 12px;
	padding: 6px 0 12px;
}

.dd-abonnements-form-section h4 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.25;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-abonnements-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.92rem;
	line-height: 1.35;
	color: var(--pv-text);
}

.dd-abonnements-form input[type="text"],
.dd-abonnements-form input[type="email"],
.dd-abonnements-form input[type="date"] {
	width: 100%;
	min-height: 42px;
	padding: 0 10px;
	border: 1px solid var(--pv-border-soft, #d8dde2);
	border-radius: 8px;
	background: var(--pv-white);
	color: var(--pv-text);
	font-size: 0.92rem;
	line-height: 1.35;
	-webkit-tap-highlight-color: transparent;
}

.dd-abonnements-form input::placeholder {
	color: var(--pv-text-soft);
	opacity: 1;
	font-size: 0.92rem;
}


.dd-abonnements-form input[type="text"]:focus,
.dd-abonnements-form input[type="email"]:focus,
.dd-abonnements-form input[type="date"]:focus {
	border-color: var(--pv-text);
	outline: none;
	box-shadow: none;
}

/* =========================================================
   RADIO LISTS
========================================================= */

.dd-abonnements-radio-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	align-items: stretch;
}

.dd-abonnements-radio-item {
	display: flex;
	width: 100%;
	cursor: pointer;
}

.dd-abonnements-radio-item > input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.dd-abonnements-radio-label {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 42px;
	padding: 8px 12px;
	border: 1px solid var(--pv-border-soft, #d8dde2);
	border-radius: 12px;
	background: var(--pv-white);
	color: var(--pv-text);
	font-size: 0.92rem;
	line-height: 1.4;
	transition: border-color 0.16s ease, background-color 0.16s ease;
}

.dd-abonnements-radio-item:hover .dd-abonnements-radio-label {
	background: var(--pv-surface-alt, #f6f8fa);
}

.dd-abonnements-radio-item > input[type="radio"]:checked + .dd-abonnements-radio-label {
	background: #e6edf3;
	border-color: #e6edf3;
}

/* =========================================================
   DELIVERY PLACE BOXES
========================================================= */

.dd-abonnements-place-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	align-items: stretch;
}

.dd-abonnements-place-box {
	display: flex;
	height: 100%;
	cursor: pointer;
}

.dd-abonnements-place-box input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.dd-abonnements-place-box-inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 100%;
	height: 100%;
	padding: 10px 12px;
	border: 1px solid #e6edf3;
	border-radius: 12px;
	background: var(--pv-white);
	transition:
		border-color 0.16s ease,
		background-color 0.16s ease;
}

.dd-abonnements-place-box:hover .dd-abonnements-place-box-inner {
	background: var(--pv-surface-alt, #f6f8fa);
}

.dd-abonnements-place-box input[type="radio"]:checked + .dd-abonnements-place-box-inner {
	background: #e6edf3;
	border-color: #e6edf3;
}

.dd-abonnements-place-name {
	font-size: 0.92rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-abonnements-place-address,
.dd-abonnements-place-extra {
	font-size: 0.84rem;
	line-height: 1.35;
	color: var(--pv-text-soft);
}

/* =========================================================
   GUEST FIELDS / CHECKBOXES
========================================================= */

.dd-abonnements-guest-fields-wrap {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.dd-abonnements-guest-fields {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.dd-abonnements-checkbox-line {
	flex-direction: row !important;
	align-items: flex-start;
	gap: 8px !important;
}

.dd-abonnements-checkbox-line input[type="checkbox"] {
	width: auto;
	margin: 2px 0 0;
}

/* =========================================================
   WARNING / ACTIONS / ERRORS
========================================================= */

.dd-abonnements-first-batch-info {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.45;
	color: var(--pv-text-soft);
}

.dd-abonnements-first-batch-note {
	font-size: 0.9rem;
	font-weight: normal;
	line-height: 1.45;
	color: var(--pv-text-soft);
}

.dd-abonnements-form-confirmation {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.dd-abonnements-form-warning {
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--pv-text-soft);
}

.dd-abonnements-form-actions {
	margin-top: auto;
	padding-top: 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.dd-abonnements-form-actions .dd-abonnements-btn {
	width: 100%;
}

.dd-abonnements-form-error {
	display: none;
	color: #971f1f;
	font-size: 0.9rem;
	line-height: 1.4;
	animation: shake .5s ease-in-out;
}

.dd-abonnements-field-error {
	border-color: #971f1f !important;
	background: #fff0f0 !important;
}

.dd-abonnements-field-error:focus {
	border-color: #971f1f !important;
}

/* =========================================================
   STEPS / TABS
========================================================= */

.dd-abonnements-steps-nav {
	display: flex;
	align-items: stretch;
	gap: 10px;
	margin: -14px -14px 16px;
	border-bottom: 1px solid var(--pv-border, #e4d8c8);
	background: var(--pv-white);
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.dd-abonnements-steps-nav::-webkit-scrollbar {
	display: none;
}

.dd-abonnements-step-tab {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 10px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: var(--pv-text-soft);
	font-size: 0.84rem;
	line-height: 1.2;
	font-weight: 600;
	text-align: center;
	white-space: nowrap;
	cursor: default;
	transition:
		color 0.16s ease,
		border-color 0.16s ease,
		background-color 0.16s ease,
		opacity 0.16s ease;
}

.dd-abonnements-step-tab.is-available {
	cursor: pointer;
}

.dd-abonnements-step-tab.is-available:hover {
	color: var(--pv-text);
}

.dd-abonnements-step-tab.is-active {
	color: var(--pv-text);
	border-bottom-color: var(--pv-gold);
	background: var(--pv-white);
}

.dd-abonnements-step-tab.is-done {
	color: var(--pv-text);
}

.dd-abonnements-step-tab.is-done::before {
	content: "✓";
	color: #2f8f4e;
	font-weight: 700;
}

.dd-abonnements-step-tab:disabled {
	opacity: 0.55;
	cursor: default;
}

.dd-abonnements-steps-wrap {
	position: relative;
}


.dd-abonnements-step-panel {
	display: flex;
	flex-direction: column;
	min-height: min(70vh, 640px);
	opacity: 1;
	transform: translateX(0);
}

.dd-abonnements-step-panel.is-entering {
	animation: ddAbonnementStepIn 0.22s ease;
}

.dd-abonnements-step-panel.is-leaving {
	opacity: 0;
}

@keyframes ddAbonnementStepIn {
	from {
		opacity: 0;
		transform: translateX(12px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.dd-abonnements-inline-link {
	display: inline;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pv-gold);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}

.dd-abonnements-cgv-box {
	max-height: 52vh;
	overflow-y: auto;
	padding-right: 4px;
	color: var(--pv-text);
	font-size: 0.92rem;
	line-height: 1.55;
}

.dd-abonnements-cgv-box h1,
.dd-abonnements-cgv-box h2,
.dd-abonnements-cgv-box h3,
.dd-abonnements-cgv-box h4,
.dd-abonnements-cgv-box h5,
.dd-abonnements-cgv-box h6 {
	margin: 0 0 10px;
	color: var(--pv-text);
	line-height: 1.3;
	font-weight: 700;
}

.dd-abonnements-cgv-box h1 { font-size: 1.15rem; }
.dd-abonnements-cgv-box h2 { font-size: 1.05rem; }
.dd-abonnements-cgv-box h3 { font-size: 1rem; }

.dd-abonnements-cgv-box p,
.dd-abonnements-cgv-box ul,
.dd-abonnements-cgv-box ol {
	margin: 0 0 10px;
	font-size: 0.92rem;
	line-height: 1.55;
}

.dd-abonnements-cgv-box li {
	margin-left: 18px;
	font-size: 0.92rem;
	line-height: 1.55;
}

.dd-abonnements-cgv-box strong {
	font-weight: 700;
}



.dd-abonnements-subscription-intro {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-bottom: 6px;
}

.dd-abonnements-subscription-intro-title {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-abonnements-subscription-intro-text {
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--pv-text-soft);
}


/* =========================================================
   RECAP TABLE
========================================================= */

.dd-abonnements-recap-box {
	border-top: 1px solid var(--pv-border-soft, #d8dde2);
	background: var(--pv-white);
}

.dd-abonnements-recap-row {
	display: grid;
	grid-template-columns: 190px 1fr;
	gap: 0;
	border-top: 1px solid var(--pv-border-soft, #d8dde2);
}

.dd-abonnements-recap-row:first-child {
	border-top: 0;
}

.dd-abonnements-recap-label,
.dd-abonnements-recap-value {
	padding: 12px 0;
}

.dd-abonnements-recap-label {
	font-size: 0.9rem;
	line-height: 1.35;
	font-weight: 700;
	color: var(--pv-text);
	background: none;
}

.dd-abonnements-recap-value {
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--pv-text);
	background: none;
}

.dd-abonnements-success-box {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	font-size: 0.96rem;
	line-height: 1.5;
	color: var(--pv-text);
	padding: 6px 0;
}

.dd-abonnements-success-mark {
	flex: 0 0 auto;
	font-size: 2.2rem;
	line-height: 1;
	font-weight: 700;
	color: #2f8f4e;
}

.dd-abonnements-success-content {
	flex: 1 1 auto;
	min-width: 0;
}

.dd-abonnements-success-content p + p {
	margin-top: 10px;
}

.dd-abonnements-guest-fields--compact {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.dd-abonnements-guest-fields--compact input[name="address_public_subscription_request"],
.dd-abonnements-guest-fields--compact .dd-abonnements-checkbox-line,
.dd-abonnements-guest-fields--compact .dd-abonnements-form-warning {
	grid-column: 1 / -1;
}


.dd-abonnements-submit-loadbar {
	margin: 4px 0 2px;
}





/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {
	.dd-abonnements-message {
		top: 10px;
		width: calc(100% - 20px);
		padding: 12px 14px;
		font-size: 0.93rem;
		border-radius: 12px;
	}

	.dd-abonnements-loadbar {
		padding: 0 14px 8px;
	}

	.dd-abonnements-catalog {
		padding: 0 14px 20px;
	}

	.dd-abonnements-list {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.dd-abonnements-card {
		width: min(100%, 80%);
		max-width: 320px;
		margin: 0;
	}

	/* stagger but keep equal width */
	.dd-abonnements-card:nth-child(odd) {
		justify-self: start;
	}

	.dd-abonnements-card:nth-child(even) {
		justify-self: end;
	}

	.dd-abonnements-radio-list {
		grid-template-columns: 1fr;
	}

	.dd-abonnements-modal {
		padding: 14px;
	}

	.dd-abonnements-modal-header,
	.dd-abonnements-modal-body {
		padding-left: 14px;
		padding-right: 14px;
	}

	.dd-abonnements-guest-fields-wrap > .dd-abonnements-btn {
		width: 100%;
	}

	.dd-abonnements-steps-nav {
		margin: -14px -14px 16px;
	}

	.dd-abonnements-step-tab {
		padding: 10px 10px;
		font-size: 0.84rem;
	}

	.dd-abonnements-recap-row {
		grid-template-columns: 140px 1fr;
	}

	.dd-abonnements-recap-label,
	.dd-abonnements-recap-value {
		padding: 10px 0;
	}

	.dd-abonnements-success-box {
		gap: 12px;
	}

	.dd-abonnements-success-mark {
		font-size: 1.9rem;
	}

	.dd-abonnements-guest-fields--compact {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   ABONNEMENTS ENTRY ANIMATIONS
========================================================= */

@keyframes dd-abonnements-card-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.985);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes dd-abonnements-content-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.dd-abonnements-enter-card,
.dd-abonnements-enter-content {
	opacity: 1;
	transform: none;
}

.dd-abonnements.is-entering .dd-abonnements-enter-card {
	animation: dd-abonnements-card-in 0.38s ease-out both;
	animation-delay: calc(var(--dd-enter-index, 0) * 70ms);
}

.dd-abonnements.is-entering .dd-abonnements-enter-content {
	animation: dd-abonnements-content-in 0.42s ease-out both;
	animation-delay: calc(var(--dd-enter-index, 0) * 70ms + 100ms);
}

@media (prefers-reduced-motion: reduce) {
	.dd-abonnements.is-entering .dd-abonnements-enter-card,
	.dd-abonnements.is-entering .dd-abonnements-enter-content,
	.dd-abonnements-step-panel.is-entering {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* =========================================================
   ABONNEMENTS SKELETON
========================================================= */

.dd-abonnements-skeleton-root {
	pointer-events: none;
}

.dd-abonnements-skeleton-line,
.dd-abonnements-skeleton-btn {
	display: block;
	border-radius: 999px;
	background: var(--pv-light-blue);
	background-size: 200% 100%;
}

.dd-abonnements-skeleton-line {
	height: 12px;
}

.dd-abonnements-skeleton-card {
	border: 1px solid var(--pv-border, #e4d8c8);
	background: var(--pv-white);
}

.dd-abonnements-skeleton-btn {
	height: 38px;
	width: 100%;
	border-radius: var(--pv-radius);
}


/* =========================================================
   NEWSLETTER
========================================================= */

.dd-newsletter {
	width: 100%;
	color: var(--pv-text);
}

.dd-newsletter-message {
	position: fixed;
	top: 12px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 11050;
	display: none;
	width: min(calc(100% - 28px), 760px);
	margin: 0;
	padding: 14px 16px;
	border-radius: 14px;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.45;
	background: var(--pv-message-bg);
	color: var(--pv-text);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}

.dd-newsletter-message.is-success {
	background: var(--pv-success);
	color: var(--pv-text);
}

.dd-newsletter-message.is-error {
	background: var(--pv-danger);
	color: var(--pv-text);
}

.dd-newsletter-message.is-info {
	background: var(--pv-warning);
	color: var(--pv-text);
}

.dd-newsletter-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
    min-height: calc(100vh - var(--pv-header-height));
	padding: 24px 18px;
}

.dd-newsletter-hero__inner {
	width: 100%;
	max-width: 1050px;
	margin: 0 auto;
    display: flex;
    justify-content: center;
}

.dd-newsletter-card {
	display: flex;
	width: 100%;
    max-width: 600px;
	flex-direction: column;
	gap: 18px;
}

.dd-newsletter-card__main {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dd-newsletter-title {
	font-size: clamp(28px, 3.5vw, 42px);
	line-height: 1.06;
	font-weight: 700;
	color: var(--pv-text);
}

.dd-newsletter-text {
	max-width: 760px;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--pv-text-soft);
}


.dd-newsletter-text-small {
	max-width: 760px;
	font-size: 0.875rem;
	line-height: 1;
	color: var(--pv-text-soft);
}


.dd-newsletter-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.dd-newsletter-form-error {
	color: #971f1f;
	font-size: 0.95rem;
	line-height: 1.45;
	animation: shake 0.5s ease-in-out;
}

.dd-newsletter-loadbar {
	width: 100%;
}

.dd-newsletter-loadbar-track {
	position: relative;
	width: 100%;
	height: 2px;
	overflow: hidden;
	background: var(--pv-light-blue);
	border-radius: 999px;
}

.dd-newsletter-loadbar-fill {
	position: absolute;
	top: 0;
	left: -35%;
	width: 35%;
	height: 100%;
	background: var(--pv-gold);
	border-radius: 999px;
	animation: dd-newsletter-solid-load 1.4s linear infinite;
}

@keyframes dd-newsletter-solid-load {
	0% { left: -35%; }
	100% { left: 100%; }
}

.dd-newsletter-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}



.dd-newsletter-input {
	width: 100%;
	min-height: 42px;
	padding: 0 10px;
	border: 1px solid var(--pv-border-soft);
	border-radius: 8px;
    font-size: 0.92rem;
	background: var(--pv-white);
	color: var(--pv-text);
	font: inherit;
}

.dd-newsletter-textarea {
	min-height: 140px;
	padding: 10px;
	resize: vertical;
}

.dd-newsletter-input:focus {
	outline: none;
	border-color: var(--pv-text-soft);
	box-shadow: none;
}

.dd-newsletter-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	justify-content: flex-start;
}

.dd-newsletter-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 42px;
	padding: 10px 16px;
	border: 1px solid var(--pv-gold);
	border-radius: var(--pv-radius);
	background: transparent;
	color: var(--pv-gold);
	font-size: 1rem;
	line-height: 1.2;
	transition: opacity 0.16s ease, background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}

.dd-newsletter-btn:hover {
	background: var(--pv-light-blue);
	border-color: var(--pv-light-blue);
	color: var(--pv-gold);
	text-decoration: none;
	opacity: 1;
}

.dd-newsletter-btn:disabled {
	opacity: 0.52;
	pointer-events: none;
}

@media (max-width: 600px) {
	.dd-newsletter-message {
		top: 10px;
		width: calc(100% - 20px);
		padding: 12px 14px;
		font-size: 0.93rem;
		border-radius: 12px;
	}

	.dd-newsletter-hero {
		padding: 14px;
		min-height: calc(100vh - var(--pv-header-height));
	}

	.dd-newsletter-card {
		padding: 14px;
	}

	.dd-newsletter-btn {
		width: 100%;
	}
}
