:root {
    --selva-gold: #c8a564;
    --selva-navy: #0a1a2f;
    --selva-grey: #c5c5c5;
    --background: #f4f5f7;
    --surface: #ffffff;
    --text: #1f2933;
    --danger: #a52121;
    --success: #206b45;
    --warning: #8a5a00;
    --border: #dfe3e8;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--background);
    color: var(--text);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
    color: var(--selva-navy);
}

.brand {
    margin: 0 0 0.4rem;
    color: var(--selva-gold);
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.login-shell {
    display: grid;
    min-height: 100vh;
    padding: 1.5rem;
    place-items: center;
}

.login-card {
    display: grid;
    width: min(100%, 420px);
    gap: 0.75rem;
    padding: 2rem;
    border-top: 4px solid var(--selva-gold);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 16px 45px rgb(10 26 47 / 12%);
}

.login-card h1,
.admin-header h1 {
    margin: 0 0 1rem;
    color: var(--selva-navy);
}

.login-card label {
    font-weight: 650;
}

.login-card input {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid var(--selva-grey);
    border-radius: 5px;
    font: inherit;
}

.login-card button {
    margin-top: 0.75rem;
    padding: 0.85rem 1rem;
    border: 0;
    border-radius: 5px;
    background: var(--selva-navy);
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

.alert {
    padding: 0.8rem;
    border-radius: 5px;
    background: #fbeaea;
    color: var(--danger);
}

.admin-shell {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 2rem 0;
}

.admin-shell--wide {
    width: min(2280px, calc(100% - 3rem));
}

.admin-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
}

.admin-user {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.admin-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: -0.75rem 0 2rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--border);
}

.admin-nav__link {
    padding: 0.6rem 0.9rem;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 700;
}

.admin-nav__link:hover,
.admin-nav__link--active {
    background: var(--selva-navy);
    color: #ffffff;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1rem;
}

.stat-card {
    display: block;
    padding: 1.4rem;
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 8px 24px rgb(10 26 47 / 8%);
    color: inherit;
    text-decoration: none;
}

a.stat-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgb(10 26 47 / 12%);
}

.stat-card span {
    display: block;
    margin-bottom: 0.5rem;
    color: #5e6875;
}

.stat-card strong {
    color: var(--selva-navy);
    font-size: 2rem;
}

.stat-card small {
    display: block;
    margin-top: 0.45rem;
    color: #68727e;
}

.stat-card--vinted {
    border-top: 3px solid #007782;
}

.stat-card--warning {
    border-left: 4px solid var(--danger);
}

.stat-card--warning strong {
    color: var(--danger);
}

.dashboard-actions,
.panel {
    margin-top: 1.5rem;
    padding: 1.4rem;
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 8px 24px rgb(10 26 47 / 8%);
}

.dashboard-actions,
.panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.dashboard-actions h2,
.dashboard-actions p,
.panel h2,
.panel p {
    margin: 0;
}

.dashboard-actions p,
.panel p {
    margin-top: 0.35rem;
    color: #5e6875;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.7rem;
    padding: 0.7rem 1rem;
    border: 1px solid var(--selva-navy);
    border-radius: 5px;
    background: var(--selva-navy);
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.button:hover {
    background: #142f50;
}

.button--secondary {
    background: #ffffff;
    color: var(--selva-navy);
}

.button--compact {
    min-height: 2.5rem;
    padding: 0.55rem 0.8rem;
    align-self: end;
}

.flash {
    margin: 0 0 0.75rem;
    padding: 0.85rem 1rem;
    border-left: 4px solid currentColor;
    border-radius: 5px;
    background: #ffffff;
}

.flash--success {
    color: var(--success);
}

.flash--warning {
    color: var(--warning);
}

.flash--danger {
    color: var(--danger);
}

.filters {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) minmax(140px, 1fr) repeat(3, minmax(110px, 1fr)) auto auto auto;
    gap: 0.75rem;
    margin: 1.25rem 0;
}

.acquisition-filters {
    grid-template-columns: minmax(280px, 2fr) minmax(160px, 1fr) auto;
    max-width: 760px;
}

.field {
    display: grid;
    gap: 0.35rem;
}

.field label {
    font-size: 0.85rem;
    font-weight: 700;
}

.field input,
.field select,
.field textarea {
    width: 100%;
    min-height: 2.5rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: #ffffff;
    color: var(--text);
    font: inherit;
}

