/*
 * Couche de compatibilité marketplace.
 * L'identité visuelle demeure celle du fichier style.css d'origine.
 */

.container{width:min(var(--shell),calc(100% - 40px));margin-inline:auto}
.section-sm{padding:58px 0}
.skip-link{position:fixed;left:16px;top:-80px;z-index:9999;padding:12px 18px;background:#fff;border:2px solid var(--green);border-radius:8px}
.skip-link:focus{top:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 22px;border:1px solid var(--green);border-radius:999px;background:transparent;color:var(--green);font-weight:750;transition:transform .16s,background .16s,box-shadow .16s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 25px rgba(36,72,58,.18)}
.btn-primary,.btn-dark{background:var(--green);color:#fff}
.btn-primary:hover,.btn-dark:hover{background:#18392c}
.btn-light{background:#fff;border-color:#fff;color:var(--green)}
.btn-small{min-height:38px;padding:7px 14px;font-size:.84rem}
.btn-danger{border-color:var(--danger);color:var(--danger)}

.flash-success{background:#e9f1ec;border-left-color:var(--green)}
.flash-error{background:#f9e9e7;border-left-color:var(--danger)}
.flash-info{background:#e8f0f5;border-left-color:#4b7690}

.seller-invite{display:grid;grid-template-columns:1fr auto;align-items:center;gap:55px;padding:50px 55px;border-radius:3px 55px 3px 3px;background:var(--green);color:#fff}
.seller-invite .kicker{color:#c5dbc9}
.seller-invite p{max-width:760px;color:#d8e6de}
.seller-invite h2{max-width:820px}

.product-detail{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:start}
.detail-image{position:sticky;top:20px;border-radius:17px;overflow:hidden;background:#eef1ed}
.detail-image>img{width:100%;aspect-ratio:1/1.08;object-fit:cover}
.detail-image>.badge{position:absolute;top:12px;left:12px;padding:5px 9px;border-radius:999px;background:#fff;color:var(--green);font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 4px 12px #0002}
.detail-info h1{font-size:clamp(2.5rem,4.5vw,4.3rem)}
.detail-info>.detail-price{font-size:1.8rem;font-weight:800}
.detail-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:24px 0}
.detail-facts div{padding:13px 0;color:var(--muted)}
.detail-facts strong{display:block;color:var(--ink);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}
.fulfillment-form{display:grid;gap:14px;margin-top:20px}
.fulfillment-options{display:grid;gap:10px;margin:0;padding:0;border:0}
.fulfillment-options legend{margin-bottom:7px;font-weight:800;color:var(--ink)}
.fulfillment-choice{display:flex;align-items:flex-start;gap:12px;padding:14px 15px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}
.fulfillment-choice:has(input:checked){border-color:var(--green);box-shadow:0 0 0 2px rgba(36,72,58,.12);background:#f6faf7}
.fulfillment-choice input{width:auto;margin:4px 0 0;accent-color:var(--green)}
.fulfillment-choice span,.fulfillment-choice small{display:block}
.fulfillment-choice small{margin-top:3px;color:var(--muted)}
.fulfillment-choice.unavailable{cursor:not-allowed;opacity:.58;background:#f4f4f2}
.tabs{margin-top:30px}
.tabs details{border-top:1px solid var(--border);padding:17px 0}
.tabs summary{font-weight:750;cursor:pointer}
.tabs details p{color:var(--muted)}
.favorite-form{text-align:center;margin:16px 0}
.favorite-form .link{font-size:.9rem}
.review-form{display:grid;gap:14px;margin-top:22px;padding:20px;border-radius:12px;background:#f6f7f3}
.review-form textarea{min-height:110px}
.tabs blockquote footer{padding:0;background:none;color:var(--muted)}

.form-card{width:min(760px,calc(100% - 40px));margin-inline:auto;padding:32px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;align-content:start;gap:6px;margin-bottom:4px}
.field-full{grid-column:1/-1}
.field label,.field legend{font-weight:720;font-size:.86rem}
.field textarea{min-height:135px}
.field small{color:var(--muted);font-size:.78rem}
.checkbox{display:flex;align-items:flex-start;gap:9px;font-weight:500}
.checkbox input{width:auto;margin-top:5px}
fieldset.field{border:1px solid var(--border);border-radius:12px;padding:18px}

.account-layout,.admin-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:34px;align-items:start}
.sidebar{position:sticky;top:20px;display:grid;gap:5px;padding:14px;border:1px solid var(--border);border-radius:14px;background:#f6f7f3}
.sidebar a{display:block;padding:10px 12px;border-radius:9px;font-size:.88rem;font-weight:700}
.sidebar a:hover{background:#fff;color:var(--green)}
.panel{min-width:0;padding:28px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:0 10px 35px rgba(28,52,43,.04)}
.panel+.panel{margin-top:20px}
.account-products{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.stat{padding:22px;border-radius:13px;background:var(--cream)}
.stat span{display:block;color:var(--muted);font-size:.8rem;font-weight:700}
.stat strong{display:block;margin-top:7px;font:500 1.8rem Georgia,serif;color:var(--green)}
.table-wrap{width:100%;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th,td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}
td form{display:grid;gap:8px;min-width:180px}
td textarea{min-height:75px}
.status{display:inline-block;padding:4px 8px;border-radius:999px;background:var(--sage);color:var(--green);font-size:.72rem;font-weight:800}
.ticket-list{display:grid;gap:8px}
.ticket-list>a{display:grid;grid-template-columns:1fr auto;gap:5px 16px;padding:14px;border:1px solid var(--border);border-radius:10px}
.ticket-list>a:hover{border-color:#c2d1c7;background:#fafbf9}
.ticket-list small{grid-column:1/-1;color:var(--muted)}
.message-thread{display:grid;gap:12px;margin:22px 0}
.message-thread article{max-width:82%;padding:16px 18px;border-radius:14px;background:#f6f7f3}
.message-thread article.from-admin{margin-left:auto;background:var(--sage)}
.message-thread p{margin:5px 0}
.message-thread small{color:var(--muted)}

.switch-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}
.switch-row p{margin:3px 0 0;color:var(--muted);font-size:.85rem}
.switch{position:relative;width:54px;height:30px}
.switch input{width:0;height:0;opacity:0}
.slider{position:absolute;inset:0;border-radius:30px;background:#aeb8b2;transition:.2s}
.slider:before{content:"";position:absolute;width:22px;height:22px;left:4px;top:4px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #17251f33;transition:.2s}
.switch input:checked+.slider{background:var(--green)}
.switch input:checked+.slider:before{transform:translateX(24px)}

.warning{padding:16px 18px;margin:18px 0;border-left:4px solid var(--gold);border-radius:8px;background:#fff2df}
.legal{max-width:850px}
.legal h2{margin-top:42px;font-size:2rem}
.legal h3{margin-top:28px}
.legal p,.legal li{color:#526159}
.faq details{padding:18px 0;border-bottom:1px solid var(--border)}
.faq summary{font-weight:750;cursor:pointer}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.story-image img{border-radius:17px;box-shadow:var(--shadow)}

.summary-line{display:flex;justify-content:space-between;gap:18px;padding:8px 0}
.summary-total{border-top:1px solid #c9c1b6;margin-top:8px;padding-top:15px;font-size:1.1rem;font-weight:800}
.cart-item img{width:70px;height:78px;object-fit:cover;border-radius:8px}
.cart-item>div>h3{margin:0;font-size:1.2rem}
.cart-fulfillment{display:flex!important;align-items:end;gap:8px;margin-top:9px;min-width:230px}
.cart-fulfillment label{display:grid;gap:4px;color:var(--ink);font-size:.76rem;font-weight:750}
.cart-fulfillment select{min-width:220px;padding:8px 10px;background:#fff}
.checkout-cart-form{display:grid;gap:18px}
.shipping-panel{margin-top:24px;padding:22px;border:1px solid var(--border);border-radius:14px;background:#fafbf9}
.shipping-panel h2{margin-top:0;font-size:1.55rem}
.shipping-options{display:grid;gap:10px}
.shipping-options label{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}
.shipping-options input{width:auto;margin:0}
.shipping-options label span{display:flex;justify-content:space-between;gap:20px;align-items:center;flex:1}
.shipping-options label small{color:var(--muted)}
.shipping-address{display:grid;gap:12px;margin:18px 0;padding:18px;border:1px solid var(--border);border-radius:12px}
.shipping-address legend{padding:0 8px;font-weight:800}
.shipping-address label{display:grid;gap:5px;font-size:.86rem;font-weight:700}
.shipping-address small{color:var(--muted);font-weight:500}
.order-admin-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:28px;align-items:start}
.order-admin-grid address{padding:18px;border-radius:12px;background:var(--cream);font-style:normal;line-height:1.65}
.order-totals{max-width:420px;margin:20px 0 0 auto}
.order-totals p{display:flex;justify-content:space-between;gap:18px;margin:0;padding:7px 0}

@media(max-width:1000px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seller-invite{grid-template-columns:1fr;gap:22px}
}

@media(max-width:760px){
  .product-detail,.story-grid,.account-layout,.admin-layout,.order-admin-grid{grid-template-columns:1fr}
  .detail-image,.sidebar{position:static}
  .form-grid{grid-template-columns:1fr}
  .field-full{grid-column:auto}
  .stats-grid{grid-template-columns:1fr 1fr}
  .seller-invite{padding:35px 25px;border-radius:3px 36px 3px 3px}
  .account-layout .sidebar,.admin-layout .sidebar{display:flex;overflow:auto;white-space:nowrap}
  .sidebar a{flex:none}
  .cart-item{grid-template-columns:70px 1fr}
  .cart-item>div:last-child{grid-column:2;display:flex;justify-content:space-between;align-items:center;gap:12px}
}

@media(max-width:520px){
  .stats-grid{grid-template-columns:1fr}
  .panel{padding:20px}
}