.field textarea {
    resize: vertical;
}

.field-help {
    color: #68727e;
    font-size: 0.78rem;
}

.checkbox-field {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.65rem;
    align-self: end;
    font-size: 0.86rem;
    font-weight: 700;
    white-space: nowrap;
}

.table-scroll {
    overflow-x: auto;
}

.stock-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.stock-table th,
.stock-table td {
    padding: 0.75rem 0.65rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}

.stock-table th {
    color: #5e6875;
    font-size: 0.75rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.sort-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.sort-link:hover,
.sort-link--active {
    color: var(--selva-navy);
}

.sort-link span {
    color: var(--selva-gold);
    font-size: 0.9rem;
}

.stock-table tbody tr:hover {
    background: #f8f9fa;
}

.stock-table small {
    display: block;
    margin-top: 0.2rem;
    color: #68727e;
}

.stock-table .number {
    text-align: right;
    white-space: nowrap;
}

.badge {
    display: inline-flex;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    background: #e8ebef;
    color: #414a55;
    font-size: 0.78rem;
    font-weight: 750;
    white-space: nowrap;
}

.badge--in_stock,
.badge--active {
    background: #e1f3e9;
    color: var(--success);
}

.badge--reserved {
    background: #fff0cf;
    color: var(--warning);
}

.badge--in_progress {
    background: #fff0cf;
    color: var(--warning);
}

.badge--finalized {
    background: #e1f3e9;
    color: var(--success);
}

.badge--abandoned {
    background: #f0e7e7;
    color: #754040;
}

.badge--sold,
.badge--lost,
.badge--withdrawn {
    background: #f0e7e7;
    color: #754040;
}

.badge--alert {
    background: #fbe3e3;
    color: var(--danger);
}

.inline-action {
    margin-top: 0.35rem;
}

.listing-action + .listing-action {
    margin-top: 0.65rem;
}

.link-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--danger);
    cursor: pointer;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 750;
    text-decoration: underline;
}

.table-scroll--spaced {
    margin-top: 1.25rem;
}

.stock-result-meta {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 0.75rem;
}

.stock-result-meta p {
    margin: 0;
}

.stock-results {
    min-height: 12rem;
    transition: opacity 120ms ease;
}

.stock-results.htmx-request,
.filters.htmx-request + .stock-results {
    opacity: 0.55;
}

.stock-loading {
    color: var(--selva-gold);
    font-size: 0.9rem;
    font-weight: 750;
}

.sale-form {
    display: grid;
    gap: 1.5rem;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.form-grid__wide {
    grid-column: 1 / -1;
}

.form-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sale-lines-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.sale-lines-heading h2,
.sale-lines-heading p {
    margin: 0;
}

.sale-lines-heading p {
    margin-top: 0.35rem;
    color: #5e6875;
}

.sale-lines {
    display: grid;
    gap: 0.75rem;
}

.sale-line {
    display: grid;
    grid-template-columns: minmax(210px, 2fr) minmax(140px, 1fr) auto;
    align-items: end;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #f8f9fa;
}

.add-sale-line {
    justify-self: start;
}

.card-search-field,
.product-search-field {
    position: relative;
}

.card-search-loading,
.product-search-loading {
    position: absolute;
    top: 100%;
    right: 0.5rem;
    z-index: 12;
    padding: 0.5rem;
    color: #68727e;
    font-size: 0.78rem;
}

.card-search-results,
.product-search-results {
    position: absolute;
    top: calc(100% + 0.25rem);
    right: 0;
    left: 0;
    z-index: 10;
    max-height: 22rem;
    overflow-y: auto;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgb(10 26 47 / 20%);
}

.card-search-results:empty,
.product-search-results:empty {
    display: none;
}

.card-search-choice {
    display: grid;
    width: 100%;
    gap: 0.15rem;
    padding: 0.75rem;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: #ffffff;
    color: var(--text);
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.card-search-choice:hover,
.card-search-choice:focus {
    background: #f3f6fa;
    outline: 2px solid var(--selva-gold);
    outline-offset: -2px;
}

.card-search-choice span,
.card-search-choice small,
.card-search-message {
    color: #68727e;
    font-size: 0.8rem;
}

.card-search-message {
    padding: 0.8rem;
}

.money-field {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.5rem;
}

.button--danger {
    border-color: var(--danger);
    background: #ffffff;
    color: var(--danger);
}

.button--danger:hover {
    background: #fbeaea;
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.button-group,
.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.table-actions a {
    font-weight: 700;
}

.sale-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.5rem 0 0;
}

.sale-summary div {
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 6px;
}

.sale-summary dt {
    margin-bottom: 0.4rem;
    color: #68727e;
    font-size: 0.8rem;
    font-weight: 700;
}

.sale-summary dd {
    margin: 0;
    font-weight: 700;
}

.muted {
    color: #8a929b;
}

.dashboard-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.dashboard-reference-filter {
    display: grid;
    width: min(100%, 360px);
    gap: 0.35rem;
}

.dashboard-reference-filter label {
    font-size: 0.8rem;
    font-weight: 700;
}

.dashboard-reference-filter input {
    min-height: 2.5rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    font: inherit;
}

.acquisition-form {
    display: grid;
    gap: 1.5rem;
}

.acquisition-lines-heading {
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
}

.acquisition-lines-heading h2,
.acquisition-lines-heading p {
    margin: 0;
}

.acquisition-lines {
    display: grid;
    min-width: 1700px;
    gap: 0.45rem;
}

.acquisition-line {
    display: grid;
    grid-template-columns: minmax(150px,.8fr) minmax(130px,.9fr) minmax(240px,1.7fr) minmax(170px,1.2fr) 85px 90px 110px 90px 120px 44px;
    align-items: end;
    gap: 0.5rem;
    padding: 0.65rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fbfcfd;
}

.acquisition-line--header {
    padding-top: 0;
    padding-bottom: 0.25rem;
    border: 0;
    background: transparent;
    color: #68727e;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.mobile-label {
    display: none;
}

.reference-search-field {
    position: relative;
}

.reference-search-results {
    position: absolute;
    top: calc(100% + 0.25rem);
    right: 0;
    left: 0;
    z-index: 20;
    min-width: 360px;
    max-height: 20rem;
    overflow-y: auto;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgb(10 26 47 / 20%);
}

.reference-search-results:empty {
    display: none;
}

.reference-search-choice {
    display: grid;
    width: 100%;
    gap: 0.2rem;
    padding: 0.7rem;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: #ffffff;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.reference-search-choice:hover,
.reference-search-choice:focus {
    background: #f3f6fa;
    outline: 2px solid var(--selva-gold);
    outline-offset: -2px;
}

.reference-search-choice small {
    color: #68727e;
}

.acquisition-line-total {
    min-height: 2.5rem;
    padding: 0.65rem 0;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.acquisition-totals {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-left: 4px solid var(--selva-gold);
    border-radius: 6px;
    background: #fbfcfd;
}

.acquisition-totals > div:not(.field) {
    display: grid;
    align-content: center;
    gap: 0.35rem;
}

.acquisition-totals span {
    color: #68727e;
    font-size: 0.8rem;
    font-weight: 700;
}

.acquisition-totals strong {
    color: var(--selva-navy);
    font-size: 1.35rem;
}

.acquisition-rate-action {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.65rem;
}

.acquisition-rate-action .button {
    justify-self: start;
}

.acquisition-rate-action small {
    min-height: 1.2em;
    color: #557064;
    line-height: 1.4;
}

.acquisition-rate-action button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

@media (max-width: 1000px) {
    .acquisition-totals {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acquisition-negotiation {
        grid-column: 1 / -1;
    }
}

.debt-value {
    color: var(--danger) !important;
    font-weight: 800;
}

.purchase-summary {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.purchase-summary .summary-wide {
    grid-column: 1 / -1;
}

.purchase-final-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.payment-update {
    display: grid;
    grid-template-columns: minmax(260px, 420px) auto;
    align-items: end;
    justify-content: end;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.empty-state {
    padding: 2rem !important;
    color: #68727e;
    text-align: center !important;
}

.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    padding-top: 1.25rem;
}

.pagination a {
    font-weight: 700;
}

@media (max-width: 620px) {
    .admin-header,
    .admin-user {
        align-items: flex-start;
        flex-direction: column;
    }

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

    .dashboard-actions-grid,
    .acquisition-totals {
        grid-template-columns: 1fr;
    }

    .acquisition-negotiation {
        grid-column: auto;
    }

    .panel-heading,
    .sale-lines-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .filters {
        grid-template-columns: 1fr;
    }

    .form-grid,
    .sale-line,
    .sale-summary {
        grid-template-columns: 1fr;
    }

    .form-grid--four,
    .purchase-summary {
        grid-template-columns: 1fr;
    }

    .acquisition-lines-scroll {
        overflow: visible;
    }

    .acquisition-lines {
        min-width: 0;
    }

    .acquisition-line {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 0.85rem;
    }

    .acquisition-line--header {
        display: none;
    }

    .acquisition-line .field:nth-child(1),
    .acquisition-line .field:nth-child(2),
    .acquisition-line .field:nth-child(3) {
        grid-column: 1 / -1;
    }

    .mobile-label {
        display: block;
    }

    .reference-search-results {
        min-width: 0;
    }

    .acquisition-line-total {
        align-self: end;
        text-align: left;
    }

    .purchase-final-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .payment-update {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .purchase-final-actions .button,
    .purchase-final-actions form {
        width: 100%;
    }

    .form-grid__wide {
        grid-column: auto;
    }

    .sale-line__remove {
        justify-self: start;
    }
}

@media (min-width: 621px) and (max-width: 1100px) {
    .filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.request-status { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); padding:14px 20px; z-index:30; max-width:calc(100% - 30px); background:#fff1db; border:1px solid #c8a564; border-radius:7px; box-shadow:0 6px 24px #0a1a2f26; font-size:14px; }
.admin-card-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:24px; align-items:start; }
.admin-card-media { position:sticky; top:24px; padding:20px; }
.admin-card-image { background:#f4f4f0; border-radius:6px; min-height:300px; display:flex; align-items:center; justify-content:center; padding:16px; }
.admin-card-image img,.admin-back-photo { max-width:100%; height:auto; max-height:380px; object-fit:contain; }
.admin-back-photo { display:block; max-width:150px; margin:16px auto; }
.image-prepare-form { display:grid; gap:14px; margin:22px 0; }
.image-prepare-form .field small { font-size:11px; color:#707b87; line-height:1.5; }
.image-prepare-form input { min-width:0; }
.image-prepare-form button { font-size:12px; white-space:normal; }
.admin-card-panels { display:grid; gap:24px; }
.card-edit-form { display:grid; gap:20px; }
.card-edit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.card-edit-grid .field small { font-size:11px; color:#707b87; }
.card-checkboxes { display:flex; gap:24px; flex-wrap:wrap; font-size:13px; }
.card-photo-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.card-photo-fields .field > label:last-child { font-size:12px; font-weight:400; }
.card-photo-fields .field input[type=checkbox] { width:auto; }
.card-edit-form > button { justify-self:start; }
.listing-edit-form { padding:24px 0; border-top:1px solid #dfe3e8; display:grid; gap:18px; }
.listing-edit-form h3 { margin:0; font-size:17px; }
.listing-fields { display:grid; grid-template-columns:140px 130px minmax(120px,1fr) minmax(200px,2fr); gap:16px; }
.listing-fields input { min-width:0; }
.vinted-text-panel .field { margin-top:20px; }
.vinted-text-panel .button { align-self:start; }
.copy-status { min-height:20px; color:#206b45; font-size:13px; }
button[disabled] { opacity:.55; cursor:wait; }
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible { outline:2px solid #c8a564; outline-offset:3px; }
@media(max-width:1100px) { .card-edit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .listing-fields { grid-template-columns:1fr 1fr; } }
@media(max-width:750px) { .admin-shell--wide { width:calc(100% - 24px); } .admin-card-layout { grid-template-columns:1fr; } .admin-card-media { position:static; } .admin-card-image img { max-height:260px; } .card-photo-fields { grid-template-columns:1fr; } .card-edit-grid { grid-template-columns:1fr; } }

.theme-toggle { background:transparent; border:1px solid var(--border); color:var(--text); border-radius:5px; padding:9px 12px; cursor:pointer; font:inherit; font-size:13px; margin-left:auto; }
.site-nav .theme-toggle { color:#c5cbd3; border-color:#526174; }
.navigation-loading { position:fixed; top:0; left:0; right:0; text-align:center; z-index:100; padding:7px; background:#c8a564; color:#0a1a2f; font-size:13px; box-shadow:0 2px 8px #0002; }
.row-copy-actions { display:flex; gap:6px; white-space:nowrap; }
[data-vinted-copy] .copy-status { display:block; min-height:16px; font-size:11px; }
button[data-copied] { border-color:var(--success); color:var(--success); }
.reference-filters { display:flex; gap:16px; align-items:end; margin-bottom:20px; max-width:800px; }
.reference-filters .field { flex:1; }
.reference-editor { max-width:1200px; }
.reference-editor .field { margin-bottom:20px; }
.public-event + .public-event { margin-top:24px; }
.event-description { white-space:pre-wrap; overflow-wrap:anywhere; }
.clipboard-dialog { width:min(700px,90vw); background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:8px; }
.clipboard-dialog textarea { width:100%; margin-bottom:16px; }
button:disabled { opacity:.65; cursor:wait; }
#admin-page.htmx-swapping { opacity:.85; }
@media(max-width:650px) { .admin-nav .theme-toggle { margin-left:0; } .reference-filters { flex-wrap:wrap; } .reference-filters .field { flex-basis:100%; } .site-nav { gap:14px; } .site-nav .theme-toggle { margin:0; } }

/* Rentabilité des lots : le libellé accompagne toujours la couleur. */
.profit-legend{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.profit-badge{display:inline-block;padding:.35rem .6rem;border-radius:.5rem;font-size:.8rem;font-weight:700;white-space:nowrap;border:1px solid transparent}
.profit-badge--profit_open{background:#e4f4ec;color:#166044;border-color:#a3d7bf}.profit-badge--loss_open{background:#fff3d5;color:#805000;border-color:#e8c47c}.profit-badge--profit_closed{background:#d3eee0;color:#095235;border-color:#77bfa0}.profit-badge--loss_closed{background:#fce4e5;color:#9f2430;border-color:#e9a5ac}.profit-badge--incomplete{background:#eee8fa;color:#5c3c91;border-color:#c6b4e2}.profit-badge--draft{background:#e9edf1;color:#425369}
.purchase-row--profit_open td:first-child{box-shadow:inset 4px 0 #389d72}.purchase-row--profit_closed td:first-child{box-shadow:inset 4px 0 #13744d}.purchase-row--loss_open td:first-child{box-shadow:inset 4px 0 #d29325}.purchase-row--loss_closed td:first-child{box-shadow:inset 4px 0 #cc4150}.purchase-row--incomplete td:first-child{box-shadow:inset 4px 0 #9471c8}
.profit-positive{color:#166044;font-weight:700}.profit-negative{color:#a72936;font-weight:700}.profit-help{color:#526175;font-size:.85rem;line-height:1.6}.purchase-performance{margin:1.5rem 0;padding:1rem;border:1px solid #dde4eb;border-radius:.8rem}.purchase-performance .panel-heading{margin-bottom:.75rem}.purchase-performance dl small{display:block;color:#526175;font-weight:400;font-size:.8rem;margin-top:.3rem}.purchase-performance-table th{white-space:normal;min-width:90px}.purchase-performance-table td{vertical-align:top}.purchase-performance-table td:nth-child(2){min-width:180px}.acquisition-filters{flex-wrap:wrap}

@media(min-width:1101px){#acquisition-filters{grid-template-columns:minmax(280px,2fr) minmax(160px,1fr) minmax(190px,1fr) auto;max-width:1200px}#purchase-cards-filters{grid-template-columns:minmax(280px,2fr) minmax(190px,1fr) auto;max-width:1000px}#sale-filters{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) minmax(150px,1fr) auto}}
@media(min-width:621px) and (max-width:1100px){#acquisition-filters,#purchase-cards-filters,#sale-filters{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}

.admin-front-link { margin-bottom: 1rem; }
.live-sort { border:0; background:transparent; color:inherit; font:inherit; padding:0; cursor:pointer; text-align:inherit; display:inline-flex; gap:.35rem; align-items:center; }
th[aria-sort=ascending] .live-sort,th[aria-sort=descending] .live-sort { color:var(--accent,#198263); }
.live-sort:focus-visible,.profit-legend a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.profit-legend a { text-decoration:none; cursor:pointer; }
.profit-legend a[aria-current=true] { outline:2px solid currentColor; outline-offset:2px; }
.profit-badge--all { background:#e5e7eb; color:#334155; }
.live-table-status { font-size:.8rem; color:var(--muted,#6b7280); align-self:center; }
[data-theme=dark] .profit-badge--all { background:#334155; color:#e2e8f0; }

/* Affichage progressif : le bouton reste sous les lignes déjà visibles. */
.load-more{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:24px 0;color:#657285;min-height:44px}.load-more [aria-disabled="true"]{opacity:.6;pointer-events:none}.live-results{overflow-anchor:none}.load-more span{font-size:14px}html[data-theme="dark"] .load-more{color:#aab9c9}

.vinted-row-action{display:inline-flex;align-items:center}.vinted-row-action form{margin:0}.row-copy-actions{align-items:center;flex-wrap:wrap}.contact-admin-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.8fr);gap:24px;align-items:start}.contact-admin-sidebar{display:grid;gap:24px}.contact-admin-sidebar .panel{margin:0}.contact-admin-sidebar form{display:grid;gap:18px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.detail-list>div{padding:14px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:110px 1fr;gap:12px}.detail-list dd{margin:0;overflow-wrap:anywhere}.contact-description{margin:24px 0}.contact-description p{white-space:pre-wrap;line-height:1.7}.contact-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.contact-photo-grid a{display:grid;gap:7px;text-decoration:none;font-size:11px;overflow-wrap:anywhere}.contact-photo-grid img{width:100%;height:160px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:#eef1f3}.contact-history{list-style:none;padding:0;margin:20px 0 0}.contact-history li{position:relative;padding:0 0 24px 28px;border-left:2px solid var(--border)}.contact-history li::before{content:'';position:absolute;width:10px;height:10px;border-radius:50%;background:var(--accent);left:-6px;top:5px}.contact-history time{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.contact-history p{margin:7px 0 0}.notification-ok{color:var(--success);font-weight:700}.notification-error{color:var(--danger);font-weight:700}.technical-note{font-size:12px;overflow-wrap:anywhere}.badge--contact-new{background:#fff1cf;color:#76510c}.badge--contact-in_review{background:#e7eefc;color:#244f91}.badge--contact-waiting_customer{background:#f0e9fa;color:#664097}.badge--contact-accepted{background:#e1f1e7;color:#17613d}.badge--contact-declined,.badge--contact-closed{background:#e8ebee;color:#4a5663}
@media(max-width:900px){.contact-admin-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}}

.product-type-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.product-type-tabs a{padding:9px 14px;border:1px solid var(--border);border-radius:5px;color:var(--text);font-weight:700;text-decoration:none}.product-type-tabs a[aria-current="page"]{border-color:var(--accent);background:#f5ecd9;color:#70521c}.product-table .product-thumb{display:block;width:72px;height:72px;border-radius:6px;object-fit:contain;background:#f1f2f3}.product-thumb--empty{display:grid!important;place-items:center;color:var(--muted)}.product-editor{max-width:1250px}.product-editor form{display:grid;gap:20px}.product-visibility{white-space:normal}.product-photo-manager h2{font-size:18px}.product-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.product-photo-grid label{position:relative;display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:7px}.product-photo-grid img{width:100%;height:180px;object-fit:contain;background:#f1f2f3;border-radius:5px}.product-photo-grid span{font-size:12px}.product-photo-grid strong{position:absolute;top:16px;left:16px;padding:4px 7px;border-radius:4px;background:var(--accent);color:#17283d;font-size:10px;text-transform:uppercase}.product-editor input[type=file]{min-width:0}
@media(max-width:650px){.product-table{min-width:850px}.product-photo-grid{grid-template-columns:1fr}.product-editor .form-grid{grid-template-columns:1fr}}

/* Étape 13 · base d'opération boutique */
.admin-nav--operations{align-items:flex-start;gap:.55rem;overflow:visible;flex-wrap:wrap}.admin-nav-group{position:relative}.admin-nav-group>summary{list-style:none;cursor:pointer;padding:.7rem .9rem;border-radius:.65rem;font-weight:800;white-space:nowrap}.admin-nav-group>summary::-webkit-details-marker{display:none}.admin-nav-group>summary:after{content:' ▾';font-size:.75em;opacity:.7}.admin-nav-group>div{position:absolute;z-index:25;top:calc(100% + .3rem);left:0;min-width:220px;padding:.45rem;background:var(--surface,#fff);border:1px solid var(--border,#dce2e9);box-shadow:0 12px 32px #10233a22;border-radius:.8rem;display:grid;gap:.25rem}.admin-nav-group:not([open])>div{display:none}.admin-nav-group .admin-nav__link{display:block}.admin-nav-group:has(.admin-nav__link--active)>summary{background:var(--surface-strong,#edf3f7);color:var(--accent,#0d6671)}
.operations-header p:last-child{margin:.35rem 0 0;color:var(--muted)}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0}.quick-actions a{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem;background:linear-gradient(135deg,#0d6671,#17475f);color:#fff;border-radius:.85rem;text-decoration:none;box-shadow:0 8px 22px #0d667125}.quick-actions a:hover{transform:translateY(-2px)}.quick-actions span{font-size:.85rem;opacity:.82}.operations-alerts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.4rem}.operation-alert{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;border:1px solid var(--border);border-radius:.8rem;background:var(--surface);color:inherit;text-decoration:none}.operation-alert strong{font-size:1.25rem}.operation-alert--urgent{border-color:#d74e4e;background:#d74e4e12}.operation-alert--attention{border-color:#d99c2b;background:#d99c2b12}.activity-units{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:1rem;margin:1rem 0}.activity-unit{padding:1.15rem;border:1px solid var(--border);border-radius:1rem;background:var(--surface);box-shadow:0 8px 28px #10233a0c}.activity-unit--cards{border-top:4px solid #0d6671}.activity-unit--shop{border-top:4px solid #d09d32}.activity-unit__heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.activity-unit__heading h2{margin:.15rem 0}.stats-grid--unit{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem}.dashboard-operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.compact-list{display:grid}.compact-list>a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.compact-list small{display:block;color:var(--muted);margin-top:.15rem}.metric-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1rem 0}.metric-list>div,.stock-readonly{padding:.8rem;border-radius:.7rem;background:var(--surface-strong,#f4f7f9);display:flex;flex-direction:column;gap:.2rem}.stock-readonly strong,.metric-list strong{font-size:1.15rem}.stock-pill{padding:.55rem .9rem;border-radius:2rem;background:#0d6671;color:#fff;font-weight:800}.product-purchase-lines{display:grid;min-width:780px;overflow-x:auto}.product-purchase-line{display:grid;grid-template-columns:minmax(280px,2fr) minmax(100px,.5fr) minmax(140px,.7fr) minmax(120px,.6fr) 44px;gap:.55rem;align-items:end;padding:.55rem 0;border-bottom:1px solid var(--border)}.product-purchase-line--header{font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--muted);align-items:center}.product-purchase-line output{padding:.7rem .3rem;font-weight:800}.product-purchase-totals{grid-template-columns:repeat(3,minmax(0,1fr))}.inline-payment-form{display:flex;align-items:end;gap:.7rem;margin-top:1rem}.compact-filter{max-width:360px;margin:.6rem 0 1rem}.sealed-filter{display:flex;align-items:center;gap:.75rem;max-width:480px;margin:1rem 0}.sealed-filter select{min-width:220px}.badge--draft{background:#64748b20}.badge--ordered{background:#d99c2b20;color:#8a5c00}.badge--received{background:#1d8b5b20;color:#12653f}.badge--cancelled{background:#d74e4e1a;color:#a72d2d}
@media(max-width:1100px){.quick-actions,.operations-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-units,.dashboard-operations-grid{grid-template-columns:1fr}.stats-grid--unit{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.admin-nav--operations{display:grid;grid-template-columns:1fr 1fr}.admin-nav-group{position:static}.admin-nav-group>div{position:static;box-shadow:none;margin:.3rem 0}.quick-actions,.operations-alerts,.stats-grid--unit,.metric-list{grid-template-columns:1fr}.product-purchase-lines{min-width:0}.product-purchase-line{grid-template-columns:1fr 1fr}.product-purchase-line>div:first-of-type{grid-column:1/-1}.product-purchase-line--header{display:none}.product-purchase-line output{align-self:center}.inline-payment-form,.sealed-filter{align-items:stretch;flex-direction:column}}
.product-purchase-line{grid-template-columns:minmax(260px,2fr) minmax(90px,.45fr) minmax(130px,.65fr) minmax(105px,.5fr) minmax(120px,.6fr) 44px}.vat-recovery{margin:1rem 0;padding:1rem;border:1px solid var(--border);border-radius:.8rem;background:var(--surface-strong,#f4f7f9)}.vat-recovery small{display:block;margin:.25rem 0 0 1.6rem;color:var(--muted);font-weight:400;line-height:1.45}.sales-chart-panel{margin:1rem 0;padding-block:1rem}.sales-chart-panel .panel-heading{margin-bottom:.25rem}.chart-periods{display:flex;gap:.35rem}.chart-periods button{padding:.4rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:inherit;font-weight:800;cursor:pointer}.chart-periods button[aria-pressed="true"]{background:#0d6671;border-color:#0d6671;color:#fff}.sales-chart{position:relative;min-height:190px}.sales-chart svg{display:block;width:100%;height:190px;min-height:0;overflow:visible}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis-label{fill:var(--muted);font-size:12px}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-line--total{stroke:#d09d32;stroke-width:4}.chart-line--cards{stroke:#0d6671}.chart-line--products{stroke:#7868d8}.chart-hit{fill:transparent;stroke:transparent;cursor:crosshair}.chart-hit:focus{outline:none;fill:#d09d32;stroke:var(--surface);stroke-width:3;r:6}.sales-chart__tooltip{position:absolute;z-index:2;display:grid;gap:.2rem;transform:translate(-50%,-100%);min-width:185px;padding:.7rem .8rem;border:1px solid var(--border);border-radius:.7rem;background:var(--surface);box-shadow:0 8px 24px #10233a30;font-size:.8rem;pointer-events:none}.sales-chart__legend{display:flex;flex-wrap:wrap;gap:1rem;color:var(--muted);font-size:.8rem}.sales-chart__legend span{display:flex;align-items:center;gap:.4rem}.sales-chart__legend i{width:20px;height:4px;border-radius:2px}.legend-total{background:#d09d32}.legend-cards{background:#0d6671}.legend-products{background:#7868d8}@media(max-width:720px){.product-purchase-line{grid-template-columns:1fr 1fr}.chart-periods{width:100%}.chart-periods button{flex:1}.sales-chart{overflow-x:auto}.sales-chart svg{min-width:680px}}

/* Vente unifiée : les cartes restent visibles, les produits sont facultatifs et repliables. */
.sale-products{padding:0;border:1px solid var(--border);border-radius:.8rem;background:var(--surface)}.sale-products>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;list-style:none}.sale-products>summary::-webkit-details-marker{display:none}.sale-products>summary span:first-child{display:grid;gap:.2rem}.sale-products>summary small{color:var(--muted);font-weight:400}.sale-products__count{display:grid;place-items:center;min-width:2rem;height:2rem;padding:0 .55rem;border-radius:999px;background:var(--surface-strong,#edf3f7);font-weight:800}.sale-products[open]>summary{border-bottom:1px solid var(--border)}.sale-product-lines{display:grid;padding:0 1rem}.sale-product-line{display:grid;grid-template-columns:minmax(280px,2fr) minmax(90px,.4fr) minmax(140px,.65fr) minmax(100px,.5fr) 44px;gap:.65rem;align-items:end;padding:.8rem 0;border-bottom:1px solid var(--border)}.sale-product-line__total{padding:.75rem .2rem;font-weight:800;text-align:right}.sale-products>.add-sale-line{margin:1rem}.sale-grand-total{display:flex;justify-content:flex-end;align-items:baseline;gap:1rem;padding:1rem;border-top:1px solid var(--border);font-size:1rem}.sale-grand-total strong{font-size:1.45rem;color:var(--accent)}
@media(max-width:800px){.sale-product-line{grid-template-columns:1fr 1fr}.sale-product-line__product{grid-column:1/-1}.sale-product-line__total{text-align:left}.sale-line{grid-template-columns:1fr}.sale-line__remove{justify-self:start}}

/* Poste de pilotage : largeur utile, tableaux lisibles et vente accessible partout. */
.operations-panel{width:100%;max-width:none}.operations-table-wrap{width:100%}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.data-table td{padding:.75rem .7rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.data-table th{color:var(--muted);white-space:nowrap}.data-table td small{display:block;margin-top:.2rem;color:var(--muted)}.operations-table{table-layout:auto}.product-table{min-width:1500px}.supplier-table{min-width:960px}.admin-nav__link--sale{background:#0d6671;color:#fff}.admin-nav__link--sale:hover,.admin-nav__link--sale.admin-nav__link--active{background:#094d56;color:#fff}.product-search-results{min-width:420px}
@media(max-width:800px){.product-search-results{min-width:100%}.product-table{min-width:1100px}.supplier-table{min-width:760px}}
